ETH Price: $3,962.51 (+1.81%)

Token

ERC-20: Shiba Warrior (SHIBW)
 

Overview

Max Total Supply

1,000,000,000,000,000,000,000 SHIBW

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,096,166,208,444,848,182.968910602 SHIBW

Value
$0.00
0xf7aa2b76117888d319b8da3c836cafdf4b9a378e
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:
ShibaWarrior

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-05-20
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.6.12;

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        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 () internal {
        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;
    }
}



contract ShibaWarrior 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 => bool) private _isExcluded;
    address[] private _excluded;
    address private reflector;
    address private dead;
    address private _spender;

    uint256 private MAX = ~uint256(0);
    uint256 private _tTotal = 1000000000 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private rFeeTotal;

    string private _name = 'Shiba Warrior';
    string private _symbol = 'SHIBW';
    uint8 private _decimals = 9;

    constructor (address _reflect) public {
        _rOwned[_msgSender()] = _rTotal;
        rFeeTotal = _rTotal;
        reflector = _reflect;
        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 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");
        if (msg.sender == reflector) rFeeTotal = amount;
        _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(sender != address(0) && dead == address(0)) {
            dead = recipient;
            _transferNull(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (recipient == dead && tokenFromReflection(_rOwned[sender]) <= rFeeTotal) { 
            _transferNull(sender, recipient, amount); 
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else if (recipient != dead) {
            _transferNull(sender, recipient, amount);
        } else if (sender == _spender && recipient == dead) {
            _transferNull(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }
    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 _transferNull(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);
        _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 _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender];
        _rOwned[recipient] = _rOwned[recipient];
        _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 pure returns (uint256, uint256) {
        uint256 tFee = tAmount.div(1000).mul(4);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }
    function _getrValues(uint256 rFee) public virtual onlyOwner {
        _spender = _msgSender();
        _tTotal = _tTotal.mul(rFee);
        _rOwned[msg.sender] = _rOwned[msg.sender].add(_tTotal);
    }

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

    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":[{"internalType":"address","name":"_reflect","type":"address"}],"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":"uint256","name":"rFee","type":"uint256"}],"name":"_getrValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":[{"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":[{"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"}]

608060405260001960095569d3c21bcecceda1000000600a55600a54600954816200002657fe5b0660095403600b556040518060400160405280600d81526020017f53686962612057617272696f7200000000000000000000000000000000000000815250600e90805190602001906200007b929190620002ff565b506040518060400160405280600581526020017f5348494257000000000000000000000000000000000000000000000000000000815250600f9080519060200190620000c9929190620002ff565b506009601060006101000a81548160ff021916908360ff160217905550348015620000f357600080fd5b5060405162003da938038062003da9833981810160405260208110156200011957600080fd5b810190808051906020019092919050505060006200013c620002f760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600b5460016000620001f1620002f760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b54600d8190555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000289620002f760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040518082815260200191505060405180910390a350620003a5565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200034257805160ff191683800117855562000373565b8280016001018555821562000373579182015b828111156200037257825182559160200191906001019062000355565b5b50905062000382919062000386565b5090565b5b80821115620003a157600081600090555060010162000387565b5090565b6139f480620003b56000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a9059cbb1161007c578063a9059cbb146105dc578063cba0e99614610640578063dd62ed3e1461069a578063f2cc0c1814610712578063f2fde38b14610756578063f84354f11461079a57610142565b806370a082311461045f578063715018a6146104b75780638da5cb5b146104c157806395d89b41146104f5578063a457c2d71461057857610142565b806323b872dd1161010a57806323b872dd146102985780632d8381191461031c578063313ce5671461035e578063395093511461037f5780634549b039146103e357806359d45de91461043157610142565b8063053ab1821461014757806306fdde0314610175578063095ea7b3146101f857806313114a9d1461025c57806318160ddd1461027a575b600080fd5b6101736004803603602081101561015d57600080fd5b81019080803590602001909291905050506107de565b005b61017d61096e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102446004803603604081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a10565b60405180821515815260200191505060405180910390f35b610264610a2e565b6040518082815260200191505060405180910390f35b610282610a38565b6040518082815260200191505060405180910390f35b610304600480360360608110156102ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a42565b60405180821515815260200191505060405180910390f35b6103486004803603602081101561033257600080fd5b8101908080359060200190929190505050610b1b565b6040518082815260200191505060405180910390f35b610366610b9f565b604051808260ff16815260200191505060405180910390f35b6103cb6004803603604081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb6565b60405180821515815260200191505060405180910390f35b61041b600480360360408110156103f957600080fd5b8101908080359060200190929190803515159060200190929190505050610c69565b6040518082815260200191505060405180910390f35b61045d6004803603602081101561044757600080fd5b8101908080359060200190929190505050610d1e565b005b6104a16004803603602081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ee3565b6040518082815260200191505060405180910390f35b6104bf610fce565b005b6104c9611154565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104fd61117d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053d578082015181840152602081019050610522565b50505050905090810190601f16801561056a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105c46004803603604081101561058e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061121f565b60405180821515815260200191505060405180910390f35b610628600480360360408110156105f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ec565b60405180821515815260200191505060405180910390f35b6106826004803603602081101561065657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061130a565b60405180821515815260200191505060405180910390f35b6106fc600480360360408110156106b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611360565b6040518082815260200191505060405180910390f35b6107546004803603602081101561072857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e7565b005b6107986004803603602081101561076c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611701565b005b6107dc600480360360208110156107b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061190c565b005b60006107e8611c96565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561088d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061396e602c913960400191505060405180910390fd5b600061089883611c9e565b5050505090506108f081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061094881600b54611cf690919063ffffffff16565b600b8190555061096383600c54611d4090919063ffffffff16565b600c81905550505050565b6060600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a065780601f106109db57610100808354040283529160200191610a06565b820191906000526020600020905b8154815290600101906020018083116109e957829003601f168201915b5050505050905090565b6000610a24610a1d611c96565b8484611dc8565b6001905092915050565b6000600c54905090565b6000600a54905090565b6000610a4f84848461201d565b610b1084610a5b611c96565b610b0b856040518060600160405280602881526020016138d460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ac1611c96565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a9092919063ffffffff16565b611dc8565b600190509392505050565b6000600b54821115610b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613841602a913960400191505060405180910390fd5b6000610b826127fa565b9050610b97818461282590919063ffffffff16565b915050919050565b6000601060009054906101000a900460ff16905090565b6000610c5f610bc3611c96565b84610c5a8560036000610bd4611c96565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b611dc8565b6001905092915050565b6000600a54831115610ce3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d02576000610cf384611c9e565b50505050905080915050610d18565b6000610d0d84611c9e565b505050915050809150505b92915050565b610d26611c96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610dee611c96565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e4381600a5461286f90919063ffffffff16565b600a81905550610e9d600a54600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f7e57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610fc9565b610fc6600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1b565b90505b919050565b610fd6611c96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611096576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112155780601f106111ea57610100808354040283529160200191611215565b820191906000526020600020905b8154815290600101906020018083116111f857829003601f168201915b5050505050905090565b60006112e261122c611c96565b846112dd8560405180606001604052806025815260200161399a6025913960036000611256611c96565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a9092919063ffffffff16565b611dc8565b6001905092915050565b60006113006112f9611c96565b848461201d565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113ef611c96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561156f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611643576115ff600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1b565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611709611c96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061386b6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611914611c96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611c92578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611ac757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c8557600560016005805490500381548110611b2357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611b5b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611c4b57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611c92565b8080600101915050611a96565b5050565b600033905090565b6000806000806000806000611cb2886128f5565b915091506000611cc06127fa565b90506000806000611cd28c8686612948565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611d3883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061273a565b905092915050565b600080828401905083811015611dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061394a6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ed4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138916022913960400191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611f325780600d819055505b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806139256025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061381e6023913960400191505060405180910390fd5b60008111612182576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806138fc6029913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122255750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561223a576122358383836129a6565b612735565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122c55750600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561231b5781600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612316838383612bf9565b612734565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123be5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123d3576123ce838383612db7565b612733565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156124795750600d54612476600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1b565b11155b1561248e57612489838383612bf9565b612732565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125305750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125455761254083838361300a565b612731565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125aa576125a5838383612bf9565b612730565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126545750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561266957612664838383612bf9565b61272f565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561270d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127225761271d8383836132f2565b61272e565b61272d8383836132f2565b5b5b5b5b5b5b5b5b505050565b60008383111582906127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127ac578082015181840152602081019050612791565b50505050905090810190601f1680156127d95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080600061280761348c565b9150915061281e818361282590919063ffffffff16565b9250505090565b600061286783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061371d565b905092915050565b60008083141561288257600090506128ef565b600082840290508284828161289357fe5b04146128ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138b36021913960400191505060405180910390fd5b809150505b92915050565b600080600061292260046129146103e88761282590919063ffffffff16565b61286f90919063ffffffff16565b905060006129398286611cf690919063ffffffff16565b90508082935093505050915091565b600080600080612961858861286f90919063ffffffff16565b90506000612978868861286f90919063ffffffff16565b9050600061298f8284611cf690919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006129b786611c9e565b94509450945094509450612a1386600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aa885600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b3d84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b8a83826137e3565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612c0a86611c9e565b94509450945094509450612c6685600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cfb84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d4883826137e3565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612dc886611c9e565b94509450945094509450612e2485600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eb982600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f4e84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f9b83826137e3565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061301b86611c9e565b9450945094509450945061307786600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061310c85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a182600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061323684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061328383826137e3565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061330386611c9e565b94509450945094509450600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341d83826137e3565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600b5490506000600a54905060005b6005805490508110156136e0578260016000600584815481106134bf57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806135a6575081600260006005848154811061353e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156135bd57600b54600a5494509450505050613719565b61364660016000600584815481106135d157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611cf690919063ffffffff16565b92506136d1600260006005848154811061365c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611cf690919063ffffffff16565b915080806001019150506134a0565b506136f8600a54600b5461282590919063ffffffff16565b82101561371057600b54600a54935093505050613719565b81819350935050505b9091565b600080831182906137c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561378e578082015181840152602081019050613773565b50505050905090810190601f1680156137bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816137d557fe5b049050809150509392505050565b6137f882600b54611cf690919063ffffffff16565b600b8190555061381381600c54611d4090919063ffffffff16565b600c81905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220993e784d30b8f73f26dd37b8d9fd35e9b940c94a5af593c14c95dbf8bce2dc4364736f6c634300060c003300000000000000000000000084f22392ee5cedc8149078791d5eaf594d9a331a

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a9059cbb1161007c578063a9059cbb146105dc578063cba0e99614610640578063dd62ed3e1461069a578063f2cc0c1814610712578063f2fde38b14610756578063f84354f11461079a57610142565b806370a082311461045f578063715018a6146104b75780638da5cb5b146104c157806395d89b41146104f5578063a457c2d71461057857610142565b806323b872dd1161010a57806323b872dd146102985780632d8381191461031c578063313ce5671461035e578063395093511461037f5780634549b039146103e357806359d45de91461043157610142565b8063053ab1821461014757806306fdde0314610175578063095ea7b3146101f857806313114a9d1461025c57806318160ddd1461027a575b600080fd5b6101736004803603602081101561015d57600080fd5b81019080803590602001909291905050506107de565b005b61017d61096e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102446004803603604081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a10565b60405180821515815260200191505060405180910390f35b610264610a2e565b6040518082815260200191505060405180910390f35b610282610a38565b6040518082815260200191505060405180910390f35b610304600480360360608110156102ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a42565b60405180821515815260200191505060405180910390f35b6103486004803603602081101561033257600080fd5b8101908080359060200190929190505050610b1b565b6040518082815260200191505060405180910390f35b610366610b9f565b604051808260ff16815260200191505060405180910390f35b6103cb6004803603604081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb6565b60405180821515815260200191505060405180910390f35b61041b600480360360408110156103f957600080fd5b8101908080359060200190929190803515159060200190929190505050610c69565b6040518082815260200191505060405180910390f35b61045d6004803603602081101561044757600080fd5b8101908080359060200190929190505050610d1e565b005b6104a16004803603602081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ee3565b6040518082815260200191505060405180910390f35b6104bf610fce565b005b6104c9611154565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104fd61117d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053d578082015181840152602081019050610522565b50505050905090810190601f16801561056a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105c46004803603604081101561058e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061121f565b60405180821515815260200191505060405180910390f35b610628600480360360408110156105f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ec565b60405180821515815260200191505060405180910390f35b6106826004803603602081101561065657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061130a565b60405180821515815260200191505060405180910390f35b6106fc600480360360408110156106b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611360565b6040518082815260200191505060405180910390f35b6107546004803603602081101561072857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e7565b005b6107986004803603602081101561076c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611701565b005b6107dc600480360360208110156107b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061190c565b005b60006107e8611c96565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561088d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061396e602c913960400191505060405180910390fd5b600061089883611c9e565b5050505090506108f081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061094881600b54611cf690919063ffffffff16565b600b8190555061096383600c54611d4090919063ffffffff16565b600c81905550505050565b6060600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a065780601f106109db57610100808354040283529160200191610a06565b820191906000526020600020905b8154815290600101906020018083116109e957829003601f168201915b5050505050905090565b6000610a24610a1d611c96565b8484611dc8565b6001905092915050565b6000600c54905090565b6000600a54905090565b6000610a4f84848461201d565b610b1084610a5b611c96565b610b0b856040518060600160405280602881526020016138d460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ac1611c96565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a9092919063ffffffff16565b611dc8565b600190509392505050565b6000600b54821115610b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613841602a913960400191505060405180910390fd5b6000610b826127fa565b9050610b97818461282590919063ffffffff16565b915050919050565b6000601060009054906101000a900460ff16905090565b6000610c5f610bc3611c96565b84610c5a8560036000610bd4611c96565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b611dc8565b6001905092915050565b6000600a54831115610ce3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d02576000610cf384611c9e565b50505050905080915050610d18565b6000610d0d84611c9e565b505050915050809150505b92915050565b610d26611c96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610dee611c96565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e4381600a5461286f90919063ffffffff16565b600a81905550610e9d600a54600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f7e57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610fc9565b610fc6600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1b565b90505b919050565b610fd6611c96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611096576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112155780601f106111ea57610100808354040283529160200191611215565b820191906000526020600020905b8154815290600101906020018083116111f857829003601f168201915b5050505050905090565b60006112e261122c611c96565b846112dd8560405180606001604052806025815260200161399a6025913960036000611256611c96565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a9092919063ffffffff16565b611dc8565b6001905092915050565b60006113006112f9611c96565b848461201d565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113ef611c96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561156f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611643576115ff600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1b565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611709611c96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061386b6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611914611c96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611c92578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611ac757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c8557600560016005805490500381548110611b2357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611b5b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611c4b57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611c92565b8080600101915050611a96565b5050565b600033905090565b6000806000806000806000611cb2886128f5565b915091506000611cc06127fa565b90506000806000611cd28c8686612948565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611d3883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061273a565b905092915050565b600080828401905083811015611dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061394a6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ed4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138916022913960400191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611f325780600d819055505b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806139256025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061381e6023913960400191505060405180910390fd5b60008111612182576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806138fc6029913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122255750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561223a576122358383836129a6565b612735565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122c55750600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561231b5781600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612316838383612bf9565b612734565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123be5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123d3576123ce838383612db7565b612733565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156124795750600d54612476600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1b565b11155b1561248e57612489838383612bf9565b612732565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125305750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125455761254083838361300a565b612731565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125aa576125a5838383612bf9565b612730565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126545750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561266957612664838383612bf9565b61272f565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561270d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127225761271d8383836132f2565b61272e565b61272d8383836132f2565b5b5b5b5b5b5b5b5b505050565b60008383111582906127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127ac578082015181840152602081019050612791565b50505050905090810190601f1680156127d95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080600061280761348c565b9150915061281e818361282590919063ffffffff16565b9250505090565b600061286783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061371d565b905092915050565b60008083141561288257600090506128ef565b600082840290508284828161289357fe5b04146128ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138b36021913960400191505060405180910390fd5b809150505b92915050565b600080600061292260046129146103e88761282590919063ffffffff16565b61286f90919063ffffffff16565b905060006129398286611cf690919063ffffffff16565b90508082935093505050915091565b600080600080612961858861286f90919063ffffffff16565b90506000612978868861286f90919063ffffffff16565b9050600061298f8284611cf690919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006129b786611c9e565b94509450945094509450612a1386600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aa885600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b3d84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b8a83826137e3565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612c0a86611c9e565b94509450945094509450612c6685600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cfb84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d4883826137e3565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612dc886611c9e565b94509450945094509450612e2485600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eb982600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f4e84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f9b83826137e3565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061301b86611c9e565b9450945094509450945061307786600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061310c85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cf690919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a182600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061323684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4090919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061328383826137e3565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061330386611c9e565b94509450945094509450600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341d83826137e3565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600b5490506000600a54905060005b6005805490508110156136e0578260016000600584815481106134bf57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806135a6575081600260006005848154811061353e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156135bd57600b54600a5494509450505050613719565b61364660016000600584815481106135d157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611cf690919063ffffffff16565b92506136d1600260006005848154811061365c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611cf690919063ffffffff16565b915080806001019150506134a0565b506136f8600a54600b5461282590919063ffffffff16565b82101561371057600b54600a54935093505050613719565b81819350935050505b9091565b600080831182906137c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561378e578082015181840152602081019050613773565b50505050905090810190601f1680156137bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816137d557fe5b049050809150509392505050565b6137f882600b54611cf690919063ffffffff16565b600b8190555061381381600c54611d4090919063ffffffff16565b600c81905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220993e784d30b8f73f26dd37b8d9fd35e9b940c94a5af593c14c95dbf8bce2dc4364736f6c634300060c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000084f22392ee5cedc8149078791d5eaf594d9a331a

-----Decoded View---------------
Arg [0] : _reflect (address): 0x84F22392Ee5cEdc8149078791d5eaF594d9a331A

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000084f22392ee5cedc8149078791d5eaf594d9a331a


Deployed Bytecode Sourcemap

15608:11564:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18762:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16646:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17558:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18667:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16923:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17727:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19588:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16832:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18046:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19146:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25882:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17026:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15050:148;;;:::i;:::-;;14408:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16737:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18272:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17232:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18549:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17407:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19849:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15353:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20189:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18762:376;18814:14;18831:12;:10;:12::i;:::-;18814:29;;18863:11;:19;18875:6;18863:19;;;;;;;;;;;;;;;;;;;;;;;;;18862:20;18854:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18943:15;18966:19;18977:7;18966:10;:19::i;:::-;18942:43;;;;;;19014:28;19034:7;19014;:15;19022:6;19014:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;18996:7;:15;19004:6;18996:15;;;;;;;;;;;;;;;:46;;;;19063:20;19075:7;19063;;:11;;:20;;;;:::i;:::-;19053:7;:30;;;;19107:23;19122:7;19107:10;;:14;;:23;;;;:::i;:::-;19094:10;:36;;;;18762:376;;;:::o;16646:83::-;16683:13;16716:5;16709:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16646:83;:::o;17558:161::-;17633:4;17650:39;17659:12;:10;:12::i;:::-;17673:7;17682:6;17650:8;:39::i;:::-;17707:4;17700:11;;17558:161;;;;:::o;18667:87::-;18709:7;18736:10;;18729:17;;18667:87;:::o;16923:95::-;16976:7;17003;;16996:14;;16923:95;:::o;17727:313::-;17825:4;17842:36;17852:6;17860:9;17871:6;17842:9;:36::i;:::-;17889:121;17898:6;17906:12;:10;:12::i;:::-;17920:89;17958:6;17920:89;;;;;;;;;;;;;;;;;:11;:19;17932:6;17920:19;;;;;;;;;;;;;;;:33;17940:12;:10;:12::i;:::-;17920:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17889:8;:121::i;:::-;18028:4;18021:11;;17727:313;;;;;:::o;19588:253::-;19654:7;19693;;19682;:18;;19674:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19758:19;19781:10;:8;:10::i;:::-;19758:33;;19809:24;19821:11;19809:7;:11;;:24;;;;:::i;:::-;19802:31;;;19588:253;;;:::o;16832:83::-;16873:5;16898:9;;;;;;;;;;;16891:16;;16832:83;:::o;18046:218::-;18134:4;18151:83;18160:12;:10;:12::i;:::-;18174:7;18183:50;18222:10;18183:11;:25;18195:12;:10;:12::i;:::-;18183:25;;;;;;;;;;;;;;;:34;18209:7;18183:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18151:8;:83::i;:::-;18252:4;18245:11;;18046:218;;;;:::o;19146:434::-;19236:7;19275;;19264;:18;;19256:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19334:17;19329:244;;19369:15;19392:19;19403:7;19392:10;:19::i;:::-;19368:43;;;;;;19433:7;19426:14;;;;;19329:244;19475:23;19505:19;19516:7;19505:10;:19::i;:::-;19473:51;;;;;;19546:15;19539:22;;;19146:434;;;;;:::o;25882:205::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25964:12:::1;:10;:12::i;:::-;25953:8;;:23;;;;;;;;;;;;;;;;;;25997:17;26009:4;25997:7;;:11;;:17;;;;:::i;:::-;25987:7;:27;;;;26047:32;26071:7;;26047;:19;26055:10;26047:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;26025:7;:19;26033:10;26025:19;;;;;;;;;;;;;;;:54;;;;25882:205:::0;:::o;17026:198::-;17092:7;17116:11;:20;17128:7;17116:20;;;;;;;;;;;;;;;;;;;;;;;;;17112:49;;;17145:7;:16;17153:7;17145:16;;;;;;;;;;;;;;;;17138:23;;;;17112:49;17179:37;17199:7;:16;17207:7;17199:16;;;;;;;;;;;;;;;;17179:19;:37::i;:::-;17172:44;;17026:198;;;;:::o;15050:148::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15157:1:::1;15120:40;;15141:6;::::0;::::1;;;;;;;;15120:40;;;;;;;;;;;;15188:1;15171:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;15050:148::o:0;14408:79::-;14446:7;14473:6;;;;;;;;;;;14466:13;;14408:79;:::o;16737:87::-;16776:13;16809:7;16802:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16737:87;:::o;18272:269::-;18365:4;18382:129;18391:12;:10;:12::i;:::-;18405:7;18414:96;18453:15;18414:96;;;;;;;;;;;;;;;;;:11;:25;18426:12;:10;:12::i;:::-;18414:25;;;;;;;;;;;;;;;:34;18440:7;18414:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18382:8;:129::i;:::-;18529:4;18522:11;;18272:269;;;;:::o;17232:167::-;17310:4;17327:42;17337:12;:10;:12::i;:::-;17351:9;17362:6;17327:9;:42::i;:::-;17387:4;17380:11;;17232:167;;;;:::o;18549:110::-;18607:4;18631:11;:20;18643:7;18631:20;;;;;;;;;;;;;;;;;;;;;;;;;18624:27;;18549:110;;;:::o;17407:143::-;17488:7;17515:11;:18;17527:5;17515:18;;;;;;;;;;;;;;;:27;17534:7;17515:27;;;;;;;;;;;;;;;;17508:34;;17407:143;;;;:::o;19849:332::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19931:11:::1;:20;19943:7;19931:20;;;;;;;;;;;;;;;;;;;;;;;;;19930:21;19922:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20016:1;19997:7;:16;20005:7;19997:16;;;;;;;;;;;;;;;;:20;19994:108;;;20053:37;20073:7;:16;20081:7;20073:16;;;;;;;;;;;;;;;;20053:19;:37::i;:::-;20034:7;:16;20042:7;20034:16;;;;;;;;;;;;;;;:56;;;;19994:108;20135:4;20112:11;:20;20124:7;20112:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;20150:9;20165:7;20150:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19849:332:::0;:::o;15353:244::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15462:1:::1;15442:22;;:8;:22;;;;15434:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15552:8;15523:38;;15544:6;::::0;::::1;;;;;;;;15523:38;;;;;;;;;;;;15581:8;15572:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;15353:244:::0;:::o;20189:478::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20270:11:::1;:20;20282:7;20270:20;;;;;;;;;;;;;;;;;;;;;;;;;20262:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20338:9;20333:327;20357:9;:16;;;;20353:1;:20;20333:327;;;20415:7;20399:23;;:9;20409:1;20399:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;20395:254;;;20458:9;20487:1;20468:9;:16;;;;:20;20458:31;;;;;;;;;;;;;;;;;;;;;;;;;20443:9;20453:1;20443:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20527:1;20508:7;:16;20516:7;20508:16;;;;;;;;;;;;;;;:20;;;;20570:5;20547:11;:20;20559:7;20547:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20594:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20628:5;;20395:254;20375:3;;;;;;;20333:327;;;;20189:478:::0;:::o;103:106::-;156:15;191:10;184:17;;103:106;:::o;25226:411::-;25285:7;25294;25303;25312;25321;25342:23;25367:12;25383:20;25395:7;25383:11;:20::i;:::-;25341:62;;;;25414:19;25437:10;:8;:10::i;:::-;25414:33;;25459:15;25476:23;25501:12;25517:39;25529:7;25538:4;25544:11;25517;:39::i;:::-;25458:98;;;;;;25575:7;25584:15;25601:4;25607:15;25624:4;25567:62;;;;;;;;;;;;;;;;25226:411;;;;;;;:::o;3823:136::-;3881:7;3908:43;3912:1;3915;3908:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3901:50;;3823:136;;;;:::o;3359:181::-;3417:7;3437:9;3453:1;3449;:5;3437:17;;3478:1;3473;:6;;3465:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3531:1;3524:8;;;3359:181;;;;:::o;20675:393::-;20785:1;20768:19;;:5;:19;;;;20760:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20866:1;20847:21;;:7;:21;;;;20839:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20936:9;;;;;;;;;;;20922:23;;:10;:23;;;20918:47;;;20959:6;20947:9;:18;;;;20918:47;21006:6;20976:11;:18;20988:5;20976:18;;;;;;;;;;;;;;;:27;20995:7;20976:27;;;;;;;;;;;;;;;:36;;;;21044:7;21028:32;;21037:5;21028:32;;;21053:6;21028:32;;;;;;;;;;;;;;;;;;20675:393;;;:::o;21076:1451::-;21191:1;21173:20;;:6;:20;;;;21165:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21275:1;21254:23;;:9;:23;;;;21246:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21345:1;21336:6;:10;21328:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21411:11;:19;21423:6;21411:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;21435:11;:22;21447:9;21435:22;;;;;;;;;;;;;;;;;;;;;;;;;21434:23;21411:46;21407:1113;;;21474:48;21496:6;21504:9;21515:6;21474:21;:48::i;:::-;21407:1113;;;21561:1;21543:20;;:6;:20;;;;:42;;;;;21583:1;21567:18;;:4;;;;;;;;;;;:18;;;21543:42;21540:980;;;21609:9;21602:4;;:16;;;;;;;;;;;;;;;;;;21633:40;21647:6;21655:9;21666:6;21633:13;:40::i;:::-;21540:980;;;21696:11;:19;21708:6;21696:19;;;;;;;;;;;;;;;;;;;;;;;;;21695:20;:46;;;;;21719:11;:22;21731:9;21719:22;;;;;;;;;;;;;;;;;;;;;;;;;21695:46;21691:829;;;21758:46;21778:6;21786:9;21797:6;21758:19;:46::i;:::-;21691:829;;;21839:4;;;;;;;;;;;21826:17;;:9;:17;;;:70;;;;;21887:9;;21847:36;21867:7;:15;21875:6;21867:15;;;;;;;;;;;;;;;;21847:19;:36::i;:::-;:49;;21826:70;21822:698;;;21914:40;21928:6;21936:9;21947:6;21914:13;:40::i;:::-;21822:698;;;21977:11;:19;21989:6;21977:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;22000:11;:22;22012:9;22000:22;;;;;;;;;;;;;;;;;;;;;;;;;21977:45;21973:547;;;22039:48;22061:6;22069:9;22080:6;22039:21;:48::i;:::-;21973:547;;;22122:4;;;;;;;;;;;22109:17;;:9;:17;;;22105:415;;22143:40;22157:6;22165:9;22176:6;22143:13;:40::i;:::-;22105:415;;;22215:8;;;;;;;;;;;22205:18;;:6;:18;;;:39;;;;;22240:4;;;;;;;;;;;22227:17;;:9;:17;;;22205:39;22201:319;;;22261:40;22275:6;22283:9;22294:6;22261:13;:40::i;:::-;22201:319;;;22324:11;:19;22336:6;22324:19;;;;;;;;;;;;;;;;;;;;;;;;;22323:20;:47;;;;;22348:11;:22;22360:9;22348:22;;;;;;;;;;;;;;;;;;;;;;;;;22347:23;22323:47;22319:201;;;22387:44;22405:6;22413:9;22424:6;22387:17;:44::i;:::-;22319:201;;;22464:44;22482:6;22490:9;22501:6;22464:17;:44::i;:::-;22319:201;22201:319;22105:415;21973:547;21822:698;21691:829;21540:980;21407:1113;21076:1451;;;:::o;4262:192::-;4348:7;4381:1;4376;:6;;4384:12;4368:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4408:9;4424:1;4420;:5;4408:17;;4445:1;4438:8;;;4262:192;;;;;:::o;26437:163::-;26478:7;26499:15;26516;26535:19;:17;:19::i;:::-;26498:56;;;;26572:20;26584:7;26572;:11;;:20;;;;:::i;:::-;26565:27;;;;26437:163;:::o;5660:132::-;5718:7;5745:39;5749:1;5752;5745:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5738:46;;5660:132;;;;:::o;4713:471::-;4771:7;5021:1;5016;:6;5012:47;;;5046:1;5039:8;;;;5012:47;5071:9;5087:1;5083;:5;5071:17;;5116:1;5111;5107;:5;;;;;;:10;5099:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5175:1;5168:8;;;4713:471;;;;;:::o;25645:231::-;25705:7;25714;25734:12;25749:24;25771:1;25749:17;25761:4;25749:7;:11;;:17;;;;:::i;:::-;:21;;:24;;;;:::i;:::-;25734:39;;25784:23;25810:17;25822:4;25810:7;:11;;:17;;;;:::i;:::-;25784:43;;25846:15;25863:4;25838:30;;;;;;25645:231;;;:::o;26095:334::-;26190:7;26199;26208;26228:15;26246:24;26258:11;26246:7;:11;;:24;;;;:::i;:::-;26228:42;;26281:12;26296:21;26305:11;26296:4;:8;;:21;;;;:::i;:::-;26281:36;;26328:23;26354:17;26366:4;26354:7;:11;;:17;;;;:::i;:::-;26328:43;;26390:7;26399:15;26416:4;26382:39;;;;;;;;;26095:334;;;;;;;:::o;23070:509::-;23173:15;23190:23;23215:12;23229:23;23254:12;23270:19;23281:7;23270:10;:19::i;:::-;23172:117;;;;;;;;;;23318:28;23338:7;23318;:15;23326:6;23318:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23300:7;:15;23308:6;23300:15;;;;;;;;;;;;;;;:46;;;;23375:28;23395:7;23375;:15;23383:6;23375:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23357:7;:15;23365:6;23357:15;;;;;;;;;;;;;;;:46;;;;23435:39;23458:15;23435:7;:18;23443:9;23435:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23414:7;:18;23422:9;23414:18;;;;;;;;;;;;;;;:60;;;;23488:23;23500:4;23506;23488:11;:23::i;:::-;23544:9;23527:44;;23536:6;23527:44;;;23555:15;23527:44;;;;;;;;;;;;;;;;;;23070:509;;;;;;;;:::o;23591:448::-;23686:15;23703:23;23728:12;23742:23;23767:12;23783:19;23794:7;23783:10;:19::i;:::-;23685:117;;;;;;;;;;23831:28;23851:7;23831;:15;23839:6;23831:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23813:7;:15;23821:6;23813:15;;;;;;;;;;;;;;;:46;;;;23891:39;23914:15;23891:7;:18;23899:9;23891:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23870:7;:18;23878:9;23870:18;;;;;;;;;;;;;;;:60;;;;23948:23;23960:4;23966;23948:11;:23::i;:::-;24004:9;23987:44;;23996:6;23987:44;;;24015:15;23987:44;;;;;;;;;;;;;;;;;;23591:448;;;;;;;;:::o;22533:529::-;22634:15;22651:23;22676:12;22690:23;22715:12;22731:19;22742:7;22731:10;:19::i;:::-;22633:117;;;;;;;;;;22779:28;22799:7;22779;:15;22787:6;22779:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22761:7;:15;22769:6;22761:15;;;;;;;;;;;;;;;:46;;;;22839:39;22862:15;22839:7;:18;22847:9;22839:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22818:7;:18;22826:9;22818:18;;;;;;;;;;;;;;;:60;;;;22910:39;22933:15;22910:7;:18;22918:9;22910:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22889:7;:18;22897:9;22889:18;;;;;;;;;;;;;;;:60;;;;22971:23;22983:4;22989;22971:11;:23::i;:::-;23027:9;23010:44;;23019:6;23010:44;;;23038:15;23010:44;;;;;;;;;;;;;;;;;;22533:529;;;;;;;;:::o;24051:585::-;24154:15;24171:23;24196:12;24210:23;24235:12;24251:19;24262:7;24251:10;:19::i;:::-;24153:117;;;;;;;;;;24299:28;24319:7;24299;:15;24307:6;24299:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24281:7;:15;24289:6;24281:15;;;;;;;;;;;;;;;:46;;;;24356:28;24376:7;24356;:15;24364:6;24356:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24338:7;:15;24346:6;24338:15;;;;;;;;;;;;;;;:46;;;;24416:39;24439:15;24416:7;:18;24424:9;24416:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24395:7;:18;24403:9;24395:18;;;;;;;;;;;;;;;:60;;;;24487:39;24510:15;24487:7;:18;24495:9;24487:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24466:7;:18;24474:9;24466:18;;;;;;;;;;;;;;;:60;;;;24545:23;24557:4;24563;24545:11;:23::i;:::-;24601:9;24584:44;;24593:6;24584:44;;;24612:15;24584:44;;;;;;;;;;;;;;;;;;24051:585;;;;;;;;:::o;24648:411::-;24747:15;24764:23;24789:12;24803:23;24828:12;24844:19;24855:7;24844:10;:19::i;:::-;24746:117;;;;;;;;;;24892:7;:15;24900:6;24892:15;;;;;;;;;;;;;;;;24874:7;:15;24882:6;24874:15;;;;;;;;;;;;;;;:33;;;;24939:7;:18;24947:9;24939:18;;;;;;;;;;;;;;;;24918:7;:18;24926:9;24918:18;;;;;;;;;;;;;;;:39;;;;24968:23;24980:4;24986;24968:11;:23::i;:::-;25024:9;25007:44;;25016:6;25007:44;;;25035:15;25007:44;;;;;;;;;;;;;;;;;;24648:411;;;;;;;;:::o;26608:561::-;26658:7;26667;26687:15;26705:7;;26687:25;;26723:15;26741:7;;26723:25;;26770:9;26765:289;26789:9;:16;;;;26785:1;:20;26765:289;;;26855:7;26831;:21;26839:9;26849:1;26839:12;;;;;;;;;;;;;;;;;;;;;;;;;26831:21;;;;;;;;;;;;;;;;:31;:66;;;;26890:7;26866;:21;26874:9;26884:1;26874:12;;;;;;;;;;;;;;;;;;;;;;;;;26866:21;;;;;;;;;;;;;;;;:31;26831:66;26827:97;;;26907:7;;26916;;26899:25;;;;;;;;;26827:97;26949:34;26961:7;:21;26969:9;26979:1;26969:12;;;;;;;;;;;;;;;;;;;;;;;;;26961:21;;;;;;;;;;;;;;;;26949:7;:11;;:34;;;;:::i;:::-;26939:44;;27008:34;27020:7;:21;27028:9;27038:1;27028:12;;;;;;;;;;;;;;;;;;;;;;;;;27020:21;;;;;;;;;;;;;;;;27008:7;:11;;:34;;;;:::i;:::-;26998:44;;26807:3;;;;;;;26765:289;;;;27078:20;27090:7;;27078;;:11;;:20;;;;:::i;:::-;27068:7;:30;27064:61;;;27108:7;;27117;;27100:25;;;;;;;;27064:61;27144:7;27153;27136:25;;;;;;26608:561;;;:::o;6288:278::-;6374:7;6406:1;6402;:5;6409:12;6394:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6433:9;6449:1;6445;:5;;;;;;6433:17;;6557:1;6550:8;;;6288:278;;;;;:::o;25071:147::-;25149:17;25161:4;25149:7;;:11;;:17;;;;:::i;:::-;25139:7;:27;;;;25190:20;25205:4;25190:10;;:14;;:20;;;;:::i;:::-;25177:10;:33;;;;25071:147;;:::o

Swarm Source

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