ETH Price: $2,309.24 (-4.59%)

Token

Neiro-chan (Neiro)
 

Overview

Max Total Supply

1,000,000,000 Neiro

Holders

243

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000002538731174 Neiro

Value
$0.00
0x1d4AC6D20D15d34197D42CFE0508dffC2d14A623
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:
NeiroChanERC

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/*
    Twitter : https://x.com/neirochaneth

    Website : https://neirochan.live

    Telegram : https://t.me/NeiroChanErc20

*/
pragma solidity ^0.8.24;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

abstract contract Ownable is Context {
    address private _owner;

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

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Invalid owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "New owner is ZERO");
        _transferOwnership(newOwner);
    }

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

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

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

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

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

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

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

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

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

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

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

interface IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address 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);

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

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint256) external view returns (address pair);
    function allPairsLength() external view returns (uint256);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

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

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

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

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint256);
    function balanceOf(address owner) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 value) external returns (bool);
    function transfer(address to, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);
    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (
        uint112 reserve0,
        uint112 reserve1,
        uint32 blockTimestampLast
    );

    function price0CumulativeLast() external view returns (uint256);
    function price1CumulativeLast() external view returns (uint256);
    function kLast() external view returns (uint256);
    function mint(address to) external returns (uint256 liquidity);
    function burn(address to) external returns (uint256 amount0, uint256 amount1);
    function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}


