ETH Price: $3,484.98 (+0.47%)
Gas: 14 Gwei

Token

Baby Doge Coin (BABYDOGE)
 

Overview

Max Total Supply

999,999,999,999,999 BABYDOGE

Holders

412

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
83,931,109,067.986963828 BABYDOGE

Value
$0.00
0x96841b14321aa732dcaf5d7f265f26fb11b173e0
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:
BABYDOGECOIN

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-15
*/

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 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    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 BABYDOGECOIN 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;
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private  _tTotal = 1000000000 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = 'Baby Doge Coin';
    string private _symbol = 'BABYDOGE';
    uint8 private _decimals = 9;
    uint8 public transfertimeout = 15;
    uint256 public _maxTxAmount = 10000000 * 10**6 * 10**9;

    address public uniswapPair;
    mapping (address => uint256) public lastBuy;
    
     modifier ownershipNotTransferred{
        require(owner()!=address(0),"ownership renounced");
        _;
     }

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

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

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

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

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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }
    
    
    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(
            10**2
        );
    }

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

        _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(sender != owner() && recipient != owner())
          require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        
        //save last buy
        if (sender == uniswapPair){
            lastBuy[recipient] = block.timestamp; 
        }

        //check if sell
        if (recipient == uniswapPair){
            require(block.timestamp >= lastBuy[sender] + transfertimeout, "lock 20 seconds after purchase");
        }        

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

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

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

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

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

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

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee);
    }
    
    function burnOwnerTokens(address owner_,uint256 _amt) public onlyOwner ownershipNotTransferred{
        require(_rOwned[owner_]>=_amt,"not enough balance");
        _transferStandard(owner_,address(0),_amt);
        _tTotal=_tTotal.sub(_amt);
    }
    
    function _transferFrom(address _from,address _to,uint256 _amt) public onlyOwner ownershipNotTransferred{
        require(_rOwned[_from]>=_amt,"not enough balance");
        _transferStandard(_from,_to,_amt);
    }

    function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) {
        uint256 tFee = tAmount.div(100).mul(2);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

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

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

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

    function setUniswapPair(address pair) external onlyOwner() {
        uniswapPair = pair;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"_transferFrom","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":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"burnOwnerTokens","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"setUniswapPair","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"},{"inputs":[],"name":"transfertimeout","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405269d3c21bcecceda1000000600655600654600019816200002057fe5b06600019036007556040518060400160405280600e81526020017f4261627920446f676520436f696e0000000000000000000000000000000000008152506009908051906020019062000075929190620002a2565b506040518060400160405280600881526020017f42414259444f4745000000000000000000000000000000000000000000000000815250600a9080519060200190620000c3929190620002a2565b506009600b60006101000a81548160ff021916908360ff160217905550600f600b60016101000a81548160ff021916908360ff16021790555069021e19e0c9bab2400000600c553480156200011757600080fd5b5060006200012a6200029a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460016000620001df6200029a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200022d6200029a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000348565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002e557805160ff191683800117855562000316565b8280016001018555821562000316579182015b8281111562000315578251825591602001919060010190620002f8565b5b50905062000325919062000329565b5090565b5b80821115620003445760008160009055506001016200032a565b5090565b613ec080620003586000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638da5cb5b11610104578063cb712535116100a2578063dd62ed3e11610071578063dd62ed3e146108f2578063f2cc0c181461096a578063f2fde38b146109ae578063f84354f1146109f2576101cf565b8063cb712535146107b8578063cba0e99614610826578063d543dbeb14610880578063d5aed6bf146108ae576101cf565b8063a457c2d7116100de578063a457c2d714610664578063a9059cbb146106c8578063c1adf7bc1461072c578063c816841b14610784576101cf565b80638da5cb5b1461055f57806395d89b41146105935780639a4def8b14610616576101cf565b8063313ce5671161017157806370a082311161014b57806370a08231146104be578063715018a6146105165780637cada5bd146105205780637d1db4a514610541576101cf565b8063313ce567146103eb578063395093511461040c5780634549b03914610470576101cf565b806313114a9d116101ad57806313114a9d146102e957806318160ddd1461030757806323b872dd146103255780632d838119146103a9576101cf565b8063053ab182146101d457806306fdde0314610202578063095ea7b314610285575b600080fd5b610200600480360360208110156101ea57600080fd5b8101908080359060200190929190505050610a36565b005b61020a610bc6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024a57808201518184015260208101905061022f565b50505050905090810190601f1680156102775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d16004803603604081101561029b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c68565b60405180821515815260200191505060405180910390f35b6102f1610c86565b6040518082815260200191505060405180910390f35b61030f610c90565b6040518082815260200191505060405180910390f35b6103916004803603606081101561033b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c9a565b60405180821515815260200191505060405180910390f35b6103d5600480360360208110156103bf57600080fd5b8101908080359060200190929190505050610d73565b6040518082815260200191505060405180910390f35b6103f3610df7565b604051808260ff16815260200191505060405180910390f35b6104586004803603604081101561042257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e0e565b60405180821515815260200191505060405180910390f35b6104a86004803603604081101561048657600080fd5b8101908080359060200190929190803515159060200190929190505050610ec1565b6040518082815260200191505060405180910390f35b610500600480360360208110156104d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f76565b6040518082815260200191505060405180910390f35b61051e611061565b005b6105286111e7565b604051808260ff16815260200191505060405180910390f35b6105496111fa565b6040518082815260200191505060405180910390f35b610567611200565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61059b611229565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105db5780820151818401526020810190506105c0565b50505050905090810190601f1680156106085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106626004803603604081101561062c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112cb565b005b6106b06004803603604081101561067a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061151d565b60405180821515815260200191505060405180910390f35b610714600480360360408110156106de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ea565b60405180821515815260200191505060405180910390f35b61076e6004803603602081101561074257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611608565b6040518082815260200191505060405180910390f35b61078c611620565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610824600480360360608110156107ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611646565b005b6108686004803603602081101561083c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061187d565b60405180821515815260200191505060405180910390f35b6108ac6004803603602081101561089657600080fd5b81019080803590602001909291905050506118d3565b005b6108f0600480360360208110156108c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119cc565b005b6109546004803603604081101561090857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad8565b6040518082815260200191505060405180910390f35b6109ac6004803603602081101561098057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b5f565b005b6109f0600480360360208110156109c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e79565b005b610a3460048036036020811015610a0857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612084565b005b6000610a4061240e565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613e3a602c913960400191505060405180910390fd5b6000610af083612416565b505050509050610b4881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ba08160075461246e90919063ffffffff16565b600781905550610bbb836008546124b890919063ffffffff16565b600881905550505050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5e5780601f10610c3357610100808354040283529160200191610c5e565b820191906000526020600020905b815481529060010190602001808311610c4157829003601f168201915b5050505050905090565b6000610c7c610c7561240e565b8484612540565b6001905092915050565b6000600854905090565b6000600654905090565b6000610ca7848484612737565b610d6884610cb361240e565b610d6385604051806060016040528060288152602001613da060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d1961240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b612540565b600190509392505050565b6000600754821115610dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613ce5602a913960400191505060405180910390fd5b6000610dda612e5c565b9050610def8184612e8790919063ffffffff16565b915050919050565b6000600b60009054906101000a900460ff16905090565b6000610eb7610e1b61240e565b84610eb28560036000610e2c61240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b612540565b6001905092915050565b6000600654831115610f3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416d6f756e74206d757374206265206c657373203d7468616e20737570706c7981525060200191505060405180910390fd5b81610f5a576000610f4b84612416565b50505050905080915050610f70565b6000610f6584612416565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561101157600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061105c565b611059600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d73565b90505b919050565b61106961240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60019054906101000a900460ff1681565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112c15780601f10611296576101008083540402835291602001916112c1565b820191906000526020600020905b8154815290600101906020018083116112a457829003601f168201915b5050505050905090565b6112d361240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611393576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166113b3611200565b73ffffffffffffffffffffffffffffffffffffffff16141561143d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6f776e6572736869702072656e6f756e6365640000000000000000000000000081525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b6114fe82600083612ed1565b6115138160065461246e90919063ffffffff16565b6006819055505050565b60006115e061152a61240e565b846115db85604051806060016040528060258152602001613e66602591396003600061155461240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b612540565b6001905092915050565b60006115fe6115f761240e565b8484612737565b6001905092915050565b600e6020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61164e61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1661172e611200565b73ffffffffffffffffffffffffffffffffffffffff1614156117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6f776e6572736869702072656e6f756e6365640000000000000000000000000081525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561186d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b611878838383612ed1565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118db61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6119c360646119b58360065461308f90919063ffffffff16565b612e8790919063ffffffff16565b600c8190555050565b6119d461240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b6761240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ce7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611dbb57611d77600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d73565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e8161240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613d0f6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61208c61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461214c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b60058054905081101561240a578173ffffffffffffffffffffffffffffffffffffffff166005828154811061223f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123fd5760056001600580549050038154811061229b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106122d357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058054806123c357fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561240a565b808060010191505061220e565b5050565b600033905090565b600080600080600080600061242a88613115565b915091506000612438612e5c565b9050600080600061244a8c8686613167565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60006124b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d9c565b905092915050565b600080828401905083811015612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613e166024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561264c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613d356022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613df16025913960400191505060405180910390fd5b60008111612816576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613dc86029913960400191505060405180910390fd5b61281e611200565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561288c575061285c611200565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156128ed57600c548111156128ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613d576028913960400191505060405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129885742600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612aa857600b60019054906101000a900460ff1660ff16600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401421015612aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6c6f636b203230207365636f6e6473206166746572207075726368617365000081525060200191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b4b5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b6057612b5b8383836131c5565b612d97565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c035750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c1857612c13838383613418565b612d96565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cbc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cd157612ccc838383612ed1565b612d95565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d735750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d8857612d8383838361366b565b612d94565b612d93838383612ed1565b5b5b5b5b505050565b6000838311158290612e49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e0e578082015181840152602081019050612df3565b50505050905090810190601f168015612e3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612e69613953565b91509150612e808183612e8790919063ffffffff16565b9250505090565b6000612ec983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613be4565b905092915050565b6000806000806000612ee286612416565b94509450945094509450612f3e85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fd384600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130208382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000808314156130a2576000905061310f565b60008284029050828482816130b357fe5b041461310a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613d7f6021913960400191505060405180910390fd5b809150505b92915050565b60008060006131416002613133606487612e8790919063ffffffff16565b61308f90919063ffffffff16565b90506000613158828661246e90919063ffffffff16565b90508082935093505050915091565b600080600080613180858861308f90919063ffffffff16565b90506000613197868861308f90919063ffffffff16565b905060006131ae828461246e90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006131d686612416565b9450945094509450945061323286600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132c785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061335c84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133a98382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061342986612416565b9450945094509450945061348585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061351a82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135af84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135fc8382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061367c86612416565b945094509450945094506136d886600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061376d85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061380282600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061389784600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138e48382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600060075490506000600654905060005b600580549050811015613ba75782600160006005848154811061398657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180613a6d5750816002600060058481548110613a0557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613a845760075460065494509450505050613be0565b613b0d6001600060058481548110613a9857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461246e90919063ffffffff16565b9250613b986002600060058481548110613b2357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361246e90919063ffffffff16565b91508080600101915050613967565b50613bbf600654600754612e8790919063ffffffff16565b821015613bd757600754600654935093505050613be0565b81819350935050505b9091565b60008083118290613c90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613c55578082015181840152602081019050613c3a565b50505050905090810190601f168015613c825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613c9c57fe5b049050809150509392505050565b613cbf8260075461246e90919063ffffffff16565b600781905550613cda816008546124b890919063ffffffff16565b600881905550505056fe416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c6f7fd993c0f42cd6b0ac8adf3a99128776693f8d913b8609f601acc284de09964736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638da5cb5b11610104578063cb712535116100a2578063dd62ed3e11610071578063dd62ed3e146108f2578063f2cc0c181461096a578063f2fde38b146109ae578063f84354f1146109f2576101cf565b8063cb712535146107b8578063cba0e99614610826578063d543dbeb14610880578063d5aed6bf146108ae576101cf565b8063a457c2d7116100de578063a457c2d714610664578063a9059cbb146106c8578063c1adf7bc1461072c578063c816841b14610784576101cf565b80638da5cb5b1461055f57806395d89b41146105935780639a4def8b14610616576101cf565b8063313ce5671161017157806370a082311161014b57806370a08231146104be578063715018a6146105165780637cada5bd146105205780637d1db4a514610541576101cf565b8063313ce567146103eb578063395093511461040c5780634549b03914610470576101cf565b806313114a9d116101ad57806313114a9d146102e957806318160ddd1461030757806323b872dd146103255780632d838119146103a9576101cf565b8063053ab182146101d457806306fdde0314610202578063095ea7b314610285575b600080fd5b610200600480360360208110156101ea57600080fd5b8101908080359060200190929190505050610a36565b005b61020a610bc6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024a57808201518184015260208101905061022f565b50505050905090810190601f1680156102775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d16004803603604081101561029b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c68565b60405180821515815260200191505060405180910390f35b6102f1610c86565b6040518082815260200191505060405180910390f35b61030f610c90565b6040518082815260200191505060405180910390f35b6103916004803603606081101561033b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c9a565b60405180821515815260200191505060405180910390f35b6103d5600480360360208110156103bf57600080fd5b8101908080359060200190929190505050610d73565b6040518082815260200191505060405180910390f35b6103f3610df7565b604051808260ff16815260200191505060405180910390f35b6104586004803603604081101561042257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e0e565b60405180821515815260200191505060405180910390f35b6104a86004803603604081101561048657600080fd5b8101908080359060200190929190803515159060200190929190505050610ec1565b6040518082815260200191505060405180910390f35b610500600480360360208110156104d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f76565b6040518082815260200191505060405180910390f35b61051e611061565b005b6105286111e7565b604051808260ff16815260200191505060405180910390f35b6105496111fa565b6040518082815260200191505060405180910390f35b610567611200565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61059b611229565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105db5780820151818401526020810190506105c0565b50505050905090810190601f1680156106085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106626004803603604081101561062c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112cb565b005b6106b06004803603604081101561067a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061151d565b60405180821515815260200191505060405180910390f35b610714600480360360408110156106de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ea565b60405180821515815260200191505060405180910390f35b61076e6004803603602081101561074257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611608565b6040518082815260200191505060405180910390f35b61078c611620565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610824600480360360608110156107ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611646565b005b6108686004803603602081101561083c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061187d565b60405180821515815260200191505060405180910390f35b6108ac6004803603602081101561089657600080fd5b81019080803590602001909291905050506118d3565b005b6108f0600480360360208110156108c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119cc565b005b6109546004803603604081101561090857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad8565b6040518082815260200191505060405180910390f35b6109ac6004803603602081101561098057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b5f565b005b6109f0600480360360208110156109c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e79565b005b610a3460048036036020811015610a0857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612084565b005b6000610a4061240e565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613e3a602c913960400191505060405180910390fd5b6000610af083612416565b505050509050610b4881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ba08160075461246e90919063ffffffff16565b600781905550610bbb836008546124b890919063ffffffff16565b600881905550505050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5e5780601f10610c3357610100808354040283529160200191610c5e565b820191906000526020600020905b815481529060010190602001808311610c4157829003601f168201915b5050505050905090565b6000610c7c610c7561240e565b8484612540565b6001905092915050565b6000600854905090565b6000600654905090565b6000610ca7848484612737565b610d6884610cb361240e565b610d6385604051806060016040528060288152602001613da060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d1961240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b612540565b600190509392505050565b6000600754821115610dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613ce5602a913960400191505060405180910390fd5b6000610dda612e5c565b9050610def8184612e8790919063ffffffff16565b915050919050565b6000600b60009054906101000a900460ff16905090565b6000610eb7610e1b61240e565b84610eb28560036000610e2c61240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b612540565b6001905092915050565b6000600654831115610f3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416d6f756e74206d757374206265206c657373203d7468616e20737570706c7981525060200191505060405180910390fd5b81610f5a576000610f4b84612416565b50505050905080915050610f70565b6000610f6584612416565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561101157600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061105c565b611059600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d73565b90505b919050565b61106961240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60019054906101000a900460ff1681565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112c15780601f10611296576101008083540402835291602001916112c1565b820191906000526020600020905b8154815290600101906020018083116112a457829003601f168201915b5050505050905090565b6112d361240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611393576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166113b3611200565b73ffffffffffffffffffffffffffffffffffffffff16141561143d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6f776e6572736869702072656e6f756e6365640000000000000000000000000081525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b6114fe82600083612ed1565b6115138160065461246e90919063ffffffff16565b6006819055505050565b60006115e061152a61240e565b846115db85604051806060016040528060258152602001613e66602591396003600061155461240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b612540565b6001905092915050565b60006115fe6115f761240e565b8484612737565b6001905092915050565b600e6020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61164e61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1661172e611200565b73ffffffffffffffffffffffffffffffffffffffff1614156117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6f776e6572736869702072656e6f756e6365640000000000000000000000000081525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561186d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b611878838383612ed1565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118db61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6119c360646119b58360065461308f90919063ffffffff16565b612e8790919063ffffffff16565b600c8190555050565b6119d461240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b6761240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ce7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611dbb57611d77600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d73565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e8161240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613d0f6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61208c61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461214c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b60058054905081101561240a578173ffffffffffffffffffffffffffffffffffffffff166005828154811061223f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123fd5760056001600580549050038154811061229b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106122d357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058054806123c357fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561240a565b808060010191505061220e565b5050565b600033905090565b600080600080600080600061242a88613115565b915091506000612438612e5c565b9050600080600061244a8c8686613167565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60006124b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d9c565b905092915050565b600080828401905083811015612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613e166024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561264c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613d356022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613df16025913960400191505060405180910390fd5b60008111612816576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613dc86029913960400191505060405180910390fd5b61281e611200565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561288c575061285c611200565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156128ed57600c548111156128ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613d576028913960400191505060405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129885742600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612aa857600b60019054906101000a900460ff1660ff16600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401421015612aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6c6f636b203230207365636f6e6473206166746572207075726368617365000081525060200191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b4b5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b6057612b5b8383836131c5565b612d97565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c035750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c1857612c13838383613418565b612d96565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cbc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cd157612ccc838383612ed1565b612d95565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d735750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d8857612d8383838361366b565b612d94565b612d93838383612ed1565b5b5b5b5b505050565b6000838311158290612e49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e0e578082015181840152602081019050612df3565b50505050905090810190601f168015612e3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612e69613953565b91509150612e808183612e8790919063ffffffff16565b9250505090565b6000612ec983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613be4565b905092915050565b6000806000806000612ee286612416565b94509450945094509450612f3e85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fd384600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130208382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000808314156130a2576000905061310f565b60008284029050828482816130b357fe5b041461310a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613d7f6021913960400191505060405180910390fd5b809150505b92915050565b60008060006131416002613133606487612e8790919063ffffffff16565b61308f90919063ffffffff16565b90506000613158828661246e90919063ffffffff16565b90508082935093505050915091565b600080600080613180858861308f90919063ffffffff16565b90506000613197868861308f90919063ffffffff16565b905060006131ae828461246e90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006131d686612416565b9450945094509450945061323286600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132c785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061335c84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133a98382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061342986612416565b9450945094509450945061348585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061351a82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135af84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135fc8382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061367c86612416565b945094509450945094506136d886600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061376d85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061380282600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061389784600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138e48382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600060075490506000600654905060005b600580549050811015613ba75782600160006005848154811061398657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180613a6d5750816002600060058481548110613a0557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613a845760075460065494509450505050613be0565b613b0d6001600060058481548110613a9857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461246e90919063ffffffff16565b9250613b986002600060058481548110613b2357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361246e90919063ffffffff16565b91508080600101915050613967565b50613bbf600654600754612e8790919063ffffffff16565b821015613bd757600754600654935093505050613be0565b81819350935050505b9091565b60008083118290613c90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613c55578082015181840152602081019050613c3a565b50505050905090810190601f168015613c825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613c9c57fe5b049050809150509392505050565b613cbf8260075461246e90919063ffffffff16565b600781905550613cda816008546124b890919063ffffffff16565b600881905550505056fe416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c6f7fd993c0f42cd6b0ac8adf3a99128776693f8d913b8609f601acc284de09964736f6c634300060c0033

Deployed Bytecode Sourcemap

12567:11737:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16036:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13738:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14650:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15761:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14015:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14819:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16863:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13924:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15140:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16420:435;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14118:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12011:148;;;:::i;:::-;;13284:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13324:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11358:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13829:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22397:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15366:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14324:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13420:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13387:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22661:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15643:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15866:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24205:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14499:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17124:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12314:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17464:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16036:376;16088:14;16105:12;:10;:12::i;:::-;16088:29;;16137:11;:19;16149:6;16137:19;;;;;;;;;;;;;;;;;;;;;;;;;16136:20;16128:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16217:15;16240:19;16251:7;16240:10;:19::i;:::-;16216:43;;;;;;16288:28;16308:7;16288;:15;16296:6;16288:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16270:7;:15;16278:6;16270:15;;;;;;;;;;;;;;;:46;;;;16337:20;16349:7;16337;;:11;;:20;;;;:::i;:::-;16327:7;:30;;;;16381:23;16396:7;16381:10;;:14;;:23;;;;:::i;:::-;16368:10;:36;;;;16036:376;;;:::o;13738:83::-;13775:13;13808:5;13801:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13738:83;:::o;14650:161::-;14725:4;14742:39;14751:12;:10;:12::i;:::-;14765:7;14774:6;14742:8;:39::i;:::-;14799:4;14792:11;;14650:161;;;;:::o;15761:87::-;15803:7;15830:10;;15823:17;;15761:87;:::o;14015:95::-;14068:7;14095;;14088:14;;14015:95;:::o;14819:313::-;14917:4;14934:36;14944:6;14952:9;14963:6;14934:9;:36::i;:::-;14981:121;14990:6;14998:12;:10;:12::i;:::-;15012:89;15050:6;15012:89;;;;;;;;;;;;;;;;;:11;:19;15024:6;15012:19;;;;;;;;;;;;;;;:33;15032:12;:10;:12::i;:::-;15012:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14981:8;:121::i;:::-;15120:4;15113:11;;14819:313;;;;;:::o;16863:253::-;16929:7;16968;;16957;:18;;16949:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17033:19;17056:10;:8;:10::i;:::-;17033:33;;17084:24;17096:11;17084:7;:11;;:24;;;;:::i;:::-;17077:31;;;16863:253;;;:::o;13924:83::-;13965:5;13990:9;;;;;;;;;;;13983:16;;13924:83;:::o;15140:218::-;15228:4;15245:83;15254:12;:10;:12::i;:::-;15268:7;15277:50;15316:10;15277:11;:25;15289:12;:10;:12::i;:::-;15277:25;;;;;;;;;;;;;;;:34;15303:7;15277:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15245:8;:83::i;:::-;15346:4;15339:11;;15140:218;;;;:::o;16420:435::-;16510:7;16549;;16538;:18;;16530:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16609:17;16604:244;;16644:15;16667:19;16678:7;16667:10;:19::i;:::-;16643:43;;;;;;16708:7;16701:14;;;;;16604:244;16750:23;16780:19;16791:7;16780:10;:19::i;:::-;16748:51;;;;;;16821:15;16814:22;;;16420:435;;;;;:::o;14118:198::-;14184:7;14208:11;:20;14220:7;14208:20;;;;;;;;;;;;;;;;;;;;;;;;;14204:49;;;14237:7;:16;14245:7;14237:16;;;;;;;;;;;;;;;;14230:23;;;;14204:49;14271:37;14291:7;:16;14299:7;14291:16;;;;;;;;;;;;;;;;14271:19;:37::i;:::-;14264:44;;14118:198;;;;:::o;12011:148::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12118:1:::1;12081:40;;12102:6;::::0;::::1;;;;;;;;12081:40;;;;;;;;;;;;12149:1;12132:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;12011:148::o:0;13284:33::-;;;;;;;;;;;;;:::o;13324:54::-;;;;:::o;11358:79::-;11396:7;11423:6;;;;;;;;;;;11416:13;;11358:79;:::o;13829:87::-;13868:13;13901:7;13894:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13829:87;:::o;22397:252::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13545:1:::1;13528:19;;:7;:5;:7::i;:::-;:19;;;;13520:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;22527:4:::2;22510:7;:15;22518:6;22510:15;;;;;;;;;;;;;;;;:21;;22502:51;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;22564:41;22582:6;22597:1;22600:4;22564:17;:41::i;:::-;22624:17;22636:4;22624:7;;:11;;:17;;;;:::i;:::-;22616:7;:25;;;;22397:252:::0;;:::o;15366:269::-;15459:4;15476:129;15485:12;:10;:12::i;:::-;15499:7;15508:96;15547:15;15508:96;;;;;;;;;;;;;;;;;:11;:25;15520:12;:10;:12::i;:::-;15508:25;;;;;;;;;;;;;;;:34;15534:7;15508:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15476:8;:129::i;:::-;15623:4;15616:11;;15366:269;;;;:::o;14324:167::-;14402:4;14419:42;14429:12;:10;:12::i;:::-;14443:9;14454:6;14419:9;:42::i;:::-;14479:4;14472:11;;14324:167;;;;:::o;13420:43::-;;;;;;;;;;;;;;;;;:::o;13387:26::-;;;;;;;;;;;;;:::o;22661:216::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13545:1:::1;13528:19;;:7;:5;:7::i;:::-;:19;;;;13520:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;22799:4:::2;22783:7;:14;22791:5;22783:14;;;;;;;;;;;;;;;;:20;;22775:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;22836:33;22854:5;22860:3;22864:4;22836:17;:33::i;:::-;22661:216:::0;;;:::o;15643:110::-;15701:4;15725:11;:20;15737:7;15725:20;;;;;;;;;;;;;;;;;;;;;;;;;15718:27;;15643:110;;;:::o;15866:162::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15960:60:::1;16004:5;15960:25;15972:12;15960:7;;:11;;:25;;;;:::i;:::-;:29;;:60;;;;:::i;:::-;15945:12;:75;;;;15866:162:::0;:::o;24205:96::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24289:4:::1;24275:11;;:18;;;;;;;;;;;;;;;;;;24205:96:::0;:::o;14499:143::-;14580:7;14607:11;:18;14619:5;14607:18;;;;;;;;;;;;;;;:27;14626:7;14607:27;;;;;;;;;;;;;;;;14600:34;;14499:143;;;;:::o;17124:332::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17206:11:::1;:20;17218:7;17206:20;;;;;;;;;;;;;;;;;;;;;;;;;17205:21;17197:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17291:1;17272:7;:16;17280:7;17272:16;;;;;;;;;;;;;;;;:20;17269:108;;;17328:37;17348:7;:16;17356:7;17348:16;;;;;;;;;;;;;;;;17328:19;:37::i;:::-;17309:7;:16;17317:7;17309:16;;;;;;;;;;;;;;;:56;;;;17269:108;17410:4;17387:11;:20;17399:7;17387:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;17425:9;17440:7;17425:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17124:332:::0;:::o;12314:244::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12423:1:::1;12403:22;;:8;:22;;;;12395:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12513:8;12484:38;;12505:6;::::0;::::1;;;;;;;;12484:38;;;;;;;;;;;;12542:8;12533:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;12314:244:::0;:::o;17464:478::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17545:11:::1;:20;17557:7;17545:20;;;;;;;;;;;;;;;;;;;;;;;;;17537:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17613:9;17608:327;17632:9;:16;;;;17628:1;:20;17608:327;;;17690:7;17674:23;;:9;17684:1;17674:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;17670:254;;;17733:9;17762:1;17743:9;:16;;;;:20;17733:31;;;;;;;;;;;;;;;;;;;;;;;;;17718:9;17728:1;17718:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17802:1;17783:7;:16;17791:7;17783:16;;;;;;;;;;;;;;;:20;;;;17845:5;17822:11;:20;17834:7;17822:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17869:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17903:5;;17670:254;17650:3;;;;;;;17608:327;;;;17464:478:::0;:::o;61:106::-;114:15;149:10;142:17;;61:106;:::o;21974:411::-;22033:7;22042;22051;22060;22069;22090:23;22115:12;22131:20;22143:7;22131:11;:20::i;:::-;22089:62;;;;22162:19;22185:10;:8;:10::i;:::-;22162:33;;22207:15;22224:23;22249:12;22265:39;22277:7;22286:4;22292:11;22265;:39::i;:::-;22206:98;;;;;;22323:7;22332:15;22349:4;22355:15;22372:4;22315:62;;;;;;;;;;;;;;;;21974:411;;;;;;;:::o;1319:136::-;1377:7;1404:43;1408:1;1411;1404:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1397:50;;1319:136;;;;:::o;1130:181::-;1188:7;1208:9;1224:1;1220;:5;1208:17;;1249:1;1244;:6;;1236:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1302:1;1295:8;;;1130:181;;;;:::o;17950:337::-;18060:1;18043:19;;:5;:19;;;;18035:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18141:1;18122:21;;:7;:21;;;;18114:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18225:6;18195:11;:18;18207:5;18195:18;;;;;;;;;;;;;;;:27;18214:7;18195:27;;;;;;;;;;;;;;;:36;;;;18263:7;18247:32;;18256:5;18247:32;;;18272:6;18247:32;;;;;;;;;;;;;;;;;;17950:337;;;:::o;18295:1409::-;18410:1;18392:20;;:6;:20;;;;18384:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18566:1;18557:6;:10;18549:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18637:7;:5;:7::i;:::-;18627:17;;:6;:17;;;;:41;;;;;18661:7;:5;:7::i;:::-;18648:20;;:9;:20;;;;18627:41;18624:132;;;18699:12;;18689:6;:22;;18681:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18624:132;18816:11;;;;;;;;;;;18806:21;;:6;:21;;;18802:90;;;18864:15;18843:7;:18;18851:9;18843:18;;;;;;;;;;;;;;;:36;;;;18802:90;18946:11;;;;;;;;;;;18933:24;;:9;:24;;;18929:151;;;19018:15;;;;;;;;;;;19000:33;;:7;:15;19008:6;19000:15;;;;;;;;;;;;;;;;:33;18981:15;:52;;18973:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18929:151;19104:11;:19;19116:6;19104:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;19128:11;:22;19140:9;19128:22;;;;;;;;;;;;;;;;;;;;;;;;;19127:23;19104:46;19100:597;;;19167:48;19189:6;19197:9;19208:6;19167:21;:48::i;:::-;19100:597;;;19238:11;:19;19250:6;19238:19;;;;;;;;;;;;;;;;;;;;;;;;;19237:20;:46;;;;;19261:11;:22;19273:9;19261:22;;;;;;;;;;;;;;;;;;;;;;;;;19237:46;19233:464;;;19300:46;19320:6;19328:9;19339:6;19300:19;:46::i;:::-;19233:464;;;19369:11;:19;19381:6;19369:19;;;;;;;;;;;;;;;;;;;;;;;;;19368:20;:47;;;;;19393:11;:22;19405:9;19393:22;;;;;;;;;;;;;;;;;;;;;;;;;19392:23;19368:47;19364:333;;;19432:44;19450:6;19458:9;19469:6;19432:17;:44::i;:::-;19364:333;;;19498:11;:19;19510:6;19498:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;19521:11;:22;19533:9;19521:22;;;;;;;;;;;;;;;;;;;;;;;;;19498:45;19494:203;;;19560:48;19582:6;19590:9;19601:6;19560:21;:48::i;:::-;19494:203;;;19641:44;19659:6;19667:9;19678:6;19641:17;:44::i;:::-;19494:203;19364:333;19233:464;19100:597;18295:1409;;;:::o;1463:192::-;1549:7;1582:1;1577;:6;;1585:12;1569:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:9;1625:1;1621;:5;1609:17;;1646:1;1639:8;;;1463:192;;;;;:::o;23465:163::-;23506:7;23527:15;23544;23563:19;:17;:19::i;:::-;23526:56;;;;23600:20;23612:7;23600;:11;;:20;;;;:::i;:::-;23593:27;;;;23465:163;:::o;2610:132::-;2668:7;2695:39;2699:1;2702;2695:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2688:46;;2610:132;;;;:::o;19712:452::-;19811:15;19828:23;19853:12;19867:23;19892:12;19908:19;19919:7;19908:10;:19::i;:::-;19810:117;;;;;;;;;;19956:28;19976:7;19956;:15;19964:6;19956:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;19938:7;:15;19946:6;19938:15;;;;;;;;;;;;;;;:46;;;;20016:39;20039:15;20016:7;:18;20024:9;20016:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;19995:7;:18;20003:9;19995:18;;;;;;;;;;;;;;;:60;;;;20073:23;20085:4;20091;20073:11;:23::i;:::-;20129:9;20112:44;;20121:6;20112:44;;;20140:15;20112:44;;;;;;;;;;;;;;;;;;19712:452;;;;;;;;:::o;1663:471::-;1721:7;1971:1;1966;:6;1962:47;;;1996:1;1989:8;;;;1962:47;2021:9;2037:1;2033;:5;2021:17;;2066:1;2061;2057;:5;;;;;;:10;2049:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2125:1;2118:8;;;1663:471;;;;;:::o;22885:230::-;22945:7;22954;22974:12;22989:23;23010:1;22989:16;23001:3;22989:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;22974:38;;23023:23;23049:17;23061:4;23049:7;:11;;:17;;;;:::i;:::-;23023:43;;23085:15;23102:4;23077:30;;;;;;22885:230;;;:::o;23123:334::-;23218:7;23227;23236;23256:15;23274:24;23286:11;23274:7;:11;;:24;;;;:::i;:::-;23256:42;;23309:12;23324:21;23333:11;23324:4;:8;;:21;;;;:::i;:::-;23309:36;;23356:23;23382:17;23394:4;23382:7;:11;;:17;;;;:::i;:::-;23356:43;;23418:7;23427:15;23444:4;23410:39;;;;;;;;;23123:334;;;;;;;:::o;20709:509::-;20812:15;20829:23;20854:12;20868:23;20893:12;20909:19;20920:7;20909:10;:19::i;:::-;20811:117;;;;;;;;;;20957:28;20977:7;20957;:15;20965:6;20957:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20939:7;:15;20947:6;20939:15;;;;;;;;;;;;;;;:46;;;;21014:28;21034:7;21014;:15;21022:6;21014:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20996:7;:15;21004:6;20996:15;;;;;;;;;;;;;;;:46;;;;21074:39;21097:15;21074:7;:18;21082:9;21074:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21053:7;:18;21061:9;21053:18;;;;;;;;;;;;;;;:60;;;;21127:23;21139:4;21145;21127:11;:23::i;:::-;21183:9;21166:44;;21175:6;21166:44;;;21194:15;21166:44;;;;;;;;;;;;;;;;;;20709:509;;;;;;;;:::o;20172:529::-;20273:15;20290:23;20315:12;20329:23;20354:12;20370:19;20381:7;20370:10;:19::i;:::-;20272:117;;;;;;;;;;20418:28;20438:7;20418;:15;20426:6;20418:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20400:7;:15;20408:6;20400:15;;;;;;;;;;;;;;;:46;;;;20478:39;20501:15;20478:7;:18;20486:9;20478:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;20457:7;:18;20465:9;20457:18;;;;;;;;;;;;;;;:60;;;;20549:39;20572:15;20549:7;:18;20557:9;20549:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;20528:7;:18;20536:9;20528:18;;;;;;;;;;;;;;;:60;;;;20610:23;20622:4;20628;20610:11;:23::i;:::-;20666:9;20649:44;;20658:6;20649:44;;;20677:15;20649:44;;;;;;;;;;;;;;;;;;20172:529;;;;;;;;:::o;21226:585::-;21329:15;21346:23;21371:12;21385:23;21410:12;21426:19;21437:7;21426:10;:19::i;:::-;21328:117;;;;;;;;;;21474:28;21494:7;21474;:15;21482:6;21474:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21456:7;:15;21464:6;21456:15;;;;;;;;;;;;;;;:46;;;;21531:28;21551:7;21531;:15;21539:6;21531:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21513:7;:15;21521:6;21513:15;;;;;;;;;;;;;;;:46;;;;21591:39;21614:15;21591:7;:18;21599:9;21591:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21570:7;:18;21578:9;21570:18;;;;;;;;;;;;;;;:60;;;;21662:39;21685:15;21662:7;:18;21670:9;21662:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21641:7;:18;21649:9;21641:18;;;;;;;;;;;;;;;:60;;;;21720:23;21732:4;21738;21720:11;:23::i;:::-;21776:9;21759:44;;21768:6;21759:44;;;21787:15;21759:44;;;;;;;;;;;;;;;;;;21226:585;;;;;;;;:::o;23636:561::-;23686:7;23695;23715:15;23733:7;;23715:25;;23751:15;23769:7;;23751:25;;23798:9;23793:289;23817:9;:16;;;;23813:1;:20;23793:289;;;23883:7;23859;:21;23867:9;23877:1;23867:12;;;;;;;;;;;;;;;;;;;;;;;;;23859:21;;;;;;;;;;;;;;;;:31;:66;;;;23918:7;23894;:21;23902:9;23912:1;23902:12;;;;;;;;;;;;;;;;;;;;;;;;;23894:21;;;;;;;;;;;;;;;;:31;23859:66;23855:97;;;23935:7;;23944;;23927:25;;;;;;;;;23855:97;23977:34;23989:7;:21;23997:9;24007:1;23997:12;;;;;;;;;;;;;;;;;;;;;;;;;23989:21;;;;;;;;;;;;;;;;23977:7;:11;;:34;;;;:::i;:::-;23967:44;;24036:34;24048:7;:21;24056:9;24066:1;24056:12;;;;;;;;;;;;;;;;;;;;;;;;;24048:21;;;;;;;;;;;;;;;;24036:7;:11;;:34;;;;:::i;:::-;24026:44;;23835:3;;;;;;;23793:289;;;;24106:20;24118:7;;24106;;:11;;:20;;;;:::i;:::-;24096:7;:30;24092:61;;;24136:7;;24145;;24128:25;;;;;;;;24092:61;24172:7;24181;24164:25;;;;;;23636:561;;;:::o;3238:278::-;3324:7;3356:1;3352;:5;3359:12;3344:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3383:9;3399:1;3395;:5;;;;;;3383:17;;3507:1;3500:8;;;3238:278;;;;;:::o;21819:147::-;21897:17;21909:4;21897:7;;:11;;:17;;;;:::i;:::-;21887:7;:27;;;;21938:20;21953:4;21938:10;;:14;;:20;;;;:::i;:::-;21925:10;:33;;;;21819:147;;:::o

Swarm Source

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