ETH Price: $2,473.22 (+7.09%)

Token

LumosFi (LMS)
 

Overview

Max Total Supply

10,000,000 LMS

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
mirro1225.eth
Balance
51,895.563566033101191169 LMS

Value
$0.00
0xCBC3e8bf7b2a4AF58FF71E86976C1303F2929E18
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
LUMOS

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**


The First "Transparent Privacy Protocol" built on advanced cryptographic foundations, including zero-knowledge proofs (ZKPs) and selective disclosure mechanisms.

https://Lumos-Fi.com
https://t.me/LumosFi
https://x.com/LumosFiProtocol


*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.27;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
}

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

abstract contract Ownable is Context {
    address private _owner;
    bool ownerRemoved;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        ownerRemoved = true;
    }

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

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

    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;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

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

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

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

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

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

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

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

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

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

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

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

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    bool private swapping;
    bool public tradingActive = false;
    bool public limitsInEffect = true;

    uint256 public swapTokensAtAmount;
    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    address public marketingWallet;
    address public lumosWallet;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 lumos;
        uint256 total;
    }
    Taxes public buyTax;
    Taxes public sellTax;

    uint256 private tokensForMarketing;
    uint256 private tokensForLiquidity;
    uint256 private tokensForLumos;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event SwapAndLiquidity(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor() ERC20("LumosFi", "LMS") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 totalSupply = 10000000 * 10 ** decimals();

        maxWallet = maxTransactionAmount = (totalSupply * 2) / 100;
        swapTokensAtAmount = (totalSupply * 1) / 1000;

        marketingWallet = _msgSender();
        lumosWallet = _msgSender();

        buyTax = Taxes(0, 0, 0, 10);
        sellTax = Taxes(0, 0, 0, 30);

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(_msgSender(), totalSupply);
    }

    receive() external payable {}

    function enableTrading() external onlyOwner {
        require(tradingActive == false, "The trading has been opened.");
        tradingActive = true;
    }

    function removeLimits() external onlyOwner {
        require(limitsInEffect == true, "The limits has been removed.");
        limitsInEffect = false;
    }

    function setFees(
        uint256 _buyMarketing,
        uint256 _buyLiquidity,
        uint256 _buyLumos,
        uint256 _sellMarketing,
        uint256 _sellLiquidity,
        uint256 _sellLumos
    ) external onlyOwner {
        buyTax = Taxes(
            _buyMarketing,
            _buyLiquidity,
            _buyLumos,
            _buyMarketing + _buyLiquidity + _buyLumos
        );
        sellTax = Taxes(
            _sellMarketing,
            _sellLiquidity,
            _sellLumos,
            _sellMarketing + _sellLiquidity + _sellLumos
        );
    }

    function updateMarketingWallet(
        address _marketingWallet
    ) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function updateLumos(address _lumosWallet) external onlyOwner {
        lumosWallet = _lumosWallet;
    }

    function excludeFromMaxTransaction(
        address account,
        bool excluded
    ) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address.");
        require(to != address(0), "ERC20: transfer to the zero address.");
        require(
            amount > 0,
            "ERC20: Transfer amount must be greater than zero."
        );

        if (
            from != owner() &&
            to != owner() &&
            to != address(0) &&
            to != address(0xdead) &&
            !swapping
        ) {
            if (tradingActive == false) {
                require(
                    _isExcludedFromFees[from] || _isExcludedFromFees[to],
                    "ERC20: Trading is not active."
                );
            }

            if (limitsInEffect == true) {
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "ERC20: Buy transfer amount exceeds the max transaction amount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "ERC20: Max wallet exceeded."
                    );
                } else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "ERC20: Sell transfer amount exceeds the max transaction amount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "ERC20: Max wallet exceeded."
                    );
                }
            } else {
                if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount / 1000,
                        "ERC20: Sell transfer amount exceeds the max transaction amount."
                    );
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if (
            canSwap &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTax.total > 0) {
                fees = amount.mul(sellTax.total).div(100);
                tokensForLiquidity +=
                    (fees * sellTax.liquidity) /
                    sellTax.total;
                tokensForMarketing +=
                    (fees * sellTax.marketing) /
                    sellTax.total;
                tokensForLumos += (fees * sellTax.lumos) / sellTax.total;
            } else if (automatedMarketMakerPairs[from] && buyTax.total > 0) {
                fees = amount.mul(buyTax.total).div(100);
                tokensForLiquidity += (fees * buyTax.liquidity) / buyTax.total;
                tokensForMarketing += (fees * buyTax.marketing) / buyTax.total;
                tokensForLumos += (fees * buyTax.lumos) / buyTax.total;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            address(0xdead),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity +
            tokensForMarketing +
            tokensForLumos;
        bool marketingTransferSuccess;
        bool lumosTransferSuccess;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
            totalTokensToSwap /
            2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(
            totalTokensToSwap
        );
        uint256 ethForLumos = ethBalance.mul(tokensForLumos).div(
            totalTokensToSwap
        );
        uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForLumos;

        tokensForLiquidity = 0;
        tokensForMarketing = 0;
        tokensForLumos = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquidity(
                amountToSwapForETH,
                ethForLiquidity,
                tokensForLiquidity
            );
        }

        (lumosTransferSuccess, ) = address(lumosWallet).call{
            value: ethForLumos
        }("");

        (marketingTransferSuccess, ) = address(marketingWallet).call{
            value: address(this).balance
        }("");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"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":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"lumos","type":"uint256"},{"internalType":"uint256","name":"total","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lumosWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"lumos","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyMarketing","type":"uint256"},{"internalType":"uint256","name":"_buyLiquidity","type":"uint256"},{"internalType":"uint256","name":"_buyLumos","type":"uint256"},{"internalType":"uint256","name":"_sellMarketing","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidity","type":"uint256"},{"internalType":"uint256","name":"_sellLumos","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":[{"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lumosWallet","type":"address"}],"name":"updateLumos","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040525f600560166101000a81548160ff0219169083151502179055506001600560176101000a81548160ff021916908315150217905550348015610044575f5ffd5b506040518060400160405280600781526020017f4c756d6f734669000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4c4d53000000000000000000000000000000000000000000000000000000000081525081600390816100c09190610c52565b5080600490816100d09190610c52565b5050506100ef6100e461054360201b60201c565b61054a60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905061011881600161060d60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610195573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b99190610d7f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561021e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102429190610d7f565b6040518363ffffffff1660e01b815260040161025f929190610db9565b6020604051808303815f875af115801561027b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029f9190610d7f565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506102e560a051600161060d60201b60201c565b6102f860a051600161067360201b60201c565b5f61030761071160201b60201c565b600a6103139190610f48565b629896806103219190610f92565b905060646002826103329190610f92565b61033c9190611000565b60078190556008819055506103e86001826103579190610f92565b6103619190611000565b60068190555061037561054360201b60201c565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103c261054360201b60201c565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180608001604052805f81526020015f81526020015f8152602001600a815250600b5f820151815f015560208201518160010155604082015181600201556060820151816003015590505060405180608001604052805f81526020015f81526020015f8152602001601e815250600f5f820151815f01556020820151816001015560408201518160020155606082015181600301559050506104b96104ac61071960201b60201c565b600161075f60201b60201c565b6104ca30600161075f60201b60201c565b6104dd61dead600161075f60201b60201c565b6104fb6104ee61071960201b60201c565b600161060d60201b60201c565b61050c30600161060d60201b60201c565b61051f61dead600161060d60201b60201c565b61053c61053061054360201b60201c565b8261081360201b60201c565b505061119e565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61061b61096d60201b60201c565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f6012905090565b5f600560149054906101000a900460ff1615610737575f905061075c565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b90565b61076d61096d60201b60201c565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610807919061104a565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610881576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610878906110bd565b60405180910390fd5b6108925f8383610a0b60201b60201c565b8060025f8282546108a391906110db565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610950919061111d565b60405180910390a36109695f8383610a1060201b60201c565b5050565b61097b61054360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0090611180565b60405180910390fd5b565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a9057607f821691505b602082108103610aa357610aa2610a4c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610b057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610aca565b610b0f8683610aca565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610b53610b4e610b4984610b27565b610b30565b610b27565b9050919050565b5f819050919050565b610b6c83610b39565b610b80610b7882610b5a565b848454610ad6565b825550505050565b5f5f905090565b610b97610b88565b610ba2818484610b63565b505050565b5b81811015610bc557610bba5f82610b8f565b600181019050610ba8565b5050565b601f821115610c0a57610bdb81610aa9565b610be484610abb565b81016020851015610bf3578190505b610c07610bff85610abb565b830182610ba7565b50505b505050565b5f82821c905092915050565b5f610c2a5f1984600802610c0f565b1980831691505092915050565b5f610c428383610c1b565b9150826002028217905092915050565b610c5b82610a15565b67ffffffffffffffff811115610c7457610c73610a1f565b5b610c7e8254610a79565b610c89828285610bc9565b5f60209050601f831160018114610cba575f8415610ca8578287015190505b610cb28582610c37565b865550610d19565b601f198416610cc886610aa9565b5f5b82811015610cef57848901518255600182019150602085019450602081019050610cca565b86831015610d0c5784890151610d08601f891682610c1b565b8355505b6001600288020188555050505b505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d4e82610d25565b9050919050565b610d5e81610d44565b8114610d68575f5ffd5b50565b5f81519050610d7981610d55565b92915050565b5f60208284031215610d9457610d93610d21565b5b5f610da184828501610d6b565b91505092915050565b610db381610d44565b82525050565b5f604082019050610dcc5f830185610daa565b610dd96020830184610daa565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115610e6257808604811115610e3e57610e3d610de0565b5b6001851615610e4d5780820291505b8081029050610e5b85610e0d565b9450610e22565b94509492505050565b5f82610e7a5760019050610f35565b81610e87575f9050610f35565b8160018114610e9d5760028114610ea757610ed6565b6001915050610f35565b60ff841115610eb957610eb8610de0565b5b8360020a915084821115610ed057610ecf610de0565b5b50610f35565b5060208310610133831016604e8410600b8410161715610f0b5782820a905083811115610f0657610f05610de0565b5b610f35565b610f188484846001610e19565b92509050818404811115610f2f57610f2e610de0565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610f5282610b27565b9150610f5d83610f3c565b9250610f8a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610e6b565b905092915050565b5f610f9c82610b27565b9150610fa783610b27565b9250828202610fb581610b27565b91508282048414831517610fcc57610fcb610de0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61100a82610b27565b915061101583610b27565b92508261102557611024610fd3565b5b828204905092915050565b5f8115159050919050565b61104481611030565b82525050565b5f60208201905061105d5f83018461103b565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6110a7601f83611063565b91506110b282611073565b602082019050919050565b5f6020820190508181035f8301526110d48161109b565b9050919050565b5f6110e582610b27565b91506110f083610b27565b925082820190508082111561110857611107610de0565b5b92915050565b61111781610b27565b82525050565b5f6020820190506111305f83018461110e565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61116a602083611063565b915061117582611136565b602082019050919050565b5f6020820190508181035f8301526111978161115e565b9050919050565b60805160a051613a646111e25f395f6108df01525f81816108210152818161257e0152818161265d015281816126840152818161271a01526127410152613a645ff3fe6080604052600436106101e6575f3560e01c806386f6c3c111610101578063bbc0c74211610094578063dd62ed3e11610063578063dd62ed3e146106b5578063e2f45605146106f1578063f2fde38b1461071b578063f8b45b0514610743576101ed565b8063bbc0c7421461060c578063c024666814610636578063c8c8ebe41461065e578063cc1776d314610688576101ed565b806395d89b41116100d057806395d89b4114610542578063a457c2d71461056c578063a9059cbb146105a8578063aacebbe3146105e4576101ed565b806386f6c3c1146104b257806387a1241a146104da5780638a8c523c146105025780638da5cb5b14610518576101ed565b806349bd5a5e11610179578063715018a611610148578063715018a614610434578063751039fc1461044a5780637571336a1461046057806375f0a87414610488576101ed565b806349bd5a5e146103775780634a62bb65146103a15780634f7041a5146103cb57806370a08231146103f8576101ed565b806323b872dd116101b557806323b872dd146102ab578063313ce567146102e757806339509351146103115780633c0369f21461034d576101ed565b806306fdde03146101f1578063095ea7b31461021b5780631694505e1461025757806318160ddd14610281576101ed565b366101ed57005b5f5ffd5b3480156101fc575f5ffd5b5061020561076d565b6040516102129190612867565b60405180910390f35b348015610226575f5ffd5b50610241600480360381019061023c9190612918565b6107fd565b60405161024e9190612970565b60405180910390f35b348015610262575f5ffd5b5061026b61081f565b60405161027891906129e4565b60405180910390f35b34801561028c575f5ffd5b50610295610843565b6040516102a29190612a0c565b60405180910390f35b3480156102b6575f5ffd5b506102d160048036038101906102cc9190612a25565b61084c565b6040516102de9190612970565b60405180910390f35b3480156102f2575f5ffd5b506102fb61087a565b6040516103089190612a90565b60405180910390f35b34801561031c575f5ffd5b5061033760048036038101906103329190612918565b610882565b6040516103449190612970565b60405180910390f35b348015610358575f5ffd5b506103616108b8565b60405161036e9190612ab8565b60405180910390f35b348015610382575f5ffd5b5061038b6108dd565b6040516103989190612ab8565b60405180910390f35b3480156103ac575f5ffd5b506103b5610901565b6040516103c29190612970565b60405180910390f35b3480156103d6575f5ffd5b506103df610914565b6040516103ef9493929190612ad1565b60405180910390f35b348015610403575f5ffd5b5061041e60048036038101906104199190612b14565b610931565b60405161042b9190612a0c565b60405180910390f35b34801561043f575f5ffd5b50610448610976565b005b348015610455575f5ffd5b5061045e61099b565b005b34801561046b575f5ffd5b5061048660048036038101906104819190612b69565b610a15565b005b348015610493575f5ffd5b5061049c610a75565b6040516104a99190612ab8565b60405180910390f35b3480156104bd575f5ffd5b506104d860048036038101906104d39190612ba7565b610a9a565b005b3480156104e5575f5ffd5b5061050060048036038101906104fb9190612b14565b610b6e565b005b34801561050d575f5ffd5b50610516610bb9565b005b348015610523575f5ffd5b5061052c610c33565b6040516105399190612ab8565b60405180910390f35b34801561054d575f5ffd5b50610556610c79565b6040516105639190612867565b60405180910390f35b348015610577575f5ffd5b50610592600480360381019061058d9190612918565b610d09565b60405161059f9190612970565b60405180910390f35b3480156105b3575f5ffd5b506105ce60048036038101906105c99190612918565b610d7e565b6040516105db9190612970565b60405180910390f35b3480156105ef575f5ffd5b5061060a60048036038101906106059190612b14565b610da0565b005b348015610617575f5ffd5b50610620610deb565b60405161062d9190612970565b60405180910390f35b348015610641575f5ffd5b5061065c60048036038101906106579190612b69565b610dfe565b005b348015610669575f5ffd5b50610672610eac565b60405161067f9190612a0c565b60405180910390f35b348015610693575f5ffd5b5061069c610eb2565b6040516106ac9493929190612ad1565b60405180910390f35b3480156106c0575f5ffd5b506106db60048036038101906106d69190612c30565b610ecf565b6040516106e89190612a0c565b60405180910390f35b3480156106fc575f5ffd5b50610705610f51565b6040516107129190612a0c565b60405180910390f35b348015610726575f5ffd5b50610741600480360381019061073c9190612b14565b610f57565b005b34801561074e575f5ffd5b50610757610fd9565b6040516107649190612a0c565b60405180910390f35b60606003805461077c90612c9b565b80601f01602080910402602001604051908101604052809291908181526020018280546107a890612c9b565b80156107f35780601f106107ca576101008083540402835291602001916107f3565b820191905f5260205f20905b8154815290600101906020018083116107d657829003601f168201915b5050505050905090565b5f5f610807610fdf565b9050610814818585610fe6565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b5f5f610856610fdf565b90506108638582856111a9565b61086e858585611234565b60019150509392505050565b5f6012905090565b5f5f61088c610fdf565b90506108ad81858561089e8589610ecf565b6108a89190612cf8565b610fe6565b600191505092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600560179054906101000a900460ff1681565b600b805f0154908060010154908060020154908060030154905084565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61097e611e09565b6001600560146101000a81548160ff021916908315150217905550565b6109a3611e09565b60011515600560179054906101000a900460ff161515146109f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f090612d75565b60405180910390fd5b5f600560176101000a81548160ff021916908315150217905550565b610a1d611e09565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aa2611e09565b6040518060800160405280878152602001868152602001858152602001858789610acc9190612cf8565b610ad69190612cf8565b815250600b5f820151815f01556020820151816001015560408201518160020155606082015181600301559050506040518060800160405280848152602001838152602001828152602001828486610b2e9190612cf8565b610b389190612cf8565b815250600f5f820151815f0155602082015181600101556040820151816002015560608201518160030155905050505050505050565b610b76611e09565b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bc1611e09565b5f1515600560169054906101000a900460ff16151514610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90612ddd565b60405180910390fd5b6001600560166101000a81548160ff021916908315150217905550565b5f600560149054906101000a900460ff1615610c51575f9050610c76565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b90565b606060048054610c8890612c9b565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612c9b565b8015610cff5780601f10610cd657610100808354040283529160200191610cff565b820191905f5260205f20905b815481529060010190602001808311610ce257829003601f168201915b5050505050905090565b5f5f610d13610fdf565b90505f610d208286610ecf565b905083811015610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c90612e6b565b60405180910390fd5b610d728286868403610fe6565b60019250505092915050565b5f5f610d88610fdf565b9050610d95818585611234565b600191505092915050565b610da8611e09565b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560169054906101000a900460ff1681565b610e06611e09565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610ea09190612970565b60405180910390a25050565b60075481565b600f805f0154908060010154908060020154908060030154905084565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065481565b610f5f611e09565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490612ef9565b60405180910390fd5b610fd681611ea1565b50565b60085481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612f87565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b990613015565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161119c9190612a0c565b60405180910390a3505050565b5f6111b48484610ecf565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461122e5781811015611220576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112179061307d565b60405180910390fd5b61122d8484848403610fe6565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112999061310b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130790613199565b60405180910390fd5b5f8111611352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134990613227565b60405180910390fd5b61135a610c33565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113c85750611398610c33565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561140057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561143a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114535750600560159054906101000a900460ff16155b1561193d575f1515600560169054906101000a900460ff1615150361154d5760165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061150d575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61154c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115439061328f565b60405180910390fd5b5b60011515600560179054906101000a900460ff161515036118465760185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611605575060175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116ac5760075481111561164f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116469061331d565b60405180910390fd5b60085461165b83610931565b826116669190612cf8565b11156116a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169e90613385565b60405180910390fd5b611841565b60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611749575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561179857600754811115611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a90613413565b60405180910390fd5b611840565b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661183f576008546117f283610931565b826117fd9190612cf8565b111561183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590613385565b60405180910390fd5b5b5b5b61193c565b60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156118e3575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561193b576103e86007546118f8919061345e565b81111561193a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193190613413565b60405180910390fd5b5b5b5b5f60065461194a30610931565b101590508080156119685750600560159054906101000a900460ff16155b80156119bb575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a0e575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a61575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611aa4576001600560156101000a81548160ff021916908315150217905550611a89611f64565b5f600560156101000a81548160ff0219169083151502179055505b5f600560159054906101000a900460ff1615905060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b53575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611b5c575f90505b5f5f90508115611df65760185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611bc057505f600f60030154115b15611c9e57611bf06064611be2600f600301548761223690919063ffffffff16565b61224b90919063ffffffff16565b9050600f60030154600f6001015482611c09919061348e565b611c13919061345e565b60145f828254611c239190612cf8565b92505081905550600f60030154600f5f015482611c40919061348e565b611c4a919061345e565b60135f828254611c5a9190612cf8565b92505081905550600f60030154600f6002015482611c78919061348e565b611c82919061345e565b60155f828254611c929190612cf8565b92505081905550611dd3565b60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611cf857505f600b60030154115b15611dd257611d286064611d1a600b600301548761223690919063ffffffff16565b61224b90919063ffffffff16565b9050600b60030154600b6001015482611d41919061348e565b611d4b919061345e565b60145f828254611d5b9190612cf8565b92505081905550600b60030154600b5f015482611d78919061348e565b611d82919061345e565b60135f828254611d929190612cf8565b92505081905550600b60030154600b6002015482611db0919061348e565b611dba919061345e565b60155f828254611dca9190612cf8565b925050819055505b5b5f811115611de757611de6863083612260565b5b8084611df391906134cf565b93505b611e01868686612260565b505050505050565b611e11610fdf565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e969061354c565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611f6e30610931565b90505f601554601354601454611f849190612cf8565b611f8e9190612cf8565b90505f5f5f841480611f9f57505f83145b15611fad5750505050612234565b6014600654611fbc919061348e565b841115611fd5576014600654611fd2919061348e565b93505b5f60028460145487611fe7919061348e565b611ff1919061345e565b611ffb919061345e565b90505f61201182876124cc90919063ffffffff16565b90505f479050612020826124e1565b5f61203482476124cc90919063ffffffff16565b90505f61205e886120506013548561223690919063ffffffff16565b61224b90919063ffffffff16565b90505f6120888961207a6015548661223690919063ffffffff16565b61224b90919063ffffffff16565b90505f81838561209891906134cf565b6120a291906134cf565b90505f6014819055505f6013819055505f6015819055505f871180156120c757505f81115b15612114576120d68782612714565b7f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb868260145460405161210b9392919061356a565b60405180910390a15b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612159906135cc565b5f6040518083038185875af1925050503d805f8114612193576040519150601f19603f3d011682016040523d82523d5f602084013e612198565b606091505b50508098505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516121e3906135cc565b5f6040518083038185875af1925050503d805f811461221d576040519150601f19603f3d011682016040523d82523d5f602084013e612222565b606091505b50508099505050505050505050505050505b565b5f8183612243919061348e565b905092915050565b5f8183612258919061345e565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c590613650565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361233c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612333906136de565b60405180910390fd5b6123478383836127ed565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c19061376c565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124b39190612a0c565b60405180910390a36124c68484846127f2565b50505050565b5f81836124d991906134cf565b905092915050565b5f600267ffffffffffffffff8111156124fd576124fc61378a565b5b60405190808252806020026020018201604052801561252b5781602001602082028036833780820191505090505b50905030815f81518110612542576125416137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125e5573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061260991906137f8565b8160018151811061261d5761261c6137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612682307f000000000000000000000000000000000000000000000000000000000000000084610fe6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016126e3959493929190613913565b5f604051808303815f87803b1580156126fa575f5ffd5b505af115801561270c573d5f5f3e3d5ffd5b505050505050565b61273f307f000000000000000000000000000000000000000000000000000000000000000084610fe6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f5f61dead426040518863ffffffff1660e01b81526004016127a59695949392919061396b565b60606040518083038185885af11580156127c1573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906127e691906139de565b5050505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612839826127f7565b6128438185612801565b9350612853818560208601612811565b61285c8161281f565b840191505092915050565b5f6020820190508181035f83015261287f818461282f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128b48261288b565b9050919050565b6128c4816128aa565b81146128ce575f5ffd5b50565b5f813590506128df816128bb565b92915050565b5f819050919050565b6128f7816128e5565b8114612901575f5ffd5b50565b5f81359050612912816128ee565b92915050565b5f5f6040838503121561292e5761292d612887565b5b5f61293b858286016128d1565b925050602061294c85828601612904565b9150509250929050565b5f8115159050919050565b61296a81612956565b82525050565b5f6020820190506129835f830184612961565b92915050565b5f819050919050565b5f6129ac6129a76129a28461288b565b612989565b61288b565b9050919050565b5f6129bd82612992565b9050919050565b5f6129ce826129b3565b9050919050565b6129de816129c4565b82525050565b5f6020820190506129f75f8301846129d5565b92915050565b612a06816128e5565b82525050565b5f602082019050612a1f5f8301846129fd565b92915050565b5f5f5f60608486031215612a3c57612a3b612887565b5b5f612a49868287016128d1565b9350506020612a5a868287016128d1565b9250506040612a6b86828701612904565b9150509250925092565b5f60ff82169050919050565b612a8a81612a75565b82525050565b5f602082019050612aa35f830184612a81565b92915050565b612ab2816128aa565b82525050565b5f602082019050612acb5f830184612aa9565b92915050565b5f608082019050612ae45f8301876129fd565b612af160208301866129fd565b612afe60408301856129fd565b612b0b60608301846129fd565b95945050505050565b5f60208284031215612b2957612b28612887565b5b5f612b36848285016128d1565b91505092915050565b612b4881612956565b8114612b52575f5ffd5b50565b5f81359050612b6381612b3f565b92915050565b5f5f60408385031215612b7f57612b7e612887565b5b5f612b8c858286016128d1565b9250506020612b9d85828601612b55565b9150509250929050565b5f5f5f5f5f5f60c08789031215612bc157612bc0612887565b5b5f612bce89828a01612904565b9650506020612bdf89828a01612904565b9550506040612bf089828a01612904565b9450506060612c0189828a01612904565b9350506080612c1289828a01612904565b92505060a0612c2389828a01612904565b9150509295509295509295565b5f5f60408385031215612c4657612c45612887565b5b5f612c53858286016128d1565b9250506020612c64858286016128d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612cb257607f821691505b602082108103612cc557612cc4612c6e565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d02826128e5565b9150612d0d836128e5565b9250828201905080821115612d2557612d24612ccb565b5b92915050565b7f546865206c696d69747320686173206265656e2072656d6f7665642e000000005f82015250565b5f612d5f601c83612801565b9150612d6a82612d2b565b602082019050919050565b5f6020820190508181035f830152612d8c81612d53565b9050919050565b7f5468652074726164696e6720686173206265656e206f70656e65642e000000005f82015250565b5f612dc7601c83612801565b9150612dd282612d93565b602082019050919050565b5f6020820190508181035f830152612df481612dbb565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612e55602583612801565b9150612e6082612dfb565b604082019050919050565b5f6020820190508181035f830152612e8281612e49565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ee3602683612801565b9150612eee82612e89565b604082019050919050565b5f6020820190508181035f830152612f1081612ed7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f71602483612801565b9150612f7c82612f17565b604082019050919050565b5f6020820190508181035f830152612f9e81612f65565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fff602283612801565b915061300a82612fa5565b604082019050919050565b5f6020820190508181035f83015261302c81612ff3565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613067601d83612801565b915061307282613033565b602082019050919050565b5f6020820190508181035f8301526130948161305b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f64726573732e0000000000000000000000000000000000000000000000000000602082015250565b5f6130f5602683612801565b91506131008261309b565b604082019050919050565b5f6020820190508181035f830152613122816130e9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573732e00000000000000000000000000000000000000000000000000000000602082015250565b5f613183602483612801565b915061318e82613129565b604082019050919050565b5f6020820190508181035f8301526131b081613177565b9050919050565b7f45524332303a205472616e7366657220616d6f756e74206d75737420626520675f8201527f726561746572207468616e207a65726f2e000000000000000000000000000000602082015250565b5f613211603183612801565b915061321c826131b7565b604082019050919050565b5f6020820190508181035f83015261323e81613205565b9050919050565b7f45524332303a2054726164696e67206973206e6f74206163746976652e0000005f82015250565b5f613279601d83612801565b915061328482613245565b602082019050919050565b5f6020820190508181035f8301526132a68161326d565b9050919050565b7f45524332303a20427579207472616e7366657220616d6f756e742065786365655f8201527f647320746865206d6178207472616e73616374696f6e20616d6f756e742e0000602082015250565b5f613307603e83612801565b9150613312826132ad565b604082019050919050565b5f6020820190508181035f830152613334816132fb565b9050919050565b7f45524332303a204d61782077616c6c65742065786365656465642e00000000005f82015250565b5f61336f601b83612801565b915061337a8261333b565b602082019050919050565b5f6020820190508181035f83015261339c81613363565b9050919050565b7f45524332303a2053656c6c207472616e7366657220616d6f756e7420657863655f8201527f65647320746865206d6178207472616e73616374696f6e20616d6f756e742e00602082015250565b5f6133fd603f83612801565b9150613408826133a3565b604082019050919050565b5f6020820190508181035f83015261342a816133f1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613468826128e5565b9150613473836128e5565b92508261348357613482613431565b5b828204905092915050565b5f613498826128e5565b91506134a3836128e5565b92508282026134b1816128e5565b915082820484148315176134c8576134c7612ccb565b5b5092915050565b5f6134d9826128e5565b91506134e4836128e5565b92508282039050818111156134fc576134fb612ccb565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613536602083612801565b915061354182613502565b602082019050919050565b5f6020820190508181035f8301526135638161352a565b9050919050565b5f60608201905061357d5f8301866129fd565b61358a60208301856129fd565b61359760408301846129fd565b949350505050565b5f81905092915050565b50565b5f6135b75f8361359f565b91506135c2826135a9565b5f82019050919050565b5f6135d6826135ac565b9150819050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61363a602583612801565b9150613645826135e0565b604082019050919050565b5f6020820190508181035f8301526136678161362e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136c8602383612801565b91506136d38261366e565b604082019050919050565b5f6020820190508181035f8301526136f5816136bc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613756602683612801565b9150613761826136fc565b604082019050919050565b5f6020820190508181035f8301526137838161374a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506137f2816128bb565b92915050565b5f6020828403121561380d5761380c612887565b5b5f61381a848285016137e4565b91505092915050565b5f819050919050565b5f61384661384161383c84613823565b612989565b6128e5565b9050919050565b6138568161382c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61388e816128aa565b82525050565b5f61389f8383613885565b60208301905092915050565b5f602082019050919050565b5f6138c18261385c565b6138cb8185613866565b93506138d683613876565b805f5b838110156139065781516138ed8882613894565b97506138f8836138ab565b9250506001810190506138d9565b5085935050505092915050565b5f60a0820190506139265f8301886129fd565b613933602083018761384d565b818103604083015261394581866138b7565b90506139546060830185612aa9565b61396160808301846129fd565b9695505050505050565b5f60c08201905061397e5f830189612aa9565b61398b60208301886129fd565b613998604083018761384d565b6139a5606083018661384d565b6139b26080830185612aa9565b6139bf60a08301846129fd565b979650505050505050565b5f815190506139d8816128ee565b92915050565b5f5f5f606084860312156139f5576139f4612887565b5b5f613a02868287016139ca565b9350506020613a13868287016139ca565b9250506040613a24868287016139ca565b915050925092509256fea2646970667358221220fa539f0622d07f99b15d0e2e111c483420861241fd57f1e51adf509304220fb864736f6c634300081b0033

Deployed Bytecode

0x6080604052600436106101e6575f3560e01c806386f6c3c111610101578063bbc0c74211610094578063dd62ed3e11610063578063dd62ed3e146106b5578063e2f45605146106f1578063f2fde38b1461071b578063f8b45b0514610743576101ed565b8063bbc0c7421461060c578063c024666814610636578063c8c8ebe41461065e578063cc1776d314610688576101ed565b806395d89b41116100d057806395d89b4114610542578063a457c2d71461056c578063a9059cbb146105a8578063aacebbe3146105e4576101ed565b806386f6c3c1146104b257806387a1241a146104da5780638a8c523c146105025780638da5cb5b14610518576101ed565b806349bd5a5e11610179578063715018a611610148578063715018a614610434578063751039fc1461044a5780637571336a1461046057806375f0a87414610488576101ed565b806349bd5a5e146103775780634a62bb65146103a15780634f7041a5146103cb57806370a08231146103f8576101ed565b806323b872dd116101b557806323b872dd146102ab578063313ce567146102e757806339509351146103115780633c0369f21461034d576101ed565b806306fdde03146101f1578063095ea7b31461021b5780631694505e1461025757806318160ddd14610281576101ed565b366101ed57005b5f5ffd5b3480156101fc575f5ffd5b5061020561076d565b6040516102129190612867565b60405180910390f35b348015610226575f5ffd5b50610241600480360381019061023c9190612918565b6107fd565b60405161024e9190612970565b60405180910390f35b348015610262575f5ffd5b5061026b61081f565b60405161027891906129e4565b60405180910390f35b34801561028c575f5ffd5b50610295610843565b6040516102a29190612a0c565b60405180910390f35b3480156102b6575f5ffd5b506102d160048036038101906102cc9190612a25565b61084c565b6040516102de9190612970565b60405180910390f35b3480156102f2575f5ffd5b506102fb61087a565b6040516103089190612a90565b60405180910390f35b34801561031c575f5ffd5b5061033760048036038101906103329190612918565b610882565b6040516103449190612970565b60405180910390f35b348015610358575f5ffd5b506103616108b8565b60405161036e9190612ab8565b60405180910390f35b348015610382575f5ffd5b5061038b6108dd565b6040516103989190612ab8565b60405180910390f35b3480156103ac575f5ffd5b506103b5610901565b6040516103c29190612970565b60405180910390f35b3480156103d6575f5ffd5b506103df610914565b6040516103ef9493929190612ad1565b60405180910390f35b348015610403575f5ffd5b5061041e60048036038101906104199190612b14565b610931565b60405161042b9190612a0c565b60405180910390f35b34801561043f575f5ffd5b50610448610976565b005b348015610455575f5ffd5b5061045e61099b565b005b34801561046b575f5ffd5b5061048660048036038101906104819190612b69565b610a15565b005b348015610493575f5ffd5b5061049c610a75565b6040516104a99190612ab8565b60405180910390f35b3480156104bd575f5ffd5b506104d860048036038101906104d39190612ba7565b610a9a565b005b3480156104e5575f5ffd5b5061050060048036038101906104fb9190612b14565b610b6e565b005b34801561050d575f5ffd5b50610516610bb9565b005b348015610523575f5ffd5b5061052c610c33565b6040516105399190612ab8565b60405180910390f35b34801561054d575f5ffd5b50610556610c79565b6040516105639190612867565b60405180910390f35b348015610577575f5ffd5b50610592600480360381019061058d9190612918565b610d09565b60405161059f9190612970565b60405180910390f35b3480156105b3575f5ffd5b506105ce60048036038101906105c99190612918565b610d7e565b6040516105db9190612970565b60405180910390f35b3480156105ef575f5ffd5b5061060a60048036038101906106059190612b14565b610da0565b005b348015610617575f5ffd5b50610620610deb565b60405161062d9190612970565b60405180910390f35b348015610641575f5ffd5b5061065c60048036038101906106579190612b69565b610dfe565b005b348015610669575f5ffd5b50610672610eac565b60405161067f9190612a0c565b60405180910390f35b348015610693575f5ffd5b5061069c610eb2565b6040516106ac9493929190612ad1565b60405180910390f35b3480156106c0575f5ffd5b506106db60048036038101906106d69190612c30565b610ecf565b6040516106e89190612a0c565b60405180910390f35b3480156106fc575f5ffd5b50610705610f51565b6040516107129190612a0c565b60405180910390f35b348015610726575f5ffd5b50610741600480360381019061073c9190612b14565b610f57565b005b34801561074e575f5ffd5b50610757610fd9565b6040516107649190612a0c565b60405180910390f35b60606003805461077c90612c9b565b80601f01602080910402602001604051908101604052809291908181526020018280546107a890612c9b565b80156107f35780601f106107ca576101008083540402835291602001916107f3565b820191905f5260205f20905b8154815290600101906020018083116107d657829003601f168201915b5050505050905090565b5f5f610807610fdf565b9050610814818585610fe6565b600191505092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b5f5f610856610fdf565b90506108638582856111a9565b61086e858585611234565b60019150509392505050565b5f6012905090565b5f5f61088c610fdf565b90506108ad81858561089e8589610ecf565b6108a89190612cf8565b610fe6565b600191505092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000e352619072e2ae4d85fd21aa7df990101a1cdddd81565b600560179054906101000a900460ff1681565b600b805f0154908060010154908060020154908060030154905084565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61097e611e09565b6001600560146101000a81548160ff021916908315150217905550565b6109a3611e09565b60011515600560179054906101000a900460ff161515146109f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f090612d75565b60405180910390fd5b5f600560176101000a81548160ff021916908315150217905550565b610a1d611e09565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aa2611e09565b6040518060800160405280878152602001868152602001858152602001858789610acc9190612cf8565b610ad69190612cf8565b815250600b5f820151815f01556020820151816001015560408201518160020155606082015181600301559050506040518060800160405280848152602001838152602001828152602001828486610b2e9190612cf8565b610b389190612cf8565b815250600f5f820151815f0155602082015181600101556040820151816002015560608201518160030155905050505050505050565b610b76611e09565b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bc1611e09565b5f1515600560169054906101000a900460ff16151514610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90612ddd565b60405180910390fd5b6001600560166101000a81548160ff021916908315150217905550565b5f600560149054906101000a900460ff1615610c51575f9050610c76565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b90565b606060048054610c8890612c9b565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612c9b565b8015610cff5780601f10610cd657610100808354040283529160200191610cff565b820191905f5260205f20905b815481529060010190602001808311610ce257829003601f168201915b5050505050905090565b5f5f610d13610fdf565b90505f610d208286610ecf565b905083811015610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c90612e6b565b60405180910390fd5b610d728286868403610fe6565b60019250505092915050565b5f5f610d88610fdf565b9050610d95818585611234565b600191505092915050565b610da8611e09565b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560169054906101000a900460ff1681565b610e06611e09565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610ea09190612970565b60405180910390a25050565b60075481565b600f805f0154908060010154908060020154908060030154905084565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065481565b610f5f611e09565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490612ef9565b60405180910390fd5b610fd681611ea1565b50565b60085481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612f87565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b990613015565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161119c9190612a0c565b60405180910390a3505050565b5f6111b48484610ecf565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461122e5781811015611220576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112179061307d565b60405180910390fd5b61122d8484848403610fe6565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112999061310b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130790613199565b60405180910390fd5b5f8111611352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134990613227565b60405180910390fd5b61135a610c33565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113c85750611398610c33565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561140057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561143a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114535750600560159054906101000a900460ff16155b1561193d575f1515600560169054906101000a900460ff1615150361154d5760165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061150d575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61154c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115439061328f565b60405180910390fd5b5b60011515600560179054906101000a900460ff161515036118465760185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611605575060175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116ac5760075481111561164f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116469061331d565b60405180910390fd5b60085461165b83610931565b826116669190612cf8565b11156116a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169e90613385565b60405180910390fd5b611841565b60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611749575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561179857600754811115611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a90613413565b60405180910390fd5b611840565b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661183f576008546117f283610931565b826117fd9190612cf8565b111561183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590613385565b60405180910390fd5b5b5b5b61193c565b60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156118e3575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561193b576103e86007546118f8919061345e565b81111561193a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193190613413565b60405180910390fd5b5b5b5b5f60065461194a30610931565b101590508080156119685750600560159054906101000a900460ff16155b80156119bb575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a0e575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a61575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611aa4576001600560156101000a81548160ff021916908315150217905550611a89611f64565b5f600560156101000a81548160ff0219169083151502179055505b5f600560159054906101000a900460ff1615905060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b53575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611b5c575f90505b5f5f90508115611df65760185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611bc057505f600f60030154115b15611c9e57611bf06064611be2600f600301548761223690919063ffffffff16565b61224b90919063ffffffff16565b9050600f60030154600f6001015482611c09919061348e565b611c13919061345e565b60145f828254611c239190612cf8565b92505081905550600f60030154600f5f015482611c40919061348e565b611c4a919061345e565b60135f828254611c5a9190612cf8565b92505081905550600f60030154600f6002015482611c78919061348e565b611c82919061345e565b60155f828254611c929190612cf8565b92505081905550611dd3565b60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611cf857505f600b60030154115b15611dd257611d286064611d1a600b600301548761223690919063ffffffff16565b61224b90919063ffffffff16565b9050600b60030154600b6001015482611d41919061348e565b611d4b919061345e565b60145f828254611d5b9190612cf8565b92505081905550600b60030154600b5f015482611d78919061348e565b611d82919061345e565b60135f828254611d929190612cf8565b92505081905550600b60030154600b6002015482611db0919061348e565b611dba919061345e565b60155f828254611dca9190612cf8565b925050819055505b5b5f811115611de757611de6863083612260565b5b8084611df391906134cf565b93505b611e01868686612260565b505050505050565b611e11610fdf565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e969061354c565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611f6e30610931565b90505f601554601354601454611f849190612cf8565b611f8e9190612cf8565b90505f5f5f841480611f9f57505f83145b15611fad5750505050612234565b6014600654611fbc919061348e565b841115611fd5576014600654611fd2919061348e565b93505b5f60028460145487611fe7919061348e565b611ff1919061345e565b611ffb919061345e565b90505f61201182876124cc90919063ffffffff16565b90505f479050612020826124e1565b5f61203482476124cc90919063ffffffff16565b90505f61205e886120506013548561223690919063ffffffff16565b61224b90919063ffffffff16565b90505f6120888961207a6015548661223690919063ffffffff16565b61224b90919063ffffffff16565b90505f81838561209891906134cf565b6120a291906134cf565b90505f6014819055505f6013819055505f6015819055505f871180156120c757505f81115b15612114576120d68782612714565b7f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb868260145460405161210b9392919061356a565b60405180910390a15b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612159906135cc565b5f6040518083038185875af1925050503d805f8114612193576040519150601f19603f3d011682016040523d82523d5f602084013e612198565b606091505b50508098505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516121e3906135cc565b5f6040518083038185875af1925050503d805f811461221d576040519150601f19603f3d011682016040523d82523d5f602084013e612222565b606091505b50508099505050505050505050505050505b565b5f8183612243919061348e565b905092915050565b5f8183612258919061345e565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c590613650565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361233c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612333906136de565b60405180910390fd5b6123478383836127ed565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c19061376c565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124b39190612a0c565b60405180910390a36124c68484846127f2565b50505050565b5f81836124d991906134cf565b905092915050565b5f600267ffffffffffffffff8111156124fd576124fc61378a565b5b60405190808252806020026020018201604052801561252b5781602001602082028036833780820191505090505b50905030815f81518110612542576125416137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125e5573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061260991906137f8565b8160018151811061261d5761261c6137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612682307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610fe6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016126e3959493929190613913565b5f604051808303815f87803b1580156126fa575f5ffd5b505af115801561270c573d5f5f3e3d5ffd5b505050505050565b61273f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610fe6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f5f61dead426040518863ffffffff1660e01b81526004016127a59695949392919061396b565b60606040518083038185885af11580156127c1573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906127e691906139de565b5050505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612839826127f7565b6128438185612801565b9350612853818560208601612811565b61285c8161281f565b840191505092915050565b5f6020820190508181035f83015261287f818461282f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128b48261288b565b9050919050565b6128c4816128aa565b81146128ce575f5ffd5b50565b5f813590506128df816128bb565b92915050565b5f819050919050565b6128f7816128e5565b8114612901575f5ffd5b50565b5f81359050612912816128ee565b92915050565b5f5f6040838503121561292e5761292d612887565b5b5f61293b858286016128d1565b925050602061294c85828601612904565b9150509250929050565b5f8115159050919050565b61296a81612956565b82525050565b5f6020820190506129835f830184612961565b92915050565b5f819050919050565b5f6129ac6129a76129a28461288b565b612989565b61288b565b9050919050565b5f6129bd82612992565b9050919050565b5f6129ce826129b3565b9050919050565b6129de816129c4565b82525050565b5f6020820190506129f75f8301846129d5565b92915050565b612a06816128e5565b82525050565b5f602082019050612a1f5f8301846129fd565b92915050565b5f5f5f60608486031215612a3c57612a3b612887565b5b5f612a49868287016128d1565b9350506020612a5a868287016128d1565b9250506040612a6b86828701612904565b9150509250925092565b5f60ff82169050919050565b612a8a81612a75565b82525050565b5f602082019050612aa35f830184612a81565b92915050565b612ab2816128aa565b82525050565b5f602082019050612acb5f830184612aa9565b92915050565b5f608082019050612ae45f8301876129fd565b612af160208301866129fd565b612afe60408301856129fd565b612b0b60608301846129fd565b95945050505050565b5f60208284031215612b2957612b28612887565b5b5f612b36848285016128d1565b91505092915050565b612b4881612956565b8114612b52575f5ffd5b50565b5f81359050612b6381612b3f565b92915050565b5f5f60408385031215612b7f57612b7e612887565b5b5f612b8c858286016128d1565b9250506020612b9d85828601612b55565b9150509250929050565b5f5f5f5f5f5f60c08789031215612bc157612bc0612887565b5b5f612bce89828a01612904565b9650506020612bdf89828a01612904565b9550506040612bf089828a01612904565b9450506060612c0189828a01612904565b9350506080612c1289828a01612904565b92505060a0612c2389828a01612904565b9150509295509295509295565b5f5f60408385031215612c4657612c45612887565b5b5f612c53858286016128d1565b9250506020612c64858286016128d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612cb257607f821691505b602082108103612cc557612cc4612c6e565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d02826128e5565b9150612d0d836128e5565b9250828201905080821115612d2557612d24612ccb565b5b92915050565b7f546865206c696d69747320686173206265656e2072656d6f7665642e000000005f82015250565b5f612d5f601c83612801565b9150612d6a82612d2b565b602082019050919050565b5f6020820190508181035f830152612d8c81612d53565b9050919050565b7f5468652074726164696e6720686173206265656e206f70656e65642e000000005f82015250565b5f612dc7601c83612801565b9150612dd282612d93565b602082019050919050565b5f6020820190508181035f830152612df481612dbb565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612e55602583612801565b9150612e6082612dfb565b604082019050919050565b5f6020820190508181035f830152612e8281612e49565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ee3602683612801565b9150612eee82612e89565b604082019050919050565b5f6020820190508181035f830152612f1081612ed7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f71602483612801565b9150612f7c82612f17565b604082019050919050565b5f6020820190508181035f830152612f9e81612f65565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fff602283612801565b915061300a82612fa5565b604082019050919050565b5f6020820190508181035f83015261302c81612ff3565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613067601d83612801565b915061307282613033565b602082019050919050565b5f6020820190508181035f8301526130948161305b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f64726573732e0000000000000000000000000000000000000000000000000000602082015250565b5f6130f5602683612801565b91506131008261309b565b604082019050919050565b5f6020820190508181035f830152613122816130e9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573732e00000000000000000000000000000000000000000000000000000000602082015250565b5f613183602483612801565b915061318e82613129565b604082019050919050565b5f6020820190508181035f8301526131b081613177565b9050919050565b7f45524332303a205472616e7366657220616d6f756e74206d75737420626520675f8201527f726561746572207468616e207a65726f2e000000000000000000000000000000602082015250565b5f613211603183612801565b915061321c826131b7565b604082019050919050565b5f6020820190508181035f83015261323e81613205565b9050919050565b7f45524332303a2054726164696e67206973206e6f74206163746976652e0000005f82015250565b5f613279601d83612801565b915061328482613245565b602082019050919050565b5f6020820190508181035f8301526132a68161326d565b9050919050565b7f45524332303a20427579207472616e7366657220616d6f756e742065786365655f8201527f647320746865206d6178207472616e73616374696f6e20616d6f756e742e0000602082015250565b5f613307603e83612801565b9150613312826132ad565b604082019050919050565b5f6020820190508181035f830152613334816132fb565b9050919050565b7f45524332303a204d61782077616c6c65742065786365656465642e00000000005f82015250565b5f61336f601b83612801565b915061337a8261333b565b602082019050919050565b5f6020820190508181035f83015261339c81613363565b9050919050565b7f45524332303a2053656c6c207472616e7366657220616d6f756e7420657863655f8201527f65647320746865206d6178207472616e73616374696f6e20616d6f756e742e00602082015250565b5f6133fd603f83612801565b9150613408826133a3565b604082019050919050565b5f6020820190508181035f83015261342a816133f1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613468826128e5565b9150613473836128e5565b92508261348357613482613431565b5b828204905092915050565b5f613498826128e5565b91506134a3836128e5565b92508282026134b1816128e5565b915082820484148315176134c8576134c7612ccb565b5b5092915050565b5f6134d9826128e5565b91506134e4836128e5565b92508282039050818111156134fc576134fb612ccb565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613536602083612801565b915061354182613502565b602082019050919050565b5f6020820190508181035f8301526135638161352a565b9050919050565b5f60608201905061357d5f8301866129fd565b61358a60208301856129fd565b61359760408301846129fd565b949350505050565b5f81905092915050565b50565b5f6135b75f8361359f565b91506135c2826135a9565b5f82019050919050565b5f6135d6826135ac565b9150819050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61363a602583612801565b9150613645826135e0565b604082019050919050565b5f6020820190508181035f8301526136678161362e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136c8602383612801565b91506136d38261366e565b604082019050919050565b5f6020820190508181035f8301526136f5816136bc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613756602683612801565b9150613761826136fc565b604082019050919050565b5f6020820190508181035f8301526137838161374a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506137f2816128bb565b92915050565b5f6020828403121561380d5761380c612887565b5b5f61381a848285016137e4565b91505092915050565b5f819050919050565b5f61384661384161383c84613823565b612989565b6128e5565b9050919050565b6138568161382c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61388e816128aa565b82525050565b5f61389f8383613885565b60208301905092915050565b5f602082019050919050565b5f6138c18261385c565b6138cb8185613866565b93506138d683613876565b805f5b838110156139065781516138ed8882613894565b97506138f8836138ab565b9250506001810190506138d9565b5085935050505092915050565b5f60a0820190506139265f8301886129fd565b613933602083018761384d565b818103604083015261394581866138b7565b90506139546060830185612aa9565b61396160808301846129fd565b9695505050505050565b5f60c08201905061397e5f830189612aa9565b61398b60208301886129fd565b613998604083018761384d565b6139a5606083018661384d565b6139b26080830185612aa9565b6139bf60a08301846129fd565b979650505050505050565b5f815190506139d8816128ee565b92915050565b5f5f5f606084860312156139f5576139f4612887565b5b5f613a02868287016139ca565b9350506020613a13868287016139ca565b9250506040613a24868287016139ca565b915050925092509256fea2646970667358221220fa539f0622d07f99b15d0e2e111c483420861241fd57f1e51adf509304220fb864736f6c634300081b0033

Deployed Bytecode Sourcemap

9969:11129:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3521:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4519:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10044:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3842:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4753:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3741:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5056:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10409:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10102:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10215:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10575:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3958:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1580:92;;;;;;;;;;;;;:::i;:::-;;12718:158;;;;;;;;;;;;;:::i;:::-;;13749:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10372:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12884:589;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13634:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12553:157;;;;;;;;;;;;;:::i;:::-;;1274:159;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3629:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5327:498;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4109:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13481:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10175:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13936:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10297:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10601:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4335:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10257:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1680:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10339:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3521:100;3575:13;3608:5;3601:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3521:100;:::o;4519:226::-;4627:4;4644:13;4660:12;:10;:12::i;:::-;4644:28;;4683:32;4692:5;4699:7;4708:6;4683:8;:32::i;:::-;4733:4;4726:11;;;4519:226;;;;:::o;10044:51::-;;;:::o;3842:108::-;3903:7;3930:12;;3923:19;;3842:108;:::o;4753:295::-;4884:4;4901:15;4919:12;:10;:12::i;:::-;4901:30;;4942:38;4958:4;4964:7;4973:6;4942:15;:38::i;:::-;4991:27;5001:4;5007:2;5011:6;4991:9;:27::i;:::-;5036:4;5029:11;;;4753:295;;;;;:::o;3741:93::-;3799:5;3824:2;3817:9;;3741:93;:::o;5056:263::-;5169:4;5186:13;5202:12;:10;:12::i;:::-;5186:28;;5225:64;5234:5;5241:7;5278:10;5250:25;5260:5;5267:7;5250:9;:25::i;:::-;:38;;;;:::i;:::-;5225:8;:64::i;:::-;5307:4;5300:11;;;5056:263;;;;:::o;10409:26::-;;;;;;;;;;;;;:::o;10102:38::-;;;:::o;10215:33::-;;;;;;;;;;;;;:::o;10575:19::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;3958:143::-;4048:7;4075:9;:18;4085:7;4075:18;;;;;;;;;;;;;;;;4068:25;;3958:143;;;:::o;1580:92::-;1233:13;:11;:13::i;:::-;1660:4:::1;1645:12;;:19;;;;;;;;;;;;;;;;;;1580:92::o:0;12718:158::-;1233:13;:11;:13::i;:::-;12798:4:::1;12780:22;;:14;;;;;;;;;;;:22;;;12772:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12863:5;12846:14;;:22;;;;;;;;;;;;;;;;;;12718:158::o:0;13749:179::-;1233:13;:11;:13::i;:::-;13912:8:::1;13869:31;:40;13901:7;13869:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;13749:179:::0;;:::o;10372:30::-;;;;;;;;;;;;;:::o;12884:589::-;1233:13;:11;:13::i;:::-;13134:152:::1;;;;;;;;13154:13;13134:152;;;;13182:13;13134:152;;;;13210:9;13134:152;;;;13266:9;13250:13;13234;:29;;;;:::i;:::-;:41;;;;:::i;:::-;13134:152;;::::0;13125:6:::1;:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13307:158;;;;;;;;13327:14;13307:158;;;;13356:14;13307:158;;;;13385:10;13307:158;;;;13444:10;13427:14;13410;:31;;;;:::i;:::-;:44;;;;:::i;:::-;13307:158;;::::0;13297:7:::1;:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12884:589:::0;;;;;;:::o;13634:107::-;1233:13;:11;:13::i;:::-;13721:12:::1;13707:11;;:26;;;;;;;;;;;;;;;;;;13634:107:::0;:::o;12553:157::-;1233:13;:11;:13::i;:::-;12633:5:::1;12616:22;;:13;;;;;;;;;;;:22;;;12608:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12698:4;12682:13;;:20;;;;;;;;;;;;;;;;;;12553:157::o:0;1274:159::-;1320:7;1344:12;;;;;;;;;;;1340:62;;;1388:1;1373:17;;;;1340:62;1419:6;;;;;;;;;;;1412:13;;1274:159;;:::o;3629:104::-;3685:13;3718:7;3711:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3629:104;:::o;5327:498::-;5445:4;5462:13;5478:12;:10;:12::i;:::-;5462:28;;5501:24;5528:25;5538:5;5545:7;5528:9;:25::i;:::-;5501:52;;5606:15;5586:16;:35;;5564:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;5722:60;5731:5;5738:7;5766:15;5747:16;:34;5722:8;:60::i;:::-;5813:4;5806:11;;;;5327:498;;;;:::o;4109:218::-;4213:4;4230:13;4246:12;:10;:12::i;:::-;4230:28;;4269;4279:5;4286:2;4290:6;4269:9;:28::i;:::-;4315:4;4308:11;;;4109:218;;;;:::o;13481:145::-;1233:13;:11;:13::i;:::-;13602:16:::1;13584:15;;:34;;;;;;;;;;;;;;;;;;13481:145:::0;:::o;10175:33::-;;;;;;;;;;;;;:::o;13936:182::-;1233:13;:11;:13::i;:::-;14052:8:::1;14021:19;:28;14041:7;14021:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14092:7;14076:34;;;14101:8;14076:34;;;;;;:::i;:::-;;;;;;;;13936:182:::0;;:::o;10297:35::-;;;;:::o;10601:20::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;4335:176::-;4449:7;4476:11;:18;4488:5;4476:18;;;;;;;;;;;;;;;:27;4495:7;4476:27;;;;;;;;;;;;;;;;4469:34;;4335:176;;;;:::o;10257:33::-;;;;:::o;1680:238::-;1233:13;:11;:13::i;:::-;1803:1:::1;1783:22;;:8;:22;;::::0;1761:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1882:28;1901:8;1882:18;:28::i;:::-;1680:238:::0;:::o;10339:24::-;;;;:::o;809:98::-;862:7;889:10;882:17;;809:98;:::o;7957:380::-;8110:1;8093:19;;:5;:19;;;8085:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8191:1;8172:21;;:7;:21;;;8164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8275:6;8245:11;:18;8257:5;8245:18;;;;;;;;;;;;;;;:27;8264:7;8245:27;;;;;;;;;;;;;;;:36;;;;8313:7;8297:32;;8306:5;8297:32;;;8322:6;8297:32;;;;;;:::i;:::-;;;;;;;;7957:380;;;:::o;8345:502::-;8480:24;8507:25;8517:5;8524:7;8507:9;:25::i;:::-;8480:52;;8567:17;8547:16;:37;8543:297;;8647:6;8627:16;:26;;8601:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;8762:51;8771:5;8778:7;8806:6;8787:16;:25;8762:8;:51::i;:::-;8543:297;8469:378;8345:502;;;:::o;14320:4058::-;14468:1;14452:18;;:4;:18;;;14444:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14546:1;14532:16;;:2;:16;;;14524:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14631:1;14622:6;:10;14600:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;14748:7;:5;:7::i;:::-;14740:15;;:4;:15;;;;:45;;;;;14778:7;:5;:7::i;:::-;14772:13;;:2;:13;;;;14740:45;:78;;;;;14816:1;14802:16;;:2;:16;;;;14740:78;:116;;;;;14849:6;14835:21;;:2;:21;;;;14740:116;:142;;;;;14874:8;;;;;;;;;;;14873:9;14740:142;14722:2036;;;14930:5;14913:22;;:13;;;;;;;;;;;:22;;;14909:218;;14986:19;:25;15006:4;14986:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;15015:19;:23;15035:2;15015:23;;;;;;;;;;;;;;;;;;;;;;;;;14986:52;14956:155;;;;;;;;;;;;:::i;:::-;;;;;;;;;14909:218;15165:4;15147:22;;:14;;;;;;;;;;;:22;;;15143:1604;;15216:25;:31;15242:4;15216:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;15273:31;:35;15305:2;15273:35;;;;;;;;;;;;;;;;;;;;;;;;;15272:36;15216:92;15190:1135;;;15395:20;;15385:6;:30;;15351:178;;;;;;;;;;;;:::i;:::-;;;;;;;;;15612:9;;15595:13;15605:2;15595:9;:13::i;:::-;15586:6;:22;;;;:::i;:::-;:35;;15552:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;15190:1135;;;15752:25;:29;15778:2;15752:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;15807:31;:37;15839:4;15807:37;;;;;;;;;;;;;;;;;;;;;;;;;15806:38;15752:92;15726:599;;;15931:20;;15921:6;:30;;15887:179;;;;;;;;;;;;:::i;:::-;;;;;;;;;15726:599;;;16097:31;:35;16129:2;16097:35;;;;;;;;;;;;;;;;;;;;;;;;;16092:233;;16217:9;;16200:13;16210:2;16200:9;:13::i;:::-;16191:6;:22;;;;:::i;:::-;:35;;16157:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;16092:233;15726:599;15190:1135;15143:1604;;;16391:25;:29;16417:2;16391:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;16446:31;:37;16478:4;16446:37;;;;;;;;;;;;;;;;;;;;;;;;;16445:38;16391:92;16365:367;;;16593:4;16570:20;;:27;;;;:::i;:::-;16560:6;:37;;16526:186;;;;;;;;;;;;:::i;:::-;;;;;;;;;16365:367;15143:1604;14722:2036;16770:12;16813:18;;16785:24;16803:4;16785:9;:24::i;:::-;:46;;16770:61;;16860:7;:33;;;;;16885:8;;;;;;;;;;;16884:9;16860:33;:82;;;;;16911:25;:31;16937:4;16911:31;;;;;;;;;;;;;;;;;;;;;;;;;16910:32;16860:82;:125;;;;;16960:19;:25;16980:4;16960:25;;;;;;;;;;;;;;;;;;;;;;;;;16959:26;16860:125;:166;;;;;17003:19;:23;17023:2;17003:23;;;;;;;;;;;;;;;;;;;;;;;;;17002:24;16860:166;16842:294;;;17064:4;17053:8;;:15;;;;;;;;;;;;;;;;;;17083:10;:8;:10::i;:::-;17119:5;17108:8;;:16;;;;;;;;;;;;;;;;;;16842:294;17148:12;17164:8;;;;;;;;;;;17163:9;17148:24;;17187:19;:25;17207:4;17187:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;17216:19;:23;17236:2;17216:23;;;;;;;;;;;;;;;;;;;;;;;;;17187:52;17183:100;;;17266:5;17256:15;;17183:100;17295:12;17310:1;17295:16;;17326:7;17322:1005;;;17354:25;:29;17380:2;17354:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;17403:1;17387:7;:13;;;:17;17354:50;17350:830;;;17432:34;17462:3;17432:25;17443:7;:13;;;17432:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;17425:41;;17578:7;:13;;;17536:7;:17;;;17529:4;:24;;;;:::i;:::-;17528:63;;;;:::i;:::-;17485:18;;:106;;;;;;;:::i;:::-;;;;;;;;17703:7;:13;;;17661:7;:17;;;17654:4;:24;;;;:::i;:::-;17653:63;;;;:::i;:::-;17610:18;;:106;;;;;;;:::i;:::-;;;;;;;;17778:7;:13;;;17761:7;:13;;;17754:4;:20;;;;:::i;:::-;17753:38;;;;:::i;:::-;17735:14;;:56;;;;;;;:::i;:::-;;;;;;;;17350:830;;;17817:25;:31;17843:4;17817:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;17867:1;17852:6;:12;;;:16;17817:51;17813:367;;;17896:33;17925:3;17896:24;17907:6;:12;;;17896:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;17889:40;;17998:6;:12;;;17978:6;:16;;;17971:4;:23;;;;:::i;:::-;17970:40;;;;:::i;:::-;17948:18;;:62;;;;;;;:::i;:::-;;;;;;;;18079:6;:12;;;18059:6;:16;;;18052:4;:23;;;;:::i;:::-;18051:40;;;;:::i;:::-;18029:18;;:62;;;;;;;:::i;:::-;;;;;;;;18152:6;:12;;;18136:6;:12;;;18129:4;:19;;;;:::i;:::-;18128:36;;;;:::i;:::-;18110:14;;:54;;;;;;;:::i;:::-;;;;;;;;17813:367;17350:830;18207:1;18200:4;:8;18196:91;;;18229:42;18245:4;18259;18266;18229:15;:42::i;:::-;18196:91;18311:4;18301:14;;;;;:::i;:::-;;;17322:1005;18337:33;18353:4;18359:2;18363:6;18337:15;:33::i;:::-;14433:3945;;;14320:4058;;;:::o;1441:131::-;1515:12;:10;:12::i;:::-;1505:22;;:6;;;;;;;;;;;:22;;;1497:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1441:131::o;1926:191::-;2000:16;2019:6;;;;;;;;;;;2000:25;;2045:8;2036:6;;:17;;;;;;;;;;;;;;;;;;2100:8;2069:40;;2090:8;2069:40;;;;;;;;;;;;1989:128;1926:191;:::o;19243:1852::-;19282:23;19308:24;19326:4;19308:9;:24::i;:::-;19282:50;;19343:25;19439:14;;19405:18;;19371;;:52;;;;:::i;:::-;:82;;;;:::i;:::-;19343:110;;19464:29;19504:25;19565:1;19546:15;:20;:46;;;;19591:1;19570:17;:22;19546:46;19542:85;;;19609:7;;;;;;19542:85;19682:2;19661:18;;:23;;;;:::i;:::-;19643:15;:41;19639:115;;;19740:2;19719:18;;:23;;;;:::i;:::-;19701:41;;19639:115;19766:23;19879:1;19846:17;19811:18;;19793:15;:36;;;;:::i;:::-;19792:71;;;;:::i;:::-;:88;;;;:::i;:::-;19766:114;;19891:26;19920:36;19940:15;19920;:19;;:36;;;;:::i;:::-;19891:65;;19969:25;19997:21;19969:49;;20031:36;20048:18;20031:16;:36::i;:::-;20080:18;20101:44;20127:17;20101:21;:25;;:44;;;;:::i;:::-;20080:65;;20158:23;20184:81;20237:17;20184:34;20199:18;;20184:10;:14;;:34;;;;:::i;:::-;:38;;:81;;;;:::i;:::-;20158:107;;20276:19;20298:77;20347:17;20298:30;20313:14;;20298:10;:14;;:30;;;;:::i;:::-;:34;;:77;;;;:::i;:::-;20276:99;;20386:23;20443:11;20425:15;20412:10;:28;;;;:::i;:::-;:42;;;;:::i;:::-;20386:68;;20488:1;20467:18;:22;;;;20521:1;20500:18;:22;;;;20550:1;20533:14;:18;;;;20586:1;20568:15;:19;:42;;;;;20609:1;20591:15;:19;20568:42;20564:280;;;20627:46;20640:15;20657;20627:12;:46::i;:::-;20693:139;20728:18;20765:15;20799:18;;20693:139;;;;;;;;:::i;:::-;;;;;;;;20564:280;20891:11;;;;;;;;;;;20883:25;;20930:11;20883:73;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20856:100;;;;;21008:15;;;;;;;;;;;21000:29;;21051:21;21000:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20969:118;;;;;19271:1824;;;;;;;;;;;19243:1852;:::o;565:98::-;623:7;654:1;650;:5;;;;:::i;:::-;643:12;;565:98;;;;:::o;671:::-;729:7;760:1;756;:5;;;;:::i;:::-;749:12;;671:98;;;;:::o;5833:877::-;5980:1;5964:18;;:4;:18;;;5956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6057:1;6043:16;;:2;:16;;;6035:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6112:38;6133:4;6139:2;6143:6;6112:20;:38::i;:::-;6163:19;6185:9;:15;6195:4;6185:15;;;;;;;;;;;;;;;;6163:37;;6248:6;6233:11;:21;;6211:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;6388:6;6374:11;:20;6356:9;:15;6366:4;6356:15;;;;;;;;;;;;;;;:38;;;;6591:6;6574:9;:13;6584:2;6574:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;6641:2;6626:26;;6635:4;6626:26;;;6645:6;6626:26;;;;;;:::i;:::-;;;;;;;;6665:37;6685:4;6691:2;6695:6;6665:19;:37::i;:::-;5945:765;5833:877;;;:::o;459:98::-;517:7;548:1;544;:5;;;;:::i;:::-;537:12;;459:98;;;;:::o;18386:473::-;18452:21;18490:1;18476:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18452:40;;18521:4;18503;18508:1;18503:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18547:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18537:4;18542:1;18537:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18582:62;18599:4;18614:15;18632:11;18582:8;:62::i;:::-;18655:15;:66;;;18736:11;18762:1;18778:4;18805;18825:15;18655:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18441:418;18386:473;:::o;18867:368::-;18948:62;18965:4;18980:15;18998:11;18948:8;:62::i;:::-;19021:15;:31;;;19060:9;19093:4;19113:11;19139:1;19155;19179:6;19201:15;19021:206;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18867:368;;:::o;8855:125::-;;;;:::o;8988:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:60::-;3367:3;3388:5;3381:12;;3339:60;;;:::o;3405:142::-;3455:9;3488:53;3506:34;3515:24;3533:5;3515:24;:::i;:::-;3506:34;:::i;:::-;3488:53;:::i;:::-;3475:66;;3405:142;;;:::o;3553:126::-;3603:9;3636:37;3667:5;3636:37;:::i;:::-;3623:50;;3553:126;;;:::o;3685:152::-;3761:9;3794:37;3825:5;3794:37;:::i;:::-;3781:50;;3685:152;;;:::o;3843:183::-;3956:63;4013:5;3956:63;:::i;:::-;3951:3;3944:76;3843:183;;:::o;4032:274::-;4151:4;4189:2;4178:9;4174:18;4166:26;;4202:97;4296:1;4285:9;4281:17;4272:6;4202:97;:::i;:::-;4032:274;;;;:::o;4312:118::-;4399:24;4417:5;4399:24;:::i;:::-;4394:3;4387:37;4312:118;;:::o;4436:222::-;4529:4;4567:2;4556:9;4552:18;4544:26;;4580:71;4648:1;4637:9;4633:17;4624:6;4580:71;:::i;:::-;4436:222;;;;:::o;4664:619::-;4741:6;4749;4757;4806:2;4794:9;4785:7;4781:23;4777:32;4774:119;;;4812:79;;:::i;:::-;4774:119;4932:1;4957:53;5002:7;4993:6;4982:9;4978:22;4957:53;:::i;:::-;4947:63;;4903:117;5059:2;5085:53;5130:7;5121:6;5110:9;5106:22;5085:53;:::i;:::-;5075:63;;5030:118;5187:2;5213:53;5258:7;5249:6;5238:9;5234:22;5213:53;:::i;:::-;5203:63;;5158:118;4664:619;;;;;:::o;5289:86::-;5324:7;5364:4;5357:5;5353:16;5342:27;;5289:86;;;:::o;5381:112::-;5464:22;5480:5;5464:22;:::i;:::-;5459:3;5452:35;5381:112;;:::o;5499:214::-;5588:4;5626:2;5615:9;5611:18;5603:26;;5639:67;5703:1;5692:9;5688:17;5679:6;5639:67;:::i;:::-;5499:214;;;;:::o;5719:118::-;5806:24;5824:5;5806:24;:::i;:::-;5801:3;5794:37;5719:118;;:::o;5843:222::-;5936:4;5974:2;5963:9;5959:18;5951:26;;5987:71;6055:1;6044:9;6040:17;6031:6;5987:71;:::i;:::-;5843:222;;;;:::o;6071:553::-;6248:4;6286:3;6275:9;6271:19;6263:27;;6300:71;6368:1;6357:9;6353:17;6344:6;6300:71;:::i;:::-;6381:72;6449:2;6438:9;6434:18;6425:6;6381:72;:::i;:::-;6463;6531:2;6520:9;6516:18;6507:6;6463:72;:::i;:::-;6545;6613:2;6602:9;6598:18;6589:6;6545:72;:::i;:::-;6071:553;;;;;;;:::o;6630:329::-;6689:6;6738:2;6726:9;6717:7;6713:23;6709:32;6706:119;;;6744:79;;:::i;:::-;6706:119;6864:1;6889:53;6934:7;6925:6;6914:9;6910:22;6889:53;:::i;:::-;6879:63;;6835:117;6630:329;;;;:::o;6965:116::-;7035:21;7050:5;7035:21;:::i;:::-;7028:5;7025:32;7015:60;;7071:1;7068;7061:12;7015:60;6965:116;:::o;7087:133::-;7130:5;7168:6;7155:20;7146:29;;7184:30;7208:5;7184:30;:::i;:::-;7087:133;;;;:::o;7226:468::-;7291:6;7299;7348:2;7336:9;7327:7;7323:23;7319:32;7316:119;;;7354:79;;:::i;:::-;7316:119;7474:1;7499:53;7544:7;7535:6;7524:9;7520:22;7499:53;:::i;:::-;7489:63;;7445:117;7601:2;7627:50;7669:7;7660:6;7649:9;7645:22;7627:50;:::i;:::-;7617:60;;7572:115;7226:468;;;;;:::o;7700:1057::-;7804:6;7812;7820;7828;7836;7844;7893:3;7881:9;7872:7;7868:23;7864:33;7861:120;;;7900:79;;:::i;:::-;7861:120;8020:1;8045:53;8090:7;8081:6;8070:9;8066:22;8045:53;:::i;:::-;8035:63;;7991:117;8147:2;8173:53;8218:7;8209:6;8198:9;8194:22;8173:53;:::i;:::-;8163:63;;8118:118;8275:2;8301:53;8346:7;8337:6;8326:9;8322:22;8301:53;:::i;:::-;8291:63;;8246:118;8403:2;8429:53;8474:7;8465:6;8454:9;8450:22;8429:53;:::i;:::-;8419:63;;8374:118;8531:3;8558:53;8603:7;8594:6;8583:9;8579:22;8558:53;:::i;:::-;8548:63;;8502:119;8660:3;8687:53;8732:7;8723:6;8712:9;8708:22;8687:53;:::i;:::-;8677:63;;8631:119;7700:1057;;;;;;;;:::o;8763:474::-;8831:6;8839;8888:2;8876:9;8867:7;8863:23;8859:32;8856:119;;;8894:79;;:::i;:::-;8856:119;9014:1;9039:53;9084:7;9075:6;9064:9;9060:22;9039:53;:::i;:::-;9029:63;;8985:117;9141:2;9167:53;9212:7;9203:6;9192:9;9188:22;9167:53;:::i;:::-;9157:63;;9112:118;8763:474;;;;;:::o;9243:180::-;9291:77;9288:1;9281:88;9388:4;9385:1;9378:15;9412:4;9409:1;9402:15;9429:320;9473:6;9510:1;9504:4;9500:12;9490:22;;9557:1;9551:4;9547:12;9578:18;9568:81;;9634:4;9626:6;9622:17;9612:27;;9568:81;9696:2;9688:6;9685:14;9665:18;9662:38;9659:84;;9715:18;;:::i;:::-;9659:84;9480:269;9429:320;;;:::o;9755:180::-;9803:77;9800:1;9793:88;9900:4;9897:1;9890:15;9924:4;9921:1;9914:15;9941:191;9981:3;10000:20;10018:1;10000:20;:::i;:::-;9995:25;;10034:20;10052:1;10034:20;:::i;:::-;10029:25;;10077:1;10074;10070:9;10063:16;;10098:3;10095:1;10092:10;10089:36;;;10105:18;;:::i;:::-;10089:36;9941:191;;;;:::o;10138:178::-;10278:30;10274:1;10266:6;10262:14;10255:54;10138:178;:::o;10322:366::-;10464:3;10485:67;10549:2;10544:3;10485:67;:::i;:::-;10478:74;;10561:93;10650:3;10561:93;:::i;:::-;10679:2;10674:3;10670:12;10663:19;;10322:366;;;:::o;10694:419::-;10860:4;10898:2;10887:9;10883:18;10875:26;;10947:9;10941:4;10937:20;10933:1;10922:9;10918:17;10911:47;10975:131;11101:4;10975:131;:::i;:::-;10967:139;;10694:419;;;:::o;11119:178::-;11259:30;11255:1;11247:6;11243:14;11236:54;11119:178;:::o;11303:366::-;11445:3;11466:67;11530:2;11525:3;11466:67;:::i;:::-;11459:74;;11542:93;11631:3;11542:93;:::i;:::-;11660:2;11655:3;11651:12;11644:19;;11303:366;;;:::o;11675:419::-;11841:4;11879:2;11868:9;11864:18;11856:26;;11928:9;11922:4;11918:20;11914:1;11903:9;11899:17;11892:47;11956:131;12082:4;11956:131;:::i;:::-;11948:139;;11675:419;;;:::o;12100:224::-;12240:34;12236:1;12228:6;12224:14;12217:58;12309:7;12304:2;12296:6;12292:15;12285:32;12100:224;:::o;12330:366::-;12472:3;12493:67;12557:2;12552:3;12493:67;:::i;:::-;12486:74;;12569:93;12658:3;12569:93;:::i;:::-;12687:2;12682:3;12678:12;12671:19;;12330:366;;;:::o;12702:419::-;12868:4;12906:2;12895:9;12891:18;12883:26;;12955:9;12949:4;12945:20;12941:1;12930:9;12926:17;12919:47;12983:131;13109:4;12983:131;:::i;:::-;12975:139;;12702:419;;;:::o;13127:225::-;13267:34;13263:1;13255:6;13251:14;13244:58;13336:8;13331:2;13323:6;13319:15;13312:33;13127:225;:::o;13358:366::-;13500:3;13521:67;13585:2;13580:3;13521:67;:::i;:::-;13514:74;;13597:93;13686:3;13597:93;:::i;:::-;13715:2;13710:3;13706:12;13699:19;;13358:366;;;:::o;13730:419::-;13896:4;13934:2;13923:9;13919:18;13911:26;;13983:9;13977:4;13973:20;13969:1;13958:9;13954:17;13947:47;14011:131;14137:4;14011:131;:::i;:::-;14003:139;;13730:419;;;:::o;14155:223::-;14295:34;14291:1;14283:6;14279:14;14272:58;14364:6;14359:2;14351:6;14347:15;14340:31;14155:223;:::o;14384:366::-;14526:3;14547:67;14611:2;14606:3;14547:67;:::i;:::-;14540:74;;14623:93;14712:3;14623:93;:::i;:::-;14741:2;14736:3;14732:12;14725:19;;14384:366;;;:::o;14756:419::-;14922:4;14960:2;14949:9;14945:18;14937:26;;15009:9;15003:4;14999:20;14995:1;14984:9;14980:17;14973:47;15037:131;15163:4;15037:131;:::i;:::-;15029:139;;14756:419;;;:::o;15181:221::-;15321:34;15317:1;15309:6;15305:14;15298:58;15390:4;15385:2;15377:6;15373:15;15366:29;15181:221;:::o;15408:366::-;15550:3;15571:67;15635:2;15630:3;15571:67;:::i;:::-;15564:74;;15647:93;15736:3;15647:93;:::i;:::-;15765:2;15760:3;15756:12;15749:19;;15408:366;;;:::o;15780:419::-;15946:4;15984:2;15973:9;15969:18;15961:26;;16033:9;16027:4;16023:20;16019:1;16008:9;16004:17;15997:47;16061:131;16187:4;16061:131;:::i;:::-;16053:139;;15780:419;;;:::o;16205:179::-;16345:31;16341:1;16333:6;16329:14;16322:55;16205:179;:::o;16390:366::-;16532:3;16553:67;16617:2;16612:3;16553:67;:::i;:::-;16546:74;;16629:93;16718:3;16629:93;:::i;:::-;16747:2;16742:3;16738:12;16731:19;;16390:366;;;:::o;16762:419::-;16928:4;16966:2;16955:9;16951:18;16943:26;;17015:9;17009:4;17005:20;17001:1;16990:9;16986:17;16979:47;17043:131;17169:4;17043:131;:::i;:::-;17035:139;;16762:419;;;:::o;17187:225::-;17327:34;17323:1;17315:6;17311:14;17304:58;17396:8;17391:2;17383:6;17379:15;17372:33;17187:225;:::o;17418:366::-;17560:3;17581:67;17645:2;17640:3;17581:67;:::i;:::-;17574:74;;17657:93;17746:3;17657:93;:::i;:::-;17775:2;17770:3;17766:12;17759:19;;17418:366;;;:::o;17790:419::-;17956:4;17994:2;17983:9;17979:18;17971:26;;18043:9;18037:4;18033:20;18029:1;18018:9;18014:17;18007:47;18071:131;18197:4;18071:131;:::i;:::-;18063:139;;17790:419;;;:::o;18215:223::-;18355:34;18351:1;18343:6;18339:14;18332:58;18424:6;18419:2;18411:6;18407:15;18400:31;18215:223;:::o;18444:366::-;18586:3;18607:67;18671:2;18666:3;18607:67;:::i;:::-;18600:74;;18683:93;18772:3;18683:93;:::i;:::-;18801:2;18796:3;18792:12;18785:19;;18444:366;;;:::o;18816:419::-;18982:4;19020:2;19009:9;19005:18;18997:26;;19069:9;19063:4;19059:20;19055:1;19044:9;19040:17;19033:47;19097:131;19223:4;19097:131;:::i;:::-;19089:139;;18816:419;;;:::o;19241:236::-;19381:34;19377:1;19369:6;19365:14;19358:58;19450:19;19445:2;19437:6;19433:15;19426:44;19241:236;:::o;19483:366::-;19625:3;19646:67;19710:2;19705:3;19646:67;:::i;:::-;19639:74;;19722:93;19811:3;19722:93;:::i;:::-;19840:2;19835:3;19831:12;19824:19;;19483:366;;;:::o;19855:419::-;20021:4;20059:2;20048:9;20044:18;20036:26;;20108:9;20102:4;20098:20;20094:1;20083:9;20079:17;20072:47;20136:131;20262:4;20136:131;:::i;:::-;20128:139;;19855:419;;;:::o;20280:179::-;20420:31;20416:1;20408:6;20404:14;20397:55;20280:179;:::o;20465:366::-;20607:3;20628:67;20692:2;20687:3;20628:67;:::i;:::-;20621:74;;20704:93;20793:3;20704:93;:::i;:::-;20822:2;20817:3;20813:12;20806:19;;20465:366;;;:::o;20837:419::-;21003:4;21041:2;21030:9;21026:18;21018:26;;21090:9;21084:4;21080:20;21076:1;21065:9;21061:17;21054:47;21118:131;21244:4;21118:131;:::i;:::-;21110:139;;20837:419;;;:::o;21262:249::-;21402:34;21398:1;21390:6;21386:14;21379:58;21471:32;21466:2;21458:6;21454:15;21447:57;21262:249;:::o;21517:366::-;21659:3;21680:67;21744:2;21739:3;21680:67;:::i;:::-;21673:74;;21756:93;21845:3;21756:93;:::i;:::-;21874:2;21869:3;21865:12;21858:19;;21517:366;;;:::o;21889:419::-;22055:4;22093:2;22082:9;22078:18;22070:26;;22142:9;22136:4;22132:20;22128:1;22117:9;22113:17;22106:47;22170:131;22296:4;22170:131;:::i;:::-;22162:139;;21889:419;;;:::o;22314:177::-;22454:29;22450:1;22442:6;22438:14;22431:53;22314:177;:::o;22497:366::-;22639:3;22660:67;22724:2;22719:3;22660:67;:::i;:::-;22653:74;;22736:93;22825:3;22736:93;:::i;:::-;22854:2;22849:3;22845:12;22838:19;;22497:366;;;:::o;22869:419::-;23035:4;23073:2;23062:9;23058:18;23050:26;;23122:9;23116:4;23112:20;23108:1;23097:9;23093:17;23086:47;23150:131;23276:4;23150:131;:::i;:::-;23142:139;;22869:419;;;:::o;23294:250::-;23434:34;23430:1;23422:6;23418:14;23411:58;23503:33;23498:2;23490:6;23486:15;23479:58;23294:250;:::o;23550:366::-;23692:3;23713:67;23777:2;23772:3;23713:67;:::i;:::-;23706:74;;23789:93;23878:3;23789:93;:::i;:::-;23907:2;23902:3;23898:12;23891:19;;23550:366;;;:::o;23922:419::-;24088:4;24126:2;24115:9;24111:18;24103:26;;24175:9;24169:4;24165:20;24161:1;24150:9;24146:17;24139:47;24203:131;24329:4;24203:131;:::i;:::-;24195:139;;23922:419;;;:::o;24347:180::-;24395:77;24392:1;24385:88;24492:4;24489:1;24482:15;24516:4;24513:1;24506:15;24533:185;24573:1;24590:20;24608:1;24590:20;:::i;:::-;24585:25;;24624:20;24642:1;24624:20;:::i;:::-;24619:25;;24663:1;24653:35;;24668:18;;:::i;:::-;24653:35;24710:1;24707;24703:9;24698:14;;24533:185;;;;:::o;24724:410::-;24764:7;24787:20;24805:1;24787:20;:::i;:::-;24782:25;;24821:20;24839:1;24821:20;:::i;:::-;24816:25;;24876:1;24873;24869:9;24898:30;24916:11;24898:30;:::i;:::-;24887:41;;25077:1;25068:7;25064:15;25061:1;25058:22;25038:1;25031:9;25011:83;24988:139;;25107:18;;:::i;:::-;24988:139;24772:362;24724:410;;;;:::o;25140:194::-;25180:4;25200:20;25218:1;25200:20;:::i;:::-;25195:25;;25234:20;25252:1;25234:20;:::i;:::-;25229:25;;25278:1;25275;25271:9;25263:17;;25302:1;25296:4;25293:11;25290:37;;;25307:18;;:::i;:::-;25290:37;25140:194;;;;:::o;25340:182::-;25480:34;25476:1;25468:6;25464:14;25457:58;25340:182;:::o;25528:366::-;25670:3;25691:67;25755:2;25750:3;25691:67;:::i;:::-;25684:74;;25767:93;25856:3;25767:93;:::i;:::-;25885:2;25880:3;25876:12;25869:19;;25528:366;;;:::o;25900:419::-;26066:4;26104:2;26093:9;26089:18;26081:26;;26153:9;26147:4;26143:20;26139:1;26128:9;26124:17;26117:47;26181:131;26307:4;26181:131;:::i;:::-;26173:139;;25900:419;;;:::o;26325:442::-;26474:4;26512:2;26501:9;26497:18;26489:26;;26525:71;26593:1;26582:9;26578:17;26569:6;26525:71;:::i;:::-;26606:72;26674:2;26663:9;26659:18;26650:6;26606:72;:::i;:::-;26688;26756:2;26745:9;26741:18;26732:6;26688:72;:::i;:::-;26325:442;;;;;;:::o;26773:147::-;26874:11;26911:3;26896:18;;26773:147;;;;:::o;26926:114::-;;:::o;27046:398::-;27205:3;27226:83;27307:1;27302:3;27226:83;:::i;:::-;27219:90;;27318:93;27407:3;27318:93;:::i;:::-;27436:1;27431:3;27427:11;27420:18;;27046:398;;;:::o;27450:379::-;27634:3;27656:147;27799:3;27656:147;:::i;:::-;27649:154;;27820:3;27813:10;;27450:379;;;:::o;27835:224::-;27975:34;27971:1;27963:6;27959:14;27952:58;28044:7;28039:2;28031:6;28027:15;28020:32;27835:224;:::o;28065:366::-;28207:3;28228:67;28292:2;28287:3;28228:67;:::i;:::-;28221:74;;28304:93;28393:3;28304:93;:::i;:::-;28422:2;28417:3;28413:12;28406:19;;28065:366;;;:::o;28437:419::-;28603:4;28641:2;28630:9;28626:18;28618:26;;28690:9;28684:4;28680:20;28676:1;28665:9;28661:17;28654:47;28718:131;28844:4;28718:131;:::i;:::-;28710:139;;28437:419;;;:::o;28862:222::-;29002:34;28998:1;28990:6;28986:14;28979:58;29071:5;29066:2;29058:6;29054:15;29047:30;28862:222;:::o;29090:366::-;29232:3;29253:67;29317:2;29312:3;29253:67;:::i;:::-;29246:74;;29329:93;29418:3;29329:93;:::i;:::-;29447:2;29442:3;29438:12;29431:19;;29090:366;;;:::o;29462:419::-;29628:4;29666:2;29655:9;29651:18;29643:26;;29715:9;29709:4;29705:20;29701:1;29690:9;29686:17;29679:47;29743:131;29869:4;29743:131;:::i;:::-;29735:139;;29462:419;;;:::o;29887:225::-;30027:34;30023:1;30015:6;30011:14;30004:58;30096:8;30091:2;30083:6;30079:15;30072:33;29887:225;:::o;30118:366::-;30260:3;30281:67;30345:2;30340:3;30281:67;:::i;:::-;30274:74;;30357:93;30446:3;30357:93;:::i;:::-;30475:2;30470:3;30466:12;30459:19;;30118:366;;;:::o;30490:419::-;30656:4;30694:2;30683:9;30679:18;30671:26;;30743:9;30737:4;30733:20;30729:1;30718:9;30714:17;30707:47;30771:131;30897:4;30771:131;:::i;:::-;30763:139;;30490:419;;;:::o;30915:180::-;30963:77;30960:1;30953:88;31060:4;31057:1;31050:15;31084:4;31081:1;31074:15;31101:180;31149:77;31146:1;31139:88;31246:4;31243:1;31236:15;31270:4;31267:1;31260:15;31287:143;31344:5;31375:6;31369:13;31360:22;;31391:33;31418:5;31391:33;:::i;:::-;31287:143;;;;:::o;31436:351::-;31506:6;31555:2;31543:9;31534:7;31530:23;31526:32;31523:119;;;31561:79;;:::i;:::-;31523:119;31681:1;31706:64;31762:7;31753:6;31742:9;31738:22;31706:64;:::i;:::-;31696:74;;31652:128;31436:351;;;;:::o;31793:85::-;31838:7;31867:5;31856:16;;31793:85;;;:::o;31884:158::-;31942:9;31975:61;31993:42;32002:32;32028:5;32002:32;:::i;:::-;31993:42;:::i;:::-;31975:61;:::i;:::-;31962:74;;31884:158;;;:::o;32048:147::-;32143:45;32182:5;32143:45;:::i;:::-;32138:3;32131:58;32048:147;;:::o;32201:114::-;32268:6;32302:5;32296:12;32286:22;;32201:114;;;:::o;32321:184::-;32420:11;32454:6;32449:3;32442:19;32494:4;32489:3;32485:14;32470:29;;32321:184;;;;:::o;32511:132::-;32578:4;32601:3;32593:11;;32631:4;32626:3;32622:14;32614:22;;32511:132;;;:::o;32649:108::-;32726:24;32744:5;32726:24;:::i;:::-;32721:3;32714:37;32649:108;;:::o;32763:179::-;32832:10;32853:46;32895:3;32887:6;32853:46;:::i;:::-;32931:4;32926:3;32922:14;32908:28;;32763:179;;;;:::o;32948:113::-;33018:4;33050;33045:3;33041:14;33033:22;;32948:113;;;:::o;33097:732::-;33216:3;33245:54;33293:5;33245:54;:::i;:::-;33315:86;33394:6;33389:3;33315:86;:::i;:::-;33308:93;;33425:56;33475:5;33425:56;:::i;:::-;33504:7;33535:1;33520:284;33545:6;33542:1;33539:13;33520:284;;;33621:6;33615:13;33648:63;33707:3;33692:13;33648:63;:::i;:::-;33641:70;;33734:60;33787:6;33734:60;:::i;:::-;33724:70;;33580:224;33567:1;33564;33560:9;33555:14;;33520:284;;;33524:14;33820:3;33813:10;;33221:608;;;33097:732;;;;:::o;33835:831::-;34098:4;34136:3;34125:9;34121:19;34113:27;;34150:71;34218:1;34207:9;34203:17;34194:6;34150:71;:::i;:::-;34231:80;34307:2;34296:9;34292:18;34283:6;34231:80;:::i;:::-;34358:9;34352:4;34348:20;34343:2;34332:9;34328:18;34321:48;34386:108;34489:4;34480:6;34386:108;:::i;:::-;34378:116;;34504:72;34572:2;34561:9;34557:18;34548:6;34504:72;:::i;:::-;34586:73;34654:3;34643:9;34639:19;34630:6;34586:73;:::i;:::-;33835:831;;;;;;;;:::o;34672:807::-;34921:4;34959:3;34948:9;34944:19;34936:27;;34973:71;35041:1;35030:9;35026:17;35017:6;34973:71;:::i;:::-;35054:72;35122:2;35111:9;35107:18;35098:6;35054:72;:::i;:::-;35136:80;35212:2;35201:9;35197:18;35188:6;35136:80;:::i;:::-;35226;35302:2;35291:9;35287:18;35278:6;35226:80;:::i;:::-;35316:73;35384:3;35373:9;35369:19;35360:6;35316:73;:::i;:::-;35399;35467:3;35456:9;35452:19;35443:6;35399:73;:::i;:::-;34672:807;;;;;;;;;:::o;35485:143::-;35542:5;35573:6;35567:13;35558:22;;35589:33;35616:5;35589:33;:::i;:::-;35485:143;;;;:::o;35634:663::-;35722:6;35730;35738;35787:2;35775:9;35766:7;35762:23;35758:32;35755:119;;;35793:79;;:::i;:::-;35755:119;35913:1;35938:64;35994:7;35985:6;35974:9;35970:22;35938:64;:::i;:::-;35928:74;;35884:128;36051:2;36077:64;36133:7;36124:6;36113:9;36109:22;36077:64;:::i;:::-;36067:74;;36022:129;36190:2;36216:64;36272:7;36263:6;36252:9;36248:22;36216:64;:::i;:::-;36206:74;;36161:129;35634:663;;;;;:::o

Swarm Source

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