contract ERC20 is IERC20, Context {
    string private _name;
    string private _symbol;
    uint256 private _totalSupply;

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

    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 approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: Not owner != address(0)");
        require(spender != address(0), "ERC20: Not spender != address(0)");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        _transfer(from, to, amount);
        uint256 curAllow = _allowances[from][_msgSender()];
        require(curAllow >= amount, "ERC20: Not curAllow >= amount");
        unchecked {
            _approve(from, _msgSender(), curAllow - amount);
        }
        return true;
    }

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

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

    function decreaseAllowance(address spender, uint256 subValue) public virtual returns (bool) {
        uint256 curAllow = _allowances[_msgSender()][spender];
        require(curAllow >= subValue, "ERC20: Not curAllow >= subValue");
        unchecked {
            _approve(_msgSender(), spender, curAllow - subValue);
        }
        return true;
    }

    function _mint(
    	address account,
	    uint256 amount
    ) internal virtual {
        require(account != address(0), "ERC20: Not account != address(0)");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply += amount;
        _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: Not account != address(0)");
        _beforeTokenTransfer(account, address(0), amount);
        uint256 kBalance = _balances[account];
        require(kBalance >= amount, "ERC20: kBalance >= amount");
        unchecked {
            _balances[account] = kBalance - amount;
        }
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(account, address(0), amount);
    }

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

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: Not from != address(0)");
        require(to != address(0), "ERC20: Not to != address(0)");
        _beforeTokenTransfer(from, to, amount);
        uint256 balanceFrom = _balances[from];
        require(balanceFrom >= amount, "ERC20: Not balanceFrom >= amount");
        unchecked {
            _balances[from] = balanceFrom - amount;
        }
        _balances[to] += amount;
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

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

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

    IUniswapV2Router02 public swapRouter;
    address public swapPair;
    
    uint256 public minSwapTokenAmount;
    uint256 public maxTokenAmountPerWallet;
    uint256 public maxTokenAmountPerTxn;

    bool public TradingActive = false;
    uint256 public ActiveTradingBlock;
    uint256 public PreventSwapbackBlocks;
    bool public SwapEnabled = false;

    address public marketingWallet;
    address public devWallet;

    uint256 public tokenAmountForMarketing;
    uint256 public tokenAmountForDev;

    mapping(address => bool) public ExcludedMaxTokenAmountPerTxn;

    mapping(address => bool) public ExcludedFromTax;

    mapping(address => bool) public automatedMarketMakerPairs;

    bool public limitsInEffect = true;

    uint256 public sellTotalTax;
    uint256 public sellMarketingTax;
    uint256 public sellDevTax;

    uint256 public buyTotalTax;
    uint256 public buyMarketingTax;
    uint256 public buyDevTax;

    
    bool private Swapping;
    mapping(address => bool) private blackList;
    
    constructor() ERC20("Neiro-chan", "Neiro") {
        devWallet = address(msg.sender);
        marketingWallet = address(msg.sender);


        swapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        swapPair = IUniswapV2Factory(swapRouter.factory()).createPair(address(this), swapRouter.WETH());

        ExcludedMaxTokenAmountPerTxn[owner()] = true;
        ExcludedMaxTokenAmountPerTxn[address(this)] = true;

        uint256 totalSupply = 1_000_000_000 * (10 ** decimals());
        minSwapTokenAmount = 2_500_000 * (10 ** decimals()); //0.25% min swap
        maxTokenAmountPerTxn = 20_000_000 * (10 ** decimals()); //2% max tx amount
        maxTokenAmountPerWallet = 20_000_000 * (10 ** decimals()); //2% max wallet amount
        ExcludedFromTax[address(this)] = true;
        ExcludedFromTax[owner()] = true;


        automatedMarketMakerPairs[address(swapPair)] = true;
        
        ExcludedMaxTokenAmountPerTxn[address(0xdead)] = true;
        ExcludedMaxTokenAmountPerTxn[address(swapRouter)] = true;
        ExcludedMaxTokenAmountPerTxn[address(swapPair)] = true;

        ExcludedFromTax[address(0xdead)] = true;

        sellMarketingTax = 50;
        sellDevTax = 0;
        sellTotalTax = sellMarketingTax + sellDevTax;


        buyMarketingTax = 25;
        buyDevTax = 0;
        buyTotalTax = buyMarketingTax + buyDevTax;

        PreventSwapbackBlocks=3; //default
        _mint(msg.sender, totalSupply);
    }

    function startTrading() external onlyOwner {
        TradingActive = true;
        SwapEnabled = true;
        ActiveTradingBlock=block.number;
    }
    function updatePrecentSwapbackBlocks(uint256 newNum) external onlyOwner{
        PreventSwapbackBlocks=newNum;
    }
    function excludeFromMaxTokenAmountPerTxn(address addr, bool value) external onlyOwner {
        ExcludedMaxTokenAmountPerTxn[addr] = value;
    }
    function excludeFromTax(address account, bool value) external onlyOwner {    	
        ExcludedFromTax[account] = value;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }
    function updateSwapEnabled(bool enabled) external onlyOwner {
        SwapEnabled = enabled;
    }
    function updateMinimumSwapTokenAmount(uint256 amount) external onlyOwner {
        require(amount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(amount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply.");
        minSwapTokenAmount = amount;
    }
    function updateMaxTokensPerWallet(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / (10 ** decimals()), "Cannot set maxTokenAmountPerWallet lower than 0.5%");
        maxTokenAmountPerWallet = newNum * (10 ** decimals());
    }
    function updateMaxTokenAmountPerTxn(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / (10 ** decimals()), "Cannot set maxTokenAmountPerTxn lower than 0.1%");
        maxTokenAmountPerTxn = newNum * (10 ** decimals());
    }
    function BlackListWallet(address addr, bool enable) external onlyOwner {
        blackList[addr] = enable;
    }
    function BulkBlackList(address[] memory _addr, bool enable) external onlyOwner {
        for (uint256 i=0; i <= _addr.length-1; i++) {
            blackList[_addr[i]] = enable;
        }
    }
    function _updateBuyTax(uint256 newMarketFee, uint256 newDevFee) external onlyOwner {
        buyMarketingTax = newMarketFee;
        buyDevTax = newDevFee;
        buyTotalTax = buyMarketingTax + buyDevTax;
        require(buyTotalTax <= 50, "Must keep tax at 50% or less");
    }

    function _updateSellTax(uint256 newMarketFee, uint256 newDevFee) external onlyOwner {
        sellMarketingTax = newMarketFee;
        sellDevTax = newDevFee;
        sellTotalTax = sellMarketingTax + sellDevTax;
        require(sellTotalTax <= 99, "Must keep tax at 95% or less");
    }
    function setMarketingFees(uint256 _buy, uint256 _sell) external onlyOwner {
        buyMarketingTax = _buy;
        buyTotalTax = buyMarketingTax + buyDevTax;
        sellMarketingTax = _sell;
        sellTotalTax = sellMarketingTax + sellDevTax;
    }
    function setAutomatedMarketMakerPairs(address pair, bool value)
        external onlyOwner {
        require(pair != swapPair, "The pair cannot be removed from automatedMarketMakerPairs");
        automatedMarketMakerPairs[pair] = value;
    }
    function swapBack() private {
        bool success;
        uint256 tokenAmountToSwap = tokenAmountForMarketing + tokenAmountForDev;
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenAmountToSwap == 0 || tokenBalance == 0)
            return;

        uint256 prevETHBalance = address(this).balance;
        swapTokensForEth(tokenBalance);

        uint256 ethBalance = address(this).balance.sub(prevETHBalance);
        uint256 ethForDev = ethBalance.mul(tokenAmountForDev).div(tokenAmountToSwap);

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

        tokenAmountForMarketing = 0;
        tokenAmountForDev = 0;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: Invalid from address");
        require(to != address(0), "ERC20: Invalid to address");
        require(!blackList[from], "ERC20: Sender is blacklisted");
        require(!blackList[to], "ERC20: Receiver is blacklisted");

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

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !Swapping) {
                if (!TradingActive) {
                    require(ExcludedFromTax[from] || ExcludedFromTax[to], "Trading is not active.");
                }

                if (automatedMarketMakerPairs[from] && !ExcludedMaxTokenAmountPerTxn[to]) {
                    require(amount <= maxTokenAmountPerTxn, "Buy transfer amount exceeds the maxTokenAmountPerTxn.");
                    require(amount + balanceOf(to) <= maxTokenAmountPerWallet, "Max wallet exceeded");
                }
                else if (automatedMarketMakerPairs[to] && !ExcludedMaxTokenAmountPerTxn[from]) {
                    require(amount <= maxTokenAmountPerTxn, "Sell transfer amount exceeds the maxTokenAmountPerTxn.");
                }
                else if (!ExcludedMaxTokenAmountPerTxn[to]) {
                    require(amount + balanceOf(to) <= maxTokenAmountPerWallet, "Max wallet exceeded");
                }
            }
        }
        uint256 tokenBalance = balanceOf(address(this));
        bool canSwap = tokenBalance >= minSwapTokenAmount;
        if (SwapEnabled 
            && canSwap 
            && !Swapping 
            && !automatedMarketMakerPairs[from] 
            && !ExcludedFromTax[from] 
            && !ExcludedFromTax[to]
            && ActiveTradingBlock+PreventSwapbackBlocks <= block.number
        ) {
            Swapping = true;
            swapBack();
            Swapping = false;
        }

        bool Tax = !Swapping;
        if (ExcludedFromTax[from] || ExcludedFromTax[to])
            Tax = false;

        uint256 fees = 0;
        if (Tax) {
            if (automatedMarketMakerPairs[to] && sellTotalTax > 0) {
                fees = amount.mul(sellTotalTax).div(100);
                tokenAmountForDev += (fees * sellDevTax) / sellTotalTax;
                tokenAmountForMarketing += (fees * sellMarketingTax) / sellTotalTax;
            }
            else if (automatedMarketMakerPairs[from] && buyTotalTax > 0) {
                fees = amount.mul(buyTotalTax).div(100);
                tokenAmountForDev += (fees * buyDevTax) / buyTotalTax;
                tokenAmountForMarketing += (fees * buyMarketingTax) / buyTotalTax;
            }
            if (fees > 0)
                super._transfer(from, address(this), fees);
            amount -= fees;
        }

        super._transfer(from, to, amount);
    }
    receive() external payable {}
    function swapTokensForEth(uint256 amount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        _approve(address(this), address(swapRouter), amount);

        // make the swap
        swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ActiveTradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"BlackListWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addr","type":"address[]"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"BulkBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedMaxTokenAmountPerTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PreventSwapbackBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"_updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"_updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromMaxTokenAmountPerTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addValue","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":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenAmountPerTxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenAmountPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwapTokenAmount","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":"sellDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setMarketingFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAmountForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAmountForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTokenAmountPerTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTokensPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMinimumSwapTokenAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatePrecentSwapbackBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600b5f6101000a81548160ff0219169083151502179055505f600e5f6101000a81548160ff021916908315150217905550600160155f6101000a81548160ff02191690831515021790555034801561005b575f80fd5b506040518060400160405280600a81526020017f4e6569726f2d6368616e000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4e6569726f000000000000000000000000000000000000000000000000000000815250815f90816100d69190610cee565b5080600190816100e69190610cee565b5050506101056100fa61084c60201b60201c565b61085360201b60201c565b33600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610244573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102689190610e1b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103129190610e1b565b6040518363ffffffff1660e01b815260040161032f929190610e55565b6020604051808303815f875af115801561034b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036f9190610e1b565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160125f6103c161091660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f61047461093e60201b60201c565b600a6104809190610fe4565b633b9aca0061048f919061102e565b905061049f61093e60201b60201c565b600a6104ab9190610fe4565b622625a06104b9919061102e565b6008819055506104cd61093e60201b60201c565b600a6104d99190610fe4565b6301312d006104e8919061102e565b600a819055506104fc61093e60201b60201c565b600a6105089190610fe4565b6301312d00610517919061102e565b600981905550600160135f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f61058561091660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160145f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060326017819055505f601881905550601854601754610803919061106f565b6016819055506019601a819055505f601b81905550601b54601a54610828919061106f565b6019819055506003600d81905550610846338261094660201b60201c565b50611142565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab906110fc565b60405180910390fd5b6109c55f8383610aaa60201b60201c565b8060025f8282546109d6919061106f565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a29919061106f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a8d9190611129565b60405180910390a3610aa65f8383610aaf60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b2f57607f821691505b602082108103610b4257610b41610aeb565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610ba47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b69565b610bae8683610b69565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610bf2610bed610be884610bc6565b610bcf565b610bc6565b9050919050565b5f819050919050565b610c0b83610bd8565b610c1f610c1782610bf9565b848454610b75565b825550505050565b5f90565b610c33610c27565b610c3e818484610c02565b505050565b5b81811015610c6157610c565f82610c2b565b600181019050610c44565b5050565b601f821115610ca657610c7781610b48565b610c8084610b5a565b81016020851015610c8f578190505b610ca3610c9b85610b5a565b830182610c43565b50505b505050565b5f82821c905092915050565b5f610cc65f1984600802610cab565b1980831691505092915050565b5f610cde8383610cb7565b9150826002028217905092915050565b610cf782610ab4565b67ffffffffffffffff811115610d1057610d0f610abe565b5b610d1a8254610b18565b610d25828285610c65565b5f60209050601f831160018114610d56575f8415610d44578287015190505b610d4e8582610cd3565b865550610db5565b601f198416610d6486610b48565b5f5b82811015610d8b57848901518255600182019150602085019450602081019050610d66565b86831015610da85784890151610da4601f891682610cb7565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dea82610dc1565b9050919050565b610dfa81610de0565b8114610e04575f80fd5b50565b5f81519050610e1581610df1565b92915050565b5f60208284031215610e3057610e2f610dbd565b5b5f610e3d84828501610e07565b91505092915050565b610e4f81610de0565b82525050565b5f604082019050610e685f830185610e46565b610e756020830184610e46565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610efe57808604811115610eda57610ed9610e7c565b5b6001851615610ee95780820291505b8081029050610ef785610ea9565b9450610ebe565b94509492505050565b5f82610f165760019050610fd1565b81610f23575f9050610fd1565b8160018114610f395760028114610f4357610f72565b6001915050610fd1565b60ff841115610f5557610f54610e7c565b5b8360020a915084821115610f6c57610f6b610e7c565b5b50610fd1565b5060208310610133831016604e8410600b8410161715610fa75782820a905083811115610fa257610fa1610e7c565b5b610fd1565b610fb48484846001610eb5565b92509050818404811115610fcb57610fca610e7c565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610fee82610bc6565b9150610ff983610fd8565b92506110267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610f07565b905092915050565b5f61103882610bc6565b915061104383610bc6565b925082820261105181610bc6565b9150828204841483151761106857611067610e7c565b5b5092915050565b5f61107982610bc6565b915061108483610bc6565b925082820190508082111561109c5761109b610e7c565b5b92915050565b5f82825260208201905092915050565b7f45524332303a204e6f74206163636f756e7420213d20616464726573732830295f82015250565b5f6110e66020836110a2565b91506110f1826110b2565b602082019050919050565b5f6020820190508181035f830152611113816110da565b9050919050565b61112381610bc6565b82525050565b5f60208201905061113c5f83018461111a565b92915050565b614bf58061114f5f395ff3fe608060405260043610610302575f3560e01c8063751039fc1161018f578063b38d229a116100db578063c6a3064711610094578063e96db1ef1161006e578063e96db1ef14610b4d578063f2fde38b14610b77578063fc0217a414610b9f578063ffaed33914610bc957610309565b8063c6a3064714610abf578063dd62ed3e14610ae7578063e27a55fe14610b2357610309565b8063b38d229a1461099f578063b62496f5146109c9578063be69188314610a05578063c31c9c0714610a2f578063c410a11b14610a59578063c42c3f8814610a9557610309565b80638da5cb5b1161014857806395d89b411161012257806395d89b41146108d3578063a457c2d7146108fd578063a9059cbb14610939578063af8f26e71461097557610309565b80638da5cb5b146108575780638ea5220f14610881578063924de9b7146108ab57610309565b8063751039fc1461076157806375f0a874146107775780637d673170146107a157806380da4543146107cb578063896c2b8a146108075780638a0a94451461082f57610309565b8063395093511161024e5780635df6e68e11610207578063685fbc6b116101e1578063685fbc6b146106bd5780637070678b146106e757806370a082311461070f578063715018a61461074b57610309565b80635df6e68e146106435780636702ad8d1461066d57806367b740e91461069557610309565b8063395093511461053b57806341c787961461057757806345167f26146105a15780634a62bb65146105c95780634ffe14ab146105f3578063544d1ec91461061b57610309565b806323b872dd116102bb5780632c81355e116102955780632c81355e14610495578063313ce567146104bd57806333012411146104e7578063372b44b81461051157610309565b806323b872dd1461041957806326991cc814610455578063293230b81461047f57610309565b806301b123121461030d57806306fdde0314610337578063083a1c0b14610361578063095ea7b31461038957806318160ddd146103c557806318c34be1146103ef57610309565b3661030957005b5f80fd5b348015610318575f80fd5b50610321610bf1565b60405161032e91906135e4565b60405180910390f35b348015610342575f80fd5b5061034b610bf7565b604051610358919061366d565b60405180910390f35b34801561036c575f80fd5b50610387600480360381019061038291906136c8565b610c86565b005b348015610394575f80fd5b506103af60048036038101906103aa9190613760565b610d70565b6040516103bc91906137b8565b60405180910390f35b3480156103d0575f80fd5b506103d9610d8d565b6040516103e691906135e4565b60405180910390f35b3480156103fa575f80fd5b50610403610d96565b60405161041091906135e4565b60405180910390f35b348015610424575f80fd5b5061043f600480360381019061043a91906137d1565b610d9c565b60405161044c91906137b8565b60405180910390f35b348015610460575f80fd5b50610469610e8e565b6040516104769190613830565b60405180910390f35b34801561048a575f80fd5b50610493610eb3565b005b3480156104a0575f80fd5b506104bb60048036038101906104b69190613849565b610f6c565b005b3480156104c8575f80fd5b506104d16110b9565b6040516104de919061388f565b60405180910390f35b3480156104f2575f80fd5b506104fb6110c1565b60405161050891906135e4565b60405180910390f35b34801561051c575f80fd5b506105256110c7565b60405161053291906135e4565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190613760565b6110cd565b60405161056e91906137b8565b60405180910390f35b348015610582575f80fd5b5061058b611174565b60405161059891906137b8565b60405180910390f35b3480156105ac575f80fd5b506105c760048036038101906105c291906138d2565b611186565b005b3480156105d4575f80fd5b506105dd6112e9565b6040516105ea91906137b8565b60405180910390f35b3480156105fe575f80fd5b50610619600480360381019061061491906136c8565b6112fb565b005b348015610626575f80fd5b50610641600480360381019061063c9190613849565b6113b5565b005b34801561064e575f80fd5b506106576114da565b60405161066491906135e4565b60405180910390f35b348015610678575f80fd5b50610693600480360381019061068e91906138d2565b6114e0565b005b3480156106a0575f80fd5b506106bb60048036038101906106b69190613849565b6115b4565b005b3480156106c8575f80fd5b506106d16116d9565b6040516106de91906135e4565b60405180910390f35b3480156106f2575f80fd5b5061070d600480360381019061070891906138d2565b6116df565b005b34801561071a575f80fd5b5061073560048036038101906107309190613910565b6117b3565b60405161074291906135e4565b60405180910390f35b348015610756575f80fd5b5061075f6117f9565b005b34801561076c575f80fd5b50610775611880565b005b348015610782575f80fd5b5061078b611917565b6040516107989190613830565b60405180910390f35b3480156107ac575f80fd5b506107b561193d565b6040516107c291906135e4565b60405180910390f35b3480156107d6575f80fd5b506107f160048036038101906107ec9190613910565b611943565b6040516107fe91906137b8565b60405180910390f35b348015610812575f80fd5b5061082d60048036038101906108289190613849565b611960565b005b34801561083a575f80fd5b5061085560048036038101906108509190613a7b565b6119e6565b005b348015610862575f80fd5b5061086b611afe565b6040516108789190613830565b60405180910390f35b34801561088c575f80fd5b50610895611b26565b6040516108a29190613830565b60405180910390f35b3480156108b6575f80fd5b506108d160048036038101906108cc9190613ad5565b611b4b565b005b3480156108de575f80fd5b506108e7611be3565b6040516108f4919061366d565b60405180910390f35b348015610908575f80fd5b50610923600480360381019061091e9190613760565b611c73565b60405161093091906137b8565b60405180910390f35b348015610944575f80fd5b5061095f600480360381019061095a9190613760565b611d59565b60405161096c91906137b8565b60405180910390f35b348015610980575f80fd5b50610989611d76565b60405161099691906135e4565b60405180910390f35b3480156109aa575f80fd5b506109b3611d7c565b6040516109c091906135e4565b60405180910390f35b3480156109d4575f80fd5b506109ef60048036038101906109ea9190613910565b611d82565b6040516109fc91906137b8565b60405180910390f35b348015610a10575f80fd5b50610a19611d9f565b604051610a2691906135e4565b60405180910390f35b348015610a3a575f80fd5b50610a43611da5565b604051610a509190613b5b565b60405180910390f35b348015610a64575f80fd5b50610a7f6004803603810190610a7a9190613910565b611dca565b604051610a8c91906137b8565b60405180910390f35b348015610aa0575f80fd5b50610aa9611de7565b604051610ab691906135e4565b60405180910390f35b348015610aca575f80fd5b50610ae56004803603810190610ae091906138d2565b611ded565b005b348015610af2575f80fd5b50610b0d6004803603810190610b089190613b74565b611ec1565b604051610b1a91906135e4565b60405180910390f35b348015610b2e575f80fd5b50610b37611f43565b604051610b4491906135e4565b60405180910390f35b348015610b58575f80fd5b50610b61611f49565b604051610b6e91906135e4565b60405180910390f35b348015610b82575f80fd5b50610b9d6004803603810190610b989190613910565b611f4f565b005b348015610baa575f80fd5b50610bb3612045565b604051610bc091906137b8565b60405180910390f35b348015610bd4575f80fd5b50610bef6004803603810190610bea91906136c8565b612057565b005b600d5481565b60605f8054610c0590613bdf565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3190613bdf565b8015610c7c5780601f10610c5357610100808354040283529160200191610c7c565b820191905f5260205f20905b815481529060010190602001808311610c5f57829003601f168201915b5050505050905090565b610c8e612141565b73ffffffffffffffffffffffffffffffffffffffff16610cac611afe565b73ffffffffffffffffffffffffffffffffffffffff1614610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990613c59565b60405180910390fd5b8160178190555080601881905550601854601754610d209190613ca4565b60168190555060636016541115610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6390613d21565b60405180910390fd5b5050565b5f610d83610d7c612141565b8484612148565b6001905092915050565b5f600254905090565b60105481565b5f610da884848461230b565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610def612141565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613d89565b60405180910390fd5b610e8285610e7a612141565b858403612148565b60019150509392505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ebb612141565b73ffffffffffffffffffffffffffffffffffffffff16610ed9611afe565b73ffffffffffffffffffffffffffffffffffffffff1614610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690613c59565b60405180910390fd5b6001600b5f6101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff02191690831515021790555043600c81905550565b610f74612141565b73ffffffffffffffffffffffffffffffffffffffff16610f92611afe565b73ffffffffffffffffffffffffffffffffffffffff1614610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf90613c59565b60405180910390fd5b620186a06001610ff6610d8d565b6110009190613da7565b61100a9190613e15565b81101561104c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104390613eb5565b60405180910390fd5b6103e86005611059610d8d565b6110639190613da7565b61106d9190613e15565b8111156110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a690613f43565b60405180910390fd5b8060088190555050565b5f6012905090565b601a5481565b60115481565b5f61116a6110d9612141565b848460045f6110e6612141565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111659190613ca4565b612148565b6001905092915050565b600e5f9054906101000a900460ff1681565b61118e612141565b73ffffffffffffffffffffffffffffffffffffffff166111ac611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f990613c59565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128890613fd1565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60155f9054906101000a900460ff1681565b611303612141565b73ffffffffffffffffffffffffffffffffffffffff16611321611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90613c59565b60405180910390fd5b81601a81905550601b54601a5461138e9190613ca4565b601981905550806017819055506018546017546113ab9190613ca4565b6016819055505050565b6113bd612141565b73ffffffffffffffffffffffffffffffffffffffff166113db611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890613c59565b60405180910390fd5b6114396110b9565b600a611445919061411e565b6103e86001611452610d8d565b61145c9190613da7565b6114669190613e15565b6114709190613e15565b8110156114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a9906141d8565b60405180910390fd5b6114ba6110b9565b600a6114c6919061411e565b816114d19190613da7565b600a8190555050565b60195481565b6114e8612141565b73ffffffffffffffffffffffffffffffffffffffff16611506611afe565b73ffffffffffffffffffffffffffffffffffffffff161461155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390613c59565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6115bc612141565b73ffffffffffffffffffffffffffffffffffffffff166115da611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790613c59565b60405180910390fd5b6116386110b9565b600a611644919061411e565b6103e86005611651610d8d565b61165b9190613da7565b6116659190613e15565b61166f9190613e15565b8110156116b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a890614266565b60405180910390fd5b6116b96110b9565b600a6116c5919061411e565b816116d09190613da7565b60098190555050565b60095481565b6116e7612141565b73ffffffffffffffffffffffffffffffffffffffff16611705611afe565b73ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290613c59565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611801612141565b73ffffffffffffffffffffffffffffffffffffffff1661181f611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90613c59565b60405180910390fd5b61187e5f612e5f565b565b611888612141565b73ffffffffffffffffffffffffffffffffffffffff166118a6611afe565b73ffffffffffffffffffffffffffffffffffffffff16146118fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f390613c59565b60405180910390fd5b5f60155f6101000a81548160ff021916908315150217905550565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b6013602052805f5260405f205f915054906101000a900460ff1681565b611968612141565b73ffffffffffffffffffffffffffffffffffffffff16611986611afe565b73ffffffffffffffffffffffffffffffffffffffff16146119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390613c59565b60405180910390fd5b80600d8190555050565b6119ee612141565b73ffffffffffffffffffffffffffffffffffffffff16611a0c611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5990613c59565b60405180910390fd5b5f5b60018351611a729190614284565b8111611af95781601d5f858481518110611a8f57611a8e6142b7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611af1906142e4565b915050611a64565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b53612141565b73ffffffffffffffffffffffffffffffffffffffff16611b71611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe90613c59565b60405180910390fd5b80600e5f6101000a81548160ff02191690831515021790555050565b606060018054611bf290613bdf565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e90613bdf565b8015611c695780601f10611c4057610100808354040283529160200191611c69565b820191905f5260205f20905b815481529060010190602001808311611c4c57829003601f168201915b5050505050905090565b5f8060045f611c80612141565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3190614375565b60405180910390fd5b611d4e611d45612141565b85858403612148565b600191505092915050565b5f611d6c611d65612141565b848461230b565b6001905092915050565b601b5481565b600c5481565b6014602052805f5260405f205f915054906101000a900460ff1681565b60185481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6012602052805f5260405f205f915054906101000a900460ff1681565b600a5481565b611df5612141565b73ffffffffffffffffffffffffffffffffffffffff16611e13611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6090613c59565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60165481565b60175481565b611f57612141565b73ffffffffffffffffffffffffffffffffffffffff16611f75611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290613c59565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612030906143dd565b60405180910390fd5b61204281612e5f565b50565b600b5f9054906101000a900460ff1681565b61205f612141565b73ffffffffffffffffffffffffffffffffffffffff1661207d611afe565b73ffffffffffffffffffffffffffffffffffffffff16146120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca90613c59565b60405180910390fd5b81601a8190555080601b81905550601b54601a546120f19190613ca4565b6019819055506032601954111561213d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213490614445565b60405180910390fd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ad906144ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221b90614515565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122fe91906135e4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612379576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123709061457d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123de906145e5565b60405180910390fd5b601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612471576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124689061464d565b60405180910390fd5b601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f2906146b5565b60405180910390fd5b5f81036125125761250d83835f612f22565b612e5a565b60155f9054906101000a900460ff16156129f45761252e611afe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561259c575061256c611afe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125d457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561260e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126265750601c5f9054906101000a900460ff16155b156129f357600b5f9054906101000a900460ff166127195760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806126d9575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270f9061471d565b60405180910390fd5b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156127b6575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561285d57600a54811115612800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f7906147ab565b60405180910390fd5b60095461280c836117b3565b826128179190613ca4565b1115612858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284f90614813565b60405180910390fd5b6129f2565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156128fa575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561294957600a54811115612944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293b906148a1565b60405180910390fd5b6129f1565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166129f0576009546129a3836117b3565b826129ae9190613ca4565b11156129ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e690614813565b60405180910390fd5b5b5b5b5b5b5f6129fe306117b3565b90505f6008548210159050600e5f9054906101000a900460ff168015612a215750805b8015612a395750601c5f9054906101000a900460ff16155b8015612a8c575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612adf575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b32575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b4d575043600d54600c54612b4a9190613ca4565b11155b15612b8e576001601c5f6101000a81548160ff021916908315150217905550612b7461319a565b5f601c5f6101000a81548160ff0219169083151502179055505b5f601c5f9054906101000a900460ff1615905060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c3c575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c45575f90505b5f8115612e4a5760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ca357505f601654115b15612d3b57612cd06064612cc26016548861334d90919063ffffffff16565b61336290919063ffffffff16565b905060165460185482612ce39190613da7565b612ced9190613e15565b60115f828254612cfd9190613ca4565b9250508190555060165460175482612d159190613da7565b612d1f9190613e15565b60105f828254612d2f9190613ca4565b92505081905550612e27565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d9257505f601954115b15612e2657612dbf6064612db16019548861334d90919063ffffffff16565b61336290919063ffffffff16565b9050601954601b5482612dd29190613da7565b612ddc9190613e15565b60115f828254612dec9190613ca4565b92505081905550601954601a5482612e049190613da7565b612e0e9190613e15565b60105f828254612e1e9190613ca4565b925050819055505b5b5f811115612e3b57612e3a873083612f22565b5b8085612e479190614284565b94505b612e55878787612f22565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8790614909565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff590614971565b60405180910390fd5b613009838383613377565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561308d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613084906149d9565b60405180910390fd5b81810360035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461311d9190613ca4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161318191906135e4565b60405180910390a361319484848461337c565b50505050565b5f806011546010546131ac9190613ca4565b90505f6131b8306117b3565b90505f8214806131c757505f81145b156131d45750505061334b565b5f4790506131e182613381565b5f6131f582476135b790919063ffffffff16565b90505f61321f856132116011548561334d90919063ffffffff16565b61336290919063ffffffff16565b9050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161326690614a24565b5f6040518083038185875af1925050503d805f81146132a0576040519150601f19603f3d011682016040523d82523d5f602084013e6132a5565b606091505b505080965050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516132f190614a24565b5f6040518083038185875af1925050503d805f811461332b576040519150601f19603f3d011682016040523d82523d5f602084013e613330565b606091505b5050809650505f6010819055505f6011819055505050505050505b565b5f818361335a9190613da7565b905092915050565b5f818361336f9190613e15565b905092915050565b505050565b505050565b5f600267ffffffffffffffff81111561339d5761339c61393f565b5b6040519080825280602002602001820160405280156133cb5781602001602082028036833780820191505090505b50905030815f815181106133e2576133e16142b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613486573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134aa9190614a4c565b816001815181106134be576134bd6142b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506135243060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612148565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613586959493929190614b67565b5f604051808303815f87803b15801561359d575f80fd5b505af11580156135af573d5f803e3d5ffd5b505050505050565b5f81836135c49190614284565b905092915050565b5f819050919050565b6135de816135cc565b82525050565b5f6020820190506135f75f8301846135d5565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61363f826135fd565b6136498185613607565b9350613659818560208601613617565b61366281613625565b840191505092915050565b5f6020820190508181035f8301526136858184613635565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b6136a7816135cc565b81146136b1575f80fd5b50565b5f813590506136c28161369e565b92915050565b5f80604083850312156136de576136dd613696565b5b5f6136eb858286016136b4565b92505060206136fc858286016136b4565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61372f82613706565b9050919050565b61373f81613725565b8114613749575f80fd5b50565b5f8135905061375a81613736565b92915050565b5f806040838503121561377657613775613696565b5b5f6137838582860161374c565b9250506020613794858286016136b4565b9150509250929050565b5f8115159050919050565b6137b28161379e565b82525050565b5f6020820190506137cb5f8301846137a9565b92915050565b5f805f606084860312156137e8576137e7613696565b5b5f6137f58682870161374c565b93505060206138068682870161374c565b9250506040613817868287016136b4565b9150509250925092565b61382a81613725565b82525050565b5f6020820190506138435f830184613821565b92915050565b5f6020828403121561385e5761385d613696565b5b5f61386b848285016136b4565b91505092915050565b5f60ff82169050919050565b61388981613874565b82525050565b5f6020820190506138a25f830184613880565b92915050565b6138b18161379e565b81146138bb575f80fd5b50565b5f813590506138cc816138a8565b92915050565b5f80604083850312156138e8576138e7613696565b5b5f6138f58582860161374c565b9250506020613906858286016138be565b9150509250929050565b5f6020828403121561392557613924613696565b5b5f6139328482850161374c565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61397582613625565b810181811067ffffffffffffffff821117156139945761399361393f565b5b80604052505050565b5f6139a661368d565b90506139b2828261396c565b919050565b5f67ffffffffffffffff8211156139d1576139d061393f565b5b602082029050602081019050919050565b5f80fd5b5f6139f86139f3846139b7565b61399d565b90508083825260208201905060208402830185811115613a1b57613a1a6139e2565b5b835b81811015613a445780613a30888261374c565b845260208401935050602081019050613a1d565b5050509392505050565b5f82601f830112613a6257613a6161393b565b5b8135613a728482602086016139e6565b91505092915050565b5f8060408385031215613a9157613a90613696565b5b5f83013567ffffffffffffffff811115613aae57613aad61369a565b5b613aba85828601613a4e565b9250506020613acb858286016138be565b9150509250929050565b5f60208284031215613aea57613ae9613696565b5b5f613af7848285016138be565b91505092915050565b5f819050919050565b5f613b23613b1e613b1984613706565b613b00565b613706565b9050919050565b5f613b3482613b09565b9050919050565b5f613b4582613b2a565b9050919050565b613b5581613b3b565b82525050565b5f602082019050613b6e5f830184613b4c565b92915050565b5f8060408385031215613b8a57613b89613696565b5b5f613b978582860161374c565b9250506020613ba88582860161374c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613bf657607f821691505b602082108103613c0957613c08613bb2565b5b50919050565b7f496e76616c6964206f776e6572000000000000000000000000000000000000005f82015250565b5f613c43600d83613607565b9150613c4e82613c0f565b602082019050919050565b5f6020820190508181035f830152613c7081613c37565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613cae826135cc565b9150613cb9836135cc565b9250828201905080821115613cd157613cd0613c77565b5b92915050565b7f4d757374206b6565702074617820617420393525206f72206c657373000000005f82015250565b5f613d0b601c83613607565b9150613d1682613cd7565b602082019050919050565b5f6020820190508181035f830152613d3881613cff565b9050919050565b7f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e740000005f82015250565b5f613d73601d83613607565b9150613d7e82613d3f565b602082019050919050565b5f6020820190508181035f830152613da081613d67565b9050919050565b5f613db1826135cc565b9150613dbc836135cc565b9250828202613dca816135cc565b91508282048414831517613de157613de0613c77565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e1f826135cc565b9150613e2a836135cc565b925082613e3a57613e39613de8565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f613e9f603583613607565b9150613eaa82613e45565b604082019050919050565b5f6020820190508181035f830152613ecc81613e93565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f613f2d603483613607565b9150613f3882613ed3565b604082019050919050565b5f6020820190508181035f830152613f5a81613f21565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613fbb603983613607565b9150613fc682613f61565b604082019050919050565b5f6020820190508181035f830152613fe881613faf565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115614044578086048111156140205761401f613c77565b5b600185161561402f5780820291505b808102905061403d85613fef565b9450614004565b94509492505050565b5f8261405c5760019050614117565b81614069575f9050614117565b816001811461407f5760028114614089576140b8565b6001915050614117565b60ff84111561409b5761409a613c77565b5b8360020a9150848211156140b2576140b1613c77565b5b50614117565b5060208310610133831016604e8410600b84101617156140ed5782820a9050838111156140e8576140e7613c77565b5b614117565b6140fa8484846001613ffb565b9250905081840481111561411157614110613c77565b5b81810290505b9392505050565b5f614128826135cc565b915061413383613874565b92506141607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461404d565b905092915050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f6141c2602f83613607565b91506141cd82614168565b604082019050919050565b5f6020820190508181035f8301526141ef816141b6565b9050919050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c5f8201527f6574206c6f776572207468616e20302e35250000000000000000000000000000602082015250565b5f614250603283613607565b915061425b826141f6565b604082019050919050565b5f6020820190508181035f83015261427d81614244565b9050919050565b5f61428e826135cc565b9150614299836135cc565b92508282039050818111156142b1576142b0613c77565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6142ee826135cc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036143205761431f613c77565b5b600182019050919050565b7f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c7565005f82015250565b5f61435f601f83613607565b915061436a8261432b565b602082019050919050565b5f6020820190508181035f83015261438c81614353565b9050919050565b7f4e6577206f776e6572206973205a45524f0000000000000000000000000000005f82015250565b5f6143c7601183613607565b91506143d282614393565b602082019050919050565b5f6020820190508181035f8301526143f4816143bb565b9050919050565b7f4d757374206b6565702074617820617420353025206f72206c657373000000005f82015250565b5f61442f601c83613607565b915061443a826143fb565b602082019050919050565b5f6020820190508181035f83015261445c81614423565b9050919050565b7f45524332303a204e6f74206f776e657220213d206164647265737328302900005f82015250565b5f614497601e83613607565b91506144a282614463565b602082019050919050565b5f6020820190508181035f8301526144c48161448b565b9050919050565b7f45524332303a204e6f74207370656e64657220213d20616464726573732830295f82015250565b5f6144ff602083613607565b915061450a826144cb565b602082019050919050565b5f6020820190508181035f83015261452c816144f3565b9050919050565b7f45524332303a20496e76616c69642066726f6d206164647265737300000000005f82015250565b5f614567601b83613607565b915061457282614533565b602082019050919050565b5f6020820190508181035f8301526145948161455b565b9050919050565b7f45524332303a20496e76616c696420746f2061646472657373000000000000005f82015250565b5f6145cf601983613607565b91506145da8261459b565b602082019050919050565b5f6020820190508181035f8301526145fc816145c3565b9050919050565b7f45524332303a2053656e64657220697320626c61636b6c6973746564000000005f82015250565b5f614637601c83613607565b915061464282614603565b602082019050919050565b5f6020820190508181035f8301526146648161462b565b9050919050565b7f45524332303a20526563656976657220697320626c61636b6c697374656400005f82015250565b5f61469f601e83613607565b91506146aa8261466b565b602082019050919050565b5f6020820190508181035f8301526146cc81614693565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614707601683613607565b9150614712826146d3565b602082019050919050565b5f6020820190508181035f830152614734816146fb565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d6178546f6b656e416d6f756e7450657254786e2e0000000000000000000000602082015250565b5f614795603583613607565b91506147a08261473b565b604082019050919050565b5f6020820190508181035f8301526147c281614789565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6147fd601383613607565b9150614808826147c9565b602082019050919050565b5f6020820190508181035f83015261482a816147f1565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d6178546f6b656e416d6f756e7450657254786e2e00000000000000000000602082015250565b5f61488b603683613607565b915061489682614831565b604082019050919050565b5f6020820190508181035f8301526148b88161487f565b9050919050565b7f45524332303a204e6f742066726f6d20213d20616464726573732830290000005f82015250565b5f6148f3601d83613607565b91506148fe826148bf565b602082019050919050565b5f6020820190508181035f830152614920816148e7565b9050919050565b7f45524332303a204e6f7420746f20213d206164647265737328302900000000005f82015250565b5f61495b601b83613607565b915061496682614927565b602082019050919050565b5f6020820190508181035f8301526149888161494f565b9050919050565b7f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e745f82015250565b5f6149c3602083613607565b91506149ce8261498f565b602082019050919050565b5f6020820190508181035f8301526149f0816149b7565b9050919050565b5f81905092915050565b50565b5f614a0f5f836149f7565b9150614a1a82614a01565b5f82019050919050565b5f614a2e82614a04565b9150819050919050565b5f81519050614a4681613736565b92915050565b5f60208284031215614a6157614a60613696565b5b5f614a6e84828501614a38565b91505092915050565b5f819050919050565b5f614a9a614a95614a9084614a77565b613b00565b6135cc565b9050919050565b614aaa81614a80565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614ae281613725565b82525050565b5f614af38383614ad9565b60208301905092915050565b5f602082019050919050565b5f614b1582614ab0565b614b1f8185614aba565b9350614b2a83614aca565b805f5b83811015614b5a578151614b418882614ae8565b9750614b4c83614aff565b925050600181019050614b2d565b5085935050505092915050565b5f60a082019050614b7a5f8301886135d5565b614b876020830187614aa1565b8181036040830152614b998186614b0b565b9050614ba86060830185613821565b614bb560808301846135d5565b969550505050505056fea2646970667358221220be5989038ae95a8ad56f5b5a554298046bb49a0e317e8cbd31597a89485187c464736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610302575f3560e01c8063751039fc1161018f578063b38d229a116100db578063c6a3064711610094578063e96db1ef1161006e578063e96db1ef14610b4d578063f2fde38b14610b77578063fc0217a414610b9f578063ffaed33914610bc957610309565b8063c6a3064714610abf578063dd62ed3e14610ae7578063e27a55fe14610b2357610309565b8063b38d229a1461099f578063b62496f5146109c9578063be69188314610a05578063c31c9c0714610a2f578063c410a11b14610a59578063c42c3f8814610a9557610309565b80638da5cb5b1161014857806395d89b411161012257806395d89b41146108d3578063a457c2d7146108fd578063a9059cbb14610939578063af8f26e71461097557610309565b80638da5cb5b146108575780638ea5220f14610881578063924de9b7146108ab57610309565b8063751039fc1461076157806375f0a874146107775780637d673170146107a157806380da4543146107cb578063896c2b8a146108075780638a0a94451461082f57610309565b8063395093511161024e5780635df6e68e11610207578063685fbc6b116101e1578063685fbc6b146106bd5780637070678b146106e757806370a082311461070f578063715018a61461074b57610309565b80635df6e68e146106435780636702ad8d1461066d57806367b740e91461069557610309565b8063395093511461053b57806341c787961461057757806345167f26146105a15780634a62bb65146105c95780634ffe14ab146105f3578063544d1ec91461061b57610309565b806323b872dd116102bb5780632c81355e116102955780632c81355e14610495578063313ce567146104bd57806333012411146104e7578063372b44b81461051157610309565b806323b872dd1461041957806326991cc814610455578063293230b81461047f57610309565b806301b123121461030d57806306fdde0314610337578063083a1c0b14610361578063095ea7b31461038957806318160ddd146103c557806318c34be1146103ef57610309565b3661030957005b5f80fd5b348015610318575f80fd5b50610321610bf1565b60405161032e91906135e4565b60405180910390f35b348015610342575f80fd5b5061034b610bf7565b604051610358919061366d565b60405180910390f35b34801561036c575f80fd5b50610387600480360381019061038291906136c8565b610c86565b005b348015610394575f80fd5b506103af60048036038101906103aa9190613760565b610d70565b6040516103bc91906137b8565b60405180910390f35b3480156103d0575f80fd5b506103d9610d8d565b6040516103e691906135e4565b60405180910390f35b3480156103fa575f80fd5b50610403610d96565b60405161041091906135e4565b60405180910390f35b348015610424575f80fd5b5061043f600480360381019061043a91906137d1565b610d9c565b60405161044c91906137b8565b60405180910390f35b348015610460575f80fd5b50610469610e8e565b6040516104769190613830565b60405180910390f35b34801561048a575f80fd5b50610493610eb3565b005b3480156104a0575f80fd5b506104bb60048036038101906104b69190613849565b610f6c565b005b3480156104c8575f80fd5b506104d16110b9565b6040516104de919061388f565b60405180910390f35b3480156104f2575f80fd5b506104fb6110c1565b60405161050891906135e4565b60405180910390f35b34801561051c575f80fd5b506105256110c7565b60405161053291906135e4565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190613760565b6110cd565b60405161056e91906137b8565b60405180910390f35b348015610582575f80fd5b5061058b611174565b60405161059891906137b8565b60405180910390f35b3480156105ac575f80fd5b506105c760048036038101906105c291906138d2565b611186565b005b3480156105d4575f80fd5b506105dd6112e9565b6040516105ea91906137b8565b60405180910390f35b3480156105fe575f80fd5b50610619600480360381019061061491906136c8565b6112fb565b005b348015610626575f80fd5b50610641600480360381019061063c9190613849565b6113b5565b005b34801561064e575f80fd5b506106576114da565b60405161066491906135e4565b60405180910390f35b348015610678575f80fd5b50610693600480360381019061068e91906138d2565b6114e0565b005b3480156106a0575f80fd5b506106bb60048036038101906106b69190613849565b6115b4565b005b3480156106c8575f80fd5b506106d16116d9565b6040516106de91906135e4565b60405180910390f35b3480156106f2575f80fd5b5061070d600480360381019061070891906138d2565b6116df565b005b34801561071a575f80fd5b5061073560048036038101906107309190613910565b6117b3565b60405161074291906135e4565b60405180910390f35b348015610756575f80fd5b5061075f6117f9565b005b34801561076c575f80fd5b50610775611880565b005b348015610782575f80fd5b5061078b611917565b6040516107989190613830565b60405180910390f35b3480156107ac575f80fd5b506107b561193d565b6040516107c291906135e4565b60405180910390f35b3480156107d6575f80fd5b506107f160048036038101906107ec9190613910565b611943565b6040516107fe91906137b8565b60405180910390f35b348015610812575f80fd5b5061082d60048036038101906108289190613849565b611960565b005b34801561083a575f80fd5b5061085560048036038101906108509190613a7b565b6119e6565b005b348015610862575f80fd5b5061086b611afe565b6040516108789190613830565b60405180910390f35b34801561088c575f80fd5b50610895611b26565b6040516108a29190613830565b60405180910390f35b3480156108b6575f80fd5b506108d160048036038101906108cc9190613ad5565b611b4b565b005b3480156108de575f80fd5b506108e7611be3565b6040516108f4919061366d565b60405180910390f35b348015610908575f80fd5b50610923600480360381019061091e9190613760565b611c73565b60405161093091906137b8565b60405180910390f35b348015610944575f80fd5b5061095f600480360381019061095a9190613760565b611d59565b60405161096c91906137b8565b60405180910390f35b348015610980575f80fd5b50610989611d76565b60405161099691906135e4565b60405180910390f35b3480156109aa575f80fd5b506109b3611d7c565b6040516109c091906135e4565b60405180910390f35b3480156109d4575f80fd5b506109ef60048036038101906109ea9190613910565b611d82565b6040516109fc91906137b8565b60405180910390f35b348015610a10575f80fd5b50610a19611d9f565b604051610a2691906135e4565b60405180910390f35b348015610a3a575f80fd5b50610a43611da5565b604051610a509190613b5b565b60405180910390f35b348015610a64575f80fd5b50610a7f6004803603810190610a7a9190613910565b611dca565b604051610a8c91906137b8565b60405180910390f35b348015610aa0575f80fd5b50610aa9611de7565b604051610ab691906135e4565b60405180910390f35b348015610aca575f80fd5b50610ae56004803603810190610ae091906138d2565b611ded565b005b348015610af2575f80fd5b50610b0d6004803603810190610b089190613b74565b611ec1565b604051610b1a91906135e4565b60405180910390f35b348015610b2e575f80fd5b50610b37611f43565b604051610b4491906135e4565b60405180910390f35b348015610b58575f80fd5b50610b61611f49565b604051610b6e91906135e4565b60405180910390f35b348015610b82575f80fd5b50610b9d6004803603810190610b989190613910565b611f4f565b005b348015610baa575f80fd5b50610bb3612045565b604051610bc091906137b8565b60405180910390f35b348015610bd4575f80fd5b50610bef6004803603810190610bea91906136c8565b612057565b005b600d5481565b60605f8054610c0590613bdf565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3190613bdf565b8015610c7c5780601f10610c5357610100808354040283529160200191610c7c565b820191905f5260205f20905b815481529060010190602001808311610c5f57829003601f168201915b5050505050905090565b610c8e612141565b73ffffffffffffffffffffffffffffffffffffffff16610cac611afe565b73ffffffffffffffffffffffffffffffffffffffff1614610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990613c59565b60405180910390fd5b8160178190555080601881905550601854601754610d209190613ca4565b60168190555060636016541115610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6390613d21565b60405180910390fd5b5050565b5f610d83610d7c612141565b8484612148565b6001905092915050565b5f600254905090565b60105481565b5f610da884848461230b565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610def612141565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613d89565b60405180910390fd5b610e8285610e7a612141565b858403612148565b60019150509392505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ebb612141565b73ffffffffffffffffffffffffffffffffffffffff16610ed9611afe565b73ffffffffffffffffffffffffffffffffffffffff1614610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690613c59565b60405180910390fd5b6001600b5f6101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff02191690831515021790555043600c81905550565b610f74612141565b73ffffffffffffffffffffffffffffffffffffffff16610f92611afe565b73ffffffffffffffffffffffffffffffffffffffff1614610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf90613c59565b60405180910390fd5b620186a06001610ff6610d8d565b6110009190613da7565b61100a9190613e15565b81101561104c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104390613eb5565b60405180910390fd5b6103e86005611059610d8d565b6110639190613da7565b61106d9190613e15565b8111156110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a690613f43565b60405180910390fd5b8060088190555050565b5f6012905090565b601a5481565b60115481565b5f61116a6110d9612141565b848460045f6110e6612141565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111659190613ca4565b612148565b6001905092915050565b600e5f9054906101000a900460ff1681565b61118e612141565b73ffffffffffffffffffffffffffffffffffffffff166111ac611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f990613c59565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128890613fd1565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60155f9054906101000a900460ff1681565b611303612141565b73ffffffffffffffffffffffffffffffffffffffff16611321611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90613c59565b60405180910390fd5b81601a81905550601b54601a5461138e9190613ca4565b601981905550806017819055506018546017546113ab9190613ca4565b6016819055505050565b6113bd612141565b73ffffffffffffffffffffffffffffffffffffffff166113db611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890613c59565b60405180910390fd5b6114396110b9565b600a611445919061411e565b6103e86001611452610d8d565b61145c9190613da7565b6114669190613e15565b6114709190613e15565b8110156114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a9906141d8565b60405180910390fd5b6114ba6110b9565b600a6114c6919061411e565b816114d19190613da7565b600a8190555050565b60195481565b6114e8612141565b73ffffffffffffffffffffffffffffffffffffffff16611506611afe565b73ffffffffffffffffffffffffffffffffffffffff161461155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390613c59565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6115bc612141565b73ffffffffffffffffffffffffffffffffffffffff166115da611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790613c59565b60405180910390fd5b6116386110b9565b600a611644919061411e565b6103e86005611651610d8d565b61165b9190613da7565b6116659190613e15565b61166f9190613e15565b8110156116b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a890614266565b60405180910390fd5b6116b96110b9565b600a6116c5919061411e565b816116d09190613da7565b60098190555050565b60095481565b6116e7612141565b73ffffffffffffffffffffffffffffffffffffffff16611705611afe565b73ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290613c59565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611801612141565b73ffffffffffffffffffffffffffffffffffffffff1661181f611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90613c59565b60405180910390fd5b61187e5f612e5f565b565b611888612141565b73ffffffffffffffffffffffffffffffffffffffff166118a6611afe565b73ffffffffffffffffffffffffffffffffffffffff16146118fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f390613c59565b60405180910390fd5b5f60155f6101000a81548160ff021916908315150217905550565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b6013602052805f5260405f205f915054906101000a900460ff1681565b611968612141565b73ffffffffffffffffffffffffffffffffffffffff16611986611afe565b73ffffffffffffffffffffffffffffffffffffffff16146119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390613c59565b60405180910390fd5b80600d8190555050565b6119ee612141565b73ffffffffffffffffffffffffffffffffffffffff16611a0c611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5990613c59565b60405180910390fd5b5f5b60018351611a729190614284565b8111611af95781601d5f858481518110611a8f57611a8e6142b7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611af1906142e4565b915050611a64565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b53612141565b73ffffffffffffffffffffffffffffffffffffffff16611b71611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe90613c59565b60405180910390fd5b80600e5f6101000a81548160ff02191690831515021790555050565b606060018054611bf290613bdf565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e90613bdf565b8015611c695780601f10611c4057610100808354040283529160200191611c69565b820191905f5260205f20905b815481529060010190602001808311611c4c57829003601f168201915b5050505050905090565b5f8060045f611c80612141565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3190614375565b60405180910390fd5b611d4e611d45612141565b85858403612148565b600191505092915050565b5f611d6c611d65612141565b848461230b565b6001905092915050565b601b5481565b600c5481565b6014602052805f5260405f205f915054906101000a900460ff1681565b60185481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6012602052805f5260405f205f915054906101000a900460ff1681565b600a5481565b611df5612141565b73ffffffffffffffffffffffffffffffffffffffff16611e13611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6090613c59565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60165481565b60175481565b611f57612141565b73ffffffffffffffffffffffffffffffffffffffff16611f75611afe565b73ffffffffffffffffffffffffffffffffffffffff1614611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290613c59565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612030906143dd565b60405180910390fd5b61204281612e5f565b50565b600b5f9054906101000a900460ff1681565b61205f612141565b73ffffffffffffffffffffffffffffffffffffffff1661207d611afe565b73ffffffffffffffffffffffffffffffffffffffff16146120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca90613c59565b60405180910390fd5b81601a8190555080601b81905550601b54601a546120f19190613ca4565b6019819055506032601954111561213d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213490614445565b60405180910390fd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ad906144ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221b90614515565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122fe91906135e4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612379576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123709061457d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123de906145e5565b60405180910390fd5b601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612471576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124689061464d565b60405180910390fd5b601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f2906146b5565b60405180910390fd5b5f81036125125761250d83835f612f22565b612e5a565b60155f9054906101000a900460ff16156129f45761252e611afe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561259c575061256c611afe565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125d457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561260e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126265750601c5f9054906101000a900460ff16155b156129f357600b5f9054906101000a900460ff166127195760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806126d9575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270f9061471d565b60405180910390fd5b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156127b6575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561285d57600a54811115612800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f7906147ab565b60405180910390fd5b60095461280c836117b3565b826128179190613ca4565b1115612858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284f90614813565b60405180910390fd5b6129f2565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156128fa575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561294957600a54811115612944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293b906148a1565b60405180910390fd5b6129f1565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166129f0576009546129a3836117b3565b826129ae9190613ca4565b11156129ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e690614813565b60405180910390fd5b5b5b5b5b5b5f6129fe306117b3565b90505f6008548210159050600e5f9054906101000a900460ff168015612a215750805b8015612a395750601c5f9054906101000a900460ff16155b8015612a8c575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612adf575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b32575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b4d575043600d54600c54612b4a9190613ca4565b11155b15612b8e576001601c5f6101000a81548160ff021916908315150217905550612b7461319a565b5f601c5f6101000a81548160ff0219169083151502179055505b5f601c5f9054906101000a900460ff1615905060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c3c575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c45575f90505b5f8115612e4a5760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ca357505f601654115b15612d3b57612cd06064612cc26016548861334d90919063ffffffff16565b61336290919063ffffffff16565b905060165460185482612ce39190613da7565b612ced9190613e15565b60115f828254612cfd9190613ca4565b9250508190555060165460175482612d159190613da7565b612d1f9190613e15565b60105f828254612d2f9190613ca4565b92505081905550612e27565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d9257505f601954115b15612e2657612dbf6064612db16019548861334d90919063ffffffff16565b61336290919063ffffffff16565b9050601954601b5482612dd29190613da7565b612ddc9190613e15565b60115f828254612dec9190613ca4565b92505081905550601954601a5482612e049190613da7565b612e0e9190613e15565b60105f828254612e1e9190613ca4565b925050819055505b5b5f811115612e3b57612e3a873083612f22565b5b8085612e479190614284565b94505b612e55878787612f22565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8790614909565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff590614971565b60405180910390fd5b613009838383613377565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561308d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613084906149d9565b60405180910390fd5b81810360035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461311d9190613ca4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161318191906135e4565b60405180910390a361319484848461337c565b50505050565b5f806011546010546131ac9190613ca4565b90505f6131b8306117b3565b90505f8214806131c757505f81145b156131d45750505061334b565b5f4790506131e182613381565b5f6131f582476135b790919063ffffffff16565b90505f61321f856132116011548561334d90919063ffffffff16565b61336290919063ffffffff16565b9050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161326690614a24565b5f6040518083038185875af1925050503d805f81146132a0576040519150601f19603f3d011682016040523d82523d5f602084013e6132a5565b606091505b505080965050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516132f190614a24565b5f6040518083038185875af1925050503d805f811461332b576040519150601f19603f3d011682016040523d82523d5f602084013e613330565b606091505b5050809650505f6010819055505f6011819055505050505050505b565b5f818361335a9190613da7565b905092915050565b5f818361336f9190613e15565b905092915050565b505050565b505050565b5f600267ffffffffffffffff81111561339d5761339c61393f565b5b6040519080825280602002602001820160405280156133cb5781602001602082028036833780820191505090505b50905030815f815181106133e2576133e16142b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613486573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134aa9190614a4c565b816001815181106134be576134bd6142b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506135243060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612148565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613586959493929190614b67565b5f604051808303815f87803b15801561359d575f80fd5b505af11580156135af573d5f803e3d5ffd5b505050505050565b5f81836135c49190614284565b905092915050565b5f819050919050565b6135de816135cc565b82525050565b5f6020820190506135f75f8301846135d5565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61363f826135fd565b6136498185613607565b9350613659818560208601613617565b61366281613625565b840191505092915050565b5f6020820190508181035f8301526136858184613635565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b6136a7816135cc565b81146136b1575f80fd5b50565b5f813590506136c28161369e565b92915050565b5f80604083850312156136de576136dd613696565b5b5f6136eb858286016136b4565b92505060206136fc858286016136b4565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61372f82613706565b9050919050565b61373f81613725565b8114613749575f80fd5b50565b5f8135905061375a81613736565b92915050565b5f806040838503121561377657613775613696565b5b5f6137838582860161374c565b9250506020613794858286016136b4565b9150509250929050565b5f8115159050919050565b6137b28161379e565b82525050565b5f6020820190506137cb5f8301846137a9565b92915050565b5f805f606084860312156137e8576137e7613696565b5b5f6137f58682870161374c565b93505060206138068682870161374c565b9250506040613817868287016136b4565b9150509250925092565b61382a81613725565b82525050565b5f6020820190506138435f830184613821565b92915050565b5f6020828403121561385e5761385d613696565b5b5f61386b848285016136b4565b91505092915050565b5f60ff82169050919050565b61388981613874565b82525050565b5f6020820190506138a25f830184613880565b92915050565b6138b18161379e565b81146138bb575f80fd5b50565b5f813590506138cc816138a8565b92915050565b5f80604083850312156138e8576138e7613696565b5b5f6138f58582860161374c565b9250506020613906858286016138be565b9150509250929050565b5f6020828403121561392557613924613696565b5b5f6139328482850161374c565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61397582613625565b810181811067ffffffffffffffff821117156139945761399361393f565b5b80604052505050565b5f6139a661368d565b90506139b2828261396c565b919050565b5f67ffffffffffffffff8211156139d1576139d061393f565b5b602082029050602081019050919050565b5f80fd5b5f6139f86139f3846139b7565b61399d565b90508083825260208201905060208402830185811115613a1b57613a1a6139e2565b5b835b81811015613a445780613a30888261374c565b845260208401935050602081019050613a1d565b5050509392505050565b5f82601f830112613a6257613a6161393b565b5b8135613a728482602086016139e6565b91505092915050565b5f8060408385031215613a9157613a90613696565b5b5f83013567ffffffffffffffff811115613aae57613aad61369a565b5b613aba85828601613a4e565b9250506020613acb858286016138be565b9150509250929050565b5f60208284031215613aea57613ae9613696565b5b5f613af7848285016138be565b91505092915050565b5f819050919050565b5f613b23613b1e613b1984613706565b613b00565b613706565b9050919050565b5f613b3482613b09565b9050919050565b5f613b4582613b2a565b9050919050565b613b5581613b3b565b82525050565b5f602082019050613b6e5f830184613b4c565b92915050565b5f8060408385031215613b8a57613b89613696565b5b5f613b978582860161374c565b9250506020613ba88582860161374c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613bf657607f821691505b602082108103613c0957613c08613bb2565b5b50919050565b7f496e76616c6964206f776e6572000000000000000000000000000000000000005f82015250565b5f613c43600d83613607565b9150613c4e82613c0f565b602082019050919050565b5f6020820190508181035f830152613c7081613c37565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613cae826135cc565b9150613cb9836135cc565b9250828201905080821115613cd157613cd0613c77565b5b92915050565b7f4d757374206b6565702074617820617420393525206f72206c657373000000005f82015250565b5f613d0b601c83613607565b9150613d1682613cd7565b602082019050919050565b5f6020820190508181035f830152613d3881613cff565b9050919050565b7f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e740000005f82015250565b5f613d73601d83613607565b9150613d7e82613d3f565b602082019050919050565b5f6020820190508181035f830152613da081613d67565b9050919050565b5f613db1826135cc565b9150613dbc836135cc565b9250828202613dca816135cc565b91508282048414831517613de157613de0613c77565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e1f826135cc565b9150613e2a836135cc565b925082613e3a57613e39613de8565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f613e9f603583613607565b9150613eaa82613e45565b604082019050919050565b5f6020820190508181035f830152613ecc81613e93565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f613f2d603483613607565b9150613f3882613ed3565b604082019050919050565b5f6020820190508181035f830152613f5a81613f21565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613fbb603983613607565b9150613fc682613f61565b604082019050919050565b5f6020820190508181035f830152613fe881613faf565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115614044578086048111156140205761401f613c77565b5b600185161561402f5780820291505b808102905061403d85613fef565b9450614004565b94509492505050565b5f8261405c5760019050614117565b81614069575f9050614117565b816001811461407f5760028114614089576140b8565b6001915050614117565b60ff84111561409b5761409a613c77565b5b8360020a9150848211156140b2576140b1613c77565b5b50614117565b5060208310610133831016604e8410600b84101617156140ed5782820a9050838111156140e8576140e7613c77565b5b614117565b6140fa8484846001613ffb565b9250905081840481111561411157614110613c77565b5b81810290505b9392505050565b5f614128826135cc565b915061413383613874565b92506141607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461404d565b905092915050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f6141c2602f83613607565b91506141cd82614168565b604082019050919050565b5f6020820190508181035f8301526141ef816141b6565b9050919050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c5f8201527f6574206c6f776572207468616e20302e35250000000000000000000000000000602082015250565b5f614250603283613607565b915061425b826141f6565b604082019050919050565b5f6020820190508181035f83015261427d81614244565b9050919050565b5f61428e826135cc565b9150614299836135cc565b92508282039050818111156142b1576142b0613c77565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6142ee826135cc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036143205761431f613c77565b5b600182019050919050565b7f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c7565005f82015250565b5f61435f601f83613607565b915061436a8261432b565b602082019050919050565b5f6020820190508181035f83015261438c81614353565b9050919050565b7f4e6577206f776e6572206973205a45524f0000000000000000000000000000005f82015250565b5f6143c7601183613607565b91506143d282614393565b602082019050919050565b5f6020820190508181035f8301526143f4816143bb565b9050919050565b7f4d757374206b6565702074617820617420353025206f72206c657373000000005f82015250565b5f61442f601c83613607565b915061443a826143fb565b602082019050919050565b5f6020820190508181035f83015261445c81614423565b9050919050565b7f45524332303a204e6f74206f776e657220213d206164647265737328302900005f82015250565b5f614497601e83613607565b91506144a282614463565b602082019050919050565b5f6020820190508181035f8301526144c48161448b565b9050919050565b7f45524332303a204e6f74207370656e64657220213d20616464726573732830295f82015250565b5f6144ff602083613607565b915061450a826144cb565b602082019050919050565b5f6020820190508181035f83015261452c816144f3565b9050919050565b7f45524332303a20496e76616c69642066726f6d206164647265737300000000005f82015250565b5f614567601b83613607565b915061457282614533565b602082019050919050565b5f6020820190508181035f8301526145948161455b565b9050919050565b7f45524332303a20496e76616c696420746f2061646472657373000000000000005f82015250565b5f6145cf601983613607565b91506145da8261459b565b602082019050919050565b5f6020820190508181035f8301526145fc816145c3565b9050919050565b7f45524332303a2053656e64657220697320626c61636b6c6973746564000000005f82015250565b5f614637601c83613607565b915061464282614603565b602082019050919050565b5f6020820190508181035f8301526146648161462b565b9050919050565b7f45524332303a20526563656976657220697320626c61636b6c697374656400005f82015250565b5f61469f601e83613607565b91506146aa8261466b565b602082019050919050565b5f6020820190508181035f8301526146cc81614693565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614707601683613607565b9150614712826146d3565b602082019050919050565b5f6020820190508181035f830152614734816146fb565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d6178546f6b656e416d6f756e7450657254786e2e0000000000000000000000602082015250565b5f614795603583613607565b91506147a08261473b565b604082019050919050565b5f6020820190508181035f8301526147c281614789565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6147fd601383613607565b9150614808826147c9565b602082019050919050565b5f6020820190508181035f83015261482a816147f1565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d6178546f6b656e416d6f756e7450657254786e2e00000000000000000000602082015250565b5f61488b603683613607565b915061489682614831565b604082019050919050565b5f6020820190508181035f8301526148b88161487f565b9050919050565b7f45524332303a204e6f742066726f6d20213d20616464726573732830290000005f82015250565b5f6148f3601d83613607565b91506148fe826148bf565b602082019050919050565b5f6020820190508181035f830152614920816148e7565b9050919050565b7f45524332303a204e6f7420746f20213d206164647265737328302900000000005f82015250565b5f61495b601b83613607565b915061496682614927565b602082019050919050565b5f6020820190508181035f8301526149888161494f565b9050919050565b7f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e745f82015250565b5f6149c3602083613607565b91506149ce8261498f565b602082019050919050565b5f6020820190508181035f8301526149f0816149b7565b9050919050565b5f81905092915050565b50565b5f614a0f5f836149f7565b9150614a1a82614a01565b5f82019050919050565b5f614a2e82614a04565b9150819050919050565b5f81519050614a4681613736565b92915050565b5f60208284031215614a6157614a60613696565b5b5f614a6e84828501614a38565b91505092915050565b5f819050919050565b5f614a9a614a95614a9084614a77565b613b00565b6135cc565b9050919050565b614aaa81614a80565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614ae281613725565b82525050565b5f614af38383614ad9565b60208301905092915050565b5f602082019050919050565b5f614b1582614ab0565b614b1f8185614aba565b9350614b2a83614aca565b805f5b83811015614b5a578151614b418882614ae8565b9750614b4c83614aff565b925050600181019050614b2d565b5085935050505092915050565b5f60a082019050614b7a5f8301886135d5565b614b876020830187614aa1565b8181036040830152614b998186614b0b565b9050614ba86060830185613821565b614bb560808301846135d5565b969550505050505056fea2646970667358221220be5989038ae95a8ad56f5b5a554298046bb49a0e317e8cbd31597a89485187c464736f6c634300081a0033

Deployed Bytecode Sourcemap

14083:10185:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14453:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9768:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19025:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10340:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10089:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14606:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11020:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14208:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16734:153;;;;;;;;;;;;;:::i;:::-;;17502:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9988:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15064:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14651:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11594:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14496:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19586:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14883:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19323:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18134:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15031:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18410:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17854:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14284:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17017:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10205:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1076:103;;;;;;;;;;;;;:::i;:::-;;17306:84;;;;;;;;;;;;;:::i;:::-;;14536:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14244:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14761:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16893:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18530:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;793:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14573:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17396:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9876:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11813:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11425:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15101:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14413:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14817:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14997:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14165:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14692:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14329:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17170:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10861:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14925:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14959:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;888:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14373:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18732:285;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14453:36;;;;:::o;9768:100::-;9822:13;9855:5;9848:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9768:100;:::o;19025:292::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19139:12:::1;19120:16;:31;;;;19175:9;19162:10;:22;;;;19229:10;;19210:16;;:29;;;;:::i;:::-;19195:12;:44;;;;19274:2;19258:12;;:18;;19250:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;19025:292:::0;;:::o;10340:169::-;10423:4;10440:39;10449:12;:10;:12::i;:::-;10463:7;10472:6;10440:8;:39::i;:::-;10497:4;10490:11;;10340:169;;;;:::o;10089:108::-;10150:7;10177:12;;10170:19;;10089:108;:::o;14606:38::-;;;;:::o;11020:397::-;11117:4;11134:27;11144:4;11150:2;11154:6;11134:9;:27::i;:::-;11172:16;11191:11;:17;11203:4;11191:17;;;;;;;;;;;;;;;:31;11209:12;:10;:12::i;:::-;11191:31;;;;;;;;;;;;;;;;11172:50;;11253:6;11241:8;:18;;11233:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11329:47;11338:4;11344:12;:10;:12::i;:::-;11369:6;11358:8;:17;11329:8;:47::i;:::-;11405:4;11398:11;;;11020:397;;;;;:::o;14208:23::-;;;;;;;;;;;;;:::o;16734:153::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;16804:4:::1;16788:13;;:20;;;;;;;;;;;;;;;;;;16833:4;16819:11;;:18;;;;;;;;;;;;;;;;;;16867:12;16848:18;:31;;;;16734:153::o:0;17502:346::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17626:6:::1;17621:1;17605:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17604:28;;;;:::i;:::-;17594:6;:38;;17586:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;17741:4;17736:1;17720:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17719:26;;;;:::i;:::-;17709:6;:36;;17701:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17834:6;17813:18;:27;;;;17502:346:::0;:::o;9988:93::-;10046:5;10071:2;10064:9;;9988:93;:::o;15064:30::-;;;;:::o;14651:32::-;;;;:::o;11594:211::-;11680:4;11697:78;11706:12;:10;:12::i;:::-;11720:7;11766:8;11729:11;:25;11741:12;:10;:12::i;:::-;11729:25;;;;;;;;;;;;;;;:34;11755:7;11729:34;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;11697:8;:78::i;:::-;11793:4;11786:11;;11594:211;;;;:::o;14496:31::-;;;;;;;;;;;;;:::o;19586:247::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19705:8:::1;;;;;;;;;;;19697:16;;:4;:16;;::::0;19689:86:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19820:5;19786:25;:31;19812:4;19786:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19586:247:::0;;:::o;14883:33::-;;;;;;;;;;;;;:::o;19323:257::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19426:4:::1;19408:15;:22;;;;19473:9;;19455:15;;:27;;;;:::i;:::-;19441:11;:41;;;;19512:5;19493:16;:24;;;;19562:10;;19543:16;;:29;;;;:::i;:::-;19528:12;:44;;;;19323:257:::0;;:::o;18134:270::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18272:10:::1;:8;:10::i;:::-;18266:2;:16;;;;:::i;:::-;18257:4;18252:1;18236:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18235:26;;;;:::i;:::-;18234:49;;;;:::i;:::-;18224:6;:59;;18216:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;18385:10;:8;:10::i;:::-;18379:2;:16;;;;:::i;:::-;18369:6;:27;;;;:::i;:::-;18346:20;:50;;;;18134:270:::0;:::o;15031:26::-;;;;:::o;18410:114::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18510:6:::1;18492:9;:15;18502:4;18492:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;18410:114:::0;;:::o;17854:274::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17990:10:::1;:8;:10::i;:::-;17984:2;:16;;;;:::i;:::-;17975:4;17970:1;17954:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17953:26;;;;:::i;:::-;17952:49;;;;:::i;:::-;17942:6;:59;;17934:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;18109:10;:8;:10::i;:::-;18103:2;:16;;;;:::i;:::-;18093:6;:27;;;;:::i;:::-;18067:23;:53;;;;17854:274:::0;:::o;14284:38::-;;;;:::o;17017:147::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17151:5:::1;17114:28;:34;17143:4;17114:34;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17017:147:::0;;:::o;10205:127::-;10279:7;10306:9;:18;10316:7;10306:18;;;;;;;;;;;;;;;;10299:25;;10205:127;;;:::o;1076:103::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;1141:30:::1;1168:1;1141:18;:30::i;:::-;1076:103::o:0;17306:84::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17377:5:::1;17360:14;;:22;;;;;;;;;;;;;;;;;;17306:84::o:0;14536:30::-;;;;;;;;;;;;;:::o;14244:33::-;;;;:::o;14761:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;16893:118::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;16997:6:::1;16975:21;:28;;;;16893:118:::0;:::o;18530:196::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18625:9:::1;18620:99;18656:1;18643:5;:12;:14;;;;:::i;:::-;18638:1;:19;18620:99;;18701:6;18679:9;:19;18689:5;18695:1;18689:8;;;;;;;;:::i;:::-;;;;;;;;18679:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18659:3;;;;;:::i;:::-;;;;18620:99;;;;18530:196:::0;;:::o;793:87::-;839:7;866:6;;;;;;;;;;;859:13;;793:87;:::o;14573:24::-;;;;;;;;;;;;;:::o;17396:100::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17481:7:::1;17467:11;;:21;;;;;;;;;;;;;;;;;;17396:100:::0;:::o;9876:104::-;9932:13;9965:7;9958:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9876:104;:::o;11813:360::-;11899:4;11916:16;11935:11;:25;11947:12;:10;:12::i;:::-;11935:25;;;;;;;;;;;;;;;:34;11961:7;11935:34;;;;;;;;;;;;;;;;11916:53;;12000:8;11988;:20;;11980:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12080:52;12089:12;:10;:12::i;:::-;12103:7;12123:8;12112;:19;12080:8;:52::i;:::-;12161:4;12154:11;;;11813:360;;;;:::o;11425:161::-;11504:4;11521:35;11531:12;:10;:12::i;:::-;11545:2;11549:6;11521:9;:35::i;:::-;11574:4;11567:11;;11425:161;;;;:::o;15101:24::-;;;;:::o;14413:33::-;;;;:::o;14817:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;14997:25::-;;;;:::o;14165:36::-;;;;;;;;;;;;;:::o;14692:60::-;;;;;;;;;;;;;;;;;;;;;;:::o;14329:35::-;;;;:::o;17170:128::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17285:5:::1;17258:15;:24;17274:7;17258:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17170:128:::0;;:::o;10861:151::-;10950:7;10977:11;:18;10989:5;10977:18;;;;;;;;;;;;;;;:27;10996:7;10977:27;;;;;;;;;;;;;;;;10970:34;;10861:151;;;;:::o;14925:27::-;;;;:::o;14959:31::-;;;;:::o;888:180::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;997:1:::1;977:22;;:8;:22;;::::0;969:52:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1032:28;1051:8;1032:18;:28::i;:::-;888:180:::0;:::o;14373:33::-;;;;;;;;;;;;;:::o;18732:285::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18844:12:::1;18826:15;:30;;;;18879:9;18867;:21;;;;18931:9;;18913:15;;:27;;;;:::i;:::-;18899:11;:41;;;;18974:2;18959:11;;:17;;18951:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;18732:285:::0;;:::o;230:98::-;283:7;310:10;303:17;;230:98;:::o;10517:336::-;10636:1;10619:19;;:5;:19;;;10611:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10711:1;10692:21;;:7;:21;;;10684:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10791:6;10761:11;:18;10773:5;10761:18;;;;;;;;;;;;;;;:27;10780:7;10761:27;;;;;;;;;;;;;;;:36;;;;10829:7;10813:32;;10822:5;10813:32;;;10838:6;10813:32;;;;;;:::i;:::-;;;;;;;;10517:336;;;:::o;20621:3042::-;20769:1;20753:18;;:4;:18;;;20745:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;20836:1;20822:16;;:2;:16;;;20814:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;20888:9;:15;20898:4;20888:15;;;;;;;;;;;;;;;;;;;;;;;;;20887:16;20879:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20956:9;:13;20966:2;20956:13;;;;;;;;;;;;;;;;;;;;;;;;;20955:14;20947:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;21031:1;21021:6;:11;21017:93;;21049:28;21065:4;21071:2;21075:1;21049:15;:28::i;:::-;21092:7;;21017:93;21126:14;;;;;;;;;;;21122:1078;;;21169:7;:5;:7::i;:::-;21161:15;;:4;:15;;;;:32;;;;;21186:7;:5;:7::i;:::-;21180:13;;:2;:13;;;;21161:32;:52;;;;;21211:1;21197:16;;:2;:16;;;;21161:52;:77;;;;;21231:6;21217:21;;:2;:21;;;;21161:77;:90;;;;;21243:8;;;;;;;;;;;21242:9;21161:90;21157:1032;;;21277:13;;;;;;;;;;;21272:142;;21323:15;:21;21339:4;21323:21;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;21348:15;:19;21364:2;21348:19;;;;;;;;;;;;;;;;;;;;;;;;;21323:44;21315:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;21272:142;21438:25;:31;21464:4;21438:31;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;;21474:28;:32;21503:2;21474:32;;;;;;;;;;;;;;;;;;;;;;;;;21473:33;21438:68;21434:740;;;21549:20;;21539:6;:30;;21531:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21684:23;;21667:13;21677:2;21667:9;:13::i;:::-;21658:6;:22;;;;:::i;:::-;:49;;21650:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;21434:740;;;21778:25;:29;21804:2;21778:29;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;;21812:28;:34;21841:4;21812:34;;;;;;;;;;;;;;;;;;;;;;;;;21811:35;21778:68;21774:400;;;21889:20;;21879:6;:30;;21871:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21774:400;;;22016:28;:32;22045:2;22016:32;;;;;;;;;;;;;;;;;;;;;;;;;22011:163;;22107:23;;22090:13;22100:2;22090:9;:13::i;:::-;22081:6;:22;;;;:::i;:::-;:49;;22073:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;22011:163;21774:400;21434:740;21157:1032;21122:1078;22210:20;22233:24;22251:4;22233:9;:24::i;:::-;22210:47;;22268:12;22299:18;;22283:12;:34;;22268:49;;22332:11;;;;;;;;;;;:36;;;;;22361:7;22332:36;:63;;;;;22387:8;;;;;;;;;;;22386:9;22332:63;:113;;;;;22414:25;:31;22440:4;22414:31;;;;;;;;;;;;;;;;;;;;;;;;;22413:32;22332:113;:153;;;;;22464:15;:21;22480:4;22464:21;;;;;;;;;;;;;;;;;;;;;;;;;22463:22;22332:153;:191;;;;;22504:15;:19;22520:2;22504:19;;;;;;;;;;;;;;;;;;;;;;;;;22503:20;22332:191;:264;;;;;22584:12;22559:21;;22540:18;;:40;;;;:::i;:::-;:56;;22332:264;22328:378;;;22634:4;22623:8;;:15;;;;;;;;;;;;;;;;;;22653:10;:8;:10::i;:::-;22689:5;22678:8;;:16;;;;;;;;;;;;;;;;;;22328:378;22718:8;22730;;;;;;;;;;;22729:9;22718:20;;22753:15;:21;22769:4;22753:21;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;22778:15;:19;22794:2;22778:19;;;;;;;;;;;;;;;;;;;;;;;;;22753:44;22749:74;;;22818:5;22812:11;;22749:74;22836:12;22867:3;22863:747;;;22891:25;:29;22917:2;22891:29;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;;22939:1;22924:12;;:16;22891:49;22887:595;;;22968:33;22997:3;22968:24;22979:12;;22968:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;22961:40;;23063:12;;23049:10;;23042:4;:17;;;;:::i;:::-;23041:34;;;;:::i;:::-;23020:17;;:55;;;;;;;:::i;:::-;;;;;;;;23149:12;;23129:16;;23122:4;:23;;;;:::i;:::-;23121:40;;;;:::i;:::-;23094:23;;:67;;;;;;;:::i;:::-;;;;;;;;22887:595;;;23200:25;:31;23226:4;23200:31;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;23249:1;23235:11;;:15;23200:50;23196:286;;;23278:32;23306:3;23278:23;23289:11;;23278:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;23271:39;;23371:11;;23358:9;;23351:4;:16;;;;:::i;:::-;23350:32;;;;:::i;:::-;23329:17;;:53;;;;;;;:::i;:::-;;;;;;;;23455:11;;23436:15;;23429:4;:22;;;;:::i;:::-;23428:38;;;;:::i;:::-;23401:23;;:65;;;;;;;:::i;:::-;;;;;;;;23196:286;22887:595;23507:1;23500:4;:8;23496:73;;;23527:42;23543:4;23557;23564;23527:15;:42::i;:::-;23496:73;23594:4;23584:14;;;;;:::i;:::-;;;22863:747;23622:33;23638:4;23644:2;23648:6;23622:15;:33::i;:::-;20734:2929;;;;20621:3042;;;;:::o;1187:191::-;1261:16;1280:6;;;;;;;;;;;1261:25;;1306:8;1297:6;;:17;;;;;;;;;;;;;;;;;;1361:8;1330:40;;1351:8;1330:40;;;;;;;;;;;;1250:128;1187:191;:::o;13317:607::-;13430:1;13414:18;;:4;:18;;;13406:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13499:1;13485:16;;:2;:16;;;13477:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13544:38;13565:4;13571:2;13575:6;13544:20;:38::i;:::-;13593:19;13615:9;:15;13625:4;13615:15;;;;;;;;;;;;;;;;13593:37;;13664:6;13649:11;:21;;13641:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13775:6;13761:11;:20;13743:9;:15;13753:4;13743:15;;;;;;;;;;;;;;;:38;;;;13820:6;13803:9;:13;13813:2;13803:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;13857:2;13842:26;;13851:4;13842:26;;;13861:6;13842:26;;;;;;:::i;:::-;;;;;;;;13879:37;13899:4;13905:2;13909:6;13879:19;:37::i;:::-;13395:529;13317:607;;;:::o;19839:774::-;19878:12;19901:25;19955:17;;19929:23;;:43;;;;:::i;:::-;19901:71;;19983:20;20006:24;20024:4;20006:9;:24::i;:::-;19983:47;;20066:1;20045:17;:22;:43;;;;20087:1;20071:12;:17;20045:43;20041:69;;;20103:7;;;;;20041:69;20122:22;20147:21;20122:46;;20179:30;20196:12;20179:16;:30::i;:::-;20222:18;20243:41;20269:14;20243:21;:25;;:41;;;;:::i;:::-;20222:62;;20295:17;20315:56;20353:17;20315:33;20330:17;;20315:10;:14;;:33;;;;:::i;:::-;:37;;:56;;;;:::i;:::-;20295:76;;20406:9;;;;;;;;;;;20398:23;;20429:9;20398:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20384:59;;;;;20476:15;;;;;;;;;;;20468:29;;20506:21;20468:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20454:79;;;;;20572:1;20546:23;:27;;;;20604:1;20584:17;:21;;;;19867:746;;;;;;19839:774;:::o;1409:98::-;1467:7;1498:1;1494;:5;;;;:::i;:::-;1487:12;;1409:98;;;;:::o;1793:::-;1851:7;1882:1;1878;:5;;;;:::i;:::-;1871:12;;1793:98;;;;:::o;13184:125::-;;;;:::o;13932:144::-;;;;:::o;23704:559::-;23825:21;23863:1;23849:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23825:40;;23894:4;23876;23881:1;23876:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23920:10;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23910:4;23915:1;23910:7;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;;;23950:52;23967:4;23982:10;;;;;;;;;;;23995:6;23950:8;:52::i;:::-;24041:10;;;;;;;;;;;:61;;;24117:6;24138:1;24182:4;24209;24229:15;24041:214;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23754:509;23704:559;:::o;2438:98::-;2496:7;2527:1;2523;:5;;;;:::i;:::-;2516:12;;2438:98;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:139::-;811:6;806:3;801;795:23;852:1;843:6;838:3;834:16;827:27;722:139;;;:::o;867:102::-;908:6;959:2;955:7;950:2;943:5;939:14;935:28;925:38;;867:102;;;:::o;975:377::-;1063:3;1091:39;1124:5;1091:39;:::i;:::-;1146:71;1210:6;1205:3;1146:71;:::i;:::-;1139:78;;1226:65;1284:6;1279:3;1272:4;1265:5;1261:16;1226:65;:::i;:::-;1316:29;1338:6;1316:29;:::i;:::-;1311:3;1307:39;1300:46;;1067:285;975:377;;;;:::o;1358:313::-;1471:4;1509:2;1498:9;1494:18;1486:26;;1558:9;1552:4;1548:20;1544:1;1533:9;1529:17;1522:47;1586:78;1659:4;1650:6;1586:78;:::i;:::-;1578:86;;1358:313;;;;:::o;1677:75::-;1710:6;1743:2;1737:9;1727:19;;1677:75;:::o;1758:117::-;1867:1;1864;1857:12;1881:117;1990:1;1987;1980:12;2004:122;2077:24;2095:5;2077:24;:::i;:::-;2070:5;2067:35;2057:63;;2116:1;2113;2106:12;2057:63;2004:122;:::o;2132:139::-;2178:5;2216:6;2203:20;2194:29;;2232:33;2259:5;2232:33;:::i;:::-;2132:139;;;;:::o;2277:474::-;2345:6;2353;2402:2;2390:9;2381:7;2377:23;2373:32;2370:119;;;2408:79;;:::i;:::-;2370:119;2528:1;2553:53;2598:7;2589:6;2578:9;2574:22;2553:53;:::i;:::-;2543:63;;2499:117;2655:2;2681:53;2726:7;2717:6;2706:9;2702:22;2681:53;:::i;:::-;2671:63;;2626:118;2277:474;;;;;:::o;2757:126::-;2794:7;2834:42;2827:5;2823:54;2812:65;;2757:126;;;:::o;2889:96::-;2926:7;2955:24;2973:5;2955:24;:::i;:::-;2944:35;;2889:96;;;:::o;2991:122::-;3064:24;3082:5;3064:24;:::i;:::-;3057:5;3054:35;3044:63;;3103:1;3100;3093:12;3044:63;2991:122;:::o;3119:139::-;3165:5;3203:6;3190:20;3181:29;;3219:33;3246:5;3219:33;:::i;:::-;3119:139;;;;:::o;3264:474::-;3332:6;3340;3389:2;3377:9;3368:7;3364:23;3360:32;3357:119;;;3395:79;;:::i;:::-;3357:119;3515:1;3540:53;3585:7;3576:6;3565:9;3561:22;3540:53;:::i;:::-;3530:63;;3486:117;3642:2;3668:53;3713:7;3704:6;3693:9;3689:22;3668:53;:::i;:::-;3658:63;;3613:118;3264:474;;;;;:::o;3744:90::-;3778:7;3821:5;3814:13;3807:21;3796:32;;3744:90;;;:::o;3840:109::-;3921:21;3936:5;3921:21;:::i;:::-;3916:3;3909:34;3840:109;;:::o;3955:210::-;4042:4;4080:2;4069:9;4065:18;4057:26;;4093:65;4155:1;4144:9;4140:17;4131:6;4093:65;:::i;:::-;3955:210;;;;:::o;4171:619::-;4248:6;4256;4264;4313:2;4301:9;4292:7;4288:23;4284:32;4281:119;;;4319:79;;:::i;:::-;4281:119;4439:1;4464:53;4509:7;4500:6;4489:9;4485:22;4464:53;:::i;:::-;4454:63;;4410:117;4566:2;4592:53;4637:7;4628:6;4617:9;4613:22;4592:53;:::i;:::-;4582:63;;4537:118;4694:2;4720:53;4765:7;4756:6;4745:9;4741:22;4720:53;:::i;:::-;4710:63;;4665:118;4171:619;;;;;:::o;4796:118::-;4883:24;4901:5;4883:24;:::i;:::-;4878:3;4871:37;4796:118;;:::o;4920:222::-;5013:4;5051:2;5040:9;5036:18;5028:26;;5064:71;5132:1;5121:9;5117:17;5108:6;5064:71;:::i;:::-;4920:222;;;;:::o;5148:329::-;5207:6;5256:2;5244:9;5235:7;5231:23;5227:32;5224:119;;;5262:79;;:::i;:::-;5224:119;5382:1;5407:53;5452:7;5443:6;5432:9;5428:22;5407:53;:::i;:::-;5397:63;;5353:117;5148:329;;;;:::o;5483:86::-;5518:7;5558:4;5551:5;5547:16;5536:27;;5483:86;;;:::o;5575:112::-;5658:22;5674:5;5658:22;:::i;:::-;5653:3;5646:35;5575:112;;:::o;5693:214::-;5782:4;5820:2;5809:9;5805:18;5797:26;;5833:67;5897:1;5886:9;5882:17;5873:6;5833:67;:::i;:::-;5693:214;;;;:::o;5913:116::-;5983:21;5998:5;5983:21;:::i;:::-;5976:5;5973:32;5963:60;;6019:1;6016;6009:12;5963:60;5913:116;:::o;6035:133::-;6078:5;6116:6;6103:20;6094:29;;6132:30;6156:5;6132:30;:::i;:::-;6035:133;;;;:::o;6174:468::-;6239:6;6247;6296:2;6284:9;6275:7;6271:23;6267:32;6264:119;;;6302:79;;:::i;:::-;6264:119;6422:1;6447:53;6492:7;6483:6;6472:9;6468:22;6447:53;:::i;:::-;6437:63;;6393:117;6549:2;6575:50;6617:7;6608:6;6597:9;6593:22;6575:50;:::i;:::-;6565:60;;6520:115;6174:468;;;;;:::o;6648:329::-;6707:6;6756:2;6744:9;6735:7;6731:23;6727:32;6724:119;;;6762:79;;:::i;:::-;6724:119;6882:1;6907:53;6952:7;6943:6;6932:9;6928:22;6907:53;:::i;:::-;6897:63;;6853:117;6648:329;;;;:::o;6983:117::-;7092:1;7089;7082:12;7106:180;7154:77;7151:1;7144:88;7251:4;7248:1;7241:15;7275:4;7272:1;7265:15;7292:281;7375:27;7397:4;7375:27;:::i;:::-;7367:6;7363:40;7505:6;7493:10;7490:22;7469:18;7457:10;7454:34;7451:62;7448:88;;;7516:18;;:::i;:::-;7448:88;7556:10;7552:2;7545:22;7335:238;7292:281;;:::o;7579:129::-;7613:6;7640:20;;:::i;:::-;7630:30;;7669:33;7697:4;7689:6;7669:33;:::i;:::-;7579:129;;;:::o;7714:311::-;7791:4;7881:18;7873:6;7870:30;7867:56;;;7903:18;;:::i;:::-;7867:56;7953:4;7945:6;7941:17;7933:25;;8013:4;8007;8003:15;7995:23;;7714:311;;;:::o;8031:117::-;8140:1;8137;8130:12;8171:710;8267:5;8292:81;8308:64;8365:6;8308:64;:::i;:::-;8292:81;:::i;:::-;8283:90;;8393:5;8422:6;8415:5;8408:21;8456:4;8449:5;8445:16;8438:23;;8509:4;8501:6;8497:17;8489:6;8485:30;8538:3;8530:6;8527:15;8524:122;;;8557:79;;:::i;:::-;8524:122;8672:6;8655:220;8689:6;8684:3;8681:15;8655:220;;;8764:3;8793:37;8826:3;8814:10;8793:37;:::i;:::-;8788:3;8781:50;8860:4;8855:3;8851:14;8844:21;;8731:144;8715:4;8710:3;8706:14;8699:21;;8655:220;;;8659:21;8273:608;;8171:710;;;;;:::o;8904:370::-;8975:5;9024:3;9017:4;9009:6;9005:17;9001:27;8991:122;;9032:79;;:::i;:::-;8991:122;9149:6;9136:20;9174:94;9264:3;9256:6;9249:4;9241:6;9237:17;9174:94;:::i;:::-;9165:103;;8981:293;8904:370;;;;:::o;9280:678::-;9370:6;9378;9427:2;9415:9;9406:7;9402:23;9398:32;9395:119;;;9433:79;;:::i;:::-;9395:119;9581:1;9570:9;9566:17;9553:31;9611:18;9603:6;9600:30;9597:117;;;9633:79;;:::i;:::-;9597:117;9738:78;9808:7;9799:6;9788:9;9784:22;9738:78;:::i;:::-;9728:88;;9524:302;9865:2;9891:50;9933:7;9924:6;9913:9;9909:22;9891:50;:::i;:::-;9881:60;;9836:115;9280:678;;;;;:::o;9964:323::-;10020:6;10069:2;10057:9;10048:7;10044:23;10040:32;10037:119;;;10075:79;;:::i;:::-;10037:119;10195:1;10220:50;10262:7;10253:6;10242:9;10238:22;10220:50;:::i;:::-;10210:60;;10166:114;9964:323;;;;:::o;10293:60::-;10321:3;10342:5;10335:12;;10293:60;;;:::o;10359:142::-;10409:9;10442:53;10460:34;10469:24;10487:5;10469:24;:::i;:::-;10460:34;:::i;:::-;10442:53;:::i;:::-;10429:66;;10359:142;;;:::o;10507:126::-;10557:9;10590:37;10621:5;10590:37;:::i;:::-;10577:50;;10507:126;;;:::o;10639:152::-;10715:9;10748:37;10779:5;10748:37;:::i;:::-;10735:50;;10639:152;;;:::o;10797:183::-;10910:63;10967:5;10910:63;:::i;:::-;10905:3;10898:76;10797:183;;:::o;10986:274::-;11105:4;11143:2;11132:9;11128:18;11120:26;;11156:97;11250:1;11239:9;11235:17;11226:6;11156:97;:::i;:::-;10986:274;;;;:::o;11266:474::-;11334:6;11342;11391:2;11379:9;11370:7;11366:23;11362:32;11359:119;;;11397:79;;:::i;:::-;11359:119;11517:1;11542:53;11587:7;11578:6;11567:9;11563:22;11542:53;:::i;:::-;11532:63;;11488:117;11644:2;11670:53;11715:7;11706:6;11695:9;11691:22;11670:53;:::i;:::-;11660:63;;11615:118;11266:474;;;;;:::o;11746:180::-;11794:77;11791:1;11784:88;11891:4;11888:1;11881:15;11915:4;11912:1;11905:15;11932:320;11976:6;12013:1;12007:4;12003:12;11993:22;;12060:1;12054:4;12050:12;12081:18;12071:81;;12137:4;12129:6;12125:17;12115:27;;12071:81;12199:2;12191:6;12188:14;12168:18;12165:38;12162:84;;12218:18;;:::i;:::-;12162:84;11983:269;11932:320;;;:::o;12258:163::-;12398:15;12394:1;12386:6;12382:14;12375:39;12258:163;:::o;12427:366::-;12569:3;12590:67;12654:2;12649:3;12590:67;:::i;:::-;12583:74;;12666:93;12755:3;12666:93;:::i;:::-;12784:2;12779:3;12775:12;12768:19;;12427:366;;;:::o;12799:419::-;12965:4;13003:2;12992:9;12988:18;12980:26;;13052:9;13046:4;13042:20;13038:1;13027:9;13023:17;13016:47;13080:131;13206:4;13080:131;:::i;:::-;13072:139;;12799:419;;;:::o;13224:180::-;13272:77;13269:1;13262:88;13369:4;13366:1;13359:15;13393:4;13390:1;13383:15;13410:191;13450:3;13469:20;13487:1;13469:20;:::i;:::-;13464:25;;13503:20;13521:1;13503:20;:::i;:::-;13498:25;;13546:1;13543;13539:9;13532:16;;13567:3;13564:1;13561:10;13558:36;;;13574:18;;:::i;:::-;13558:36;13410:191;;;;:::o;13607:178::-;13747:30;13743:1;13735:6;13731:14;13724:54;13607:178;:::o;13791:366::-;13933:3;13954:67;14018:2;14013:3;13954:67;:::i;:::-;13947:74;;14030:93;14119:3;14030:93;:::i;:::-;14148:2;14143:3;14139:12;14132:19;;13791:366;;;:::o;14163:419::-;14329:4;14367:2;14356:9;14352:18;14344:26;;14416:9;14410:4;14406:20;14402:1;14391:9;14387:17;14380:47;14444:131;14570:4;14444:131;:::i;:::-;14436:139;;14163:419;;;:::o;14588:179::-;14728:31;14724:1;14716:6;14712:14;14705:55;14588:179;:::o;14773:366::-;14915:3;14936:67;15000:2;14995:3;14936:67;:::i;:::-;14929:74;;15012:93;15101:3;15012:93;:::i;:::-;15130:2;15125:3;15121:12;15114:19;;14773:366;;;:::o;15145:419::-;15311:4;15349:2;15338:9;15334:18;15326:26;;15398:9;15392:4;15388:20;15384:1;15373:9;15369:17;15362:47;15426:131;15552:4;15426:131;:::i;:::-;15418:139;;15145:419;;;:::o;15570:410::-;15610:7;15633:20;15651:1;15633:20;:::i;:::-;15628:25;;15667:20;15685:1;15667:20;:::i;:::-;15662:25;;15722:1;15719;15715:9;15744:30;15762:11;15744:30;:::i;:::-;15733:41;;15923:1;15914:7;15910:15;15907:1;15904:22;15884:1;15877:9;15857:83;15834:139;;15953:18;;:::i;:::-;15834:139;15618:362;15570:410;;;;:::o;15986:180::-;16034:77;16031:1;16024:88;16131:4;16128:1;16121:15;16155:4;16152:1;16145:15;16172:185;16212:1;16229:20;16247:1;16229:20;:::i;:::-;16224:25;;16263:20;16281:1;16263:20;:::i;:::-;16258:25;;16302:1;16292:35;;16307:18;;:::i;:::-;16292:35;16349:1;16346;16342:9;16337:14;;16172:185;;;;:::o;16363:240::-;16503:34;16499:1;16491:6;16487:14;16480:58;16572:23;16567:2;16559:6;16555:15;16548:48;16363:240;:::o;16609:366::-;16751:3;16772:67;16836:2;16831:3;16772:67;:::i;:::-;16765:74;;16848:93;16937:3;16848:93;:::i;:::-;16966:2;16961:3;16957:12;16950:19;;16609:366;;;:::o;16981:419::-;17147:4;17185:2;17174:9;17170:18;17162:26;;17234:9;17228:4;17224:20;17220:1;17209:9;17205:17;17198:47;17262:131;17388:4;17262:131;:::i;:::-;17254:139;;16981:419;;;:::o;17406:239::-;17546:34;17542:1;17534:6;17530:14;17523:58;17615:22;17610:2;17602:6;17598:15;17591:47;17406:239;:::o;17651:366::-;17793:3;17814:67;17878:2;17873:3;17814:67;:::i;:::-;17807:74;;17890:93;17979:3;17890:93;:::i;:::-;18008:2;18003:3;17999:12;17992:19;;17651:366;;;:::o;18023:419::-;18189:4;18227:2;18216:9;18212:18;18204:26;;18276:9;18270:4;18266:20;18262:1;18251:9;18247:17;18240:47;18304:131;18430:4;18304:131;:::i;:::-;18296:139;;18023:419;;;:::o;18448:244::-;18588:34;18584:1;18576:6;18572:14;18565:58;18657:27;18652:2;18644:6;18640:15;18633:52;18448:244;:::o;18698:366::-;18840:3;18861:67;18925:2;18920:3;18861:67;:::i;:::-;18854:74;;18937:93;19026:3;18937:93;:::i;:::-;19055:2;19050:3;19046:12;19039:19;;18698:366;;;:::o;19070:419::-;19236:4;19274:2;19263:9;19259:18;19251:26;;19323:9;19317:4;19313:20;19309:1;19298:9;19294:17;19287:47;19351:131;19477:4;19351:131;:::i;:::-;19343:139;;19070:419;;;:::o;19495:102::-;19537:8;19584:5;19581:1;19577:13;19556:34;;19495:102;;;:::o;19603:848::-;19664:5;19671:4;19695:6;19686:15;;19719:5;19710:14;;19733:712;19754:1;19744:8;19741:15;19733:712;;;19849:4;19844:3;19840:14;19834:4;19831:24;19828:50;;;19858:18;;:::i;:::-;19828:50;19908:1;19898:8;19894:16;19891:451;;;20323:4;20316:5;20312:16;20303:25;;19891:451;20373:4;20367;20363:15;20355:23;;20403:32;20426:8;20403:32;:::i;:::-;20391:44;;19733:712;;;19603:848;;;;;;;:::o;20457:1073::-;20511:5;20702:8;20692:40;;20723:1;20714:10;;20725:5;;20692:40;20751:4;20741:36;;20768:1;20759:10;;20770:5;;20741:36;20837:4;20885:1;20880:27;;;;20921:1;20916:191;;;;20830:277;;20880:27;20898:1;20889:10;;20900:5;;;20916:191;20961:3;20951:8;20948:17;20945:43;;;20968:18;;:::i;:::-;20945:43;21017:8;21014:1;21010:16;21001:25;;21052:3;21045:5;21042:14;21039:40;;;21059:18;;:::i;:::-;21039:40;21092:5;;;20830:277;;21216:2;21206:8;21203:16;21197:3;21191:4;21188:13;21184:36;21166:2;21156:8;21153:16;21148:2;21142:4;21139:12;21135:35;21119:111;21116:246;;;21272:8;21266:4;21262:19;21253:28;;21307:3;21300:5;21297:14;21294:40;;;21314:18;;:::i;:::-;21294:40;21347:5;;21116:246;21387:42;21425:3;21415:8;21409:4;21406:1;21387:42;:::i;:::-;21372:57;;;;21461:4;21456:3;21452:14;21445:5;21442:25;21439:51;;;21470:18;;:::i;:::-;21439:51;21519:4;21512:5;21508:16;21499:25;;20457:1073;;;;;;:::o;21536:281::-;21594:5;21618:23;21636:4;21618:23;:::i;:::-;21610:31;;21662:25;21678:8;21662:25;:::i;:::-;21650:37;;21706:104;21743:66;21733:8;21727:4;21706:104;:::i;:::-;21697:113;;21536:281;;;;:::o;21823:234::-;21963:34;21959:1;21951:6;21947:14;21940:58;22032:17;22027:2;22019:6;22015:15;22008:42;21823:234;:::o;22063:366::-;22205:3;22226:67;22290:2;22285:3;22226:67;:::i;:::-;22219:74;;22302:93;22391:3;22302:93;:::i;:::-;22420:2;22415:3;22411:12;22404:19;;22063:366;;;:::o;22435:419::-;22601:4;22639:2;22628:9;22624:18;22616:26;;22688:9;22682:4;22678:20;22674:1;22663:9;22659:17;22652:47;22716:131;22842:4;22716:131;:::i;:::-;22708:139;;22435:419;;;:::o;22860:237::-;23000:34;22996:1;22988:6;22984:14;22977:58;23069:20;23064:2;23056:6;23052:15;23045:45;22860:237;:::o;23103:366::-;23245:3;23266:67;23330:2;23325:3;23266:67;:::i;:::-;23259:74;;23342:93;23431:3;23342:93;:::i;:::-;23460:2;23455:3;23451:12;23444:19;;23103:366;;;:::o;23475:419::-;23641:4;23679:2;23668:9;23664:18;23656:26;;23728:9;23722:4;23718:20;23714:1;23703:9;23699:17;23692:47;23756:131;23882:4;23756:131;:::i;:::-;23748:139;;23475:419;;;:::o;23900:194::-;23940:4;23960:20;23978:1;23960:20;:::i;:::-;23955:25;;23994:20;24012:1;23994:20;:::i;:::-;23989:25;;24038:1;24035;24031:9;24023:17;;24062:1;24056:4;24053:11;24050:37;;;24067:18;;:::i;:::-;24050:37;23900:194;;;;:::o;24100:180::-;24148:77;24145:1;24138:88;24245:4;24242:1;24235:15;24269:4;24266:1;24259:15;24286:233;24325:3;24348:24;24366:5;24348:24;:::i;:::-;24339:33;;24394:66;24387:5;24384:77;24381:103;;24464:18;;:::i;:::-;24381:103;24511:1;24504:5;24500:13;24493:20;;24286:233;;;:::o;24525:181::-;24665:33;24661:1;24653:6;24649:14;24642:57;24525:181;:::o;24712:366::-;24854:3;24875:67;24939:2;24934:3;24875:67;:::i;:::-;24868:74;;24951:93;25040:3;24951:93;:::i;:::-;25069:2;25064:3;25060:12;25053:19;;24712:366;;;:::o;25084:419::-;25250:4;25288:2;25277:9;25273:18;25265:26;;25337:9;25331:4;25327:20;25323:1;25312:9;25308:17;25301:47;25365:131;25491:4;25365:131;:::i;:::-;25357:139;;25084:419;;;:::o;25509:167::-;25649:19;25645:1;25637:6;25633:14;25626:43;25509:167;:::o;25682:366::-;25824:3;25845:67;25909:2;25904:3;25845:67;:::i;:::-;25838:74;;25921:93;26010:3;25921:93;:::i;:::-;26039:2;26034:3;26030:12;26023:19;;25682:366;;;:::o;26054:419::-;26220:4;26258:2;26247:9;26243:18;26235:26;;26307:9;26301:4;26297:20;26293:1;26282:9;26278:17;26271:47;26335:131;26461:4;26335:131;:::i;:::-;26327:139;;26054:419;;;:::o;26479:178::-;26619:30;26615:1;26607:6;26603:14;26596:54;26479:178;:::o;26663:366::-;26805:3;26826:67;26890:2;26885:3;26826:67;:::i;:::-;26819:74;;26902:93;26991:3;26902:93;:::i;:::-;27020:2;27015:3;27011:12;27004:19;;26663:366;;;:::o;27035:419::-;27201:4;27239:2;27228:9;27224:18;27216:26;;27288:9;27282:4;27278:20;27274:1;27263:9;27259:17;27252:47;27316:131;27442:4;27316:131;:::i;:::-;27308:139;;27035:419;;;:::o;27460:180::-;27600:32;27596:1;27588:6;27584:14;27577:56;27460:180;:::o;27646:366::-;27788:3;27809:67;27873:2;27868:3;27809:67;:::i;:::-;27802:74;;27885:93;27974:3;27885:93;:::i;:::-;28003:2;27998:3;27994:12;27987:19;;27646:366;;;:::o;28018:419::-;28184:4;28222:2;28211:9;28207:18;28199:26;;28271:9;28265:4;28261:20;28257:1;28246:9;28242:17;28235:47;28299:131;28425:4;28299:131;:::i;:::-;28291:139;;28018:419;;;:::o;28443:182::-;28583:34;28579:1;28571:6;28567:14;28560:58;28443:182;:::o;28631:366::-;28773:3;28794:67;28858:2;28853:3;28794:67;:::i;:::-;28787:74;;28870:93;28959:3;28870:93;:::i;:::-;28988:2;28983:3;28979:12;28972:19;;28631:366;;;:::o;29003:419::-;29169:4;29207:2;29196:9;29192:18;29184:26;;29256:9;29250:4;29246:20;29242:1;29231:9;29227:17;29220:47;29284:131;29410:4;29284:131;:::i;:::-;29276:139;;29003:419;;;:::o;29428:177::-;29568:29;29564:1;29556:6;29552:14;29545:53;29428:177;:::o;29611:366::-;29753:3;29774:67;29838:2;29833:3;29774:67;:::i;:::-;29767:74;;29850:93;29939:3;29850:93;:::i;:::-;29968:2;29963:3;29959:12;29952:19;;29611:366;;;:::o;29983:419::-;30149:4;30187:2;30176:9;30172:18;30164:26;;30236:9;30230:4;30226:20;30222:1;30211:9;30207:17;30200:47;30264:131;30390:4;30264:131;:::i;:::-;30256:139;;29983:419;;;:::o;30408:175::-;30548:27;30544:1;30536:6;30532:14;30525:51;30408:175;:::o;30589:366::-;30731:3;30752:67;30816:2;30811:3;30752:67;:::i;:::-;30745:74;;30828:93;30917:3;30828:93;:::i;:::-;30946:2;30941:3;30937:12;30930:19;;30589:366;;;:::o;30961:419::-;31127:4;31165:2;31154:9;31150:18;31142:26;;31214:9;31208:4;31204:20;31200:1;31189:9;31185:17;31178:47;31242:131;31368:4;31242:131;:::i;:::-;31234:139;;30961:419;;;:::o;31386:178::-;31526:30;31522:1;31514:6;31510:14;31503:54;31386:178;:::o;31570:366::-;31712:3;31733:67;31797:2;31792:3;31733:67;:::i;:::-;31726:74;;31809:93;31898:3;31809:93;:::i;:::-;31927:2;31922:3;31918:12;31911:19;;31570:366;;;:::o;31942:419::-;32108:4;32146:2;32135:9;32131:18;32123:26;;32195:9;32189:4;32185:20;32181:1;32170:9;32166:17;32159:47;32223:131;32349:4;32223:131;:::i;:::-;32215:139;;31942:419;;;:::o;32367:180::-;32507:32;32503:1;32495:6;32491:14;32484:56;32367:180;:::o;32553:366::-;32695:3;32716:67;32780:2;32775:3;32716:67;:::i;:::-;32709:74;;32792:93;32881:3;32792:93;:::i;:::-;32910:2;32905:3;32901:12;32894:19;;32553:366;;;:::o;32925:419::-;33091:4;33129:2;33118:9;33114:18;33106:26;;33178:9;33172:4;33168:20;33164:1;33153:9;33149:17;33142:47;33206:131;33332:4;33206:131;:::i;:::-;33198:139;;32925:419;;;:::o;33350:172::-;33490:24;33486:1;33478:6;33474:14;33467:48;33350:172;:::o;33528:366::-;33670:3;33691:67;33755:2;33750:3;33691:67;:::i;:::-;33684:74;;33767:93;33856:3;33767:93;:::i;:::-;33885:2;33880:3;33876:12;33869:19;;33528:366;;;:::o;33900:419::-;34066:4;34104:2;34093:9;34089:18;34081:26;;34153:9;34147:4;34143:20;34139:1;34128:9;34124:17;34117:47;34181:131;34307:4;34181:131;:::i;:::-;34173:139;;33900:419;;;:::o;34325:240::-;34465:34;34461:1;34453:6;34449:14;34442:58;34534:23;34529:2;34521:6;34517:15;34510:48;34325:240;:::o;34571:366::-;34713:3;34734:67;34798:2;34793:3;34734:67;:::i;:::-;34727:74;;34810:93;34899:3;34810:93;:::i;:::-;34928:2;34923:3;34919:12;34912:19;;34571:366;;;:::o;34943:419::-;35109:4;35147:2;35136:9;35132:18;35124:26;;35196:9;35190:4;35186:20;35182:1;35171:9;35167:17;35160:47;35224:131;35350:4;35224:131;:::i;:::-;35216:139;;34943:419;;;:::o;35368:169::-;35508:21;35504:1;35496:6;35492:14;35485:45;35368:169;:::o;35543:366::-;35685:3;35706:67;35770:2;35765:3;35706:67;:::i;:::-;35699:74;;35782:93;35871:3;35782:93;:::i;:::-;35900:2;35895:3;35891:12;35884:19;;35543:366;;;:::o;35915:419::-;36081:4;36119:2;36108:9;36104:18;36096:26;;36168:9;36162:4;36158:20;36154:1;36143:9;36139:17;36132:47;36196:131;36322:4;36196:131;:::i;:::-;36188:139;;35915:419;;;:::o;36340:241::-;36480:34;36476:1;36468:6;36464:14;36457:58;36549:24;36544:2;36536:6;36532:15;36525:49;36340:241;:::o;36587:366::-;36729:3;36750:67;36814:2;36809:3;36750:67;:::i;:::-;36743:74;;36826:93;36915:3;36826:93;:::i;:::-;36944:2;36939:3;36935:12;36928:19;;36587:366;;;:::o;36959:419::-;37125:4;37163:2;37152:9;37148:18;37140:26;;37212:9;37206:4;37202:20;37198:1;37187:9;37183:17;37176:47;37240:131;37366:4;37240:131;:::i;:::-;37232:139;;36959:419;;;:::o;37384:179::-;37524:31;37520:1;37512:6;37508:14;37501:55;37384:179;:::o;37569:366::-;37711:3;37732:67;37796:2;37791:3;37732:67;:::i;:::-;37725:74;;37808:93;37897:3;37808:93;:::i;:::-;37926:2;37921:3;37917:12;37910:19;;37569:366;;;:::o;37941:419::-;38107:4;38145:2;38134:9;38130:18;38122:26;;38194:9;38188:4;38184:20;38180:1;38169:9;38165:17;38158:47;38222:131;38348:4;38222:131;:::i;:::-;38214:139;;37941:419;;;:::o;38366:177::-;38506:29;38502:1;38494:6;38490:14;38483:53;38366:177;:::o;38549:366::-;38691:3;38712:67;38776:2;38771:3;38712:67;:::i;:::-;38705:74;;38788:93;38877:3;38788:93;:::i;:::-;38906:2;38901:3;38897:12;38890:19;;38549:366;;;:::o;38921:419::-;39087:4;39125:2;39114:9;39110:18;39102:26;;39174:9;39168:4;39164:20;39160:1;39149:9;39145:17;39138:47;39202:131;39328:4;39202:131;:::i;:::-;39194:139;;38921:419;;;:::o;39346:182::-;39486:34;39482:1;39474:6;39470:14;39463:58;39346:182;:::o;39534:366::-;39676:3;39697:67;39761:2;39756:3;39697:67;:::i;:::-;39690:74;;39773:93;39862:3;39773:93;:::i;:::-;39891:2;39886:3;39882:12;39875:19;;39534:366;;;:::o;39906:419::-;40072:4;40110:2;40099:9;40095:18;40087:26;;40159:9;40153:4;40149:20;40145:1;40134:9;40130:17;40123:47;40187:131;40313:4;40187:131;:::i;:::-;40179:139;;39906:419;;;:::o;40331:147::-;40432:11;40469:3;40454:18;;40331:147;;;;:::o;40484:114::-;;:::o;40604:398::-;40763:3;40784:83;40865:1;40860:3;40784:83;:::i;:::-;40777:90;;40876:93;40965:3;40876:93;:::i;:::-;40994:1;40989:3;40985:11;40978:18;;40604:398;;;:::o;41008:379::-;41192:3;41214:147;41357:3;41214:147;:::i;:::-;41207:154;;41378:3;41371:10;;41008:379;;;:::o;41393:143::-;41450:5;41481:6;41475:13;41466:22;;41497:33;41524:5;41497:33;:::i;:::-;41393:143;;;;:::o;41542:351::-;41612:6;41661:2;41649:9;41640:7;41636:23;41632:32;41629:119;;;41667:79;;:::i;:::-;41629:119;41787:1;41812:64;41868:7;41859:6;41848:9;41844:22;41812:64;:::i;:::-;41802:74;;41758:128;41542:351;;;;:::o;41899:85::-;41944:7;41973:5;41962:16;;41899:85;;;:::o;41990:158::-;42048:9;42081:61;42099:42;42108:32;42134:5;42108:32;:::i;:::-;42099:42;:::i;:::-;42081:61;:::i;:::-;42068:74;;41990:158;;;:::o;42154:147::-;42249:45;42288:5;42249:45;:::i;:::-;42244:3;42237:58;42154:147;;:::o;42307:114::-;42374:6;42408:5;42402:12;42392:22;;42307:114;;;:::o;42427:184::-;42526:11;42560:6;42555:3;42548:19;42600:4;42595:3;42591:14;42576:29;;42427:184;;;;:::o;42617:132::-;42684:4;42707:3;42699:11;;42737:4;42732:3;42728:14;42720:22;;42617:132;;;:::o;42755:108::-;42832:24;42850:5;42832:24;:::i;:::-;42827:3;42820:37;42755:108;;:::o;42869:179::-;42938:10;42959:46;43001:3;42993:6;42959:46;:::i;:::-;43037:4;43032:3;43028:14;43014:28;;42869:179;;;;:::o;43054:113::-;43124:4;43156;43151:3;43147:14;43139:22;;43054:113;;;:::o;43203:732::-;43322:3;43351:54;43399:5;43351:54;:::i;:::-;43421:86;43500:6;43495:3;43421:86;:::i;:::-;43414:93;;43531:56;43581:5;43531:56;:::i;:::-;43610:7;43641:1;43626:284;43651:6;43648:1;43645:13;43626:284;;;43727:6;43721:13;43754:63;43813:3;43798:13;43754:63;:::i;:::-;43747:70;;43840:60;43893:6;43840:60;:::i;:::-;43830:70;;43686:224;43673:1;43670;43666:9;43661:14;;43626:284;;;43630:14;43926:3;43919:10;;43327:608;;;43203:732;;;;:::o;43941:831::-;44204:4;44242:3;44231:9;44227:19;44219:27;;44256:71;44324:1;44313:9;44309:17;44300:6;44256:71;:::i;:::-;44337:80;44413:2;44402:9;44398:18;44389:6;44337:80;:::i;:::-;44464:9;44458:4;44454:20;44449:2;44438:9;44434:18;44427:48;44492:108;44595:4;44586:6;44492:108;:::i;:::-;44484:116;;44610:72;44678:2;44667:9;44663:18;44654:6;44610:72;:::i;:::-;44692:73;44760:3;44749:9;44745:19;44736:6;44692:73;:::i;:::-;43941:831;;;;;;;;:::o

Swarm Source

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