ETH Price: $3,166.04 (+2.76%)

Token

SkyRocket (ROCKET)
 

Overview

Max Total Supply

1,000,000,000 ROCKET

Holders

128

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 ROCKET

Value
$0.00
0xc30d8c1ea76e09afb03bebe7f37b5036e20de1a7
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:
ROCKET

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 2 of 4: EverMoon.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.19;

// https://t.me/SkyRocketERC


import {IERC20} from "IERC20.sol";
import {Ownable} from "Ownable.sol";

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address UNISWAP_V2_PAIR);
}

contract ROCKET is IERC20, Ownable {
    /* -------------------------------------------------------------------------- */
    /*                                   events                                   */
    /* -------------------------------------------------------------------------- */
    event Reflect(uint256 amountReflected, uint256 newTotalProportion);

    /* -------------------------------------------------------------------------- */
    /*                                  constants                                 */
    /* -------------------------------------------------------------------------- */
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    uint256 constant MAX_FEE = 10;

    /* -------------------------------------------------------------------------- */
    /*                                   states                                   */
    /* -------------------------------------------------------------------------- */
    IUniswapV2Router02 public constant UNISWAP_V2_ROUTER =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable UNISWAP_V2_PAIR;

    struct Fee {
        uint8 reflection;
        uint8 marketing;
        uint8 lp;
        uint8 buyback;
        uint8 burn;
        uint128 total;
    }

    string _name = "SkyRocket";
    string _symbol = "ROCKET";

    uint256 _totalSupply = 1_000_000_000 ether;
    uint256 public _maxTxAmount = _totalSupply * 2 / 100;

    /* rOwned = ratio of tokens owned relative to circulating supply (NOT total supply, since circulating <= total) */
    mapping(address => uint256) public _rOwned;
    uint256 public _totalProportion = _totalSupply;

    mapping(address => mapping(address => uint256)) _allowances;

    bool public limitsEnabled = true;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;

    Fee public buyFee = Fee({reflection: 1, marketing: 1, lp: 1, buyback: 1, burn: 1, total: 5});
    Fee public sellFee = Fee({reflection: 1, marketing: 1, lp: 1, buyback: 1, burn: 1, total: 5});

    address private marketingFeeReceiver;
    address private lpFeeReceiver;
    address private buybackFeeReceiver;

    bool public claimingFees = true;
    uint256 public swapThreshold = (_totalSupply * 2) / 1000;
    bool inSwap;
    mapping(address => bool) public blacklists;

    /* -------------------------------------------------------------------------- */
    /*                                  modifiers                                 */
    /* -------------------------------------------------------------------------- */
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    /* -------------------------------------------------------------------------- */
    /*                                 constructor                                */
    /* -------------------------------------------------------------------------- */
    constructor() {
        // create uniswap pair
        address _uniswapPair =
            IUniswapV2Factory(UNISWAP_V2_ROUTER.factory()).createPair(address(this), UNISWAP_V2_ROUTER.WETH());
        UNISWAP_V2_PAIR = _uniswapPair;

        _allowances[address(this)][address(UNISWAP_V2_ROUTER)] = type(uint256).max;
        _allowances[address(this)][tx.origin] = type(uint256).max;

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(UNISWAP_V2_ROUTER)] = true;
        isTxLimitExempt[_uniswapPair] = true;
        isTxLimitExempt[tx.origin] = true;
        isFeeExempt[tx.origin] = true;

        marketingFeeReceiver = 0x1Cef68aDE51132d7372C9af05575CDA436b70a16;
        lpFeeReceiver = 0x1Cef68aDE51132d7372C9af05575CDA436b70a16;
        buybackFeeReceiver = 0x1Cef68aDE51132d7372C9af05575CDA436b70a16;

        _rOwned[tx.origin] = _totalSupply;
        emit Transfer(address(0), tx.origin, _totalSupply);
    }

    receive() external payable {}

    /* -------------------------------------------------------------------------- */
    /*                                    ERC20                                   */
    /* -------------------------------------------------------------------------- */
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            require(_allowances[sender][msg.sender] >= amount, "ERC20: insufficient allowance");
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    /* -------------------------------------------------------------------------- */
    /*                                    views                                   */
    /* -------------------------------------------------------------------------- */
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function decimals() external pure returns (uint8) {
        return 18;
    }

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

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

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

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

    function tokensToProportion(uint256 tokens) public view returns (uint256) {
        return tokens * _totalProportion / _totalSupply;
    }

    function tokenFromReflection(uint256 proportion) public view returns (uint256) {
        return proportion * _totalSupply / _totalProportion;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }

    /* -------------------------------------------------------------------------- */
    /*                                   owners                                   */
    /* -------------------------------------------------------------------------- */
    function clearStuckBalance() external onlyOwner {
        (bool success,) = payable(msg.sender).call{value: address(this).balance}("");
        require(success);
    }

    function clearStuckToken() external onlyOwner {
        _transferFrom(address(this), msg.sender, balanceOf(address(this)));
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        claimingFees = _enabled;
        swapThreshold = _amount;
    }

    function changeFees(
        uint8 reflectionFeeBuy,
        uint8 marketingFeeBuy,
        uint8 lpFeeBuy,
        uint8 buybackFeeBuy,
        uint8 burnFeeBuy,
        uint8 reflectionFeeSell,
        uint8 marketingFeeSell,
        uint8 lpFeeSell,
        uint8 buybackFeeSell,
        uint8 burnFeeSell
    ) external onlyOwner {
        uint128 __totalBuyFee = reflectionFeeBuy + marketingFeeBuy + lpFeeBuy + buybackFeeBuy + burnFeeBuy;
        uint128 __totalSellFee = reflectionFeeSell + marketingFeeSell + lpFeeSell + buybackFeeSell + burnFeeSell;

        require(__totalBuyFee <= MAX_FEE, "Buy fees too high");
        require(__totalSellFee <= MAX_FEE, "Sell fees too high");

        buyFee = Fee({
            reflection: reflectionFeeBuy,
            marketing: reflectionFeeBuy,
            lp: reflectionFeeBuy,
            buyback: reflectionFeeBuy,
            burn: burnFeeBuy,
            total: __totalBuyFee
        });

        sellFee = Fee({
            reflection: reflectionFeeSell,
            marketing: reflectionFeeSell,
            lp: reflectionFeeSell,
            buyback: reflectionFeeSell,
            burn: burnFeeSell,
            total: __totalSellFee
        });
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFeeReceivers(address m_, address lp_, address b_) external onlyOwner {
        marketingFeeReceiver = m_;
        lpFeeReceiver = lp_;
        buybackFeeReceiver = b_;
    }

    function setMaxTxBasisPoint(uint256 p_) external onlyOwner {
        _maxTxAmount = _totalSupply * p_ / 10000;
    }

    function setLimitsEnabled(bool e_) external onlyOwner {
        limitsEnabled = e_;
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    /* -------------------------------------------------------------------------- */
    /*                                   private                                  */
    /* -------------------------------------------------------------------------- */
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!blacklists[recipient] && !blacklists[sender], "Blacklisted");

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (limitsEnabled && !isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        }

        if (_shouldSwapBack()) {
            _swapBack();
        }

        uint256 proportionAmount = tokensToProportion(amount);
        require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
        _rOwned[sender] = _rOwned[sender] - proportionAmount;

        uint256 proportionReceived = _shouldTakeFee(sender, recipient)
            ? _takeFeeInProportions(sender == UNISWAP_V2_PAIR ? true : false, sender, proportionAmount)
            : proportionAmount;
        _rOwned[recipient] = _rOwned[recipient] + proportionReceived;

        emit Transfer(sender, recipient, tokenFromReflection(proportionReceived));
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 proportionAmount = tokensToProportion(amount);
        require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
        _rOwned[sender] = _rOwned[sender] - proportionAmount;
        _rOwned[recipient] = _rOwned[recipient] + proportionAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _takeFeeInProportions(bool buying, address sender, uint256 proportionAmount) internal returns (uint256) {
        Fee memory __buyFee = buyFee;
        Fee memory __sellFee = sellFee;

        uint256 proportionFeeAmount =
            buying == true ? proportionAmount * __buyFee.total / 100 : proportionAmount * __sellFee.total / 100;

        // reflect
        uint256 proportionReflected = buying == true
            ? proportionFeeAmount * __buyFee.reflection / __buyFee.total
            : proportionFeeAmount * __sellFee.reflection / __sellFee.total;

        _totalProportion = _totalProportion - proportionReflected;

        // take fees
        uint256 _proportionToContract = proportionFeeAmount - proportionReflected;
        if (_proportionToContract > 0) {
            _rOwned[address(this)] = _rOwned[address(this)] + _proportionToContract;

            emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract));
        }
        emit Reflect(proportionReflected, _totalProportion);
        return proportionAmount - proportionFeeAmount;
    }

    function _shouldSwapBack() internal view returns (bool) {
        return msg.sender != UNISWAP_V2_PAIR && !inSwap && claimingFees && balanceOf(address(this)) >= swapThreshold;
    }

    function _swapBack() internal swapping {
        Fee memory __sellFee = sellFee;

        uint256 __swapThreshold = swapThreshold;
        uint256 amountToBurn = __swapThreshold * __sellFee.burn / __sellFee.total;
        uint256 amountToSwap = __swapThreshold - amountToBurn;
        approve(address(UNISWAP_V2_ROUTER), amountToSwap);

        // burn
        _transferFrom(address(this), DEAD, amountToBurn);

        // swap
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = UNISWAP_V2_ROUTER.WETH();

        UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap, 0, path, address(this), block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalSwapFee = __sellFee.total - __sellFee.reflection - __sellFee.burn;
        uint256 amountETHMarketing = amountETH * __sellFee.marketing / totalSwapFee;
        uint256 amountETHLP = amountETH * __sellFee.lp / totalSwapFee;
        uint256 amountETHBuyback = amountETH * __sellFee.buyback / totalSwapFee;

        // send
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(lpFeeReceiver).call{value: amountETHLP}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}("");
    }

    function _shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }
}

File 1 of 4: Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 3 of 4: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

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

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

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

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

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

