ETH Price: $3,689.75 (+1.59%)
 

Overview

Max Total Supply

100,000,000 RSHIB

Holders

311

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
152.749396372041205342 RSHIB

Value
$0.00
0xe43de4f02a66c64fc99b5364ea7f54e79ba7a112
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:
RocketSHIB

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-05
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


interface IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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


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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b,
         "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by RocketSHIB zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_,uint8 decimals_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating RocketSHIB the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of RocketSHIB at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue,
         "ERC20: decreased allowance below RocketSHIB zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to RocketSHIB the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);


}

interface IUniswapV2Router02 is IUniswapV2Router01 {

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

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

}

interface IUniswapV2Factory {

    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Pair {

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint);

    function balanceOf(address owner) external view returns (uint);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

}

contract usdtReceiver {
    address public usdt;
    address public owner;
    constructor(address _u) {
        usdt = _u;
        owner = msg.sender;
        IERC20(usdt).approve(msg.sender,~uint256(0));
    }
}

contract RocketSHIB is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapPair;

    bool private swapping;

    uint256 public swapTokensAtAmount;

    uint256 public buyTokenRewardsFee;
    uint256 public sellTokenRewardsFee;

    uint256 public buyLiquidityFee;
    uint256 public sellLiquidityFee;

    uint256 public buyMarketingFee;
    uint256 public sellMarketingFee;

    uint256 public buyDeadFee;
    uint256 public sellDeadFee;

    uint256 public AmountLiquidityFee;
    uint256 public AmountTokenRewardsFee;
    uint256 public AmountMarketingFee;

    uint256 public addLiquidityFee;
    uint256 public removeLiquidityFee;

    usdtReceiver public _usdtReceiver;
    address public deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public usdtAddress;
    address public _marketingWalletAddress;
    address public rewardsAddress;
    uint256 public gasForProcessing;
    bool public swapAndLiquifyEnabled = true;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateDividendTracker(address indexed newAddress, address indexed oldAddress);

    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event LiquidityWalletUpdated(address indexed newLiquidityWallet, address indexed oldLiquidityWallet);

    event GasForProcessingUpdated(uint256 indexed newValue, uint256 indexed oldValue);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SendDividends(
        uint256 tokensSwapped,
        uint256 amount
    );

    event ProcessedDividendTracker(
        uint256 iterations,
        uint256 claims,
        uint256 lastProcessedIndex,
        bool indexed automatic,
        uint256 gas,
        address indexed processor
    );

    constructor() payable ERC20("RocketSHIB", "RSHIB",18)  {

        uint256 totalSupply = 100000000 * (10 ** 18);
        // use by default 300,000 gas to process auto-claiming dividends
        gasForProcessing = 300000;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;

        
        _mint(owner(), totalSupply);
    }
    receive() external payable {}



    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapPair, "The PancakeSwap pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value");
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }


    function updateGasForProcessing(uint256 newValue) public onlyOwner {
        require(newValue != gasForProcessing,
         "Cannot update gasForProcessing to same value");
        emit GasForProcessingUpdated(newValue, gasForProcessing);
        gasForProcessing = newValue;
    }


    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
    }


    function setSwapTokensAtAmount(uint256 amount) public onlyOwner {
        swapTokensAtAmount = amount;
    }




    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            automatedMarketMakerPairs[from] &&
            from != owner() &&
            to != owner() &&
            swapAndLiquifyEnabled
        ) {
            swapping = true;
            swapAndSendMarketing(AmountMarketingFee);
            swapAndLiquify(AmountLiquidityFee);
            swapAndSendDividends(AmountTokenRewardsFee);
            swapping = false;
        }


        bool takeFee = !swapping;

        if(takeFee) {
            uint256 fees;
            uint256 LFee; // Liquidity
            uint256 RFee; // Rewards
            uint256 MFee; // Marketing
            uint256 DFee; // Dead

            if(automatedMarketMakerPairs[from]){
                LFee = amount.mul(buyLiquidityFee).div(100);
                AmountLiquidityFee += LFee;
                RFee = amount.mul(buyTokenRewardsFee).div(100);
                AmountTokenRewardsFee += RFee;
                MFee = amount.mul(buyMarketingFee).div(100);
                AmountMarketingFee += MFee;
                DFee = amount.mul(buyDeadFee).div(100);
                fees = LFee.add(RFee).add(MFee).add(DFee);
            }else if(automatedMarketMakerPairs[to]){
                LFee = amount.mul(sellLiquidityFee).div(100);
                AmountLiquidityFee += LFee;
                RFee = amount.mul(sellTokenRewardsFee).div(100);
                AmountTokenRewardsFee += RFee;
                MFee = amount.mul(sellMarketingFee).div(100);
                AmountMarketingFee += MFee;
                DFee = amount.mul(sellDeadFee).div(100);
                fees = LFee.add(RFee).add(MFee).add(DFee);
            }


            amount = amount.sub(fees);
            if(DFee > 0) super._transfer(from, deadWallet, DFee);
            if(fees > 0) super._transfer(from, address(this), fees.sub(DFee));
        }


        super._transfer(from, to, amount);

    }



    function swapAndSendMarketing(uint256 tokens) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = usdtAddress;
        if(usdtAddress == uniswapV2Router.WETH()){
            // make the swap
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokens,
                0, // accept any amount of ETH
                path,
                _marketingWalletAddress, // The contract
                block.timestamp
            );
        }else{
            // make the swap
            uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
                tokens,
                0, // accept any amount of USDT
                path,
                _marketingWalletAddress,
                block.timestamp
            );
        }
        AmountMarketingFee = AmountMarketingFee - tokens;
    }

    function swapAndLiquify(uint256 tokens) private {
       // split the contract balance into halves
        uint256 half = tokens.div(2);
        uint256 otherHalf = tokens.sub(half);

        uint256 initialBalance = IERC20(usdtAddress).balanceOf(address(this));

        // swap tokens for ETH
        swapTokensForUsdt(half,address(this)); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = IERC20(usdtAddress).balanceOf(address(this)).sub(initialBalance);

        // add liquidity to uniswap
        addLiquidityUSDT(otherHalf, newBalance);
        AmountLiquidityFee = AmountLiquidityFee - tokens;
        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function addLiquidityUSDT(uint256 tokenAmount, uint256 USDTAmount) private {
        // approve token transfer to cover all possible scenarios
        IERC20(usdtAddress).approve(address(uniswapV2Router),USDTAmount);
        // add the liquidity
        uniswapV2Router.addLiquidity(
            address(this),
            usdtAddress,
            tokenAmount,
            USDTAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _marketingWalletAddress,
            block.timestamp
        );
    }

    function swapTokensForUsdt(uint256 tokenAmount,address addr) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = usdtAddress;
        // make the swap
        uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of USDT
            path,
            address(_usdtReceiver),
            block.timestamp
        );
        uint256 amount = IERC20(usdtAddress).balanceOf(address(_usdtReceiver));
        IERC20(usdtAddress).transferFrom(address(_usdtReceiver),addr, amount);
    }

    function swapTokensForRewards(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth -> rewards
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = usdtAddress;
        path[2] = rewardsAddress;
        // make the swap
        try
            uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
                tokenAmount,
                0, // accept any amount of USDT
                path,
                address(this),
                block.timestamp
            )
        {}catch{}

    }

    function swapAndSendDividends(uint256 tokens) private {
        // Judging whether to distribute dividends in the local currency
        if(usdtAddress == rewardsAddress){
            swapTokensForUsdt(tokens,address(this));
        }else{
            swapTokensForRewards(tokens);
        }
        AmountTokenRewardsFee = AmountTokenRewardsFee - tokens;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"}],"name":"GasForProcessingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newLiquidityWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldLiquidityWallet","type":"address"}],"name":"LiquidityWalletUpdated","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":"iterations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claims","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastProcessedIndex","type":"uint256"},{"indexed":true,"internalType":"bool","name":"automatic","type":"bool"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":true,"internalType":"address","name":"processor","type":"address"}],"name":"ProcessedDividendTracker","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SendDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateDividendTracker","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[],"name":"AmountLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AmountMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AmountTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_usdtReceiver","outputs":[{"internalType":"contract usdtReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDeadFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gasForProcessing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"removeLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDeadFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"updateGasForProcessing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdtAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601c5f6101000a81548160ff0219169083151502179055506040518060400160405280600a81526020017f526f636b657453484942000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f525348494200000000000000000000000000000000000000000000000000000081525060128260039081620000df919062000726565b508160049081620000f1919062000726565b508060055f6101000a81548160ff021916908360ff1602179055505050506200012f62000123620001c960201b60201c565b620001d060201b60201c565b5f6a52b7d2dcc80cd2e40000009050620493e0601b819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c1620001b46200029560201b60201c565b83620002be60201b60201c565b5050620009d5565b5f33905090565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000326906200088e565b60405180910390fd5b620003425f83836200045b60201b60201c565b62000359816002546200046060201b90919060201c565b600281905550620003b0815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200046060201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200044f9190620008bf565b60405180910390a35050565b505050565b5f80828462000470919062000907565b905083811015620004b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004af90620009b5565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200053e57607f821691505b602082108103620005545762000553620004f9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200057b565b620005c486836200057b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200060e620006086200060284620005dc565b620005e5565b620005dc565b9050919050565b5f819050919050565b6200062983620005ee565b62000641620006388262000615565b84845462000587565b825550505050565b5f90565b6200065762000649565b620006648184846200061e565b505050565b5b818110156200068b576200067f5f826200064d565b6001810190506200066a565b5050565b601f821115620006da57620006a4816200055a565b620006af846200056c565b81016020851015620006bf578190505b620006d7620006ce856200056c565b83018262000669565b50505b505050565b5f82821c905092915050565b5f620006fc5f1984600802620006df565b1980831691505092915050565b5f620007168383620006eb565b9150826002028217905092915050565b6200073182620004c2565b67ffffffffffffffff8111156200074d576200074c620004cc565b5b62000759825462000526565b620007668282856200068f565b5f60209050601f8311600181146200079c575f841562000787578287015190505b62000793858262000709565b86555062000802565b601f198416620007ac866200055a565b5f5b82811015620007d557848901518255600182019150602085019450602081019050620007ae565b86831015620007f55784890151620007f1601f891682620006eb565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20526f636b65745348494220746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f62000876602a836200080a565b915062000883826200081a565b604082019050919050565b5f6020820190508181035f830152620008a78162000868565b9050919050565b620008b981620005dc565b82525050565b5f602082019050620008d45f830184620008ae565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200091382620005dc565b91506200092083620005dc565b92508282019050808211156200093b576200093a620008da565b5b92915050565b7f536166654d6174683a206164646974696f6e20526f636b657453484942206f765f8201527f6572666c6f770000000000000000000000000000000000000000000000000000602082015250565b5f6200099d6026836200080a565b9150620009aa8262000941565b604082019050919050565b5f6020820190508181035f830152620009ce816200098f565b9050919050565b6140a880620009e35f395ff3fe60806040526004361061025f575f3560e01c80638de743b311610143578063bfc3137e116100b5578063dd62ed3e11610079578063dd62ed3e146108de578063e2f456051461091a578063f11a24d314610944578063f2fde38b1461096e578063f637434214610996578063f8326795146109c057610266565b8063bfc3137e1461080e578063c0973eed14610838578063c49b9a8014610862578063c816841b1461088a578063cfe0e619146108b457610266565b80639c1b8af5116101075780639c1b8af5146106de578063a457c2d714610708578063a9059cbb14610744578063afa4f3b214610780578063b340a954146107a8578063b62496f5146107d257610266565b80638de743b31461060e578063921369131461063857806395d89b41146106625780639a7a23d61461068c5780639ab4a445146106b457610266565b806339509351116101dc57806370a08231116101a057806370a0823114610516578063715018a6146105525780637bce5a041461056857806385141a7714610592578063871c128d146105bc5780638da5cb5b146105e457610266565b806339509351146104325780633b1cd1871461046e5780634144d9e4146104985780634a74bb02146104c2578063557ed1ba146104ec57610266565b806318160ddd1161022357806318160ddd1461034e57806323b872dd1461037857806324942a04146103b4578063313ce567146103de5780633926876d1461040857610266565b806302df64d61461026a57806306fdde031461029457806308b2a12c146102be578063095ea7b3146102e85780631694505e1461032457610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ea565b60405161028b9190613054565b60405180910390f35b34801561029f575f80fd5b506102a86109f0565b6040516102b591906130f7565b60405180910390f35b3480156102c9575f80fd5b506102d2610a80565b6040516102df9190613054565b60405180910390f35b3480156102f3575f80fd5b5061030e6004803603810190610309919061319f565b610a86565b60405161031b91906131f7565b60405180910390f35b34801561032f575f80fd5b50610338610aa3565b604051610345919061326b565b60405180910390f35b348015610359575f80fd5b50610362610ac8565b60405161036f9190613054565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613284565b610ad1565b6040516103ab91906131f7565b60405180910390f35b3480156103bf575f80fd5b506103c8610ba5565b6040516103d59190613054565b60405180910390f35b3480156103e9575f80fd5b506103f2610bab565b6040516103ff91906132ef565b60405180910390f35b348015610413575f80fd5b5061041c610bc0565b6040516104299190613054565b60405180910390f35b34801561043d575f80fd5b506104586004803603810190610453919061319f565b610bc6565b60405161046591906131f7565b60405180910390f35b348015610479575f80fd5b50610482610c74565b60405161048f9190613054565b60405180910390f35b3480156104a3575f80fd5b506104ac610c7a565b6040516104b99190613317565b60405180910390f35b3480156104cd575f80fd5b506104d6610c9f565b6040516104e391906131f7565b60405180910390f35b3480156104f7575f80fd5b50610500610cb1565b60405161050d9190613054565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190613330565b610cb8565b6040516105499190613054565b60405180910390f35b34801561055d575f80fd5b50610566610cfd565b005b348015610573575f80fd5b5061057c610d84565b6040516105899190613054565b60405180910390f35b34801561059d575f80fd5b506105a6610d8a565b6040516105b39190613317565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd919061335b565b610daf565b005b3480156105ef575f80fd5b506105f8610ea9565b6040516106059190613317565b60405180910390f35b348015610619575f80fd5b50610622610ed2565b60405161062f9190613054565b60405180910390f35b348015610643575f80fd5b5061064c610ed8565b6040516106599190613054565b60405180910390f35b34801561066d575f80fd5b50610676610ede565b60405161068391906130f7565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad91906133b0565b610f6e565b005b3480156106bf575f80fd5b506106c8611087565b6040516106d59190613317565b60405180910390f35b3480156106e9575f80fd5b506106f26110ac565b6040516106ff9190613054565b60405180910390f35b348015610713575f80fd5b5061072e6004803603810190610729919061319f565b6110b2565b60405161073b91906131f7565b60405180910390f35b34801561074f575f80fd5b5061076a6004803603810190610765919061319f565b61117a565b60405161077791906131f7565b60405180910390f35b34801561078b575f80fd5b506107a660048036038101906107a1919061335b565b611197565b005b3480156107b3575f80fd5b506107bc61121d565b6040516107c9919061340e565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613330565b611242565b60405161080591906131f7565b60405180910390f35b348015610819575f80fd5b5061082261125f565b60405161082f9190613054565b60405180910390f35b348015610843575f80fd5b5061084c611265565b6040516108599190613317565b60405180910390f35b34801561086d575f80fd5b5061088860048036038101906108839190613427565b61128a565b005b348015610895575f80fd5b5061089e611322565b6040516108ab9190613317565b60405180910390f35b3480156108bf575f80fd5b506108c8611347565b6040516108d59190613054565b60405180910390f35b3480156108e9575f80fd5b5061090460048036038101906108ff9190613452565b61134d565b6040516109119190613054565b60405180910390f35b348015610925575f80fd5b5061092e6113cf565b60405161093b9190613054565b60405180910390f35b34801561094f575f80fd5b506109586113d5565b6040516109659190613054565b60405180910390f35b348015610979575f80fd5b50610994600480360381019061098f9190613330565b6113db565b005b3480156109a1575f80fd5b506109aa6114d1565b6040516109b79190613054565b60405180910390f35b3480156109cb575f80fd5b506109d46114d7565b6040516109e19190613054565b60405180910390f35b60095481565b6060600380546109ff906134bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2b906134bd565b8015610a765780601f10610a4d57610100808354040283529160200191610a76565b820191905f5260205f20905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600a5481565b5f610a99610a926114dd565b84846114e4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610add8484846116a7565b610b9a84610ae96114dd565b610b958560405180606001604052806028815260200161401b6028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4c6114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b600190509392505050565b60105481565b5f60055f9054906101000a900460ff16905090565b60125481565b5f610c6a610bd26114dd565b84610c658560015f610be26114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b6114e4565b6001905092915050565b60145481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900460ff1681565b5f42905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d056114dd565b73ffffffffffffffffffffffffffffffffffffffff16610d23610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7090613537565b60405180910390fd5b610d825f611d6b565b565b600d5481565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db76114dd565b73ffffffffffffffffffffffffffffffffffffffff16610dd5610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290613537565b60405180910390fd5b601b548103610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906135c5565b60405180910390fd5b601b54817f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db760405160405180910390a380601b8190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b600e5481565b606060048054610eed906134bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610f19906134bd565b8015610f645780601f10610f3b57610100808354040283529160200191610f64565b820191905f5260205f20905b815481529060010190602001808311610f4757829003601f168201915b5050505050905090565b610f766114dd565b73ffffffffffffffffffffffffffffffffffffffff16610f94610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190613537565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090613679565b60405180910390fd5b6110838282611e30565b5050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b5f6111706110be6114dd565b8461116b856040518060600160405280603081526020016140436030913960015f6110e76114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b6001905092915050565b5f61118d6111866114dd565b84846116a7565b6001905092915050565b61119f6114dd565b73ffffffffffffffffffffffffffffffffffffffff166111bd610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a90613537565b60405180910390fd5b8060088190555050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112926114dd565b73ffffffffffffffffffffffffffffffffffffffff166112b0610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90613537565b60405180910390fd5b80601c5f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600b5481565b6113e36114dd565b73ffffffffffffffffffffffffffffffffffffffff16611401610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90613537565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc90613707565b60405180910390fd5b6114ce81611d6b565b50565b600c5481565b60115481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154990613795565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790613823565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169a9190613054565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c906138b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a9061393f565b60405180910390fd5b5f810361179a5761179583835f611f5d565b611ca7565b5f6117a430610cb8565b90505f60085482101590508080156117c95750600760149054906101000a900460ff16155b801561181b5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561185a575061182a610ea9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118995750611869610ea9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750601c5f9054906101000a900460ff165b1561190c576001600760146101000a81548160ff0219169083151502179055506118db6013546121e6565b6118e6601154612550565b6118f1601254612731565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff161590508015611c98575f805f805f601d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611aa8576119a26064611994600b548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f8282546119b5919061398a565b925050819055506119e460646119d66009548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f8282546119f7919061398a565b92505081905550611a266064611a18600d548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611a39919061398a565b92505081905550611a686064611a5a600f548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611aa181611a9384611a858789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b9450611c22565b601d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c2157611b1f6064611b11600c548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f828254611b32919061398a565b92505081905550611b616064611b53600a548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f828254611b74919061398a565b92505081905550611ba36064611b95600e548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611bb6919061398a565b92505081905550611be56064611bd76010548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611c1e81611c1084611c028789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b94505b5b611c35858a61289690919063ffffffff16565b98505f811115611c6c57611c6b8b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f5d565b5b5f851115611c9257611c918b30611c8c848961289690919063ffffffff16565b611f5d565b5b50505050505b611ca3868686611f5d565b5050505b505050565b5f838311158290611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea91906130f7565b60405180910390fd5b505f8385611d0191906139bd565b9050809150509392505050565b5f808284611d1c919061398a565b905083811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613a60565b60405180910390fd5b8091505092915050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613aee565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc2906138b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120309061393f565b60405180910390fd5b6120448383836128df565b6120ad81604051806060016040528060268152602001613ff5602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061213c815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121d99190613054565b60405180910390a3505050565b5f600267ffffffffffffffff81111561220257612201613b0c565b5b6040519080825280602002602001820160405280156122305781602001602082028036833780820191505090505b50905030815f8151811061224757612246613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122b7576122b6613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190613b7a565b73ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612455959493929190613c95565b5f604051808303815f87803b15801561246c575f80fd5b505af115801561247e573d5f803e3d5ffd5b50505050612538565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161250a959493929190613c95565b5f604051808303815f87803b158015612521575f80fd5b505af1158015612533573d5f803e3d5ffd5b505050505b8160135461254691906139bd565b6013819055505050565b5f61256560028361284d90919063ffffffff16565b90505f61257b828461289690919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125d89190613317565b602060405180830381865afa1580156125f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126179190613d01565b905061262383306128e4565b5f6126cf8260185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126829190613317565b602060405180830381865afa15801561269d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c19190613d01565b61289690919063ffffffff16565b90506126db8382612c22565b846011546126e991906139bd565b6011819055507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161272293929190613d2c565b60405180910390a15050505050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036127b5576127b081306128e4565b6127bf565b6127be81612dd1565b5b806012546127cd91906139bd565b60128190555050565b5f8083036127e6575f9050612847565b5f82846127f39190613d61565b90508284826128029190613dcf565b14612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990613e6f565b60405180910390fd5b809150505b92915050565b5f61288e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fdb565b905092915050565b5f6128d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cac565b905092915050565b505050565b5f600267ffffffffffffffff811115612900576128ff613b0c565b5b60405190808252806020026020018201604052801561292e5781602001602082028036833780820191505090505b50905030815f8151811061294557612944613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129b5576129b4613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795845f8460165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a72959493929190613c95565b5f604051808303815f87803b158015612a89575f80fd5b505af1158015612a9b573d5f803e3d5ffd5b505050505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612b1b9190613317565b602060405180830381865afa158015612b36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b5a9190613d01565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846040518463ffffffff1660e01b8152600401612bdb93929190613e8d565b6020604051808303815f875af1158015612bf7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1b9190613ed6565b5050505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612c9f929190613f01565b6020604051808303815f875af1158015612cbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cdf9190613ed6565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e337003060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401612d8a989796959493929190613f28565b6060604051808303815f875af1158015612da6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dca9190613fa4565b5050505050565b5f600367ffffffffffffffff811115612ded57612dec613b0c565b5b604051908082528060200260200182016040528015612e1b5781602001602082028036833780820191505090505b50905030815f81518110612e3257612e31613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612ea257612ea1613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110612f1257612f11613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401612fae959493929190613c95565b5f604051808303815f87803b158015612fc5575f80fd5b505af1925050508015612fd6575060015b505050565b5f8083118290613021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301891906130f7565b60405180910390fd5b505f838561302f9190613dcf565b9050809150509392505050565b5f819050919050565b61304e8161303c565b82525050565b5f6020820190506130675f830184613045565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156130a4578082015181840152602081019050613089565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130c98261306d565b6130d38185613077565b93506130e3818560208601613087565b6130ec816130af565b840191505092915050565b5f6020820190508181035f83015261310f81846130bf565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6131448261311b565b9050919050565b6131548161313a565b811461315e575f80fd5b50565b5f8135905061316f8161314b565b92915050565b61317e8161303c565b8114613188575f80fd5b50565b5f8135905061319981613175565b92915050565b5f80604083850312156131b5576131b4613117565b5b5f6131c285828601613161565b92505060206131d38582860161318b565b9150509250929050565b5f8115159050919050565b6131f1816131dd565b82525050565b5f60208201905061320a5f8301846131e8565b92915050565b5f819050919050565b5f61323361322e6132298461311b565b613210565b61311b565b9050919050565b5f61324482613219565b9050919050565b5f6132558261323a565b9050919050565b6132658161324b565b82525050565b5f60208201905061327e5f83018461325c565b92915050565b5f805f6060848603121561329b5761329a613117565b5b5f6132a886828701613161565b93505060206132b986828701613161565b92505060406132ca8682870161318b565b9150509250925092565b5f60ff82169050919050565b6132e9816132d4565b82525050565b5f6020820190506133025f8301846132e0565b92915050565b6133118161313a565b82525050565b5f60208201905061332a5f830184613308565b92915050565b5f6020828403121561334557613344613117565b5b5f61335284828501613161565b91505092915050565b5f602082840312156133705761336f613117565b5b5f61337d8482850161318b565b91505092915050565b61338f816131dd565b8114613399575f80fd5b50565b5f813590506133aa81613386565b92915050565b5f80604083850312156133c6576133c5613117565b5b5f6133d385828601613161565b92505060206133e48582860161339c565b9150509250929050565b5f6133f88261323a565b9050919050565b613408816133ee565b82525050565b5f6020820190506134215f8301846133ff565b92915050565b5f6020828403121561343c5761343b613117565b5b5f6134498482850161339c565b91505092915050565b5f806040838503121561346857613467613117565b5b5f61347585828601613161565b925050602061348685828601613161565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134d457607f821691505b6020821081036134e7576134e6613490565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613521602083613077565b915061352c826134ed565b602082019050919050565b5f6020820190508181035f83015261354e81613515565b9050919050565b7f43616e6e6f742075706461746520676173466f7250726f63657373696e6720745f8201527f6f2073616d652076616c75650000000000000000000000000000000000000000602082015250565b5f6135af602c83613077565b91506135ba82613555565b604082019050919050565b5f6020820190508181035f8301526135dc816135a3565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f7420626520725f8201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b5f613663604583613077565b915061366e826135e3565b606082019050919050565b5f6020820190508181035f83015261369081613657565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136f1602683613077565b91506136fc82613697565b604082019050919050565b5f6020820190508181035f83015261371e816136e5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61377f602483613077565b915061378a82613725565b604082019050919050565b5f6020820190508181035f8301526137ac81613773565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61380d602283613077565b9150613818826137b3565b604082019050919050565b5f6020820190508181035f83015261383a81613801565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61389b602583613077565b91506138a682613841565b604082019050919050565b5f6020820190508181035f8301526138c88161388f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613929602383613077565b9150613934826138cf565b604082019050919050565b5f6020820190508181035f8301526139568161391d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139948261303c565b915061399f8361303c565b92508282019050808211156139b7576139b661395d565b5b92915050565b5f6139c78261303c565b91506139d28361303c565b92508282039050818111156139ea576139e961395d565b5b92915050565b7f536166654d6174683a206164646974696f6e20526f636b657453484942206f765f8201527f6572666c6f770000000000000000000000000000000000000000000000000000602082015250565b5f613a4a602683613077565b9150613a55826139f0565b604082019050919050565b5f6020820190508181035f830152613a7781613a3e565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b6572207061697220697320615f8201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b5f613ad8603883613077565b9150613ae382613a7e565b604082019050919050565b5f6020820190508181035f830152613b0581613acc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613b748161314b565b92915050565b5f60208284031215613b8f57613b8e613117565b5b5f613b9c84828501613b66565b91505092915050565b5f819050919050565b5f613bc8613bc3613bbe84613ba5565b613210565b61303c565b9050919050565b613bd881613bae565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c108161313a565b82525050565b5f613c218383613c07565b60208301905092915050565b5f602082019050919050565b5f613c4382613bde565b613c4d8185613be8565b9350613c5883613bf8565b805f5b83811015613c88578151613c6f8882613c16565b9750613c7a83613c2d565b925050600181019050613c5b565b5085935050505092915050565b5f60a082019050613ca85f830188613045565b613cb56020830187613bcf565b8181036040830152613cc78186613c39565b9050613cd66060830185613308565b613ce36080830184613045565b9695505050505050565b5f81519050613cfb81613175565b92915050565b5f60208284031215613d1657613d15613117565b5b5f613d2384828501613ced565b91505092915050565b5f606082019050613d3f5f830186613045565b613d4c6020830185613045565b613d596040830184613045565b949350505050565b5f613d6b8261303c565b9150613d768361303c565b9250828202613d848161303c565b91508282048414831517613d9b57613d9a61395d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613dd98261303c565b9150613de48361303c565b925082613df457613df3613da2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e59602183613077565b9150613e6482613dff565b604082019050919050565b5f6020820190508181035f830152613e8681613e4d565b9050919050565b5f606082019050613ea05f830186613308565b613ead6020830185613308565b613eba6040830184613045565b949350505050565b5f81519050613ed081613386565b92915050565b5f60208284031215613eeb57613eea613117565b5b5f613ef884828501613ec2565b91505092915050565b5f604082019050613f145f830185613308565b613f216020830184613045565b9392505050565b5f61010082019050613f3c5f83018b613308565b613f49602083018a613308565b613f566040830189613045565b613f636060830188613045565b613f706080830187613bcf565b613f7d60a0830186613bcf565b613f8a60c0830185613308565b613f9760e0830184613045565b9998505050505050505050565b5f805f60608486031215613fbb57613fba613117565b5b5f613fc886828701613ced565b9350506020613fd986828701613ced565b9250506040613fea86828701613ced565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f7720526f636b657453484942207a65726fa264697066735822122037a8cfa06f3772bf978d8f50284bf805b53721d278dca17d5d611c16bf8b076b64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061025f575f3560e01c80638de743b311610143578063bfc3137e116100b5578063dd62ed3e11610079578063dd62ed3e146108de578063e2f456051461091a578063f11a24d314610944578063f2fde38b1461096e578063f637434214610996578063f8326795146109c057610266565b8063bfc3137e1461080e578063c0973eed14610838578063c49b9a8014610862578063c816841b1461088a578063cfe0e619146108b457610266565b80639c1b8af5116101075780639c1b8af5146106de578063a457c2d714610708578063a9059cbb14610744578063afa4f3b214610780578063b340a954146107a8578063b62496f5146107d257610266565b80638de743b31461060e578063921369131461063857806395d89b41146106625780639a7a23d61461068c5780639ab4a445146106b457610266565b806339509351116101dc57806370a08231116101a057806370a0823114610516578063715018a6146105525780637bce5a041461056857806385141a7714610592578063871c128d146105bc5780638da5cb5b146105e457610266565b806339509351146104325780633b1cd1871461046e5780634144d9e4146104985780634a74bb02146104c2578063557ed1ba146104ec57610266565b806318160ddd1161022357806318160ddd1461034e57806323b872dd1461037857806324942a04146103b4578063313ce567146103de5780633926876d1461040857610266565b806302df64d61461026a57806306fdde031461029457806308b2a12c146102be578063095ea7b3146102e85780631694505e1461032457610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ea565b60405161028b9190613054565b60405180910390f35b34801561029f575f80fd5b506102a86109f0565b6040516102b591906130f7565b60405180910390f35b3480156102c9575f80fd5b506102d2610a80565b6040516102df9190613054565b60405180910390f35b3480156102f3575f80fd5b5061030e6004803603810190610309919061319f565b610a86565b60405161031b91906131f7565b60405180910390f35b34801561032f575f80fd5b50610338610aa3565b604051610345919061326b565b60405180910390f35b348015610359575f80fd5b50610362610ac8565b60405161036f9190613054565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613284565b610ad1565b6040516103ab91906131f7565b60405180910390f35b3480156103bf575f80fd5b506103c8610ba5565b6040516103d59190613054565b60405180910390f35b3480156103e9575f80fd5b506103f2610bab565b6040516103ff91906132ef565b60405180910390f35b348015610413575f80fd5b5061041c610bc0565b6040516104299190613054565b60405180910390f35b34801561043d575f80fd5b506104586004803603810190610453919061319f565b610bc6565b60405161046591906131f7565b60405180910390f35b348015610479575f80fd5b50610482610c74565b60405161048f9190613054565b60405180910390f35b3480156104a3575f80fd5b506104ac610c7a565b6040516104b99190613317565b60405180910390f35b3480156104cd575f80fd5b506104d6610c9f565b6040516104e391906131f7565b60405180910390f35b3480156104f7575f80fd5b50610500610cb1565b60405161050d9190613054565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190613330565b610cb8565b6040516105499190613054565b60405180910390f35b34801561055d575f80fd5b50610566610cfd565b005b348015610573575f80fd5b5061057c610d84565b6040516105899190613054565b60405180910390f35b34801561059d575f80fd5b506105a6610d8a565b6040516105b39190613317565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd919061335b565b610daf565b005b3480156105ef575f80fd5b506105f8610ea9565b6040516106059190613317565b60405180910390f35b348015610619575f80fd5b50610622610ed2565b60405161062f9190613054565b60405180910390f35b348015610643575f80fd5b5061064c610ed8565b6040516106599190613054565b60405180910390f35b34801561066d575f80fd5b50610676610ede565b60405161068391906130f7565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad91906133b0565b610f6e565b005b3480156106bf575f80fd5b506106c8611087565b6040516106d59190613317565b60405180910390f35b3480156106e9575f80fd5b506106f26110ac565b6040516106ff9190613054565b60405180910390f35b348015610713575f80fd5b5061072e6004803603810190610729919061319f565b6110b2565b60405161073b91906131f7565b60405180910390f35b34801561074f575f80fd5b5061076a6004803603810190610765919061319f565b61117a565b60405161077791906131f7565b60405180910390f35b34801561078b575f80fd5b506107a660048036038101906107a1919061335b565b611197565b005b3480156107b3575f80fd5b506107bc61121d565b6040516107c9919061340e565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613330565b611242565b60405161080591906131f7565b60405180910390f35b348015610819575f80fd5b5061082261125f565b60405161082f9190613054565b60405180910390f35b348015610843575f80fd5b5061084c611265565b6040516108599190613317565b60405180910390f35b34801561086d575f80fd5b5061088860048036038101906108839190613427565b61128a565b005b348015610895575f80fd5b5061089e611322565b6040516108ab9190613317565b60405180910390f35b3480156108bf575f80fd5b506108c8611347565b6040516108d59190613054565b60405180910390f35b3480156108e9575f80fd5b5061090460048036038101906108ff9190613452565b61134d565b6040516109119190613054565b60405180910390f35b348015610925575f80fd5b5061092e6113cf565b60405161093b9190613054565b60405180910390f35b34801561094f575f80fd5b506109586113d5565b6040516109659190613054565b60405180910390f35b348015610979575f80fd5b50610994600480360381019061098f9190613330565b6113db565b005b3480156109a1575f80fd5b506109aa6114d1565b6040516109b79190613054565b60405180910390f35b3480156109cb575f80fd5b506109d46114d7565b6040516109e19190613054565b60405180910390f35b60095481565b6060600380546109ff906134bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2b906134bd565b8015610a765780601f10610a4d57610100808354040283529160200191610a76565b820191905f5260205f20905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600a5481565b5f610a99610a926114dd565b84846114e4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610add8484846116a7565b610b9a84610ae96114dd565b610b958560405180606001604052806028815260200161401b6028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4c6114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b600190509392505050565b60105481565b5f60055f9054906101000a900460ff16905090565b60125481565b5f610c6a610bd26114dd565b84610c658560015f610be26114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b6114e4565b6001905092915050565b60145481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900460ff1681565b5f42905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d056114dd565b73ffffffffffffffffffffffffffffffffffffffff16610d23610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7090613537565b60405180910390fd5b610d825f611d6b565b565b600d5481565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db76114dd565b73ffffffffffffffffffffffffffffffffffffffff16610dd5610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290613537565b60405180910390fd5b601b548103610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906135c5565b60405180910390fd5b601b54817f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db760405160405180910390a380601b8190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b600e5481565b606060048054610eed906134bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610f19906134bd565b8015610f645780601f10610f3b57610100808354040283529160200191610f64565b820191905f5260205f20905b815481529060010190602001808311610f4757829003601f168201915b5050505050905090565b610f766114dd565b73ffffffffffffffffffffffffffffffffffffffff16610f94610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190613537565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090613679565b60405180910390fd5b6110838282611e30565b5050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b5f6111706110be6114dd565b8461116b856040518060600160405280603081526020016140436030913960015f6110e76114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b6001905092915050565b5f61118d6111866114dd565b84846116a7565b6001905092915050565b61119f6114dd565b73ffffffffffffffffffffffffffffffffffffffff166111bd610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a90613537565b60405180910390fd5b8060088190555050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112926114dd565b73ffffffffffffffffffffffffffffffffffffffff166112b0610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90613537565b60405180910390fd5b80601c5f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600b5481565b6113e36114dd565b73ffffffffffffffffffffffffffffffffffffffff16611401610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90613537565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc90613707565b60405180910390fd5b6114ce81611d6b565b50565b600c5481565b60115481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154990613795565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790613823565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169a9190613054565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c906138b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a9061393f565b60405180910390fd5b5f810361179a5761179583835f611f5d565b611ca7565b5f6117a430610cb8565b90505f60085482101590508080156117c95750600760149054906101000a900460ff16155b801561181b5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561185a575061182a610ea9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118995750611869610ea9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750601c5f9054906101000a900460ff165b1561190c576001600760146101000a81548160ff0219169083151502179055506118db6013546121e6565b6118e6601154612550565b6118f1601254612731565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff161590508015611c98575f805f805f601d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611aa8576119a26064611994600b548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f8282546119b5919061398a565b925050819055506119e460646119d66009548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f8282546119f7919061398a565b92505081905550611a266064611a18600d548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611a39919061398a565b92505081905550611a686064611a5a600f548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611aa181611a9384611a858789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b9450611c22565b601d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c2157611b1f6064611b11600c548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f828254611b32919061398a565b92505081905550611b616064611b53600a548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f828254611b74919061398a565b92505081905550611ba36064611b95600e548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611bb6919061398a565b92505081905550611be56064611bd76010548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611c1e81611c1084611c028789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b94505b5b611c35858a61289690919063ffffffff16565b98505f811115611c6c57611c6b8b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f5d565b5b5f851115611c9257611c918b30611c8c848961289690919063ffffffff16565b611f5d565b5b50505050505b611ca3868686611f5d565b5050505b505050565b5f838311158290611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea91906130f7565b60405180910390fd5b505f8385611d0191906139bd565b9050809150509392505050565b5f808284611d1c919061398a565b905083811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613a60565b60405180910390fd5b8091505092915050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613aee565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc2906138b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120309061393f565b60405180910390fd5b6120448383836128df565b6120ad81604051806060016040528060268152602001613ff5602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061213c815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121d99190613054565b60405180910390a3505050565b5f600267ffffffffffffffff81111561220257612201613b0c565b5b6040519080825280602002602001820160405280156122305781602001602082028036833780820191505090505b50905030815f8151811061224757612246613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122b7576122b6613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190613b7a565b73ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612455959493929190613c95565b5f604051808303815f87803b15801561246c575f80fd5b505af115801561247e573d5f803e3d5ffd5b50505050612538565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161250a959493929190613c95565b5f604051808303815f87803b158015612521575f80fd5b505af1158015612533573d5f803e3d5ffd5b505050505b8160135461254691906139bd565b6013819055505050565b5f61256560028361284d90919063ffffffff16565b90505f61257b828461289690919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125d89190613317565b602060405180830381865afa1580156125f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126179190613d01565b905061262383306128e4565b5f6126cf8260185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126829190613317565b602060405180830381865afa15801561269d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c19190613d01565b61289690919063ffffffff16565b90506126db8382612c22565b846011546126e991906139bd565b6011819055507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161272293929190613d2c565b60405180910390a15050505050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036127b5576127b081306128e4565b6127bf565b6127be81612dd1565b5b806012546127cd91906139bd565b60128190555050565b5f8083036127e6575f9050612847565b5f82846127f39190613d61565b90508284826128029190613dcf565b14612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990613e6f565b60405180910390fd5b809150505b92915050565b5f61288e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fdb565b905092915050565b5f6128d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cac565b905092915050565b505050565b5f600267ffffffffffffffff811115612900576128ff613b0c565b5b60405190808252806020026020018201604052801561292e5781602001602082028036833780820191505090505b50905030815f8151811061294557612944613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129b5576129b4613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795845f8460165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a72959493929190613c95565b5f604051808303815f87803b158015612a89575f80fd5b505af1158015612a9b573d5f803e3d5ffd5b505050505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612b1b9190613317565b602060405180830381865afa158015612b36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b5a9190613d01565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846040518463ffffffff1660e01b8152600401612bdb93929190613e8d565b6020604051808303815f875af1158015612bf7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1b9190613ed6565b5050505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612c9f929190613f01565b6020604051808303815f875af1158015612cbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cdf9190613ed6565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e337003060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401612d8a989796959493929190613f28565b6060604051808303815f875af1158015612da6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dca9190613fa4565b5050505050565b5f600367ffffffffffffffff811115612ded57612dec613b0c565b5b604051908082528060200260200182016040528015612e1b5781602001602082028036833780820191505090505b50905030815f81518110612e3257612e31613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612ea257612ea1613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110612f1257612f11613b39565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401612fae959493929190613c95565b5f604051808303815f87803b158015612fc5575f80fd5b505af1925050508015612fd6575060015b505050565b5f8083118290613021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301891906130f7565b60405180910390fd5b505f838561302f9190613dcf565b9050809150509392505050565b5f819050919050565b61304e8161303c565b82525050565b5f6020820190506130675f830184613045565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156130a4578082015181840152602081019050613089565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130c98261306d565b6130d38185613077565b93506130e3818560208601613087565b6130ec816130af565b840191505092915050565b5f6020820190508181035f83015261310f81846130bf565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6131448261311b565b9050919050565b6131548161313a565b811461315e575f80fd5b50565b5f8135905061316f8161314b565b92915050565b61317e8161303c565b8114613188575f80fd5b50565b5f8135905061319981613175565b92915050565b5f80604083850312156131b5576131b4613117565b5b5f6131c285828601613161565b92505060206131d38582860161318b565b9150509250929050565b5f8115159050919050565b6131f1816131dd565b82525050565b5f60208201905061320a5f8301846131e8565b92915050565b5f819050919050565b5f61323361322e6132298461311b565b613210565b61311b565b9050919050565b5f61324482613219565b9050919050565b5f6132558261323a565b9050919050565b6132658161324b565b82525050565b5f60208201905061327e5f83018461325c565b92915050565b5f805f6060848603121561329b5761329a613117565b5b5f6132a886828701613161565b93505060206132b986828701613161565b92505060406132ca8682870161318b565b9150509250925092565b5f60ff82169050919050565b6132e9816132d4565b82525050565b5f6020820190506133025f8301846132e0565b92915050565b6133118161313a565b82525050565b5f60208201905061332a5f830184613308565b92915050565b5f6020828403121561334557613344613117565b5b5f61335284828501613161565b91505092915050565b5f602082840312156133705761336f613117565b5b5f61337d8482850161318b565b91505092915050565b61338f816131dd565b8114613399575f80fd5b50565b5f813590506133aa81613386565b92915050565b5f80604083850312156133c6576133c5613117565b5b5f6133d385828601613161565b92505060206133e48582860161339c565b9150509250929050565b5f6133f88261323a565b9050919050565b613408816133ee565b82525050565b5f6020820190506134215f8301846133ff565b92915050565b5f6020828403121561343c5761343b613117565b5b5f6134498482850161339c565b91505092915050565b5f806040838503121561346857613467613117565b5b5f61347585828601613161565b925050602061348685828601613161565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134d457607f821691505b6020821081036134e7576134e6613490565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613521602083613077565b915061352c826134ed565b602082019050919050565b5f6020820190508181035f83015261354e81613515565b9050919050565b7f43616e6e6f742075706461746520676173466f7250726f63657373696e6720745f8201527f6f2073616d652076616c75650000000000000000000000000000000000000000602082015250565b5f6135af602c83613077565b91506135ba82613555565b604082019050919050565b5f6020820190508181035f8301526135dc816135a3565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f7420626520725f8201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b5f613663604583613077565b915061366e826135e3565b606082019050919050565b5f6020820190508181035f83015261369081613657565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136f1602683613077565b91506136fc82613697565b604082019050919050565b5f6020820190508181035f83015261371e816136e5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61377f602483613077565b915061378a82613725565b604082019050919050565b5f6020820190508181035f8301526137ac81613773565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61380d602283613077565b9150613818826137b3565b604082019050919050565b5f6020820190508181035f83015261383a81613801565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61389b602583613077565b91506138a682613841565b604082019050919050565b5f6020820190508181035f8301526138c88161388f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613929602383613077565b9150613934826138cf565b604082019050919050565b5f6020820190508181035f8301526139568161391d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139948261303c565b915061399f8361303c565b92508282019050808211156139b7576139b661395d565b5b92915050565b5f6139c78261303c565b91506139d28361303c565b92508282039050818111156139ea576139e961395d565b5b92915050565b7f536166654d6174683a206164646974696f6e20526f636b657453484942206f765f8201527f6572666c6f770000000000000000000000000000000000000000000000000000602082015250565b5f613a4a602683613077565b9150613a55826139f0565b604082019050919050565b5f6020820190508181035f830152613a7781613a3e565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b6572207061697220697320615f8201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b5f613ad8603883613077565b9150613ae382613a7e565b604082019050919050565b5f6020820190508181035f830152613b0581613acc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613b748161314b565b92915050565b5f60208284031215613b8f57613b8e613117565b5b5f613b9c84828501613b66565b91505092915050565b5f819050919050565b5f613bc8613bc3613bbe84613ba5565b613210565b61303c565b9050919050565b613bd881613bae565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c108161313a565b82525050565b5f613c218383613c07565b60208301905092915050565b5f602082019050919050565b5f613c4382613bde565b613c4d8185613be8565b9350613c5883613bf8565b805f5b83811015613c88578151613c6f8882613c16565b9750613c7a83613c2d565b925050600181019050613c5b565b5085935050505092915050565b5f60a082019050613ca85f830188613045565b613cb56020830187613bcf565b8181036040830152613cc78186613c39565b9050613cd66060830185613308565b613ce36080830184613045565b9695505050505050565b5f81519050613cfb81613175565b92915050565b5f60208284031215613d1657613d15613117565b5b5f613d2384828501613ced565b91505092915050565b5f606082019050613d3f5f830186613045565b613d4c6020830185613045565b613d596040830184613045565b949350505050565b5f613d6b8261303c565b9150613d768361303c565b9250828202613d848161303c565b91508282048414831517613d9b57613d9a61395d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613dd98261303c565b9150613de48361303c565b925082613df457613df3613da2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e59602183613077565b9150613e6482613dff565b604082019050919050565b5f6020820190508181035f830152613e8681613e4d565b9050919050565b5f606082019050613ea05f830186613308565b613ead6020830185613308565b613eba6040830184613045565b949350505050565b5f81519050613ed081613386565b92915050565b5f60208284031215613eeb57613eea613117565b5b5f613ef884828501613ec2565b91505092915050565b5f604082019050613f145f830185613308565b613f216020830184613045565b9392505050565b5f61010082019050613f3c5f83018b613308565b613f49602083018a613308565b613f566040830189613045565b613f636060830188613045565b613f706080830187613bcf565b613f7d60a0830186613bcf565b613f8a60c0830185613308565b613f9760e0830184613045565b9998505050505050505050565b5f805f60608486031215613fbb57613fba613117565b5b5f613fc886828701613ced565b9350506020613fd986828701613ced565b9250506040613fea86828701613ced565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f7720526f636b657453484942207a65726fa264697066735822122037a8cfa06f3772bf978d8f50284bf805b53721d278dca17d5d611c16bf8b076b64736f6c63430008140033

