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

Token

Dubbz Gaming (DUBBZ)
 

Overview

Max Total Supply

1,000,000,000,000 DUBBZ

Holders

6

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
38,002,615,766.492630612314814334 DUBBZ

Value
$0.00
0xea26796dac8808442eeb5bc0c1e4d593b83617bd
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:
DUBBZERC

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-30
*/

/**
 *Submitted for verification at Etherscan.io on 2022-09-15
*/

/*

DUBBZ GAMING
Welcome To The Future Of Gaming

https://t.me/dubzgaming

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

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

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

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

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-now/[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);
            }
        }
    }
}

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 IUniswapV2Router01 {
     function factory() external pure returns (address);
     function WETH() external pure returns (address);
 }

 interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address => uint256) private cooldown;

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
    address private uniswapV2Pair;
    IUniswapV2Router01 private uniswapRouter01 = IUniswapV2Router01(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000 * 10**9 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    bool enableTrading = true;

    string private _name = 'Dubbz Gaming    ';
    string private _symbol = 'DUBBZ ';
    uint8 private _decimals = 18;

    constructor () public {
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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 view override returns (uint256) {
        return _tTotal;
    }

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

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

    function allowance(address owner, address spender) public view override 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 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 totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function reflect(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }
    
    function useCoolDown(bool enable) public onlyOwner {
        enableTrading = enable;
    }
    
    function updateUniPair() public onlyOwner {
        address getPairAddress = IUniswapV2Factory(uniswapRouter01.factory()).getPair(address(this), uniswapRouter01.WETH());
        require(getPairAddress != address(0));
        uniswapV2Pair = getPairAddress;
    }

    function excludeAccount(address account) external onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[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");
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        if (sender != owner() && recipient != owner()) {
            if(sender != uniswapV2Pair) {
                require(enableTrading);
                require(cooldown[recipient] < block.timestamp);
                cooldown[recipient] = block.timestamp + (35 seconds);
            }
            if(sender == uniswapV2Pair) cooldown[sender] = block.timestamp + (35 seconds);
        }
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);       
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
       
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
       
        uint256 tFee;
        if(_tTotal >= 30000000 * (10**6) * (10**18))
        {
        tFee = tAmount.div(100).mul(2);
        }
        else
        {
        tFee = 0;
        }
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
    uint256 public rSupply;
    uint256 public tSupply; 
    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"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":[],"name":"rSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","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":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","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":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateUniPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"useCoolDown","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506c0c9f2c9cd04674edea4000000060001962000076919062000459565b600019620000859190620003de565b6009556001600b60006101000a81548160ff0219169083151502179055506040518060400160405280601081526020017f447562627a2047616d696e672020202000000000000000000000000000000000815250600c9080519060200190620000f092919062000300565b506040518060400160405280600681526020017f445542425a200000000000000000000000000000000000000000000000000000815250600d90805190602001906200013e92919062000300565b506012600e60006101000a81548160ff021916908360ff1602179055503480156200016857600080fd5b5060006200017b620002f860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009546001600062000230620002f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200027e620002f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c0c9f2c9cd04674edea40000000604051620002ea9190620003c1565b60405180910390a36200051e565b600033905090565b8280546200030e9062000423565b90600052602060002090601f0160209004810192826200033257600085556200037e565b82601f106200034d57805160ff19168380011785556200037e565b828001600101855582156200037e579182015b828111156200037d57825182559160200191906001019062000360565b5b5090506200038d919062000391565b5090565b5b80821115620003ac57600081600090555060010162000392565b5090565b620003bb8162000419565b82525050565b6000602082019050620003d86000830184620003b0565b92915050565b6000620003eb8262000419565b9150620003f88362000419565b9250828210156200040e576200040d62000491565b5b828203905092915050565b6000819050919050565b600060028204905060018216806200043c57607f821691505b60208210811415620004535762000452620004ef565b5b50919050565b6000620004668262000419565b9150620004738362000419565b925082620004865762000485620004c0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b614029806200052e6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e14610464578063f2cc0c1814610494578063f2fde38b146104b0578063f84354f1146104cc57610173565b8063a9059cbb146103fa578063cba0e9961461042a578063db63328e1461045a57610173565b8063715018a61461034857806384a3f5c0146103525780638da5cb5b1461037057806393ea49831461038e57806395d89b41146103ac578063a457c2d7146103ca57610173565b806323b872dd1161013057806323b872dd1461023a5780632d8381191461026a578063313ce5671461029a57806339509351146102b85780634549b039146102e857806370a082311461031857610173565b8063053ab1821461017857806306fdde0314610194578063095ea7b3146101b25780630bffdcf4146101e257806313114a9d146101fe57806318160ddd1461021c575b600080fd5b610192600480360381019061018d91906134c8565b6104e8565b005b61019c610662565b6040516101a99190613a97565b60405180910390f35b6101cc60048036038101906101c79190613463565b6106f4565b6040516101d99190613a7c565b60405180910390f35b6101fc60048036038101906101f7919061349f565b610712565b005b6102066107c4565b6040516102139190613c59565b60405180910390f35b6102246107ce565b6040516102319190613c59565b60405180910390f35b610254600480360381019061024f9190613414565b6107e3565b6040516102619190613a7c565b60405180910390f35b610284600480360381019061027f91906134c8565b6108bc565b6040516102919190613c59565b60405180910390f35b6102a261092a565b6040516102af9190613c74565b60405180910390f35b6102d260048036038101906102cd9190613463565b610941565b6040516102df9190613a7c565b60405180910390f35b61030260048036038101906102fd91906134f1565b6109f4565b60405161030f9190613c59565b60405180910390f35b610332600480360381019061032d9190613386565b610a81565b60405161033f9190613c59565b60405180910390f35b610350610b6c565b005b61035a610cbf565b6040516103679190613c59565b60405180910390f35b610378610cc5565b6040516103859190613a38565b60405180910390f35b610396610cee565b6040516103a39190613c59565b60405180910390f35b6103b4610cf4565b6040516103c19190613a97565b60405180910390f35b6103e460048036038101906103df9190613463565b610d86565b6040516103f19190613a7c565b60405180910390f35b610414600480360381019061040f9190613463565b610e53565b6040516104219190613a7c565b60405180910390f35b610444600480360381019061043f9190613386565b610e71565b6040516104519190613a7c565b60405180910390f35b610462610ec7565b005b61047e600480360381019061047991906133d8565b6111a7565b60405161048b9190613c59565b60405180910390f35b6104ae60048036038101906104a99190613386565b61122e565b005b6104ca60048036038101906104c59190613386565b6114e2565b005b6104e660048036038101906104e19190613386565b6116a4565b005b60006104f2611a8b565b9050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057890613c39565b60405180910390fd5b600061058c83611a93565b5050505090506105e481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061063c81600954611aeb90919063ffffffff16565b60098190555061065783600a54611b3590919063ffffffff16565b600a81905550505050565b6060600c805461067190613e48565b80601f016020809104026020016040519081016040528092919081815260200182805461069d90613e48565b80156106ea5780601f106106bf576101008083540402835291602001916106ea565b820191906000526020600020905b8154815290600101906020018083116106cd57829003601f168201915b5050505050905090565b6000610708610701611a8b565b8484611b93565b6001905092915050565b61071a611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e90613bb9565b60405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b6000600a54905090565b60006c0c9f2c9cd04674edea40000000905090565b60006107f0848484611d5e565b6108b1846107fc611a8b565b6108ac85604051806060016040528060288152602001613fa760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610862611a8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121759092919063ffffffff16565b611b93565b600190509392505050565b6000600954821115610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fa90613ad9565b60405180910390fd5b600061090d6121d9565b9050610922818461220490919063ffffffff16565b915050919050565b6000600e60009054906101000a900460ff16905090565b60006109ea61094e611a8b565b846109e5856003600061095f611a8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b611b93565b6001905092915050565b60006c0c9f2c9cd04674edea40000000831115610a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3d90613b79565b60405180910390fd5b81610a65576000610a5684611a93565b50505050905080915050610a7b565b6000610a7084611a93565b505050915050809150505b92915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b1c57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610b67565b610b64600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108bc565b90505b919050565b610b74611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890613bb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b6060600d8054610d0390613e48565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2f90613e48565b8015610d7c5780601f10610d5157610100808354040283529160200191610d7c565b820191906000526020600020905b815481529060010190602001808311610d5f57829003601f168201915b5050505050905090565b6000610e49610d93611a8b565b84610e4485604051806060016040528060258152602001613fcf6025913960036000610dbd611a8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121759092919063ffffffff16565b611b93565b6001905092915050565b6000610e67610e60611a8b565b8484611d5e565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ecf611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390613bb9565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fc657600080fd5b505afa158015610fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffe91906133af565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108257600080fd5b505afa158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba91906133af565b6040518363ffffffff1660e01b81526004016110d7929190613a53565b60206040518083038186803b1580156110ef57600080fd5b505afa158015611103573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112791906133af565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561116357600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611236611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90613bb9565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790613b59565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611424576113e0600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108bc565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6114ea611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90613bb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90613af9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116ac611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173090613bb9565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc90613b59565b60405180910390fd5b60005b600680549050811015611a87578173ffffffffffffffffffffffffffffffffffffffff1660068281548110611826577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a7457600660016006805490506118819190613d8c565b815481106118b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006828154811061191d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006805480611a3a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611a87565b8080611a7f90613e7a565b9150506117c8565b5050565b600033905090565b6000806000806000806000611aa78861224e565b915091506000611ab56121d9565b90506000806000611ac78c86866122cc565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611b2d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612175565b905092915050565b6000808284611b449190613cab565b905083811015611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090613b39565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa90613c19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90613b19565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d519190613c59565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc590613bf9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3590613ab9565b60405180910390fd5b60008111611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613bd9565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f245750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f3957611f3483838361232a565b612170565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fdc5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ff157611fec83838361257d565b61216f565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120955750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120aa576120a58383836127d0565b61216e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561214c5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121615761215c838383612bbb565b61216d565b61216c8383836127d0565b5b5b5b5b505050565b60008383111582906121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b49190613a97565b60405180910390fd5b50600083856121cc9190613d8c565b9050809150509392505050565b60008060006121e6612ea3565b915091506121fd818361220490919063ffffffff16565b9250505090565b600061224683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061321a565b905092915050565b60008060006d017aa73a606841b3e173800000006c0c9f2c9cd04674edea40000000106122a35761229c600261228e60648761220490919063ffffffff16565b61327d90919063ffffffff16565b90506122a8565b600090505b60006122bd8286611aeb90919063ffffffff16565b90508082935093505050915091565b6000806000806122e5858861327d90919063ffffffff16565b905060006122fc868861327d90919063ffffffff16565b905060006123138284611aeb90919063ffffffff16565b905082818395509550955050505093509350939050565b600080600080600061233b86611a93565b9450945094509450945061239786600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242c85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124c184600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061250e83826132f8565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161256b9190613c59565b60405180910390a35050505050505050565b600080600080600061258e86611a93565b945094509450945094506125ea85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061267f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061271484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276183826132f8565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127be9190613c59565b60405180910390a35050505050505050565b6127d8610cc5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156128465750612816610cc5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129fd57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461295557600b60009054906101000a900460ff166128b957600080fd5b42600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061290457600080fd5b6023426129119190613cab565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129fc576023426129b89190613cab565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6000806000806000612a0e86611a93565b94509450945094509450612a6a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aff84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4c83826132f8565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ba99190613c59565b60405180910390a35050505050505050565b6000806000806000612bcc86611a93565b94509450945094509450612c2886600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cbd85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d5282600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612de784600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e3483826132f8565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e919190613c59565b60405180910390a35050505050505050565b6000806000600954905060006c0c9f2c9cd04674edea40000000905060005b6006805490508110156131c757826001600060068481548110612f0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806130225750816002600060068481548110612fba577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613044576009546c0c9f2c9cd04674edea4000000094509450505050613216565b6130fa6001600060068481548110613085577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611aeb90919063ffffffff16565b92506131b2600260006006848154811061313d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611aeb90919063ffffffff16565b915080806131bf90613e7a565b915050612ec2565b506131ea6c0c9f2c9cd04674edea4000000060095461220490919063ffffffff16565b82101561320d576009546c0c9f2c9cd04674edea40000000935093505050613216565b81819350935050505b9091565b60008083118290613261576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132589190613a97565b60405180910390fd5b50600083856132709190613d01565b9050809150509392505050565b60008083141561329057600090506132f2565b6000828461329e9190613d32565b90508284826132ad9190613d01565b146132ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e490613b99565b60405180910390fd5b809150505b92915050565b61330d82600954611aeb90919063ffffffff16565b60098190555061332881600a54611b3590919063ffffffff16565b600a819055505050565b60008135905061334181613f61565b92915050565b60008151905061335681613f61565b92915050565b60008135905061336b81613f78565b92915050565b60008135905061338081613f8f565b92915050565b60006020828403121561339857600080fd5b60006133a684828501613332565b91505092915050565b6000602082840312156133c157600080fd5b60006133cf84828501613347565b91505092915050565b600080604083850312156133eb57600080fd5b60006133f985828601613332565b925050602061340a85828601613332565b9150509250929050565b60008060006060848603121561342957600080fd5b600061343786828701613332565b935050602061344886828701613332565b925050604061345986828701613371565b9150509250925092565b6000806040838503121561347657600080fd5b600061348485828601613332565b925050602061349585828601613371565b9150509250929050565b6000602082840312156134b157600080fd5b60006134bf8482850161335c565b91505092915050565b6000602082840312156134da57600080fd5b60006134e884828501613371565b91505092915050565b6000806040838503121561350457600080fd5b600061351285828601613371565b92505060206135238582860161335c565b9150509250929050565b61353681613dc0565b82525050565b61354581613dd2565b82525050565b600061355682613c8f565b6135608185613c9a565b9350613570818560208601613e15565b61357981613f50565b840191505092915050565b6000613591602383613c9a565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006135f7602a83613c9a565b91507f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008301527f65666c656374696f6e73000000000000000000000000000000000000000000006020830152604082019050919050565b600061365d602683613c9a565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136c3602283613c9a565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613729601b83613c9a565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000613769601b83613c9a565b91507f4163636f756e7420697320616c7265616479206578636c7564656400000000006000830152602082019050919050565b60006137a9601f83613c9a565b91507f416d6f756e74206d757374206265206c657373207468616e20737570706c79006000830152602082019050919050565b60006137e9602183613c9a565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061384f602083613c9a565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061388f602983613c9a565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b60006138f5602583613c9a565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061395b602483613c9a565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139c1602c83613c9a565b91507f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008301527f6869732066756e6374696f6e00000000000000000000000000000000000000006020830152604082019050919050565b613a2381613dfe565b82525050565b613a3281613e08565b82525050565b6000602082019050613a4d600083018461352d565b92915050565b6000604082019050613a68600083018561352d565b613a75602083018461352d565b9392505050565b6000602082019050613a91600083018461353c565b92915050565b60006020820190508181036000830152613ab1818461354b565b905092915050565b60006020820190508181036000830152613ad281613584565b9050919050565b60006020820190508181036000830152613af2816135ea565b9050919050565b60006020820190508181036000830152613b1281613650565b9050919050565b60006020820190508181036000830152613b32816136b6565b9050919050565b60006020820190508181036000830152613b528161371c565b9050919050565b60006020820190508181036000830152613b728161375c565b9050919050565b60006020820190508181036000830152613b928161379c565b9050919050565b60006020820190508181036000830152613bb2816137dc565b9050919050565b60006020820190508181036000830152613bd281613842565b9050919050565b60006020820190508181036000830152613bf281613882565b9050919050565b60006020820190508181036000830152613c12816138e8565b9050919050565b60006020820190508181036000830152613c328161394e565b9050919050565b60006020820190508181036000830152613c52816139b4565b9050919050565b6000602082019050613c6e6000830184613a1a565b92915050565b6000602082019050613c896000830184613a29565b92915050565b600081519050919050565b600082825260208201905092915050565b6000613cb682613dfe565b9150613cc183613dfe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cf657613cf5613ec3565b5b828201905092915050565b6000613d0c82613dfe565b9150613d1783613dfe565b925082613d2757613d26613ef2565b5b828204905092915050565b6000613d3d82613dfe565b9150613d4883613dfe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d8157613d80613ec3565b5b828202905092915050565b6000613d9782613dfe565b9150613da283613dfe565b925082821015613db557613db4613ec3565b5b828203905092915050565b6000613dcb82613dde565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015613e33578082015181840152602081019050613e18565b83811115613e42576000848401525b50505050565b60006002820490506001821680613e6057607f821691505b60208210811415613e7457613e73613f21565b5b50919050565b6000613e8582613dfe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613eb857613eb7613ec3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b613f6a81613dc0565b8114613f7557600080fd5b50565b613f8181613dd2565b8114613f8c57600080fd5b50565b613f9881613dfe565b8114613fa357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b14a7bcbb516344c034c1936510521e3499cc0d7278fc698b645114a135f157d64736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e14610464578063f2cc0c1814610494578063f2fde38b146104b0578063f84354f1146104cc57610173565b8063a9059cbb146103fa578063cba0e9961461042a578063db63328e1461045a57610173565b8063715018a61461034857806384a3f5c0146103525780638da5cb5b1461037057806393ea49831461038e57806395d89b41146103ac578063a457c2d7146103ca57610173565b806323b872dd1161013057806323b872dd1461023a5780632d8381191461026a578063313ce5671461029a57806339509351146102b85780634549b039146102e857806370a082311461031857610173565b8063053ab1821461017857806306fdde0314610194578063095ea7b3146101b25780630bffdcf4146101e257806313114a9d146101fe57806318160ddd1461021c575b600080fd5b610192600480360381019061018d91906134c8565b6104e8565b005b61019c610662565b6040516101a99190613a97565b60405180910390f35b6101cc60048036038101906101c79190613463565b6106f4565b6040516101d99190613a7c565b60405180910390f35b6101fc60048036038101906101f7919061349f565b610712565b005b6102066107c4565b6040516102139190613c59565b60405180910390f35b6102246107ce565b6040516102319190613c59565b60405180910390f35b610254600480360381019061024f9190613414565b6107e3565b6040516102619190613a7c565b60405180910390f35b610284600480360381019061027f91906134c8565b6108bc565b6040516102919190613c59565b60405180910390f35b6102a261092a565b6040516102af9190613c74565b60405180910390f35b6102d260048036038101906102cd9190613463565b610941565b6040516102df9190613a7c565b60405180910390f35b61030260048036038101906102fd91906134f1565b6109f4565b60405161030f9190613c59565b60405180910390f35b610332600480360381019061032d9190613386565b610a81565b60405161033f9190613c59565b60405180910390f35b610350610b6c565b005b61035a610cbf565b6040516103679190613c59565b60405180910390f35b610378610cc5565b6040516103859190613a38565b60405180910390f35b610396610cee565b6040516103a39190613c59565b60405180910390f35b6103b4610cf4565b6040516103c19190613a97565b60405180910390f35b6103e460048036038101906103df9190613463565b610d86565b6040516103f19190613a7c565b60405180910390f35b610414600480360381019061040f9190613463565b610e53565b6040516104219190613a7c565b60405180910390f35b610444600480360381019061043f9190613386565b610e71565b6040516104519190613a7c565b60405180910390f35b610462610ec7565b005b61047e600480360381019061047991906133d8565b6111a7565b60405161048b9190613c59565b60405180910390f35b6104ae60048036038101906104a99190613386565b61122e565b005b6104ca60048036038101906104c59190613386565b6114e2565b005b6104e660048036038101906104e19190613386565b6116a4565b005b60006104f2611a8b565b9050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057890613c39565b60405180910390fd5b600061058c83611a93565b5050505090506105e481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061063c81600954611aeb90919063ffffffff16565b60098190555061065783600a54611b3590919063ffffffff16565b600a81905550505050565b6060600c805461067190613e48565b80601f016020809104026020016040519081016040528092919081815260200182805461069d90613e48565b80156106ea5780601f106106bf576101008083540402835291602001916106ea565b820191906000526020600020905b8154815290600101906020018083116106cd57829003601f168201915b5050505050905090565b6000610708610701611a8b565b8484611b93565b6001905092915050565b61071a611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e90613bb9565b60405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b6000600a54905090565b60006c0c9f2c9cd04674edea40000000905090565b60006107f0848484611d5e565b6108b1846107fc611a8b565b6108ac85604051806060016040528060288152602001613fa760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610862611a8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121759092919063ffffffff16565b611b93565b600190509392505050565b6000600954821115610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fa90613ad9565b60405180910390fd5b600061090d6121d9565b9050610922818461220490919063ffffffff16565b915050919050565b6000600e60009054906101000a900460ff16905090565b60006109ea61094e611a8b565b846109e5856003600061095f611a8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b611b93565b6001905092915050565b60006c0c9f2c9cd04674edea40000000831115610a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3d90613b79565b60405180910390fd5b81610a65576000610a5684611a93565b50505050905080915050610a7b565b6000610a7084611a93565b505050915050809150505b92915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b1c57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610b67565b610b64600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108bc565b90505b919050565b610b74611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890613bb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b6060600d8054610d0390613e48565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2f90613e48565b8015610d7c5780601f10610d5157610100808354040283529160200191610d7c565b820191906000526020600020905b815481529060010190602001808311610d5f57829003601f168201915b5050505050905090565b6000610e49610d93611a8b565b84610e4485604051806060016040528060258152602001613fcf6025913960036000610dbd611a8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121759092919063ffffffff16565b611b93565b6001905092915050565b6000610e67610e60611a8b565b8484611d5e565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ecf611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390613bb9565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fc657600080fd5b505afa158015610fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffe91906133af565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108257600080fd5b505afa158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba91906133af565b6040518363ffffffff1660e01b81526004016110d7929190613a53565b60206040518083038186803b1580156110ef57600080fd5b505afa158015611103573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112791906133af565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561116357600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611236611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90613bb9565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790613b59565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611424576113e0600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108bc565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6114ea611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90613bb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90613af9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116ac611a8b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173090613bb9565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc90613b59565b60405180910390fd5b60005b600680549050811015611a87578173ffffffffffffffffffffffffffffffffffffffff1660068281548110611826577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a7457600660016006805490506118819190613d8c565b815481106118b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006828154811061191d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006805480611a3a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611a87565b8080611a7f90613e7a565b9150506117c8565b5050565b600033905090565b6000806000806000806000611aa78861224e565b915091506000611ab56121d9565b90506000806000611ac78c86866122cc565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611b2d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612175565b905092915050565b6000808284611b449190613cab565b905083811015611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090613b39565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa90613c19565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90613b19565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d519190613c59565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc590613bf9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3590613ab9565b60405180910390fd5b60008111611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613bd9565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f245750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f3957611f3483838361232a565b612170565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fdc5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ff157611fec83838361257d565b61216f565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120955750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120aa576120a58383836127d0565b61216e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561214c5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121615761215c838383612bbb565b61216d565b61216c8383836127d0565b5b5b5b5b505050565b60008383111582906121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b49190613a97565b60405180910390fd5b50600083856121cc9190613d8c565b9050809150509392505050565b60008060006121e6612ea3565b915091506121fd818361220490919063ffffffff16565b9250505090565b600061224683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061321a565b905092915050565b60008060006d017aa73a606841b3e173800000006c0c9f2c9cd04674edea40000000106122a35761229c600261228e60648761220490919063ffffffff16565b61327d90919063ffffffff16565b90506122a8565b600090505b60006122bd8286611aeb90919063ffffffff16565b90508082935093505050915091565b6000806000806122e5858861327d90919063ffffffff16565b905060006122fc868861327d90919063ffffffff16565b905060006123138284611aeb90919063ffffffff16565b905082818395509550955050505093509350939050565b600080600080600061233b86611a93565b9450945094509450945061239786600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242c85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124c184600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061250e83826132f8565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161256b9190613c59565b60405180910390a35050505050505050565b600080600080600061258e86611a93565b945094509450945094506125ea85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061267f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061271484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276183826132f8565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127be9190613c59565b60405180910390a35050505050505050565b6127d8610cc5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156128465750612816610cc5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129fd57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461295557600b60009054906101000a900460ff166128b957600080fd5b42600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061290457600080fd5b6023426129119190613cab565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129fc576023426129b89190613cab565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6000806000806000612a0e86611a93565b94509450945094509450612a6a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aff84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4c83826132f8565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ba99190613c59565b60405180910390a35050505050505050565b6000806000806000612bcc86611a93565b94509450945094509450612c2886600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cbd85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aeb90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d5282600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612de784600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3590919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e3483826132f8565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e919190613c59565b60405180910390a35050505050505050565b6000806000600954905060006c0c9f2c9cd04674edea40000000905060005b6006805490508110156131c757826001600060068481548110612f0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806130225750816002600060068481548110612fba577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613044576009546c0c9f2c9cd04674edea4000000094509450505050613216565b6130fa6001600060068481548110613085577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611aeb90919063ffffffff16565b92506131b2600260006006848154811061313d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611aeb90919063ffffffff16565b915080806131bf90613e7a565b915050612ec2565b506131ea6c0c9f2c9cd04674edea4000000060095461220490919063ffffffff16565b82101561320d576009546c0c9f2c9cd04674edea40000000935093505050613216565b81819350935050505b9091565b60008083118290613261576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132589190613a97565b60405180910390fd5b50600083856132709190613d01565b9050809150509392505050565b60008083141561329057600090506132f2565b6000828461329e9190613d32565b90508284826132ad9190613d01565b146132ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e490613b99565b60405180910390fd5b809150505b92915050565b61330d82600954611aeb90919063ffffffff16565b60098190555061332881600a54611b3590919063ffffffff16565b600a819055505050565b60008135905061334181613f61565b92915050565b60008151905061335681613f61565b92915050565b60008135905061336b81613f78565b92915050565b60008135905061338081613f8f565b92915050565b60006020828403121561339857600080fd5b60006133a684828501613332565b91505092915050565b6000602082840312156133c157600080fd5b60006133cf84828501613347565b91505092915050565b600080604083850312156133eb57600080fd5b60006133f985828601613332565b925050602061340a85828601613332565b9150509250929050565b60008060006060848603121561342957600080fd5b600061343786828701613332565b935050602061344886828701613332565b925050604061345986828701613371565b9150509250925092565b6000806040838503121561347657600080fd5b600061348485828601613332565b925050602061349585828601613371565b9150509250929050565b6000602082840312156134b157600080fd5b60006134bf8482850161335c565b91505092915050565b6000602082840312156134da57600080fd5b60006134e884828501613371565b91505092915050565b6000806040838503121561350457600080fd5b600061351285828601613371565b92505060206135238582860161335c565b9150509250929050565b61353681613dc0565b82525050565b61354581613dd2565b82525050565b600061355682613c8f565b6135608185613c9a565b9350613570818560208601613e15565b61357981613f50565b840191505092915050565b6000613591602383613c9a565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006135f7602a83613c9a565b91507f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008301527f65666c656374696f6e73000000000000000000000000000000000000000000006020830152604082019050919050565b600061365d602683613c9a565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136c3602283613c9a565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613729601b83613c9a565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000613769601b83613c9a565b91507f4163636f756e7420697320616c7265616479206578636c7564656400000000006000830152602082019050919050565b60006137a9601f83613c9a565b91507f416d6f756e74206d757374206265206c657373207468616e20737570706c79006000830152602082019050919050565b60006137e9602183613c9a565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061384f602083613c9a565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061388f602983613c9a565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b60006138f5602583613c9a565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061395b602483613c9a565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139c1602c83613c9a565b91507f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008301527f6869732066756e6374696f6e00000000000000000000000000000000000000006020830152604082019050919050565b613a2381613dfe565b82525050565b613a3281613e08565b82525050565b6000602082019050613a4d600083018461352d565b92915050565b6000604082019050613a68600083018561352d565b613a75602083018461352d565b9392505050565b6000602082019050613a91600083018461353c565b92915050565b60006020820190508181036000830152613ab1818461354b565b905092915050565b60006020820190508181036000830152613ad281613584565b9050919050565b60006020820190508181036000830152613af2816135ea565b9050919050565b60006020820190508181036000830152613b1281613650565b9050919050565b60006020820190508181036000830152613b32816136b6565b9050919050565b60006020820190508181036000830152613b528161371c565b9050919050565b60006020820190508181036000830152613b728161375c565b9050919050565b60006020820190508181036000830152613b928161379c565b9050919050565b60006020820190508181036000830152613bb2816137dc565b9050919050565b60006020820190508181036000830152613bd281613842565b9050919050565b60006020820190508181036000830152613bf281613882565b9050919050565b60006020820190508181036000830152613c12816138e8565b9050919050565b60006020820190508181036000830152613c328161394e565b9050919050565b60006020820190508181036000830152613c52816139b4565b9050919050565b6000602082019050613c6e6000830184613a1a565b92915050565b6000602082019050613c896000830184613a29565b92915050565b600081519050919050565b600082825260208201905092915050565b6000613cb682613dfe565b9150613cc183613dfe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cf657613cf5613ec3565b5b828201905092915050565b6000613d0c82613dfe565b9150613d1783613dfe565b925082613d2757613d26613ef2565b5b828204905092915050565b6000613d3d82613dfe565b9150613d4883613dfe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d8157613d80613ec3565b5b828202905092915050565b6000613d9782613dfe565b9150613da283613dfe565b925082821015613db557613db4613ec3565b5b828203905092915050565b6000613dcb82613dde565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015613e33578082015181840152602081019050613e18565b83811115613e42576000848401525b50505050565b60006002820490506001821680613e6057607f821691505b60208210811415613e7457613e73613f21565b5b50919050565b6000613e8582613dfe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613eb857613eb7613ec3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b613f6a81613dc0565b8114613f7557600080fd5b50565b613f8181613dd2565b8114613f8c57600080fd5b50565b613f9881613dfe565b8114613fa357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b14a7bcbb516344c034c1936510521e3499cc0d7278fc698b645114a135f157d64736f6c63430008000033

Deployed Bytecode Sourcemap

16025:11403:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19236:376;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17118:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18030:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20327:92;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19141:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17395:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18199:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20062:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17304:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18520:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19620:434;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17498:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15191:148;;;:::i;:::-;;26805:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14549:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26834:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17209:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18746:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17704:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19023:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20431:266;;;:::i;:::-;;17879:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20705:332;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15494:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21045:478;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19236:376;19288:14;19305:12;:10;:12::i;:::-;19288:29;;19337:11;:19;19349:6;19337:19;;;;;;;;;;;;;;;;;;;;;;;;;19336:20;19328:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;19417:15;19440:19;19451:7;19440:10;:19::i;:::-;19416:43;;;;;;19488:28;19508:7;19488;:15;19496:6;19488:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;19470:7;:15;19478:6;19470:15;;;;;;;;;;;;;;;:46;;;;19537:20;19549:7;19537;;:11;;:20;;;;:::i;:::-;19527:7;:30;;;;19581:23;19596:7;19581:10;;:14;;:23;;;;:::i;:::-;19568:10;:36;;;;19236:376;;;:::o;17118:83::-;17155:13;17188:5;17181:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17118:83;:::o;18030:161::-;18105:4;18122:39;18131:12;:10;:12::i;:::-;18145:7;18154:6;18122:8;:39::i;:::-;18179:4;18172:11;;18030:161;;;;:::o;20327:92::-;14771:12;:10;:12::i;:::-;14761:22;;:6;;;;;;;;;;:22;;;14753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20405:6:::1;20389:13;;:22;;;;;;;;;;;;;;;;;;20327:92:::0;:::o;19141:87::-;19183:7;19210:10;;19203:17;;19141:87;:::o;17395:95::-;17448:7;16703:21;17468:14;;17395:95;:::o;18199:313::-;18297:4;18314:36;18324:6;18332:9;18343:6;18314:9;:36::i;:::-;18361:121;18370:6;18378:12;:10;:12::i;:::-;18392:89;18430:6;18392:89;;;;;;;;;;;;;;;;;:11;:19;18404:6;18392:19;;;;;;;;;;;;;;;:33;18412:12;:10;:12::i;:::-;18392:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18361:8;:121::i;:::-;18500:4;18493:11;;18199:313;;;;;:::o;20062:253::-;20128:7;20167;;20156;:18;;20148:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20232:19;20255:10;:8;:10::i;:::-;20232:33;;20283:24;20295:11;20283:7;:11;;:24;;;;:::i;:::-;20276:31;;;20062:253;;;:::o;17304:83::-;17345:5;17370:9;;;;;;;;;;;17363:16;;17304:83;:::o;18520:218::-;18608:4;18625:83;18634:12;:10;:12::i;:::-;18648:7;18657:50;18696:10;18657:11;:25;18669:12;:10;:12::i;:::-;18657:25;;;;;;;;;;;;;;;:34;18683:7;18657:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18625:8;:83::i;:::-;18726:4;18719:11;;18520:218;;;;:::o;19620:434::-;19710:7;16703:21;19738:7;:18;;19730:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;19808:17;19803:244;;19843:15;19866:19;19877:7;19866:10;:19::i;:::-;19842:43;;;;;;19907:7;19900:14;;;;;19803:244;19949:23;19979:19;19990:7;19979:10;:19::i;:::-;19947:51;;;;;;20020:15;20013:22;;;19620:434;;;;;:::o;17498:198::-;17564:7;17588:11;:20;17600:7;17588:20;;;;;;;;;;;;;;;;;;;;;;;;;17584:49;;;17617:7;:16;17625:7;17617:16;;;;;;;;;;;;;;;;17610:23;;;;17584:49;17651:37;17671:7;:16;17679:7;17671:16;;;;;;;;;;;;;;;;17651:19;:37::i;:::-;17644:44;;17498:198;;;;:::o;15191:148::-;14771:12;:10;:12::i;:::-;14761:22;;:6;;;;;;;;;;:22;;;14753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15298:1:::1;15261:40;;15282:6;::::0;::::1;;;;;;;;15261:40;;;;;;;;;;;;15329:1;15312:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;15191:148::o:0;26805:22::-;;;;:::o;14549:79::-;14587:7;14614:6;;;;;;;;;;;14607:13;;14549:79;:::o;26834:22::-;;;;:::o;17209:87::-;17248:13;17281:7;17274:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17209:87;:::o;18746:269::-;18839:4;18856:129;18865:12;:10;:12::i;:::-;18879:7;18888:96;18927:15;18888:96;;;;;;;;;;;;;;;;;:11;:25;18900:12;:10;:12::i;:::-;18888:25;;;;;;;;;;;;;;;:34;18914:7;18888:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18856:8;:129::i;:::-;19003:4;18996:11;;18746:269;;;;:::o;17704:167::-;17782:4;17799:42;17809:12;:10;:12::i;:::-;17823:9;17834:6;17799:9;:42::i;:::-;17859:4;17852:11;;17704:167;;;;:::o;19023:110::-;19081:4;19105:11;:20;19117:7;19105:20;;;;;;;;;;;;;;;;;;;;;;;;;19098:27;;19023:110;;;:::o;20431:266::-;14771:12;:10;:12::i;:::-;14761:22;;:6;;;;;;;;;;:22;;;14753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20484:22:::1;20527:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20509:52;;;20570:4;20577:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20509:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20484:116;;20645:1;20619:28;;:14;:28;;;;20611:37;;;::::0;::::1;;20675:14;20659:13;;:30;;;;;;;;;;;;;;;;;;14831:1;20431:266::o:0;17879:143::-;17960:7;17987:11;:18;17999:5;17987:18;;;;;;;;;;;;;;;:27;18006:7;17987:27;;;;;;;;;;;;;;;;17980:34;;17879:143;;;;:::o;20705:332::-;14771:12;:10;:12::i;:::-;14761:22;;:6;;;;;;;;;;:22;;;14753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20787:11:::1;:20;20799:7;20787:20;;;;;;;;;;;;;;;;;;;;;;;;;20786:21;20778:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;20872:1;20853:7;:16;20861:7;20853:16;;;;;;;;;;;;;;;;:20;20850:108;;;20909:37;20929:7;:16;20937:7;20929:16;;;;;;;;;;;;;;;;20909:19;:37::i;:::-;20890:7;:16;20898:7;20890:16;;;;;;;;;;;;;;;:56;;;;20850:108;20991:4;20968:11;:20;20980:7;20968:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21006:9;21021:7;21006:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20705:332:::0;:::o;15494:244::-;14771:12;:10;:12::i;:::-;14761:22;;:6;;;;;;;;;;:22;;;14753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15603:1:::1;15583:22;;:8;:22;;;;15575:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15693:8;15664:38;;15685:6;::::0;::::1;;;;;;;;15664:38;;;;;;;;;;;;15722:8;15713:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;15494:244:::0;:::o;21045:478::-;14771:12;:10;:12::i;:::-;14761:22;;:6;;;;;;;;;;:22;;;14753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21126:11:::1;:20;21138:7;21126:20;;;;;;;;;;;;;;;;;;;;;;;;;21118:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;21194:9;21189:327;21213:9;:16;;;;21209:1;:20;21189:327;;;21271:7;21255:23;;:9;21265:1;21255:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;21251:254;;;21314:9;21343:1;21324:9;:16;;;;:20;;;;:::i;:::-;21314:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21299:9;21309:1;21299:12;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;21383:1;21364:7;:16;21372:7;21364:16;;;;;;;;;;;;;;;:20;;;;21426:5;21403:11;:20;21415:7;21403:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;21450:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21484:5;;21251:254;21231:3;;;;;:::i;:::-;;;;21189:327;;;;21045:478:::0;:::o;261:98::-;314:7;341:10;334:17;;261:98;:::o;25482:411::-;25541:7;25550;25559;25568;25577;25598:23;25623:12;25639:20;25651:7;25639:11;:20::i;:::-;25597:62;;;;25670:19;25693:10;:8;:10::i;:::-;25670:33;;25715:15;25732:23;25757:12;25773:39;25785:7;25794:4;25800:11;25773;:39::i;:::-;25714:98;;;;;;25831:7;25840:15;25857:4;25863:15;25880:4;25823:62;;;;;;;;;;;;;;;;25482:411;;;;;;;:::o;3973:136::-;4031:7;4058:43;4062:1;4065;4058:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4051:50;;3973:136;;;;:::o;3509:181::-;3567:7;3587:9;3603:1;3599;:5;;;;:::i;:::-;3587:17;;3628:1;3623;:6;;3615:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3681:1;3674:8;;;3509:181;;;;:::o;21531:337::-;21641:1;21624:19;;:5;:19;;;;21616:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21722:1;21703:21;;:7;:21;;;;21695:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21806:6;21776:11;:18;21788:5;21776:18;;;;;;;;;;;;;;;:27;21795:7;21776:27;;;;;;;;;;;;;;;:36;;;;21844:7;21828:32;;21837:5;21828:32;;;21853:6;21828:32;;;;;;:::i;:::-;;;;;;;;21531:337;;;:::o;21876:931::-;21991:1;21973:20;;:6;:20;;;;21965:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22075:1;22054:23;;:9;:23;;;;22046:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22145:1;22136:6;:10;22128:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22207:11;:19;22219:6;22207:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;22231:11;:22;22243:9;22231:22;;;;;;;;;;;;;;;;;;;;;;;;;22230:23;22207:46;22203:597;;;22270:48;22292:6;22300:9;22311:6;22270:21;:48::i;:::-;22203:597;;;22341:11;:19;22353:6;22341:19;;;;;;;;;;;;;;;;;;;;;;;;;22340:20;:46;;;;;22364:11;:22;22376:9;22364:22;;;;;;;;;;;;;;;;;;;;;;;;;22340:46;22336:464;;;22403:46;22423:6;22431:9;22442:6;22403:19;:46::i;:::-;22336:464;;;22472:11;:19;22484:6;22472:19;;;;;;;;;;;;;;;;;;;;;;;;;22471:20;:47;;;;;22496:11;:22;22508:9;22496:22;;;;;;;;;;;;;;;;;;;;;;;;;22495:23;22471:47;22467:333;;;22535:44;22553:6;22561:9;22572:6;22535:17;:44::i;:::-;22467:333;;;22601:11;:19;22613:6;22601:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;22624:11;:22;22636:9;22624:22;;;;;;;;;;;;;;;;;;;;;;;;;22601:45;22597:203;;;22663:48;22685:6;22693:9;22704:6;22663:21;:48::i;:::-;22597:203;;;22744:44;22762:6;22770:9;22781:6;22744:17;:44::i;:::-;22597:203;22467:333;22336:464;22203:597;21876:931;;;:::o;4412:192::-;4498:7;4531:1;4526;:6;;4534:12;4518:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4558:9;4574:1;4570;:5;;;;:::i;:::-;4558:17;;4595:1;4588:8;;;4412:192;;;;;:::o;26636:163::-;26677:7;26698:15;26715;26734:19;:17;:19::i;:::-;26697:56;;;;26771:20;26783:7;26771;:11;;:20;;;;:::i;:::-;26764:27;;;;26636:163;:::o;5810:132::-;5868:7;5895:39;5899:1;5902;5895:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5888:46;;5810:132;;;;:::o;25901:385::-;25961:7;25970;25999:12;26036:29;16703:21;26025:40;26022:162;;26094:23;26115:1;26094:16;26106:3;26094:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;26087:30;;26022:162;;;26171:1;26164:8;;26022:162;26194:23;26220:17;26232:4;26220:7;:11;;:17;;;;:::i;:::-;26194:43;;26256:15;26273:4;26248:30;;;;;;25901:385;;;:::o;26294:334::-;26389:7;26398;26407;26427:15;26445:24;26457:11;26445:7;:11;;:24;;;;:::i;:::-;26427:42;;26480:12;26495:21;26504:11;26495:4;:8;;:21;;;;:::i;:::-;26480:36;;26527:23;26553:17;26565:4;26553:7;:11;;:17;;;;:::i;:::-;26527:43;;26589:7;26598:15;26615:4;26581:39;;;;;;;;;26294:334;;;;;;;:::o;24208:509::-;24311:15;24328:23;24353:12;24367:23;24392:12;24408:19;24419:7;24408:10;:19::i;:::-;24310:117;;;;;;;;;;24456:28;24476:7;24456;:15;24464:6;24456:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24438:7;:15;24446:6;24438:15;;;;;;;;;;;;;;;:46;;;;24513:28;24533:7;24513;:15;24521:6;24513:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24495:7;:15;24503:6;24495:15;;;;;;;;;;;;;;;:46;;;;24573:39;24596:15;24573:7;:18;24581:9;24573:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24552:7;:18;24560:9;24552:18;;;;;;;;;;;;;;;:60;;;;24626:23;24638:4;24644;24626:11;:23::i;:::-;24682:9;24665:44;;24674:6;24665:44;;;24693:15;24665:44;;;;;;:::i;:::-;;;;;;;;24208:509;;;;;;;;:::o;23671:529::-;23772:15;23789:23;23814:12;23828:23;23853:12;23869:19;23880:7;23869:10;:19::i;:::-;23771:117;;;;;;;;;;23917:28;23937:7;23917;:15;23925:6;23917:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23899:7;:15;23907:6;23899:15;;;;;;;;;;;;;;;:46;;;;23977:39;24000:15;23977:7;:18;23985:9;23977:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23956:7;:18;23964:9;23956:18;;;;;;;;;;;;;;;:60;;;;24048:39;24071:15;24048:7;:18;24056:9;24048:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24027:7;:18;24035:9;24027:18;;;;;;;;;;;;;;;:60;;;;24109:23;24121:4;24127;24109:11;:23::i;:::-;24165:9;24148:44;;24157:6;24148:44;;;24176:15;24148:44;;;;;;:::i;:::-;;;;;;;;23671:529;;;;;;;;:::o;22815:848::-;22927:7;:5;:7::i;:::-;22917:17;;:6;:17;;;;:41;;;;;22951:7;:5;:7::i;:::-;22938:20;;:9;:20;;;;22917:41;22913:386;;;22988:13;;;;;;;;;;;22978:23;;:6;:23;;;22975:221;;23030:13;;;;;;;;;;;23022:22;;;;;;23093:15;23071:8;:19;23080:9;23071:19;;;;;;;;;;;;;;;;:37;23063:46;;;;;;23169:10;23150:15;:30;;;;:::i;:::-;23128:8;:19;23137:9;23128:19;;;;;;;;;;;;;;;:52;;;;22975:221;23223:13;;;;;;;;;;;23213:23;;:6;:23;;;23210:77;;;23276:10;23257:15;:30;;;;:::i;:::-;23238:8;:16;23247:6;23238:16;;;;;;;;;;;;;;;:49;;;;23210:77;22913:386;23310:15;23327:23;23352:12;23366:23;23391:12;23407:19;23418:7;23407:10;:19::i;:::-;23309:117;;;;;;;;;;23455:28;23475:7;23455;:15;23463:6;23455:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23437:7;:15;23445:6;23437:15;;;;;;;;;;;;;;;:46;;;;23515:39;23538:15;23515:7;:18;23523:9;23515:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23494:7;:18;23502:9;23494:18;;;;;;;;;;;;;;;:60;;;;23572:23;23584:4;23590;23572:11;:23::i;:::-;23628:9;23611:44;;23620:6;23611:44;;;23639:15;23611:44;;;;;;:::i;:::-;;;;;;;;22815:848;;;;;;;;:::o;24725:585::-;24828:15;24845:23;24870:12;24884:23;24909:12;24925:19;24936:7;24925:10;:19::i;:::-;24827:117;;;;;;;;;;24973:28;24993:7;24973;:15;24981:6;24973:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24955:7;:15;24963:6;24955:15;;;;;;;;;;;;;;;:46;;;;25030:28;25050:7;25030;:15;25038:6;25030:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25012:7;:15;25020:6;25012:15;;;;;;;;;;;;;;;:46;;;;25090:39;25113:15;25090:7;:18;25098:9;25090:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25069:7;:18;25077:9;25069:18;;;;;;;;;;;;;;;:60;;;;25161:39;25184:15;25161:7;:18;25169:9;25161:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25140:7;:18;25148:9;25140:18;;;;;;;;;;;;;;;:60;;;;25219:23;25231:4;25237;25219:11;:23::i;:::-;25275:9;25258:44;;25267:6;25258:44;;;25286:15;25258:44;;;;;;:::i;:::-;;;;;;;;24725:585;;;;;;;;:::o;26864:561::-;26914:7;26923;26943:15;26961:7;;26943:25;;26979:15;16703:21;26979:25;;27026:9;27021:289;27045:9;:16;;;;27041:1;:20;27021:289;;;27111:7;27087;:21;27095:9;27105:1;27095:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27087:21;;;;;;;;;;;;;;;;:31;:66;;;;27146:7;27122;:21;27130:9;27140:1;27130:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27122:21;;;;;;;;;;;;;;;;:31;27087:66;27083:97;;;27163:7;;16703:21;27155:25;;;;;;;;;27083:97;27205:34;27217:7;:21;27225:9;27235:1;27225:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27217:21;;;;;;;;;;;;;;;;27205:7;:11;;:34;;;;:::i;:::-;27195:44;;27264:34;27276:7;:21;27284:9;27294:1;27284:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27276:21;;;;;;;;;;;;;;;;27264:7;:11;;:34;;;;:::i;:::-;27254:44;;27063:3;;;;;:::i;:::-;;;;27021:289;;;;27334:20;16703:21;27334:7;;:11;;:20;;;;:::i;:::-;27324:7;:30;27320:61;;;27364:7;;16703:21;27356:25;;;;;;;;27320:61;27400:7;27409;27392:25;;;;;;26864:561;;;:::o;6438:278::-;6524:7;6556:1;6552;:5;6559:12;6544:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6583:9;6599:1;6595;:5;;;;:::i;:::-;6583:17;;6707:1;6700:8;;;6438:278;;;;;:::o;4863:471::-;4921:7;5171:1;5166;:6;5162:47;;;5196:1;5189:8;;;;5162:47;5221:9;5237:1;5233;:5;;;;:::i;:::-;5221:17;;5266:1;5261;5257;:5;;;;:::i;:::-;:10;5249:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5325:1;5318:8;;;4863:471;;;;;:::o;25318:156::-;25405:17;25417:4;25405:7;;:11;;:17;;;;:::i;:::-;25395:7;:27;;;;25446:20;25461:4;25446:10;;:14;;:20;;;;:::i;:::-;25433:10;:33;;;;25318:156;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:262::-;;693:2;681:9;672:7;668:23;664:32;661:2;;;709:1;706;699:12;661:2;752:1;777:53;822:7;813:6;802:9;798:22;777:53;:::i;:::-;767:63;;723:117;651:196;;;;:::o;853:284::-;;972:2;960:9;951:7;947:23;943:32;940:2;;;988:1;985;978:12;940:2;1031:1;1056:64;1112:7;1103:6;1092:9;1088:22;1056:64;:::i;:::-;1046:74;;1002:128;930:207;;;;:::o;1143:407::-;;;1268:2;1256:9;1247:7;1243:23;1239:32;1236:2;;;1284:1;1281;1274:12;1236:2;1327:1;1352:53;1397:7;1388:6;1377:9;1373:22;1352:53;:::i;:::-;1342:63;;1298:117;1454:2;1480:53;1525:7;1516:6;1505:9;1501:22;1480:53;:::i;:::-;1470:63;;1425:118;1226:324;;;;;:::o;1556:552::-;;;;1698:2;1686:9;1677:7;1673:23;1669:32;1666:2;;;1714:1;1711;1704:12;1666:2;1757:1;1782:53;1827:7;1818:6;1807:9;1803:22;1782:53;:::i;:::-;1772:63;;1728:117;1884:2;1910:53;1955:7;1946:6;1935:9;1931:22;1910:53;:::i;:::-;1900:63;;1855:118;2012:2;2038:53;2083:7;2074:6;2063:9;2059:22;2038:53;:::i;:::-;2028:63;;1983:118;1656:452;;;;;:::o;2114:407::-;;;2239:2;2227:9;2218:7;2214:23;2210:32;2207:2;;;2255:1;2252;2245:12;2207:2;2298:1;2323:53;2368:7;2359:6;2348:9;2344:22;2323:53;:::i;:::-;2313:63;;2269:117;2425:2;2451:53;2496:7;2487:6;2476:9;2472:22;2451:53;:::i;:::-;2441:63;;2396:118;2197:324;;;;;:::o;2527:256::-;;2632:2;2620:9;2611:7;2607:23;2603:32;2600:2;;;2648:1;2645;2638:12;2600:2;2691:1;2716:50;2758:7;2749:6;2738:9;2734:22;2716:50;:::i;:::-;2706:60;;2662:114;2590:193;;;;:::o;2789:262::-;;2897:2;2885:9;2876:7;2872:23;2868:32;2865:2;;;2913:1;2910;2903:12;2865:2;2956:1;2981:53;3026:7;3017:6;3006:9;3002:22;2981:53;:::i;:::-;2971:63;;2927:117;2855:196;;;;:::o;3057:401::-;;;3179:2;3167:9;3158:7;3154:23;3150:32;3147:2;;;3195:1;3192;3185:12;3147:2;3238:1;3263:53;3308:7;3299:6;3288:9;3284:22;3263:53;:::i;:::-;3253:63;;3209:117;3365:2;3391:50;3433:7;3424:6;3413:9;3409:22;3391:50;:::i;:::-;3381:60;;3336:115;3137:321;;;;;:::o;3464:118::-;3551:24;3569:5;3551:24;:::i;:::-;3546:3;3539:37;3529:53;;:::o;3588:109::-;3669:21;3684:5;3669:21;:::i;:::-;3664:3;3657:34;3647:50;;:::o;3703:364::-;;3819:39;3852:5;3819:39;:::i;:::-;3874:71;3938:6;3933:3;3874:71;:::i;:::-;3867:78;;3954:52;3999:6;3994:3;3987:4;3980:5;3976:16;3954:52;:::i;:::-;4031:29;4053:6;4031:29;:::i;:::-;4026:3;4022:39;4015:46;;3795:272;;;;;:::o;4073:367::-;;4236:67;4300:2;4295:3;4236:67;:::i;:::-;4229:74;;4333:34;4329:1;4324:3;4320:11;4313:55;4399:5;4394:2;4389:3;4385:12;4378:27;4431:2;4426:3;4422:12;4415:19;;4219:221;;;:::o;4446:374::-;;4609:67;4673:2;4668:3;4609:67;:::i;:::-;4602:74;;4706:34;4702:1;4697:3;4693:11;4686:55;4772:12;4767:2;4762:3;4758:12;4751:34;4811:2;4806:3;4802:12;4795:19;;4592:228;;;:::o;4826:370::-;;4989:67;5053:2;5048:3;4989:67;:::i;:::-;4982:74;;5086:34;5082:1;5077:3;5073:11;5066:55;5152:8;5147:2;5142:3;5138:12;5131:30;5187:2;5182:3;5178:12;5171:19;;4972:224;;;:::o;5202:366::-;;5365:67;5429:2;5424:3;5365:67;:::i;:::-;5358:74;;5462:34;5458:1;5453:3;5449:11;5442:55;5528:4;5523:2;5518:3;5514:12;5507:26;5559:2;5554:3;5550:12;5543:19;;5348:220;;;:::o;5574:325::-;;5737:67;5801:2;5796:3;5737:67;:::i;:::-;5730:74;;5834:29;5830:1;5825:3;5821:11;5814:50;5890:2;5885:3;5881:12;5874:19;;5720:179;;;:::o;5905:325::-;;6068:67;6132:2;6127:3;6068:67;:::i;:::-;6061:74;;6165:29;6161:1;6156:3;6152:11;6145:50;6221:2;6216:3;6212:12;6205:19;;6051:179;;;:::o;6236:329::-;;6399:67;6463:2;6458:3;6399:67;:::i;:::-;6392:74;;6496:33;6492:1;6487:3;6483:11;6476:54;6556:2;6551:3;6547:12;6540:19;;6382:183;;;:::o;6571:365::-;;6734:67;6798:2;6793:3;6734:67;:::i;:::-;6727:74;;6831:34;6827:1;6822:3;6818:11;6811:55;6897:3;6892:2;6887:3;6883:12;6876:25;6927:2;6922:3;6918:12;6911:19;;6717:219;;;:::o;6942:330::-;;7105:67;7169:2;7164:3;7105:67;:::i;:::-;7098:74;;7202:34;7198:1;7193:3;7189:11;7182:55;7263:2;7258:3;7254:12;7247:19;;7088:184;;;:::o;7278:373::-;;7441:67;7505:2;7500:3;7441:67;:::i;:::-;7434:74;;7538:34;7534:1;7529:3;7525:11;7518:55;7604:11;7599:2;7594:3;7590:12;7583:33;7642:2;7637:3;7633:12;7626:19;;7424:227;;;:::o;7657:369::-;;7820:67;7884:2;7879:3;7820:67;:::i;:::-;7813:74;;7917:34;7913:1;7908:3;7904:11;7897:55;7983:7;7978:2;7973:3;7969:12;7962:29;8017:2;8012:3;8008:12;8001:19;;7803:223;;;:::o;8032:368::-;;8195:67;8259:2;8254:3;8195:67;:::i;:::-;8188:74;;8292:34;8288:1;8283:3;8279:11;8272:55;8358:6;8353:2;8348:3;8344:12;8337:28;8391:2;8386:3;8382:12;8375:19;;8178:222;;;:::o;8406:376::-;;8569:67;8633:2;8628:3;8569:67;:::i;:::-;8562:74;;8666:34;8662:1;8657:3;8653:11;8646:55;8732:14;8727:2;8722:3;8718:12;8711:36;8773:2;8768:3;8764:12;8757:19;;8552:230;;;:::o;8788:118::-;8875:24;8893:5;8875:24;:::i;:::-;8870:3;8863:37;8853:53;;:::o;8912:112::-;8995:22;9011:5;8995:22;:::i;:::-;8990:3;8983:35;8973:51;;:::o;9030:222::-;;9161:2;9150:9;9146:18;9138:26;;9174:71;9242:1;9231:9;9227:17;9218:6;9174:71;:::i;:::-;9128:124;;;;:::o;9258:332::-;;9417:2;9406:9;9402:18;9394:26;;9430:71;9498:1;9487:9;9483:17;9474:6;9430:71;:::i;:::-;9511:72;9579:2;9568:9;9564:18;9555:6;9511:72;:::i;:::-;9384:206;;;;;:::o;9596:210::-;;9721:2;9710:9;9706:18;9698:26;;9734:65;9796:1;9785:9;9781:17;9772:6;9734:65;:::i;:::-;9688:118;;;;:::o;9812:313::-;;9963:2;9952:9;9948:18;9940:26;;10012:9;10006:4;10002:20;9998:1;9987:9;9983:17;9976:47;10040:78;10113:4;10104:6;10040:78;:::i;:::-;10032:86;;9930:195;;;;:::o;10131:419::-;;10335:2;10324:9;10320:18;10312:26;;10384:9;10378:4;10374:20;10370:1;10359:9;10355:17;10348:47;10412:131;10538:4;10412:131;:::i;:::-;10404:139;;10302:248;;;:::o;10556:419::-;;10760:2;10749:9;10745:18;10737:26;;10809:9;10803:4;10799:20;10795:1;10784:9;10780:17;10773:47;10837:131;10963:4;10837:131;:::i;:::-;10829:139;;10727:248;;;:::o;10981:419::-;;11185:2;11174:9;11170:18;11162:26;;11234:9;11228:4;11224:20;11220:1;11209:9;11205:17;11198:47;11262:131;11388:4;11262:131;:::i;:::-;11254:139;;11152:248;;;:::o;11406:419::-;;11610:2;11599:9;11595:18;11587:26;;11659:9;11653:4;11649:20;11645:1;11634:9;11630:17;11623:47;11687:131;11813:4;11687:131;:::i;:::-;11679:139;;11577:248;;;:::o;11831:419::-;;12035:2;12024:9;12020:18;12012:26;;12084:9;12078:4;12074:20;12070:1;12059:9;12055:17;12048:47;12112:131;12238:4;12112:131;:::i;:::-;12104:139;;12002:248;;;:::o;12256:419::-;;12460:2;12449:9;12445:18;12437:26;;12509:9;12503:4;12499:20;12495:1;12484:9;12480:17;12473:47;12537:131;12663:4;12537:131;:::i;:::-;12529:139;;12427:248;;;:::o;12681:419::-;;12885:2;12874:9;12870:18;12862:26;;12934:9;12928:4;12924:20;12920:1;12909:9;12905:17;12898:47;12962:131;13088:4;12962:131;:::i;:::-;12954:139;;12852:248;;;:::o;13106:419::-;;13310:2;13299:9;13295:18;13287:26;;13359:9;13353:4;13349:20;13345:1;13334:9;13330:17;13323:47;13387:131;13513:4;13387:131;:::i;:::-;13379:139;;13277:248;;;:::o;13531:419::-;;13735:2;13724:9;13720:18;13712:26;;13784:9;13778:4;13774:20;13770:1;13759:9;13755:17;13748:47;13812:131;13938:4;13812:131;:::i;:::-;13804:139;;13702:248;;;:::o;13956:419::-;;14160:2;14149:9;14145:18;14137:26;;14209:9;14203:4;14199:20;14195:1;14184:9;14180:17;14173:47;14237:131;14363:4;14237:131;:::i;:::-;14229:139;;14127:248;;;:::o;14381:419::-;;14585:2;14574:9;14570:18;14562:26;;14634:9;14628:4;14624:20;14620:1;14609:9;14605:17;14598:47;14662:131;14788:4;14662:131;:::i;:::-;14654:139;;14552:248;;;:::o;14806:419::-;;15010:2;14999:9;14995:18;14987:26;;15059:9;15053:4;15049:20;15045:1;15034:9;15030:17;15023:47;15087:131;15213:4;15087:131;:::i;:::-;15079:139;;14977:248;;;:::o;15231:419::-;;15435:2;15424:9;15420:18;15412:26;;15484:9;15478:4;15474:20;15470:1;15459:9;15455:17;15448:47;15512:131;15638:4;15512:131;:::i;:::-;15504:139;;15402:248;;;:::o;15656:222::-;;15787:2;15776:9;15772:18;15764:26;;15800:71;15868:1;15857:9;15853:17;15844:6;15800:71;:::i;:::-;15754:124;;;;:::o;15884:214::-;;16011:2;16000:9;15996:18;15988:26;;16024:67;16088:1;16077:9;16073:17;16064:6;16024:67;:::i;:::-;15978:120;;;;:::o;16104:99::-;;16190:5;16184:12;16174:22;;16163:40;;;:::o;16209:169::-;;16327:6;16322:3;16315:19;16367:4;16362:3;16358:14;16343:29;;16305:73;;;;:::o;16384:305::-;;16443:20;16461:1;16443:20;:::i;:::-;16438:25;;16477:20;16495:1;16477:20;:::i;:::-;16472:25;;16631:1;16563:66;16559:74;16556:1;16553:81;16550:2;;;16637:18;;:::i;:::-;16550:2;16681:1;16678;16674:9;16667:16;;16428:261;;;;:::o;16695:185::-;;16752:20;16770:1;16752:20;:::i;:::-;16747:25;;16786:20;16804:1;16786:20;:::i;:::-;16781:25;;16825:1;16815:2;;16830:18;;:::i;:::-;16815:2;16872:1;16869;16865:9;16860:14;;16737:143;;;;:::o;16886:348::-;;16949:20;16967:1;16949:20;:::i;:::-;16944:25;;16983:20;17001:1;16983:20;:::i;:::-;16978:25;;17171:1;17103:66;17099:74;17096:1;17093:81;17088:1;17081:9;17074:17;17070:105;17067:2;;;17178:18;;:::i;:::-;17067:2;17226:1;17223;17219:9;17208:20;;16934:300;;;;:::o;17240:191::-;;17300:20;17318:1;17300:20;:::i;:::-;17295:25;;17334:20;17352:1;17334:20;:::i;:::-;17329:25;;17373:1;17370;17367:8;17364:2;;;17378:18;;:::i;:::-;17364:2;17423:1;17420;17416:9;17408:17;;17285:146;;;;:::o;17437:96::-;;17503:24;17521:5;17503:24;:::i;:::-;17492:35;;17482:51;;;:::o;17539:90::-;;17616:5;17609:13;17602:21;17591:32;;17581:48;;;:::o;17635:126::-;;17712:42;17705:5;17701:54;17690:65;;17680:81;;;:::o;17767:77::-;;17833:5;17822:16;;17812:32;;;:::o;17850:86::-;;17925:4;17918:5;17914:16;17903:27;;17893:43;;;:::o;17942:307::-;18010:1;18020:113;18034:6;18031:1;18028:13;18020:113;;;18119:1;18114:3;18110:11;18104:18;18100:1;18095:3;18091:11;18084:39;18056:2;18053:1;18049:10;18044:15;;18020:113;;;18151:6;18148:1;18145:13;18142:2;;;18231:1;18222:6;18217:3;18213:16;18206:27;18142:2;17991:258;;;;:::o;18255:320::-;;18336:1;18330:4;18326:12;18316:22;;18383:1;18377:4;18373:12;18404:18;18394:2;;18460:4;18452:6;18448:17;18438:27;;18394:2;18522;18514:6;18511:14;18491:18;18488:38;18485:2;;;18541:18;;:::i;:::-;18485:2;18306:269;;;;:::o;18581:233::-;;18643:24;18661:5;18643:24;:::i;:::-;18634:33;;18689:66;18682:5;18679:77;18676:2;;;18759:18;;:::i;:::-;18676:2;18806:1;18799:5;18795:13;18788:20;;18624:190;;;:::o;18820:180::-;18868:77;18865:1;18858:88;18965:4;18962:1;18955:15;18989:4;18986:1;18979:15;19006:180;19054:77;19051:1;19044:88;19151:4;19148:1;19141:15;19175:4;19172:1;19165:15;19192:180;19240:77;19237:1;19230:88;19337:4;19334:1;19327:15;19361:4;19358:1;19351:15;19378:102;;19470:2;19466:7;19461:2;19454:5;19450:14;19446:28;19436:38;;19426:54;;;:::o;19486:122::-;19559:24;19577:5;19559:24;:::i;:::-;19552:5;19549:35;19539:2;;19598:1;19595;19588:12;19539:2;19529:79;:::o;19614:116::-;19684:21;19699:5;19684:21;:::i;:::-;19677:5;19674:32;19664:2;;19720:1;19717;19710:12;19664:2;19654:76;:::o;19736:122::-;19809:24;19827:5;19809:24;:::i;:::-;19802:5;19799:35;19789:2;;19848:1;19845;19838:12;19789:2;19779:79;:::o

Swarm Source

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