ETH Price: $3,297.91 (-3.32%)
Gas: 22 Gwei

Token

Dont Buy Inu (DBI)
 

Overview

Max Total Supply

2,000,000,000 DBI

Holders

3,034 ( -0.066%)

Market

Price

$0.00 @ 0.000000 ETH (+0.38%)

Onchain Market Cap

$1,429,880.00

Circulating Supply Market Cap

$1,017,393.00

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: DBI 6
Balance
0.000000000001384739 DBI

Value
$0.00 ( ~0 Eth) [0.0000%]
0xdedf7b429c3a23b1b243a7348934745772b50c84
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Dont Buy Inu (DBI) is a pure meme token whose marketing comes from the growth on an IRL character - The Dev - making viral videos.

Market

Volume (24H):$3,007.95
Market Capitalization:$1,017,393.00
Circulating Supply:1,423,043,587.00 DBI
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DontBuyInu

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-14
*/

/**

Dont Buy Inu (DBI), will be the most decentralized, fair, not-money-milking token in crypto.
It will not be filled with empty promises like 99% of tokens.
It’s a pure meme token whose marketing comes from the growth on an IRL character - The Dev - making viral videos.

Telegram: https://t.me/dontbuyinu

Twitter: https://twitter.com/HeyItsMeTheDev

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.9;

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 IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

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

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

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


contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

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

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

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

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

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

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

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

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

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

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

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

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

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

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

        return c;
    }

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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



library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

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

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

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

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

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

    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }


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

library SafeMathUint {
  function toInt256Safe(uint256 a) internal pure returns (int256) {
    int256 b = int256(a);
    require(b >= 0);
    return b;
  }
}


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

    address public constant deadAddress = address(0);
    mapping (address => bool) public automatedMarketMakerPairs;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;
    bool private swapping;
    uint256 public maxWallet;


    bool public limitsInEffect = true;
    bool private theDev = false;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() ERC20("Dont Buy Inu", "DBI") {

        uint256 totalSupply = 2_000_000_000 * 1e18;

        maxWallet = 2_000_000_000 * 1e18; // 2% maxWallet

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {

  	}

    // once enabled, can never be turned off
      function myWayOrTheHighway(bool _setOpen) public onlyOwner {
        theDev = _setOpen;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool){
        limitsInEffect = false;
        return true;
    }


    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 5 / 1000)/1e18, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * (10**18);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function airDrop(address[] calldata newholders, uint256[] calldata amounts) external {
        uint256 iterator = 0;
        require(_isExcludedMaxTransactionAmount[_msgSender()], "Airdrop can only be done by excluded from fee");
        require(newholders.length == amounts.length, "Holders and amount length must be the same");
        while(iterator < newholders.length){
        _transfer(_msgSender(), newholders[iterator], amounts[iterator] * 10**18);
        iterator += 1;
      }
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {

        _setAutomatedMarketMakerPair(pair, value);
        excludeFromMaxTransaction(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }


    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(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if(limitsInEffect){
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead)
            ){
              if(!theDev){
                  require(from == owner(), "Trading is not active.");
              }
                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                        require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }

                else if(!_isExcludedMaxTransactionAmount[to]){
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        super._transfer(from, to, amount);
    }




}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"newholders","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_setOpen","type":"bool"}],"name":"myWayOrTheHighway","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600c81526020017f446f6e742042757920496e7500000000000000000000000000000000000000008152506040518060400160405280600381526020017f44424900000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000cc92919062000566565b508060049080519060200190620000e592919062000566565b5050506000620000fa6200022060201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006b06765c793fa10079d000000090506b06765c793fa10079d0000000600981905550620001df620001d16200022860201b60201c565b60016200025260201b60201c565b620001f23060016200025260201b60201c565b6200020761dead60016200025260201b60201c565b6200021933826200034f60201b60201c565b50620008a6565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620002626200022060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620002f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002eb9062000677565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003b990620006e9565b60405180910390fd5b620003d660008383620004fe60201b60201c565b620003f2816002546200050360201b620014101790919060201c565b60028190555062000450816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200050360201b620014101790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004f2919062000726565b60405180910390a35050565b505050565b600080828462000514919062000772565b9050838110156200055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000553906200081f565b60405180910390fd5b8091505092915050565b828054620005749062000870565b90600052602060002090601f016020900481019282620005985760008555620005e4565b82601f10620005b357805160ff1916838001178555620005e4565b82800160010185558215620005e4579182015b82811115620005e3578251825591602001919060010190620005c6565b5b509050620005f39190620005f7565b5090565b5b8082111562000612576000816000905550600101620005f8565b5090565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200065f60208362000616565b91506200066c8262000627565b602082019050919050565b60006020820190508181036000830152620006928162000650565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620006d1601f8362000616565b9150620006de8262000699565b602082019050919050565b600060208201905081810360008301526200070481620006c2565b9050919050565b6000819050919050565b62000720816200070b565b82525050565b60006020820190506200073d600083018462000715565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200077f826200070b565b91506200078c836200070b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007c457620007c362000743565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000807601b8362000616565b91506200081482620007cf565b602082019050919050565b600060208201905081810360008301526200083a81620007f8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200088957607f821691505b60208210811415620008a0576200089f62000841565b5b50919050565b612c3280620008b66000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063a457c2d71161008a578063c18bc19511610064578063c18bc19514610571578063dd62ed3e1461059a578063f2fde38b146105d7578063f8b45b051461060057610171565b8063a457c2d7146104ba578063a9059cbb146104f7578063b62496f51461053457610171565b8063715018a6146103d0578063751039fc146103e75780637571336a146104125780638da5cb5b1461043b57806395d89b41146104665780639a7a23d61461049157610171565b806327c8f8351161012357806327c8f835146102ac578063313ce567146102d757806339509351146103025780634a62bb651461033f57806365216a411461036a57806370a082311461039357610171565b806306fdde0314610176578063095ea7b3146101a157806310d5de53146101de57806318160ddd1461021b57806321fda6481461024657806323b872dd1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61062b565b6040516101989190611ec3565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611f83565b6106bd565b6040516101d59190611fde565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190611ff9565b6106db565b6040516102129190611fde565b60405180910390f35b34801561022757600080fd5b506102306106fb565b60405161023d9190612035565b60405180910390f35b34801561025257600080fd5b5061026d6004803603810190610268919061207c565b610705565b005b34801561027b57600080fd5b50610296600480360381019061029191906120a9565b6107b9565b6040516102a39190611fde565b60405180910390f35b3480156102b857600080fd5b506102c1610892565b6040516102ce919061210b565b60405180910390f35b3480156102e357600080fd5b506102ec610897565b6040516102f99190612142565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190611f83565b6108a0565b6040516103369190611fde565b60405180910390f35b34801561034b57600080fd5b50610354610953565b6040516103619190611fde565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190612218565b610966565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190611ff9565b610acf565b6040516103c79190612035565b60405180910390f35b3480156103dc57600080fd5b506103e5610b17565b005b3480156103f357600080fd5b506103fc610c6f565b6040516104099190611fde565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190612299565b610d2a565b005b34801561044757600080fd5b50610450610e1c565b60405161045d919061210b565b60405180910390f35b34801561047257600080fd5b5061047b610e46565b6040516104889190611ec3565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612299565b610ed8565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190611f83565b610f87565b6040516104ee9190611fde565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190611f83565b611054565b60405161052b9190611fde565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190611ff9565b611072565b6040516105689190611fde565b60405180910390f35b34801561057d57600080fd5b50610598600480360381019061059391906122d9565b611092565b005b3480156105a657600080fd5b506105c160048036038101906105bc9190612306565b6111bc565b6040516105ce9190612035565b60405180910390f35b3480156105e357600080fd5b506105fe60048036038101906105f99190611ff9565b611243565b005b34801561060c57600080fd5b5061061561140a565b6040516106229190612035565b60405180910390f35b60606003805461063a90612375565b80601f016020809104026020016040519081016040528092919081815260200182805461066690612375565b80156106b35780601f10610688576101008083540402835291602001916106b3565b820191906000526020600020905b81548152906001019060200180831161069657829003601f168201915b5050505050905090565b60006106d16106ca61146e565b8484611476565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b61070d61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610793906123f3565b60405180910390fd5b80600a60016101000a81548160ff02191690831515021790555050565b60006107c6848484611641565b610887846107d261146e565b61088285604051806060016040528060288152602001612bb060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061083861146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b611476565b600190509392505050565b600081565b60006012905090565b60006109496108ad61146e565b8461094485600160006108be61146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141090919063ffffffff16565b611476565b6001905092915050565b600a60009054906101000a900460ff1681565b60006007600061097461146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f290612485565b60405180910390fd5b828290508585905014610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612517565b60405180910390fd5b5b84849050811015610ac857610ab4610a5a61146e565b868684818110610a6d57610a6c612537565b5b9050602002016020810190610a829190611ff9565b670de0b6b3a7640000868686818110610a9e57610a9d612537565b5b90506020020135610aaf9190612595565b611641565b600181610ac191906125ef565b9050610a44565b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b1f61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba5906123f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610c7961146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cff906123f3565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b610d3261146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906123f3565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e5590612375565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8190612375565b8015610ece5780601f10610ea357610100808354040283529160200191610ece565b820191906000526020600020905b815481529060010190602001808311610eb157829003601f168201915b5050505050905090565b610ee061146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906123f3565b60405180910390fd5b610f798282611aef565b610f838282610d2a565b5050565b600061104a610f9461146e565b8461104585604051806060016040528060258152602001612bd86025913960016000610fbe61146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b611476565b6001905092915050565b600061106861106161146e565b8484611641565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b61109a61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906123f3565b60405180910390fd5b670de0b6b3a76400006103e8600561113f6106fb565b6111499190612595565b6111539190612674565b61115d9190612674565b81101561119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690612717565b60405180910390fd5b670de0b6b3a7640000816111b39190612595565b60098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61124b61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d1906123f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561134a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611341906127a9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600080828461141f91906125ef565b905083811015611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612815565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906128a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d90612939565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116349190612035565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a8906129cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171890612a5d565b60405180910390fd5b600081141561173b5761173683836000611b90565b611a86565b600a60009054906101000a900460ff1615611a7a57611758610e1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117c65750611796610e1c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117ff5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611839575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a7957600a60019054906101000a900460ff166118c85761185a610e1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be90612ac9565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561196b5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119cd5760095461197c83610acf565b8261198791906125ef565b11156119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf90612b35565b60405180910390fd5b611a78565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a7757600954611a2a83610acf565b82611a3591906125ef565b1115611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90612b35565b60405180910390fd5b5b5b5b5b611a85838383611b90565b5b505050565b6000838311158290611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca9190611ec3565b60405180910390fd5b5060008385611ae29190612b55565b9050809150509392505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf7906129cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790612a5d565b60405180910390fd5b611c7b838383611e25565b611ce681604051806060016040528060268152602001612b8a602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d79816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e189190612035565b60405180910390a3505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e64578082015181840152602081019050611e49565b83811115611e73576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e9582611e2a565b611e9f8185611e35565b9350611eaf818560208601611e46565b611eb881611e79565b840191505092915050565b60006020820190508181036000830152611edd8184611e8a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f1a82611eef565b9050919050565b611f2a81611f0f565b8114611f3557600080fd5b50565b600081359050611f4781611f21565b92915050565b6000819050919050565b611f6081611f4d565b8114611f6b57600080fd5b50565b600081359050611f7d81611f57565b92915050565b60008060408385031215611f9a57611f99611ee5565b5b6000611fa885828601611f38565b9250506020611fb985828601611f6e565b9150509250929050565b60008115159050919050565b611fd881611fc3565b82525050565b6000602082019050611ff36000830184611fcf565b92915050565b60006020828403121561200f5761200e611ee5565b5b600061201d84828501611f38565b91505092915050565b61202f81611f4d565b82525050565b600060208201905061204a6000830184612026565b92915050565b61205981611fc3565b811461206457600080fd5b50565b60008135905061207681612050565b92915050565b60006020828403121561209257612091611ee5565b5b60006120a084828501612067565b91505092915050565b6000806000606084860312156120c2576120c1611ee5565b5b60006120d086828701611f38565b93505060206120e186828701611f38565b92505060406120f286828701611f6e565b9150509250925092565b61210581611f0f565b82525050565b600060208201905061212060008301846120fc565b92915050565b600060ff82169050919050565b61213c81612126565b82525050565b60006020820190506121576000830184612133565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126121825761218161215d565b5b8235905067ffffffffffffffff81111561219f5761219e612162565b5b6020830191508360208202830111156121bb576121ba612167565b5b9250929050565b60008083601f8401126121d8576121d761215d565b5b8235905067ffffffffffffffff8111156121f5576121f4612162565b5b60208301915083602082028301111561221157612210612167565b5b9250929050565b6000806000806040858703121561223257612231611ee5565b5b600085013567ffffffffffffffff8111156122505761224f611eea565b5b61225c8782880161216c565b9450945050602085013567ffffffffffffffff81111561227f5761227e611eea565b5b61228b878288016121c2565b925092505092959194509250565b600080604083850312156122b0576122af611ee5565b5b60006122be85828601611f38565b92505060206122cf85828601612067565b9150509250929050565b6000602082840312156122ef576122ee611ee5565b5b60006122fd84828501611f6e565b91505092915050565b6000806040838503121561231d5761231c611ee5565b5b600061232b85828601611f38565b925050602061233c85828601611f38565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061238d57607f821691505b602082108114156123a1576123a0612346565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123dd602083611e35565b91506123e8826123a7565b602082019050919050565b6000602082019050818103600083015261240c816123d0565b9050919050565b7f41697264726f702063616e206f6e6c7920626520646f6e65206279206578636c60008201527f756465642066726f6d2066656500000000000000000000000000000000000000602082015250565b600061246f602d83611e35565b915061247a82612413565b604082019050919050565b6000602082019050818103600083015261249e81612462565b9050919050565b7f486f6c6465727320616e6420616d6f756e74206c656e677468206d757374206260008201527f65207468652073616d6500000000000000000000000000000000000000000000602082015250565b6000612501602a83611e35565b915061250c826124a5565b604082019050919050565b60006020820190508181036000830152612530816124f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125a082611f4d565b91506125ab83611f4d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125e4576125e3612566565b5b828202905092915050565b60006125fa82611f4d565b915061260583611f4d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561263a57612639612566565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061267f82611f4d565b915061268a83611f4d565b92508261269a57612699612645565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000612701602483611e35565b915061270c826126a5565b604082019050919050565b60006020820190508181036000830152612730816126f4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612793602683611e35565b915061279e82612737565b604082019050919050565b600060208201905081810360008301526127c281612786565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006127ff601b83611e35565b915061280a826127c9565b602082019050919050565b6000602082019050818103600083015261282e816127f2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612891602483611e35565b915061289c82612835565b604082019050919050565b600060208201905081810360008301526128c081612884565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612923602283611e35565b915061292e826128c7565b604082019050919050565b6000602082019050818103600083015261295281612916565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129b5602583611e35565b91506129c082612959565b604082019050919050565b600060208201905081810360008301526129e4816129a8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a47602383611e35565b9150612a52826129eb565b604082019050919050565b60006020820190508181036000830152612a7681612a3a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612ab3601683611e35565b9150612abe82612a7d565b602082019050919050565b60006020820190508181036000830152612ae281612aa6565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612b1f601383611e35565b9150612b2a82612ae9565b602082019050919050565b60006020820190508181036000830152612b4e81612b12565b9050919050565b6000612b6082611f4d565b9150612b6b83611f4d565b925082821015612b7e57612b7d612566565b5b82820390509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f5b1a92803eb52df8859a57649ea11ead9160c2d2ee4fb7fe641f1a210a001e964736f6c63430008090033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063a457c2d71161008a578063c18bc19511610064578063c18bc19514610571578063dd62ed3e1461059a578063f2fde38b146105d7578063f8b45b051461060057610171565b8063a457c2d7146104ba578063a9059cbb146104f7578063b62496f51461053457610171565b8063715018a6146103d0578063751039fc146103e75780637571336a146104125780638da5cb5b1461043b57806395d89b41146104665780639a7a23d61461049157610171565b806327c8f8351161012357806327c8f835146102ac578063313ce567146102d757806339509351146103025780634a62bb651461033f57806365216a411461036a57806370a082311461039357610171565b806306fdde0314610176578063095ea7b3146101a157806310d5de53146101de57806318160ddd1461021b57806321fda6481461024657806323b872dd1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61062b565b6040516101989190611ec3565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611f83565b6106bd565b6040516101d59190611fde565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190611ff9565b6106db565b6040516102129190611fde565b60405180910390f35b34801561022757600080fd5b506102306106fb565b60405161023d9190612035565b60405180910390f35b34801561025257600080fd5b5061026d6004803603810190610268919061207c565b610705565b005b34801561027b57600080fd5b50610296600480360381019061029191906120a9565b6107b9565b6040516102a39190611fde565b60405180910390f35b3480156102b857600080fd5b506102c1610892565b6040516102ce919061210b565b60405180910390f35b3480156102e357600080fd5b506102ec610897565b6040516102f99190612142565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190611f83565b6108a0565b6040516103369190611fde565b60405180910390f35b34801561034b57600080fd5b50610354610953565b6040516103619190611fde565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190612218565b610966565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190611ff9565b610acf565b6040516103c79190612035565b60405180910390f35b3480156103dc57600080fd5b506103e5610b17565b005b3480156103f357600080fd5b506103fc610c6f565b6040516104099190611fde565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190612299565b610d2a565b005b34801561044757600080fd5b50610450610e1c565b60405161045d919061210b565b60405180910390f35b34801561047257600080fd5b5061047b610e46565b6040516104889190611ec3565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612299565b610ed8565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190611f83565b610f87565b6040516104ee9190611fde565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190611f83565b611054565b60405161052b9190611fde565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190611ff9565b611072565b6040516105689190611fde565b60405180910390f35b34801561057d57600080fd5b50610598600480360381019061059391906122d9565b611092565b005b3480156105a657600080fd5b506105c160048036038101906105bc9190612306565b6111bc565b6040516105ce9190612035565b60405180910390f35b3480156105e357600080fd5b506105fe60048036038101906105f99190611ff9565b611243565b005b34801561060c57600080fd5b5061061561140a565b6040516106229190612035565b60405180910390f35b60606003805461063a90612375565b80601f016020809104026020016040519081016040528092919081815260200182805461066690612375565b80156106b35780601f10610688576101008083540402835291602001916106b3565b820191906000526020600020905b81548152906001019060200180831161069657829003601f168201915b5050505050905090565b60006106d16106ca61146e565b8484611476565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b61070d61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610793906123f3565b60405180910390fd5b80600a60016101000a81548160ff02191690831515021790555050565b60006107c6848484611641565b610887846107d261146e565b61088285604051806060016040528060288152602001612bb060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061083861146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b611476565b600190509392505050565b600081565b60006012905090565b60006109496108ad61146e565b8461094485600160006108be61146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141090919063ffffffff16565b611476565b6001905092915050565b600a60009054906101000a900460ff1681565b60006007600061097461146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f290612485565b60405180910390fd5b828290508585905014610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612517565b60405180910390fd5b5b84849050811015610ac857610ab4610a5a61146e565b868684818110610a6d57610a6c612537565b5b9050602002016020810190610a829190611ff9565b670de0b6b3a7640000868686818110610a9e57610a9d612537565b5b90506020020135610aaf9190612595565b611641565b600181610ac191906125ef565b9050610a44565b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b1f61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba5906123f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610c7961146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cff906123f3565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b610d3261146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906123f3565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e5590612375565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8190612375565b8015610ece5780601f10610ea357610100808354040283529160200191610ece565b820191906000526020600020905b815481529060010190602001808311610eb157829003601f168201915b5050505050905090565b610ee061146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906123f3565b60405180910390fd5b610f798282611aef565b610f838282610d2a565b5050565b600061104a610f9461146e565b8461104585604051806060016040528060258152602001612bd86025913960016000610fbe61146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b611476565b6001905092915050565b600061106861106161146e565b8484611641565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b61109a61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906123f3565b60405180910390fd5b670de0b6b3a76400006103e8600561113f6106fb565b6111499190612595565b6111539190612674565b61115d9190612674565b81101561119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690612717565b60405180910390fd5b670de0b6b3a7640000816111b39190612595565b60098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61124b61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d1906123f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561134a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611341906127a9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600080828461141f91906125ef565b905083811015611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612815565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906128a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d90612939565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116349190612035565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a8906129cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171890612a5d565b60405180910390fd5b600081141561173b5761173683836000611b90565b611a86565b600a60009054906101000a900460ff1615611a7a57611758610e1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117c65750611796610e1c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117ff5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611839575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a7957600a60019054906101000a900460ff166118c85761185a610e1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be90612ac9565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561196b5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119cd5760095461197c83610acf565b8261198791906125ef565b11156119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf90612b35565b60405180910390fd5b611a78565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a7757600954611a2a83610acf565b82611a3591906125ef565b1115611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90612b35565b60405180910390fd5b5b5b5b5b611a85838383611b90565b5b505050565b6000838311158290611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca9190611ec3565b60405180910390fd5b5060008385611ae29190612b55565b9050809150509392505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf7906129cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790612a5d565b60405180910390fd5b611c7b838383611e25565b611ce681604051806060016040528060268152602001612b8a602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d79816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e189190612035565b60405180910390a3505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e64578082015181840152602081019050611e49565b83811115611e73576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e9582611e2a565b611e9f8185611e35565b9350611eaf818560208601611e46565b611eb881611e79565b840191505092915050565b60006020820190508181036000830152611edd8184611e8a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f1a82611eef565b9050919050565b611f2a81611f0f565b8114611f3557600080fd5b50565b600081359050611f4781611f21565b92915050565b6000819050919050565b611f6081611f4d565b8114611f6b57600080fd5b50565b600081359050611f7d81611f57565b92915050565b60008060408385031215611f9a57611f99611ee5565b5b6000611fa885828601611f38565b9250506020611fb985828601611f6e565b9150509250929050565b60008115159050919050565b611fd881611fc3565b82525050565b6000602082019050611ff36000830184611fcf565b92915050565b60006020828403121561200f5761200e611ee5565b5b600061201d84828501611f38565b91505092915050565b61202f81611f4d565b82525050565b600060208201905061204a6000830184612026565b92915050565b61205981611fc3565b811461206457600080fd5b50565b60008135905061207681612050565b92915050565b60006020828403121561209257612091611ee5565b5b60006120a084828501612067565b91505092915050565b6000806000606084860312156120c2576120c1611ee5565b5b60006120d086828701611f38565b93505060206120e186828701611f38565b92505060406120f286828701611f6e565b9150509250925092565b61210581611f0f565b82525050565b600060208201905061212060008301846120fc565b92915050565b600060ff82169050919050565b61213c81612126565b82525050565b60006020820190506121576000830184612133565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126121825761218161215d565b5b8235905067ffffffffffffffff81111561219f5761219e612162565b5b6020830191508360208202830111156121bb576121ba612167565b5b9250929050565b60008083601f8401126121d8576121d761215d565b5b8235905067ffffffffffffffff8111156121f5576121f4612162565b5b60208301915083602082028301111561221157612210612167565b5b9250929050565b6000806000806040858703121561223257612231611ee5565b5b600085013567ffffffffffffffff8111156122505761224f611eea565b5b61225c8782880161216c565b9450945050602085013567ffffffffffffffff81111561227f5761227e611eea565b5b61228b878288016121c2565b925092505092959194509250565b600080604083850312156122b0576122af611ee5565b5b60006122be85828601611f38565b92505060206122cf85828601612067565b9150509250929050565b6000602082840312156122ef576122ee611ee5565b5b60006122fd84828501611f6e565b91505092915050565b6000806040838503121561231d5761231c611ee5565b5b600061232b85828601611f38565b925050602061233c85828601611f38565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061238d57607f821691505b602082108114156123a1576123a0612346565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123dd602083611e35565b91506123e8826123a7565b602082019050919050565b6000602082019050818103600083015261240c816123d0565b9050919050565b7f41697264726f702063616e206f6e6c7920626520646f6e65206279206578636c60008201527f756465642066726f6d2066656500000000000000000000000000000000000000602082015250565b600061246f602d83611e35565b915061247a82612413565b604082019050919050565b6000602082019050818103600083015261249e81612462565b9050919050565b7f486f6c6465727320616e6420616d6f756e74206c656e677468206d757374206260008201527f65207468652073616d6500000000000000000000000000000000000000000000602082015250565b6000612501602a83611e35565b915061250c826124a5565b604082019050919050565b60006020820190508181036000830152612530816124f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125a082611f4d565b91506125ab83611f4d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125e4576125e3612566565b5b828202905092915050565b60006125fa82611f4d565b915061260583611f4d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561263a57612639612566565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061267f82611f4d565b915061268a83611f4d565b92508261269a57612699612645565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000612701602483611e35565b915061270c826126a5565b604082019050919050565b60006020820190508181036000830152612730816126f4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612793602683611e35565b915061279e82612737565b604082019050919050565b600060208201905081810360008301526127c281612786565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006127ff601b83611e35565b915061280a826127c9565b602082019050919050565b6000602082019050818103600083015261282e816127f2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612891602483611e35565b915061289c82612835565b604082019050919050565b600060208201905081810360008301526128c081612884565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612923602283611e35565b915061292e826128c7565b604082019050919050565b6000602082019050818103600083015261295281612916565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129b5602583611e35565b91506129c082612959565b604082019050919050565b600060208201905081810360008301526129e4816129a8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a47602383611e35565b9150612a52826129eb565b604082019050919050565b60006020820190508181036000830152612a7681612a3a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612ab3601683611e35565b9150612abe82612a7d565b602082019050919050565b60006020820190508181036000830152612ae281612aa6565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612b1f601383611e35565b9150612b2a82612ae9565b602082019050919050565b60006020820190508181036000830152612b4e81612b12565b9050919050565b6000612b6082611f4d565b9150612b6b83611f4d565b925082821015612b7e57612b7d612566565b5b82820390509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f5b1a92803eb52df8859a57649ea11ead9160c2d2ee4fb7fe641f1a210a001e964736f6c63430008090033

Deployed Bytecode Sourcemap

21715:3883:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4736:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6903:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21915:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5856:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22839:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7554:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21795:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5698:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8318:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22049:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23491:502;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6027:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19197:148;;;;;;;;;;;;;:::i;:::-;;22986:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23339:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18555:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4955:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24001:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9039:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6367:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21850:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23116:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6605:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19500:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22014:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4736:100;4790:13;4823:5;4816:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4736:100;:::o;6903:169::-;6986:4;7003:39;7012:12;:10;:12::i;:::-;7026:7;7035:6;7003:8;:39::i;:::-;7060:4;7053:11;;6903:169;;;;:::o;21915:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;5856:108::-;5917:7;5944:12;;5937:19;;5856:108;:::o;22839:95::-;18777:12;:10;:12::i;:::-;18767:22;;:6;;;;;;;;;;;:22;;;18759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22918:8:::1;22909:6;;:17;;;;;;;;;;;;;;;;;;22839:95:::0;:::o;7554:355::-;7694:4;7711:36;7721:6;7729:9;7740:6;7711:9;:36::i;:::-;7758:121;7767:6;7775:12;:10;:12::i;:::-;7789:89;7827:6;7789:89;;;;;;;;;;;;;;;;;:11;:19;7801:6;7789:19;;;;;;;;;;;;;;;:33;7809:12;:10;:12::i;:::-;7789:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7758:8;:121::i;:::-;7897:4;7890:11;;7554:355;;;;;:::o;21795:48::-;21841:1;21795:48;:::o;5698:93::-;5756:5;5781:2;5774:9;;5698:93;:::o;8318:218::-;8406:4;8423:83;8432:12;:10;:12::i;:::-;8446:7;8455:50;8494:10;8455:11;:25;8467:12;:10;:12::i;:::-;8455:25;;;;;;;;;;;;;;;:34;8481:7;8455:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8423:8;:83::i;:::-;8524:4;8517:11;;8318:218;;;;:::o;22049:33::-;;;;;;;;;;;;;:::o;23491:502::-;23587:16;23626:31;:45;23658:12;:10;:12::i;:::-;23626:45;;;;;;;;;;;;;;;;;;;;;;;;;23618:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;23761:7;;:14;;23740:10;;:17;;:35;23732:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;23833:153;23850:10;;:17;;23839:8;:28;23833:153;;;23879:73;23889:12;:10;:12::i;:::-;23903:10;;23914:8;23903:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;23945:6;23925:7;;23933:8;23925:17;;;;;;;:::i;:::-;;;;;;;;:26;;;;:::i;:::-;23879:9;:73::i;:::-;23975:1;23963:13;;;;;:::i;:::-;;;23833:153;;;23576:417;23491:502;;;;:::o;6027:127::-;6101:7;6128:9;:18;6138:7;6128:18;;;;;;;;;;;;;;;;6121:25;;6027:127;;;:::o;19197:148::-;18777:12;:10;:12::i;:::-;18767:22;;:6;;;;;;;;;;;:22;;;18759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19304:1:::1;19267:40;;19288:6;;;;;;;;;;;19267:40;;;;;;;;;;;;19335:1;19318:6;;:19;;;;;;;;;;;;;;;;;;19197:148::o:0;22986:120::-;23038:4;18777:12;:10;:12::i;:::-;18767:22;;:6;;;;;;;;;;;:22;;;18759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23071:5:::1;23054:14;;:22;;;;;;;;;;;;;;;;;;23094:4;23087:11;;22986:120:::0;:::o;23339:144::-;18777:12;:10;:12::i;:::-;18767:22;;:6;;;;;;;;;;;:22;;;18759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23471:4:::1;23429:31;:39;23461:6;23429:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;23339:144:::0;;:::o;18555:79::-;18593:7;18620:6;;;;;;;;;;;18613:13;;18555:79;:::o;4955:104::-;5011:13;5044:7;5037:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4955:104;:::o;24001:191::-;18777:12;:10;:12::i;:::-;18767:22;;:6;;;;;;;;;;;:22;;;18759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24094:41:::1;24123:4;24129:5;24094:28;:41::i;:::-;24146:38;24172:4;24178:5;24146:25;:38::i;:::-;24001:191:::0;;:::o;9039:269::-;9132:4;9149:129;9158:12;:10;:12::i;:::-;9172:7;9181:96;9220:15;9181:96;;;;;;;;;;;;;;;;;:11;:25;9193:12;:10;:12::i;:::-;9181:25;;;;;;;;;;;;;;;:34;9207:7;9181:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9149:8;:129::i;:::-;9296:4;9289:11;;9039:269;;;;:::o;6367:175::-;6453:4;6470:42;6480:12;:10;:12::i;:::-;6494:9;6505:6;6470:9;:42::i;:::-;6530:4;6523:11;;6367:175;;;;:::o;21850:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;23116:215::-;18777:12;:10;:12::i;:::-;18767:22;;:6;;;;;;;;;;;:22;;;18759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23238:4:::1;23232;23228:1;23212:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;23211:31;;;;:::i;:::-;23201:6;:41;;23193:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;23316:6;23306;:17;;;;:::i;:::-;23294:9;:29;;;;23116:215:::0;:::o;6605:151::-;6694:7;6721:11;:18;6733:5;6721:18;;;;;;;;;;;;;;;:27;6740:7;6721:27;;;;;;;;;;;;;;;;6714:34;;6605:151;;;;:::o;19500:244::-;18777:12;:10;:12::i;:::-;18767:22;;:6;;;;;;;;;;;:22;;;18759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19609:1:::1;19589:22;;:8;:22;;;;19581:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19699:8;19670:38;;19691:6;;;;;;;;;;;19670:38;;;;;;;;;;;;19728:8;19719:6;;:17;;;;;;;;;;;;;;;;;;19500:244:::0;:::o;22014:24::-;;;;:::o;13603:181::-;13661:7;13681:9;13697:1;13693;:5;;;;:::i;:::-;13681:17;;13722:1;13717;:6;;13709:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;13775:1;13768:8;;;13603:181;;;;:::o;474:98::-;527:7;554:10;547:17;;474:98;:::o;12225:380::-;12378:1;12361:19;;:5;:19;;;;12353:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12459:1;12440:21;;:7;:21;;;;12432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12543:6;12513:11;:18;12525:5;12513:18;;;;;;;;;;;;;;;:27;12532:7;12513:27;;;;;;;;;;;;;;;:36;;;;12581:7;12565:32;;12574:5;12565:32;;;12590:6;12565:32;;;;;;:::i;:::-;;;;;;;;12225:380;;;:::o;24398:1189::-;24546:1;24530:18;;:4;:18;;;;24522:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24623:1;24609:16;;:2;:16;;;;24601:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24690:1;24680:6;:11;24677:92;;;24708:28;24724:4;24730:2;24734:1;24708:15;:28::i;:::-;24751:7;;24677:92;24784:14;;;;;;;;;;;24781:753;;;24844:7;:5;:7::i;:::-;24836:15;;:4;:15;;;;:49;;;;;24878:7;:5;:7::i;:::-;24872:13;;:2;:13;;;;24836:49;:86;;;;;24920:1;24906:16;;:2;:16;;;;24836:86;:128;;;;;24957:6;24943:21;;:2;:21;;;;24836:128;24814:709;;;25000:6;;;;;;;;;;;24996:100;;25044:7;:5;:7::i;:::-;25036:15;;:4;:15;;;25028:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;24996:100;25146:25;:31;25172:4;25146:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;25182:31;:35;25214:2;25182:35;;;;;;;;;;;;;;;;;;;;;;;;;25181:36;25146:71;25142:366;;;25280:9;;25263:13;25273:2;25263:9;:13::i;:::-;25254:6;:22;;;;:::i;:::-;:35;;25246:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25142:366;;;25362:31;:35;25394:2;25362:35;;;;;;;;;;;;;;;;;;;;;;;;;25358:150;;25455:9;;25438:13;25448:2;25438:9;:13::i;:::-;25429:6;:22;;;;:::i;:::-;:35;;25421:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25358:150;25142:366;24814:709;24781:753;25546:33;25562:4;25568:2;25572:6;25546:15;:33::i;:::-;24398:1189;;;;:::o;14506:192::-;14592:7;14625:1;14620;:6;;14628:12;14612:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;14652:9;14668:1;14664;:5;;;;:::i;:::-;14652:17;;14689:1;14682:8;;;14506:192;;;;;:::o;24200:188::-;24317:5;24283:25;:31;24309:4;24283:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;24374:5;24340:40;;24368:4;24340:40;;;;;;;;;;;;24200:188;;:::o;9798:573::-;9956:1;9938:20;;:6;:20;;;;9930:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10040:1;10019:23;;:9;:23;;;;10011:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10095:47;10116:6;10124:9;10135:6;10095:20;:47::i;:::-;10175:71;10197:6;10175:71;;;;;;;;;;;;;;;;;:9;:17;10185:6;10175:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;10155:9;:17;10165:6;10155:17;;;;;;;;;;;;;;;:91;;;;10280:32;10305:6;10280:9;:20;10290:9;10280:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10257:9;:20;10267:9;10257:20;;;;;;;;;;;;;;;:55;;;;10345:9;10328:35;;10337:6;10328:35;;;10356:6;10328:35;;;;;;:::i;:::-;;;;;;;;9798:573;;;:::o;13208:125::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:116::-;4251:21;4266:5;4251:21;:::i;:::-;4244:5;4241:32;4231:60;;4287:1;4284;4277:12;4231:60;4181:116;:::o;4303:133::-;4346:5;4384:6;4371:20;4362:29;;4400:30;4424:5;4400:30;:::i;:::-;4303:133;;;;:::o;4442:323::-;4498:6;4547:2;4535:9;4526:7;4522:23;4518:32;4515:119;;;4553:79;;:::i;:::-;4515:119;4673:1;4698:50;4740:7;4731:6;4720:9;4716:22;4698:50;:::i;:::-;4688:60;;4644:114;4442:323;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:118::-;5483:24;5501:5;5483:24;:::i;:::-;5478:3;5471:37;5396:118;;:::o;5520:222::-;5613:4;5651:2;5640:9;5636:18;5628:26;;5664:71;5732:1;5721:9;5717:17;5708:6;5664:71;:::i;:::-;5520:222;;;;:::o;5748:86::-;5783:7;5823:4;5816:5;5812:16;5801:27;;5748:86;;;:::o;5840:112::-;5923:22;5939:5;5923:22;:::i;:::-;5918:3;5911:35;5840:112;;:::o;5958:214::-;6047:4;6085:2;6074:9;6070:18;6062:26;;6098:67;6162:1;6151:9;6147:17;6138:6;6098:67;:::i;:::-;5958:214;;;;:::o;6178:117::-;6287:1;6284;6277:12;6301:117;6410:1;6407;6400:12;6424:117;6533:1;6530;6523:12;6564:568;6637:8;6647:6;6697:3;6690:4;6682:6;6678:17;6674:27;6664:122;;6705:79;;:::i;:::-;6664:122;6818:6;6805:20;6795:30;;6848:18;6840:6;6837:30;6834:117;;;6870:79;;:::i;:::-;6834:117;6984:4;6976:6;6972:17;6960:29;;7038:3;7030:4;7022:6;7018:17;7008:8;7004:32;7001:41;6998:128;;;7045:79;;:::i;:::-;6998:128;6564:568;;;;;:::o;7155:::-;7228:8;7238:6;7288:3;7281:4;7273:6;7269:17;7265:27;7255:122;;7296:79;;:::i;:::-;7255:122;7409:6;7396:20;7386:30;;7439:18;7431:6;7428:30;7425:117;;;7461:79;;:::i;:::-;7425:117;7575:4;7567:6;7563:17;7551:29;;7629:3;7621:4;7613:6;7609:17;7599:8;7595:32;7592:41;7589:128;;;7636:79;;:::i;:::-;7589:128;7155:568;;;;;:::o;7729:934::-;7851:6;7859;7867;7875;7924:2;7912:9;7903:7;7899:23;7895:32;7892:119;;;7930:79;;:::i;:::-;7892:119;8078:1;8067:9;8063:17;8050:31;8108:18;8100:6;8097:30;8094:117;;;8130:79;;:::i;:::-;8094:117;8243:80;8315:7;8306:6;8295:9;8291:22;8243:80;:::i;:::-;8225:98;;;;8021:312;8400:2;8389:9;8385:18;8372:32;8431:18;8423:6;8420:30;8417:117;;;8453:79;;:::i;:::-;8417:117;8566:80;8638:7;8629:6;8618:9;8614:22;8566:80;:::i;:::-;8548:98;;;;8343:313;7729:934;;;;;;;:::o;8669:468::-;8734:6;8742;8791:2;8779:9;8770:7;8766:23;8762:32;8759:119;;;8797:79;;:::i;:::-;8759:119;8917:1;8942:53;8987:7;8978:6;8967:9;8963:22;8942:53;:::i;:::-;8932:63;;8888:117;9044:2;9070:50;9112:7;9103:6;9092:9;9088:22;9070:50;:::i;:::-;9060:60;;9015:115;8669:468;;;;;:::o;9143:329::-;9202:6;9251:2;9239:9;9230:7;9226:23;9222:32;9219:119;;;9257:79;;:::i;:::-;9219:119;9377:1;9402:53;9447:7;9438:6;9427:9;9423:22;9402:53;:::i;:::-;9392:63;;9348:117;9143:329;;;;:::o;9478:474::-;9546:6;9554;9603:2;9591:9;9582:7;9578:23;9574:32;9571:119;;;9609:79;;:::i;:::-;9571:119;9729:1;9754:53;9799:7;9790:6;9779:9;9775:22;9754:53;:::i;:::-;9744:63;;9700:117;9856:2;9882:53;9927:7;9918:6;9907:9;9903:22;9882:53;:::i;:::-;9872:63;;9827:118;9478:474;;;;;:::o;9958:180::-;10006:77;10003:1;9996:88;10103:4;10100:1;10093:15;10127:4;10124:1;10117:15;10144:320;10188:6;10225:1;10219:4;10215:12;10205:22;;10272:1;10266:4;10262:12;10293:18;10283:81;;10349:4;10341:6;10337:17;10327:27;;10283:81;10411:2;10403:6;10400:14;10380:18;10377:38;10374:84;;;10430:18;;:::i;:::-;10374:84;10195:269;10144:320;;;:::o;10470:182::-;10610:34;10606:1;10598:6;10594:14;10587:58;10470:182;:::o;10658:366::-;10800:3;10821:67;10885:2;10880:3;10821:67;:::i;:::-;10814:74;;10897:93;10986:3;10897:93;:::i;:::-;11015:2;11010:3;11006:12;10999:19;;10658:366;;;:::o;11030:419::-;11196:4;11234:2;11223:9;11219:18;11211:26;;11283:9;11277:4;11273:20;11269:1;11258:9;11254:17;11247:47;11311:131;11437:4;11311:131;:::i;:::-;11303:139;;11030:419;;;:::o;11455:232::-;11595:34;11591:1;11583:6;11579:14;11572:58;11664:15;11659:2;11651:6;11647:15;11640:40;11455:232;:::o;11693:366::-;11835:3;11856:67;11920:2;11915:3;11856:67;:::i;:::-;11849:74;;11932:93;12021:3;11932:93;:::i;:::-;12050:2;12045:3;12041:12;12034:19;;11693:366;;;:::o;12065:419::-;12231:4;12269:2;12258:9;12254:18;12246:26;;12318:9;12312:4;12308:20;12304:1;12293:9;12289:17;12282:47;12346:131;12472:4;12346:131;:::i;:::-;12338:139;;12065:419;;;:::o;12490:229::-;12630:34;12626:1;12618:6;12614:14;12607:58;12699:12;12694:2;12686:6;12682:15;12675:37;12490:229;:::o;12725:366::-;12867:3;12888:67;12952:2;12947:3;12888:67;:::i;:::-;12881:74;;12964:93;13053:3;12964:93;:::i;:::-;13082:2;13077:3;13073:12;13066:19;;12725:366;;;:::o;13097:419::-;13263:4;13301:2;13290:9;13286:18;13278:26;;13350:9;13344:4;13340:20;13336:1;13325:9;13321:17;13314:47;13378:131;13504:4;13378:131;:::i;:::-;13370:139;;13097:419;;;:::o;13522:180::-;13570:77;13567:1;13560:88;13667:4;13664:1;13657:15;13691:4;13688:1;13681:15;13708:180;13756:77;13753:1;13746:88;13853:4;13850:1;13843:15;13877:4;13874:1;13867:15;13894:348;13934:7;13957:20;13975:1;13957:20;:::i;:::-;13952:25;;13991:20;14009:1;13991:20;:::i;:::-;13986:25;;14179:1;14111:66;14107:74;14104:1;14101:81;14096:1;14089:9;14082:17;14078:105;14075:131;;;14186:18;;:::i;:::-;14075:131;14234:1;14231;14227:9;14216:20;;13894:348;;;;:::o;14248:305::-;14288:3;14307:20;14325:1;14307:20;:::i;:::-;14302:25;;14341:20;14359:1;14341:20;:::i;:::-;14336:25;;14495:1;14427:66;14423:74;14420:1;14417:81;14414:107;;;14501:18;;:::i;:::-;14414:107;14545:1;14542;14538:9;14531:16;;14248:305;;;;:::o;14559:180::-;14607:77;14604:1;14597:88;14704:4;14701:1;14694:15;14728:4;14725:1;14718:15;14745:185;14785:1;14802:20;14820:1;14802:20;:::i;:::-;14797:25;;14836:20;14854:1;14836:20;:::i;:::-;14831:25;;14875:1;14865:35;;14880:18;;:::i;:::-;14865:35;14922:1;14919;14915:9;14910:14;;14745:185;;;;:::o;14936:223::-;15076:34;15072:1;15064:6;15060:14;15053:58;15145:6;15140:2;15132:6;15128:15;15121:31;14936:223;:::o;15165:366::-;15307:3;15328:67;15392:2;15387:3;15328:67;:::i;:::-;15321:74;;15404:93;15493:3;15404:93;:::i;:::-;15522:2;15517:3;15513:12;15506:19;;15165:366;;;:::o;15537:419::-;15703:4;15741:2;15730:9;15726:18;15718:26;;15790:9;15784:4;15780:20;15776:1;15765:9;15761:17;15754:47;15818:131;15944:4;15818:131;:::i;:::-;15810:139;;15537:419;;;:::o;15962:225::-;16102:34;16098:1;16090:6;16086:14;16079:58;16171:8;16166:2;16158:6;16154:15;16147:33;15962:225;:::o;16193:366::-;16335:3;16356:67;16420:2;16415:3;16356:67;:::i;:::-;16349:74;;16432:93;16521:3;16432:93;:::i;:::-;16550:2;16545:3;16541:12;16534:19;;16193:366;;;:::o;16565:419::-;16731:4;16769:2;16758:9;16754:18;16746:26;;16818:9;16812:4;16808:20;16804:1;16793:9;16789:17;16782:47;16846:131;16972:4;16846:131;:::i;:::-;16838:139;;16565:419;;;:::o;16990:177::-;17130:29;17126:1;17118:6;17114:14;17107:53;16990:177;:::o;17173:366::-;17315:3;17336:67;17400:2;17395:3;17336:67;:::i;:::-;17329:74;;17412:93;17501:3;17412:93;:::i;:::-;17530:2;17525:3;17521:12;17514:19;;17173:366;;;:::o;17545:419::-;17711:4;17749:2;17738:9;17734:18;17726:26;;17798:9;17792:4;17788:20;17784:1;17773:9;17769:17;17762:47;17826:131;17952:4;17826:131;:::i;:::-;17818:139;;17545:419;;;:::o;17970:223::-;18110:34;18106:1;18098:6;18094:14;18087:58;18179:6;18174:2;18166:6;18162:15;18155:31;17970:223;:::o;18199:366::-;18341:3;18362:67;18426:2;18421:3;18362:67;:::i;:::-;18355:74;;18438:93;18527:3;18438:93;:::i;:::-;18556:2;18551:3;18547:12;18540:19;;18199:366;;;:::o;18571:419::-;18737:4;18775:2;18764:9;18760:18;18752:26;;18824:9;18818:4;18814:20;18810:1;18799:9;18795:17;18788:47;18852:131;18978:4;18852:131;:::i;:::-;18844:139;;18571:419;;;:::o;18996:221::-;19136:34;19132:1;19124:6;19120:14;19113:58;19205:4;19200:2;19192:6;19188:15;19181:29;18996:221;:::o;19223:366::-;19365:3;19386:67;19450:2;19445:3;19386:67;:::i;:::-;19379:74;;19462:93;19551:3;19462:93;:::i;:::-;19580:2;19575:3;19571:12;19564:19;;19223:366;;;:::o;19595:419::-;19761:4;19799:2;19788:9;19784:18;19776:26;;19848:9;19842:4;19838:20;19834:1;19823:9;19819:17;19812:47;19876:131;20002:4;19876:131;:::i;:::-;19868:139;;19595:419;;;:::o;20020:224::-;20160:34;20156:1;20148:6;20144:14;20137:58;20229:7;20224:2;20216:6;20212:15;20205:32;20020:224;:::o;20250:366::-;20392:3;20413:67;20477:2;20472:3;20413:67;:::i;:::-;20406:74;;20489:93;20578:3;20489:93;:::i;:::-;20607:2;20602:3;20598:12;20591:19;;20250:366;;;:::o;20622:419::-;20788:4;20826:2;20815:9;20811:18;20803:26;;20875:9;20869:4;20865:20;20861:1;20850:9;20846:17;20839:47;20903:131;21029:4;20903:131;:::i;:::-;20895:139;;20622:419;;;:::o;21047:222::-;21187:34;21183:1;21175:6;21171:14;21164:58;21256:5;21251:2;21243:6;21239:15;21232:30;21047:222;:::o;21275:366::-;21417:3;21438:67;21502:2;21497:3;21438:67;:::i;:::-;21431:74;;21514:93;21603:3;21514:93;:::i;:::-;21632:2;21627:3;21623:12;21616:19;;21275:366;;;:::o;21647:419::-;21813:4;21851:2;21840:9;21836:18;21828:26;;21900:9;21894:4;21890:20;21886:1;21875:9;21871:17;21864:47;21928:131;22054:4;21928:131;:::i;:::-;21920:139;;21647:419;;;:::o;22072:172::-;22212:24;22208:1;22200:6;22196:14;22189:48;22072:172;:::o;22250:366::-;22392:3;22413:67;22477:2;22472:3;22413:67;:::i;:::-;22406:74;;22489:93;22578:3;22489:93;:::i;:::-;22607:2;22602:3;22598:12;22591:19;;22250:366;;;:::o;22622:419::-;22788:4;22826:2;22815:9;22811:18;22803:26;;22875:9;22869:4;22865:20;22861:1;22850:9;22846:17;22839:47;22903:131;23029:4;22903:131;:::i;:::-;22895:139;;22622:419;;;:::o;23047:169::-;23187:21;23183:1;23175:6;23171:14;23164:45;23047:169;:::o;23222:366::-;23364:3;23385:67;23449:2;23444:3;23385:67;:::i;:::-;23378:74;;23461:93;23550:3;23461:93;:::i;:::-;23579:2;23574:3;23570:12;23563:19;;23222:366;;;:::o;23594:419::-;23760:4;23798:2;23787:9;23783:18;23775:26;;23847:9;23841:4;23837:20;23833:1;23822:9;23818:17;23811:47;23875:131;24001:4;23875:131;:::i;:::-;23867:139;;23594:419;;;:::o;24019:191::-;24059:4;24079:20;24097:1;24079:20;:::i;:::-;24074:25;;24113:20;24131:1;24113:20;:::i;:::-;24108:25;;24152:1;24149;24146:8;24143:34;;;24157:18;;:::i;:::-;24143:34;24202:1;24199;24195:9;24187:17;;24019:191;;;;:::o

Swarm Source

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