File 4 of 4: Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "Context.sol";

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        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 {
        _transferOwnership(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");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","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":"UNISWAP_V2_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAP_V2_ROUTER","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"reflectionFeeBuy","type":"uint8"},{"internalType":"uint8","name":"marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"lpFeeBuy","type":"uint8"},{"internalType":"uint8","name":"buybackFeeBuy","type":"uint8"},{"internalType":"uint8","name":"burnFeeBuy","type":"uint8"},{"internalType":"uint8","name":"reflectionFeeSell","type":"uint8"},{"internalType":"uint8","name":"marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"lpFeeSell","type":"uint8"},{"internalType":"uint8","name":"buybackFeeSell","type":"uint8"},{"internalType":"uint8","name":"burnFeeSell","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"m_","type":"address"},{"internalType":"address","name":"lp_","type":"address"},{"internalType":"address","name":"b_","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"setLimitsEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"p_","type":"uint256"}],"name":"setMaxTxBasisPoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","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"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600981526020017f536b79526f636b65740000000000000000000000000000000000000000000000815250600190816200004a919062000dac565b506040518060400160405280600681526020017f524f434b455400000000000000000000000000000000000000000000000000008152506002908162000091919062000dac565b506b033b2e3c9fd0803ce800000060035560646002600354620000b5919062000ec2565b620000c1919062000f3c565b6004556003546006556001600860006101000a81548160ff0219169083151502179055506040518060c00160405280600160ff168152602001600160ff168152602001600160ff168152602001600160ff168152602001600160ff16815260200160056fffffffffffffffffffffffffffffffff16815250600b60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506040518060c00160405280600160ff168152602001600160ff168152602001600160ff168152602001600160ff168152602001600160ff16815260200160056fffffffffffffffffffffffffffffffff16815250600c60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506001600f60146101000a81548160ff0219169083151502179055506103e860026003546200038c919062000ec2565b62000398919062000f3c565b601055348015620003a857600080fd5b50620003c9620003bd62000a6660201b60201c565b62000a6e60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000451919062000fde565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f3919062000fde565b6040518363ffffffff1660e01b81526004016200051292919062001021565b6020604051808303816000875af115801562000532573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000558919062000fde565b90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550731cef68ade51132d7372c9af05575cda436b70a16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731cef68ade51132d7372c9af05575cda436b70a16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731cef68ade51132d7372c9af05575cda436b70a16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a5791906200105f565b60405180910390a3506200107c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000bb457607f821691505b60208210810362000bca5762000bc962000b6c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bf5565b62000c40868362000bf5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c8d62000c8762000c818462000c58565b62000c62565b62000c58565b9050919050565b6000819050919050565b62000ca98362000c6c565b62000cc162000cb88262000c94565b84845462000c02565b825550505050565b600090565b62000cd862000cc9565b62000ce581848462000c9e565b505050565b5b8181101562000d0d5762000d0160008262000cce565b60018101905062000ceb565b5050565b601f82111562000d5c5762000d268162000bd0565b62000d318462000be5565b8101602085101562000d41578190505b62000d5962000d508562000be5565b83018262000cea565b50505b505050565b600082821c905092915050565b600062000d816000198460080262000d61565b1980831691505092915050565b600062000d9c838362000d6e565b9150826002028217905092915050565b62000db78262000b32565b67ffffffffffffffff81111562000dd35762000dd262000b3d565b5b62000ddf825462000b9b565b62000dec82828562000d11565b600060209050601f83116001811462000e24576000841562000e0f578287015190505b62000e1b858262000d8e565b86555062000e8b565b601f19841662000e348662000bd0565b60005b8281101562000e5e5784890151825560018201915060208501945060208101905062000e37565b8683101562000e7e578489015162000e7a601f89168262000d6e565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ecf8262000c58565b915062000edc8362000c58565b925082820262000eec8162000c58565b9150828204841483151762000f065762000f0562000e93565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f498262000c58565b915062000f568362000c58565b92508262000f695762000f6862000f0d565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000fa68262000f79565b9050919050565b62000fb88162000f99565b811462000fc457600080fd5b50565b60008151905062000fd88162000fad565b92915050565b60006020828403121562000ff75762000ff662000f74565b5b6000620010078482850162000fc7565b91505092915050565b6200101b8162000f99565b82525050565b600060408201905062001038600083018562001010565b62001047602083018462001010565b9392505050565b620010598162000c58565b82525050565b60006020820190506200107660008301846200104e565b92915050565b608051613ac8620010a6600039600081816117b901528181611b9f01526120700152613ac86000f3fe60806040526004361061021e5760003560e01c8063571ac8b011610123578063b0f7ec38116100ab578063df20fd491161006f578063df20fd4914610802578063e186ec741461082b578063f2fde38b14610854578063f40acc3d1461087d578063f84ba65d146108a857610225565b8063b0f7ec3814610731578063c38a31de1461075c578063d7c0103214610785578063d85a2828146107ae578063dd62ed3e146107c557610225565b80637d1db4a5116100f25780637d1db4a5146106485780638da5cb5b1461067357806395d89b411461069e578063a82ed9ec146106c9578063a9059cbb146106f457610225565b8063571ac8b01461058e578063658d4b7f146105cb57806370a08231146105f4578063715018a61461063157610225565b80632b14ca56116101a6578063364333f411610175578063364333f4146104b8578063404e5129146104cf57806341aea9de146104f857806345ce536514610521578063470624021461055e57610225565b80632b14ca56146103f55780632d83811914610425578063313ce567146104625780633582ad231461048d57610225565b806316c02129116101ed57806316c02129146102fa578063178002871461033757806318160ddd1461036257806323b872dd1461038d5780632b112e49146103ca57610225565b80630445b6671461022a57806306fdde0314610255578063095ea7b3146102805780630cfc15f9146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108d1565b60405161024c9190612c15565b60405180910390f35b34801561026157600080fd5b5061026a6108d7565b6040516102779190612cc0565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a29190612d71565b610969565b6040516102b49190612dcc565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df9190612de7565b610a5b565b6040516102f19190612c15565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c9190612de7565b610a73565b60405161032e9190612dcc565b60405180910390f35b34801561034357600080fd5b5061034c610a93565b6040516103599190612c15565b60405180910390f35b34801561036e57600080fd5b50610377610a99565b6040516103849190612c15565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af9190612e14565b610aa3565b6040516103c19190612dcc565b60405180910390f35b3480156103d657600080fd5b506103df610d24565b6040516103ec9190612c15565b60405180910390f35b34801561040157600080fd5b5061040a610d57565b60405161041c96959493929190612eae565b60405180910390f35b34801561043157600080fd5b5061044c60048036038101906104479190612f0f565b610dde565b6040516104599190612c15565b60405180910390f35b34801561046e57600080fd5b50610477610e02565b6040516104849190612f3c565b60405180910390f35b34801561049957600080fd5b506104a2610e0b565b6040516104af9190612dcc565b60405180910390f35b3480156104c457600080fd5b506104cd610e1e565b005b3480156104db57600080fd5b506104f660048036038101906104f19190612f83565b610e9f565b005b34801561050457600080fd5b5061051f600480360381019061051a9190612fc3565b610f02565b005b34801561052d57600080fd5b5061054860048036038101906105439190612f0f565b610f27565b6040516105559190612c15565b60405180910390f35b34801561056a57600080fd5b50610573610f4b565b60405161058596959493929190612eae565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190612de7565b610fd2565b6040516105c29190612dcc565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190612f83565b611005565b005b34801561060057600080fd5b5061061b60048036038101906106169190612de7565b611068565b6040516106289190612c15565b60405180910390f35b34801561063d57600080fd5b506106466110b9565b005b34801561065457600080fd5b5061065d6110cd565b60405161066a9190612c15565b60405180910390f35b34801561067f57600080fd5b506106886110d3565b6040516106959190612fff565b60405180910390f35b3480156106aa57600080fd5b506106b36110fc565b6040516106c09190612cc0565b60405180910390f35b3480156106d557600080fd5b506106de61118e565b6040516106eb9190613079565b60405180910390f35b34801561070057600080fd5b5061071b60048036038101906107169190612d71565b6111a6565b6040516107289190612dcc565b60405180910390f35b34801561073d57600080fd5b506107466111bb565b6040516107539190612dcc565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e91906130c0565b6111ce565b005b34801561079157600080fd5b506107ac60048036038101906107a7919061319f565b611566565b005b3480156107ba57600080fd5b506107c3611636565b005b3480156107d157600080fd5b506107ec60048036038101906107e791906131f2565b611654565b6040516107f99190612c15565b60405180910390f35b34801561080e57600080fd5b5061082960048036038101906108249190613232565b6116db565b005b34801561083757600080fd5b50610852600480360381019061084d9190612f0f565b611708565b005b34801561086057600080fd5b5061087b60048036038101906108769190612de7565b611734565b005b34801561088957600080fd5b506108926117b7565b60405161089f9190612fff565b60405180910390f35b3480156108b457600080fd5b506108cf60048036038101906108ca9190612f83565b6117db565b005b60105481565b6060600180546108e6906132a1565b80601f0160208091040260200160405190810160405280929190818152602001828054610912906132a1565b801561095f5780601f106109345761010080835404028352916020019161095f565b820191906000526020600020905b81548152906001019060200180831161094257829003601f168201915b5050505050905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a499190612c15565b60405180910390a36001905092915050565b60056020528060005260406000206000915090505481565b60126020528060005260406000206000915054906101000a900460ff1681565b60065481565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d105781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe9061331e565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c8f919061336d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d1b84848461183e565b90509392505050565b6000610d306000611068565b610d3b61dead611068565b600354610d48919061336d565b610d52919061336d565b905090565b600c8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b600060065460035483610df191906133a1565b610dfb9190613412565b9050919050565b60006012905090565b600860009054906101000a900460ff1681565b610e26611d0d565b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610e4c90613474565b60006040518083038185875af1925050503d8060008114610e89576040519150601f19603f3d011682016040523d82523d6000602084013e610e8e565b606091505b5050905080610e9c57600080fd5b50565b610ea7611d0d565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610f0a611d0d565b80600860006101000a81548160ff02191690831515021790555050565b600060035460065483610f3a91906133a1565b610f449190613412565b9050919050565b600b8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b6000610ffe827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610969565b9050919050565b61100d611d0d565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006110b2600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dde565b9050919050565b6110c1611d0d565b6110cb6000611d8b565b565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461110b906132a1565b80601f0160208091040260200160405190810160405280929190818152602001828054611137906132a1565b80156111845780601f1061115957610100808354040283529160200191611184565b820191906000526020600020905b81548152906001019060200180831161116757829003601f168201915b5050505050905090565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60006111b333848461183e565b905092915050565b600f60149054906101000a900460ff1681565b6111d6611d0d565b600086888a8c8e6111e79190613489565b6111f19190613489565b6111fb9190613489565b6112059190613489565b60ff1690506000828486888a61121b9190613489565b6112259190613489565b61122f9190613489565b6112399190613489565b60ff169050600a826fffffffffffffffffffffffffffffffff161115611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b9061350a565b60405180910390fd5b600a816fffffffffffffffffffffffffffffffff1611156112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e190613576565b60405180910390fd5b6040518060c001604052808d60ff1681526020018d60ff1681526020018d60ff1681526020018d60ff1681526020018960ff168152602001836fffffffffffffffffffffffffffffffff16815250600b60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506040518060c001604052808860ff1681526020018860ff1681526020018860ff1681526020018860ff1681526020018460ff168152602001826fffffffffffffffffffffffffffffffff16815250600c60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050505050505050505050505050565b61156e611d0d565b82600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61163e611d0d565b611651303361164c30611068565b61183e565b50565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116e3611d0d565b81600f60146101000a81548160ff021916908315150217905550806010819055505050565b611710611d0d565b6127108160035461172191906133a1565b61172b9190613412565b60048190555050565b61173c611d0d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290613608565b60405180910390fd5b6117b481611d8b565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6117e3611d0d565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118e45750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613674565b60405180910390fd5b601160009054906101000a900460ff161561194a57611943848484611e4f565b9050611d06565b600860009054906101000a900460ff1680156119b05750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a065750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a5157600454821115611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4790613706565b60405180910390fd5b5b611a5961206c565b15611a6757611a6661210a565b5b6000611a7283610f27565b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed90613772565b60405180910390fd5b80600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b41919061336d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611b9086866126ff565b611b9a5781611c02565b611c017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611bf7576000611bfa565b60015b87846127ad565b5b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4f9190613792565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cea84610dde565b604051611cf79190612c15565b60405180910390a36001925050505b9392505050565b611d15612bf4565b73ffffffffffffffffffffffffffffffffffffffff16611d336110d3565b73ffffffffffffffffffffffffffffffffffffffff1614611d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8090613812565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080611e5b83610f27565b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed690613772565b60405180910390fd5b80600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2a919061336d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb89190613792565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120589190612c15565b60405180910390a360019150509392505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120d75750601160009054906101000a900460ff16155b80156120ef5750600f60149054906101000a900460ff165b8015612105575060105461210230611068565b10155b905090565b6001601160006101000a81548160ff0219169083151502179055506000600c6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000601054905060008260a001516fffffffffffffffffffffffffffffffff16836080015160ff168361224491906133a1565b61224e9190613412565b90506000818361225e919061336d565b905061227e737a250d5630b4cf539739df2c5dacb4c659f2488d82610969565b5061228c3061dead8461183e565b506000600267ffffffffffffffff8111156122aa576122a9613832565b5b6040519080825280602002602001820160405280156122d85781602001602082028036833780820191505090505b50905030816000815181106122f0576122ef613861565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ad91906138a5565b816001815181106123c1576123c0613861565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124519594939291906139cb565b600060405180830381600087803b15801561246b57600080fd5b505af115801561247f573d6000803e3d6000fd5b5050505060004790506000866080015160ff16876000015160ff168860a001516124a99190613a25565b6124b39190613a25565b6fffffffffffffffffffffffffffffffff169050600081886020015160ff16846124dd91906133a1565b6124e79190613412565b9050600082896040015160ff16856124ff91906133a1565b6125099190613412565b90506000838a6060015160ff168661252191906133a1565b61252b9190613412565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161257590613474565b60006040518083038185875af1925050503d80600081146125b2576040519150601f19603f3d011682016040523d82523d6000602084013e6125b7565b606091505b50509050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161260190613474565b60006040518083038185875af1925050503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b505080915050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161268f90613474565b60006040518083038185875af1925050503d80600081146126cc576040519150601f19603f3d011682016040523d82523d6000602084013e6126d1565b606091505b50508091505050505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127a55750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080600b6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000600c6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600060011515871515146129c75760648260a001516fffffffffffffffffffffffffffffffff16866129b891906133a1565b6129c29190613412565b6129f6565b60648360a001516fffffffffffffffffffffffffffffffff16866129eb91906133a1565b6129f59190613412565b5b905060006001151588151514612a3f578260a001516fffffffffffffffffffffffffffffffff16836000015160ff1683612a3091906133a1565b612a3a9190613412565b612a74565b8360a001516fffffffffffffffffffffffffffffffff16846000015160ff1683612a6991906133a1565b612a739190613412565b5b905080600654612a84919061336d565b60068190555060008183612a98919061336d565b90506000811115612b9f5780600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aee9190613792565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612b8984610dde565b604051612b969190612c15565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac82600654604051612bd2929190613a69565b60405180910390a18287612be6919061336d565b955050505050509392505050565b600033905090565b6000819050919050565b612c0f81612bfc565b82525050565b6000602082019050612c2a6000830184612c06565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c6a578082015181840152602081019050612c4f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c9282612c30565b612c9c8185612c3b565b9350612cac818560208601612c4c565b612cb581612c76565b840191505092915050565b60006020820190508181036000830152612cda8184612c87565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d1282612ce7565b9050919050565b612d2281612d07565b8114612d2d57600080fd5b50565b600081359050612d3f81612d19565b92915050565b612d4e81612bfc565b8114612d5957600080fd5b50565b600081359050612d6b81612d45565b92915050565b60008060408385031215612d8857612d87612ce2565b5b6000612d9685828601612d30565b9250506020612da785828601612d5c565b9150509250929050565b60008115159050919050565b612dc681612db1565b82525050565b6000602082019050612de16000830184612dbd565b92915050565b600060208284031215612dfd57612dfc612ce2565b5b6000612e0b84828501612d30565b91505092915050565b600080600060608486031215612e2d57612e2c612ce2565b5b6000612e3b86828701612d30565b9350506020612e4c86828701612d30565b9250506040612e5d86828701612d5c565b9150509250925092565b600060ff82169050919050565b612e7d81612e67565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612ea881612e83565b82525050565b600060c082019050612ec36000830189612e74565b612ed06020830188612e74565b612edd6040830187612e74565b612eea6060830186612e74565b612ef76080830185612e74565b612f0460a0830184612e9f565b979650505050505050565b600060208284031215612f2557612f24612ce2565b5b6000612f3384828501612d5c565b91505092915050565b6000602082019050612f516000830184612e74565b92915050565b612f6081612db1565b8114612f6b57600080fd5b50565b600081359050612f7d81612f57565b92915050565b60008060408385031215612f9a57612f99612ce2565b5b6000612fa885828601612d30565b9250506020612fb985828601612f6e565b9150509250929050565b600060208284031215612fd957612fd8612ce2565b5b6000612fe784828501612f6e565b91505092915050565b612ff981612d07565b82525050565b60006020820190506130146000830184612ff0565b92915050565b6000819050919050565b600061303f61303a61303584612ce7565b61301a565b612ce7565b9050919050565b600061305182613024565b9050919050565b600061306382613046565b9050919050565b61307381613058565b82525050565b600060208201905061308e600083018461306a565b92915050565b61309d81612e67565b81146130a857600080fd5b50565b6000813590506130ba81613094565b92915050565b6000806000806000806000806000806101408b8d0312156130e4576130e3612ce2565b5b60006130f28d828e016130ab565b9a505060206131038d828e016130ab565b99505060406131148d828e016130ab565b98505060606131258d828e016130ab565b97505060806131368d828e016130ab565b96505060a06131478d828e016130ab565b95505060c06131588d828e016130ab565b94505060e06131698d828e016130ab565b93505061010061317b8d828e016130ab565b92505061012061318d8d828e016130ab565b9150509295989b9194979a5092959850565b6000806000606084860312156131b8576131b7612ce2565b5b60006131c686828701612d30565b93505060206131d786828701612d30565b92505060406131e886828701612d30565b9150509250925092565b6000806040838503121561320957613208612ce2565b5b600061321785828601612d30565b925050602061322885828601612d30565b9150509250929050565b6000806040838503121561324957613248612ce2565b5b600061325785828601612f6e565b925050602061326885828601612d5c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132b957607f821691505b6020821081036132cc576132cb613272565b5b50919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613308601d83612c3b565b9150613313826132d2565b602082019050919050565b60006020820190508181036000830152613337816132fb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061337882612bfc565b915061338383612bfc565b925082820390508181111561339b5761339a61333e565b5b92915050565b60006133ac82612bfc565b91506133b783612bfc565b92508282026133c581612bfc565b915082820484148315176133dc576133db61333e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061341d82612bfc565b915061342883612bfc565b925082613438576134376133e3565b5b828204905092915050565b600081905092915050565b50565b600061345e600083613443565b91506134698261344e565b600082019050919050565b600061347f82613451565b9150819050919050565b600061349482612e67565b915061349f83612e67565b9250828201905060ff8111156134b8576134b761333e565b5b92915050565b7f427579206665657320746f6f2068696768000000000000000000000000000000600082015250565b60006134f4601183612c3b565b91506134ff826134be565b602082019050919050565b60006020820190508181036000830152613523816134e7565b9050919050565b7f53656c6c206665657320746f6f20686967680000000000000000000000000000600082015250565b6000613560601283612c3b565b915061356b8261352a565b602082019050919050565b6000602082019050818103600083015261358f81613553565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135f2602683612c3b565b91506135fd82613596565b604082019050919050565b60006020820190508181036000830152613621816135e5565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b600061365e600b83612c3b565b915061366982613628565b602082019050919050565b6000602082019050818103600083015261368d81613651565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006136f0602883612c3b565b91506136fb82613694565b604082019050919050565b6000602082019050818103600083015261371f816136e3565b9050919050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b600061375c601483612c3b565b915061376782613726565b602082019050919050565b6000602082019050818103600083015261378b8161374f565b9050919050565b600061379d82612bfc565b91506137a883612bfc565b92508282019050808211156137c0576137bf61333e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137fc602083612c3b565b9150613807826137c6565b602082019050919050565b6000602082019050818103600083015261382b816137ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061389f81612d19565b92915050565b6000602082840312156138bb576138ba612ce2565b5b60006138c984828501613890565b91505092915050565b6000819050919050565b60006138f76138f26138ed846138d2565b61301a565b612bfc565b9050919050565b613907816138dc565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61394281612d07565b82525050565b60006139548383613939565b60208301905092915050565b6000602082019050919050565b60006139788261390d565b6139828185613918565b935061398d83613929565b8060005b838110156139be5781516139a58882613948565b97506139b083613960565b925050600181019050613991565b5085935050505092915050565b600060a0820190506139e06000830188612c06565b6139ed60208301876138fe565b81810360408301526139ff818661396d565b9050613a0e6060830185612ff0565b613a1b6080830184612c06565b9695505050505050565b6000613a3082612e83565b9150613a3b83612e83565b925082820390506fffffffffffffffffffffffffffffffff811115613a6357613a6261333e565b5b92915050565b6000604082019050613a7e6000830185612c06565b613a8b6020830184612c06565b939250505056fea26469706673582212209b9ab09b94b55c5af5cbf112123ab75fff18fbac78003fa1fa7ee3c2fef870db64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c8063571ac8b011610123578063b0f7ec38116100ab578063df20fd491161006f578063df20fd4914610802578063e186ec741461082b578063f2fde38b14610854578063f40acc3d1461087d578063f84ba65d146108a857610225565b8063b0f7ec3814610731578063c38a31de1461075c578063d7c0103214610785578063d85a2828146107ae578063dd62ed3e146107c557610225565b80637d1db4a5116100f25780637d1db4a5146106485780638da5cb5b1461067357806395d89b411461069e578063a82ed9ec146106c9578063a9059cbb146106f457610225565b8063571ac8b01461058e578063658d4b7f146105cb57806370a08231146105f4578063715018a61461063157610225565b80632b14ca56116101a6578063364333f411610175578063364333f4146104b8578063404e5129146104cf57806341aea9de146104f857806345ce536514610521578063470624021461055e57610225565b80632b14ca56146103f55780632d83811914610425578063313ce567146104625780633582ad231461048d57610225565b806316c02129116101ed57806316c02129146102fa578063178002871461033757806318160ddd1461036257806323b872dd1461038d5780632b112e49146103ca57610225565b80630445b6671461022a57806306fdde0314610255578063095ea7b3146102805780630cfc15f9146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108d1565b60405161024c9190612c15565b60405180910390f35b34801561026157600080fd5b5061026a6108d7565b6040516102779190612cc0565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a29190612d71565b610969565b6040516102b49190612dcc565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df9190612de7565b610a5b565b6040516102f19190612c15565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c9190612de7565b610a73565b60405161032e9190612dcc565b60405180910390f35b34801561034357600080fd5b5061034c610a93565b6040516103599190612c15565b60405180910390f35b34801561036e57600080fd5b50610377610a99565b6040516103849190612c15565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af9190612e14565b610aa3565b6040516103c19190612dcc565b60405180910390f35b3480156103d657600080fd5b506103df610d24565b6040516103ec9190612c15565b60405180910390f35b34801561040157600080fd5b5061040a610d57565b60405161041c96959493929190612eae565b60405180910390f35b34801561043157600080fd5b5061044c60048036038101906104479190612f0f565b610dde565b6040516104599190612c15565b60405180910390f35b34801561046e57600080fd5b50610477610e02565b6040516104849190612f3c565b60405180910390f35b34801561049957600080fd5b506104a2610e0b565b6040516104af9190612dcc565b60405180910390f35b3480156104c457600080fd5b506104cd610e1e565b005b3480156104db57600080fd5b506104f660048036038101906104f19190612f83565b610e9f565b005b34801561050457600080fd5b5061051f600480360381019061051a9190612fc3565b610f02565b005b34801561052d57600080fd5b5061054860048036038101906105439190612f0f565b610f27565b6040516105559190612c15565b60405180910390f35b34801561056a57600080fd5b50610573610f4b565b60405161058596959493929190612eae565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190612de7565b610fd2565b6040516105c29190612dcc565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190612f83565b611005565b005b34801561060057600080fd5b5061061b60048036038101906106169190612de7565b611068565b6040516106289190612c15565b60405180910390f35b34801561063d57600080fd5b506106466110b9565b005b34801561065457600080fd5b5061065d6110cd565b60405161066a9190612c15565b60405180910390f35b34801561067f57600080fd5b506106886110d3565b6040516106959190612fff565b60405180910390f35b3480156106aa57600080fd5b506106b36110fc565b6040516106c09190612cc0565b60405180910390f35b3480156106d557600080fd5b506106de61118e565b6040516106eb9190613079565b60405180910390f35b34801561070057600080fd5b5061071b60048036038101906107169190612d71565b6111a6565b6040516107289190612dcc565b60405180910390f35b34801561073d57600080fd5b506107466111bb565b6040516107539190612dcc565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e91906130c0565b6111ce565b005b34801561079157600080fd5b506107ac60048036038101906107a7919061319f565b611566565b005b3480156107ba57600080fd5b506107c3611636565b005b3480156107d157600080fd5b506107ec60048036038101906107e791906131f2565b611654565b6040516107f99190612c15565b60405180910390f35b34801561080e57600080fd5b5061082960048036038101906108249190613232565b6116db565b005b34801561083757600080fd5b50610852600480360381019061084d9190612f0f565b611708565b005b34801561086057600080fd5b5061087b60048036038101906108769190612de7565b611734565b005b34801561088957600080fd5b506108926117b7565b60405161089f9190612fff565b60405180910390f35b3480156108b457600080fd5b506108cf60048036038101906108ca9190612f83565b6117db565b005b60105481565b6060600180546108e6906132a1565b80601f0160208091040260200160405190810160405280929190818152602001828054610912906132a1565b801561095f5780601f106109345761010080835404028352916020019161095f565b820191906000526020600020905b81548152906001019060200180831161094257829003601f168201915b5050505050905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a499190612c15565b60405180910390a36001905092915050565b60056020528060005260406000206000915090505481565b60126020528060005260406000206000915054906101000a900460ff1681565b60065481565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d105781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe9061331e565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c8f919061336d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d1b84848461183e565b90509392505050565b6000610d306000611068565b610d3b61dead611068565b600354610d48919061336d565b610d52919061336d565b905090565b600c8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b600060065460035483610df191906133a1565b610dfb9190613412565b9050919050565b60006012905090565b600860009054906101000a900460ff1681565b610e26611d0d565b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610e4c90613474565b60006040518083038185875af1925050503d8060008114610e89576040519150601f19603f3d011682016040523d82523d6000602084013e610e8e565b606091505b5050905080610e9c57600080fd5b50565b610ea7611d0d565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610f0a611d0d565b80600860006101000a81548160ff02191690831515021790555050565b600060035460065483610f3a91906133a1565b610f449190613412565b9050919050565b600b8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b6000610ffe827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610969565b9050919050565b61100d611d0d565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006110b2600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dde565b9050919050565b6110c1611d0d565b6110cb6000611d8b565b565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461110b906132a1565b80601f0160208091040260200160405190810160405280929190818152602001828054611137906132a1565b80156111845780601f1061115957610100808354040283529160200191611184565b820191906000526020600020905b81548152906001019060200180831161116757829003601f168201915b5050505050905090565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60006111b333848461183e565b905092915050565b600f60149054906101000a900460ff1681565b6111d6611d0d565b600086888a8c8e6111e79190613489565b6111f19190613489565b6111fb9190613489565b6112059190613489565b60ff1690506000828486888a61121b9190613489565b6112259190613489565b61122f9190613489565b6112399190613489565b60ff169050600a826fffffffffffffffffffffffffffffffff161115611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b9061350a565b60405180910390fd5b600a816fffffffffffffffffffffffffffffffff1611156112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e190613576565b60405180910390fd5b6040518060c001604052808d60ff1681526020018d60ff1681526020018d60ff1681526020018d60ff1681526020018960ff168152602001836fffffffffffffffffffffffffffffffff16815250600b60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506040518060c001604052808860ff1681526020018860ff1681526020018860ff1681526020018860ff1681526020018460ff168152602001826fffffffffffffffffffffffffffffffff16815250600c60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050505050505050505050505050565b61156e611d0d565b82600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61163e611d0d565b611651303361164c30611068565b61183e565b50565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116e3611d0d565b81600f60146101000a81548160ff021916908315150217905550806010819055505050565b611710611d0d565b6127108160035461172191906133a1565b61172b9190613412565b60048190555050565b61173c611d0d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290613608565b60405180910390fd5b6117b481611d8b565b50565b7f00000000000000000000000092c84a4346da4025a168a50deed32593c55b0f3c81565b6117e3611d0d565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118e45750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613674565b60405180910390fd5b601160009054906101000a900460ff161561194a57611943848484611e4f565b9050611d06565b600860009054906101000a900460ff1680156119b05750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a065750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a5157600454821115611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4790613706565b60405180910390fd5b5b611a5961206c565b15611a6757611a6661210a565b5b6000611a7283610f27565b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed90613772565b60405180910390fd5b80600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b41919061336d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611b9086866126ff565b611b9a5781611c02565b611c017f00000000000000000000000092c84a4346da4025a168a50deed32593c55b0f3c73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611bf7576000611bfa565b60015b87846127ad565b5b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4f9190613792565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cea84610dde565b604051611cf79190612c15565b60405180910390a36001925050505b9392505050565b611d15612bf4565b73ffffffffffffffffffffffffffffffffffffffff16611d336110d3565b73ffffffffffffffffffffffffffffffffffffffff1614611d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8090613812565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080611e5b83610f27565b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed690613772565b60405180910390fd5b80600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2a919061336d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb89190613792565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120589190612c15565b60405180910390a360019150509392505050565b60007f00000000000000000000000092c84a4346da4025a168a50deed32593c55b0f3c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120d75750601160009054906101000a900460ff16155b80156120ef5750600f60149054906101000a900460ff165b8015612105575060105461210230611068565b10155b905090565b6001601160006101000a81548160ff0219169083151502179055506000600c6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000601054905060008260a001516fffffffffffffffffffffffffffffffff16836080015160ff168361224491906133a1565b61224e9190613412565b90506000818361225e919061336d565b905061227e737a250d5630b4cf539739df2c5dacb4c659f2488d82610969565b5061228c3061dead8461183e565b506000600267ffffffffffffffff8111156122aa576122a9613832565b5b6040519080825280602002602001820160405280156122d85781602001602082028036833780820191505090505b50905030816000815181106122f0576122ef613861565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ad91906138a5565b816001815181106123c1576123c0613861565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124519594939291906139cb565b600060405180830381600087803b15801561246b57600080fd5b505af115801561247f573d6000803e3d6000fd5b5050505060004790506000866080015160ff16876000015160ff168860a001516124a99190613a25565b6124b39190613a25565b6fffffffffffffffffffffffffffffffff169050600081886020015160ff16846124dd91906133a1565b6124e79190613412565b9050600082896040015160ff16856124ff91906133a1565b6125099190613412565b90506000838a6060015160ff168661252191906133a1565b61252b9190613412565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161257590613474565b60006040518083038185875af1925050503d80600081146125b2576040519150601f19603f3d011682016040523d82523d6000602084013e6125b7565b606091505b50509050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161260190613474565b60006040518083038185875af1925050503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b505080915050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161268f90613474565b60006040518083038185875af1925050503d80600081146126cc576040519150601f19603f3d011682016040523d82523d6000602084013e6126d1565b606091505b50508091505050505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127a55750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080600b6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000600c6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600060011515871515146129c75760648260a001516fffffffffffffffffffffffffffffffff16866129b891906133a1565b6129c29190613412565b6129f6565b60648360a001516fffffffffffffffffffffffffffffffff16866129eb91906133a1565b6129f59190613412565b5b905060006001151588151514612a3f578260a001516fffffffffffffffffffffffffffffffff16836000015160ff1683612a3091906133a1565b612a3a9190613412565b612a74565b8360a001516fffffffffffffffffffffffffffffffff16846000015160ff1683612a6991906133a1565b612a739190613412565b5b905080600654612a84919061336d565b60068190555060008183612a98919061336d565b90506000811115612b9f5780600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aee9190613792565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612b8984610dde565b604051612b969190612c15565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac82600654604051612bd2929190613a69565b60405180910390a18287612be6919061336d565b955050505050509392505050565b600033905090565b6000819050919050565b612c0f81612bfc565b82525050565b6000602082019050612c2a6000830184612c06565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c6a578082015181840152602081019050612c4f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c9282612c30565b612c9c8185612c3b565b9350612cac818560208601612c4c565b612cb581612c76565b840191505092915050565b60006020820190508181036000830152612cda8184612c87565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d1282612ce7565b9050919050565b612d2281612d07565b8114612d2d57600080fd5b50565b600081359050612d3f81612d19565b92915050565b612d4e81612bfc565b8114612d5957600080fd5b50565b600081359050612d6b81612d45565b92915050565b60008060408385031215612d8857612d87612ce2565b5b6000612d9685828601612d30565b9250506020612da785828601612d5c565b9150509250929050565b60008115159050919050565b612dc681612db1565b82525050565b6000602082019050612de16000830184612dbd565b92915050565b600060208284031215612dfd57612dfc612ce2565b5b6000612e0b84828501612d30565b91505092915050565b600080600060608486031215612e2d57612e2c612ce2565b5b6000612e3b86828701612d30565b9350506020612e4c86828701612d30565b9250506040612e5d86828701612d5c565b9150509250925092565b600060ff82169050919050565b612e7d81612e67565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612ea881612e83565b82525050565b600060c082019050612ec36000830189612e74565b612ed06020830188612e74565b612edd6040830187612e74565b612eea6060830186612e74565b612ef76080830185612e74565b612f0460a0830184612e9f565b979650505050505050565b600060208284031215612f2557612f24612ce2565b5b6000612f3384828501612d5c565b91505092915050565b6000602082019050612f516000830184612e74565b92915050565b612f6081612db1565b8114612f6b57600080fd5b50565b600081359050612f7d81612f57565b92915050565b60008060408385031215612f9a57612f99612ce2565b5b6000612fa885828601612d30565b9250506020612fb985828601612f6e565b9150509250929050565b600060208284031215612fd957612fd8612ce2565b5b6000612fe784828501612f6e565b91505092915050565b612ff981612d07565b82525050565b60006020820190506130146000830184612ff0565b92915050565b6000819050919050565b600061303f61303a61303584612ce7565b61301a565b612ce7565b9050919050565b600061305182613024565b9050919050565b600061306382613046565b9050919050565b61307381613058565b82525050565b600060208201905061308e600083018461306a565b92915050565b61309d81612e67565b81146130a857600080fd5b50565b6000813590506130ba81613094565b92915050565b6000806000806000806000806000806101408b8d0312156130e4576130e3612ce2565b5b60006130f28d828e016130ab565b9a505060206131038d828e016130ab565b99505060406131148d828e016130ab565b98505060606131258d828e016130ab565b97505060806131368d828e016130ab565b96505060a06131478d828e016130ab565b95505060c06131588d828e016130ab565b94505060e06131698d828e016130ab565b93505061010061317b8d828e016130ab565b92505061012061318d8d828e016130ab565b9150509295989b9194979a5092959850565b6000806000606084860312156131b8576131b7612ce2565b5b60006131c686828701612d30565b93505060206131d786828701612d30565b92505060406131e886828701612d30565b9150509250925092565b6000806040838503121561320957613208612ce2565b5b600061321785828601612d30565b925050602061322885828601612d30565b9150509250929050565b6000806040838503121561324957613248612ce2565b5b600061325785828601612f6e565b925050602061326885828601612d5c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132b957607f821691505b6020821081036132cc576132cb613272565b5b50919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613308601d83612c3b565b9150613313826132d2565b602082019050919050565b60006020820190508181036000830152613337816132fb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061337882612bfc565b915061338383612bfc565b925082820390508181111561339b5761339a61333e565b5b92915050565b60006133ac82612bfc565b91506133b783612bfc565b92508282026133c581612bfc565b915082820484148315176133dc576133db61333e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061341d82612bfc565b915061342883612bfc565b925082613438576134376133e3565b5b828204905092915050565b600081905092915050565b50565b600061345e600083613443565b91506134698261344e565b600082019050919050565b600061347f82613451565b9150819050919050565b600061349482612e67565b915061349f83612e67565b9250828201905060ff8111156134b8576134b761333e565b5b92915050565b7f427579206665657320746f6f2068696768000000000000000000000000000000600082015250565b60006134f4601183612c3b565b91506134ff826134be565b602082019050919050565b60006020820190508181036000830152613523816134e7565b9050919050565b7f53656c6c206665657320746f6f20686967680000000000000000000000000000600082015250565b6000613560601283612c3b565b915061356b8261352a565b602082019050919050565b6000602082019050818103600083015261358f81613553565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135f2602683612c3b565b91506135fd82613596565b604082019050919050565b60006020820190508181036000830152613621816135e5565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b600061365e600b83612c3b565b915061366982613628565b602082019050919050565b6000602082019050818103600083015261368d81613651565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006136f0602883612c3b565b91506136fb82613694565b604082019050919050565b6000602082019050818103600083015261371f816136e3565b9050919050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b600061375c601483612c3b565b915061376782613726565b602082019050919050565b6000602082019050818103600083015261378b8161374f565b9050919050565b600061379d82612bfc565b91506137a883612bfc565b92508282019050808211156137c0576137bf61333e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137fc602083612c3b565b9150613807826137c6565b602082019050919050565b6000602082019050818103600083015261382b816137ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061389f81612d19565b92915050565b6000602082840312156138bb576138ba612ce2565b5b60006138c984828501613890565b91505092915050565b6000819050919050565b60006138f76138f26138ed846138d2565b61301a565b612bfc565b9050919050565b613907816138dc565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61394281612d07565b82525050565b60006139548383613939565b60208301905092915050565b6000602082019050919050565b60006139788261390d565b6139828185613918565b935061398d83613929565b8060005b838110156139be5781516139a58882613948565b97506139b083613960565b925050600181019050613991565b5085935050505092915050565b600060a0820190506139e06000830188612c06565b6139ed60208301876138fe565b81810360408301526139ff818661396d565b9050613a0e6060830185612ff0565b613a1b6080830184612c06565b9695505050505050565b6000613a3082612e83565b9150613a3b83612e83565b925082820390506fffffffffffffffffffffffffffffffff811115613a6357613a6261333e565b5b92915050565b6000604082019050613a7e6000830185612c06565b613a8b6020830184612c06565b939250505056fea26469706673582212209b9ab09b94b55c5af5cbf112123ab75fff18fbac78003fa1fa7ee3c2fef870db64736f6c63430008130033

