ETH Price: $3,416.27 (-1.59%)
Gas: 10 Gwei

Token

Buy & Earn (B&R)
 

Overview

Max Total Supply

1,000,000 B&R

Holders

4

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Verox: Deployer
Balance
94.84249791775756534 B&R

Value
$0.00
0x33bc71bb9abf03e08ca43f2506650dea6fa421f9
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:
BUY_EARN

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

pragma solidity 0.8.4;

// SPDX-License-Identifier: MIT

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal virtual view returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Interface of the BEP20 standard as defined in the EIP.
 */
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
    );
}

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
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;
    }
}

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;


            bytes32 accountHash
         = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-block.timestamp/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    ) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{value: weiValue}(
            data
        );
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
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;
    }
}

interface Token {
    function transfer(address, uint256) external returns (bool);
}

contract BUY_EARN is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    string private _name = "Buy & Earn";
    string private _symbol = "B&R";
    uint8 private _decimals = 18;

    mapping(address => uint256) internal _reflectionBalance;
    mapping(address => uint256) internal _tokenBalance;
    mapping(address => mapping(address => uint256)) internal _allowances;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 internal _tokenTotal = 1000000 *10**18;
    uint256 internal _reflectionTotal = (MAX - (MAX % _tokenTotal));
    
    mapping(address => bool) isExcludedFromFee;
    mapping(address => bool) internal _isExcluded;
    address[] internal _excluded;
    
    uint256 public _taxFee = 0;
    uint256 public _charityFee = 9999;
    
    uint256 public _taxFeeTotal;
    uint256 public _charityFeeTotal;
    
    address public charityAddress = address(this);
    
    event RewardsDistributed(uint256 amount);

    constructor() {
        
        isExcludedFromFee[_msgSender()] = true;
        isExcludedFromFee[address(this)] = true;
        
        _reflectionBalance[_msgSender()] = _reflectionTotal;
        emit Transfer(address(0), _msgSender(), _tokenTotal);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public override view returns (uint256) {
        return _tokenTotal;
    }

    function balanceOf(address account) public override view returns (uint256) {
        if (_isExcluded[account]) return _tokenBalance[account];
        return tokenFromReflection(_reflectionBalance[account]);
    }

    function transfer(address recipient, uint256 amount) public override virtual returns (bool) {
       _transfer(_msgSender(),recipient,amount);
        return true;
    }

    function allowance(address owner, address spender) public override view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override virtual returns (bool) {
        _transfer(sender,recipient,amount);
               
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub( amount,"ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

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

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function reflectionFromToken(uint256 tokenAmount, bool deductTransferFee) public view returns (uint256) {
        require(tokenAmount <= _tokenTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            return tokenAmount.mul(_getReflectionRate());
        } else {
            return
                tokenAmount.sub(tokenAmount.mul(_taxFee).div(10000)).mul(
                    _getReflectionRate()
                );
        }
    }

    function tokenFromReflection(uint256 reflectionAmount) public view returns (uint256) {
        require(reflectionAmount <= _reflectionTotal, "Amount must be less than total reflections");
        uint256 currentRate = _getReflectionRate();
        return reflectionAmount.div(currentRate);
    }

    function excludeAccount(address account) external onlyOwner() {
        require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D,"AntiBot: Uniswap router cannot be excluded.");
        require(account != address(this), 'AntiBot: The contract it self cannot be excluded');
        require(!_isExcluded[account], "AntiBot: Account is already excluded");
        if (_reflectionBalance[account] > 0) {
            _tokenBalance[account] = tokenFromReflection(
                _reflectionBalance[account]
            );
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "AntiBot: Account is already included");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tokenBalance[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        uint256 transferAmount = amount;
        uint256 rate = _getReflectionRate();

        if(!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]){
            transferAmount = collectFee(sender,amount,rate);
        }

        //@dev Transfer reflection
        _reflectionBalance[sender] = _reflectionBalance[sender].sub(amount.mul(rate));
        _reflectionBalance[recipient] = _reflectionBalance[recipient].add(transferAmount.mul(rate));

        //@dev If any account belongs to the excludedAccount transfer token
        if (_isExcluded[sender]) {
            _tokenBalance[sender] = _tokenBalance[sender].sub(amount);
        }
        if (_isExcluded[recipient]) {
            _tokenBalance[recipient] = _tokenBalance[recipient].add(transferAmount);
        }

        emit Transfer(sender, recipient, transferAmount);
    }
    
    function collectFee(address account, uint256 amount, uint256 rate) private returns (uint256) {
        
        uint256 transferAmount = amount;
        uint256 charityFee = amount.mul(_charityFee).div(10000);
        
        //@dev charity fee
        if(_charityFee != 0){
            transferAmount = transferAmount.sub(charityFee);
            _reflectionBalance[charityAddress] = _reflectionBalance[charityAddress].add(charityFee.mul(rate));
            _charityFeeTotal = _charityFeeTotal.add(charityFee);
            emit Transfer(account,charityAddress,charityFee);
        }
        
        return transferAmount;
    }

    function _getReflectionRate() private view returns (uint256) {
        uint256 reflectionSupply = _reflectionTotal;
        uint256 tokenSupply = _tokenTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (
                _reflectionBalance[_excluded[i]] > reflectionSupply ||
                _tokenBalance[_excluded[i]] > tokenSupply
            ) return _reflectionTotal.div(_tokenTotal);
            reflectionSupply = reflectionSupply.sub(
                _reflectionBalance[_excluded[i]]
            );
            tokenSupply = tokenSupply.sub(_tokenBalance[_excluded[i]]);
        }
        if (reflectionSupply < _reflectionTotal.div(_tokenTotal))
            return _reflectionTotal.div(_tokenTotal);
        return reflectionSupply.div(tokenSupply);
    }
    
    function setExcludedFromFee(address account, bool excluded) public onlyOwner {
        isExcludedFromFee[account] = excluded;
    }
    
    function setTaxFee(uint256 fee) public onlyOwner {
        _taxFee = fee;
    }
    
    function setCharityFee(uint256 fee) public onlyOwner {
        _charityFee = fee;
    }
    
    // function to allow admin to transfer ETH from this contract
    function TransferETH(address payable recipient, uint256 amount) public onlyOwner {
        recipient.transfer(amount);
    }
    
    // function to allow admin to transfer ERC20 tokens from this contract
    function transferAnyERC20Tokens(address _tokenAddress, address _to, uint256 _amount) public onlyOwner {
        Token(_tokenAddress).transfer(_to, _amount);
    }
    
    receive() external payable {}
}

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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsDistributed","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 payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_charityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_charityFeeTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"charityAddress","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":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setCharityFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflectionAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferAnyERC20Tokens","outputs":[],"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"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600a81526020017f4275792026204561726e00000000000000000000000000000000000000000000815250600190805190602001906200005192919062000393565b506040518060400160405280600381526020017f4226520000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000393565b506012600360006101000a81548160ff021916908360ff16021790555069d3c21bcecceda1000000600755600754600019620000dc9190620004ec565b600019620000eb919062000471565b6008556000600c5561270f600d5530601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200014757600080fd5b5060006200015a6200038b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506001600960006200020e6200038b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060085460046000620002ce6200038b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200031c6200038b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040516200037d919062000454565b60405180910390a3620005b1565b600033905090565b828054620003a190620004b6565b90600052602060002090601f016020900481019282620003c5576000855562000411565b82601f10620003e057805160ff191683800117855562000411565b8280016001018555821562000411579182015b8281111562000410578251825591602001919060010190620003f3565b5b50905062000420919062000424565b5090565b5b808211156200043f57600081600090555060010162000425565b5090565b6200044e81620004ac565b82525050565b60006020820190506200046b600083018462000443565b92915050565b60006200047e82620004ac565b91506200048b83620004ac565b925082821015620004a157620004a062000524565b5b828203905092915050565b6000819050919050565b60006002820490506001821680620004cf57607f821691505b60208210811415620004e657620004e562000582565b5b50919050565b6000620004f982620004ac565b91506200050683620004ac565b92508262000519576200051862000553565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613ba180620005c16000396000f3fe6080604052600436106101c65760003560e01c80636a395ccb116100f7578063afcf2fc411610095578063f2cc0c1811610064578063f2cc0c181461069d578063f2fde38b146106c6578063f84354f1146106ef578063fd69c21514610718576101cd565b8063afcf2fc4146105cf578063c4081a4c146105fa578063cba0e99614610623578063dd62ed3e14610660576101cd565b80638da5cb5b116100d15780638da5cb5b146104ff57806395d89b411461052a578063a457c2d714610555578063a9059cbb14610592576101cd565b80636a395ccb1461048257806370a08231146104ab578063715018a6146104e8576101cd565b8063355bc60b116101645780633b124fe71161013e5780633b124fe7146103c657806340f8007a146103f15780634549b0391461041c5780636612e66f14610459576101cd565b8063355bc60b1461033357806335837f9e1461035e5780633950935114610389576101cd565b806320c7c596116101a057806320c7c5961461026557806323b872dd1461028e5780632d838119146102cb578063313ce56714610308576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610741565b6040516101f49190613177565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612dcc565b6107d3565b604051610231919061315c565b60405180910390f35b34801561024657600080fd5b5061024f6107f1565b60405161025c9190613379565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612e31565b6107fb565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612d41565b61089a565b6040516102c2919061315c565b60405180910390f35b3480156102d757600080fd5b506102f260048036038101906102ed9190612e31565b610973565b6040516102ff9190613379565b60405180910390f35b34801561031457600080fd5b5061031d6109e1565b60405161032a9190613394565b60405180910390f35b34801561033f57600080fd5b506103486109f8565b6040516103559190613379565b60405180910390f35b34801561036a57600080fd5b506103736109fe565b6040516103809190613379565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190612dcc565b610a04565b6040516103bd919061315c565b60405180910390f35b3480156103d257600080fd5b506103db610ab7565b6040516103e89190613379565b60405180910390f35b3480156103fd57600080fd5b50610406610abd565b6040516104139190613379565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612e5a565b610ac3565b6040516104509190613379565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190612d90565b610b8d565b005b34801561048e57600080fd5b506104a960048036038101906104a49190612d41565b610c7d565b005b3480156104b757600080fd5b506104d260048036038101906104cd9190612ca0565b610da5565b6040516104df9190613379565b60405180910390f35b3480156104f457600080fd5b506104fd610e90565b005b34801561050b57600080fd5b50610514610fe3565b6040516105219190613118565b60405180910390f35b34801561053657600080fd5b5061053f61100c565b60405161054c9190613177565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612dcc565b61109e565b604051610589919061315c565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190612dcc565b61116b565b6040516105c6919061315c565b60405180910390f35b3480156105db57600080fd5b506105e4611189565b6040516105f19190613118565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190612e31565b6111af565b005b34801561062f57600080fd5b5061064a60048036038101906106459190612ca0565b61124e565b604051610657919061315c565b60405180910390f35b34801561066c57600080fd5b5061068760048036038101906106829190612d05565b6112a4565b6040516106949190613379565b60405180910390f35b3480156106a957600080fd5b506106c460048036038101906106bf9190612ca0565b61132b565b005b3480156106d257600080fd5b506106ed60048036038101906106e89190612ca0565b6116d1565b005b3480156106fb57600080fd5b5061071660048036038101906107119190612ca0565b611893565b005b34801561072457600080fd5b5061073f600480360381019061073a9190612cc9565b611c7a565b005b6060600180546107509061357a565b80601f016020809104026020016040519081016040528092919081815260200182805461077c9061357a565b80156107c95780601f1061079e576101008083540402835291602001916107c9565b820191906000526020600020905b8154815290600101906020018083116107ac57829003601f168201915b5050505050905090565b60006107e76107e0611d5a565b8484611d62565b6001905092915050565b6000600754905090565b610803611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088790613299565b60405180910390fd5b80600d8190555050565b60006108a7848484611f2d565b610968846108b3611d5a565b61096385604051806060016040528060288152602001613b1f60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610919611d5a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a29092919063ffffffff16565b611d62565b600190509392505050565b60006008548211156109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b1906131b9565b60405180910390fd5b60006109c4612506565b90506109d9818461287b90919063ffffffff16565b915050919050565b6000600360009054906101000a900460ff16905090565b600e5481565b600f5481565b6000610aad610a11611d5a565b84610aa88560066000610a22611d5a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c590919063ffffffff16565b611d62565b6001905092915050565b600c5481565b600d5481565b6000600754831115610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0190613259565b60405180910390fd5b81610b3057610b29610b1a612506565b8461292390919063ffffffff16565b9050610b87565b610b84610b3b612506565b610b76610b67612710610b59600c548961292390919063ffffffff16565b61287b90919063ffffffff16565b8661299e90919063ffffffff16565b61292390919063ffffffff16565b90505b92915050565b610b95611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1990613299565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610c85611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990613299565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610d4d929190613133565b602060405180830381600087803b158015610d6757600080fd5b505af1158015610d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9f9190612e08565b50505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e4057600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e8b565b610e88600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610973565b90505b919050565b610e98611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1c90613299565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461101b9061357a565b80601f01602080910402602001604051908101604052809291908181526020018280546110479061357a565b80156110945780601f1061106957610100808354040283529160200191611094565b820191906000526020600020905b81548152906001019060200180831161107757829003601f168201915b5050505050905090565b60006111616110ab611d5a565b8461115c85604051806060016040528060258152602001613b4760259139600660006110d5611d5a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a29092919063ffffffff16565b611d62565b6001905092915050565b600061117f611178611d5a565b8484611f2d565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111b7611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90613299565b60405180910390fd5b80600c8190555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611333611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790613299565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a906132f9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a9906132d9565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561153f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153690613359565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611613576115cf600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610973565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116d9611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90613299565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd906131d9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61189b611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90613299565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab90613239565b60405180910390fd5b60005b600b80549050811015611c76578173ffffffffffffffffffffffffffffffffffffffff16600b8281548110611a15577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c6357600b6001600b80549050611a7091906134ac565b81548110611aa7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b8281548110611b0c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b805480611c29577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611c76565b8080611c6e906135ac565b9150506119b7565b5050565b611c82611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0690613299565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d55573d6000803e3d6000fd5b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc990613339565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e39906131f9565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f209190613379565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9490613319565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561200d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200490613199565b60405180910390fd5b60008111612050576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612047906132b9565b60405180910390fd5b6000819050600061205f612506565b9050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121055750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612118576121158584836129e8565b91505b61217c61212e828561292390919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299e90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122236121d5828461292390919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c590919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561234e5761230a83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299e90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612436576123f282600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c590919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124939190613379565b60405180910390a35050505050565b60008383111582906124ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e19190613177565b60405180910390fd5b50600083856124f991906134ac565b9050809150509392505050565b60008060085490506000600754905060005b600b80549050811015612821578260046000600b8481548110612564577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061267857508160056000600b8481548110612610577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561269e5761269460075460085461287b90919063ffffffff16565b9350505050612878565b61275460046000600b84815481106126df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461299e90919063ffffffff16565b925061280c60056000600b8481548110612797577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361299e90919063ffffffff16565b91508080612819906135ac565b915050612518565b5061283960075460085461287b90919063ffffffff16565b8210156128605761285760075460085461287b90919063ffffffff16565b92505050612878565b612873818361287b90919063ffffffff16565b925050505b90565b60006128bd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bd4565b905092915050565b60008082846128d491906133cb565b905083811015612919576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291090613219565b60405180910390fd5b8091505092915050565b6000808314156129365760009050612998565b600082846129449190613452565b90508284826129539190613421565b14612993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298a90613279565b60405180910390fd5b809150505b92915050565b60006129e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124a2565b905092915050565b6000808390506000612a19612710612a0b600d548861292390919063ffffffff16565b61287b90919063ffffffff16565b90506000600d5414612bc857612a38818361299e90919063ffffffff16565b9150612ac0612a50858361292390919063ffffffff16565b60046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c590919063ffffffff16565b60046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b3a81600f546128c590919063ffffffff16565b600f81905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bbf9190613379565b60405180910390a35b81925050509392505050565b60008083118290612c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c129190613177565b60405180910390fd5b5060008385612c2a9190613421565b9050809150509392505050565b600081359050612c4681613ac2565b92915050565b600081359050612c5b81613ad9565b92915050565b600081359050612c7081613af0565b92915050565b600081519050612c8581613af0565b92915050565b600081359050612c9a81613b07565b92915050565b600060208284031215612cb257600080fd5b6000612cc084828501612c37565b91505092915050565b60008060408385031215612cdc57600080fd5b6000612cea85828601612c4c565b9250506020612cfb85828601612c8b565b9150509250929050565b60008060408385031215612d1857600080fd5b6000612d2685828601612c37565b9250506020612d3785828601612c37565b9150509250929050565b600080600060608486031215612d5657600080fd5b6000612d6486828701612c37565b9350506020612d7586828701612c37565b9250506040612d8686828701612c8b565b9150509250925092565b60008060408385031215612da357600080fd5b6000612db185828601612c37565b9250506020612dc285828601612c61565b9150509250929050565b60008060408385031215612ddf57600080fd5b6000612ded85828601612c37565b9250506020612dfe85828601612c8b565b9150509250929050565b600060208284031215612e1a57600080fd5b6000612e2884828501612c76565b91505092915050565b600060208284031215612e4357600080fd5b6000612e5184828501612c8b565b91505092915050565b60008060408385031215612e6d57600080fd5b6000612e7b85828601612c8b565b9250506020612e8c85828601612c61565b9150509250929050565b612e9f816134e0565b82525050565b612eae81613504565b82525050565b6000612ebf826133af565b612ec981856133ba565b9350612ed9818560208601613547565b612ee281613682565b840191505092915050565b6000612efa6023836133ba565b9150612f0582613693565b604082019050919050565b6000612f1d602a836133ba565b9150612f28826136e2565b604082019050919050565b6000612f406026836133ba565b9150612f4b82613731565b604082019050919050565b6000612f636022836133ba565b9150612f6e82613780565b604082019050919050565b6000612f86601b836133ba565b9150612f91826137cf565b602082019050919050565b6000612fa96024836133ba565b9150612fb4826137f8565b604082019050919050565b6000612fcc601f836133ba565b9150612fd782613847565b602082019050919050565b6000612fef6021836133ba565b9150612ffa82613870565b604082019050919050565b60006130126020836133ba565b915061301d826138bf565b602082019050919050565b60006130356029836133ba565b9150613040826138e8565b604082019050919050565b60006130586030836133ba565b915061306382613937565b604082019050919050565b600061307b602b836133ba565b915061308682613986565b604082019050919050565b600061309e6025836133ba565b91506130a9826139d5565b604082019050919050565b60006130c16024836133ba565b91506130cc82613a24565b604082019050919050565b60006130e46024836133ba565b91506130ef82613a73565b604082019050919050565b61310381613530565b82525050565b6131128161353a565b82525050565b600060208201905061312d6000830184612e96565b92915050565b60006040820190506131486000830185612e96565b61315560208301846130fa565b9392505050565b60006020820190506131716000830184612ea5565b92915050565b600060208201905081810360008301526131918184612eb4565b905092915050565b600060208201905081810360008301526131b281612eed565b9050919050565b600060208201905081810360008301526131d281612f10565b9050919050565b600060208201905081810360008301526131f281612f33565b9050919050565b6000602082019050818103600083015261321281612f56565b9050919050565b6000602082019050818103600083015261323281612f79565b9050919050565b6000602082019050818103600083015261325281612f9c565b9050919050565b6000602082019050818103600083015261327281612fbf565b9050919050565b6000602082019050818103600083015261329281612fe2565b9050919050565b600060208201905081810360008301526132b281613005565b9050919050565b600060208201905081810360008301526132d281613028565b9050919050565b600060208201905081810360008301526132f28161304b565b9050919050565b600060208201905081810360008301526133128161306e565b9050919050565b6000602082019050818103600083015261333281613091565b9050919050565b60006020820190508181036000830152613352816130b4565b9050919050565b60006020820190508181036000830152613372816130d7565b9050919050565b600060208201905061338e60008301846130fa565b92915050565b60006020820190506133a96000830184613109565b92915050565b600081519050919050565b600082825260208201905092915050565b60006133d682613530565b91506133e183613530565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613416576134156135f5565b5b828201905092915050565b600061342c82613530565b915061343783613530565b92508261344757613446613624565b5b828204905092915050565b600061345d82613530565b915061346883613530565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134a1576134a06135f5565b5b828202905092915050565b60006134b782613530565b91506134c283613530565b9250828210156134d5576134d46135f5565b5b828203905092915050565b60006134eb82613510565b9050919050565b60006134fd82613510565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561356557808201518184015260208101905061354a565b83811115613574576000848401525b50505050565b6000600282049050600182168061359257607f821691505b602082108114156135a6576135a5613653565b5b50919050565b60006135b782613530565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135ea576135e96135f5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416e7469426f743a204163636f756e7420697320616c726561647920696e636c60008201527f7564656400000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f416e7469426f743a2054686520636f6e74726163742069742073656c6620636160008201527f6e6e6f74206265206578636c7564656400000000000000000000000000000000602082015250565b7f416e7469426f743a20556e697377617020726f757465722063616e6e6f74206260008201527f65206578636c756465642e000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f416e7469426f743a204163636f756e7420697320616c7265616479206578636c60008201527f7564656400000000000000000000000000000000000000000000000000000000602082015250565b613acb816134e0565b8114613ad657600080fd5b50565b613ae2816134f2565b8114613aed57600080fd5b50565b613af981613504565b8114613b0457600080fd5b50565b613b1081613530565b8114613b1b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220492239e06bc0e83c4deac3f2e6ebd2f6904238dd6543e193092fdb3c6fef089f64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c80636a395ccb116100f7578063afcf2fc411610095578063f2cc0c1811610064578063f2cc0c181461069d578063f2fde38b146106c6578063f84354f1146106ef578063fd69c21514610718576101cd565b8063afcf2fc4146105cf578063c4081a4c146105fa578063cba0e99614610623578063dd62ed3e14610660576101cd565b80638da5cb5b116100d15780638da5cb5b146104ff57806395d89b411461052a578063a457c2d714610555578063a9059cbb14610592576101cd565b80636a395ccb1461048257806370a08231146104ab578063715018a6146104e8576101cd565b8063355bc60b116101645780633b124fe71161013e5780633b124fe7146103c657806340f8007a146103f15780634549b0391461041c5780636612e66f14610459576101cd565b8063355bc60b1461033357806335837f9e1461035e5780633950935114610389576101cd565b806320c7c596116101a057806320c7c5961461026557806323b872dd1461028e5780632d838119146102cb578063313ce56714610308576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610741565b6040516101f49190613177565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612dcc565b6107d3565b604051610231919061315c565b60405180910390f35b34801561024657600080fd5b5061024f6107f1565b60405161025c9190613379565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612e31565b6107fb565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612d41565b61089a565b6040516102c2919061315c565b60405180910390f35b3480156102d757600080fd5b506102f260048036038101906102ed9190612e31565b610973565b6040516102ff9190613379565b60405180910390f35b34801561031457600080fd5b5061031d6109e1565b60405161032a9190613394565b60405180910390f35b34801561033f57600080fd5b506103486109f8565b6040516103559190613379565b60405180910390f35b34801561036a57600080fd5b506103736109fe565b6040516103809190613379565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190612dcc565b610a04565b6040516103bd919061315c565b60405180910390f35b3480156103d257600080fd5b506103db610ab7565b6040516103e89190613379565b60405180910390f35b3480156103fd57600080fd5b50610406610abd565b6040516104139190613379565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612e5a565b610ac3565b6040516104509190613379565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190612d90565b610b8d565b005b34801561048e57600080fd5b506104a960048036038101906104a49190612d41565b610c7d565b005b3480156104b757600080fd5b506104d260048036038101906104cd9190612ca0565b610da5565b6040516104df9190613379565b60405180910390f35b3480156104f457600080fd5b506104fd610e90565b005b34801561050b57600080fd5b50610514610fe3565b6040516105219190613118565b60405180910390f35b34801561053657600080fd5b5061053f61100c565b60405161054c9190613177565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612dcc565b61109e565b604051610589919061315c565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190612dcc565b61116b565b6040516105c6919061315c565b60405180910390f35b3480156105db57600080fd5b506105e4611189565b6040516105f19190613118565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190612e31565b6111af565b005b34801561062f57600080fd5b5061064a60048036038101906106459190612ca0565b61124e565b604051610657919061315c565b60405180910390f35b34801561066c57600080fd5b5061068760048036038101906106829190612d05565b6112a4565b6040516106949190613379565b60405180910390f35b3480156106a957600080fd5b506106c460048036038101906106bf9190612ca0565b61132b565b005b3480156106d257600080fd5b506106ed60048036038101906106e89190612ca0565b6116d1565b005b3480156106fb57600080fd5b5061071660048036038101906107119190612ca0565b611893565b005b34801561072457600080fd5b5061073f600480360381019061073a9190612cc9565b611c7a565b005b6060600180546107509061357a565b80601f016020809104026020016040519081016040528092919081815260200182805461077c9061357a565b80156107c95780601f1061079e576101008083540402835291602001916107c9565b820191906000526020600020905b8154815290600101906020018083116107ac57829003601f168201915b5050505050905090565b60006107e76107e0611d5a565b8484611d62565b6001905092915050565b6000600754905090565b610803611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088790613299565b60405180910390fd5b80600d8190555050565b60006108a7848484611f2d565b610968846108b3611d5a565b61096385604051806060016040528060288152602001613b1f60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610919611d5a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a29092919063ffffffff16565b611d62565b600190509392505050565b60006008548211156109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b1906131b9565b60405180910390fd5b60006109c4612506565b90506109d9818461287b90919063ffffffff16565b915050919050565b6000600360009054906101000a900460ff16905090565b600e5481565b600f5481565b6000610aad610a11611d5a565b84610aa88560066000610a22611d5a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c590919063ffffffff16565b611d62565b6001905092915050565b600c5481565b600d5481565b6000600754831115610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0190613259565b60405180910390fd5b81610b3057610b29610b1a612506565b8461292390919063ffffffff16565b9050610b87565b610b84610b3b612506565b610b76610b67612710610b59600c548961292390919063ffffffff16565b61287b90919063ffffffff16565b8661299e90919063ffffffff16565b61292390919063ffffffff16565b90505b92915050565b610b95611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1990613299565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610c85611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990613299565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610d4d929190613133565b602060405180830381600087803b158015610d6757600080fd5b505af1158015610d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9f9190612e08565b50505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e4057600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e8b565b610e88600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610973565b90505b919050565b610e98611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1c90613299565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461101b9061357a565b80601f01602080910402602001604051908101604052809291908181526020018280546110479061357a565b80156110945780601f1061106957610100808354040283529160200191611094565b820191906000526020600020905b81548152906001019060200180831161107757829003601f168201915b5050505050905090565b60006111616110ab611d5a565b8461115c85604051806060016040528060258152602001613b4760259139600660006110d5611d5a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a29092919063ffffffff16565b611d62565b6001905092915050565b600061117f611178611d5a565b8484611f2d565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111b7611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90613299565b60405180910390fd5b80600c8190555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611333611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790613299565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a906132f9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a9906132d9565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561153f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153690613359565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611613576115cf600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610973565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116d9611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90613299565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd906131d9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61189b611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90613299565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab90613239565b60405180910390fd5b60005b600b80549050811015611c76578173ffffffffffffffffffffffffffffffffffffffff16600b8281548110611a15577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c6357600b6001600b80549050611a7091906134ac565b81548110611aa7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b8281548110611b0c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b805480611c29577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611c76565b8080611c6e906135ac565b9150506119b7565b5050565b611c82611d5a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0690613299565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d55573d6000803e3d6000fd5b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc990613339565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e39906131f9565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f209190613379565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9490613319565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561200d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200490613199565b60405180910390fd5b60008111612050576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612047906132b9565b60405180910390fd5b6000819050600061205f612506565b9050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121055750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612118576121158584836129e8565b91505b61217c61212e828561292390919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299e90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122236121d5828461292390919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c590919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561234e5761230a83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299e90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612436576123f282600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c590919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124939190613379565b60405180910390a35050505050565b60008383111582906124ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e19190613177565b60405180910390fd5b50600083856124f991906134ac565b9050809150509392505050565b60008060085490506000600754905060005b600b80549050811015612821578260046000600b8481548110612564577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061267857508160056000600b8481548110612610577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561269e5761269460075460085461287b90919063ffffffff16565b9350505050612878565b61275460046000600b84815481106126df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461299e90919063ffffffff16565b925061280c60056000600b8481548110612797577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361299e90919063ffffffff16565b91508080612819906135ac565b915050612518565b5061283960075460085461287b90919063ffffffff16565b8210156128605761285760075460085461287b90919063ffffffff16565b92505050612878565b612873818361287b90919063ffffffff16565b925050505b90565b60006128bd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bd4565b905092915050565b60008082846128d491906133cb565b905083811015612919576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291090613219565b60405180910390fd5b8091505092915050565b6000808314156129365760009050612998565b600082846129449190613452565b90508284826129539190613421565b14612993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298a90613279565b60405180910390fd5b809150505b92915050565b60006129e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124a2565b905092915050565b6000808390506000612a19612710612a0b600d548861292390919063ffffffff16565b61287b90919063ffffffff16565b90506000600d5414612bc857612a38818361299e90919063ffffffff16565b9150612ac0612a50858361292390919063ffffffff16565b60046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c590919063ffffffff16565b60046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b3a81600f546128c590919063ffffffff16565b600f81905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bbf9190613379565b60405180910390a35b81925050509392505050565b60008083118290612c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c129190613177565b60405180910390fd5b5060008385612c2a9190613421565b9050809150509392505050565b600081359050612c4681613ac2565b92915050565b600081359050612c5b81613ad9565b92915050565b600081359050612c7081613af0565b92915050565b600081519050612c8581613af0565b92915050565b600081359050612c9a81613b07565b92915050565b600060208284031215612cb257600080fd5b6000612cc084828501612c37565b91505092915050565b60008060408385031215612cdc57600080fd5b6000612cea85828601612c4c565b9250506020612cfb85828601612c8b565b9150509250929050565b60008060408385031215612d1857600080fd5b6000612d2685828601612c37565b9250506020612d3785828601612c37565b9150509250929050565b600080600060608486031215612d5657600080fd5b6000612d6486828701612c37565b9350506020612d7586828701612c37565b9250506040612d8686828701612c8b565b9150509250925092565b60008060408385031215612da357600080fd5b6000612db185828601612c37565b9250506020612dc285828601612c61565b9150509250929050565b60008060408385031215612ddf57600080fd5b6000612ded85828601612c37565b9250506020612dfe85828601612c8b565b9150509250929050565b600060208284031215612e1a57600080fd5b6000612e2884828501612c76565b91505092915050565b600060208284031215612e4357600080fd5b6000612e5184828501612c8b565b91505092915050565b60008060408385031215612e6d57600080fd5b6000612e7b85828601612c8b565b9250506020612e8c85828601612c61565b9150509250929050565b612e9f816134e0565b82525050565b612eae81613504565b82525050565b6000612ebf826133af565b612ec981856133ba565b9350612ed9818560208601613547565b612ee281613682565b840191505092915050565b6000612efa6023836133ba565b9150612f0582613693565b604082019050919050565b6000612f1d602a836133ba565b9150612f28826136e2565b604082019050919050565b6000612f406026836133ba565b9150612f4b82613731565b604082019050919050565b6000612f636022836133ba565b9150612f6e82613780565b604082019050919050565b6000612f86601b836133ba565b9150612f91826137cf565b602082019050919050565b6000612fa96024836133ba565b9150612fb4826137f8565b604082019050919050565b6000612fcc601f836133ba565b9150612fd782613847565b602082019050919050565b6000612fef6021836133ba565b9150612ffa82613870565b604082019050919050565b60006130126020836133ba565b915061301d826138bf565b602082019050919050565b60006130356029836133ba565b9150613040826138e8565b604082019050919050565b60006130586030836133ba565b915061306382613937565b604082019050919050565b600061307b602b836133ba565b915061308682613986565b604082019050919050565b600061309e6025836133ba565b91506130a9826139d5565b604082019050919050565b60006130c16024836133ba565b91506130cc82613a24565b604082019050919050565b60006130e46024836133ba565b91506130ef82613a73565b604082019050919050565b61310381613530565b82525050565b6131128161353a565b82525050565b600060208201905061312d6000830184612e96565b92915050565b60006040820190506131486000830185612e96565b61315560208301846130fa565b9392505050565b60006020820190506131716000830184612ea5565b92915050565b600060208201905081810360008301526131918184612eb4565b905092915050565b600060208201905081810360008301526131b281612eed565b9050919050565b600060208201905081810360008301526131d281612f10565b9050919050565b600060208201905081810360008301526131f281612f33565b9050919050565b6000602082019050818103600083015261321281612f56565b9050919050565b6000602082019050818103600083015261323281612f79565b9050919050565b6000602082019050818103600083015261325281612f9c565b9050919050565b6000602082019050818103600083015261327281612fbf565b9050919050565b6000602082019050818103600083015261329281612fe2565b9050919050565b600060208201905081810360008301526132b281613005565b9050919050565b600060208201905081810360008301526132d281613028565b9050919050565b600060208201905081810360008301526132f28161304b565b9050919050565b600060208201905081810360008301526133128161306e565b9050919050565b6000602082019050818103600083015261333281613091565b9050919050565b60006020820190508181036000830152613352816130b4565b9050919050565b60006020820190508181036000830152613372816130d7565b9050919050565b600060208201905061338e60008301846130fa565b92915050565b60006020820190506133a96000830184613109565b92915050565b600081519050919050565b600082825260208201905092915050565b60006133d682613530565b91506133e183613530565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613416576134156135f5565b5b828201905092915050565b600061342c82613530565b915061343783613530565b92508261344757613446613624565b5b828204905092915050565b600061345d82613530565b915061346883613530565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134a1576134a06135f5565b5b828202905092915050565b60006134b782613530565b91506134c283613530565b9250828210156134d5576134d46135f5565b5b828203905092915050565b60006134eb82613510565b9050919050565b60006134fd82613510565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561356557808201518184015260208101905061354a565b83811115613574576000848401525b50505050565b6000600282049050600182168061359257607f821691505b602082108114156135a6576135a5613653565b5b50919050565b60006135b782613530565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135ea576135e96135f5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416e7469426f743a204163636f756e7420697320616c726561647920696e636c60008201527f7564656400000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f416e7469426f743a2054686520636f6e74726163742069742073656c6620636160008201527f6e6e6f74206265206578636c7564656400000000000000000000000000000000602082015250565b7f416e7469426f743a20556e697377617020726f757465722063616e6e6f74206260008201527f65206578636c756465642e000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f416e7469426f743a204163636f756e7420697320616c7265616479206578636c60008201527f7564656400000000000000000000000000000000000000000000000000000000602082015250565b613acb816134e0565b8114613ad657600080fd5b50565b613ae2816134f2565b8114613aed57600080fd5b50565b613af981613504565b8114613b0457600080fd5b50565b613b1081613530565b8114613b1b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220492239e06bc0e83c4deac3f2e6ebd2f6904238dd6543e193092fdb3c6fef089f64736f6c63430008040033

