ETH Price: $2,482.68 (+0.23%)

Token

Mind Readers (SATORI)
 

Overview

Max Total Supply

88,000,000,000 SATORI

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,120,180,892.609412141277273709 SATORI

Value
$0.00
0x32b5640f17141c2e23B42C28a754c67e76fb7df6
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Satori

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-28
*/

// 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 Satori 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 public tradingActive = false;

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

    constructor() ERC20("Mind Readers", "SATORI") {

        uint256 totalSupply = 88000000000 * 1e18;

        maxWallet = 1760000000 * 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 setTrading(bool _tradingOpen) public onlyOwner {
        tradingActive = _tradingOpen;
    }

    // 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 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(!tradingActive){
                  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":"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":[],"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":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}]

60806040526001600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600c81526020017f4d696e64205265616465727300000000000000000000000000000000000000008152506040518060400160405280600681526020017f5341544f524900000000000000000000000000000000000000000000000000008152508160039080519060200190620000cc92919062000567565b508060049080519060200190620000e592919062000567565b5050506000620000fa6200022160201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006c011c57e4d6efac14efc000000090506b05afd67f2dc0e1b2e0000000600981905550620001e0620001d26200022960201b60201c565b60016200025360201b60201c565b620001f33060016200025360201b60201c565b6200020861dead60016200025360201b60201c565b6200021a33826200035060201b60201c565b50620008a7565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620002636200022160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620002f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ec9062000678565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003ba90620006ea565b60405180910390fd5b620003d760008383620004ff60201b60201c565b620003f3816002546200050460201b620012bc1790919060201c565b60028190555062000451816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200050460201b620012bc1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004f3919062000727565b60405180910390a35050565b505050565b600080828462000515919062000773565b9050838110156200055d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005549062000820565b60405180910390fd5b8091505092915050565b828054620005759062000871565b90600052602060002090601f016020900481019282620005995760008555620005e5565b82601f10620005b457805160ff1916838001178555620005e5565b82800160010185558215620005e5579182015b82811115620005e4578251825591602001919060010190620005c7565b5b509050620005f49190620005f8565b5090565b5b8082111562000613576000816000905550600101620005f9565b5090565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200066060208362000617565b91506200066d8262000628565b602082019050919050565b60006020820190508181036000830152620006938162000651565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620006d2601f8362000617565b9150620006df826200069a565b602082019050919050565b600060208201905081810360008301526200070581620006c3565b9050919050565b6000819050919050565b62000721816200070c565b82525050565b60006020820190506200073e600083018462000716565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000780826200070c565b91506200078d836200070c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007c557620007c462000744565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000808601b8362000617565b91506200081582620007d0565b602082019050919050565b600060208201905081810360008301526200083b81620007f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200088a57607f821691505b60208210811415620008a157620008a062000842565b5b50919050565b61284a80620008b76000396000f3fe60806040526004361061016a5760003560e01c80637571336a116100d1578063a9059cbb1161008a578063c18bc19511610064578063c18bc19514610573578063dd62ed3e1461059c578063f2fde38b146105d9578063f8b45b051461060257610171565b8063a9059cbb146104ce578063b62496f51461050b578063bbc0c7421461054857610171565b80637571336a146103c05780638da5cb5b146103e95780638f70ccf71461041457806395d89b411461043d5780639a7a23d614610468578063a457c2d71461049157610171565b8063313ce56711610123578063313ce567146102ae57806339509351146102d95780634a62bb651461031657806370a0823114610341578063715018a61461037e578063751039fc1461039557610171565b806306fdde0314610176578063095ea7b3146101a157806310d5de53146101de57806318160ddd1461021b57806323b872dd1461024657806327c8f8351461028357610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61062d565b6040516101989190611d6f565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611e2a565b6106bf565b6040516101d59190611e85565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190611ea0565b6106dd565b6040516102129190611e85565b60405180910390f35b34801561022757600080fd5b506102306106fd565b60405161023d9190611edc565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190611ef7565b610707565b60405161027a9190611e85565b60405180910390f35b34801561028f57600080fd5b506102986107e0565b6040516102a59190611f59565b60405180910390f35b3480156102ba57600080fd5b506102c36107e5565b6040516102d09190611f90565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb9190611e2a565b6107ee565b60405161030d9190611e85565b60405180910390f35b34801561032257600080fd5b5061032b6108a1565b6040516103389190611e85565b60405180910390f35b34801561034d57600080fd5b5061036860048036038101906103639190611ea0565b6108b4565b6040516103759190611edc565b60405180910390f35b34801561038a57600080fd5b506103936108fc565b005b3480156103a157600080fd5b506103aa610a54565b6040516103b79190611e85565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611fd7565b610b0f565b005b3480156103f557600080fd5b506103fe610c01565b60405161040b9190611f59565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190612017565b610c2b565b005b34801561044957600080fd5b50610452610cdf565b60405161045f9190611d6f565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a9190611fd7565b610d71565b005b34801561049d57600080fd5b506104b860048036038101906104b39190611e2a565b610e20565b6040516104c59190611e85565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190611e2a565b610eed565b6040516105029190611e85565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d9190611ea0565b610f0b565b60405161053f9190611e85565b60405180910390f35b34801561055457600080fd5b5061055d610f2b565b60405161056a9190611e85565b60405180910390f35b34801561057f57600080fd5b5061059a60048036038101906105959190612044565b610f3e565b005b3480156105a857600080fd5b506105c360048036038101906105be9190612071565b611068565b6040516105d09190611edc565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb9190611ea0565b6110ef565b005b34801561060e57600080fd5b506106176112b6565b6040516106249190611edc565b60405180910390f35b60606003805461063c906120e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610668906120e0565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b5050505050905090565b60006106d36106cc61131a565b8484611322565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60006107148484846114ed565b6107d58461072061131a565b6107d0856040518060600160405280602881526020016127c860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061078661131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b611322565b600190509392505050565b600081565b60006012905090565b60006108976107fb61131a565b84610892856001600061080c61131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc90919063ffffffff16565b611322565b6001905092915050565b600a60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090461131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a9061215e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610a5e61131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae49061215e565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b610b1761131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d9061215e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c3361131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb99061215e565b60405180910390fd5b80600a60016101000a81548160ff02191690831515021790555050565b606060048054610cee906120e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1a906120e0565b8015610d675780601f10610d3c57610100808354040283529160200191610d67565b820191906000526020600020905b815481529060010190602001808311610d4a57829003601f168201915b5050505050905090565b610d7961131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff9061215e565b60405180910390fd5b610e12828261199b565b610e1c8282610b0f565b5050565b6000610ee3610e2d61131a565b84610ede856040518060600160405280602581526020016127f06025913960016000610e5761131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b611322565b6001905092915050565b6000610f01610efa61131a565b84846114ed565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b610f4661131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc9061215e565b60405180910390fd5b670de0b6b3a76400006103e86005610feb6106fd565b610ff591906121ad565b610fff9190612236565b6110099190612236565b81101561104b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611042906122d9565b60405180910390fd5b670de0b6b3a76400008161105f91906121ad565b60098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110f761131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d9061215e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed9061236b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60008082846112cb919061238b565b905083811015611310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113079061242d565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611392576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611389906124bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990612551565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114e09190611edc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611554906125e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c490612675565b60405180910390fd5b60008114156115e7576115e283836000611a3c565b611932565b600a60009054906101000a900460ff161561192657611604610c01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116725750611642610c01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116ab5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116e5575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561192557600a60019054906101000a900460ff1661177457611706610c01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a906126e1565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156118175750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561187957600954611828836108b4565b82611833919061238b565b1115611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b9061274d565b60405180910390fd5b611924565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611923576009546118d6836108b4565b826118e1919061238b565b1115611922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119199061274d565b60405180910390fd5b5b5b5b5b611931838383611a3c565b5b505050565b600083831115829061197f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119769190611d6f565b60405180910390fd5b506000838561198e919061276d565b9050809150509392505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa3906125e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1390612675565b60405180910390fd5b611b27838383611cd1565b611b92816040518060600160405280602681526020016127a2602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c25816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc49190611edc565b60405180910390a3505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d10578082015181840152602081019050611cf5565b83811115611d1f576000848401525b50505050565b6000601f19601f8301169050919050565b6000611d4182611cd6565b611d4b8185611ce1565b9350611d5b818560208601611cf2565b611d6481611d25565b840191505092915050565b60006020820190508181036000830152611d898184611d36565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dc182611d96565b9050919050565b611dd181611db6565b8114611ddc57600080fd5b50565b600081359050611dee81611dc8565b92915050565b6000819050919050565b611e0781611df4565b8114611e1257600080fd5b50565b600081359050611e2481611dfe565b92915050565b60008060408385031215611e4157611e40611d91565b5b6000611e4f85828601611ddf565b9250506020611e6085828601611e15565b9150509250929050565b60008115159050919050565b611e7f81611e6a565b82525050565b6000602082019050611e9a6000830184611e76565b92915050565b600060208284031215611eb657611eb5611d91565b5b6000611ec484828501611ddf565b91505092915050565b611ed681611df4565b82525050565b6000602082019050611ef16000830184611ecd565b92915050565b600080600060608486031215611f1057611f0f611d91565b5b6000611f1e86828701611ddf565b9350506020611f2f86828701611ddf565b9250506040611f4086828701611e15565b9150509250925092565b611f5381611db6565b82525050565b6000602082019050611f6e6000830184611f4a565b92915050565b600060ff82169050919050565b611f8a81611f74565b82525050565b6000602082019050611fa56000830184611f81565b92915050565b611fb481611e6a565b8114611fbf57600080fd5b50565b600081359050611fd181611fab565b92915050565b60008060408385031215611fee57611fed611d91565b5b6000611ffc85828601611ddf565b925050602061200d85828601611fc2565b9150509250929050565b60006020828403121561202d5761202c611d91565b5b600061203b84828501611fc2565b91505092915050565b60006020828403121561205a57612059611d91565b5b600061206884828501611e15565b91505092915050565b6000806040838503121561208857612087611d91565b5b600061209685828601611ddf565b92505060206120a785828601611ddf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120f857607f821691505b6020821081141561210c5761210b6120b1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612148602083611ce1565b915061215382612112565b602082019050919050565b600060208201905081810360008301526121778161213b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121b882611df4565b91506121c383611df4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156121fc576121fb61217e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061224182611df4565b915061224c83611df4565b92508261225c5761225b612207565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006122c3602483611ce1565b91506122ce82612267565b604082019050919050565b600060208201905081810360008301526122f2816122b6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612355602683611ce1565b9150612360826122f9565b604082019050919050565b6000602082019050818103600083015261238481612348565b9050919050565b600061239682611df4565b91506123a183611df4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123d6576123d561217e565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612417601b83611ce1565b9150612422826123e1565b602082019050919050565b600060208201905081810360008301526124468161240a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006124a9602483611ce1565b91506124b48261244d565b604082019050919050565b600060208201905081810360008301526124d88161249c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061253b602283611ce1565b9150612546826124df565b604082019050919050565b6000602082019050818103600083015261256a8161252e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006125cd602583611ce1565b91506125d882612571565b604082019050919050565b600060208201905081810360008301526125fc816125c0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061265f602383611ce1565b915061266a82612603565b604082019050919050565b6000602082019050818103600083015261268e81612652565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006126cb601683611ce1565b91506126d682612695565b602082019050919050565b600060208201905081810360008301526126fa816126be565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612737601383611ce1565b915061274282612701565b602082019050919050565b600060208201905081810360008301526127668161272a565b9050919050565b600061277882611df4565b915061278383611df4565b9250828210156127965761279561217e565b5b82820390509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ebd7fd0743d374152aa2f8d2dc215823f4c59aa8d955615ffe4e88a40dab0b0664736f6c63430008090033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80637571336a116100d1578063a9059cbb1161008a578063c18bc19511610064578063c18bc19514610573578063dd62ed3e1461059c578063f2fde38b146105d9578063f8b45b051461060257610171565b8063a9059cbb146104ce578063b62496f51461050b578063bbc0c7421461054857610171565b80637571336a146103c05780638da5cb5b146103e95780638f70ccf71461041457806395d89b411461043d5780639a7a23d614610468578063a457c2d71461049157610171565b8063313ce56711610123578063313ce567146102ae57806339509351146102d95780634a62bb651461031657806370a0823114610341578063715018a61461037e578063751039fc1461039557610171565b806306fdde0314610176578063095ea7b3146101a157806310d5de53146101de57806318160ddd1461021b57806323b872dd1461024657806327c8f8351461028357610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61062d565b6040516101989190611d6f565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611e2a565b6106bf565b6040516101d59190611e85565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190611ea0565b6106dd565b6040516102129190611e85565b60405180910390f35b34801561022757600080fd5b506102306106fd565b60405161023d9190611edc565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190611ef7565b610707565b60405161027a9190611e85565b60405180910390f35b34801561028f57600080fd5b506102986107e0565b6040516102a59190611f59565b60405180910390f35b3480156102ba57600080fd5b506102c36107e5565b6040516102d09190611f90565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb9190611e2a565b6107ee565b60405161030d9190611e85565b60405180910390f35b34801561032257600080fd5b5061032b6108a1565b6040516103389190611e85565b60405180910390f35b34801561034d57600080fd5b5061036860048036038101906103639190611ea0565b6108b4565b6040516103759190611edc565b60405180910390f35b34801561038a57600080fd5b506103936108fc565b005b3480156103a157600080fd5b506103aa610a54565b6040516103b79190611e85565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611fd7565b610b0f565b005b3480156103f557600080fd5b506103fe610c01565b60405161040b9190611f59565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190612017565b610c2b565b005b34801561044957600080fd5b50610452610cdf565b60405161045f9190611d6f565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a9190611fd7565b610d71565b005b34801561049d57600080fd5b506104b860048036038101906104b39190611e2a565b610e20565b6040516104c59190611e85565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190611e2a565b610eed565b6040516105029190611e85565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d9190611ea0565b610f0b565b60405161053f9190611e85565b60405180910390f35b34801561055457600080fd5b5061055d610f2b565b60405161056a9190611e85565b60405180910390f35b34801561057f57600080fd5b5061059a60048036038101906105959190612044565b610f3e565b005b3480156105a857600080fd5b506105c360048036038101906105be9190612071565b611068565b6040516105d09190611edc565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb9190611ea0565b6110ef565b005b34801561060e57600080fd5b506106176112b6565b6040516106249190611edc565b60405180910390f35b60606003805461063c906120e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610668906120e0565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b5050505050905090565b60006106d36106cc61131a565b8484611322565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60006107148484846114ed565b6107d58461072061131a565b6107d0856040518060600160405280602881526020016127c860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061078661131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b611322565b600190509392505050565b600081565b60006012905090565b60006108976107fb61131a565b84610892856001600061080c61131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc90919063ffffffff16565b611322565b6001905092915050565b600a60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090461131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a9061215e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610a5e61131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae49061215e565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b610b1761131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d9061215e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c3361131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb99061215e565b60405180910390fd5b80600a60016101000a81548160ff02191690831515021790555050565b606060048054610cee906120e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1a906120e0565b8015610d675780601f10610d3c57610100808354040283529160200191610d67565b820191906000526020600020905b815481529060010190602001808311610d4a57829003601f168201915b5050505050905090565b610d7961131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff9061215e565b60405180910390fd5b610e12828261199b565b610e1c8282610b0f565b5050565b6000610ee3610e2d61131a565b84610ede856040518060600160405280602581526020016127f06025913960016000610e5761131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b611322565b6001905092915050565b6000610f01610efa61131a565b84846114ed565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b610f4661131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc9061215e565b60405180910390fd5b670de0b6b3a76400006103e86005610feb6106fd565b610ff591906121ad565b610fff9190612236565b6110099190612236565b81101561104b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611042906122d9565b60405180910390fd5b670de0b6b3a76400008161105f91906121ad565b60098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110f761131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d9061215e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed9061236b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60008082846112cb919061238b565b905083811015611310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113079061242d565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611392576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611389906124bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990612551565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114e09190611edc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611554906125e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c490612675565b60405180910390fd5b60008114156115e7576115e283836000611a3c565b611932565b600a60009054906101000a900460ff161561192657611604610c01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116725750611642610c01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116ab5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116e5575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561192557600a60019054906101000a900460ff1661177457611706610c01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a906126e1565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156118175750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561187957600954611828836108b4565b82611833919061238b565b1115611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b9061274d565b60405180910390fd5b611924565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611923576009546118d6836108b4565b826118e1919061238b565b1115611922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119199061274d565b60405180910390fd5b5b5b5b5b611931838383611a3c565b5b505050565b600083831115829061197f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119769190611d6f565b60405180910390fd5b506000838561198e919061276d565b9050809150509392505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa3906125e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1390612675565b60405180910390fd5b611b27838383611cd1565b611b92816040518060600160405280602681526020016127a2602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c25816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc49190611edc565b60405180910390a3505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d10578082015181840152602081019050611cf5565b83811115611d1f576000848401525b50505050565b6000601f19601f8301169050919050565b6000611d4182611cd6565b611d4b8185611ce1565b9350611d5b818560208601611cf2565b611d6481611d25565b840191505092915050565b60006020820190508181036000830152611d898184611d36565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dc182611d96565b9050919050565b611dd181611db6565b8114611ddc57600080fd5b50565b600081359050611dee81611dc8565b92915050565b6000819050919050565b611e0781611df4565b8114611e1257600080fd5b50565b600081359050611e2481611dfe565b92915050565b60008060408385031215611e4157611e40611d91565b5b6000611e4f85828601611ddf565b9250506020611e6085828601611e15565b9150509250929050565b60008115159050919050565b611e7f81611e6a565b82525050565b6000602082019050611e9a6000830184611e76565b92915050565b600060208284031215611eb657611eb5611d91565b5b6000611ec484828501611ddf565b91505092915050565b611ed681611df4565b82525050565b6000602082019050611ef16000830184611ecd565b92915050565b600080600060608486031215611f1057611f0f611d91565b5b6000611f1e86828701611ddf565b9350506020611f2f86828701611ddf565b9250506040611f4086828701611e15565b9150509250925092565b611f5381611db6565b82525050565b6000602082019050611f6e6000830184611f4a565b92915050565b600060ff82169050919050565b611f8a81611f74565b82525050565b6000602082019050611fa56000830184611f81565b92915050565b611fb481611e6a565b8114611fbf57600080fd5b50565b600081359050611fd181611fab565b92915050565b60008060408385031215611fee57611fed611d91565b5b6000611ffc85828601611ddf565b925050602061200d85828601611fc2565b9150509250929050565b60006020828403121561202d5761202c611d91565b5b600061203b84828501611fc2565b91505092915050565b60006020828403121561205a57612059611d91565b5b600061206884828501611e15565b91505092915050565b6000806040838503121561208857612087611d91565b5b600061209685828601611ddf565b92505060206120a785828601611ddf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120f857607f821691505b6020821081141561210c5761210b6120b1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612148602083611ce1565b915061215382612112565b602082019050919050565b600060208201905081810360008301526121778161213b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121b882611df4565b91506121c383611df4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156121fc576121fb61217e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061224182611df4565b915061224c83611df4565b92508261225c5761225b612207565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006122c3602483611ce1565b91506122ce82612267565b604082019050919050565b600060208201905081810360008301526122f2816122b6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612355602683611ce1565b9150612360826122f9565b604082019050919050565b6000602082019050818103600083015261238481612348565b9050919050565b600061239682611df4565b91506123a183611df4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123d6576123d561217e565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612417601b83611ce1565b9150612422826123e1565b602082019050919050565b600060208201905081810360008301526124468161240a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006124a9602483611ce1565b91506124b48261244d565b604082019050919050565b600060208201905081810360008301526124d88161249c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061253b602283611ce1565b9150612546826124df565b604082019050919050565b6000602082019050818103600083015261256a8161252e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006125cd602583611ce1565b91506125d882612571565b604082019050919050565b600060208201905081810360008301526125fc816125c0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061265f602383611ce1565b915061266a82612603565b604082019050919050565b6000602082019050818103600083015261268e81612652565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006126cb601683611ce1565b91506126d682612695565b602082019050919050565b600060208201905081810360008301526126fa816126be565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612737601383611ce1565b915061274282612701565b602082019050919050565b600060208201905081810360008301526127668161272a565b9050919050565b600061277882611df4565b915061278383611df4565b9250828210156127965761279561217e565b5b82820390509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ebd7fd0743d374152aa2f8d2dc215823f4c59aa8d955615ffe4e88a40dab0b0664736f6c63430008090033

Deployed Bytecode Sourcemap

21342:3388:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4363:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6530:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21538:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5483:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7181:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21418:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5325:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7945:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21672:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5654:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18824:148;;;;;;;;;;;;;:::i;:::-;;22621:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22974:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18182:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22466:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4582:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23126:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8666:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5994:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21473:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21712:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22751:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6232:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19127:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21637:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4363:100;4417:13;4450:5;4443:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4363:100;:::o;6530:169::-;6613:4;6630:39;6639:12;:10;:12::i;:::-;6653:7;6662:6;6630:8;:39::i;:::-;6687:4;6680:11;;6530:169;;;;:::o;21538:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;5483:108::-;5544:7;5571:12;;5564:19;;5483:108;:::o;7181:355::-;7321:4;7338:36;7348:6;7356:9;7367:6;7338:9;:36::i;:::-;7385:121;7394:6;7402:12;:10;:12::i;:::-;7416:89;7454:6;7416:89;;;;;;;;;;;;;;;;;:11;:19;7428:6;7416:19;;;;;;;;;;;;;;;:33;7436:12;:10;:12::i;:::-;7416:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7385:8;:121::i;:::-;7524:4;7517:11;;7181:355;;;;;:::o;21418:48::-;21464:1;21418:48;:::o;5325:93::-;5383:5;5408:2;5401:9;;5325:93;:::o;7945:218::-;8033:4;8050:83;8059:12;:10;:12::i;:::-;8073:7;8082:50;8121:10;8082:11;:25;8094:12;:10;:12::i;:::-;8082:25;;;;;;;;;;;;;;;:34;8108:7;8082:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8050:8;:83::i;:::-;8151:4;8144:11;;7945:218;;;;:::o;21672:33::-;;;;;;;;;;;;;:::o;5654:127::-;5728:7;5755:9;:18;5765:7;5755:18;;;;;;;;;;;;;;;;5748:25;;5654:127;;;:::o;18824:148::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18931:1:::1;18894:40;;18915:6;;;;;;;;;;;18894:40;;;;;;;;;;;;18962:1;18945:6;;:19;;;;;;;;;;;;;;;;;;18824:148::o:0;22621:120::-;22673:4;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22706:5:::1;22689:14;;:22;;;;;;;;;;;;;;;;;;22729:4;22722:11;;22621:120:::0;:::o;22974:144::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23106:4:::1;23064:31;:39;23096:6;23064:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;22974:144:::0;;:::o;18182:79::-;18220:7;18247:6;;;;;;;;;;;18240:13;;18182:79;:::o;22466:103::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22549:12:::1;22533:13;;:28;;;;;;;;;;;;;;;;;;22466:103:::0;:::o;4582:104::-;4638:13;4671:7;4664:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4582:104;:::o;23126:191::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23219:41:::1;23248:4;23254:5;23219:28;:41::i;:::-;23271:38;23297:4;23303:5;23271:25;:38::i;:::-;23126:191:::0;;:::o;8666:269::-;8759:4;8776:129;8785:12;:10;:12::i;:::-;8799:7;8808:96;8847:15;8808:96;;;;;;;;;;;;;;;;;:11;:25;8820:12;:10;:12::i;:::-;8808:25;;;;;;;;;;;;;;;:34;8834:7;8808:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;8776:8;:129::i;:::-;8923:4;8916:11;;8666:269;;;;:::o;5994:175::-;6080:4;6097:42;6107:12;:10;:12::i;:::-;6121:9;6132:6;6097:9;:42::i;:::-;6157:4;6150:11;;5994:175;;;;:::o;21473:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;21712:33::-;;;;;;;;;;;;;:::o;22751:215::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22873:4:::1;22867;22863:1;22847:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;22846:31;;;;:::i;:::-;22836:6;:41;;22828:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;22951:6;22941;:17;;;;:::i;:::-;22929:9;:29;;;;22751:215:::0;:::o;6232:151::-;6321:7;6348:11;:18;6360:5;6348:18;;;;;;;;;;;;;;;:27;6367:7;6348:27;;;;;;;;;;;;;;;;6341:34;;6232:151;;;;:::o;19127:244::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19236:1:::1;19216:22;;:8;:22;;;;19208:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19326:8;19297:38;;19318:6;;;;;;;;;;;19297:38;;;;;;;;;;;;19355:8;19346:6;;:17;;;;;;;;;;;;;;;;;;19127:244:::0;:::o;21637:24::-;;;;:::o;13230:181::-;13288:7;13308:9;13324:1;13320;:5;;;;:::i;:::-;13308:17;;13349:1;13344;:6;;13336:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;13402:1;13395:8;;;13230:181;;;;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;11852:380::-;12005:1;11988:19;;:5;:19;;;;11980:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12086:1;12067:21;;:7;:21;;;;12059:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12170:6;12140:11;:18;12152:5;12140:18;;;;;;;;;;;;;;;:27;12159:7;12140:27;;;;;;;;;;;;;;;:36;;;;12208:7;12192:32;;12201:5;12192:32;;;12217:6;12192:32;;;;;;:::i;:::-;;;;;;;;11852:380;;;:::o;23523:1196::-;23671:1;23655:18;;:4;:18;;;;23647:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23748:1;23734:16;;:2;:16;;;;23726:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23815:1;23805:6;:11;23802:92;;;23833:28;23849:4;23855:2;23859:1;23833:15;:28::i;:::-;23876:7;;23802:92;23909:14;;;;;;;;;;;23906:760;;;23969:7;:5;:7::i;:::-;23961:15;;:4;:15;;;;:49;;;;;24003:7;:5;:7::i;:::-;23997:13;;:2;:13;;;;23961:49;:86;;;;;24045:1;24031:16;;:2;:16;;;;23961:86;:128;;;;;24082:6;24068:21;;:2;:21;;;;23961:128;23939:716;;;24125:13;;;;;;;;;;;24121:107;;24176:7;:5;:7::i;:::-;24168:15;;:4;:15;;;24160:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;24121:107;24278:25;:31;24304:4;24278:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;24314:31;:35;24346:2;24314:35;;;;;;;;;;;;;;;;;;;;;;;;;24313:36;24278:71;24274:366;;;24412:9;;24395:13;24405:2;24395:9;:13::i;:::-;24386:6;:22;;;;:::i;:::-;:35;;24378:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24274:366;;;24494:31;:35;24526:2;24494:35;;;;;;;;;;;;;;;;;;;;;;;;;24490:150;;24587:9;;24570:13;24580:2;24570:9;:13::i;:::-;24561:6;:22;;;;:::i;:::-;:35;;24553:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24490:150;24274:366;23939:716;23906:760;24678:33;24694:4;24700:2;24704:6;24678:15;:33::i;:::-;23523:1196;;;;:::o;14133:192::-;14219:7;14252:1;14247;:6;;14255:12;14239:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;14279:9;14295:1;14291;:5;;;;:::i;:::-;14279:17;;14316:1;14309:8;;;14133:192;;;;;:::o;23325:188::-;23442:5;23408:25;:31;23434:4;23408:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;23499:5;23465:40;;23493:4;23465:40;;;;;;;;;;;;23325:188;;:::o;9425:573::-;9583:1;9565:20;;:6;:20;;;;9557:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9667:1;9646:23;;:9;:23;;;;9638:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9722:47;9743:6;9751:9;9762:6;9722:20;:47::i;:::-;9802:71;9824:6;9802:71;;;;;;;;;;;;;;;;;:9;:17;9812:6;9802:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;9782:9;:17;9792:6;9782:17;;;;;;;;;;;;;;;:91;;;;9907:32;9932:6;9907:9;:20;9917:9;9907:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9884:9;:20;9894:9;9884:20;;;;;;;;;;;;;;;:55;;;;9972:9;9955:35;;9964:6;9955:35;;;9983:6;9955:35;;;;;;:::i;:::-;;;;;;;;9425:573;;;:::o;12835: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;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:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:118::-;4893:24;4911:5;4893:24;:::i;:::-;4888:3;4881:37;4806:118;;:::o;4930:222::-;5023:4;5061:2;5050:9;5046:18;5038:26;;5074:71;5142:1;5131:9;5127:17;5118:6;5074:71;:::i;:::-;4930:222;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:116::-;5658:21;5673:5;5658:21;:::i;:::-;5651:5;5648:32;5638:60;;5694:1;5691;5684:12;5638:60;5588:116;:::o;5710:133::-;5753:5;5791:6;5778:20;5769:29;;5807:30;5831:5;5807:30;:::i;:::-;5710:133;;;;:::o;5849:468::-;5914:6;5922;5971:2;5959:9;5950:7;5946:23;5942:32;5939:119;;;5977:79;;:::i;:::-;5939:119;6097:1;6122:53;6167:7;6158:6;6147:9;6143:22;6122:53;:::i;:::-;6112:63;;6068:117;6224:2;6250:50;6292:7;6283:6;6272:9;6268:22;6250:50;:::i;:::-;6240:60;;6195:115;5849:468;;;;;:::o;6323:323::-;6379:6;6428:2;6416:9;6407:7;6403:23;6399:32;6396:119;;;6434:79;;:::i;:::-;6396:119;6554:1;6579:50;6621:7;6612:6;6601:9;6597:22;6579:50;:::i;:::-;6569:60;;6525:114;6323:323;;;;:::o;6652:329::-;6711:6;6760:2;6748:9;6739:7;6735:23;6731:32;6728:119;;;6766:79;;:::i;:::-;6728:119;6886:1;6911:53;6956:7;6947:6;6936:9;6932:22;6911:53;:::i;:::-;6901:63;;6857:117;6652:329;;;;:::o;6987:474::-;7055:6;7063;7112:2;7100:9;7091:7;7087:23;7083:32;7080:119;;;7118:79;;:::i;:::-;7080:119;7238:1;7263:53;7308:7;7299:6;7288:9;7284:22;7263:53;:::i;:::-;7253:63;;7209:117;7365:2;7391:53;7436:7;7427:6;7416:9;7412:22;7391:53;:::i;:::-;7381:63;;7336:118;6987:474;;;;;:::o;7467:180::-;7515:77;7512:1;7505:88;7612:4;7609:1;7602:15;7636:4;7633:1;7626:15;7653:320;7697:6;7734:1;7728:4;7724:12;7714:22;;7781:1;7775:4;7771:12;7802:18;7792:81;;7858:4;7850:6;7846:17;7836:27;;7792:81;7920:2;7912:6;7909:14;7889:18;7886:38;7883:84;;;7939:18;;:::i;:::-;7883:84;7704:269;7653:320;;;:::o;7979:182::-;8119:34;8115:1;8107:6;8103:14;8096:58;7979:182;:::o;8167:366::-;8309:3;8330:67;8394:2;8389:3;8330:67;:::i;:::-;8323:74;;8406:93;8495:3;8406:93;:::i;:::-;8524:2;8519:3;8515:12;8508:19;;8167:366;;;:::o;8539:419::-;8705:4;8743:2;8732:9;8728:18;8720:26;;8792:9;8786:4;8782:20;8778:1;8767:9;8763:17;8756:47;8820:131;8946:4;8820:131;:::i;:::-;8812:139;;8539:419;;;:::o;8964:180::-;9012:77;9009:1;9002:88;9109:4;9106:1;9099:15;9133:4;9130:1;9123:15;9150:348;9190:7;9213:20;9231:1;9213:20;:::i;:::-;9208:25;;9247:20;9265:1;9247:20;:::i;:::-;9242:25;;9435:1;9367:66;9363:74;9360:1;9357:81;9352:1;9345:9;9338:17;9334:105;9331:131;;;9442:18;;:::i;:::-;9331:131;9490:1;9487;9483:9;9472:20;;9150:348;;;;:::o;9504:180::-;9552:77;9549:1;9542:88;9649:4;9646:1;9639:15;9673:4;9670:1;9663:15;9690:185;9730:1;9747:20;9765:1;9747:20;:::i;:::-;9742:25;;9781:20;9799:1;9781:20;:::i;:::-;9776:25;;9820:1;9810:35;;9825:18;;:::i;:::-;9810:35;9867:1;9864;9860:9;9855:14;;9690:185;;;;:::o;9881:223::-;10021:34;10017:1;10009:6;10005:14;9998:58;10090:6;10085:2;10077:6;10073:15;10066:31;9881:223;:::o;10110:366::-;10252:3;10273:67;10337:2;10332:3;10273:67;:::i;:::-;10266:74;;10349:93;10438:3;10349:93;:::i;:::-;10467:2;10462:3;10458:12;10451:19;;10110:366;;;:::o;10482:419::-;10648:4;10686:2;10675:9;10671:18;10663:26;;10735:9;10729:4;10725:20;10721:1;10710:9;10706:17;10699:47;10763:131;10889:4;10763:131;:::i;:::-;10755:139;;10482:419;;;:::o;10907:225::-;11047:34;11043:1;11035:6;11031:14;11024:58;11116:8;11111:2;11103:6;11099:15;11092:33;10907:225;:::o;11138:366::-;11280:3;11301:67;11365:2;11360:3;11301:67;:::i;:::-;11294:74;;11377:93;11466:3;11377:93;:::i;:::-;11495:2;11490:3;11486:12;11479:19;;11138:366;;;:::o;11510:419::-;11676:4;11714:2;11703:9;11699:18;11691:26;;11763:9;11757:4;11753:20;11749:1;11738:9;11734:17;11727:47;11791:131;11917:4;11791:131;:::i;:::-;11783:139;;11510:419;;;:::o;11935:305::-;11975:3;11994:20;12012:1;11994:20;:::i;:::-;11989:25;;12028:20;12046:1;12028:20;:::i;:::-;12023:25;;12182:1;12114:66;12110:74;12107:1;12104:81;12101:107;;;12188:18;;:::i;:::-;12101:107;12232:1;12229;12225:9;12218:16;;11935:305;;;;:::o;12246:177::-;12386:29;12382:1;12374:6;12370:14;12363:53;12246:177;:::o;12429:366::-;12571:3;12592:67;12656:2;12651:3;12592:67;:::i;:::-;12585:74;;12668:93;12757:3;12668:93;:::i;:::-;12786:2;12781:3;12777:12;12770:19;;12429:366;;;:::o;12801:419::-;12967:4;13005:2;12994:9;12990:18;12982:26;;13054:9;13048:4;13044:20;13040:1;13029:9;13025:17;13018:47;13082:131;13208:4;13082:131;:::i;:::-;13074:139;;12801:419;;;:::o;13226:223::-;13366:34;13362:1;13354:6;13350:14;13343:58;13435:6;13430:2;13422:6;13418:15;13411:31;13226:223;:::o;13455:366::-;13597:3;13618:67;13682:2;13677:3;13618:67;:::i;:::-;13611:74;;13694:93;13783:3;13694:93;:::i;:::-;13812:2;13807:3;13803:12;13796:19;;13455:366;;;:::o;13827:419::-;13993:4;14031:2;14020:9;14016:18;14008:26;;14080:9;14074:4;14070:20;14066:1;14055:9;14051:17;14044:47;14108:131;14234:4;14108:131;:::i;:::-;14100:139;;13827:419;;;:::o;14252:221::-;14392:34;14388:1;14380:6;14376:14;14369:58;14461:4;14456:2;14448:6;14444:15;14437:29;14252:221;:::o;14479:366::-;14621:3;14642:67;14706:2;14701:3;14642:67;:::i;:::-;14635:74;;14718:93;14807:3;14718:93;:::i;:::-;14836:2;14831:3;14827:12;14820:19;;14479:366;;;:::o;14851:419::-;15017:4;15055:2;15044:9;15040:18;15032:26;;15104:9;15098:4;15094:20;15090:1;15079:9;15075:17;15068:47;15132:131;15258:4;15132:131;:::i;:::-;15124:139;;14851:419;;;:::o;15276:224::-;15416:34;15412:1;15404:6;15400:14;15393:58;15485:7;15480:2;15472:6;15468:15;15461:32;15276:224;:::o;15506:366::-;15648:3;15669:67;15733:2;15728:3;15669:67;:::i;:::-;15662:74;;15745:93;15834:3;15745:93;:::i;:::-;15863:2;15858:3;15854:12;15847:19;;15506:366;;;:::o;15878:419::-;16044:4;16082:2;16071:9;16067:18;16059:26;;16131:9;16125:4;16121:20;16117:1;16106:9;16102:17;16095:47;16159:131;16285:4;16159:131;:::i;:::-;16151:139;;15878:419;;;:::o;16303:222::-;16443:34;16439:1;16431:6;16427:14;16420:58;16512:5;16507:2;16499:6;16495:15;16488:30;16303:222;:::o;16531:366::-;16673:3;16694:67;16758:2;16753:3;16694:67;:::i;:::-;16687:74;;16770:93;16859:3;16770:93;:::i;:::-;16888:2;16883:3;16879:12;16872:19;;16531:366;;;:::o;16903:419::-;17069:4;17107:2;17096:9;17092:18;17084:26;;17156:9;17150:4;17146:20;17142:1;17131:9;17127:17;17120:47;17184:131;17310:4;17184:131;:::i;:::-;17176:139;;16903:419;;;:::o;17328:172::-;17468:24;17464:1;17456:6;17452:14;17445:48;17328:172;:::o;17506:366::-;17648:3;17669:67;17733:2;17728:3;17669:67;:::i;:::-;17662:74;;17745:93;17834:3;17745:93;:::i;:::-;17863:2;17858:3;17854:12;17847:19;;17506:366;;;:::o;17878:419::-;18044:4;18082:2;18071:9;18067:18;18059:26;;18131:9;18125:4;18121:20;18117:1;18106:9;18102:17;18095:47;18159:131;18285:4;18159:131;:::i;:::-;18151:139;;17878:419;;;:::o;18303:169::-;18443:21;18439:1;18431:6;18427:14;18420:45;18303:169;:::o;18478:366::-;18620:3;18641:67;18705:2;18700:3;18641:67;:::i;:::-;18634:74;;18717:93;18806:3;18717:93;:::i;:::-;18835:2;18830:3;18826:12;18819:19;;18478:366;;;:::o;18850:419::-;19016:4;19054:2;19043:9;19039:18;19031:26;;19103:9;19097:4;19093:20;19089:1;19078:9;19074:17;19067:47;19131:131;19257:4;19131:131;:::i;:::-;19123:139;;18850:419;;;:::o;19275:191::-;19315:4;19335:20;19353:1;19335:20;:::i;:::-;19330:25;;19369:20;19387:1;19369:20;:::i;:::-;19364:25;;19408:1;19405;19402:8;19399:34;;;19413:18;;:::i;:::-;19399:34;19458:1;19455;19451:9;19443:17;;19275:191;;;;:::o

Swarm Source

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