ETH Price: $3,523.94 (+0.50%)
Gas: 3 Gwei

Token

Cabal DAO (CABAL)
 

Overview

Max Total Supply

6,660,000,000 CABAL

Holders

66

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
31,650,124.355845715942238308 CABAL

Value
$0.00
0x26663DF4bdB9983466FC83cDF527c973F92428e7
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:
Cabal

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-02
*/

// SPDX-License-Identifier: No License

pragma solidity 0.8.4;

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 Cabal 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("Cabal DAO", "CABAL") {

        uint256 totalSupply = 6660000000 * 1e18;

        maxWallet = 166600000 * 1e18; // 2.5% 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"}]

60806040526001600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600981526020017f436162616c2044414f00000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f434142414c0000000000000000000000000000000000000000000000000000008152508160039080519060200190620000cc92919062000565565b508060049080519060200190620000e592919062000565565b5050506000620000fa6200021f60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006b158505db700b56108400000090506a89ceec18c829d82d000000600981905550620001de620001d06200022760201b60201c565b60016200025160201b60201c565b620001f13060016200025160201b60201c565b6200020661dead60016200025160201b60201c565b6200021833826200034e60201b60201c565b50620008a5565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620002616200021f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620002f3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ea90620006bd565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003b890620006df565b60405180910390fd5b620003d560008383620004fd60201b60201c565b620003f1816002546200050260201b620012bc1790919060201c565b6002819055506200044f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200050260201b620012bc1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004f1919062000701565b60405180910390a35050565b505050565b60008082846200051391906200072f565b9050838110156200055b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000552906200069b565b60405180910390fd5b8091505092915050565b828054620005739062000796565b90600052602060002090601f016020900481019282620005975760008555620005e3565b82601f10620005b257805160ff1916838001178555620005e3565b82800160010185558215620005e3579182015b82811115620005e2578251825591602001919060010190620005c5565b5b509050620005f29190620005f6565b5090565b5b8082111562000611576000816000905550600101620005f7565b5090565b600062000624601b836200071e565b915062000631826200082a565b602082019050919050565b60006200064b6020836200071e565b9150620006588262000853565b602082019050919050565b600062000672601f836200071e565b91506200067f826200087c565b602082019050919050565b62000695816200078c565b82525050565b60006020820190508181036000830152620006b68162000615565b9050919050565b60006020820190508181036000830152620006d8816200063c565b9050919050565b60006020820190508181036000830152620006fa8162000663565b9050919050565b60006020820190506200071860008301846200068a565b92915050565b600082825260208201905092915050565b60006200073c826200078c565b915062000749836200078c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007815762000780620007cc565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620007af57607f821691505b60208210811415620007c657620007c5620007fb565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61282980620008b56000396000f3fe60806040526004361061016a5760003560e01c80637571336a116100d1578063a9059cbb1161008a578063c18bc19511610064578063c18bc19514610573578063dd62ed3e1461059c578063f2fde38b146105d9578063f8b45b051461060257610171565b8063a9059cbb146104ce578063b62496f51461050b578063bbc0c7421461054857610171565b80637571336a146103c05780638da5cb5b146103e95780638f70ccf71461041457806395d89b411461043d5780639a7a23d614610468578063a457c2d71461049157610171565b8063313ce56711610123578063313ce567146102ae57806339509351146102d95780634a62bb651461031657806370a0823114610341578063715018a61461037e578063751039fc1461039557610171565b806306fdde0314610176578063095ea7b3146101a157806310d5de53146101de57806318160ddd1461021b57806323b872dd1461024657806327c8f8351461028357610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61062d565b604051610198919061209c565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611e05565b6106bf565b6040516101d59190612081565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190611d15565b6106dd565b6040516102129190612081565b60405180910390f35b34801561022757600080fd5b506102306106fd565b60405161023d91906121fe565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190611d7a565b610707565b60405161027a9190612081565b60405180910390f35b34801561028f57600080fd5b506102986107e0565b6040516102a59190612066565b60405180910390f35b3480156102ba57600080fd5b506102c36107e5565b6040516102d09190612219565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb9190611e05565b6107ee565b60405161030d9190612081565b60405180910390f35b34801561032257600080fd5b5061032b6108a1565b6040516103389190612081565b60405180910390f35b34801561034d57600080fd5b5061036860048036038101906103639190611d15565b6108b4565b60405161037591906121fe565b60405180910390f35b34801561038a57600080fd5b506103936108fc565b005b3480156103a157600080fd5b506103aa610a54565b6040516103b79190612081565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611dc9565b610b0f565b005b3480156103f557600080fd5b506103fe610c01565b60405161040b9190612066565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190611e41565b610c2b565b005b34801561044957600080fd5b50610452610cdf565b60405161045f919061209c565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a9190611dc9565b610d71565b005b34801561049d57600080fd5b506104b860048036038101906104b39190611e05565b610e20565b6040516104c59190612081565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190611e05565b610eed565b6040516105029190612081565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d9190611d15565b610f0b565b60405161053f9190612081565b60405180910390f35b34801561055457600080fd5b5061055d610f2b565b60405161056a9190612081565b60405180910390f35b34801561057f57600080fd5b5061059a60048036038101906105959190611e6a565b610f3e565b005b3480156105a857600080fd5b506105c360048036038101906105be9190611d3e565b611068565b6040516105d091906121fe565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb9190611d15565b6110ef565b005b34801561060e57600080fd5b506106176112b6565b60405161062491906121fe565b60405180910390f35b60606003805461063c906123ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610668906123ed565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b5050505050905090565b60006106d36106cc61131a565b8484611322565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60006107148484846114ed565b6107d58461072061131a565b6107d0856040518060600160405280602881526020016127a760289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061078661131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b611322565b600190509392505050565b600081565b60006012905090565b60006108976107fb61131a565b84610892856001600061080c61131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc90919063ffffffff16565b611322565b6001905092915050565b600a60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090461131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a9061217e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610a5e61131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae49061217e565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b610b1761131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d9061217e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c3361131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb99061217e565b60405180910390fd5b80600a60016101000a81548160ff02191690831515021790555050565b606060048054610cee906123ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1a906123ed565b8015610d675780601f10610d3c57610100808354040283529160200191610d67565b820191906000526020600020905b815481529060010190602001808311610d4a57829003601f168201915b5050505050905090565b610d7961131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff9061217e565b60405180910390fd5b610e12828261199b565b610e1c8282610b0f565b5050565b6000610ee3610e2d61131a565b84610ede856040518060600160405280602581526020016127cf6025913960016000610e5761131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b611322565b6001905092915050565b6000610f01610efa61131a565b84846114ed565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b610f4661131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc9061217e565b60405180910390fd5b670de0b6b3a76400006103e86005610feb6106fd565b610ff591906122d7565b610fff91906122a6565b61100991906122a6565b81101561104b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110429061215e565b60405180910390fd5b670de0b6b3a76400008161105f91906122d7565b60098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110f761131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d9061217e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906120fe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60008082846112cb9190612250565b905083811015611310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113079061213e565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611392576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611389906121be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f99061211e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114e091906121fe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115549061219e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c4906120be565b60405180910390fd5b60008114156115e7576115e283836000611a3c565b611932565b600a60009054906101000a900460ff161561192657611604610c01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116725750611642610c01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116ab5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116e5575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561192557600a60019054906101000a900460ff1661177457611706610c01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a906120de565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156118175750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561187957600954611828836108b4565b826118339190612250565b1115611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b906121de565b60405180910390fd5b611924565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611923576009546118d6836108b4565b826118e19190612250565b1115611922576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611919906121de565b60405180910390fd5b5b5b5b5b611931838383611a3c565b5b505050565b600083831115829061197f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611976919061209c565b60405180910390fd5b506000838561198e9190612331565b9050809150509392505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa39061219e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b13906120be565b60405180910390fd5b611b27838383611cd1565b611b9281604051806060016040528060268152602001612781602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c25816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc491906121fe565b60405180910390a3505050565b505050565b600081359050611ce58161273b565b92915050565b600081359050611cfa81612752565b92915050565b600081359050611d0f81612769565b92915050565b600060208284031215611d2757600080fd5b6000611d3584828501611cd6565b91505092915050565b60008060408385031215611d5157600080fd5b6000611d5f85828601611cd6565b9250506020611d7085828601611cd6565b9150509250929050565b600080600060608486031215611d8f57600080fd5b6000611d9d86828701611cd6565b9350506020611dae86828701611cd6565b9250506040611dbf86828701611d00565b9150509250925092565b60008060408385031215611ddc57600080fd5b6000611dea85828601611cd6565b9250506020611dfb85828601611ceb565b9150509250929050565b60008060408385031215611e1857600080fd5b6000611e2685828601611cd6565b9250506020611e3785828601611d00565b9150509250929050565b600060208284031215611e5357600080fd5b6000611e6184828501611ceb565b91505092915050565b600060208284031215611e7c57600080fd5b6000611e8a84828501611d00565b91505092915050565b611e9c81612365565b82525050565b611eab81612377565b82525050565b6000611ebc82612234565b611ec6818561223f565b9350611ed68185602086016123ba565b611edf816124ac565b840191505092915050565b6000611ef760238361223f565b9150611f02826124bd565b604082019050919050565b6000611f1a60168361223f565b9150611f258261250c565b602082019050919050565b6000611f3d60268361223f565b9150611f4882612535565b604082019050919050565b6000611f6060228361223f565b9150611f6b82612584565b604082019050919050565b6000611f83601b8361223f565b9150611f8e826125d3565b602082019050919050565b6000611fa660248361223f565b9150611fb1826125fc565b604082019050919050565b6000611fc960208361223f565b9150611fd48261264b565b602082019050919050565b6000611fec60258361223f565b9150611ff782612674565b604082019050919050565b600061200f60248361223f565b915061201a826126c3565b604082019050919050565b600061203260138361223f565b915061203d82612712565b602082019050919050565b612051816123a3565b82525050565b612060816123ad565b82525050565b600060208201905061207b6000830184611e93565b92915050565b60006020820190506120966000830184611ea2565b92915050565b600060208201905081810360008301526120b68184611eb1565b905092915050565b600060208201905081810360008301526120d781611eea565b9050919050565b600060208201905081810360008301526120f781611f0d565b9050919050565b6000602082019050818103600083015261211781611f30565b9050919050565b6000602082019050818103600083015261213781611f53565b9050919050565b6000602082019050818103600083015261215781611f76565b9050919050565b6000602082019050818103600083015261217781611f99565b9050919050565b6000602082019050818103600083015261219781611fbc565b9050919050565b600060208201905081810360008301526121b781611fdf565b9050919050565b600060208201905081810360008301526121d781612002565b9050919050565b600060208201905081810360008301526121f781612025565b9050919050565b60006020820190506122136000830184612048565b92915050565b600060208201905061222e6000830184612057565b92915050565b600081519050919050565b600082825260208201905092915050565b600061225b826123a3565b9150612266836123a3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561229b5761229a61241f565b5b828201905092915050565b60006122b1826123a3565b91506122bc836123a3565b9250826122cc576122cb61244e565b5b828204905092915050565b60006122e2826123a3565b91506122ed836123a3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123265761232561241f565b5b828202905092915050565b600061233c826123a3565b9150612347836123a3565b92508282101561235a5761235961241f565b5b828203905092915050565b600061237082612383565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156123d85780820151818401526020810190506123bd565b838111156123e7576000848401525b50505050565b6000600282049050600182168061240557607f821691505b602082108114156124195761241861247d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b61274481612365565b811461274f57600080fd5b50565b61275b81612377565b811461276657600080fd5b50565b612772816123a3565b811461277d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205c5a4872ff6f4c042be980ef966aed74fc10f6f4430faf666c28f836399d60f264736f6c63430008040033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80637571336a116100d1578063a9059cbb1161008a578063c18bc19511610064578063c18bc19514610573578063dd62ed3e1461059c578063f2fde38b146105d9578063f8b45b051461060257610171565b8063a9059cbb146104ce578063b62496f51461050b578063bbc0c7421461054857610171565b80637571336a146103c05780638da5cb5b146103e95780638f70ccf71461041457806395d89b411461043d5780639a7a23d614610468578063a457c2d71461049157610171565b8063313ce56711610123578063313ce567146102ae57806339509351146102d95780634a62bb651461031657806370a0823114610341578063715018a61461037e578063751039fc1461039557610171565b806306fdde0314610176578063095ea7b3146101a157806310d5de53146101de57806318160ddd1461021b57806323b872dd1461024657806327c8f8351461028357610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61062d565b604051610198919061209c565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611e05565b6106bf565b6040516101d59190612081565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190611d15565b6106dd565b6040516102129190612081565b60405180910390f35b34801561022757600080fd5b506102306106fd565b60405161023d91906121fe565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190611d7a565b610707565b60405161027a9190612081565b60405180910390f35b34801561028f57600080fd5b506102986107e0565b6040516102a59190612066565b60405180910390f35b3480156102ba57600080fd5b506102c36107e5565b6040516102d09190612219565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb9190611e05565b6107ee565b60405161030d9190612081565b60405180910390f35b34801561032257600080fd5b5061032b6108a1565b6040516103389190612081565b60405180910390f35b34801561034d57600080fd5b5061036860048036038101906103639190611d15565b6108b4565b60405161037591906121fe565b60405180910390f35b34801561038a57600080fd5b506103936108fc565b005b3480156103a157600080fd5b506103aa610a54565b6040516103b79190612081565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611dc9565b610b0f565b005b3480156103f557600080fd5b506103fe610c01565b60405161040b9190612066565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190611e41565b610c2b565b005b34801561044957600080fd5b50610452610cdf565b60405161045f919061209c565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a9190611dc9565b610d71565b005b34801561049d57600080fd5b506104b860048036038101906104b39190611e05565b610e20565b6040516104c59190612081565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190611e05565b610eed565b6040516105029190612081565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d9190611d15565b610f0b565b60405161053f9190612081565b60405180910390f35b34801561055457600080fd5b5061055d610f2b565b60405161056a9190612081565b60405180910390f35b34801561057f57600080fd5b5061059a60048036038101906105959190611e6a565b610f3e565b005b3480156105a857600080fd5b506105c360048036038101906105be9190611d3e565b611068565b6040516105d091906121fe565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb9190611d15565b6110ef565b005b34801561060e57600080fd5b506106176112b6565b60405161062491906121fe565b60405180910390f35b60606003805461063c906123ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610668906123ed565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b5050505050905090565b60006106d36106cc61131a565b8484611322565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60006107148484846114ed565b6107d58461072061131a565b6107d0856040518060600160405280602881526020016127a760289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061078661131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b611322565b600190509392505050565b600081565b60006012905090565b60006108976107fb61131a565b84610892856001600061080c61131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc90919063ffffffff16565b611322565b6001905092915050565b600a60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090461131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a9061217e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610a5e61131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae49061217e565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b610b1761131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d9061217e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c3361131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb99061217e565b60405180910390fd5b80600a60016101000a81548160ff02191690831515021790555050565b606060048054610cee906123ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1a906123ed565b8015610d675780601f10610d3c57610100808354040283529160200191610d67565b820191906000526020600020905b815481529060010190602001808311610d4a57829003601f168201915b5050505050905090565b610d7961131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff9061217e565b60405180910390fd5b610e12828261199b565b610e1c8282610b0f565b5050565b6000610ee3610e2d61131a565b84610ede856040518060600160405280602581526020016127cf6025913960016000610e5761131a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b611322565b6001905092915050565b6000610f01610efa61131a565b84846114ed565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b610f4661131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc9061217e565b60405180910390fd5b670de0b6b3a76400006103e86005610feb6106fd565b610ff591906122d7565b610fff91906122a6565b61100991906122a6565b81101561104b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110429061215e565b60405180910390fd5b670de0b6b3a76400008161105f91906122d7565b60098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110f761131a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d9061217e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906120fe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60008082846112cb9190612250565b905083811015611310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113079061213e565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611392576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611389906121be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f99061211e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114e091906121fe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115549061219e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c4906120be565b60405180910390fd5b60008114156115e7576115e283836000611a3c565b611932565b600a60009054906101000a900460ff161561192657611604610c01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116725750611642610c01565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116ab5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116e5575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561192557600a60019054906101000a900460ff1661177457611706610c01565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a906120de565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156118175750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561187957600954611828836108b4565b826118339190612250565b1115611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b906121de565b60405180910390fd5b611924565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611923576009546118d6836108b4565b826118e19190612250565b1115611922576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611919906121de565b60405180910390fd5b5b5b5b5b611931838383611a3c565b5b505050565b600083831115829061197f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611976919061209c565b60405180910390fd5b506000838561198e9190612331565b9050809150509392505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa39061219e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b13906120be565b60405180910390fd5b611b27838383611cd1565b611b9281604051806060016040528060268152602001612781602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119379092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c25816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc491906121fe565b60405180910390a3505050565b505050565b600081359050611ce58161273b565b92915050565b600081359050611cfa81612752565b92915050565b600081359050611d0f81612769565b92915050565b600060208284031215611d2757600080fd5b6000611d3584828501611cd6565b91505092915050565b60008060408385031215611d5157600080fd5b6000611d5f85828601611cd6565b9250506020611d7085828601611cd6565b9150509250929050565b600080600060608486031215611d8f57600080fd5b6000611d9d86828701611cd6565b9350506020611dae86828701611cd6565b9250506040611dbf86828701611d00565b9150509250925092565b60008060408385031215611ddc57600080fd5b6000611dea85828601611cd6565b9250506020611dfb85828601611ceb565b9150509250929050565b60008060408385031215611e1857600080fd5b6000611e2685828601611cd6565b9250506020611e3785828601611d00565b9150509250929050565b600060208284031215611e5357600080fd5b6000611e6184828501611ceb565b91505092915050565b600060208284031215611e7c57600080fd5b6000611e8a84828501611d00565b91505092915050565b611e9c81612365565b82525050565b611eab81612377565b82525050565b6000611ebc82612234565b611ec6818561223f565b9350611ed68185602086016123ba565b611edf816124ac565b840191505092915050565b6000611ef760238361223f565b9150611f02826124bd565b604082019050919050565b6000611f1a60168361223f565b9150611f258261250c565b602082019050919050565b6000611f3d60268361223f565b9150611f4882612535565b604082019050919050565b6000611f6060228361223f565b9150611f6b82612584565b604082019050919050565b6000611f83601b8361223f565b9150611f8e826125d3565b602082019050919050565b6000611fa660248361223f565b9150611fb1826125fc565b604082019050919050565b6000611fc960208361223f565b9150611fd48261264b565b602082019050919050565b6000611fec60258361223f565b9150611ff782612674565b604082019050919050565b600061200f60248361223f565b915061201a826126c3565b604082019050919050565b600061203260138361223f565b915061203d82612712565b602082019050919050565b612051816123a3565b82525050565b612060816123ad565b82525050565b600060208201905061207b6000830184611e93565b92915050565b60006020820190506120966000830184611ea2565b92915050565b600060208201905081810360008301526120b68184611eb1565b905092915050565b600060208201905081810360008301526120d781611eea565b9050919050565b600060208201905081810360008301526120f781611f0d565b9050919050565b6000602082019050818103600083015261211781611f30565b9050919050565b6000602082019050818103600083015261213781611f53565b9050919050565b6000602082019050818103600083015261215781611f76565b9050919050565b6000602082019050818103600083015261217781611f99565b9050919050565b6000602082019050818103600083015261219781611fbc565b9050919050565b600060208201905081810360008301526121b781611fdf565b9050919050565b600060208201905081810360008301526121d781612002565b9050919050565b600060208201905081810360008301526121f781612025565b9050919050565b60006020820190506122136000830184612048565b92915050565b600060208201905061222e6000830184612057565b92915050565b600081519050919050565b600082825260208201905092915050565b600061225b826123a3565b9150612266836123a3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561229b5761229a61241f565b5b828201905092915050565b60006122b1826123a3565b91506122bc836123a3565b9250826122cc576122cb61244e565b5b828204905092915050565b60006122e2826123a3565b91506122ed836123a3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123265761232561241f565b5b828202905092915050565b600061233c826123a3565b9150612347836123a3565b92508282101561235a5761235961241f565b5b828203905092915050565b600061237082612383565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156123d85780820151818401526020810190506123bd565b838111156123e7576000848401525b50505050565b6000600282049050600182168061240557607f821691505b602082108114156124195761241861247d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b61274481612365565b811461274f57600080fd5b50565b61275b81612377565b811461276657600080fd5b50565b612772816123a3565b811461277d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205c5a4872ff6f4c042be980ef966aed74fc10f6f4430faf666c28f836399d60f264736f6c63430008040033

Deployed Bytecode Sourcemap

21342:3383:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4363:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6530:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21537:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5483:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7181:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21417:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5325:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7945:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21671:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5654:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18824:148;;;;;;;;;;;;;:::i;:::-;;22616:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22969:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18182:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22461:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4582:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23121:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8666:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5994:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21472:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21711:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22746:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6232:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19127:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21636: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;21537: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;21417:48::-;21463:1;21417: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;21671: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;22616:120::-;22668:4;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22701:5:::1;22684:14;;:22;;;;;;;;;;;;;;;;;;22724:4;22717:11;;22616:120:::0;:::o;22969:144::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23101:4:::1;23059:31;:39;23091:6;23059:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;22969:144:::0;;:::o;18182:79::-;18220:7;18247:6;;;;;;;;;;;18240:13;;18182:79;:::o;22461:103::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22544:12:::1;22528:13;;:28;;;;;;;;;;;;;;;;;;22461:103:::0;:::o;4582:104::-;4638:13;4671:7;4664:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4582:104;:::o;23121:191::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23214:41:::1;23243:4;23249:5;23214:28;:41::i;:::-;23266:38;23292:4;23298:5;23266:25;:38::i;:::-;23121: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;21472:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;21711:33::-;;;;;;;;;;;;;:::o;22746:215::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22868:4:::1;22862;22858:1;22842:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;22841:31;;;;:::i;:::-;22831:6;:41;;22823:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;22946:6;22936;:17;;;;:::i;:::-;22924:9;:29;;;;22746: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;21636: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;23518:1196::-;23666:1;23650:18;;:4;:18;;;;23642:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23743:1;23729:16;;:2;:16;;;;23721:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23810:1;23800:6;:11;23797:92;;;23828:28;23844:4;23850:2;23854:1;23828:15;:28::i;:::-;23871:7;;23797:92;23904:14;;;;;;;;;;;23901:760;;;23964:7;:5;:7::i;:::-;23956:15;;:4;:15;;;;:49;;;;;23998:7;:5;:7::i;:::-;23992:13;;:2;:13;;;;23956:49;:86;;;;;24040:1;24026:16;;:2;:16;;;;23956:86;:128;;;;;24077:6;24063:21;;:2;:21;;;;23956:128;23934:716;;;24120:13;;;;;;;;;;;24116:107;;24171:7;:5;:7::i;:::-;24163:15;;:4;:15;;;24155:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;24116:107;24273:25;:31;24299:4;24273:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;24309:31;:35;24341:2;24309:35;;;;;;;;;;;;;;;;;;;;;;;;;24308:36;24273:71;24269:366;;;24407:9;;24390:13;24400:2;24390:9;:13::i;:::-;24381:6;:22;;;;:::i;:::-;:35;;24373:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24269:366;;;24489:31;:35;24521:2;24489:35;;;;;;;;;;;;;;;;;;;;;;;;;24485:150;;24582:9;;24565:13;24575:2;24565:9;:13::i;:::-;24556:6;:22;;;;:::i;:::-;:35;;24548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24485:150;24269:366;23934:716;23901:760;24673:33;24689:4;24695:2;24699:6;24673:15;:33::i;:::-;23518: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;23320:188::-;23437:5;23403:25;:31;23429:4;23403:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;23494:5;23460:40;;23488:4;23460:40;;;;;;;;;;;;23320: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:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:262::-;495:6;544:2;532:9;523:7;519:23;515:32;512:2;;;560:1;557;550:12;512:2;603:1;628:53;673:7;664:6;653:9;649:22;628:53;:::i;:::-;618:63;;574:117;502:196;;;;:::o;704:407::-;772:6;780;829:2;817:9;808:7;804:23;800:32;797:2;;;845:1;842;835:12;797:2;888:1;913:53;958:7;949:6;938:9;934:22;913:53;:::i;:::-;903:63;;859:117;1015:2;1041:53;1086:7;1077:6;1066:9;1062:22;1041:53;:::i;:::-;1031:63;;986:118;787:324;;;;;:::o;1117:552::-;1194:6;1202;1210;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;1275:1;1272;1265:12;1227:2;1318:1;1343:53;1388:7;1379:6;1368:9;1364:22;1343:53;:::i;:::-;1333:63;;1289:117;1445:2;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1416:118;1573:2;1599:53;1644:7;1635:6;1624:9;1620:22;1599:53;:::i;:::-;1589:63;;1544:118;1217:452;;;;;:::o;1675:401::-;1740:6;1748;1797:2;1785:9;1776:7;1772:23;1768:32;1765:2;;;1813:1;1810;1803:12;1765:2;1856:1;1881:53;1926:7;1917:6;1906:9;1902:22;1881:53;:::i;:::-;1871:63;;1827:117;1983:2;2009:50;2051:7;2042:6;2031:9;2027:22;2009:50;:::i;:::-;1999:60;;1954:115;1755:321;;;;;:::o;2082:407::-;2150:6;2158;2207:2;2195:9;2186:7;2182:23;2178:32;2175:2;;;2223:1;2220;2213:12;2175:2;2266:1;2291:53;2336:7;2327:6;2316:9;2312:22;2291:53;:::i;:::-;2281:63;;2237:117;2393:2;2419:53;2464:7;2455:6;2444:9;2440:22;2419:53;:::i;:::-;2409:63;;2364:118;2165:324;;;;;:::o;2495:256::-;2551:6;2600:2;2588:9;2579:7;2575:23;2571:32;2568:2;;;2616:1;2613;2606:12;2568:2;2659:1;2684:50;2726:7;2717:6;2706:9;2702:22;2684:50;:::i;:::-;2674:60;;2630:114;2558:193;;;;:::o;2757:262::-;2816:6;2865:2;2853:9;2844:7;2840:23;2836:32;2833:2;;;2881:1;2878;2871:12;2833:2;2924:1;2949:53;2994:7;2985:6;2974:9;2970:22;2949:53;:::i;:::-;2939:63;;2895:117;2823:196;;;;:::o;3025:118::-;3112:24;3130:5;3112:24;:::i;:::-;3107:3;3100:37;3090:53;;:::o;3149:109::-;3230:21;3245:5;3230:21;:::i;:::-;3225:3;3218:34;3208:50;;:::o;3264:364::-;3352:3;3380:39;3413:5;3380:39;:::i;:::-;3435:71;3499:6;3494:3;3435:71;:::i;:::-;3428:78;;3515:52;3560:6;3555:3;3548:4;3541:5;3537:16;3515:52;:::i;:::-;3592:29;3614:6;3592:29;:::i;:::-;3587:3;3583:39;3576:46;;3356:272;;;;;:::o;3634:366::-;3776:3;3797:67;3861:2;3856:3;3797:67;:::i;:::-;3790:74;;3873:93;3962:3;3873:93;:::i;:::-;3991:2;3986:3;3982:12;3975:19;;3780:220;;;:::o;4006:366::-;4148:3;4169:67;4233:2;4228:3;4169:67;:::i;:::-;4162:74;;4245:93;4334:3;4245:93;:::i;:::-;4363:2;4358:3;4354:12;4347:19;;4152:220;;;:::o;4378:366::-;4520:3;4541:67;4605:2;4600:3;4541:67;:::i;:::-;4534:74;;4617:93;4706:3;4617:93;:::i;:::-;4735:2;4730:3;4726:12;4719:19;;4524:220;;;:::o;4750:366::-;4892:3;4913:67;4977:2;4972:3;4913:67;:::i;:::-;4906:74;;4989:93;5078:3;4989:93;:::i;:::-;5107:2;5102:3;5098:12;5091:19;;4896:220;;;:::o;5122:366::-;5264:3;5285:67;5349:2;5344:3;5285:67;:::i;:::-;5278:74;;5361:93;5450:3;5361:93;:::i;:::-;5479:2;5474:3;5470:12;5463:19;;5268:220;;;:::o;5494:366::-;5636:3;5657:67;5721:2;5716:3;5657:67;:::i;:::-;5650:74;;5733:93;5822:3;5733:93;:::i;:::-;5851:2;5846:3;5842:12;5835:19;;5640:220;;;:::o;5866:366::-;6008:3;6029:67;6093:2;6088:3;6029:67;:::i;:::-;6022:74;;6105:93;6194:3;6105:93;:::i;:::-;6223:2;6218:3;6214:12;6207:19;;6012:220;;;:::o;6238:366::-;6380:3;6401:67;6465:2;6460:3;6401:67;:::i;:::-;6394:74;;6477:93;6566:3;6477:93;:::i;:::-;6595:2;6590:3;6586:12;6579:19;;6384:220;;;:::o;6610:366::-;6752:3;6773:67;6837:2;6832:3;6773:67;:::i;:::-;6766:74;;6849:93;6938:3;6849:93;:::i;:::-;6967:2;6962:3;6958:12;6951:19;;6756:220;;;:::o;6982:366::-;7124:3;7145:67;7209:2;7204:3;7145:67;:::i;:::-;7138:74;;7221:93;7310:3;7221:93;:::i;:::-;7339:2;7334:3;7330:12;7323:19;;7128:220;;;:::o;7354:118::-;7441:24;7459:5;7441:24;:::i;:::-;7436:3;7429:37;7419:53;;:::o;7478:112::-;7561:22;7577:5;7561:22;:::i;:::-;7556:3;7549:35;7539:51;;:::o;7596:222::-;7689:4;7727:2;7716:9;7712:18;7704:26;;7740:71;7808:1;7797:9;7793:17;7784:6;7740:71;:::i;:::-;7694:124;;;;:::o;7824:210::-;7911:4;7949:2;7938:9;7934:18;7926:26;;7962:65;8024:1;8013:9;8009:17;8000:6;7962:65;:::i;:::-;7916:118;;;;:::o;8040:313::-;8153:4;8191:2;8180:9;8176:18;8168:26;;8240:9;8234:4;8230:20;8226:1;8215:9;8211:17;8204:47;8268:78;8341:4;8332:6;8268:78;:::i;:::-;8260:86;;8158:195;;;;:::o;8359:419::-;8525:4;8563:2;8552:9;8548:18;8540:26;;8612:9;8606:4;8602:20;8598:1;8587:9;8583:17;8576:47;8640:131;8766:4;8640:131;:::i;:::-;8632:139;;8530:248;;;:::o;8784:419::-;8950:4;8988:2;8977:9;8973:18;8965:26;;9037:9;9031:4;9027:20;9023:1;9012:9;9008:17;9001:47;9065:131;9191:4;9065:131;:::i;:::-;9057:139;;8955:248;;;:::o;9209:419::-;9375:4;9413:2;9402:9;9398:18;9390:26;;9462:9;9456:4;9452:20;9448:1;9437:9;9433:17;9426:47;9490:131;9616:4;9490:131;:::i;:::-;9482:139;;9380:248;;;:::o;9634:419::-;9800:4;9838:2;9827:9;9823:18;9815:26;;9887:9;9881:4;9877:20;9873:1;9862:9;9858:17;9851:47;9915:131;10041:4;9915:131;:::i;:::-;9907:139;;9805:248;;;:::o;10059:419::-;10225:4;10263:2;10252:9;10248:18;10240:26;;10312:9;10306:4;10302:20;10298:1;10287:9;10283:17;10276:47;10340:131;10466:4;10340:131;:::i;:::-;10332:139;;10230:248;;;:::o;10484:419::-;10650:4;10688:2;10677:9;10673:18;10665:26;;10737:9;10731:4;10727:20;10723:1;10712:9;10708:17;10701:47;10765:131;10891:4;10765:131;:::i;:::-;10757:139;;10655:248;;;:::o;10909:419::-;11075:4;11113:2;11102:9;11098:18;11090:26;;11162:9;11156:4;11152:20;11148:1;11137:9;11133:17;11126:47;11190:131;11316:4;11190:131;:::i;:::-;11182:139;;11080:248;;;:::o;11334:419::-;11500:4;11538:2;11527:9;11523:18;11515:26;;11587:9;11581:4;11577:20;11573:1;11562:9;11558:17;11551:47;11615:131;11741:4;11615:131;:::i;:::-;11607:139;;11505:248;;;:::o;11759:419::-;11925:4;11963:2;11952:9;11948:18;11940:26;;12012:9;12006:4;12002:20;11998:1;11987:9;11983:17;11976:47;12040:131;12166:4;12040:131;:::i;:::-;12032:139;;11930:248;;;:::o;12184:419::-;12350:4;12388:2;12377:9;12373:18;12365:26;;12437:9;12431:4;12427:20;12423:1;12412:9;12408:17;12401:47;12465:131;12591:4;12465:131;:::i;:::-;12457:139;;12355:248;;;:::o;12609:222::-;12702:4;12740:2;12729:9;12725:18;12717:26;;12753:71;12821:1;12810:9;12806:17;12797:6;12753:71;:::i;:::-;12707:124;;;;:::o;12837:214::-;12926:4;12964:2;12953:9;12949:18;12941:26;;12977:67;13041:1;13030:9;13026:17;13017:6;12977:67;:::i;:::-;12931:120;;;;:::o;13057:99::-;13109:6;13143:5;13137:12;13127:22;;13116:40;;;:::o;13162:169::-;13246:11;13280:6;13275:3;13268:19;13320:4;13315:3;13311:14;13296:29;;13258:73;;;;:::o;13337:305::-;13377:3;13396:20;13414:1;13396:20;:::i;:::-;13391:25;;13430:20;13448:1;13430:20;:::i;:::-;13425:25;;13584:1;13516:66;13512:74;13509:1;13506:81;13503:2;;;13590:18;;:::i;:::-;13503:2;13634:1;13631;13627:9;13620:16;;13381:261;;;;:::o;13648:185::-;13688:1;13705:20;13723:1;13705:20;:::i;:::-;13700:25;;13739:20;13757:1;13739:20;:::i;:::-;13734:25;;13778:1;13768:2;;13783:18;;:::i;:::-;13768:2;13825:1;13822;13818:9;13813:14;;13690:143;;;;:::o;13839:348::-;13879:7;13902:20;13920:1;13902:20;:::i;:::-;13897:25;;13936:20;13954:1;13936:20;:::i;:::-;13931:25;;14124:1;14056:66;14052:74;14049:1;14046:81;14041:1;14034:9;14027:17;14023:105;14020:2;;;14131:18;;:::i;:::-;14020:2;14179:1;14176;14172:9;14161:20;;13887:300;;;;:::o;14193:191::-;14233:4;14253:20;14271:1;14253:20;:::i;:::-;14248:25;;14287:20;14305:1;14287:20;:::i;:::-;14282:25;;14326:1;14323;14320:8;14317:2;;;14331:18;;:::i;:::-;14317:2;14376:1;14373;14369:9;14361:17;;14238:146;;;;:::o;14390:96::-;14427:7;14456:24;14474:5;14456:24;:::i;:::-;14445:35;;14435:51;;;:::o;14492:90::-;14526:7;14569:5;14562:13;14555:21;14544:32;;14534:48;;;:::o;14588:126::-;14625:7;14665:42;14658:5;14654:54;14643:65;;14633:81;;;:::o;14720:77::-;14757:7;14786:5;14775:16;;14765:32;;;:::o;14803:86::-;14838:7;14878:4;14871:5;14867:16;14856:27;;14846:43;;;:::o;14895:307::-;14963:1;14973:113;14987:6;14984:1;14981:13;14973:113;;;15072:1;15067:3;15063:11;15057:18;15053:1;15048:3;15044:11;15037:39;15009:2;15006:1;15002:10;14997:15;;14973:113;;;15104:6;15101:1;15098:13;15095:2;;;15184:1;15175:6;15170:3;15166:16;15159:27;15095:2;14944:258;;;;:::o;15208:320::-;15252:6;15289:1;15283:4;15279:12;15269:22;;15336:1;15330:4;15326:12;15357:18;15347:2;;15413:4;15405:6;15401:17;15391:27;;15347:2;15475;15467:6;15464:14;15444:18;15441:38;15438:2;;;15494:18;;:::i;:::-;15438:2;15259:269;;;;:::o;15534:180::-;15582:77;15579:1;15572:88;15679:4;15676:1;15669:15;15703:4;15700:1;15693:15;15720:180;15768:77;15765:1;15758:88;15865:4;15862:1;15855:15;15889:4;15886:1;15879:15;15906:180;15954:77;15951:1;15944:88;16051:4;16048:1;16041:15;16075:4;16072:1;16065:15;16092:102;16133:6;16184:2;16180:7;16175:2;16168:5;16164:14;16160:28;16150:38;;16140:54;;;:::o;16200:222::-;16340:34;16336:1;16328:6;16324:14;16317:58;16409:5;16404:2;16396:6;16392:15;16385:30;16306:116;:::o;16428:172::-;16568:24;16564:1;16556:6;16552:14;16545:48;16534:66;:::o;16606:225::-;16746:34;16742:1;16734:6;16730:14;16723:58;16815:8;16810:2;16802:6;16798:15;16791:33;16712:119;:::o;16837:221::-;16977:34;16973:1;16965:6;16961:14;16954:58;17046:4;17041:2;17033:6;17029:15;17022:29;16943:115;:::o;17064:177::-;17204:29;17200:1;17192:6;17188:14;17181:53;17170:71;:::o;17247:223::-;17387:34;17383:1;17375:6;17371:14;17364:58;17456:6;17451:2;17443:6;17439:15;17432:31;17353:117;:::o;17476:182::-;17616:34;17612:1;17604:6;17600:14;17593:58;17582:76;:::o;17664:224::-;17804:34;17800:1;17792:6;17788:14;17781:58;17873:7;17868:2;17860:6;17856:15;17849:32;17770:118;:::o;17894:223::-;18034:34;18030:1;18022:6;18018:14;18011:58;18103:6;18098:2;18090:6;18086:15;18079:31;18000:117;:::o;18123:169::-;18263:21;18259:1;18251:6;18247:14;18240:45;18229:63;:::o;18298:122::-;18371:24;18389:5;18371:24;:::i;:::-;18364:5;18361:35;18351:2;;18410:1;18407;18400:12;18351:2;18341:79;:::o;18426:116::-;18496:21;18511:5;18496:21;:::i;:::-;18489:5;18486:32;18476:2;;18532:1;18529;18522:12;18476:2;18466:76;:::o;18548:122::-;18621:24;18639:5;18621:24;:::i;:::-;18614:5;18611:35;18601:2;;18660:1;18657;18650:12;18601:2;18591:79;:::o

Swarm Source

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