Deployed Bytecode Sourcemap

15520:10500:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15756:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4997:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15796:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7182:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15600:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6135:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7833:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16025:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5970:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16100:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8597:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16185:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16414:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16533:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1090:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6306:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;770:103;;;;;;;;;;;;;:::i;:::-;;15916:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16304:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18933:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;547:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15993:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15953:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5216:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18357:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16381:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16495:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9329:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6646:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19356:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16264:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16731:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16222:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16459:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19229:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15648:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16143:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6884:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15714:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15839:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;881:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15876:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16060:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15756;;;;:::o;4997:100::-;5051:13;5084:5;5077:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4997:100;:::o;15796:34::-;;;;:::o;7182:169::-;7265:4;7282:39;7291:12;:10;:12::i;:::-;7305:7;7314:6;7282:8;:39::i;:::-;7339:4;7332:11;;7182:169;;;;:::o;15600:41::-;;;;;;;;;;;;;:::o;6135:108::-;6196:7;6223:12;;6216:19;;6135:108;:::o;7833:355::-;7973:4;7990:36;8000:6;8008:9;8019:6;7990:9;:36::i;:::-;8037:121;8046:6;8054:12;:10;:12::i;:::-;8068:89;8106:6;8068:89;;;;;;;;;;;;;;;;;:11;:19;8080:6;8068:19;;;;;;;;;;;;;;;:33;8088:12;:10;:12::i;:::-;8068:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8037:8;:121::i;:::-;8176:4;8169:11;;7833:355;;;;;:::o;16025:26::-;;;;:::o;5970:100::-;6028:5;6053:9;;;;;;;;;;;6046:16;;5970:100;:::o;16100:36::-;;;;:::o;8597:218::-;8685:4;8702:83;8711:12;:10;:12::i;:::-;8725:7;8734:50;8773:10;8734:11;:25;8746:12;:10;:12::i;:::-;8734:25;;;;;;;;;;;;;;;:34;8760:7;8734:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8702:8;:83::i;:::-;8803:4;8796:11;;8597:218;;;;:::o;16185:30::-;;;;:::o;16414:38::-;;;;;;;;;;;;;:::o;16533:40::-;;;;;;;;;;;;;:::o;1090:90::-;1130:7;1157:15;1150:22;;1090:90;:::o;6306:127::-;6380:7;6407:9;:18;6417:7;6407:18;;;;;;;;;;;;;;;;6400:25;;6306:127;;;:::o;770:103::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;835:30:::1;862:1;835:18;:30::i;:::-;770:103::o:0;15916:30::-;;;;:::o;16304:70::-;;;;;;;;;;;;;:::o;18933:286::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19031:16:::1;;19019:8;:28:::0;19011:95:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19156:16;;19146:8;19122:51;;;;;;;;;;19203:8;19184:16;:27;;;;18933:286:::0;:::o;547:87::-;593:7;620:6;;;;;;;;;;;613:13;;547:87;:::o;15993:25::-;;;;:::o;15953:31::-;;;;:::o;5216:104::-;5272:13;5305:7;5298:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5216:104;:::o;18357:252::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18464:11:::1;;;;;;;;;;;18456:19;;:4;:19;;::::0;18448:101:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18560:41;18589:4;18595:5;18560:28;:41::i;:::-;18357:252:::0;;:::o;16381:26::-;;;;;;;;;;;;;:::o;16495:31::-;;;;:::o;9329:290::-;9422:4;9439:150;9448:12;:10;:12::i;:::-;9462:7;9471:117;9510:15;9471:117;;;;;;;;;;;;;;;;;:11;:25;9483:12;:10;:12::i;:::-;9471:25;;;;;;;;;;;;;;;:34;9497:7;9471:34;;;;;;;;;;;;;;;;:38;;:117;;;;;:::i;:::-;9439:8;:150::i;:::-;9607:4;9600:11;;9329:290;;;;:::o;6646:175::-;6732:4;6749:42;6759:12;:10;:12::i;:::-;6773:9;6784:6;6749:9;:42::i;:::-;6809:4;6802:11;;6646:175;;;;:::o;19356:110::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19452:6:::1;19431:18;:27;;;;19356:110:::0;:::o;16264:33::-;;;;;;;;;;;;;:::o;16731:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;16222:33::-;;;;:::o;16459:29::-;;;;;;;;;;;;;:::o;19229:117::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19330:8:::1;19306:21;;:32;;;;;;;;;;;;;;;;;;19229:117:::0;:::o;15648:27::-;;;;;;;;;;;;;:::o;16143:33::-;;;;:::o;6884:151::-;6973:7;7000:11;:18;7012:5;7000:18;;;;;;;;;;;;;;;:27;7019:7;7000:27;;;;;;;;;;;;;;;;6993:34;;6884:151;;;;:::o;15714:33::-;;;;:::o;15839:30::-;;;;:::o;881:201::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;990:1:::1;970:22;;:8;:22;;::::0;962:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1046:28;1065:8;1046:18;:28::i;:::-;881:201:::0;:::o;15876:31::-;;;;:::o;16060:33::-;;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;12547:380::-;12700:1;12683:19;;:5;:19;;;12675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12781:1;12762:21;;:7;:21;;;12754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12865:6;12835:11;:18;12847:5;12835:18;;;;;;;;;;;;;;;:27;12854:7;12835:27;;;;;;;;;;;;;;;:36;;;;12903:7;12887:32;;12896:5;12887:32;;;12912:6;12887:32;;;;;;:::i;:::-;;;;;;;;12547:380;;;:::o;19480:2471::-;19628:1;19612:18;;:4;:18;;;19604:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19705:1;19691:16;;:2;:16;;;19683:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19774:1;19764:6;:11;19760:93;;19792:28;19808:4;19814:2;19818:1;19792:15;:28::i;:::-;19835:7;;19760:93;19865:28;19896:24;19914:4;19896:9;:24::i;:::-;19865:55;;19933:12;19972:18;;19948:20;:42;;19933:57;;20007:7;:33;;;;;20032:8;;;;;;;;;;;20031:9;20007:33;:81;;;;;20057:25;:31;20083:4;20057:31;;;;;;;;;;;;;;;;;;;;;;;;;20007:81;:113;;;;;20113:7;:5;:7::i;:::-;20105:15;;:4;:15;;;;20007:113;:143;;;;;20143:7;:5;:7::i;:::-;20137:13;;:2;:13;;;;20007:143;:181;;;;;20167:21;;;;;;;;;;;20007:181;20003:432;;;20226:4;20215:8;;:15;;;;;;;;;;;;;;;;;;20245:40;20266:18;;20245:20;:40::i;:::-;20300:34;20315:18;;20300:14;:34::i;:::-;20349:43;20370:21;;20349:20;:43::i;:::-;20418:5;20407:8;;:16;;;;;;;;;;;;;;;;;;20003:432;20449:12;20465:8;;;;;;;;;;;20464:9;20449:24;;20489:7;20486:1408;;;20513:12;20540;20580;20618;20658;20698:25;:31;20724:4;20698:31;;;;;;;;;;;;;;;;;;;;;;;;;20695:997;;;20756:36;20788:3;20756:27;20767:15;;20756:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;20749:43;;20833:4;20811:18;;:26;;;;;;;:::i;:::-;;;;;;;;20863:39;20898:3;20863:30;20874:18;;20863:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;20856:46;;20946:4;20921:21;;:29;;;;;;;:::i;:::-;;;;;;;;20976:36;21008:3;20976:27;20987:15;;20976:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;20969:43;;21053:4;21031:18;;:26;;;;;;;:::i;:::-;;;;;;;;21083:31;21110:3;21083:22;21094:10;;21083:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;21076:38;;21140:34;21169:4;21140:24;21159:4;21140:14;21149:4;21140;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;21133:41;;20695:997;;;21198:25;:29;21224:2;21198:29;;;;;;;;;;;;;;;;;;;;;;;;;21195:497;;;21254:37;21287:3;21254:28;21265:16;;21254:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;21247:44;;21332:4;21310:18;;:26;;;;;;;:::i;:::-;;;;;;;;21362:40;21398:3;21362:31;21373:19;;21362:6;:10;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;21355:47;;21446:4;21421:21;;:29;;;;;;;:::i;:::-;;;;;;;;21476:37;21509:3;21476:28;21487:16;;21476:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;21469:44;;21554:4;21532:18;;:26;;;;;;;:::i;:::-;;;;;;;;21584:32;21612:3;21584:23;21595:11;;21584:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;21577:39;;21642:34;21671:4;21642:24;21661:4;21642:14;21651:4;21642;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;21635:41;;21195:497;20695:997;21719:16;21730:4;21719:6;:10;;:16;;;;:::i;:::-;21710:25;;21760:1;21753:4;:8;21750:52;;;21763:39;21779:4;21785:10;;;;;;;;;;;21797:4;21763:15;:39::i;:::-;21750:52;21827:1;21820:4;:8;21817:65;;;21830:52;21846:4;21860;21867:14;21876:4;21867;:8;;:14;;;;:::i;:::-;21830:15;:52::i;:::-;21817:65;20498:1396;;;;;20486:1408;21908:33;21924:4;21930:2;21934:6;21908:15;:33::i;:::-;19593:2358;;;19480:2471;;;;:::o;2681:192::-;2767:7;2800:1;2795;:6;;2803:12;2787:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2827:9;2843:1;2839;:5;;;;:::i;:::-;2827:17;;2864:1;2857:8;;;2681:192;;;;;:::o;2337:::-;2395:7;2415:9;2431:1;2427;:5;;;;:::i;:::-;2415:17;;2456:1;2451;:6;;2443:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2520:1;2513:8;;;2337:192;;;;:::o;1188:191::-;1262:16;1281:6;;;;;;;;;;;1262:25;;1307:8;1298:6;;:17;;;;;;;;;;;;;;;;;;1362:8;1331:40;;1352:8;1331:40;;;;;;;;;;;;1251:128;1188:191;:::o;18617:306::-;18743:5;18708:40;;:25;:31;18734:4;18708:31;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;18700:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;18854:5;18820:25;:31;18846:4;18820:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18909:5;18875:40;;18903:4;18875:40;;;;;;;;;;;;18617:306;;:::o;10109:573::-;10267:1;10249:20;;:6;:20;;;10241:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10351:1;10330:23;;:9;:23;;;10322:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10406:47;10427:6;10435:9;10446:6;10406:20;:47::i;:::-;10486:71;10508:6;10486:71;;;;;;;;;;;;;;;;;:9;:17;10496:6;10486:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;10466:9;:17;10476:6;10466:17;;;;;;;;;;;;;;;:91;;;;10591:32;10616:6;10591:9;:20;10601:9;10591:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10568:9;:20;10578:9;10568:20;;;;;;;;;;;;;;;:55;;;;10656:9;10639:35;;10648:6;10639:35;;;10667:6;10639:35;;;;;;:::i;:::-;;;;;;;;10109:573;;;:::o;21963:993::-;22088:21;22126:1;22112:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22088:40;;22157:4;22139;22144:1;22139:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22183:11;;;;;;;;;;;22173:4;22178:1;22173:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;22223:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22208:37;;:11;;;;;;;;;;;:37;;;22205:685;;22291:15;;;;;;;;;;;:66;;;22376:6;22401:1;22449:4;22472:23;;;;;;;;;;;22530:15;22291:269;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22205:685;;;22621:15;;;;;;;;;;;:69;;;22709:6;22734:1;22783:4;22806:23;;;;;;;;;;;22848:15;22621:257;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22205:685;22942:6;22921:18;;:27;;;;:::i;:::-;22900:18;:48;;;;22017:939;21963:993;:::o;22964:779::-;23073:12;23088:13;23099:1;23088:6;:10;;:13;;;;:::i;:::-;23073:28;;23112:17;23132:16;23143:4;23132:6;:10;;:16;;;;:::i;:::-;23112:36;;23161:22;23193:11;;;;;;;;;;;23186:29;;;23224:4;23186:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23161:69;;23275:37;23293:4;23306;23275:17;:37::i;:::-;23443:18;23464:64;23513:14;23471:11;;;;;;;;;;;23464:29;;;23502:4;23464:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;:64;;;;:::i;:::-;23443:85;;23578:39;23595:9;23606:10;23578:16;:39::i;:::-;23670:6;23649:18;;:27;;;;:::i;:::-;23628:18;:48;;;;23692:43;23707:4;23713:10;23725:9;23692:43;;;;;;;;:::i;:::-;;;;;;;;23012:731;;;;22964:779;:::o;25644:369::-;25801:14;;;;;;;;;;;25786:29;;:11;;;;;;;;;;;:29;;;25783:158;;25831:39;25849:6;25864:4;25831:17;:39::i;:::-;25783:158;;;25901:28;25922:6;25901:20;:28::i;:::-;25783:158;25999:6;25975:21;;:30;;;;:::i;:::-;25951:21;:54;;;;25644:369;:::o;2881:481::-;2939:7;3189:1;3184;:6;3180:47;;3214:1;3207:8;;;;3180:47;3239:9;3255:1;3251;:5;;;;:::i;:::-;3239:17;;3284:1;3279;3275;:5;;;;:::i;:::-;:10;3267:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;3353:1;3346:8;;;2881:481;;;;;:::o;3370:132::-;3428:7;3455:39;3459:1;3462;3455:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3448:46;;3370:132;;;;:::o;2537:136::-;2595:7;2622:43;2626:1;2629;2622:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2615:50;;2537:136;;;;:::o;13530:125::-;;;;:::o;24323:689::-;24463:21;24501:1;24487:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24463:40;;24532:4;24514;24519:1;24514:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24558:11;;;;;;;;;;;24548:4;24553:1;24548:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;24606:15;;;;;;;;;;;:69;;;24690:11;24716:1;24761:4;24788:13;;;;;;;;;;;24817:15;24606:237;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24854:14;24878:11;;;;;;;;;;;24871:29;;;24909:13;;;;;;;;;;;24871:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24854:70;;24942:11;;;;;;;;;;;24935:32;;;24976:13;;;;;;;;;;;24991:4;24997:6;24935:69;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24392:620;;24323:689;;:::o;23751:564::-;23911:11;;;;;;;;;;;23904:27;;;23940:15;;;;;;;;;;;23957:10;23904:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24009:15;;;;;;;;;;;:28;;;24060:4;24080:11;;;;;;;;;;;24106;24132:10;24157:1;24200;24243:23;;;;;;;;;;;24281:15;24009:298;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23751:564;;:::o;25020:616::-;25161:21;25199:1;25185:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25161:40;;25230:4;25212;25217:1;25212:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25256:11;;;;;;;;;;;25246:4;25251:1;25246:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;25288:14;;;;;;;;;;;25278:4;25283:1;25278:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;25356:15;;;;;;;;;;;:69;;;25444:11;25474:1;25523:4;25554;25578:15;25356:252;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25339:288;25079:557;25020:616;:::o;3510:278::-;3596:7;3628:1;3624;:5;3631:12;3616:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3655:9;3671:1;3667;:5;;;;:::i;:::-;3655:17;;3779:1;3772:8;;;3510:278;;;;;:::o;7:77:1:-;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:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:152::-;4220:9;4253:37;4284:5;4253:37;:::i;:::-;4240:50;;4144:152;;;:::o;4302:183::-;4415:63;4472:5;4415:63;:::i;:::-;4410:3;4403:76;4302:183;;:::o;4491:274::-;4610:4;4648:2;4637:9;4633:18;4625:26;;4661:97;4755:1;4744:9;4740:17;4731:6;4661:97;:::i;:::-;4491:274;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:147::-;7654:9;7687:37;7718:5;7687:37;:::i;:::-;7674:50;;7583:147;;;:::o;7736:173::-;7844:58;7896:5;7844:58;:::i;:::-;7839:3;7832:71;7736:173;;:::o;7915:264::-;8029:4;8067:2;8056:9;8052:18;8044:26;;8080:92;8169:1;8158:9;8154:17;8145:6;8080:92;:::i;:::-;7915:264;;;;:::o;8185:323::-;8241:6;8290:2;8278:9;8269:7;8265:23;8261:32;8258:119;;;8296:79;;:::i;:::-;8258:119;8416:1;8441:50;8483:7;8474:6;8463:9;8459:22;8441:50;:::i;:::-;8431:60;;8387:114;8185:323;;;;:::o;8514:474::-;8582:6;8590;8639:2;8627:9;8618:7;8614:23;8610:32;8607:119;;;8645:79;;:::i;:::-;8607:119;8765:1;8790:53;8835:7;8826:6;8815:9;8811:22;8790:53;:::i;:::-;8780:63;;8736:117;8892:2;8918:53;8963:7;8954:6;8943:9;8939:22;8918:53;:::i;:::-;8908:63;;8863:118;8514:474;;;;;:::o;8994:180::-;9042:77;9039:1;9032:88;9139:4;9136:1;9129:15;9163:4;9160:1;9153:15;9180:320;9224:6;9261:1;9255:4;9251:12;9241:22;;9308:1;9302:4;9298:12;9329:18;9319:81;;9385:4;9377:6;9373:17;9363:27;;9319:81;9447:2;9439:6;9436:14;9416:18;9413:38;9410:84;;9466:18;;:::i;:::-;9410:84;9231:269;9180:320;;;:::o;9506:182::-;9646:34;9642:1;9634:6;9630:14;9623:58;9506:182;:::o;9694:366::-;9836:3;9857:67;9921:2;9916:3;9857:67;:::i;:::-;9850:74;;9933:93;10022:3;9933:93;:::i;:::-;10051:2;10046:3;10042:12;10035:19;;9694:366;;;:::o;10066:419::-;10232:4;10270:2;10259:9;10255:18;10247:26;;10319:9;10313:4;10309:20;10305:1;10294:9;10290:17;10283:47;10347:131;10473:4;10347:131;:::i;:::-;10339:139;;10066:419;;;:::o;10491:231::-;10631:34;10627:1;10619:6;10615:14;10608:58;10700:14;10695:2;10687:6;10683:15;10676:39;10491:231;:::o;10728:366::-;10870:3;10891:67;10955:2;10950:3;10891:67;:::i;:::-;10884:74;;10967:93;11056:3;10967:93;:::i;:::-;11085:2;11080:3;11076:12;11069:19;;10728:366;;;:::o;11100:419::-;11266:4;11304:2;11293:9;11289:18;11281:26;;11353:9;11347:4;11343:20;11339:1;11328:9;11324:17;11317:47;11381:131;11507:4;11381:131;:::i;:::-;11373:139;;11100:419;;;:::o;11525:293::-;11665:34;11661:1;11653:6;11649:14;11642:58;11734:34;11729:2;11721:6;11717:15;11710:59;11803:7;11798:2;11790:6;11786:15;11779:32;11525:293;:::o;11824:366::-;11966:3;11987:67;12051:2;12046:3;11987:67;:::i;:::-;11980:74;;12063:93;12152:3;12063:93;:::i;:::-;12181:2;12176:3;12172:12;12165:19;;11824:366;;;:::o;12196:419::-;12362:4;12400:2;12389:9;12385:18;12377:26;;12449:9;12443:4;12439:20;12435:1;12424:9;12420:17;12413:47;12477:131;12603:4;12477:131;:::i;:::-;12469:139;;12196:419;;;:::o;12621:225::-;12761:34;12757:1;12749:6;12745:14;12738:58;12830:8;12825:2;12817:6;12813:15;12806:33;12621:225;:::o;12852:366::-;12994:3;13015:67;13079:2;13074:3;13015:67;:::i;:::-;13008:74;;13091:93;13180:3;13091:93;:::i;:::-;13209:2;13204:3;13200:12;13193:19;;12852:366;;;:::o;13224:419::-;13390:4;13428:2;13417:9;13413:18;13405:26;;13477:9;13471:4;13467:20;13463:1;13452:9;13448:17;13441:47;13505:131;13631:4;13505:131;:::i;:::-;13497:139;;13224:419;;;:::o;13649:223::-;13789:34;13785:1;13777:6;13773:14;13766:58;13858:6;13853:2;13845:6;13841:15;13834:31;13649:223;:::o;13878:366::-;14020:3;14041:67;14105:2;14100:3;14041:67;:::i;:::-;14034:74;;14117:93;14206:3;14117:93;:::i;:::-;14235:2;14230:3;14226:12;14219:19;;13878:366;;;:::o;14250:419::-;14416:4;14454:2;14443:9;14439:18;14431:26;;14503:9;14497:4;14493:20;14489:1;14478:9;14474:17;14467:47;14531:131;14657:4;14531:131;:::i;:::-;14523:139;;14250:419;;;:::o;14675:221::-;14815:34;14811:1;14803:6;14799:14;14792:58;14884:4;14879:2;14871:6;14867:15;14860:29;14675:221;:::o;14902:366::-;15044:3;15065:67;15129:2;15124:3;15065:67;:::i;:::-;15058:74;;15141:93;15230:3;15141:93;:::i;:::-;15259:2;15254:3;15250:12;15243:19;;14902:366;;;:::o;15274:419::-;15440:4;15478:2;15467:9;15463:18;15455:26;;15527:9;15521:4;15517:20;15513:1;15502:9;15498:17;15491:47;15555:131;15681:4;15555:131;:::i;:::-;15547:139;;15274:419;;;:::o;15699:224::-;15839:34;15835:1;15827:6;15823:14;15816:58;15908:7;15903:2;15895:6;15891:15;15884:32;15699:224;:::o;15929:366::-;16071:3;16092:67;16156:2;16151:3;16092:67;:::i;:::-;16085:74;;16168:93;16257:3;16168:93;:::i;:::-;16286:2;16281:3;16277:12;16270:19;;15929:366;;;:::o;16301:419::-;16467:4;16505:2;16494:9;16490:18;16482:26;;16554:9;16548:4;16544:20;16540:1;16529:9;16525:17;16518:47;16582:131;16708:4;16582:131;:::i;:::-;16574:139;;16301:419;;;:::o;16726:222::-;16866:34;16862:1;16854:6;16850:14;16843:58;16935:5;16930:2;16922:6;16918:15;16911:30;16726:222;:::o;16954:366::-;17096:3;17117:67;17181:2;17176:3;17117:67;:::i;:::-;17110:74;;17193:93;17282:3;17193:93;:::i;:::-;17311:2;17306:3;17302:12;17295:19;;16954:366;;;:::o;17326:419::-;17492:4;17530:2;17519:9;17515:18;17507:26;;17579:9;17573:4;17569:20;17565:1;17554:9;17550:17;17543:47;17607:131;17733:4;17607:131;:::i;:::-;17599:139;;17326:419;;;:::o;17751:180::-;17799:77;17796:1;17789:88;17896:4;17893:1;17886:15;17920:4;17917:1;17910:15;17937:191;17977:3;17996:20;18014:1;17996:20;:::i;:::-;17991:25;;18030:20;18048:1;18030:20;:::i;:::-;18025:25;;18073:1;18070;18066:9;18059:16;;18094:3;18091:1;18088:10;18085:36;;;18101:18;;:::i;:::-;18085:36;17937:191;;;;:::o;18134:194::-;18174:4;18194:20;18212:1;18194:20;:::i;:::-;18189:25;;18228:20;18246:1;18228:20;:::i;:::-;18223:25;;18272:1;18269;18265:9;18257:17;;18296:1;18290:4;18287:11;18284:37;;;18301:18;;:::i;:::-;18284:37;18134:194;;;;:::o;18334:225::-;18474:34;18470:1;18462:6;18458:14;18451:58;18543:8;18538:2;18530:6;18526:15;18519:33;18334:225;:::o;18565:366::-;18707:3;18728:67;18792:2;18787:3;18728:67;:::i;:::-;18721:74;;18804:93;18893:3;18804:93;:::i;:::-;18922:2;18917:3;18913:12;18906:19;;18565:366;;;:::o;18937:419::-;19103:4;19141:2;19130:9;19126:18;19118:26;;19190:9;19184:4;19180:20;19176:1;19165:9;19161:17;19154:47;19218:131;19344:4;19218:131;:::i;:::-;19210:139;;18937:419;;;:::o;19362:243::-;19502:34;19498:1;19490:6;19486:14;19479:58;19571:26;19566:2;19558:6;19554:15;19547:51;19362:243;:::o;19611:366::-;19753:3;19774:67;19838:2;19833:3;19774:67;:::i;:::-;19767:74;;19850:93;19939:3;19850:93;:::i;:::-;19968:2;19963:3;19959:12;19952:19;;19611:366;;;:::o;19983:419::-;20149:4;20187:2;20176:9;20172:18;20164:26;;20236:9;20230:4;20226:20;20222:1;20211:9;20207:17;20200:47;20264:131;20390:4;20264:131;:::i;:::-;20256:139;;19983:419;;;:::o;20408:180::-;20456:77;20453:1;20446:88;20553:4;20550:1;20543:15;20577:4;20574:1;20567:15;20594:180;20642:77;20639:1;20632:88;20739:4;20736:1;20729:15;20763:4;20760:1;20753:15;20780:143;20837:5;20868:6;20862:13;20853:22;;20884:33;20911:5;20884:33;:::i;:::-;20780:143;;;;:::o;20929:351::-;20999:6;21048:2;21036:9;21027:7;21023:23;21019:32;21016:119;;;21054:79;;:::i;:::-;21016:119;21174:1;21199:64;21255:7;21246:6;21235:9;21231:22;21199:64;:::i;:::-;21189:74;;21145:128;20929:351;;;;:::o;21286:85::-;21331:7;21360:5;21349:16;;21286:85;;;:::o;21377:158::-;21435:9;21468:61;21486:42;21495:32;21521:5;21495:32;:::i;:::-;21486:42;:::i;:::-;21468:61;:::i;:::-;21455:74;;21377:158;;;:::o;21541:147::-;21636:45;21675:5;21636:45;:::i;:::-;21631:3;21624:58;21541:147;;:::o;21694:114::-;21761:6;21795:5;21789:12;21779:22;;21694:114;;;:::o;21814:184::-;21913:11;21947:6;21942:3;21935:19;21987:4;21982:3;21978:14;21963:29;;21814:184;;;;:::o;22004:132::-;22071:4;22094:3;22086:11;;22124:4;22119:3;22115:14;22107:22;;22004:132;;;:::o;22142:108::-;22219:24;22237:5;22219:24;:::i;:::-;22214:3;22207:37;22142:108;;:::o;22256:179::-;22325:10;22346:46;22388:3;22380:6;22346:46;:::i;:::-;22424:4;22419:3;22415:14;22401:28;;22256:179;;;;:::o;22441:113::-;22511:4;22543;22538:3;22534:14;22526:22;;22441:113;;;:::o;22590:732::-;22709:3;22738:54;22786:5;22738:54;:::i;:::-;22808:86;22887:6;22882:3;22808:86;:::i;:::-;22801:93;;22918:56;22968:5;22918:56;:::i;:::-;22997:7;23028:1;23013:284;23038:6;23035:1;23032:13;23013:284;;;23114:6;23108:13;23141:63;23200:3;23185:13;23141:63;:::i;:::-;23134:70;;23227:60;23280:6;23227:60;:::i;:::-;23217:70;;23073:224;23060:1;23057;23053:9;23048:14;;23013:284;;;23017:14;23313:3;23306:10;;22714:608;;;22590:732;;;;:::o;23328:831::-;23591:4;23629:3;23618:9;23614:19;23606:27;;23643:71;23711:1;23700:9;23696:17;23687:6;23643:71;:::i;:::-;23724:80;23800:2;23789:9;23785:18;23776:6;23724:80;:::i;:::-;23851:9;23845:4;23841:20;23836:2;23825:9;23821:18;23814:48;23879:108;23982:4;23973:6;23879:108;:::i;:::-;23871:116;;23997:72;24065:2;24054:9;24050:18;24041:6;23997:72;:::i;:::-;24079:73;24147:3;24136:9;24132:19;24123:6;24079:73;:::i;:::-;23328:831;;;;;;;;:::o;24165:143::-;24222:5;24253:6;24247:13;24238:22;;24269:33;24296:5;24269:33;:::i;:::-;24165:143;;;;:::o;24314:351::-;24384:6;24433:2;24421:9;24412:7;24408:23;24404:32;24401:119;;;24439:79;;:::i;:::-;24401:119;24559:1;24584:64;24640:7;24631:6;24620:9;24616:22;24584:64;:::i;:::-;24574:74;;24530:128;24314:351;;;;:::o;24671:442::-;24820:4;24858:2;24847:9;24843:18;24835:26;;24871:71;24939:1;24928:9;24924:17;24915:6;24871:71;:::i;:::-;24952:72;25020:2;25009:9;25005:18;24996:6;24952:72;:::i;:::-;25034;25102:2;25091:9;25087:18;25078:6;25034:72;:::i;:::-;24671:442;;;;;;:::o;25119:410::-;25159:7;25182:20;25200:1;25182:20;:::i;:::-;25177:25;;25216:20;25234:1;25216:20;:::i;:::-;25211:25;;25271:1;25268;25264:9;25293:30;25311:11;25293:30;:::i;:::-;25282:41;;25472:1;25463:7;25459:15;25456:1;25453:22;25433:1;25426:9;25406:83;25383:139;;25502:18;;:::i;:::-;25383:139;25167:362;25119:410;;;;:::o;25535:180::-;25583:77;25580:1;25573:88;25680:4;25677:1;25670:15;25704:4;25701:1;25694:15;25721:185;25761:1;25778:20;25796:1;25778:20;:::i;:::-;25773:25;;25812:20;25830:1;25812:20;:::i;:::-;25807:25;;25851:1;25841:35;;25856:18;;:::i;:::-;25841:35;25898:1;25895;25891:9;25886:14;;25721:185;;;;:::o;25912:220::-;26052:34;26048:1;26040:6;26036:14;26029:58;26121:3;26116:2;26108:6;26104:15;26097:28;25912:220;:::o;26138:366::-;26280:3;26301:67;26365:2;26360:3;26301:67;:::i;:::-;26294:74;;26377:93;26466:3;26377:93;:::i;:::-;26495:2;26490:3;26486:12;26479:19;;26138:366;;;:::o;26510:419::-;26676:4;26714:2;26703:9;26699:18;26691:26;;26763:9;26757:4;26753:20;26749:1;26738:9;26734:17;26727:47;26791:131;26917:4;26791:131;:::i;:::-;26783:139;;26510:419;;;:::o;26935:442::-;27084:4;27122:2;27111:9;27107:18;27099:26;;27135:71;27203:1;27192:9;27188:17;27179:6;27135:71;:::i;:::-;27216:72;27284:2;27273:9;27269:18;27260:6;27216:72;:::i;:::-;27298;27366:2;27355:9;27351:18;27342:6;27298:72;:::i;:::-;26935:442;;;;;;:::o;27383:137::-;27437:5;27468:6;27462:13;27453:22;;27484:30;27508:5;27484:30;:::i;:::-;27383:137;;;;:::o;27526:345::-;27593:6;27642:2;27630:9;27621:7;27617:23;27613:32;27610:119;;;27648:79;;:::i;:::-;27610:119;27768:1;27793:61;27846:7;27837:6;27826:9;27822:22;27793:61;:::i;:::-;27783:71;;27739:125;27526:345;;;;:::o;27877:332::-;27998:4;28036:2;28025:9;28021:18;28013:26;;28049:71;28117:1;28106:9;28102:17;28093:6;28049:71;:::i;:::-;28130:72;28198:2;28187:9;28183:18;28174:6;28130:72;:::i;:::-;27877:332;;;;;:::o;28215:1029::-;28520:4;28558:3;28547:9;28543:19;28535:27;;28572:71;28640:1;28629:9;28625:17;28616:6;28572:71;:::i;:::-;28653:72;28721:2;28710:9;28706:18;28697:6;28653:72;:::i;:::-;28735;28803:2;28792:9;28788:18;28779:6;28735:72;:::i;:::-;28817;28885:2;28874:9;28870:18;28861:6;28817:72;:::i;:::-;28899:81;28975:3;28964:9;28960:19;28951:6;28899:81;:::i;:::-;28990;29066:3;29055:9;29051:19;29042:6;28990:81;:::i;:::-;29081:73;29149:3;29138:9;29134:19;29125:6;29081:73;:::i;:::-;29164;29232:3;29221:9;29217:19;29208:6;29164:73;:::i;:::-;28215:1029;;;;;;;;;;;:::o;29250:663::-;29338:6;29346;29354;29403:2;29391:9;29382:7;29378:23;29374:32;29371:119;;;29409:79;;:::i;:::-;29371:119;29529:1;29554:64;29610:7;29601:6;29590:9;29586:22;29554:64;:::i;:::-;29544:74;;29500:128;29667:2;29693:64;29749:7;29740:6;29729:9;29725:22;29693:64;:::i;:::-;29683:74;;29638:129;29806:2;29832:64;29888:7;29879:6;29868:9;29864:22;29832:64;:::i;:::-;29822:74;;29777:129;29250:663;;;;;:::o

Swarm Source

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