Deployed Bytecode Sourcemap

18141:9129:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19435:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20373:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19712:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26680:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20542:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21986:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19621:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18976:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19010:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20884:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18897:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18930:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21505:473;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26442:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27062:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19819:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17460:148;;;;;;;;;;;;;:::i;:::-;;16818:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19526:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21110:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20042:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19054:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26587:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21387:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20222:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22293:617;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17763:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22918:493;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26848:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19435:83;19472:13;19505:5;19498:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19435:83;:::o;20373:161::-;20448:4;20465:39;20474:12;:10;:12::i;:::-;20488:7;20497:6;20465:8;:39::i;:::-;20522:4;20515:11;;20373:161;;;;:::o;19712:99::-;19765:7;19792:11;;19785:18;;19712:99;:::o;26680:89::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26758:3:::1;26744:11;:17;;;;26680:89:::0;:::o;20542:334::-;20648:4;20665:34;20675:6;20682:9;20692:6;20665:9;:34::i;:::-;20727:119;20736:6;20743:12;:10;:12::i;:::-;20756:89;20795:6;20756:89;;;;;;;;;;;;;;;;;:11;:19;20768:6;20756:19;;;;;;;;;;;;;;;:33;20776:12;:10;:12::i;:::-;20756:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;20727:8;:119::i;:::-;20864:4;20857:11;;20542:334;;;;;:::o;21986:299::-;22062:7;22110:16;;22090;:36;;22082:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;22184:19;22206:20;:18;:20::i;:::-;22184:42;;22244:33;22265:11;22244:16;:20;;:33;;;;:::i;:::-;22237:40;;;21986:299;;;:::o;19621:83::-;19662:5;19687:9;;;;;;;;;;;19680:16;;19621:83;:::o;18976:27::-;;;;:::o;19010:31::-;;;;:::o;20884:218::-;20972:4;20989:83;20998:12;:10;:12::i;:::-;21012:7;21021:50;21060:10;21021:11;:25;21033:12;:10;:12::i;:::-;21021:25;;;;;;;;;;;;;;;:34;21047:7;21021:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20989:8;:83::i;:::-;21090:4;21083:11;;20884:218;;;;:::o;18897:26::-;;;;:::o;18930:33::-;;;;:::o;21505:473::-;21600:7;21643:11;;21628;:26;;21620:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;21706:17;21701:270;;21747:37;21763:20;:18;:20::i;:::-;21747:11;:15;;:37;;;;:::i;:::-;21740:44;;;;21701:270;21841:118;21920:20;:18;:20::i;:::-;21841:52;21857:35;21886:5;21857:24;21873:7;;21857:11;:15;;:24;;;;:::i;:::-;:28;;:35;;;;:::i;:::-;21841:11;:15;;:52;;;;:::i;:::-;:56;;:118;;;;:::i;:::-;21817:142;;21505:473;;;;;:::o;26442:133::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26559:8:::1;26530:17;:26;26548:7;26530:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;26442:133:::0;;:::o;27062:164::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27181:13:::1;27175:29;;;27205:3;27210:7;27175:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27062:164:::0;;;:::o;19819:215::-;19885:7;19909:11;:20;19921:7;19909:20;;;;;;;;;;;;;;;;;;;;;;;;;19905:55;;;19938:13;:22;19952:7;19938:22;;;;;;;;;;;;;;;;19931:29;;;;19905:55;19978:48;19998:18;:27;20017:7;19998:27;;;;;;;;;;;;;;;;19978:19;:48::i;:::-;19971:55;;19819:215;;;;:::o;17460:148::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17567:1:::1;17530:40;;17551:6;::::0;::::1;;;;;;;;17530:40;;;;;;;;;;;;17598:1;17581:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;17460:148::o:0;16818:79::-;16856:7;16883:6;;;;;;;;;;;16876:13;;16818:79;:::o;19526:87::-;19565:13;19598:7;19591:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19526:87;:::o;21110:269::-;21203:4;21220:129;21229:12;:10;:12::i;:::-;21243:7;21252:96;21291:15;21252:96;;;;;;;;;;;;;;;;;:11;:25;21264:12;:10;:12::i;:::-;21252:25;;;;;;;;;;;;;;;:34;21278:7;21252:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;21220:8;:129::i;:::-;21367:4;21360:11;;21110:269;;;;:::o;20042:172::-;20128:4;20144:40;20154:12;:10;:12::i;:::-;20167:9;20177:6;20144:9;:40::i;:::-;20202:4;20195:11;;20042:172;;;;:::o;19054:45::-;;;;;;;;;;;;;:::o;26587:81::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26657:3:::1;26647:7;:13;;;;26587:81:::0;:::o;21387:110::-;21445:4;21469:11;:20;21481:7;21469:20;;;;;;;;;;;;;;;;;;;;;;;;;21462:27;;21387:110;;;:::o;20222:143::-;20303:7;20330:11;:18;20342:5;20330:18;;;;;;;;;;;;;;;:27;20349:7;20330:27;;;;;;;;;;;;;;;;20323:34;;20222:143;;;;:::o;22293:617::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22385:42:::1;22374:53;;:7;:53;;;;22366:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;22512:4;22493:24;;:7;:24;;;;22485:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;22590:11;:20;22602:7;22590:20;;;;;;;;;;;;;;;;;;;;;;;;;22589:21;22581:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22696:1;22666:18;:27;22685:7;22666:27;;;;;;;;;;;;;;;;:31;22662:169;;;22739:80;22777:18;:27;22796:7;22777:27;;;;;;;;;;;;;;;;22739:19;:80::i;:::-;22714:13;:22;22728:7;22714:22;;;;;;;;;;;;;;;:105;;;;22662:169;22864:4;22841:11;:20;22853:7;22841:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22879:9;22894:7;22879:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22293:617:::0;:::o;17763:281::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17886:1:::1;17866:22;;:8;:22;;;;17844:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;17999:8;17970:38;;17991:6;::::0;::::1;;;;;;;;17970:38;;;;;;;;;;;;18028:8;18019:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;17763:281:::0;:::o;22918:493::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22999:11:::1;:20;23011:7;22999:20;;;;;;;;;;;;;;;;;;;;;;;;;22991:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;23076:9;23071:333;23095:9;:16;;;;23091:1;:20;23071:333;;;23153:7;23137:23;;:9;23147:1;23137:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;23133:260;;;23196:9;23225:1;23206:9;:16;;;;:20;;;;:::i;:::-;23196:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23181:9;23191:1;23181:12;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;23271:1;23246:13;:22;23260:7;23246:22;;;;;;;;;;;;;;;:26;;;;23314:5;23291:11;:20;23303:7;23291:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23338:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23372:5;;23133:260;23113:3;;;;;:::i;:::-;;;;23071:333;;;;22918:493:::0;:::o;26848:126::-;17040:12;:10;:12::i;:::-;17030:22;;:6;;;;;;;;;;:22;;;17022:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26940:9:::1;:18;;:26;26959:6;26940:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;26848:126:::0;;:::o;604:98::-;657:7;684:10;677:17;;604:98;:::o;23419:337::-;23529:1;23512:19;;:5;:19;;;;23504:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23610:1;23591:21;;:7;:21;;;;23583:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23694:6;23664:11;:18;23676:5;23664:18;;;;;;;;;;;;;;;:27;23683:7;23664:27;;;;;;;;;;;;;;;:36;;;;23732:7;23716:32;;23725:5;23716:32;;;23741:6;23716:32;;;;;;:::i;:::-;;;;;;;;23419:337;;;:::o;23764:1194::-;23879:1;23861:20;;:6;:20;;;;23853:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23963:1;23942:23;;:9;:23;;;;23934:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24033:1;24024:6;:10;24016:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24101:22;24126:6;24101:31;;24143:12;24158:20;:18;:20::i;:::-;24143:35;;24195:17;:25;24213:6;24195:25;;;;;;;;;;;;;;;;;;;;;;;;;24194:26;:59;;;;;24225:17;:28;24243:9;24225:28;;;;;;;;;;;;;;;;;;;;;;;;;24224:29;24194:59;24191:137;;;24286:30;24297:6;24304;24311:4;24286:10;:30::i;:::-;24269:47;;24191:137;24405:48;24436:16;24447:4;24436:6;:10;;:16;;;;:::i;:::-;24405:18;:26;24424:6;24405:26;;;;;;;;;;;;;;;;:30;;:48;;;;:::i;:::-;24376:18;:26;24395:6;24376:26;;;;;;;;;;;;;;;:77;;;;24496:59;24530:24;24549:4;24530:14;:18;;:24;;;;:::i;:::-;24496:18;:29;24515:9;24496:29;;;;;;;;;;;;;;;;:33;;:59;;;;:::i;:::-;24464:18;:29;24483:9;24464:29;;;;;;;;;;;;;;;:91;;;;24649:11;:19;24661:6;24649:19;;;;;;;;;;;;;;;;;;;;;;;;;24645:109;;;24709:33;24735:6;24709:13;:21;24723:6;24709:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;24685:13;:21;24699:6;24685:21;;;;;;;;;;;;;;;:57;;;;24645:109;24768:11;:22;24780:9;24768:22;;;;;;;;;;;;;;;;;;;;;;;;;24764:126;;;24834:44;24863:14;24834:13;:24;24848:9;24834:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;24807:13;:24;24821:9;24807:24;;;;;;;;;;;;;;;:71;;;;24764:126;24924:9;24907:43;;24916:6;24907:43;;;24935:14;24907:43;;;;;;:::i;:::-;;;;;;;;23764:1194;;;;;:::o;5519:226::-;5639:7;5672:1;5667;:6;;5675:12;5659:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5699:9;5715:1;5711;:5;;;;:::i;:::-;5699:17;;5736:1;5729:8;;;5519:226;;;;;:::o;25622:808::-;25674:7;25694:24;25721:16;;25694:43;;25748:19;25770:11;;25748:33;;25797:9;25792:458;25816:9;:16;;;;25812:1;:20;25792:458;;;25911:16;25876:18;:32;25895:9;25905:1;25895:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25876:32;;;;;;;;;;;;;;;;:51;:113;;;;25978:11;25948:13;:27;25962:9;25972:1;25962:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25948:27;;;;;;;;;;;;;;;;:41;25876:113;25854:191;;;26012:33;26033:11;;26012:16;;:20;;:33;;;;:::i;:::-;26005:40;;;;;;;25854:191;26079:86;26118:18;:32;26137:9;26147:1;26137:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26118:32;;;;;;;;;;;;;;;;26079:16;:20;;:86;;;;:::i;:::-;26060:105;;26194:44;26210:13;:27;26224:9;26234:1;26224:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26210:27;;;;;;;;;;;;;;;;26194:11;:15;;:44;;;;:::i;:::-;26180:58;;25834:3;;;;;:::i;:::-;;;;25792:458;;;;26283:33;26304:11;;26283:16;;:20;;:33;;;;:::i;:::-;26264:16;:52;26260:111;;;26338:33;26359:11;;26338:16;;:20;;:33;;;;:::i;:::-;26331:40;;;;;;26260:111;26389:33;26410:11;26389:16;:20;;:33;;;;:::i;:::-;26382:40;;;;25622:808;;:::o;6951:132::-;7009:7;7036:39;7040:1;7043;7036:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7029:46;;6951:132;;;;:::o;4616:181::-;4674:7;4694:9;4710:1;4706;:5;;;;:::i;:::-;4694:17;;4735:1;4730;:6;;4722:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4788:1;4781:8;;;4616:181;;;;:::o;6004:471::-;6062:7;6312:1;6307;:6;6303:47;;;6337:1;6330:8;;;;6303:47;6362:9;6378:1;6374;:5;;;;:::i;:::-;6362:17;;6407:1;6402;6398;:5;;;;:::i;:::-;:10;6390:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6466:1;6459:8;;;6004:471;;;;;:::o;5080:136::-;5138:7;5165:43;5169:1;5172;5165:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5158:50;;5080:136;;;;:::o;24970:644::-;25054:7;25084:22;25109:6;25084:31;;25126:18;25147:34;25175:5;25147:23;25158:11;;25147:6;:10;;:23;;;;:::i;:::-;:27;;:34;;;;:::i;:::-;25126:55;;25248:1;25233:11;;:16;25230:335;;25282:30;25301:10;25282:14;:18;;:30;;;;:::i;:::-;25265:47;;25364:60;25403:20;25418:4;25403:10;:14;;:20;;;;:::i;:::-;25364:18;:34;25383:14;;;;;;;;;;;25364:34;;;;;;;;;;;;;;;;:38;;:60;;;;:::i;:::-;25327:18;:34;25346:14;;;;;;;;;;;25327:34;;;;;;;;;;;;;;;:97;;;;25458:32;25479:10;25458:16;;:20;;:32;;;;:::i;:::-;25439:16;:51;;;;25527:14;;;;;;;;;;;25510:43;;25519:7;25510:43;;;25542:10;25510:43;;;;;;:::i;:::-;;;;;;;;25230:335;25592:14;25585:21;;;;24970:644;;;;;:::o;7579:312::-;7699:7;7731:1;7727;:5;7734:12;7719:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7758:9;7774:1;7770;:5;;;;:::i;:::-;7758:17;;7882:1;7875:8;;;7579:312;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;362:84;;;;:::o;452:137::-;506:5;537:6;531:13;522:22;;553:30;577:5;553:30;:::i;:::-;512:77;;;;:::o;595:139::-;641:5;679:6;666:20;657:29;;695:33;722:5;695:33;:::i;:::-;647:87;;;;:::o;740:262::-;799:6;848:2;836:9;827:7;823:23;819:32;816:2;;;864:1;861;854:12;816:2;907:1;932:53;977:7;968:6;957:9;953:22;932:53;:::i;:::-;922:63;;878:117;806:196;;;;:::o;1008:423::-;1084:6;1092;1141:2;1129:9;1120:7;1116:23;1112:32;1109:2;;;1157:1;1154;1147:12;1109:2;1200:1;1225:61;1278:7;1269:6;1258:9;1254:22;1225:61;:::i;:::-;1215:71;;1171:125;1335:2;1361:53;1406:7;1397:6;1386:9;1382:22;1361:53;:::i;:::-;1351:63;;1306:118;1099:332;;;;;:::o;1437:407::-;1505:6;1513;1562:2;1550:9;1541:7;1537:23;1533:32;1530:2;;;1578:1;1575;1568:12;1530:2;1621:1;1646:53;1691:7;1682:6;1671:9;1667:22;1646:53;:::i;:::-;1636:63;;1592:117;1748:2;1774:53;1819:7;1810:6;1799:9;1795:22;1774:53;:::i;:::-;1764:63;;1719:118;1520:324;;;;;:::o;1850:552::-;1927:6;1935;1943;1992:2;1980:9;1971:7;1967:23;1963:32;1960:2;;;2008:1;2005;1998:12;1960:2;2051:1;2076:53;2121:7;2112:6;2101:9;2097:22;2076:53;:::i;:::-;2066:63;;2022:117;2178:2;2204:53;2249:7;2240:6;2229:9;2225:22;2204:53;:::i;:::-;2194:63;;2149:118;2306:2;2332:53;2377:7;2368:6;2357:9;2353:22;2332:53;:::i;:::-;2322:63;;2277:118;1950:452;;;;;:::o;2408:401::-;2473:6;2481;2530:2;2518:9;2509:7;2505:23;2501:32;2498:2;;;2546:1;2543;2536:12;2498:2;2589:1;2614:53;2659:7;2650:6;2639:9;2635:22;2614:53;:::i;:::-;2604:63;;2560:117;2716:2;2742:50;2784:7;2775:6;2764:9;2760:22;2742:50;:::i;:::-;2732:60;;2687:115;2488:321;;;;;:::o;2815:407::-;2883:6;2891;2940:2;2928:9;2919:7;2915:23;2911:32;2908:2;;;2956:1;2953;2946:12;2908:2;2999:1;3024:53;3069:7;3060:6;3049:9;3045:22;3024:53;:::i;:::-;3014:63;;2970:117;3126:2;3152:53;3197:7;3188:6;3177:9;3173:22;3152:53;:::i;:::-;3142:63;;3097:118;2898:324;;;;;:::o;3228:278::-;3295:6;3344:2;3332:9;3323:7;3319:23;3315:32;3312:2;;;3360:1;3357;3350:12;3312:2;3403:1;3428:61;3481:7;3472:6;3461:9;3457:22;3428:61;:::i;:::-;3418:71;;3374:125;3302:204;;;;:::o;3512:262::-;3571:6;3620:2;3608:9;3599:7;3595:23;3591:32;3588:2;;;3636:1;3633;3626:12;3588:2;3679:1;3704:53;3749:7;3740:6;3729:9;3725:22;3704:53;:::i;:::-;3694:63;;3650:117;3578:196;;;;:::o;3780:401::-;3845:6;3853;3902:2;3890:9;3881:7;3877:23;3873:32;3870:2;;;3918:1;3915;3908:12;3870:2;3961:1;3986:53;4031:7;4022:6;4011:9;4007:22;3986:53;:::i;:::-;3976:63;;3932:117;4088:2;4114:50;4156:7;4147:6;4136:9;4132:22;4114:50;:::i;:::-;4104:60;;4059:115;3860:321;;;;;:::o;4187:118::-;4274:24;4292:5;4274:24;:::i;:::-;4269:3;4262:37;4252:53;;:::o;4311:109::-;4392:21;4407:5;4392:21;:::i;:::-;4387:3;4380:34;4370:50;;:::o;4426:364::-;4514:3;4542:39;4575:5;4542:39;:::i;:::-;4597:71;4661:6;4656:3;4597:71;:::i;:::-;4590:78;;4677:52;4722:6;4717:3;4710:4;4703:5;4699:16;4677:52;:::i;:::-;4754:29;4776:6;4754:29;:::i;:::-;4749:3;4745:39;4738:46;;4518:272;;;;;:::o;4796:366::-;4938:3;4959:67;5023:2;5018:3;4959:67;:::i;:::-;4952:74;;5035:93;5124:3;5035:93;:::i;:::-;5153:2;5148:3;5144:12;5137:19;;4942:220;;;:::o;5168:366::-;5310:3;5331:67;5395:2;5390:3;5331:67;:::i;:::-;5324:74;;5407:93;5496:3;5407:93;:::i;:::-;5525:2;5520:3;5516:12;5509:19;;5314:220;;;:::o;5540:366::-;5682:3;5703:67;5767:2;5762:3;5703:67;:::i;:::-;5696:74;;5779:93;5868:3;5779:93;:::i;:::-;5897:2;5892:3;5888:12;5881:19;;5686:220;;;:::o;5912:366::-;6054:3;6075:67;6139:2;6134:3;6075:67;:::i;:::-;6068:74;;6151:93;6240:3;6151:93;:::i;:::-;6269:2;6264:3;6260:12;6253:19;;6058:220;;;:::o;6284:366::-;6426:3;6447:67;6511:2;6506:3;6447:67;:::i;:::-;6440:74;;6523:93;6612:3;6523:93;:::i;:::-;6641:2;6636:3;6632:12;6625:19;;6430:220;;;:::o;6656:366::-;6798:3;6819:67;6883:2;6878:3;6819:67;:::i;:::-;6812:74;;6895:93;6984:3;6895:93;:::i;:::-;7013:2;7008:3;7004:12;6997:19;;6802:220;;;:::o;7028:366::-;7170:3;7191:67;7255:2;7250:3;7191:67;:::i;:::-;7184:74;;7267:93;7356:3;7267:93;:::i;:::-;7385:2;7380:3;7376:12;7369:19;;7174:220;;;:::o;7400:366::-;7542:3;7563:67;7627:2;7622:3;7563:67;:::i;:::-;7556:74;;7639:93;7728:3;7639:93;:::i;:::-;7757:2;7752:3;7748:12;7741:19;;7546:220;;;:::o;7772:366::-;7914:3;7935:67;7999:2;7994:3;7935:67;:::i;:::-;7928:74;;8011:93;8100:3;8011:93;:::i;:::-;8129:2;8124:3;8120:12;8113:19;;7918:220;;;:::o;8144:366::-;8286:3;8307:67;8371:2;8366:3;8307:67;:::i;:::-;8300:74;;8383:93;8472:3;8383:93;:::i;:::-;8501:2;8496:3;8492:12;8485:19;;8290:220;;;:::o;8516:366::-;8658:3;8679:67;8743:2;8738:3;8679:67;:::i;:::-;8672:74;;8755:93;8844:3;8755:93;:::i;:::-;8873:2;8868:3;8864:12;8857:19;;8662:220;;;:::o;8888:366::-;9030:3;9051:67;9115:2;9110:3;9051:67;:::i;:::-;9044:74;;9127:93;9216:3;9127:93;:::i;:::-;9245:2;9240:3;9236:12;9229:19;;9034:220;;;:::o;9260:366::-;9402:3;9423:67;9487:2;9482:3;9423:67;:::i;:::-;9416:74;;9499:93;9588:3;9499:93;:::i;:::-;9617:2;9612:3;9608:12;9601:19;;9406:220;;;:::o;9632:366::-;9774:3;9795:67;9859:2;9854:3;9795:67;:::i;:::-;9788:74;;9871:93;9960:3;9871:93;:::i;:::-;9989:2;9984:3;9980:12;9973:19;;9778:220;;;:::o;10004:366::-;10146:3;10167:67;10231:2;10226:3;10167:67;:::i;:::-;10160:74;;10243:93;10332:3;10243:93;:::i;:::-;10361:2;10356:3;10352:12;10345:19;;10150:220;;;:::o;10376:118::-;10463:24;10481:5;10463:24;:::i;:::-;10458:3;10451:37;10441:53;;:::o;10500:112::-;10583:22;10599:5;10583:22;:::i;:::-;10578:3;10571:35;10561:51;;:::o;10618:222::-;10711:4;10749:2;10738:9;10734:18;10726:26;;10762:71;10830:1;10819:9;10815:17;10806:6;10762:71;:::i;:::-;10716:124;;;;:::o;10846:332::-;10967:4;11005:2;10994:9;10990:18;10982:26;;11018:71;11086:1;11075:9;11071:17;11062:6;11018:71;:::i;:::-;11099:72;11167:2;11156:9;11152:18;11143:6;11099:72;:::i;:::-;10972:206;;;;;:::o;11184:210::-;11271:4;11309:2;11298:9;11294:18;11286:26;;11322:65;11384:1;11373:9;11369:17;11360:6;11322:65;:::i;:::-;11276:118;;;;:::o;11400:313::-;11513:4;11551:2;11540:9;11536:18;11528:26;;11600:9;11594:4;11590:20;11586:1;11575:9;11571:17;11564:47;11628:78;11701:4;11692:6;11628:78;:::i;:::-;11620:86;;11518:195;;;;:::o;11719:419::-;11885:4;11923:2;11912:9;11908:18;11900:26;;11972:9;11966:4;11962:20;11958:1;11947:9;11943:17;11936:47;12000:131;12126:4;12000:131;:::i;:::-;11992:139;;11890:248;;;:::o;12144:419::-;12310:4;12348:2;12337:9;12333:18;12325:26;;12397:9;12391:4;12387:20;12383:1;12372:9;12368:17;12361:47;12425:131;12551:4;12425:131;:::i;:::-;12417:139;;12315:248;;;:::o;12569:419::-;12735:4;12773:2;12762:9;12758:18;12750:26;;12822:9;12816:4;12812:20;12808:1;12797:9;12793:17;12786:47;12850:131;12976:4;12850:131;:::i;:::-;12842:139;;12740:248;;;:::o;12994:419::-;13160:4;13198:2;13187:9;13183:18;13175:26;;13247:9;13241:4;13237:20;13233:1;13222:9;13218:17;13211:47;13275:131;13401:4;13275:131;:::i;:::-;13267:139;;13165:248;;;:::o;13419:419::-;13585:4;13623:2;13612:9;13608:18;13600:26;;13672:9;13666:4;13662:20;13658:1;13647:9;13643:17;13636:47;13700:131;13826:4;13700:131;:::i;:::-;13692:139;;13590:248;;;:::o;13844:419::-;14010:4;14048:2;14037:9;14033:18;14025:26;;14097:9;14091:4;14087:20;14083:1;14072:9;14068:17;14061:47;14125:131;14251:4;14125:131;:::i;:::-;14117:139;;14015:248;;;:::o;14269:419::-;14435:4;14473:2;14462:9;14458:18;14450:26;;14522:9;14516:4;14512:20;14508:1;14497:9;14493:17;14486:47;14550:131;14676:4;14550:131;:::i;:::-;14542:139;;14440:248;;;:::o;14694:419::-;14860:4;14898:2;14887:9;14883:18;14875:26;;14947:9;14941:4;14937:20;14933:1;14922:9;14918:17;14911:47;14975:131;15101:4;14975:131;:::i;:::-;14967:139;;14865:248;;;:::o;15119:419::-;15285:4;15323:2;15312:9;15308:18;15300:26;;15372:9;15366:4;15362:20;15358:1;15347:9;15343:17;15336:47;15400:131;15526:4;15400:131;:::i;:::-;15392:139;;15290:248;;;:::o;15544:419::-;15710:4;15748:2;15737:9;15733:18;15725:26;;15797:9;15791:4;15787:20;15783:1;15772:9;15768:17;15761:47;15825:131;15951:4;15825:131;:::i;:::-;15817:139;;15715:248;;;:::o;15969:419::-;16135:4;16173:2;16162:9;16158:18;16150:26;;16222:9;16216:4;16212:20;16208:1;16197:9;16193:17;16186:47;16250:131;16376:4;16250:131;:::i;:::-;16242:139;;16140:248;;;:::o;16394:419::-;16560:4;16598:2;16587:9;16583:18;16575:26;;16647:9;16641:4;16637:20;16633:1;16622:9;16618:17;16611:47;16675:131;16801:4;16675:131;:::i;:::-;16667:139;;16565:248;;;:::o;16819:419::-;16985:4;17023:2;17012:9;17008:18;17000:26;;17072:9;17066:4;17062:20;17058:1;17047:9;17043:17;17036:47;17100:131;17226:4;17100:131;:::i;:::-;17092:139;;16990:248;;;:::o;17244:419::-;17410:4;17448:2;17437:9;17433:18;17425:26;;17497:9;17491:4;17487:20;17483:1;17472:9;17468:17;17461:47;17525:131;17651:4;17525:131;:::i;:::-;17517:139;;17415:248;;;:::o;17669:419::-;17835:4;17873:2;17862:9;17858:18;17850:26;;17922:9;17916:4;17912:20;17908:1;17897:9;17893:17;17886:47;17950:131;18076:4;17950:131;:::i;:::-;17942:139;;17840:248;;;:::o;18094:222::-;18187:4;18225:2;18214:9;18210:18;18202:26;;18238:71;18306:1;18295:9;18291:17;18282:6;18238:71;:::i;:::-;18192:124;;;;:::o;18322:214::-;18411:4;18449:2;18438:9;18434:18;18426:26;;18462:67;18526:1;18515:9;18511:17;18502:6;18462:67;:::i;:::-;18416:120;;;;:::o;18542:99::-;18594:6;18628:5;18622:12;18612:22;;18601:40;;;:::o;18647:169::-;18731:11;18765:6;18760:3;18753:19;18805:4;18800:3;18796:14;18781:29;;18743:73;;;;:::o;18822:305::-;18862:3;18881:20;18899:1;18881:20;:::i;:::-;18876:25;;18915:20;18933:1;18915:20;:::i;:::-;18910:25;;19069:1;19001:66;18997:74;18994:1;18991:81;18988:2;;;19075:18;;:::i;:::-;18988:2;19119:1;19116;19112:9;19105:16;;18866:261;;;;:::o;19133:185::-;19173:1;19190:20;19208:1;19190:20;:::i;:::-;19185:25;;19224:20;19242:1;19224:20;:::i;:::-;19219:25;;19263:1;19253:2;;19268:18;;:::i;:::-;19253:2;19310:1;19307;19303:9;19298:14;;19175:143;;;;:::o;19324:348::-;19364:7;19387:20;19405:1;19387:20;:::i;:::-;19382:25;;19421:20;19439:1;19421:20;:::i;:::-;19416:25;;19609:1;19541:66;19537:74;19534:1;19531:81;19526:1;19519:9;19512:17;19508:105;19505:2;;;19616:18;;:::i;:::-;19505:2;19664:1;19661;19657:9;19646:20;;19372:300;;;;:::o;19678:191::-;19718:4;19738:20;19756:1;19738:20;:::i;:::-;19733:25;;19772:20;19790:1;19772:20;:::i;:::-;19767:25;;19811:1;19808;19805:8;19802:2;;;19816:18;;:::i;:::-;19802:2;19861:1;19858;19854:9;19846:17;;19723:146;;;;:::o;19875:96::-;19912:7;19941:24;19959:5;19941:24;:::i;:::-;19930:35;;19920:51;;;:::o;19977:104::-;20022:7;20051:24;20069:5;20051:24;:::i;:::-;20040:35;;20030:51;;;:::o;20087:90::-;20121:7;20164:5;20157:13;20150:21;20139:32;;20129:48;;;:::o;20183:126::-;20220:7;20260:42;20253:5;20249:54;20238:65;;20228:81;;;:::o;20315:77::-;20352:7;20381:5;20370:16;;20360:32;;;:::o;20398:86::-;20433:7;20473:4;20466:5;20462:16;20451:27;;20441:43;;;:::o;20490:307::-;20558:1;20568:113;20582:6;20579:1;20576:13;20568:113;;;20667:1;20662:3;20658:11;20652:18;20648:1;20643:3;20639:11;20632:39;20604:2;20601:1;20597:10;20592:15;;20568:113;;;20699:6;20696:1;20693:13;20690:2;;;20779:1;20770:6;20765:3;20761:16;20754:27;20690:2;20539:258;;;;:::o;20803:320::-;20847:6;20884:1;20878:4;20874:12;20864:22;;20931:1;20925:4;20921:12;20952:18;20942:2;;21008:4;21000:6;20996:17;20986:27;;20942:2;21070;21062:6;21059:14;21039:18;21036:38;21033:2;;;21089:18;;:::i;:::-;21033:2;20854:269;;;;:::o;21129:233::-;21168:3;21191:24;21209:5;21191:24;:::i;:::-;21182:33;;21237:66;21230:5;21227:77;21224:2;;;21307:18;;:::i;:::-;21224:2;21354:1;21347:5;21343:13;21336:20;;21172:190;;;:::o;21368:180::-;21416:77;21413:1;21406:88;21513:4;21510:1;21503:15;21537:4;21534:1;21527:15;21554:180;21602:77;21599:1;21592:88;21699:4;21696:1;21689:15;21723:4;21720:1;21713:15;21740:180;21788:77;21785:1;21778:88;21885:4;21882:1;21875:15;21909:4;21906:1;21899:15;21926:102;21967:6;22018:2;22014:7;22009:2;22002:5;21998:14;21994:28;21984:38;;21974:54;;;:::o;22034:222::-;22174:34;22170:1;22162:6;22158:14;22151:58;22243:5;22238:2;22230:6;22226:15;22219:30;22140:116;:::o;22262:229::-;22402:34;22398:1;22390:6;22386:14;22379:58;22471:12;22466:2;22458:6;22454:15;22447:37;22368:123;:::o;22497:225::-;22637:34;22633:1;22625:6;22621:14;22614:58;22706:8;22701:2;22693:6;22689:15;22682:33;22603:119;:::o;22728:221::-;22868:34;22864:1;22856:6;22852:14;22845:58;22937:4;22932:2;22924:6;22920:15;22913:29;22834:115;:::o;22955:177::-;23095:29;23091:1;23083:6;23079:14;23072:53;23061:71;:::o;23138:223::-;23278:34;23274:1;23266:6;23262:14;23255:58;23347:6;23342:2;23334:6;23330:15;23323:31;23244:117;:::o;23367:181::-;23507:33;23503:1;23495:6;23491:14;23484:57;23473:75;:::o;23554:220::-;23694:34;23690:1;23682:6;23678:14;23671:58;23763:3;23758:2;23750:6;23746:15;23739:28;23660:114;:::o;23780:182::-;23920:34;23916:1;23908:6;23904:14;23897:58;23886:76;:::o;23968:228::-;24108:34;24104:1;24096:6;24092:14;24085:58;24177:11;24172:2;24164:6;24160:15;24153:36;24074:122;:::o;24202:235::-;24342:34;24338:1;24330:6;24326:14;24319:58;24411:18;24406:2;24398:6;24394:15;24387:43;24308:129;:::o;24443:230::-;24583:34;24579:1;24571:6;24567:14;24560:58;24652:13;24647:2;24639:6;24635:15;24628:38;24549:124;:::o;24679:224::-;24819:34;24815:1;24807:6;24803:14;24796:58;24888:7;24883:2;24875:6;24871:15;24864:32;24785:118;:::o;24909:223::-;25049:34;25045:1;25037:6;25033:14;25026:58;25118:6;25113:2;25105:6;25101:15;25094:31;25015:117;:::o;25138:223::-;25278:34;25274:1;25266:6;25262:14;25255:58;25347:6;25342:2;25334:6;25330:15;25323:31;25244:117;:::o;25367:122::-;25440:24;25458:5;25440:24;:::i;:::-;25433:5;25430:35;25420:2;;25479:1;25476;25469:12;25420:2;25410:79;:::o;25495:138::-;25576:32;25602:5;25576:32;:::i;:::-;25569:5;25566:43;25556:2;;25623:1;25620;25613:12;25556:2;25546:87;:::o;25639:116::-;25709:21;25724:5;25709:21;:::i;:::-;25702:5;25699:32;25689:2;;25745:1;25742;25735:12;25689:2;25679:76;:::o;25761:122::-;25834:24;25852:5;25834:24;:::i;:::-;25827:5;25824:35;25814:2;;25873:1;25870;25863:12;25814:2;25804:79;:::o

Swarm Source

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