ETH Price: $2,920.27 (-7.81%)
Gas: 7 Gwei

Token

Off Radar VPN (ORV)
 

Overview

Max Total Supply

1,000,000 ORV

Holders

191

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000131723 ORV

Value
$0.00
0x1f3ca34e78ccb5581807b51915b0afe304a92450
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x10BaAa89...002DAf8dB
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
offradar

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
 *Submitted for verification at Etherscan.io on 2024-01-17
*/

pragma solidity 0.8.20;

// SPDX-License-Identifier: MIT

/*  TELEGRAM:https://t.me/offradarvpn
    WEBSITE: https://www.offradarvpn.com
    TWITTER: https://twitter.com/offradarvpn
*/


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

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

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

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

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

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

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

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

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

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

interface IERC20Metadata is IERC20{
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

    function contractEthBalance() external view returns (uint256) {
        return address(this).balance;
    }


    /**
     * @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 the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's 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 18;
    }

    /**
     * @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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + 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 at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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 the zero address");

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - 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 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 {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

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

contract offradar is ERC20, Ownable {

    mapping (address => bool) public exemptFromFees;
    mapping (address => bool) public exemptFromLimits;
    mapping(address => bool) public isBlacklisted;

    bool public tradingActive;

    mapping (address => bool) public isAMMPair;

    uint256 public maxTransaction;
    uint256 public maxWallet;

    address public operationsAddress;

    uint256 public buyTax;
    uint256 public sellTax;

    mapping(address => uint256) private _holderLastTransferBlock; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;
    bool public limitsInEffect = true;

    bool private swapping;
    uint256 public swapTokensAtAmt;

    address public lpPair;
    IDexRouter public dexRouter;

    uint256 public constant FEE_DIVISOR = 10000;

    // events

    event UpdatedMaxTransaction(uint256 newMax);
    event UpdatedMaxWallet(uint256 newMax);
    event SetExemptFromFees(address _address, bool _isExempt);
    event SetExemptFromLimits(address _address, bool _isExempt);
    event RemovedLimits();
    event UpdatedBuyTax(uint256 newAmt);
    event UpdatedSellTax(uint256 newAmt);

    // constructor

    constructor(string memory _name, string memory _symbol)
        ERC20(_name, _symbol)
    {   
        address newOwner = 0x2b068559E2576f4559806F4137e3E648CC97b27B;
        _mint(newOwner, 1_000_000 * 1e18);
        uint256 _totalSupply = totalSupply();

        address _v2Router;

        // @dev assumes WETH pair
        if(block.chainid == 1){
            _v2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        } else if(block.chainid == 5){
            _v2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        } else {
            revert("Chain not configured");
        }

        dexRouter = IDexRouter(_v2Router);

        maxTransaction = _totalSupply * 15 / 1000;
        maxWallet = _totalSupply * 15 / 1000;
        swapTokensAtAmt = _totalSupply * 25 / 100000;

        operationsAddress = 0x7C9300270179925EE473D714736be67A97065C3c;

        buyTax = 4900; // 1% = 100
        sellTax = 6000; // 1% = 100

        lpPair = IDexFactory(dexRouter.factory()).createPair(address(this), dexRouter.WETH());

        isAMMPair[lpPair] = true;

        exemptFromLimits[lpPair] = true;
        exemptFromLimits[newOwner] = true;
        exemptFromLimits[address(this)] = true;
        exemptFromLimits[address(dexRouter)] = true;
        

        exemptFromFees[newOwner] = true;
        exemptFromFees[address(this)] = true;
        exemptFromFees[address(dexRouter)] = true;
        
 
        _approve(address(this), address(dexRouter), type(uint256).max);
        transferOwnership(newOwner);
    }

    receive() external payable {}

   function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual override {
        
        // Check if the addresses are blacklisted
        require(!isBlacklisted[from], "Sender is blacklisted");
        require(!isBlacklisted[to], "Recipient is blacklisted");

        if(exemptFromFees[from] || exemptFromFees[to] || swapping){
            super._transfer(from,to,amount);
            return;
        }

        require(tradingActive, "Trading not active");

        if(limitsInEffect){
            checkLimits(from, to, amount);
        }

        amount -= handleTax(from, to, amount);

        super._transfer(from,to,amount);
    }

    function checkLimits(address from, address to, uint256 amount) internal {
        if (transferDelayEnabled){
            if (to != address(dexRouter) && !isAMMPair[to]){
                require(_holderLastTransferBlock[tx.origin] < block.number, "Transfer Delay enabled.");
                _holderLastTransferBlock[tx.origin] = block.number;
            }
        }

        // buy
        if (isAMMPair[from] && !exemptFromLimits[to]) {
            require(amount <= maxTransaction, "Max tx exceeded.");
            require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
        } 
        // sell
        else if (isAMMPair[to] && !exemptFromLimits[from]) {
            require(amount <= maxTransaction, "Max tx exceeded.");
        }
        else if(!exemptFromLimits[to]) {
            require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
        }
    }

    function handleTax(address from, address to, uint256 amount) internal returns (uint256){
        if(balanceOf(address(this)) >= swapTokensAtAmt && !swapping && !isAMMPair[from]) {
            swapping = true;
            swapBack();
            swapping = false;
        }
        
        uint256 tax = 0;

        // on sell
        if (isAMMPair[to] && sellTax > 0){
            tax = amount * sellTax / FEE_DIVISOR;
        }
        // on buy
        else if(isAMMPair[from] && buyTax > 0) {
            tax = amount * buyTax / FEE_DIVISOR;
        }
        
        if(tax > 0){    
            super._transfer(from, address(this), tax);
        }
        
        return tax;
    }

    function swapTokensForETH(uint256 tokenAmt) private {

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

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmt,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {

        uint256 contractBalance = balanceOf(address(this));
        
        if(contractBalance == 0) {return;}

        if(contractBalance > swapTokensAtAmt * 40){
            contractBalance = swapTokensAtAmt * 40;
        }
        
        swapTokensForETH(contractBalance);
            
        if(address(this).balance > 0){
            bool success;
            (success, ) = operationsAddress.call{value: address(this).balance}("");
        }
    }

    // owner functions

    function addToBlacklist(address _address) external onlyOwner {
        require(_address != address(0), "Zero Address");
        isBlacklisted[_address] = true;
    }

    function removeFromBlacklist(address _address) external onlyOwner {
        require(_address != address(0), "Zero Address");
        isBlacklisted[_address] = false;
    }

    function setExemptFromFees(address _address, bool _isExempt) external onlyOwner {
        require(_address != address(0), "Zero Address");
        exemptFromFees[_address] = _isExempt;
        emit SetExemptFromFees(_address, _isExempt);
    }

    function setExemptFromLimits(address _address, bool _isExempt) external onlyOwner {
        require(_address != address(0), "Zero Address");
        if(!_isExempt){
            require(_address != lpPair, "Pair");
        }
        exemptFromLimits[_address] = _isExempt;
        emit SetExemptFromLimits(_address, _isExempt);
    }

    function updateMaxTransaction(uint256 newNumInTokens) external onlyOwner {
        require(newNumInTokens >= (totalSupply() * 5 / 1000)/(10**decimals()), "Too low");
        maxTransaction = newNumInTokens * (10**decimals());
        emit UpdatedMaxTransaction(maxTransaction);
    }

    function updateMaxWallet(uint256 newNumInTokens) external onlyOwner {
        require(newNumInTokens >= (totalSupply() * 1 / 100)/(10**decimals()), "Too low");
        maxWallet = newNumInTokens * (10**decimals());
        emit UpdatedMaxWallet(maxWallet);
    }

    function updateTaxes(uint256 _buyTax, uint256 _sellTax) external onlyOwner {
        buyTax = _buyTax;
        emit UpdatedBuyTax(buyTax);
        sellTax = _sellTax;
        emit UpdatedSellTax(sellTax);
    }

    function enableTrading() external onlyOwner {
        require(!tradingActive, "Trading active");
        tradingActive = true;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        transferDelayEnabled = false;
        maxTransaction = totalSupply();
        maxWallet = totalSupply();
        emit RemovedLimits();
    }

    function disableTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }

    function updateOperationsAddress(address _address) external onlyOwner {
        require(_address != address(0), "zero address");
        operationsAddress = _address;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetExemptFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetExemptFromLimits","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":false,"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"UpdatedBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"UpdatedMaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"UpdatedMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"UpdatedSellTax","type":"event"},{"inputs":[],"name":"FEE_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractEthBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isAMMPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"setExemptFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"setExemptFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmt","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":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"uint256","name":"newNumInTokens","type":"uint256"}],"name":"updateMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNumInTokens","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateOperationsAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160115f6101000a81548160ff0219169083151502179055506001601160016101000a81548160ff02191690831515021790555034801562000045575f80fd5b5060405162005b1738038062005b1783398181016040528101906200006b919062000f40565b818181600390816200007e9190620011fa565b508060049081620000909190620011fa565b5050505f620000a4620008a160201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f732b068559e2576f4559806f4137e3e648cc97b27b9050620001758169d3c21bcecceda1000000620008a860201b60201c565b5f6200018662000a0d60201b60201c565b90505f60014603620001af57737a250d5630b4cf539739df2c5dacb4c659f2488d905062000213565b60054603620001d557737a250d5630b4cf539739df2c5dacb4c659f2488d905062000212565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000209906200133c565b60405180910390fd5b5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8600f8362000265919062001389565b62000271919062001400565b600b819055506103e8600f8362000289919062001389565b62000295919062001400565b600c81905550620186a0601983620002ae919062001389565b620002ba919062001400565b601281905550737c9300270179925ee473d714736be67a97065c3c600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611324600e81905550611770600f8190555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000391573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b7919062001498565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200043e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000464919062001498565b6040518363ffffffff1660e01b815260040162000483929190620014d9565b6020604051808303815f875af1158015620004a0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004c6919062001498565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620008853060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000a1660201b60201c565b620008968362000be160201b60201c565b505050505062001802565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000919576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009109062001552565b60405180910390fd5b6200092c5f838362000db160201b60201c565b8060025f8282546200093f919062001572565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009ee9190620015bd565b60405180910390a362000a095f838362000db660201b60201c565b5050565b5f600254905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a7e906200164c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aef90620016e0565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000bd49190620015bd565b60405180910390a3505050565b62000bf1620008a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000c82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c79906200174e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000cf3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cea90620017e2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000e1c8262000dd4565b810181811067ffffffffffffffff8211171562000e3e5762000e3d62000de4565b5b80604052505050565b5f62000e5262000dbb565b905062000e60828262000e11565b919050565b5f67ffffffffffffffff82111562000e825762000e8162000de4565b5b62000e8d8262000dd4565b9050602081019050919050565b5f5b8381101562000eb957808201518184015260208101905062000e9c565b5f8484015250505050565b5f62000eda62000ed48462000e65565b62000e47565b90508281526020810184848401111562000ef95762000ef862000dd0565b5b62000f0684828562000e9a565b509392505050565b5f82601f83011262000f255762000f2462000dcc565b5b815162000f3784826020860162000ec4565b91505092915050565b5f806040838503121562000f595762000f5862000dc4565b5b5f83015167ffffffffffffffff81111562000f795762000f7862000dc8565b5b62000f878582860162000f0e565b925050602083015167ffffffffffffffff81111562000fab5762000faa62000dc8565b5b62000fb98582860162000f0e565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200101257607f821691505b60208210810362001028576200102762000fcd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200108c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200104f565b6200109886836200104f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620010e2620010dc620010d684620010b0565b620010b9565b620010b0565b9050919050565b5f819050919050565b620010fd83620010c2565b620011156200110c82620010e9565b8484546200105b565b825550505050565b5f90565b6200112b6200111d565b62001138818484620010f2565b505050565b5b818110156200115f57620011535f8262001121565b6001810190506200113e565b5050565b601f821115620011ae5762001178816200102e565b620011838462001040565b8101602085101562001193578190505b620011ab620011a28562001040565b8301826200113d565b50505b505050565b5f82821c905092915050565b5f620011d05f1984600802620011b3565b1980831691505092915050565b5f620011ea8383620011bf565b9150826002028217905092915050565b620012058262000fc3565b67ffffffffffffffff81111562001221576200122062000de4565b5b6200122d825462000ffa565b6200123a82828562001163565b5f60209050601f83116001811462001270575f84156200125b578287015190505b620012678582620011dd565b865550620012d6565b601f19841662001280866200102e565b5f5b82811015620012a95784890151825560018201915060208501945060208101905062001282565b86831015620012c95784890151620012c5601f891682620011bf565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f436861696e206e6f7420636f6e666967757265640000000000000000000000005f82015250565b5f62001324601483620012de565b91506200133182620012ee565b602082019050919050565b5f6020820190508181035f830152620013558162001316565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200139582620010b0565b9150620013a283620010b0565b9250828202620013b281620010b0565b91508282048414831517620013cc57620013cb6200135c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200140c82620010b0565b91506200141983620010b0565b9250826200142c576200142b620013d3565b5b828204905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620014628262001437565b9050919050565b620014748162001456565b81146200147f575f80fd5b50565b5f81519050620014928162001469565b92915050565b5f60208284031215620014b057620014af62000dc4565b5b5f620014bf8482850162001482565b91505092915050565b620014d38162001456565b82525050565b5f604082019050620014ee5f830185620014c8565b620014fd6020830184620014c8565b9392505050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6200153a601f83620012de565b9150620015478262001504565b602082019050919050565b5f6020820190508181035f8301526200156b816200152c565b9050919050565b5f6200157e82620010b0565b91506200158b83620010b0565b9250828201905080821115620015a657620015a56200135c565b5b92915050565b620015b781620010b0565b82525050565b5f602082019050620015d25f830184620015ac565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62001634602483620012de565b91506200164182620015d8565b604082019050919050565b5f6020820190508181035f830152620016658162001626565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f620016c8602283620012de565b9150620016d5826200166c565b604082019050919050565b5f6020820190508181035f830152620016f981620016ba565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62001736602083620012de565b9150620017438262001700565b602082019050919050565b5f6020820190508181035f830152620017678162001728565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f620017ca602683620012de565b9150620017d7826200176e565b604082019050919050565b5f6020820190508181035f830152620017fb81620017bc565b9050919050565b61430780620018105f395ff3fe608060405260043610610254575f3560e01c80638a8c523c11610138578063c3f70b52116100b5578063e884f26011610079578063e884f260146108b1578063ea4cfe12146108c7578063ea6debd0146108f1578063f2fde38b14610919578063f8b45b0514610941578063fe575a871461096b5761025b565b8063c3f70b52146107cd578063c78d0fa0146107f7578063c876d0b914610821578063cc1776d31461084b578063dd62ed3e146108755761025b565b8063a13d1a2b116100fc578063a13d1a2b146106c7578063a457c2d7146106ef578063a9059cbb1461072b578063b0249cc614610767578063bbc0c742146107a35761025b565b80638a8c523c146105f75780638d3e6e401461060d5780638da5cb5b1461064957806395d89b41146106735780639e93ad8e1461069d5761025b565b806344337ea1116101d15780635a90a49e116101955780635a90a49e146105015780635d58ce361461053d57806370a0823114610567578063715018a6146105a3578063751039fc146105b957806377b27d1f146105cf5761025b565b806344337ea114610433578063452ed4f11461045b5780634a62bb65146104855780634f7041a5146104af578063537df3b6146104d95761025b565b806318160ddd1161021857806318160ddd1461033f5780631c499ab01461036957806323b872dd14610391578063313ce567146103cd57806339509351146103f75761025b565b80630517d13d1461025f57806306fdde03146102875780630758d924146102b1578063095ea7b3146102db5780631006ee0c146103175761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b5061028560048036038101906102809190613060565b6109a7565b005b348015610292575f80fd5b5061029b610b1f565b6040516102a89190613115565b60405180910390f35b3480156102bc575f80fd5b506102c5610baf565b6040516102d291906131af565b60405180910390f35b3480156102e6575f80fd5b5061030160048036038101906102fc9190613203565b610bd4565b60405161030e919061325b565b60405180910390f35b348015610322575f80fd5b5061033d60048036038101906103389190613274565b610bf6565b005b34801561034a575f80fd5b50610353610d10565b60405161036091906132c1565b60405180910390f35b348015610374575f80fd5b5061038f600480360381019061038a9190613060565b610d19565b005b34801561039c575f80fd5b506103b760048036038101906103b291906132da565b610e90565b6040516103c4919061325b565b60405180910390f35b3480156103d8575f80fd5b506103e1610ebe565b6040516103ee9190613345565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190613203565b610ec6565b60405161042a919061325b565b60405180910390f35b34801561043e575f80fd5b506104596004803603810190610454919061335e565b610efc565b005b348015610466575f80fd5b5061046f611058565b60405161047c9190613398565b60405180910390f35b348015610490575f80fd5b5061049961107d565b6040516104a6919061325b565b60405180910390f35b3480156104ba575f80fd5b506104c3611090565b6040516104d091906132c1565b60405180910390f35b3480156104e4575f80fd5b506104ff60048036038101906104fa919061335e565b611096565b005b34801561050c575f80fd5b506105276004803603810190610522919061335e565b6111f1565b604051610534919061325b565b60405180910390f35b348015610548575f80fd5b5061055161120e565b60405161055e91906132c1565b60405180910390f35b348015610572575f80fd5b5061058d6004803603810190610588919061335e565b611215565b60405161059a91906132c1565b60405180910390f35b3480156105ae575f80fd5b506105b761125a565b005b3480156105c4575f80fd5b506105cd6113ad565b005b3480156105da575f80fd5b506105f560048036038101906105f091906133db565b6114c0565b005b348015610602575f80fd5b5061060b611655565b005b348015610618575f80fd5b50610633600480360381019061062e919061335e565b611756565b604051610640919061325b565b60405180910390f35b348015610654575f80fd5b5061065d611773565b60405161066a9190613398565b60405180910390f35b34801561067e575f80fd5b5061068761179b565b6040516106949190613115565b60405180910390f35b3480156106a8575f80fd5b506106b161182b565b6040516106be91906132c1565b60405180910390f35b3480156106d2575f80fd5b506106ed60048036038101906106e891906133db565b611831565b005b3480156106fa575f80fd5b5061071560048036038101906107109190613203565b611a5b565b604051610722919061325b565b60405180910390f35b348015610736575f80fd5b50610751600480360381019061074c9190613203565b611ad0565b60405161075e919061325b565b60405180910390f35b348015610772575f80fd5b5061078d6004803603810190610788919061335e565b611af2565b60405161079a919061325b565b60405180910390f35b3480156107ae575f80fd5b506107b7611b0f565b6040516107c4919061325b565b60405180910390f35b3480156107d8575f80fd5b506107e1611b21565b6040516107ee91906132c1565b60405180910390f35b348015610802575f80fd5b5061080b611b27565b60405161081891906132c1565b60405180910390f35b34801561082c575f80fd5b50610835611b2d565b604051610842919061325b565b60405180910390f35b348015610856575f80fd5b5061085f611b3f565b60405161086c91906132c1565b60405180910390f35b348015610880575f80fd5b5061089b60048036038101906108969190613419565b611b45565b6040516108a891906132c1565b60405180910390f35b3480156108bc575f80fd5b506108c5611bc7565b005b3480156108d2575f80fd5b506108db611c78565b6040516108e89190613398565b60405180910390f35b3480156108fc575f80fd5b506109176004803603810190610912919061335e565b611c9d565b005b348015610924575f80fd5b5061093f600480360381019061093a919061335e565b611de4565b005b34801561094c575f80fd5b50610955611fa6565b60405161096291906132c1565b60405180910390f35b348015610976575f80fd5b50610991600480360381019061098c919061335e565b611fac565b60405161099e919061325b565b60405180910390f35b6109af611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a34906134a1565b60405180910390fd5b610a45610ebe565b600a610a51919061361b565b6103e86005610a5e610d10565b610a689190613665565b610a7291906136d3565b610a7c91906136d3565b811015610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061374d565b60405180910390fd5b610ac6610ebe565b600a610ad2919061361b565b81610add9190613665565b600b819055507f76a9278644b7300961aa0e7e86f10934585987f1daf1c6ecc971c18376691574600b54604051610b1491906132c1565b60405180910390a150565b606060038054610b2e90613798565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5a90613798565b8015610ba55780601f10610b7c57610100808354040283529160200191610ba5565b820191905f5260205f20905b815481529060010190602001808311610b8857829003601f168201915b5050505050905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80610bde611fc9565b9050610beb818585611fd0565b600191505092915050565b610bfe611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c83906134a1565b60405180910390fd5b81600e819055507f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece0508600e54604051610cc491906132c1565b60405180910390a180600f819055507fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c97600f54604051610d0491906132c1565b60405180910390a15050565b5f600254905090565b610d21611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da6906134a1565b60405180910390fd5b610db7610ebe565b600a610dc3919061361b565b60646001610dcf610d10565b610dd99190613665565b610de391906136d3565b610ded91906136d3565b811015610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e269061374d565b60405180910390fd5b610e37610ebe565b600a610e43919061361b565b81610e4e9190613665565b600c819055507f3046ad62de8b70d396246aaed19ff2559ff20df8706520cbde58320766c42762600c54604051610e8591906132c1565b60405180910390a150565b5f80610e9a611fc9565b9050610ea7858285612193565b610eb285858561221e565b60019150509392505050565b5f6012905090565b5f80610ed0611fc9565b9050610ef1818585610ee28589611b45565b610eec91906137c8565b611fd0565b600191505092915050565b610f04611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f89906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff790613845565b60405180910390fd5b600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160019054906101000a900460ff1681565b600e5481565b61109e611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611123906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190613845565b60405180910390fd5b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f47905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611262611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e7906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113b5611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a906134a1565b60405180910390fd5b5f601160016101000a81548160ff0219169083151502179055505f60115f6101000a81548160ff02191690831515021790555061147e610d10565b600b8190555061148c610d10565b600c819055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6114c8611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb90613845565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d8282604051611649929190613863565b60405180910390a15050565b61165d611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e2906134a1565b60405180910390fd5b60095f9054906101000a900460ff161561173a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611731906138d4565b60405180910390fd5b600160095f6101000a81548160ff021916908315150217905550565b6007602052805f5260405f205f915054906101000a900460ff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546117aa90613798565b80601f01602080910402602001604051908101604052809291908181526020018280546117d690613798565b80156118215780601f106117f857610100808354040283529160200191611821565b820191905f5260205f20905b81548152906001019060200180831161180457829003601f168201915b5050505050905090565b61271081565b611839611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613845565b60405180910390fd5b806119ca5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c09061393c565b60405180910390fd5b5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce8282604051611a4f929190613863565b60405180910390a15050565b5f80611a65611fc9565b90505f611a728286611b45565b905083811015611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae906139ca565b60405180910390fd5b611ac48286868403611fd0565b60019250505092915050565b5f80611ada611fc9565b9050611ae781858561221e565b600191505092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b60095f9054906101000a900460ff1681565b600b5481565b60125481565b60115f9054906101000a900460ff1681565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611bcf611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c54906134a1565b60405180910390fd5b5f60115f6101000a81548160ff021916908315150217905550565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ca5611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890613a32565b60405180910390fd5b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611dec611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e71906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edf90613ac0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b6008602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613b4e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a390613bdc565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161218691906132c1565b60405180910390a3505050565b5f61219e8484611b45565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612218578181101561220a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220190613c44565b60405180910390fd5b6122178484848403611fd0565b5b50505050565b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f90613cac565b60405180910390fd5b60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232990613d14565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806123cd575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806123e45750601160029054906101000a900460ff165b156123f9576123f4838383612491565b61248c565b60095f9054906101000a900460ff16612447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243e90613d7c565b60405180910390fd5b601160019054906101000a900460ff1615612468576124678383836126fd565b5b612473838383612b5b565b8161247e9190613d9a565b905061248b838383612491565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f690613e3d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256490613ecb565b60405180910390fd5b612578838383612d32565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156125fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f290613f59565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126e491906132c1565b60405180910390a36126f7848484612d37565b50505050565b60115f9054906101000a900460ff161561287d5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156127b55750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561287c574360105f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283090613fc1565b60405180910390fd5b4360105f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561291a575060075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129c157600b54811115612964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295b90614029565b60405180910390fd5b600c5461297083611215565b8261297b91906137c8565b11156129bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b390614091565b60405180910390fd5b612b56565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612a5e575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612aad57600b54811115612aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9f90614029565b60405180910390fd5b612b55565b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612b5457600c54612b0783611215565b82612b1291906137c8565b1115612b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4a90614091565b60405180910390fd5b5b5b5b505050565b5f601254612b6830611215565b10158015612b835750601160029054906101000a900460ff16155b8015612bd65750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612c19576001601160026101000a81548160ff021916908315150217905550612bfe612d3c565b5f601160026101000a81548160ff0219169083151502179055505b5f600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7157505f600f54115b15612c9857612710600f5484612c879190613665565b612c9191906136d3565b9050612d13565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612cef57505f600e54115b15612d1257612710600e5484612d059190613665565b612d0f91906136d3565b90505b5b5f811115612d2757612d26853083612491565b5b809150509392505050565b505050565b505050565b5f612d4630611215565b90505f8103612d555750612e1d565b6028601254612d649190613665565b811115612d7d576028601254612d7a9190613665565b90505b612d8681612e1f565b5f471115612e1b575f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612dd4906140dc565b5f6040518083038185875af1925050503d805f8114612e0e576040519150601f19603f3d011682016040523d82523d5f602084013e612e13565b606091505b505080915050505b505b565b5f600267ffffffffffffffff811115612e3b57612e3a6140f0565b5b604051908082528060200260200182016040528015612e695781602001602082028036833780820191505090505b50905030815f81518110612e8057612e7f61411d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f48919061415e565b81600181518110612f5c57612f5b61411d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612ff8959493929190614279565b5f604051808303815f87803b15801561300f575f80fd5b505af1158015613021573d5f803e3d5ffd5b505050505050565b5f80fd5b5f819050919050565b61303f8161302d565b8114613049575f80fd5b50565b5f8135905061305a81613036565b92915050565b5f6020828403121561307557613074613029565b5b5f6130828482850161304c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156130c25780820151818401526020810190506130a7565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130e78261308b565b6130f18185613095565b93506131018185602086016130a5565b61310a816130cd565b840191505092915050565b5f6020820190508181035f83015261312d81846130dd565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61317761317261316d84613135565b613154565b613135565b9050919050565b5f6131888261315d565b9050919050565b5f6131998261317e565b9050919050565b6131a98161318f565b82525050565b5f6020820190506131c25f8301846131a0565b92915050565b5f6131d282613135565b9050919050565b6131e2816131c8565b81146131ec575f80fd5b50565b5f813590506131fd816131d9565b92915050565b5f806040838503121561321957613218613029565b5b5f613226858286016131ef565b92505060206132378582860161304c565b9150509250929050565b5f8115159050919050565b61325581613241565b82525050565b5f60208201905061326e5f83018461324c565b92915050565b5f806040838503121561328a57613289613029565b5b5f6132978582860161304c565b92505060206132a88582860161304c565b9150509250929050565b6132bb8161302d565b82525050565b5f6020820190506132d45f8301846132b2565b92915050565b5f805f606084860312156132f1576132f0613029565b5b5f6132fe868287016131ef565b935050602061330f868287016131ef565b92505060406133208682870161304c565b9150509250925092565b5f60ff82169050919050565b61333f8161332a565b82525050565b5f6020820190506133585f830184613336565b92915050565b5f6020828403121561337357613372613029565b5b5f613380848285016131ef565b91505092915050565b613392816131c8565b82525050565b5f6020820190506133ab5f830184613389565b92915050565b6133ba81613241565b81146133c4575f80fd5b50565b5f813590506133d5816133b1565b92915050565b5f80604083850312156133f1576133f0613029565b5b5f6133fe858286016131ef565b925050602061340f858286016133c7565b9150509250929050565b5f806040838503121561342f5761342e613029565b5b5f61343c858286016131ef565b925050602061344d858286016131ef565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61348b602083613095565b915061349682613457565b602082019050919050565b5f6020820190508181035f8301526134b88161347f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156135415780860481111561351d5761351c6134bf565b5b600185161561352c5780820291505b808102905061353a856134ec565b9450613501565b94509492505050565b5f826135595760019050613614565b81613566575f9050613614565b816001811461357c5760028114613586576135b5565b6001915050613614565b60ff841115613598576135976134bf565b5b8360020a9150848211156135af576135ae6134bf565b5b50613614565b5060208310610133831016604e8410600b84101617156135ea5782820a9050838111156135e5576135e46134bf565b5b613614565b6135f784848460016134f8565b9250905081840481111561360e5761360d6134bf565b5b81810290505b9392505050565b5f6136258261302d565b91506136308361332a565b925061365d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461354a565b905092915050565b5f61366f8261302d565b915061367a8361302d565b92508282026136888161302d565b9150828204841483151761369f5761369e6134bf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6136dd8261302d565b91506136e88361302d565b9250826136f8576136f76136a6565b5b828204905092915050565b7f546f6f206c6f77000000000000000000000000000000000000000000000000005f82015250565b5f613737600783613095565b915061374282613703565b602082019050919050565b5f6020820190508181035f8301526137648161372b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806137af57607f821691505b6020821081036137c2576137c161376b565b5b50919050565b5f6137d28261302d565b91506137dd8361302d565b92508282019050808211156137f5576137f46134bf565b5b92915050565b7f5a65726f204164647265737300000000000000000000000000000000000000005f82015250565b5f61382f600c83613095565b915061383a826137fb565b602082019050919050565b5f6020820190508181035f83015261385c81613823565b9050919050565b5f6040820190506138765f830185613389565b613883602083018461324c565b9392505050565b7f54726164696e67206163746976650000000000000000000000000000000000005f82015250565b5f6138be600e83613095565b91506138c98261388a565b602082019050919050565b5f6020820190508181035f8301526138eb816138b2565b9050919050565b7f50616972000000000000000000000000000000000000000000000000000000005f82015250565b5f613926600483613095565b9150613931826138f2565b602082019050919050565b5f6020820190508181035f8301526139538161391a565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6139b4602583613095565b91506139bf8261395a565b604082019050919050565b5f6020820190508181035f8301526139e1816139a8565b9050919050565b7f7a65726f206164647265737300000000000000000000000000000000000000005f82015250565b5f613a1c600c83613095565b9150613a27826139e8565b602082019050919050565b5f6020820190508181035f830152613a4981613a10565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613aaa602683613095565b9150613ab582613a50565b604082019050919050565b5f6020820190508181035f830152613ad781613a9e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613b38602483613095565b9150613b4382613ade565b604082019050919050565b5f6020820190508181035f830152613b6581613b2c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613bc6602283613095565b9150613bd182613b6c565b604082019050919050565b5f6020820190508181035f830152613bf381613bba565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613c2e601d83613095565b9150613c3982613bfa565b602082019050919050565b5f6020820190508181035f830152613c5b81613c22565b9050919050565b7f53656e64657220697320626c61636b6c697374656400000000000000000000005f82015250565b5f613c96601583613095565b9150613ca182613c62565b602082019050919050565b5f6020820190508181035f830152613cc381613c8a565b9050919050565b7f526563697069656e7420697320626c61636b6c697374656400000000000000005f82015250565b5f613cfe601883613095565b9150613d0982613cca565b602082019050919050565b5f6020820190508181035f830152613d2b81613cf2565b9050919050565b7f54726164696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f613d66601283613095565b9150613d7182613d32565b602082019050919050565b5f6020820190508181035f830152613d9381613d5a565b9050919050565b5f613da48261302d565b9150613daf8361302d565b9250828203905081811115613dc757613dc66134bf565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613e27602583613095565b9150613e3282613dcd565b604082019050919050565b5f6020820190508181035f830152613e5481613e1b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613eb5602383613095565b9150613ec082613e5b565b604082019050919050565b5f6020820190508181035f830152613ee281613ea9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613f43602683613095565b9150613f4e82613ee9565b604082019050919050565b5f6020820190508181035f830152613f7081613f37565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e0000000000000000005f82015250565b5f613fab601783613095565b9150613fb682613f77565b602082019050919050565b5f6020820190508181035f830152613fd881613f9f565b9050919050565b7f4d61782074782065786365656465642e000000000000000000000000000000005f82015250565b5f614013601083613095565b915061401e82613fdf565b602082019050919050565b5f6020820190508181035f83015261404081614007565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f61407b601383613095565b915061408682614047565b602082019050919050565b5f6020820190508181035f8301526140a88161406f565b9050919050565b5f81905092915050565b50565b5f6140c75f836140af565b91506140d2826140b9565b5f82019050919050565b5f6140e6826140bc565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614158816131d9565b92915050565b5f6020828403121561417357614172613029565b5b5f6141808482850161414a565b91505092915050565b5f819050919050565b5f6141ac6141a76141a284614189565b613154565b61302d565b9050919050565b6141bc81614192565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141f4816131c8565b82525050565b5f61420583836141eb565b60208301905092915050565b5f602082019050919050565b5f614227826141c2565b61423181856141cc565b935061423c836141dc565b805f5b8381101561426c57815161425388826141fa565b975061425e83614211565b92505060018101905061423f565b5085935050505092915050565b5f60a08201905061428c5f8301886132b2565b61429960208301876141b3565b81810360408301526142ab818661421d565b90506142ba6060830185613389565b6142c760808301846132b2565b969550505050505056fea26469706673582212209a2fd7a491d0ae5a2a964b90856fefd7615aa5ec1bf3e4eca33eb92707eb1fb864736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000d4f66662052616461722056504e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034f52560000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405260043610610254575f3560e01c80638a8c523c11610138578063c3f70b52116100b5578063e884f26011610079578063e884f260146108b1578063ea4cfe12146108c7578063ea6debd0146108f1578063f2fde38b14610919578063f8b45b0514610941578063fe575a871461096b5761025b565b8063c3f70b52146107cd578063c78d0fa0146107f7578063c876d0b914610821578063cc1776d31461084b578063dd62ed3e146108755761025b565b8063a13d1a2b116100fc578063a13d1a2b146106c7578063a457c2d7146106ef578063a9059cbb1461072b578063b0249cc614610767578063bbc0c742146107a35761025b565b80638a8c523c146105f75780638d3e6e401461060d5780638da5cb5b1461064957806395d89b41146106735780639e93ad8e1461069d5761025b565b806344337ea1116101d15780635a90a49e116101955780635a90a49e146105015780635d58ce361461053d57806370a0823114610567578063715018a6146105a3578063751039fc146105b957806377b27d1f146105cf5761025b565b806344337ea114610433578063452ed4f11461045b5780634a62bb65146104855780634f7041a5146104af578063537df3b6146104d95761025b565b806318160ddd1161021857806318160ddd1461033f5780631c499ab01461036957806323b872dd14610391578063313ce567146103cd57806339509351146103f75761025b565b80630517d13d1461025f57806306fdde03146102875780630758d924146102b1578063095ea7b3146102db5780631006ee0c146103175761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b5061028560048036038101906102809190613060565b6109a7565b005b348015610292575f80fd5b5061029b610b1f565b6040516102a89190613115565b60405180910390f35b3480156102bc575f80fd5b506102c5610baf565b6040516102d291906131af565b60405180910390f35b3480156102e6575f80fd5b5061030160048036038101906102fc9190613203565b610bd4565b60405161030e919061325b565b60405180910390f35b348015610322575f80fd5b5061033d60048036038101906103389190613274565b610bf6565b005b34801561034a575f80fd5b50610353610d10565b60405161036091906132c1565b60405180910390f35b348015610374575f80fd5b5061038f600480360381019061038a9190613060565b610d19565b005b34801561039c575f80fd5b506103b760048036038101906103b291906132da565b610e90565b6040516103c4919061325b565b60405180910390f35b3480156103d8575f80fd5b506103e1610ebe565b6040516103ee9190613345565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190613203565b610ec6565b60405161042a919061325b565b60405180910390f35b34801561043e575f80fd5b506104596004803603810190610454919061335e565b610efc565b005b348015610466575f80fd5b5061046f611058565b60405161047c9190613398565b60405180910390f35b348015610490575f80fd5b5061049961107d565b6040516104a6919061325b565b60405180910390f35b3480156104ba575f80fd5b506104c3611090565b6040516104d091906132c1565b60405180910390f35b3480156104e4575f80fd5b506104ff60048036038101906104fa919061335e565b611096565b005b34801561050c575f80fd5b506105276004803603810190610522919061335e565b6111f1565b604051610534919061325b565b60405180910390f35b348015610548575f80fd5b5061055161120e565b60405161055e91906132c1565b60405180910390f35b348015610572575f80fd5b5061058d6004803603810190610588919061335e565b611215565b60405161059a91906132c1565b60405180910390f35b3480156105ae575f80fd5b506105b761125a565b005b3480156105c4575f80fd5b506105cd6113ad565b005b3480156105da575f80fd5b506105f560048036038101906105f091906133db565b6114c0565b005b348015610602575f80fd5b5061060b611655565b005b348015610618575f80fd5b50610633600480360381019061062e919061335e565b611756565b604051610640919061325b565b60405180910390f35b348015610654575f80fd5b5061065d611773565b60405161066a9190613398565b60405180910390f35b34801561067e575f80fd5b5061068761179b565b6040516106949190613115565b60405180910390f35b3480156106a8575f80fd5b506106b161182b565b6040516106be91906132c1565b60405180910390f35b3480156106d2575f80fd5b506106ed60048036038101906106e891906133db565b611831565b005b3480156106fa575f80fd5b5061071560048036038101906107109190613203565b611a5b565b604051610722919061325b565b60405180910390f35b348015610736575f80fd5b50610751600480360381019061074c9190613203565b611ad0565b60405161075e919061325b565b60405180910390f35b348015610772575f80fd5b5061078d6004803603810190610788919061335e565b611af2565b60405161079a919061325b565b60405180910390f35b3480156107ae575f80fd5b506107b7611b0f565b6040516107c4919061325b565b60405180910390f35b3480156107d8575f80fd5b506107e1611b21565b6040516107ee91906132c1565b60405180910390f35b348015610802575f80fd5b5061080b611b27565b60405161081891906132c1565b60405180910390f35b34801561082c575f80fd5b50610835611b2d565b604051610842919061325b565b60405180910390f35b348015610856575f80fd5b5061085f611b3f565b60405161086c91906132c1565b60405180910390f35b348015610880575f80fd5b5061089b60048036038101906108969190613419565b611b45565b6040516108a891906132c1565b60405180910390f35b3480156108bc575f80fd5b506108c5611bc7565b005b3480156108d2575f80fd5b506108db611c78565b6040516108e89190613398565b60405180910390f35b3480156108fc575f80fd5b506109176004803603810190610912919061335e565b611c9d565b005b348015610924575f80fd5b5061093f600480360381019061093a919061335e565b611de4565b005b34801561094c575f80fd5b50610955611fa6565b60405161096291906132c1565b60405180910390f35b348015610976575f80fd5b50610991600480360381019061098c919061335e565b611fac565b60405161099e919061325b565b60405180910390f35b6109af611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a34906134a1565b60405180910390fd5b610a45610ebe565b600a610a51919061361b565b6103e86005610a5e610d10565b610a689190613665565b610a7291906136d3565b610a7c91906136d3565b811015610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061374d565b60405180910390fd5b610ac6610ebe565b600a610ad2919061361b565b81610add9190613665565b600b819055507f76a9278644b7300961aa0e7e86f10934585987f1daf1c6ecc971c18376691574600b54604051610b1491906132c1565b60405180910390a150565b606060038054610b2e90613798565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5a90613798565b8015610ba55780601f10610b7c57610100808354040283529160200191610ba5565b820191905f5260205f20905b815481529060010190602001808311610b8857829003601f168201915b5050505050905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80610bde611fc9565b9050610beb818585611fd0565b600191505092915050565b610bfe611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c83906134a1565b60405180910390fd5b81600e819055507f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece0508600e54604051610cc491906132c1565b60405180910390a180600f819055507fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c97600f54604051610d0491906132c1565b60405180910390a15050565b5f600254905090565b610d21611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da6906134a1565b60405180910390fd5b610db7610ebe565b600a610dc3919061361b565b60646001610dcf610d10565b610dd99190613665565b610de391906136d3565b610ded91906136d3565b811015610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e269061374d565b60405180910390fd5b610e37610ebe565b600a610e43919061361b565b81610e4e9190613665565b600c819055507f3046ad62de8b70d396246aaed19ff2559ff20df8706520cbde58320766c42762600c54604051610e8591906132c1565b60405180910390a150565b5f80610e9a611fc9565b9050610ea7858285612193565b610eb285858561221e565b60019150509392505050565b5f6012905090565b5f80610ed0611fc9565b9050610ef1818585610ee28589611b45565b610eec91906137c8565b611fd0565b600191505092915050565b610f04611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f89906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff790613845565b60405180910390fd5b600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160019054906101000a900460ff1681565b600e5481565b61109e611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611123906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190613845565b60405180910390fd5b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f47905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611262611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e7906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113b5611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a906134a1565b60405180910390fd5b5f601160016101000a81548160ff0219169083151502179055505f60115f6101000a81548160ff02191690831515021790555061147e610d10565b600b8190555061148c610d10565b600c819055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6114c8611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb90613845565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d8282604051611649929190613863565b60405180910390a15050565b61165d611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e2906134a1565b60405180910390fd5b60095f9054906101000a900460ff161561173a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611731906138d4565b60405180910390fd5b600160095f6101000a81548160ff021916908315150217905550565b6007602052805f5260405f205f915054906101000a900460ff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546117aa90613798565b80601f01602080910402602001604051908101604052809291908181526020018280546117d690613798565b80156118215780601f106117f857610100808354040283529160200191611821565b820191905f5260205f20905b81548152906001019060200180831161180457829003601f168201915b5050505050905090565b61271081565b611839611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613845565b60405180910390fd5b806119ca5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c09061393c565b60405180910390fd5b5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce8282604051611a4f929190613863565b60405180910390a15050565b5f80611a65611fc9565b90505f611a728286611b45565b905083811015611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae906139ca565b60405180910390fd5b611ac48286868403611fd0565b60019250505092915050565b5f80611ada611fc9565b9050611ae781858561221e565b600191505092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b60095f9054906101000a900460ff1681565b600b5481565b60125481565b60115f9054906101000a900460ff1681565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611bcf611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c54906134a1565b60405180910390fd5b5f60115f6101000a81548160ff021916908315150217905550565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ca5611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890613a32565b60405180910390fd5b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611dec611fc9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e71906134a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edf90613ac0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b6008602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613b4e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a390613bdc565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161218691906132c1565b60405180910390a3505050565b5f61219e8484611b45565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612218578181101561220a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220190613c44565b60405180910390fd5b6122178484848403611fd0565b5b50505050565b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f90613cac565b60405180910390fd5b60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232990613d14565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806123cd575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806123e45750601160029054906101000a900460ff165b156123f9576123f4838383612491565b61248c565b60095f9054906101000a900460ff16612447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243e90613d7c565b60405180910390fd5b601160019054906101000a900460ff1615612468576124678383836126fd565b5b612473838383612b5b565b8161247e9190613d9a565b905061248b838383612491565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f690613e3d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256490613ecb565b60405180910390fd5b612578838383612d32565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156125fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f290613f59565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126e491906132c1565b60405180910390a36126f7848484612d37565b50505050565b60115f9054906101000a900460ff161561287d5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156127b55750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561287c574360105f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283090613fc1565b60405180910390fd5b4360105f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561291a575060075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129c157600b54811115612964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295b90614029565b60405180910390fd5b600c5461297083611215565b8261297b91906137c8565b11156129bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b390614091565b60405180910390fd5b612b56565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612a5e575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612aad57600b54811115612aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9f90614029565b60405180910390fd5b612b55565b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612b5457600c54612b0783611215565b82612b1291906137c8565b1115612b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4a90614091565b60405180910390fd5b5b5b5b505050565b5f601254612b6830611215565b10158015612b835750601160029054906101000a900460ff16155b8015612bd65750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612c19576001601160026101000a81548160ff021916908315150217905550612bfe612d3c565b5f601160026101000a81548160ff0219169083151502179055505b5f600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7157505f600f54115b15612c9857612710600f5484612c879190613665565b612c9191906136d3565b9050612d13565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612cef57505f600e54115b15612d1257612710600e5484612d059190613665565b612d0f91906136d3565b90505b5b5f811115612d2757612d26853083612491565b5b809150509392505050565b505050565b505050565b5f612d4630611215565b90505f8103612d555750612e1d565b6028601254612d649190613665565b811115612d7d576028601254612d7a9190613665565b90505b612d8681612e1f565b5f471115612e1b575f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612dd4906140dc565b5f6040518083038185875af1925050503d805f8114612e0e576040519150601f19603f3d011682016040523d82523d5f602084013e612e13565b606091505b505080915050505b505b565b5f600267ffffffffffffffff811115612e3b57612e3a6140f0565b5b604051908082528060200260200182016040528015612e695781602001602082028036833780820191505090505b50905030815f81518110612e8057612e7f61411d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f48919061415e565b81600181518110612f5c57612f5b61411d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612ff8959493929190614279565b5f604051808303815f87803b15801561300f575f80fd5b505af1158015613021573d5f803e3d5ffd5b505050505050565b5f80fd5b5f819050919050565b61303f8161302d565b8114613049575f80fd5b50565b5f8135905061305a81613036565b92915050565b5f6020828403121561307557613074613029565b5b5f6130828482850161304c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156130c25780820151818401526020810190506130a7565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130e78261308b565b6130f18185613095565b93506131018185602086016130a5565b61310a816130cd565b840191505092915050565b5f6020820190508181035f83015261312d81846130dd565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61317761317261316d84613135565b613154565b613135565b9050919050565b5f6131888261315d565b9050919050565b5f6131998261317e565b9050919050565b6131a98161318f565b82525050565b5f6020820190506131c25f8301846131a0565b92915050565b5f6131d282613135565b9050919050565b6131e2816131c8565b81146131ec575f80fd5b50565b5f813590506131fd816131d9565b92915050565b5f806040838503121561321957613218613029565b5b5f613226858286016131ef565b92505060206132378582860161304c565b9150509250929050565b5f8115159050919050565b61325581613241565b82525050565b5f60208201905061326e5f83018461324c565b92915050565b5f806040838503121561328a57613289613029565b5b5f6132978582860161304c565b92505060206132a88582860161304c565b9150509250929050565b6132bb8161302d565b82525050565b5f6020820190506132d45f8301846132b2565b92915050565b5f805f606084860312156132f1576132f0613029565b5b5f6132fe868287016131ef565b935050602061330f868287016131ef565b92505060406133208682870161304c565b9150509250925092565b5f60ff82169050919050565b61333f8161332a565b82525050565b5f6020820190506133585f830184613336565b92915050565b5f6020828403121561337357613372613029565b5b5f613380848285016131ef565b91505092915050565b613392816131c8565b82525050565b5f6020820190506133ab5f830184613389565b92915050565b6133ba81613241565b81146133c4575f80fd5b50565b5f813590506133d5816133b1565b92915050565b5f80604083850312156133f1576133f0613029565b5b5f6133fe858286016131ef565b925050602061340f858286016133c7565b9150509250929050565b5f806040838503121561342f5761342e613029565b5b5f61343c858286016131ef565b925050602061344d858286016131ef565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61348b602083613095565b915061349682613457565b602082019050919050565b5f6020820190508181035f8301526134b88161347f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156135415780860481111561351d5761351c6134bf565b5b600185161561352c5780820291505b808102905061353a856134ec565b9450613501565b94509492505050565b5f826135595760019050613614565b81613566575f9050613614565b816001811461357c5760028114613586576135b5565b6001915050613614565b60ff841115613598576135976134bf565b5b8360020a9150848211156135af576135ae6134bf565b5b50613614565b5060208310610133831016604e8410600b84101617156135ea5782820a9050838111156135e5576135e46134bf565b5b613614565b6135f784848460016134f8565b9250905081840481111561360e5761360d6134bf565b5b81810290505b9392505050565b5f6136258261302d565b91506136308361332a565b925061365d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461354a565b905092915050565b5f61366f8261302d565b915061367a8361302d565b92508282026136888161302d565b9150828204841483151761369f5761369e6134bf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6136dd8261302d565b91506136e88361302d565b9250826136f8576136f76136a6565b5b828204905092915050565b7f546f6f206c6f77000000000000000000000000000000000000000000000000005f82015250565b5f613737600783613095565b915061374282613703565b602082019050919050565b5f6020820190508181035f8301526137648161372b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806137af57607f821691505b6020821081036137c2576137c161376b565b5b50919050565b5f6137d28261302d565b91506137dd8361302d565b92508282019050808211156137f5576137f46134bf565b5b92915050565b7f5a65726f204164647265737300000000000000000000000000000000000000005f82015250565b5f61382f600c83613095565b915061383a826137fb565b602082019050919050565b5f6020820190508181035f83015261385c81613823565b9050919050565b5f6040820190506138765f830185613389565b613883602083018461324c565b9392505050565b7f54726164696e67206163746976650000000000000000000000000000000000005f82015250565b5f6138be600e83613095565b91506138c98261388a565b602082019050919050565b5f6020820190508181035f8301526138eb816138b2565b9050919050565b7f50616972000000000000000000000000000000000000000000000000000000005f82015250565b5f613926600483613095565b9150613931826138f2565b602082019050919050565b5f6020820190508181035f8301526139538161391a565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6139b4602583613095565b91506139bf8261395a565b604082019050919050565b5f6020820190508181035f8301526139e1816139a8565b9050919050565b7f7a65726f206164647265737300000000000000000000000000000000000000005f82015250565b5f613a1c600c83613095565b9150613a27826139e8565b602082019050919050565b5f6020820190508181035f830152613a4981613a10565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613aaa602683613095565b9150613ab582613a50565b604082019050919050565b5f6020820190508181035f830152613ad781613a9e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613b38602483613095565b9150613b4382613ade565b604082019050919050565b5f6020820190508181035f830152613b6581613b2c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613bc6602283613095565b9150613bd182613b6c565b604082019050919050565b5f6020820190508181035f830152613bf381613bba565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613c2e601d83613095565b9150613c3982613bfa565b602082019050919050565b5f6020820190508181035f830152613c5b81613c22565b9050919050565b7f53656e64657220697320626c61636b6c697374656400000000000000000000005f82015250565b5f613c96601583613095565b9150613ca182613c62565b602082019050919050565b5f6020820190508181035f830152613cc381613c8a565b9050919050565b7f526563697069656e7420697320626c61636b6c697374656400000000000000005f82015250565b5f613cfe601883613095565b9150613d0982613cca565b602082019050919050565b5f6020820190508181035f830152613d2b81613cf2565b9050919050565b7f54726164696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f613d66601283613095565b9150613d7182613d32565b602082019050919050565b5f6020820190508181035f830152613d9381613d5a565b9050919050565b5f613da48261302d565b9150613daf8361302d565b9250828203905081811115613dc757613dc66134bf565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613e27602583613095565b9150613e3282613dcd565b604082019050919050565b5f6020820190508181035f830152613e5481613e1b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613eb5602383613095565b9150613ec082613e5b565b604082019050919050565b5f6020820190508181035f830152613ee281613ea9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613f43602683613095565b9150613f4e82613ee9565b604082019050919050565b5f6020820190508181035f830152613f7081613f37565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e0000000000000000005f82015250565b5f613fab601783613095565b9150613fb682613f77565b602082019050919050565b5f6020820190508181035f830152613fd881613f9f565b9050919050565b7f4d61782074782065786365656465642e000000000000000000000000000000005f82015250565b5f614013601083613095565b915061401e82613fdf565b602082019050919050565b5f6020820190508181035f83015261404081614007565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f61407b601383613095565b915061408682614047565b602082019050919050565b5f6020820190508181035f8301526140a88161406f565b9050919050565b5f81905092915050565b50565b5f6140c75f836140af565b91506140d2826140b9565b5f82019050919050565b5f6140e6826140bc565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614158816131d9565b92915050565b5f6020828403121561417357614172613029565b5b5f6141808482850161414a565b91505092915050565b5f819050919050565b5f6141ac6141a76141a284614189565b613154565b61302d565b9050919050565b6141bc81614192565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141f4816131c8565b82525050565b5f61420583836141eb565b60208301905092915050565b5f602082019050919050565b5f614227826141c2565b61423181856141cc565b935061423c836141dc565b805f5b8381101561426c57815161425388826141fa565b975061425e83614211565b92505060018101905061423f565b5085935050505092915050565b5f60a08201905061428c5f8301886132b2565b61429960208301876141b3565b81810360408301526142ab818661421d565b90506142ba6060830185613389565b6142c760808301846132b2565b969550505050505056fea26469706673582212209a2fd7a491d0ae5a2a964b90856fefd7615aa5ec1bf3e4eca33eb92707eb1fb864736f6c63430008140033

Deployed Bytecode Sourcemap

16875:8547:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23964:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4395:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17640:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6874:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24533:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5643:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24259:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7655:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5485:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8325:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23004:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17612:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17503:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17279:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23180:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16920:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4503:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5814:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16045:150;;;;;;;;;;;;;:::i;:::-;;24899:231;;;;;;;;;;;;;:::i;:::-;;23362:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24756:135;;;;;;;;;;;;;:::i;:::-;;16974:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15831:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4733:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17676:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23617:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9066:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6147:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17118:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17084:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17169:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17573:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17457:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17307:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6403:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25138:98;;;;;;;;;;;;;:::i;:::-;;17238:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25244:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16203:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17205:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17030:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23964:287;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24106:10:::1;:8;:10::i;:::-;24102:2;:14;;;;:::i;:::-;24095:4;24091:1;24075:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;24074:43;;;;:::i;:::-;24056:14;:61;;24048:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;24179:10;:8;:10::i;:::-;24175:2;:14;;;;:::i;:::-;24157;:33;;;;:::i;:::-;24140:14;:50;;;;24206:37;24228:14;;24206:37;;;;;;:::i;:::-;;;;;;;;23964:287:::0;:::o;4395:100::-;4449:13;4482:5;4475:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4395:100;:::o;17640:27::-;;;;;;;;;;;;;:::o;6874:201::-;6957:4;6974:13;6990:12;:10;:12::i;:::-;6974:28;;7013:32;7022:5;7029:7;7038:6;7013:8;:32::i;:::-;7063:4;7056:11;;;6874:201;;;;:::o;24533:215::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24628:7:::1;24619:6;:16;;;;24651:21;24665:6;;24651:21;;;;;;:::i;:::-;;;;;;;;24693:8;24683:7;:18;;;;24717:23;24732:7;;24717:23;;;;;;:::i;:::-;;;;;;;;24533:215:::0;;:::o;5643:108::-;5704:7;5731:12;;5724:19;;5643:108;:::o;24259:266::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24395:10:::1;:8;:10::i;:::-;24391:2;:14;;;;:::i;:::-;24385:3;24381:1;24365:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:23;;;;:::i;:::-;24364:42;;;;:::i;:::-;24346:14;:60;;24338:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;24463:10;:8;:10::i;:::-;24459:2;:14;;;;:::i;:::-;24441;:33;;;;:::i;:::-;24429:9;:45;;;;24490:27;24507:9;;24490:27;;;;;;:::i;:::-;;;;;;;;24259:266:::0;:::o;7655:261::-;7752:4;7769:15;7787:12;:10;:12::i;:::-;7769:30;;7810:38;7826:4;7832:7;7841:6;7810:15;:38::i;:::-;7859:27;7869:4;7875:2;7879:6;7859:9;:27::i;:::-;7904:4;7897:11;;;7655:261;;;;;:::o;5485:93::-;5543:5;5568:2;5561:9;;5485:93;:::o;8325:238::-;8413:4;8430:13;8446:12;:10;:12::i;:::-;8430:28;;8469:64;8478:5;8485:7;8522:10;8494:25;8504:5;8511:7;8494:9;:25::i;:::-;:38;;;;:::i;:::-;8469:8;:64::i;:::-;8551:4;8544:11;;;8325:238;;;;:::o;23004:168::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23104:1:::1;23084:22;;:8;:22;;::::0;23076:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23160:4;23134:13;:23;23148:8;23134:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;23004:168:::0;:::o;17612:21::-;;;;;;;;;;;;;:::o;17503:33::-;;;;;;;;;;;;;:::o;17279:21::-;;;;:::o;23180:174::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23285:1:::1;23265:22;;:8;:22;;::::0;23257:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23341:5;23315:13;:23;23329:8;23315:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;23180:174:::0;:::o;16920:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;4503:109::-;4556:7;4583:21;4576:28;;4503:109;:::o;5814:127::-;5888:7;5915:9;:18;5925:7;5915:18;;;;;;;;;;;;;;;;5908:25;;5814:127;;;:::o;16045:150::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16154:1:::1;16117:40;;16138:6;;;;;;;;;;;16117:40;;;;;;;;;;;;16185:1;16168:6;;:19;;;;;;;;;;;;;;;;;;16045:150::o:0;24899:231::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24970:5:::1;24953:14;;:22;;;;;;;;;;;;;;;;;;25009:5;24986:20;;:28;;;;;;;;;;;;;;;;;;25042:13;:11;:13::i;:::-;25025:14;:30;;;;25078:13;:11;:13::i;:::-;25066:9;:25;;;;25107:15;;;;;;;;;;24899:231::o:0;23362:247::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23481:1:::1;23461:22;;:8;:22;;::::0;23453:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23538:9;23511:14;:24;23526:8;23511:24;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;23563:38;23581:8;23591:9;23563:38;;;;;;;:::i;:::-;;;;;;;;23362:247:::0;;:::o;24756:135::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24820:13:::1;;;;;;;;;;;24819:14;24811:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;24879:4;24863:13;;:20;;;;;;;;;;;;;;;;;;24756:135::o:0;16974:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;15831:79::-;15869:7;15896:6;;;;;;;;;;;15889:13;;15831:79;:::o;4733:104::-;4789:13;4822:7;4815:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4733:104;:::o;17676:43::-;17714:5;17676:43;:::o;23617:339::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23738:1:::1;23718:22;;:8;:22;;::::0;23710:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23772:9;23768:76;;23817:6;;;;;;;;;;;23805:18;;:8;:18;;::::0;23797:35:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23768:76;23883:9;23854:16;:26;23871:8;23854:26;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;23908:40;23928:8;23938:9;23908:40;;;;;;;:::i;:::-;;;;;;;;23617:339:::0;;:::o;9066:436::-;9159:4;9176:13;9192:12;:10;:12::i;:::-;9176:28;;9215:24;9242:25;9252:5;9259:7;9242:9;:25::i;:::-;9215:52;;9306:15;9286:16;:35;;9278:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9399:60;9408:5;9415:7;9443:15;9424:16;:34;9399:8;:60::i;:::-;9490:4;9483:11;;;;9066:436;;;;:::o;6147:193::-;6226:4;6243:13;6259:12;:10;:12::i;:::-;6243:28;;6282;6292:5;6299:2;6303:6;6282:9;:28::i;:::-;6328:4;6321:11;;;6147:193;;;;:::o;17118:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;17084:25::-;;;;;;;;;;;;;:::o;17169:29::-;;;;:::o;17573:30::-;;;;:::o;17457:39::-;;;;;;;;;;;;;:::o;17307:22::-;;;;:::o;6403:151::-;6492:7;6519:11;:18;6531:5;6519:18;;;;;;;;;;;;;;;:27;6538:7;6519:27;;;;;;;;;;;;;;;;6512:34;;6403:151;;;;:::o;25138:98::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25223:5:::1;25200:20;;:28;;;;;;;;;;;;;;;;;;25138:98::o:0;17238:32::-;;;;;;;;;;;;;:::o;25244:175::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25353:1:::1;25333:22;;:8;:22;;::::0;25325:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;25403:8;25383:17;;:28;;;;;;;;;;;;;;;;;;25244:175:::0;:::o;16203:244::-;15968:12;:10;:12::i;:::-;15958:22;;:6;;;;;;;;;;;:22;;;15950:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16312:1:::1;16292:22;;:8;:22;;::::0;16284:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16402:8;16373:38;;16394:6;;;;;;;;;;;16373:38;;;;;;;;;;;;16431:8;16422:6;;:17;;;;;;;;;;;;;;;;;;16203:244:::0;:::o;17205:24::-;;;;:::o;17030:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;301:98::-;354:7;381:10;374:17;;301:98;:::o;13059:346::-;13178:1;13161:19;;:5;:19;;;13153:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13259:1;13240:21;;:7;:21;;;13232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13343:6;13313:11;:18;13325:5;13313:18;;;;;;;;;;;;;;;:27;13332:7;13313:27;;;;;;;;;;;;;;;:36;;;;13381:7;13365:32;;13374:5;13365:32;;;13390:6;13365:32;;;;;;:::i;:::-;;;;;;;;13059:346;;;:::o;13696:419::-;13797:24;13824:25;13834:5;13841:7;13824:9;:25::i;:::-;13797:52;;13884:17;13864:16;:37;13860:248;;13946:6;13926:16;:26;;13918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14030:51;14039:5;14046:7;14074:6;14055:16;:25;14030:8;:51::i;:::-;13860:248;13786:329;13696:419;;;:::o;19724:707::-;19926:13;:19;19940:4;19926:19;;;;;;;;;;;;;;;;;;;;;;;;;19925:20;19917:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;19991:13;:17;20005:2;19991:17;;;;;;;;;;;;;;;;;;;;;;;;;19990:18;19982:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;20053:14;:20;20068:4;20053:20;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;20077:14;:18;20092:2;20077:18;;;;;;;;;;;;;;;;;;;;;;;;;20053:42;:54;;;;20099:8;;;;;;;;;;;20053:54;20050:137;;;20123:31;20139:4;20144:2;20147:6;20123:15;:31::i;:::-;20169:7;;20050:137;20207:13;;;;;;;;;;;20199:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;20259:14;;;;;;;;;;;20256:74;;;20289:29;20301:4;20307:2;20311:6;20289:11;:29::i;:::-;20256:74;20352:27;20362:4;20368:2;20372:6;20352:9;:27::i;:::-;20342:37;;;;;:::i;:::-;;;20392:31;20408:4;20413:2;20416:6;20392:15;:31::i;:::-;19724:707;;;;:::o;9972:806::-;10085:1;10069:18;;:4;:18;;;10061:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10162:1;10148:16;;:2;:16;;;10140:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10217:38;10238:4;10244:2;10248:6;10217:20;:38::i;:::-;10268:19;10290:9;:15;10300:4;10290:15;;;;;;;;;;;;;;;;10268:37;;10339:6;10324:11;:21;;10316:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10456:6;10442:11;:20;10424:9;:15;10434:4;10424:15;;;;;;;;;;;;;;;:38;;;;10659:6;10642:9;:13;10652:2;10642:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;10709:2;10694:26;;10703:4;10694:26;;;10713:6;10694:26;;;;;;:::i;:::-;;;;;;;;10733:37;10753:4;10759:2;10763:6;10733:19;:37::i;:::-;10050:728;9972:806;;;:::o;20439:908::-;20526:20;;;;;;;;;;;20522:288;;;20580:9;;;;;;;;;;;20566:24;;:2;:24;;;;:42;;;;;20595:9;:13;20605:2;20595:13;;;;;;;;;;;;;;;;;;;;;;;;;20594:14;20566:42;20562:237;;;20674:12;20636:24;:35;20661:9;20636:35;;;;;;;;;;;;;;;;:50;20628:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;20771:12;20733:24;:35;20758:9;20733:35;;;;;;;;;;;;;;;:50;;;;20562:237;20522:288;20842:9;:15;20852:4;20842:15;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;20862:16;:20;20879:2;20862:20;;;;;;;;;;;;;;;;;;;;;;;;;20861:21;20842:40;20838:502;;;20917:14;;20907:6;:24;;20899:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;21001:9;;20984:13;20994:2;20984:9;:13::i;:::-;20975:6;:22;;;;:::i;:::-;:35;;20967:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20838:502;;;21083:9;:13;21093:2;21083:13;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;21101:16;:22;21118:4;21101:22;;;;;;;;;;;;;;;;;;;;;;;;;21100:23;21083:40;21079:261;;;21158:14;;21148:6;:24;;21140:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;21079:261;;;21224:16;:20;21241:2;21224:20;;;;;;;;;;;;;;;;;;;;;;;;;21220:120;;21295:9;;21278:13;21288:2;21278:9;:13::i;:::-;21269:6;:22;;;;:::i;:::-;:35;;21261:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21220:120;21079:261;20838:502;20439:908;;;:::o;21355:712::-;21434:7;21484:15;;21456:24;21474:4;21456:9;:24::i;:::-;:43;;:56;;;;;21504:8;;;;;;;;;;;21503:9;21456:56;:76;;;;;21517:9;:15;21527:4;21517:15;;;;;;;;;;;;;;;;;;;;;;;;;21516:16;21456:76;21453:179;;;21560:4;21549:8;;:15;;;;;;;;;;;;;;;;;;21579:10;:8;:10::i;:::-;21615:5;21604:8;;:16;;;;;;;;;;;;;;;;;;21453:179;21652:11;21704:9;:13;21714:2;21704:13;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;;21731:1;21721:7;;:11;21704:28;21700:226;;;17714:5;21763:7;;21754:6;:16;;;;:::i;:::-;:30;;;;:::i;:::-;21748:36;;21700:226;;;21833:9;:15;21843:4;21833:15;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;;21861:1;21852:6;;:10;21833:29;21830:96;;;17714:5;21894:6;;21885;:15;;;;:::i;:::-;:29;;;;:::i;:::-;21879:35;;21830:96;21700:226;21955:1;21949:3;:7;21946:83;;;21976:41;21992:4;22006;22013:3;21976:15;:41::i;:::-;21946:83;22056:3;22049:10;;;21355:712;;;;;:::o;14715:91::-;;;;:::o;15410:90::-;;;;:::o;22467:503::-;22508:23;22534:24;22552:4;22534:9;:24::i;:::-;22508:50;;22601:1;22582:15;:20;22579:34;;22605:7;;;22579:34;22664:2;22646:15;;:20;;;;:::i;:::-;22628:15;:38;22625:107;;;22718:2;22700:15;;:20;;;;:::i;:::-;22682:38;;22625:107;22752:33;22769:15;22752:16;:33::i;:::-;22837:1;22813:21;:25;22810:153;;;22854:12;22895:17;;;;;;;;;;;:22;;22925:21;22895:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22881:70;;;;;22839:124;22810:153;22495:475;22467:503;:::o;22075:384::-;22140:21;22178:1;22164:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22140:40;;22209:4;22191;22196:1;22191:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22235:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22225:4;22230:1;22225:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;22264:9;;;;;;;;;;;:60;;;22339:8;22362:1;22378:4;22405;22425:15;22264:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22127:332;22075:384;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:60::-;2527:3;2548:5;2541:12;;2499:60;;;:::o;2565:142::-;2615:9;2648:53;2666:34;2675:24;2693:5;2675:24;:::i;:::-;2666:34;:::i;:::-;2648:53;:::i;:::-;2635:66;;2565:142;;;:::o;2713:126::-;2763:9;2796:37;2827:5;2796:37;:::i;:::-;2783:50;;2713:126;;;:::o;2845:144::-;2913:9;2946:37;2977:5;2946:37;:::i;:::-;2933:50;;2845:144;;;:::o;2995:167::-;3100:55;3149:5;3100:55;:::i;:::-;3095:3;3088:68;2995:167;;:::o;3168:258::-;3279:4;3317:2;3306:9;3302:18;3294:26;;3330:89;3416:1;3405:9;3401:17;3392:6;3330:89;:::i;:::-;3168:258;;;;:::o;3432:96::-;3469:7;3498:24;3516:5;3498:24;:::i;:::-;3487:35;;3432:96;;;:::o;3534:122::-;3607:24;3625:5;3607:24;:::i;:::-;3600:5;3597:35;3587:63;;3646:1;3643;3636:12;3587:63;3534:122;:::o;3662:139::-;3708:5;3746:6;3733:20;3724:29;;3762:33;3789:5;3762:33;:::i;:::-;3662:139;;;;:::o;3807:474::-;3875:6;3883;3932:2;3920:9;3911:7;3907:23;3903:32;3900:119;;;3938:79;;:::i;:::-;3900:119;4058:1;4083:53;4128:7;4119:6;4108:9;4104:22;4083:53;:::i;:::-;4073:63;;4029:117;4185:2;4211:53;4256:7;4247:6;4236:9;4232:22;4211:53;:::i;:::-;4201:63;;4156:118;3807:474;;;;;:::o;4287:90::-;4321:7;4364:5;4357:13;4350:21;4339:32;;4287:90;;;:::o;4383:109::-;4464:21;4479:5;4464:21;:::i;:::-;4459:3;4452:34;4383:109;;:::o;4498:210::-;4585:4;4623:2;4612:9;4608:18;4600:26;;4636:65;4698:1;4687:9;4683:17;4674:6;4636:65;:::i;:::-;4498:210;;;;:::o;4714:474::-;4782:6;4790;4839:2;4827:9;4818:7;4814:23;4810:32;4807:119;;;4845:79;;:::i;:::-;4807:119;4965:1;4990:53;5035:7;5026:6;5015:9;5011:22;4990:53;:::i;:::-;4980:63;;4936:117;5092:2;5118:53;5163:7;5154:6;5143:9;5139:22;5118:53;:::i;:::-;5108:63;;5063:118;4714:474;;;;;:::o;5194:118::-;5281:24;5299:5;5281:24;:::i;:::-;5276:3;5269:37;5194:118;;:::o;5318:222::-;5411:4;5449:2;5438:9;5434:18;5426:26;;5462:71;5530:1;5519:9;5515:17;5506:6;5462:71;:::i;:::-;5318:222;;;;:::o;5546:619::-;5623:6;5631;5639;5688:2;5676:9;5667:7;5663:23;5659:32;5656:119;;;5694:79;;:::i;:::-;5656:119;5814:1;5839:53;5884:7;5875:6;5864:9;5860:22;5839:53;:::i;:::-;5829:63;;5785:117;5941:2;5967:53;6012:7;6003:6;5992:9;5988:22;5967:53;:::i;:::-;5957:63;;5912:118;6069:2;6095:53;6140:7;6131:6;6120:9;6116:22;6095:53;:::i;:::-;6085:63;;6040:118;5546:619;;;;;:::o;6171:86::-;6206:7;6246:4;6239:5;6235:16;6224:27;;6171:86;;;:::o;6263:112::-;6346:22;6362:5;6346:22;:::i;:::-;6341:3;6334:35;6263:112;;:::o;6381:214::-;6470:4;6508:2;6497:9;6493:18;6485:26;;6521:67;6585:1;6574:9;6570:17;6561:6;6521:67;:::i;:::-;6381:214;;;;:::o;6601:329::-;6660:6;6709:2;6697:9;6688:7;6684:23;6680:32;6677:119;;;6715:79;;:::i;:::-;6677:119;6835:1;6860:53;6905:7;6896:6;6885:9;6881:22;6860:53;:::i;:::-;6850:63;;6806:117;6601:329;;;;:::o;6936:118::-;7023:24;7041:5;7023:24;:::i;:::-;7018:3;7011:37;6936:118;;:::o;7060:222::-;7153:4;7191:2;7180:9;7176:18;7168:26;;7204:71;7272:1;7261:9;7257:17;7248:6;7204:71;:::i;:::-;7060:222;;;;:::o;7288:116::-;7358:21;7373:5;7358:21;:::i;:::-;7351:5;7348:32;7338:60;;7394:1;7391;7384:12;7338:60;7288:116;:::o;7410:133::-;7453:5;7491:6;7478:20;7469:29;;7507:30;7531:5;7507:30;:::i;:::-;7410:133;;;;:::o;7549:468::-;7614:6;7622;7671:2;7659:9;7650:7;7646:23;7642:32;7639:119;;;7677:79;;:::i;:::-;7639:119;7797:1;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7768:117;7924:2;7950:50;7992:7;7983:6;7972:9;7968:22;7950:50;:::i;:::-;7940:60;;7895:115;7549:468;;;;;:::o;8023:474::-;8091:6;8099;8148:2;8136:9;8127:7;8123:23;8119:32;8116:119;;;8154:79;;:::i;:::-;8116:119;8274:1;8299:53;8344:7;8335:6;8324:9;8320:22;8299:53;:::i;:::-;8289:63;;8245:117;8401:2;8427:53;8472:7;8463:6;8452:9;8448:22;8427:53;:::i;:::-;8417:63;;8372:118;8023:474;;;;;:::o;8503:182::-;8643:34;8639:1;8631:6;8627:14;8620:58;8503:182;:::o;8691:366::-;8833:3;8854:67;8918:2;8913:3;8854:67;:::i;:::-;8847:74;;8930:93;9019:3;8930:93;:::i;:::-;9048:2;9043:3;9039:12;9032:19;;8691:366;;;:::o;9063:419::-;9229:4;9267:2;9256:9;9252:18;9244:26;;9316:9;9310:4;9306:20;9302:1;9291:9;9287:17;9280:47;9344:131;9470:4;9344:131;:::i;:::-;9336:139;;9063:419;;;:::o;9488:180::-;9536:77;9533:1;9526:88;9633:4;9630:1;9623:15;9657:4;9654:1;9647:15;9674:102;9716:8;9763:5;9760:1;9756:13;9735:34;;9674:102;;;:::o;9782:848::-;9843:5;9850:4;9874:6;9865:15;;9898:5;9889:14;;9912:712;9933:1;9923:8;9920:15;9912:712;;;10028:4;10023:3;10019:14;10013:4;10010:24;10007:50;;;10037:18;;:::i;:::-;10007:50;10087:1;10077:8;10073:16;10070:451;;;10502:4;10495:5;10491:16;10482:25;;10070:451;10552:4;10546;10542:15;10534:23;;10582:32;10605:8;10582:32;:::i;:::-;10570:44;;9912:712;;;9782:848;;;;;;;:::o;10636:1073::-;10690:5;10881:8;10871:40;;10902:1;10893:10;;10904:5;;10871:40;10930:4;10920:36;;10947:1;10938:10;;10949:5;;10920:36;11016:4;11064:1;11059:27;;;;11100:1;11095:191;;;;11009:277;;11059:27;11077:1;11068:10;;11079:5;;;11095:191;11140:3;11130:8;11127:17;11124:43;;;11147:18;;:::i;:::-;11124:43;11196:8;11193:1;11189:16;11180:25;;11231:3;11224:5;11221:14;11218:40;;;11238:18;;:::i;:::-;11218:40;11271:5;;;11009:277;;11395:2;11385:8;11382:16;11376:3;11370:4;11367:13;11363:36;11345:2;11335:8;11332:16;11327:2;11321:4;11318:12;11314:35;11298:111;11295:246;;;11451:8;11445:4;11441:19;11432:28;;11486:3;11479:5;11476:14;11473:40;;;11493:18;;:::i;:::-;11473:40;11526:5;;11295:246;11566:42;11604:3;11594:8;11588:4;11585:1;11566:42;:::i;:::-;11551:57;;;;11640:4;11635:3;11631:14;11624:5;11621:25;11618:51;;;11649:18;;:::i;:::-;11618:51;11698:4;11691:5;11687:16;11678:25;;10636:1073;;;;;;:::o;11715:281::-;11773:5;11797:23;11815:4;11797:23;:::i;:::-;11789:31;;11841:25;11857:8;11841:25;:::i;:::-;11829:37;;11885:104;11922:66;11912:8;11906:4;11885:104;:::i;:::-;11876:113;;11715:281;;;;:::o;12002:410::-;12042:7;12065:20;12083:1;12065:20;:::i;:::-;12060:25;;12099:20;12117:1;12099:20;:::i;:::-;12094:25;;12154:1;12151;12147:9;12176:30;12194:11;12176:30;:::i;:::-;12165:41;;12355:1;12346:7;12342:15;12339:1;12336:22;12316:1;12309:9;12289:83;12266:139;;12385:18;;:::i;:::-;12266:139;12050:362;12002:410;;;;:::o;12418:180::-;12466:77;12463:1;12456:88;12563:4;12560:1;12553:15;12587:4;12584:1;12577:15;12604:185;12644:1;12661:20;12679:1;12661:20;:::i;:::-;12656:25;;12695:20;12713:1;12695:20;:::i;:::-;12690:25;;12734:1;12724:35;;12739:18;;:::i;:::-;12724:35;12781:1;12778;12774:9;12769:14;;12604:185;;;;:::o;12795:157::-;12935:9;12931:1;12923:6;12919:14;12912:33;12795:157;:::o;12958:365::-;13100:3;13121:66;13185:1;13180:3;13121:66;:::i;:::-;13114:73;;13196:93;13285:3;13196:93;:::i;:::-;13314:2;13309:3;13305:12;13298:19;;12958:365;;;:::o;13329:419::-;13495:4;13533:2;13522:9;13518:18;13510:26;;13582:9;13576:4;13572:20;13568:1;13557:9;13553:17;13546:47;13610:131;13736:4;13610:131;:::i;:::-;13602:139;;13329:419;;;:::o;13754:180::-;13802:77;13799:1;13792:88;13899:4;13896:1;13889:15;13923:4;13920:1;13913:15;13940:320;13984:6;14021:1;14015:4;14011:12;14001:22;;14068:1;14062:4;14058:12;14089:18;14079:81;;14145:4;14137:6;14133:17;14123:27;;14079:81;14207:2;14199:6;14196:14;14176:18;14173:38;14170:84;;14226:18;;:::i;:::-;14170:84;13991:269;13940:320;;;:::o;14266:191::-;14306:3;14325:20;14343:1;14325:20;:::i;:::-;14320:25;;14359:20;14377:1;14359:20;:::i;:::-;14354:25;;14402:1;14399;14395:9;14388:16;;14423:3;14420:1;14417:10;14414:36;;;14430:18;;:::i;:::-;14414:36;14266:191;;;;:::o;14463:162::-;14603:14;14599:1;14591:6;14587:14;14580:38;14463:162;:::o;14631:366::-;14773:3;14794:67;14858:2;14853:3;14794:67;:::i;:::-;14787:74;;14870:93;14959:3;14870:93;:::i;:::-;14988:2;14983:3;14979:12;14972:19;;14631:366;;;:::o;15003:419::-;15169:4;15207:2;15196:9;15192:18;15184:26;;15256:9;15250:4;15246:20;15242:1;15231:9;15227:17;15220:47;15284:131;15410:4;15284:131;:::i;:::-;15276:139;;15003:419;;;:::o;15428:320::-;15543:4;15581:2;15570:9;15566:18;15558:26;;15594:71;15662:1;15651:9;15647:17;15638:6;15594:71;:::i;:::-;15675:66;15737:2;15726:9;15722:18;15713:6;15675:66;:::i;:::-;15428:320;;;;;:::o;15754:164::-;15894:16;15890:1;15882:6;15878:14;15871:40;15754:164;:::o;15924:366::-;16066:3;16087:67;16151:2;16146:3;16087:67;:::i;:::-;16080:74;;16163:93;16252:3;16163:93;:::i;:::-;16281:2;16276:3;16272:12;16265:19;;15924:366;;;:::o;16296:419::-;16462:4;16500:2;16489:9;16485:18;16477:26;;16549:9;16543:4;16539:20;16535:1;16524:9;16520:17;16513:47;16577:131;16703:4;16577:131;:::i;:::-;16569:139;;16296:419;;;:::o;16721:154::-;16861:6;16857:1;16849:6;16845:14;16838:30;16721:154;:::o;16881:365::-;17023:3;17044:66;17108:1;17103:3;17044:66;:::i;:::-;17037:73;;17119:93;17208:3;17119:93;:::i;:::-;17237:2;17232:3;17228:12;17221:19;;16881:365;;;:::o;17252:419::-;17418:4;17456:2;17445:9;17441:18;17433:26;;17505:9;17499:4;17495:20;17491:1;17480:9;17476:17;17469:47;17533:131;17659:4;17533:131;:::i;:::-;17525:139;;17252:419;;;:::o;17677:224::-;17817:34;17813:1;17805:6;17801:14;17794:58;17886:7;17881:2;17873:6;17869:15;17862:32;17677:224;:::o;17907:366::-;18049:3;18070:67;18134:2;18129:3;18070:67;:::i;:::-;18063:74;;18146:93;18235:3;18146:93;:::i;:::-;18264:2;18259:3;18255:12;18248:19;;17907:366;;;:::o;18279:419::-;18445:4;18483:2;18472:9;18468:18;18460:26;;18532:9;18526:4;18522:20;18518:1;18507:9;18503:17;18496:47;18560:131;18686:4;18560:131;:::i;:::-;18552:139;;18279:419;;;:::o;18704:162::-;18844:14;18840:1;18832:6;18828:14;18821:38;18704:162;:::o;18872:366::-;19014:3;19035:67;19099:2;19094:3;19035:67;:::i;:::-;19028:74;;19111:93;19200:3;19111:93;:::i;:::-;19229:2;19224:3;19220:12;19213:19;;18872:366;;;:::o;19244:419::-;19410:4;19448:2;19437:9;19433:18;19425:26;;19497:9;19491:4;19487:20;19483:1;19472:9;19468:17;19461:47;19525:131;19651:4;19525:131;:::i;:::-;19517:139;;19244:419;;;:::o;19669:225::-;19809:34;19805:1;19797:6;19793:14;19786:58;19878:8;19873:2;19865:6;19861:15;19854:33;19669:225;:::o;19900:366::-;20042:3;20063:67;20127:2;20122:3;20063:67;:::i;:::-;20056:74;;20139:93;20228:3;20139:93;:::i;:::-;20257:2;20252:3;20248:12;20241:19;;19900:366;;;:::o;20272:419::-;20438:4;20476:2;20465:9;20461:18;20453:26;;20525:9;20519:4;20515:20;20511:1;20500:9;20496:17;20489:47;20553:131;20679:4;20553:131;:::i;:::-;20545:139;;20272:419;;;:::o;20697:223::-;20837:34;20833:1;20825:6;20821:14;20814:58;20906:6;20901:2;20893:6;20889:15;20882:31;20697:223;:::o;20926:366::-;21068:3;21089:67;21153:2;21148:3;21089:67;:::i;:::-;21082:74;;21165:93;21254:3;21165:93;:::i;:::-;21283:2;21278:3;21274:12;21267:19;;20926:366;;;:::o;21298:419::-;21464:4;21502:2;21491:9;21487:18;21479:26;;21551:9;21545:4;21541:20;21537:1;21526:9;21522:17;21515:47;21579:131;21705:4;21579:131;:::i;:::-;21571:139;;21298:419;;;:::o;21723:221::-;21863:34;21859:1;21851:6;21847:14;21840:58;21932:4;21927:2;21919:6;21915:15;21908:29;21723:221;:::o;21950:366::-;22092:3;22113:67;22177:2;22172:3;22113:67;:::i;:::-;22106:74;;22189:93;22278:3;22189:93;:::i;:::-;22307:2;22302:3;22298:12;22291:19;;21950:366;;;:::o;22322:419::-;22488:4;22526:2;22515:9;22511:18;22503:26;;22575:9;22569:4;22565:20;22561:1;22550:9;22546:17;22539:47;22603:131;22729:4;22603:131;:::i;:::-;22595:139;;22322:419;;;:::o;22747:179::-;22887:31;22883:1;22875:6;22871:14;22864:55;22747:179;:::o;22932:366::-;23074:3;23095:67;23159:2;23154:3;23095:67;:::i;:::-;23088:74;;23171:93;23260:3;23171:93;:::i;:::-;23289:2;23284:3;23280:12;23273:19;;22932:366;;;:::o;23304:419::-;23470:4;23508:2;23497:9;23493:18;23485:26;;23557:9;23551:4;23547:20;23543:1;23532:9;23528:17;23521:47;23585:131;23711:4;23585:131;:::i;:::-;23577:139;;23304:419;;;:::o;23729:171::-;23869:23;23865:1;23857:6;23853:14;23846:47;23729:171;:::o;23906:366::-;24048:3;24069:67;24133:2;24128:3;24069:67;:::i;:::-;24062:74;;24145:93;24234:3;24145:93;:::i;:::-;24263:2;24258:3;24254:12;24247:19;;23906:366;;;:::o;24278:419::-;24444:4;24482:2;24471:9;24467:18;24459:26;;24531:9;24525:4;24521:20;24517:1;24506:9;24502:17;24495:47;24559:131;24685:4;24559:131;:::i;:::-;24551:139;;24278:419;;;:::o;24703:174::-;24843:26;24839:1;24831:6;24827:14;24820:50;24703:174;:::o;24883:366::-;25025:3;25046:67;25110:2;25105:3;25046:67;:::i;:::-;25039:74;;25122:93;25211:3;25122:93;:::i;:::-;25240:2;25235:3;25231:12;25224:19;;24883:366;;;:::o;25255:419::-;25421:4;25459:2;25448:9;25444:18;25436:26;;25508:9;25502:4;25498:20;25494:1;25483:9;25479:17;25472:47;25536:131;25662:4;25536:131;:::i;:::-;25528:139;;25255:419;;;:::o;25680:168::-;25820:20;25816:1;25808:6;25804:14;25797:44;25680:168;:::o;25854:366::-;25996:3;26017:67;26081:2;26076:3;26017:67;:::i;:::-;26010:74;;26093:93;26182:3;26093:93;:::i;:::-;26211:2;26206:3;26202:12;26195:19;;25854:366;;;:::o;26226:419::-;26392:4;26430:2;26419:9;26415:18;26407:26;;26479:9;26473:4;26469:20;26465:1;26454:9;26450:17;26443:47;26507:131;26633:4;26507:131;:::i;:::-;26499:139;;26226:419;;;:::o;26651:194::-;26691:4;26711:20;26729:1;26711:20;:::i;:::-;26706:25;;26745:20;26763:1;26745:20;:::i;:::-;26740:25;;26789:1;26786;26782:9;26774:17;;26813:1;26807:4;26804:11;26801:37;;;26818:18;;:::i;:::-;26801:37;26651:194;;;;:::o;26851:224::-;26991:34;26987:1;26979:6;26975:14;26968:58;27060:7;27055:2;27047:6;27043:15;27036:32;26851:224;:::o;27081:366::-;27223:3;27244:67;27308:2;27303:3;27244:67;:::i;:::-;27237:74;;27320:93;27409:3;27320:93;:::i;:::-;27438:2;27433:3;27429:12;27422:19;;27081:366;;;:::o;27453:419::-;27619:4;27657:2;27646:9;27642:18;27634:26;;27706:9;27700:4;27696:20;27692:1;27681:9;27677:17;27670:47;27734:131;27860:4;27734:131;:::i;:::-;27726:139;;27453:419;;;:::o;27878:222::-;28018:34;28014:1;28006:6;28002:14;27995:58;28087:5;28082:2;28074:6;28070:15;28063:30;27878:222;:::o;28106:366::-;28248:3;28269:67;28333:2;28328:3;28269:67;:::i;:::-;28262:74;;28345:93;28434:3;28345:93;:::i;:::-;28463:2;28458:3;28454:12;28447:19;;28106:366;;;:::o;28478:419::-;28644:4;28682:2;28671:9;28667:18;28659:26;;28731:9;28725:4;28721:20;28717:1;28706:9;28702:17;28695:47;28759:131;28885:4;28759:131;:::i;:::-;28751:139;;28478:419;;;:::o;28903:225::-;29043:34;29039:1;29031:6;29027:14;29020:58;29112:8;29107:2;29099:6;29095:15;29088:33;28903:225;:::o;29134:366::-;29276:3;29297:67;29361:2;29356:3;29297:67;:::i;:::-;29290:74;;29373:93;29462:3;29373:93;:::i;:::-;29491:2;29486:3;29482:12;29475:19;;29134:366;;;:::o;29506:419::-;29672:4;29710:2;29699:9;29695:18;29687:26;;29759:9;29753:4;29749:20;29745:1;29734:9;29730:17;29723:47;29787:131;29913:4;29787:131;:::i;:::-;29779:139;;29506:419;;;:::o;29931:173::-;30071:25;30067:1;30059:6;30055:14;30048:49;29931:173;:::o;30110:366::-;30252:3;30273:67;30337:2;30332:3;30273:67;:::i;:::-;30266:74;;30349:93;30438:3;30349:93;:::i;:::-;30467:2;30462:3;30458:12;30451:19;;30110:366;;;:::o;30482:419::-;30648:4;30686:2;30675:9;30671:18;30663:26;;30735:9;30729:4;30725:20;30721:1;30710:9;30706:17;30699:47;30763:131;30889:4;30763:131;:::i;:::-;30755:139;;30482:419;;;:::o;30907:166::-;31047:18;31043:1;31035:6;31031:14;31024:42;30907:166;:::o;31079:366::-;31221:3;31242:67;31306:2;31301:3;31242:67;:::i;:::-;31235:74;;31318:93;31407:3;31318:93;:::i;:::-;31436:2;31431:3;31427:12;31420:19;;31079:366;;;:::o;31451:419::-;31617:4;31655:2;31644:9;31640:18;31632:26;;31704:9;31698:4;31694:20;31690:1;31679:9;31675:17;31668:47;31732:131;31858:4;31732:131;:::i;:::-;31724:139;;31451:419;;;:::o;31876:169::-;32016:21;32012:1;32004:6;32000:14;31993:45;31876:169;:::o;32051:366::-;32193:3;32214:67;32278:2;32273:3;32214:67;:::i;:::-;32207:74;;32290:93;32379:3;32290:93;:::i;:::-;32408:2;32403:3;32399:12;32392:19;;32051:366;;;:::o;32423:419::-;32589:4;32627:2;32616:9;32612:18;32604:26;;32676:9;32670:4;32666:20;32662:1;32651:9;32647:17;32640:47;32704:131;32830:4;32704:131;:::i;:::-;32696:139;;32423:419;;;:::o;32848:147::-;32949:11;32986:3;32971:18;;32848:147;;;;:::o;33001:114::-;;:::o;33121:398::-;33280:3;33301:83;33382:1;33377:3;33301:83;:::i;:::-;33294:90;;33393:93;33482:3;33393:93;:::i;:::-;33511:1;33506:3;33502:11;33495:18;;33121:398;;;:::o;33525:379::-;33709:3;33731:147;33874:3;33731:147;:::i;:::-;33724:154;;33895:3;33888:10;;33525:379;;;:::o;33910:180::-;33958:77;33955:1;33948:88;34055:4;34052:1;34045:15;34079:4;34076:1;34069:15;34096:180;34144:77;34141:1;34134:88;34241:4;34238:1;34231:15;34265:4;34262:1;34255:15;34282:143;34339:5;34370:6;34364:13;34355:22;;34386:33;34413:5;34386:33;:::i;:::-;34282:143;;;;:::o;34431:351::-;34501:6;34550:2;34538:9;34529:7;34525:23;34521:32;34518:119;;;34556:79;;:::i;:::-;34518:119;34676:1;34701:64;34757:7;34748:6;34737:9;34733:22;34701:64;:::i;:::-;34691:74;;34647:128;34431:351;;;;:::o;34788:85::-;34833:7;34862:5;34851:16;;34788:85;;;:::o;34879:158::-;34937:9;34970:61;34988:42;34997:32;35023:5;34997:32;:::i;:::-;34988:42;:::i;:::-;34970:61;:::i;:::-;34957:74;;34879:158;;;:::o;35043:147::-;35138:45;35177:5;35138:45;:::i;:::-;35133:3;35126:58;35043:147;;:::o;35196:114::-;35263:6;35297:5;35291:12;35281:22;;35196:114;;;:::o;35316:184::-;35415:11;35449:6;35444:3;35437:19;35489:4;35484:3;35480:14;35465:29;;35316:184;;;;:::o;35506:132::-;35573:4;35596:3;35588:11;;35626:4;35621:3;35617:14;35609:22;;35506:132;;;:::o;35644:108::-;35721:24;35739:5;35721:24;:::i;:::-;35716:3;35709:37;35644:108;;:::o;35758:179::-;35827:10;35848:46;35890:3;35882:6;35848:46;:::i;:::-;35926:4;35921:3;35917:14;35903:28;;35758:179;;;;:::o;35943:113::-;36013:4;36045;36040:3;36036:14;36028:22;;35943:113;;;:::o;36092:732::-;36211:3;36240:54;36288:5;36240:54;:::i;:::-;36310:86;36389:6;36384:3;36310:86;:::i;:::-;36303:93;;36420:56;36470:5;36420:56;:::i;:::-;36499:7;36530:1;36515:284;36540:6;36537:1;36534:13;36515:284;;;36616:6;36610:13;36643:63;36702:3;36687:13;36643:63;:::i;:::-;36636:70;;36729:60;36782:6;36729:60;:::i;:::-;36719:70;;36575:224;36562:1;36559;36555:9;36550:14;;36515:284;;;36519:14;36815:3;36808:10;;36216:608;;;36092:732;;;;:::o;36830:831::-;37093:4;37131:3;37120:9;37116:19;37108:27;;37145:71;37213:1;37202:9;37198:17;37189:6;37145:71;:::i;:::-;37226:80;37302:2;37291:9;37287:18;37278:6;37226:80;:::i;:::-;37353:9;37347:4;37343:20;37338:2;37327:9;37323:18;37316:48;37381:108;37484:4;37475:6;37381:108;:::i;:::-;37373:116;;37499:72;37567:2;37556:9;37552:18;37543:6;37499:72;:::i;:::-;37581:73;37649:3;37638:9;37634:19;37625:6;37581:73;:::i;:::-;36830:831;;;;;;;;:::o

Swarm Source

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