Deployed Bytecode Sourcemap

662:14003:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2996:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6352:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4965:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2349:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3075;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2397:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6164:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5469:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7124:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2741:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;6971:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6270:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2516:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7519:167;;;;;;;;;;;;;:::i;:::-;;9865:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9770:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6827:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2643:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;5183:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9203:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6534:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1822:101:3;;;;;;;;;;;;;:::i;:::-;;2171:52:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1192:85:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6441:87:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1722:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5309:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2959:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7986:1211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9457:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7692:129;;;;;;;;;;;;;:::i;:::-;;6676:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7827:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9648:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2072:198:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1853:40:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9326:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2996:56;;;;:::o;6352:83::-;6391:13;6423:5;6416:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6352:83;:::o;4965:212::-;5040:4;5091:6;5056:11;:23;5068:10;5056:23;;;;;;;;;;;;;;;:32;5080:7;5056:32;;;;;;;;;;;;;;;:41;;;;5133:7;5112:37;;5121:10;5112:37;;;5142:6;5112:37;;;;;;:::i;:::-;;;;;;;;5166:4;5159:11;;4965:212;;;;:::o;2349:42::-;;;;;;;;;;;;;;;;;:::o;3075:::-;;;;;;;;;;;;;;;;;;;;;;:::o;2397:46::-;;;;:::o;6164:100::-;6219:7;6245:12;;6238:19;;6164:100;:::o;5469:434::-;5569:4;5624:17;5589:11;:19;5601:6;5589:19;;;;;;;;;;;;;;;:31;5609:10;5589:31;;;;;;;;;;;;;;;;:52;5585:254;;5700:6;5665:11;:19;5677:6;5665:19;;;;;;;;;;;;;;;:31;5685:10;5665:31;;;;;;;;;;;;;;;;:41;;5657:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5822:6;5788:11;:19;5800:6;5788:19;;;;;;;;;;;;;;;:31;5808:10;5788:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;5754:11;:19;5766:6;5754:19;;;;;;;;;;;;;;;:31;5774:10;5754:31;;;;;;;;;;;;;;;:74;;;;5585:254;5856:40;5870:6;5878:9;5889:6;5856:13;:40::i;:::-;5849:47;;5469:434;;;;;:::o;7124:134::-;7177:7;7236:15;1382:42;7236:9;:15::i;:::-;7218;1310:42;7218:9;:15::i;:::-;7203:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;7196:55;;7124:134;:::o;2741:93::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6971:147::-;7041:7;7095:16;;7080:12;;7067:10;:25;;;;:::i;:::-;:44;;;;:::i;:::-;7060:51;;6971:147;;;:::o;6270:76::-;6313:5;6337:2;6330:9;;6270:76;:::o;2516:32::-;;;;;;;;;;;;;:::o;7519:167::-;1085:13:3;:11;:13::i;:::-;7578:12:1::1;7603:10;7595:24;;7627:21;7595:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7577:76;;;7671:7;7663:16;;;::::0;::::1;;7567:119;7519:167::o:0;9865:133::-;1085:13:3;:11;:13::i;:::-;9976:15:1::1;9953:10;:20;9964:8;9953:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;9865:133:::0;;:::o;9770:89::-;1085:13:3;:11;:13::i;:::-;9850:2:1::1;9834:13;;:18;;;;;;;;;;;;;;;;;;9770:89:::0;:::o;6827:138::-;6892:7;6946:12;;6927:16;;6918:6;:25;;;;:::i;:::-;:40;;;;:::i;:::-;6911:47;;6827:138;;;:::o;2643:92::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5183:120::-;5238:4;5261:35;5269:7;5278:17;5261:7;:35::i;:::-;5254:42;;5183:120;;;:::o;9203:117::-;1085:13:3;:11;:13::i;:::-;9307:6:1::1;9285:11;:19;9297:6;9285:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;9203:117:::0;;:::o;6534:136::-;6600:7;6626:37;6646:7;:16;6654:7;6646:16;;;;;;;;;;;;;;;;6626:19;:37::i;:::-;6619:44;;6534:136;;;:::o;1822:101:3:-;1085:13;:11;:13::i;:::-;1886:30:::1;1913:1;1886:18;:30::i;:::-;1822:101::o:0;2171:52:1:-;;;;:::o;1192:85:3:-;1238:7;1264:6;;;;;;;;;;;1257:13;;1192:85;:::o;6441:87:1:-;6482:13;6514:7;6507:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6441:87;:::o;1722:125::-;1804:42;1722:125;:::o;5309:154::-;5389:4;5412:44;5426:10;5438:9;5449:6;5412:13;:44::i;:::-;5405:51;;5309:154;;;;:::o;2959:31::-;;;;;;;;;;;;;:::o;7986:1211::-;1085:13:3;:11;:13::i;:::-;8330:21:1::1;8418:10;8402:13;8391:8;8373:15;8354:16;:34;;;;:::i;:::-;:45;;;;:::i;:::-;:61;;;;:::i;:::-;:74;;;;:::i;:::-;8330:98;;;;8438:22;8531:11;8514:14;8502:9;8483:16;8463:17;:36;;;;:::i;:::-;:48;;;;:::i;:::-;:65;;;;:::i;:::-;:79;;;;:::i;:::-;8438:104;;;;1458:2;8561:13;:24;;;;8553:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;1458:2;8625:14;:25;;;;8617:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8693:235;;;;;;;;8723:16;8693:235;;;;;;8764:16;8693:235;;;;;;8798:16;8693:235;;;;;;8837:16;8693:235;;;;;;8873:10;8693:235;;;;;;8904:13;8693:235;;;;::::0;8684:6:::1;:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8949:241;;;;;;;;8979:17;8949:241;;;;;;9021:17;8949:241;;;;;;9056:17;8949:241;;;;;;9096:17;8949:241;;;;;;9133:11;8949:241;;;;;;9165:14;8949:241;;;;::::0;8939:7:::1;:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8320:877;;7986:1211:::0;;;;;;;;;;:::o;9457:185::-;1085:13:3;:11;:13::i;:::-;9571:2:1::1;9548:20;;:25;;;;;;;;;;;;;;;;;;9599:3;9583:13;;:19;;;;;;;;;;;;;;;;;;9633:2;9612:18;;:23;;;;;;;;;;;;;;;;;;9457:185:::0;;;:::o;7692:129::-;1085:13:3;:11;:13::i;:::-;7748:66:1::1;7770:4;7777:10;7789:24;7807:4;7789:9;:24::i;:::-;7748:13;:66::i;:::-;;7692:129::o:0;6676:145::-;6760:7;6786:11;:19;6798:6;6786:19;;;;;;;;;;;;;;;:28;6806:7;6786:28;;;;;;;;;;;;;;;;6779:35;;6676:145;;;;:::o;7827:153::-;1085:13:3;:11;:13::i;:::-;7932:8:1::1;7917:12;;:23;;;;;;;;;;;;;;;;;;7966:7;7950:13;:23;;;;7827:153:::0;;:::o;9648:116::-;1085:13:3;:11;:13::i;:::-;9752:5:1::1;9747:2;9732:12;;:17;;;;:::i;:::-;:25;;;;:::i;:::-;9717:12;:40;;;;9648:116:::0;:::o;2072:198:3:-;1085:13;:11;:13::i;:::-;2180:1:::1;2160:22;;:8;:22;;::::0;2152:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2235:28;2254:8;2235:18;:28::i;:::-;2072:198:::0;:::o;1853:40:1:-;;;:::o;9326:125::-;1085:13:3;:11;:13::i;:::-;9438:6:1::1;9412:15;:23;9428:6;9412:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;9326:125:::0;;:::o;10259:1123::-;10351:4;10376:10;:21;10387:9;10376:21;;;;;;;;;;;;;;;;;;;;;;;;;10375:22;:45;;;;;10402:10;:18;10413:6;10402:18;;;;;;;;;;;;;;;;;;;;;;;;;10401:19;10375:45;10367:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10451:6;;;;;;;;;;;10447:85;;;10480:41;10495:6;10503:9;10514:6;10480:14;:41::i;:::-;10473:48;;;;10447:85;10546:13;;;;;;;;;;;:41;;;;;10564:15;:23;10580:6;10564:23;;;;;;;;;;;;;;;;;;;;;;;;;10563:24;10546:41;:72;;;;;10592:15;:26;10608:9;10592:26;;;;;;;;;;;;;;;;;;;;;;;;;10591:27;10546:72;10542:178;;;10652:12;;10642:6;:22;;10634:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;10542:178;10734:17;:15;:17::i;:::-;10730:59;;;10767:11;:9;:11::i;:::-;10730:59;10799:24;10826:26;10845:6;10826:18;:26::i;:::-;10799:53;;10889:16;10870:7;:15;10878:6;10870:15;;;;;;;;;;;;;;;;:35;;10862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10976:16;10958:7;:15;10966:6;10958:15;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;10940:7;:15;10948:6;10940:15;;;;;;;;;;;;;;;:52;;;;11003:26;11032:33;11047:6;11055:9;11032:14;:33::i;:::-;:168;;11184:16;11032:168;;;11080:89;11112:15;11102:25;;:6;:25;;;:40;;11137:5;11102:40;;;11130:4;11102:40;11144:6;11152:16;11080:21;:89::i;:::-;11032:168;11003:197;;11252:18;11231:7;:18;11239:9;11231:18;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;11210:7;:18;11218:9;11210:18;;;;;;;;;;;;;;;:60;;;;11303:9;11286:68;;11295:6;11286:68;;;11314:39;11334:18;11314:19;:39::i;:::-;11286:68;;;;;;:::i;:::-;;;;;;;;11371:4;11364:11;;;;10259:1123;;;;;;:::o;1350:130:3:-;1424:12;:10;:12::i;:::-;1413:23;;:7;:5;:7::i;:::-;:23;;;1405:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1350:130::o;2424:187::-;2497:16;2516:6;;;;;;;;;;;2497:25;;2541:8;2532:6;;:17;;;;;;;;;;;;;;;;;;2595:8;2564:40;;2585:8;2564:40;;;;;;;;;;;;2487:124;2424:187;:::o;11388:448:1:-;11481:4;11497:24;11524:26;11543:6;11524:18;:26::i;:::-;11497:53;;11587:16;11568:7;:15;11576:6;11568:15;;;;;;;;;;;;;;;;:35;;11560:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11674:16;11656:7;:15;11664:6;11656:15;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;11638:7;:15;11646:6;11638:15;;;;;;;;;;;;;;;:52;;;;11742:16;11721:7;:18;11729:9;11721:18;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;11700:7;:18;11708:9;11700:18;;;;;;;;;;;;;;;:58;;;;11790:9;11773:35;;11782:6;11773:35;;;11801:6;11773:35;;;;;;:::i;:::-;;;;;;;;11825:4;11818:11;;;11388:448;;;;;:::o;12940:181::-;12990:4;13027:15;13013:29;;:10;:29;;;;:40;;;;;13047:6;;;;;;;;;;;13046:7;13013:40;:56;;;;;13057:12;;;;;;;;;;;13013:56;:101;;;;;13101:13;;13073:24;13091:4;13073:9;:24::i;:::-;:41;;13013:101;13006:108;;12940:181;:::o;13127:1371::-;3418:4;3409:6;;:13;;;;;;;;;;;;;;;;;;13176:20:::1;13199:7;13176:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;13217:23;13243:13;;13217:39;;13266:20;13324:9;:15;;;13289:50;;13307:9;:14;;;13289:32;;:15;:32;;;;:::i;:::-;:50;;;;:::i;:::-;13266:73;;13349:20;13390:12;13372:15;:30;;;;:::i;:::-;13349:53;;13412:49;1804:42;13448:12;13412:7;:49::i;:::-;;13488:48;13510:4;1310:42;13523:12;13488:13;:48::i;:::-;;13563:21;13601:1;13587:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13563:40;;13631:4;13613;13618:1;13613:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;1804:42;13656:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13646:4;13651:1;13646:7;;;;;;;;:::i;:::-;;;;;;;:34;;;;;;;;;::::0;::::1;1804:42;13691:68;;;13773:12;13787:1;13790:4;13804;13811:15;13691:145;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13847:17;13867:21;13847:41;;13899:20;13963:9;:14;;;13922:55;;13940:9;:20;;;13922:38;;:9;:15;;;:38;;;;:::i;:::-;:55;;;;:::i;:::-;13899:78;;;;13987:26;14050:12;14028:9;:19;;;14016:31;;:9;:31;;;;:::i;:::-;:46;;;;:::i;:::-;13987:75;;14072:19;14121:12;14106:9;:12;;;14094:24;;:9;:24;;;;:::i;:::-;:39;;;;:::i;:::-;14072:61;;14143:24;14202:12;14182:9;:17;;;14170:29;;:9;:29;;;;:::i;:::-;:44;;;;:::i;:::-;14143:71;;14242:15;14270:20;;;;;;;;;;;14262:34;;14304:18;14262:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14241:86;;;14361:13;;;;;;;;;;;14353:27;;14388:11;14353:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14337:67;;;;;14438:18;;;;;;;;;;;14430:32;;14470:16;14430:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14414:77;;;;;13166:1332;;;;;;;;;;;3452:5:::0;3443:6;;:14;;;;;;;;;;;;;;;;;;13127:1371::o;14504:159::-;14586:4;14610:11;:19;14622:6;14610:19;;;;;;;;;;;;;;;;;;;;;;;;;14609:20;:47;;;;;14634:11;:22;14646:9;14634:22;;;;;;;;;;;;;;;;;;;;;;;;;14633:23;14609:47;14602:54;;14504:159;;;;:::o;11842:1092::-;11946:7;11965:19;11987:6;11965:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12003:20;12026:7;12003:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12044:27;12096:4;12086:14;;:6;:14;;;:99;;12182:3;12164:9;:15;;;12145:34;;:16;:34;;;;:::i;:::-;:40;;;;:::i;:::-;12086:99;;;12139:3;12122:8;:14;;;12103:33;;:16;:33;;;;:::i;:::-;:39;;;;:::i;:::-;12086:99;12044:141;;12215:27;12255:4;12245:14;;:6;:14;;;:162;;12392:9;:15;;;12347:60;;12369:9;:20;;;12347:42;;:19;:42;;;;:::i;:::-;:60;;;;:::i;:::-;12245:162;;;12318:8;:14;;;12274:58;;12296:8;:19;;;12274:41;;:19;:41;;;;:::i;:::-;:58;;;;:::i;:::-;12245:162;12215:192;;12456:19;12437:16;;:38;;;;:::i;:::-;12418:16;:57;;;;12507:29;12561:19;12539;:41;;;;:::i;:::-;12507:73;;12618:1;12594:21;:25;12590:222;;;12685:21;12660:7;:22;12676:4;12660:22;;;;;;;;;;;;;;;;:46;;;;:::i;:::-;12635:7;:22;12651:4;12635:22;;;;;;;;;;;;;;;:71;;;;12751:4;12726:75;;12735:6;12726:75;;;12758:42;12778:21;12758:19;:42::i;:::-;12726:75;;;;;;:::i;:::-;;;;;;;;12590:222;12826:46;12834:19;12855:16;;12826:46;;;;;;;:::i;:::-;;;;;;;;12908:19;12889:16;:38;;;;:::i;:::-;12882:45;;;;;;;11842:1092;;;;;:::o;640:96:0:-;693:7;719:10;712:17;;640:96;:::o;7:77:4:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:118::-;5005:7;5045:34;5038:5;5034:46;5023:57;;4968:118;;;:::o;5092:::-;5179:24;5197:5;5179:24;:::i;:::-;5174:3;5167:37;5092:118;;:::o;5216:735::-;5429:4;5467:3;5456:9;5452:19;5444:27;;5481:67;5545:1;5534:9;5530:17;5521:6;5481:67;:::i;:::-;5558:68;5622:2;5611:9;5607:18;5598:6;5558:68;:::i;:::-;5636;5700:2;5689:9;5685:18;5676:6;5636:68;:::i;:::-;5714;5778:2;5767:9;5763:18;5754:6;5714:68;:::i;:::-;5792:69;5856:3;5845:9;5841:19;5832:6;5792:69;:::i;:::-;5871:73;5939:3;5928:9;5924:19;5915:6;5871:73;:::i;:::-;5216:735;;;;;;;;;:::o;5957:329::-;6016:6;6065:2;6053:9;6044:7;6040:23;6036:32;6033:119;;;6071:79;;:::i;:::-;6033:119;6191:1;6216:53;6261:7;6252:6;6241:9;6237:22;6216:53;:::i;:::-;6206:63;;6162:117;5957:329;;;;:::o;6292:214::-;6381:4;6419:2;6408:9;6404:18;6396:26;;6432:67;6496:1;6485:9;6481:17;6472:6;6432:67;:::i;:::-;6292:214;;;;:::o;6512:116::-;6582:21;6597:5;6582:21;:::i;:::-;6575:5;6572:32;6562:60;;6618:1;6615;6608:12;6562:60;6512:116;:::o;6634:133::-;6677:5;6715:6;6702:20;6693:29;;6731:30;6755:5;6731:30;:::i;:::-;6634:133;;;;:::o;6773:468::-;6838:6;6846;6895:2;6883:9;6874:7;6870:23;6866:32;6863:119;;;6901:79;;:::i;:::-;6863:119;7021:1;7046:53;7091:7;7082:6;7071:9;7067:22;7046:53;:::i;:::-;7036:63;;6992:117;7148:2;7174:50;7216:7;7207:6;7196:9;7192:22;7174:50;:::i;:::-;7164:60;;7119:115;6773:468;;;;;:::o;7247:323::-;7303:6;7352:2;7340:9;7331:7;7327:23;7323:32;7320:119;;;7358:79;;:::i;:::-;7320:119;7478:1;7503:50;7545:7;7536:6;7525:9;7521:22;7503:50;:::i;:::-;7493:60;;7449:114;7247:323;;;;:::o;7576:118::-;7663:24;7681:5;7663:24;:::i;:::-;7658:3;7651:37;7576:118;;:::o;7700:222::-;7793:4;7831:2;7820:9;7816:18;7808:26;;7844:71;7912:1;7901:9;7897:17;7888:6;7844:71;:::i;:::-;7700:222;;;;:::o;7928:60::-;7956:3;7977:5;7970:12;;7928:60;;;:::o;7994:142::-;8044:9;8077:53;8095:34;8104:24;8122:5;8104:24;:::i;:::-;8095:34;:::i;:::-;8077:53;:::i;:::-;8064:66;;7994:142;;;:::o;8142:126::-;8192:9;8225:37;8256:5;8225:37;:::i;:::-;8212:50;;8142:126;;;:::o;8274:151::-;8349:9;8382:37;8413:5;8382:37;:::i;:::-;8369:50;;8274:151;;;:::o;8431:181::-;8543:62;8599:5;8543:62;:::i;:::-;8538:3;8531:75;8431:181;;:::o;8618:272::-;8736:4;8774:2;8763:9;8759:18;8751:26;;8787:96;8880:1;8869:9;8865:17;8856:6;8787:96;:::i;:::-;8618:272;;;;:::o;8896:118::-;8967:22;8983:5;8967:22;:::i;:::-;8960:5;8957:33;8947:61;;9004:1;9001;8994:12;8947:61;8896:118;:::o;9020:135::-;9064:5;9102:6;9089:20;9080:29;;9118:31;9143:5;9118:31;:::i;:::-;9020:135;;;;:::o;9161:1601::-;9281:6;9289;9297;9305;9313;9321;9329;9337;9345;9353;9402:3;9390:9;9381:7;9377:23;9373:33;9370:120;;;9409:79;;:::i;:::-;9370:120;9529:1;9554:51;9597:7;9588:6;9577:9;9573:22;9554:51;:::i;:::-;9544:61;;9500:115;9654:2;9680:51;9723:7;9714:6;9703:9;9699:22;9680:51;:::i;:::-;9670:61;;9625:116;9780:2;9806:51;9849:7;9840:6;9829:9;9825:22;9806:51;:::i;:::-;9796:61;;9751:116;9906:2;9932:51;9975:7;9966:6;9955:9;9951:22;9932:51;:::i;:::-;9922:61;;9877:116;10032:3;10059:51;10102:7;10093:6;10082:9;10078:22;10059:51;:::i;:::-;10049:61;;10003:117;10159:3;10186:51;10229:7;10220:6;10209:9;10205:22;10186:51;:::i;:::-;10176:61;;10130:117;10286:3;10313:51;10356:7;10347:6;10336:9;10332:22;10313:51;:::i;:::-;10303:61;;10257:117;10413:3;10440:51;10483:7;10474:6;10463:9;10459:22;10440:51;:::i;:::-;10430:61;;10384:117;10540:3;10567:51;10610:7;10601:6;10590:9;10586:22;10567:51;:::i;:::-;10557:61;;10511:117;10667:3;10694:51;10737:7;10728:6;10717:9;10713:22;10694:51;:::i;:::-;10684:61;;10638:117;9161:1601;;;;;;;;;;;;;:::o;10768:619::-;10845:6;10853;10861;10910:2;10898:9;10889:7;10885:23;10881:32;10878:119;;;10916:79;;:::i;:::-;10878:119;11036:1;11061:53;11106:7;11097:6;11086:9;11082:22;11061:53;:::i;:::-;11051:63;;11007:117;11163:2;11189:53;11234:7;11225:6;11214:9;11210:22;11189:53;:::i;:::-;11179:63;;11134:118;11291:2;11317:53;11362:7;11353:6;11342:9;11338:22;11317:53;:::i;:::-;11307:63;;11262:118;10768:619;;;;;:::o;11393:474::-;11461:6;11469;11518:2;11506:9;11497:7;11493:23;11489:32;11486:119;;;11524:79;;:::i;:::-;11486:119;11644:1;11669:53;11714:7;11705:6;11694:9;11690:22;11669:53;:::i;:::-;11659:63;;11615:117;11771:2;11797:53;11842:7;11833:6;11822:9;11818:22;11797:53;:::i;:::-;11787:63;;11742:118;11393:474;;;;;:::o;11873:468::-;11938:6;11946;11995:2;11983:9;11974:7;11970:23;11966:32;11963:119;;;12001:79;;:::i;:::-;11963:119;12121:1;12146:50;12188:7;12179:6;12168:9;12164:22;12146:50;:::i;:::-;12136:60;;12092:114;12245:2;12271:53;12316:7;12307:6;12296:9;12292:22;12271:53;:::i;:::-;12261:63;;12216:118;11873:468;;;;;:::o;12347:180::-;12395:77;12392:1;12385:88;12492:4;12489:1;12482:15;12516:4;12513:1;12506:15;12533:320;12577:6;12614:1;12608:4;12604:12;12594:22;;12661:1;12655:4;12651:12;12682:18;12672:81;;12738:4;12730:6;12726:17;12716:27;;12672:81;12800:2;12792:6;12789:14;12769:18;12766:38;12763:84;;12819:18;;:::i;:::-;12763:84;12584:269;12533:320;;;:::o;12859:179::-;12999:31;12995:1;12987:6;12983:14;12976:55;12859:179;:::o;13044:366::-;13186:3;13207:67;13271:2;13266:3;13207:67;:::i;:::-;13200:74;;13283:93;13372:3;13283:93;:::i;:::-;13401:2;13396:3;13392:12;13385:19;;13044:366;;;:::o;13416:419::-;13582:4;13620:2;13609:9;13605:18;13597:26;;13669:9;13663:4;13659:20;13655:1;13644:9;13640:17;13633:47;13697:131;13823:4;13697:131;:::i;:::-;13689:139;;13416:419;;;:::o;13841:180::-;13889:77;13886:1;13879:88;13986:4;13983:1;13976:15;14010:4;14007:1;14000:15;14027:194;14067:4;14087:20;14105:1;14087:20;:::i;:::-;14082:25;;14121:20;14139:1;14121:20;:::i;:::-;14116:25;;14165:1;14162;14158:9;14150:17;;14189:1;14183:4;14180:11;14177:37;;;14194:18;;:::i;:::-;14177:37;14027:194;;;;:::o;14227:410::-;14267:7;14290:20;14308:1;14290:20;:::i;:::-;14285:25;;14324:20;14342:1;14324:20;:::i;:::-;14319:25;;14379:1;14376;14372:9;14401:30;14419:11;14401:30;:::i;:::-;14390:41;;14580:1;14571:7;14567:15;14564:1;14561:22;14541:1;14534:9;14514:83;14491:139;;14610:18;;:::i;:::-;14491:139;14275:362;14227:410;;;;:::o;14643:180::-;14691:77;14688:1;14681:88;14788:4;14785:1;14778:15;14812:4;14809:1;14802:15;14829:185;14869:1;14886:20;14904:1;14886:20;:::i;:::-;14881:25;;14920:20;14938:1;14920:20;:::i;:::-;14915:25;;14959:1;14949:35;;14964:18;;:::i;:::-;14949:35;15006:1;15003;14999:9;14994:14;;14829:185;;;;:::o;15020:147::-;15121:11;15158:3;15143:18;;15020:147;;;;:::o;15173:114::-;;:::o;15293:398::-;15452:3;15473:83;15554:1;15549:3;15473:83;:::i;:::-;15466:90;;15565:93;15654:3;15565:93;:::i;:::-;15683:1;15678:3;15674:11;15667:18;;15293:398;;;:::o;15697:379::-;15881:3;15903:147;16046:3;15903:147;:::i;:::-;15896:154;;16067:3;16060:10;;15697:379;;;:::o;16082:188::-;16120:3;16139:18;16155:1;16139:18;:::i;:::-;16134:23;;16171:18;16187:1;16171:18;:::i;:::-;16166:23;;16212:1;16209;16205:9;16198:16;;16235:4;16230:3;16227:13;16224:39;;;16243:18;;:::i;:::-;16224:39;16082:188;;;;:::o;16276:167::-;16416:19;16412:1;16404:6;16400:14;16393:43;16276:167;:::o;16449:366::-;16591:3;16612:67;16676:2;16671:3;16612:67;:::i;:::-;16605:74;;16688:93;16777:3;16688:93;:::i;:::-;16806:2;16801:3;16797:12;16790:19;;16449:366;;;:::o;16821:419::-;16987:4;17025:2;17014:9;17010:18;17002:26;;17074:9;17068:4;17064:20;17060:1;17049:9;17045:17;17038:47;17102:131;17228:4;17102:131;:::i;:::-;17094:139;;16821:419;;;:::o;17246:168::-;17386:20;17382:1;17374:6;17370:14;17363:44;17246:168;:::o;17420:366::-;17562:3;17583:67;17647:2;17642:3;17583:67;:::i;:::-;17576:74;;17659:93;17748:3;17659:93;:::i;:::-;17777:2;17772:3;17768:12;17761:19;;17420:366;;;:::o;17792:419::-;17958:4;17996:2;17985:9;17981:18;17973:26;;18045:9;18039:4;18035:20;18031:1;18020:9;18016:17;18009:47;18073:131;18199:4;18073:131;:::i;:::-;18065:139;;17792:419;;;:::o;18217:225::-;18357:34;18353:1;18345:6;18341:14;18334:58;18426:8;18421:2;18413:6;18409:15;18402:33;18217:225;:::o;18448:366::-;18590:3;18611:67;18675:2;18670:3;18611:67;:::i;:::-;18604:74;;18687:93;18776:3;18687:93;:::i;:::-;18805:2;18800:3;18796:12;18789:19;;18448:366;;;:::o;18820:419::-;18986:4;19024:2;19013:9;19009:18;19001:26;;19073:9;19067:4;19063:20;19059:1;19048:9;19044:17;19037:47;19101:131;19227:4;19101:131;:::i;:::-;19093:139;;18820:419;;;:::o;19245:161::-;19385:13;19381:1;19373:6;19369:14;19362:37;19245:161;:::o;19412:366::-;19554:3;19575:67;19639:2;19634:3;19575:67;:::i;:::-;19568:74;;19651:93;19740:3;19651:93;:::i;:::-;19769:2;19764:3;19760:12;19753:19;;19412:366;;;:::o;19784:419::-;19950:4;19988:2;19977:9;19973:18;19965:26;;20037:9;20031:4;20027:20;20023:1;20012:9;20008:17;20001:47;20065:131;20191:4;20065:131;:::i;:::-;20057:139;;19784:419;;;:::o;20209:227::-;20349:34;20345:1;20337:6;20333:14;20326:58;20418:10;20413:2;20405:6;20401:15;20394:35;20209:227;:::o;20442:366::-;20584:3;20605:67;20669:2;20664:3;20605:67;:::i;:::-;20598:74;;20681:93;20770:3;20681:93;:::i;:::-;20799:2;20794:3;20790:12;20783:19;;20442:366;;;:::o;20814:419::-;20980:4;21018:2;21007:9;21003:18;20995:26;;21067:9;21061:4;21057:20;21053:1;21042:9;21038:17;21031:47;21095:131;21221:4;21095:131;:::i;:::-;21087:139;;20814:419;;;:::o;21239:170::-;21379:22;21375:1;21367:6;21363:14;21356:46;21239:170;:::o;21415:366::-;21557:3;21578:67;21642:2;21637:3;21578:67;:::i;:::-;21571:74;;21654:93;21743:3;21654:93;:::i;:::-;21772:2;21767:3;21763:12;21756:19;;21415:366;;;:::o;21787:419::-;21953:4;21991:2;21980:9;21976:18;21968:26;;22040:9;22034:4;22030:20;22026:1;22015:9;22011:17;22004:47;22068:131;22194:4;22068:131;:::i;:::-;22060:139;;21787:419;;;:::o;22212:191::-;22252:3;22271:20;22289:1;22271:20;:::i;:::-;22266:25;;22305:20;22323:1;22305:20;:::i;:::-;22300:25;;22348:1;22345;22341:9;22334:16;;22369:3;22366:1;22363:10;22360:36;;;22376:18;;:::i;:::-;22360:36;22212:191;;;;:::o;22409:182::-;22549:34;22545:1;22537:6;22533:14;22526:58;22409:182;:::o;22597:366::-;22739:3;22760:67;22824:2;22819:3;22760:67;:::i;:::-;22753:74;;22836:93;22925:3;22836:93;:::i;:::-;22954:2;22949:3;22945:12;22938:19;;22597:366;;;:::o;22969:419::-;23135:4;23173:2;23162:9;23158:18;23150:26;;23222:9;23216:4;23212:20;23208:1;23197:9;23193:17;23186:47;23250:131;23376:4;23250:131;:::i;:::-;23242:139;;22969:419;;;:::o;23394:180::-;23442:77;23439:1;23432:88;23539:4;23536:1;23529:15;23563:4;23560:1;23553:15;23580:180;23628:77;23625:1;23618:88;23725:4;23722:1;23715:15;23749:4;23746:1;23739:15;23766:143;23823:5;23854:6;23848:13;23839:22;;23870:33;23897:5;23870:33;:::i;:::-;23766:143;;;;:::o;23915:351::-;23985:6;24034:2;24022:9;24013:7;24009:23;24005:32;24002:119;;;24040:79;;:::i;:::-;24002:119;24160:1;24185:64;24241:7;24232:6;24221:9;24217:22;24185:64;:::i;:::-;24175:74;;24131:128;23915:351;;;;:::o;24272:85::-;24317:7;24346:5;24335:16;;24272:85;;;:::o;24363:158::-;24421:9;24454:61;24472:42;24481:32;24507:5;24481:32;:::i;:::-;24472:42;:::i;:::-;24454:61;:::i;:::-;24441:74;;24363:158;;;:::o;24527:147::-;24622:45;24661:5;24622:45;:::i;:::-;24617:3;24610:58;24527:147;;:::o;24680:114::-;24747:6;24781:5;24775:12;24765:22;;24680:114;;;:::o;24800:184::-;24899:11;24933:6;24928:3;24921:19;24973:4;24968:3;24964:14;24949:29;;24800:184;;;;:::o;24990:132::-;25057:4;25080:3;25072:11;;25110:4;25105:3;25101:14;25093:22;;24990:132;;;:::o;25128:108::-;25205:24;25223:5;25205:24;:::i;:::-;25200:3;25193:37;25128:108;;:::o;25242:179::-;25311:10;25332:46;25374:3;25366:6;25332:46;:::i;:::-;25410:4;25405:3;25401:14;25387:28;;25242:179;;;;:::o;25427:113::-;25497:4;25529;25524:3;25520:14;25512:22;;25427:113;;;:::o;25576:732::-;25695:3;25724:54;25772:5;25724:54;:::i;:::-;25794:86;25873:6;25868:3;25794:86;:::i;:::-;25787:93;;25904:56;25954:5;25904:56;:::i;:::-;25983:7;26014:1;25999:284;26024:6;26021:1;26018:13;25999:284;;;26100:6;26094:13;26127:63;26186:3;26171:13;26127:63;:::i;:::-;26120:70;;26213:60;26266:6;26213:60;:::i;:::-;26203:70;;26059:224;26046:1;26043;26039:9;26034:14;;25999:284;;;26003:14;26299:3;26292:10;;25700:608;;;25576:732;;;;:::o;26314:831::-;26577:4;26615:3;26604:9;26600:19;26592:27;;26629:71;26697:1;26686:9;26682:17;26673:6;26629:71;:::i;:::-;26710:80;26786:2;26775:9;26771:18;26762:6;26710:80;:::i;:::-;26837:9;26831:4;26827:20;26822:2;26811:9;26807:18;26800:48;26865:108;26968:4;26959:6;26865:108;:::i;:::-;26857:116;;26983:72;27051:2;27040:9;27036:18;27027:6;26983:72;:::i;:::-;27065:73;27133:3;27122:9;27118:19;27109:6;27065:73;:::i;:::-;26314:831;;;;;;;;:::o;27151:227::-;27191:4;27211:20;27229:1;27211:20;:::i;:::-;27206:25;;27245:20;27263:1;27245:20;:::i;:::-;27240:25;;27289:1;27286;27282:9;27274:17;;27313:34;27307:4;27304:44;27301:70;;;27351:18;;:::i;:::-;27301:70;27151:227;;;;:::o;27384:332::-;27505:4;27543:2;27532:9;27528:18;27520:26;;27556:71;27624:1;27613:9;27609:17;27600:6;27556:71;:::i;:::-;27637:72;27705:2;27694:9;27690:18;27681:6;27637:72;:::i;:::-;27384:332;;;;;:::o

Swarm Source

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