ETH Price: $2,700.79 (-1.48%)

Token

Wrok (WROK)
 

Overview

Max Total Supply

1,000,000,000 WROK

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: WROK
Balance
0.000000000000000001 WROK

Value
$0.00
0x81963033ff1c148d406a830fbe365318733a885f
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:
Wrok

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-07
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.21;

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

pragma solidity ^0.8.21;

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

pragma solidity ^0.8.21;

library SafeMath {
    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 trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, 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 tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, 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 add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

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

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

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return 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;
        }
    }
}

pragma solidity ^0.8.21;

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

pragma solidity ^0.8.21;


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

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

    function decimals() external view returns (uint8);
}

pragma solidity ^0.8.21;

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

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

pragma solidity ^0.8.21;


abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

pragma solidity ^0.8.21;


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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

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

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

pragma solidity ^0.8.21;

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

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address private marketingWallet;

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

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 private launchedAt;
    uint256 private launchedTime;
    uint256 public blocks;

    uint256 public buyTotalFees;

    uint256 public sellTotalFees;

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

    mapping(address => bool) public automatedMarketMakerPairs;

    mapping(uint256 => uint256) private blockSwaps;

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

    event ExcludeFromFees(address indexed account, bool isExcluded);

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

    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);

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

    constructor() ERC20("Wrok", "WROK") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

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

        uint256 totalSupply = 1_000_000_000 * 1e18;

        maxTransactionAmount = 10_000_000 * 1e18;
        maxWallet = 10_000_000 * 1e18;
        swapTokensAtAmount = 200_000 * 1e18;
        maxSwapAmount = 500_000 * 1e18;

        marketingWallet = msg.sender; 

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

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

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function WrokLaunch(uint256 _blocks) external payable onlyOwner {
        _approve(address(this), address(uniswapV2Router), totalSupply());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        blocks = _blocks;
        tradingActive = true;
        swapEnabled = true;
        launchedAt = block.number;
        launchedTime = block.timestamp;
    }

    function limitsGonna() external onlyOwner {
        limitsInEffect = false;
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        swapTokensAtAmount = newAmount * (10 ** 18);
    }

    function updateMaxSwap(uint256 newAmount) external onlyOwner {
        maxSwapAmount = newAmount * (10 ** 18);
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * (10 ** 18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * (10 ** 18);
    }

    function whitelistContract(address _whitelist, bool isWL) public onlyOwner {
        _isExcludedMaxTransactionAmount[_whitelist] = isWL;

        _isExcludedFromFees[_whitelist] = isWL;
    }

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

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

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

    function manualswap(uint256 amount) external {
        require(_msgSender() == marketingWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function manualsend() external {
        bool success;
        (success,) = address(marketingWallet).call{value: address(this).balance}("");
    }

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyFees(uint256 _marketingFee) external onlyOwner {
        buyTotalFees = _marketingFee;
    }

    function updateSellFees(uint256 _marketingFee) external onlyOwner {
        sellTotalFees = _marketingFee;
    }

    function updateFees(uint256 _buy, uint256 _sell) external onlyOwner {
        buyTotalFees = _buy;
        sellTotalFees = _sell;
    }

    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }

    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external {
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(from, addresses[i], amounts[i] * (10 ** 18));
        }
    }

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

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

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if ((launchedAt + blocks) >= block.number) {
                    // START TAX UNTIL BLOCKS END
                    sellTotalFees = 18;
                    buyTotalFees = 18;
                }

                if (!tradingActive) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }

                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
                //when sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from]
                && !_isExcludedFromFees[to]
        ) {
            // Limit swaps per block
            if (blockSwaps[block.number] < 3) {
                swapping = true;

                swapBack();

                swapping = false;

                blockSwaps[block.number] = blockSwaps[block.number] + 1;
            }
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
            }

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

            amount -= fees;
        }

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

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }
    // WITHDRAW STUCKED BALANCE
     function withdraw() external onlyOwner {
        uint256 balance = IERC20(address(this)).balanceOf(address(this));
        IERC20(address(this)).transfer(msg.sender, balance);
        payable(msg.sender).transfer(address(this).balance);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > maxSwapAmount) {
            contractBalance = maxSwapAmount;
        }

        // Halve the amount of liquidity tokens

        uint256 amountToSwapForETH = contractBalance;

        swapTokensForEth(amountToSwapForETH);

        uint256 totalETH = address(this).balance;

        (success,) = address(marketingWallet).call{value: totalETH}("");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"uint256","name":"_blocks","type":"uint256"}],"name":"WrokLaunch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","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":"blocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsGonna","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055505f600b60026101000a81548160ff0219169083151502179055503480156200005e575f80fd5b506040518060400160405280600481526020017f57726f6b000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f57524f4b000000000000000000000000000000000000000000000000000000008152508160039081620000dc919062000bfb565b508060049081620000ee919062000bfb565b50505062000111620001056200046f60201b60201c565b6200047660201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90506200013c8160016200053960201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e0919062000d44565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026c919062000d44565b6040518363ffffffff1660e01b81526004016200028b92919062000d85565b6020604051808303815f875af1158015620002a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000d44565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200031660a05160016200053960201b60201c565b6200032b60a05160016200062060201b60201c565b5f6b033b2e3c9fd0803ce800000090506a084595161401484a0000006007819055506a084595161401484a000000600981905550692a5a058fc295ed0000006008819055506969e10de76676d0800000600a819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003e3620003d5620006be60201b60201c565b6001620006e660201b60201c565b620003f6306001620006e660201b60201c565b6200040b61dead6001620006e660201b60201c565b6200042d6200041f620006be60201b60201c565b60016200053960201b60201c565b620004403060016200053960201b60201c565b6200045561dead60016200053960201b60201c565b6200046733826200081d60201b60201c565b505062000f66565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005496200046f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200056f620006be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620005c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005bf9062000e0e565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620006f66200046f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200071c620006be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000775576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200076c9062000e0e565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000811919062000e4a565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200088e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008859062000eb3565b60405180910390fd5b620008a15f83836200098d60201b60201c565b8060025f828254620008b4919062000f00565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000908919062000f00565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096e919062000f4b565b60405180910390a3620009895f83836200099260201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a1357607f821691505b60208210810362000a295762000a28620009ce565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000a8d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a50565b62000a99868362000a50565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000ae362000add62000ad78462000ab1565b62000aba565b62000ab1565b9050919050565b5f819050919050565b62000afe8362000ac3565b62000b1662000b0d8262000aea565b84845462000a5c565b825550505050565b5f90565b62000b2c62000b1e565b62000b3981848462000af3565b505050565b5b8181101562000b605762000b545f8262000b22565b60018101905062000b3f565b5050565b601f82111562000baf5762000b798162000a2f565b62000b848462000a41565b8101602085101562000b94578190505b62000bac62000ba38562000a41565b83018262000b3e565b50505b505050565b5f82821c905092915050565b5f62000bd15f198460080262000bb4565b1980831691505092915050565b5f62000beb838362000bc0565b9150826002028217905092915050565b62000c068262000997565b67ffffffffffffffff81111562000c225762000c21620009a1565b5b62000c2e8254620009fb565b62000c3b82828562000b64565b5f60209050601f83116001811462000c71575f841562000c5c578287015190505b62000c68858262000bde565b86555062000cd7565b601f19841662000c818662000a2f565b5f5b8281101562000caa5784890151825560018201915060208501945060208101905062000c83565b8683101562000cca578489015162000cc6601f89168262000bc0565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000d0e8262000ce3565b9050919050565b62000d208162000d02565b811462000d2b575f80fd5b50565b5f8151905062000d3e8162000d15565b92915050565b5f6020828403121562000d5c5762000d5b62000cdf565b5b5f62000d6b8482850162000d2e565b91505092915050565b62000d7f8162000d02565b82525050565b5f60408201905062000d9a5f83018562000d74565b62000da9602083018462000d74565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000df660208362000db0565b915062000e038262000dc0565b602082019050919050565b5f6020820190508181035f83015262000e278162000de8565b9050919050565b5f8115159050919050565b62000e448162000e2e565b82525050565b5f60208201905062000e5f5f83018462000e39565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e9b601f8362000db0565b915062000ea88262000e65565b602082019050919050565b5f6020820190508181035f83015262000ecc8162000e8d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000f0c8262000ab1565b915062000f198362000ab1565b925082820190508082111562000f345762000f3362000ed3565b5b92915050565b62000f458162000ab1565b82525050565b5f60208201905062000f605f83018462000f3a565b92915050565b60805160a051614a4562000fc05f395f8181611052015281816113360152611a0401525f8181610c0a01528181610f6d01528181610f9b0152818161108e015281816130b30152818161319201526131b90152614a455ff3fe608060405260043610610296575f3560e01c8063881dce6011610159578063c0246668116100c0578063db3fa6f911610079578063db3fa6f9146109af578063dd62ed3e146109c5578063e2f4560514610a01578063eba4c33314610a2b578063f2fde38b14610a53578063f8b45b0514610a7b5761029d565b8063c0246668146108b9578063c18bc195146108e1578063c8c8ebe414610909578063cce987d414610933578063d257b34f1461095d578063d85ba063146109855761029d565b8063a457c2d711610112578063a457c2d71461078b578063a672990c146107c7578063a9059cbb146107ef578063aacebbe31461082b578063b62496f514610853578063bbc0c7421461088f5761029d565b8063881dce60146106955780638da5cb5b146106bd578063924de9b7146106e757806395d89b411461070f578063967ff23e146107395780639a7a23d6146107635761029d565b80633ccfd60b116101fd5780636ddd1713116101b65780636ddd1713146105b35780636fc3eaec146105dd57806370a08231146105f3578063715018a61461062f57806371fc4688146106455780637571336a1461066d5761029d565b80633ccfd60b146104cf57806349bd5a5e146104e55780634a62bb651461050f57806367243482146105395780636a486a8e146105615780636db794371461058b5761029d565b8063203e727e1161024f578063203e727e146103bf57806323b872dd146103e757806327c8f83514610423578063313ce5671461044d5780633950935114610477578063395f0593146104b35761029d565b806306fdde03146102a1578063095ea7b3146102cb57806310d5de5314610307578063150074a3146103435780631694505e1461036b57806318160ddd146103955761029d565b3661029d57005b5f80fd5b3480156102ac575f80fd5b506102b5610aa5565b6040516102c291906136e7565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec919061379c565b610b35565b6040516102fe91906137f4565b60405180910390f35b348015610312575f80fd5b5061032d6004803603810190610328919061380d565b610b52565b60405161033a91906137f4565b60405180910390f35b34801561034e575f80fd5b5061036960048036038101906103649190613838565b610b6f565b005b348015610376575f80fd5b5061037f610c08565b60405161038c91906138be565b60405180910390f35b3480156103a0575f80fd5b506103a9610c2c565b6040516103b691906138e6565b60405180910390f35b3480156103ca575f80fd5b506103e560048036038101906103e09190613838565b610c35565b005b3480156103f2575f80fd5b5061040d600480360381019061040891906138ff565b610d44565b60405161041a91906137f4565b60405180910390f35b34801561042e575f80fd5b50610437610e36565b604051610444919061395e565b60405180910390f35b348015610458575f80fd5b50610461610e3c565b60405161046e9190613992565b60405180910390f35b348015610482575f80fd5b5061049d6004803603810190610498919061379c565b610e44565b6040516104aa91906137f4565b60405180910390f35b6104cd60048036038101906104c89190613838565b610eeb565b005b3480156104da575f80fd5b506104e361117a565b005b3480156104f0575f80fd5b506104f9611334565b604051610506919061395e565b60405180910390f35b34801561051a575f80fd5b50610523611358565b60405161053091906137f4565b60405180910390f35b348015610544575f80fd5b5061055f600480360381019061055a9190613a61565b61136a565b005b34801561056c575f80fd5b50610575611413565b60405161058291906138e6565b60405180910390f35b348015610596575f80fd5b506105b160048036038101906105ac9190613adf565b611419565b005b3480156105be575f80fd5b506105c76114a7565b6040516105d491906137f4565b60405180910390f35b3480156105e8575f80fd5b506105f16114ba565b005b3480156105fe575f80fd5b506106196004803603810190610614919061380d565b611548565b60405161062691906138e6565b60405180910390f35b34801561063a575f80fd5b5061064361158d565b005b348015610650575f80fd5b5061066b60048036038101906106669190613838565b611614565b005b348015610678575f80fd5b50610693600480360381019061068e9190613b47565b61169a565b005b3480156106a0575f80fd5b506106bb60048036038101906106b69190613838565b61176e565b005b3480156106c8575f80fd5b506106d161182f565b6040516106de919061395e565b60405180910390f35b3480156106f2575f80fd5b5061070d60048036038101906107089190613b85565b611857565b005b34801561071a575f80fd5b506107236118f0565b60405161073091906136e7565b60405180910390f35b348015610744575f80fd5b5061074d611980565b60405161075a91906138e6565b60405180910390f35b34801561076e575f80fd5b5061078960048036038101906107849190613b47565b611986565b005b348015610796575f80fd5b506107b160048036038101906107ac919061379c565b611a9e565b6040516107be91906137f4565b60405180910390f35b3480156107d2575f80fd5b506107ed60048036038101906107e89190613b47565b611b84565b005b3480156107fa575f80fd5b506108156004803603810190610810919061379c565b611cac565b60405161082291906137f4565b60405180910390f35b348015610836575f80fd5b50610851600480360381019061084c919061380d565b611cc9565b005b34801561085e575f80fd5b506108796004803603810190610874919061380d565b611e03565b60405161088691906137f4565b60405180910390f35b34801561089a575f80fd5b506108a3611e20565b6040516108b091906137f4565b60405180910390f35b3480156108c4575f80fd5b506108df60048036038101906108da9190613b47565b611e33565b005b3480156108ec575f80fd5b5061090760048036038101906109029190613838565b611f55565b005b348015610914575f80fd5b5061091d612064565b60405161092a91906138e6565b60405180910390f35b34801561093e575f80fd5b5061094761206a565b60405161095491906138e6565b60405180910390f35b348015610968575f80fd5b50610983600480360381019061097e9190613838565b612070565b005b348015610990575f80fd5b50610999612109565b6040516109a691906138e6565b60405180910390f35b3480156109ba575f80fd5b506109c361210f565b005b3480156109d0575f80fd5b506109eb60048036038101906109e69190613bb0565b6121a6565b6040516109f891906138e6565b60405180910390f35b348015610a0c575f80fd5b50610a15612228565b604051610a2291906138e6565b60405180910390f35b348015610a36575f80fd5b50610a516004803603810190610a4c9190613838565b61222e565b005b348015610a5e575f80fd5b50610a796004803603810190610a74919061380d565b6122b4565b005b348015610a86575f80fd5b50610a8f6123aa565b604051610a9c91906138e6565b60405180910390f35b606060038054610ab490613c1b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae090613c1b565b8015610b2b5780601f10610b0257610100808354040283529160200191610b2b565b820191905f5260205f20905b815481529060010190602001808311610b0e57829003601f168201915b5050505050905090565b5f610b48610b416123b0565b84846123b7565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b776123b0565b73ffffffffffffffffffffffffffffffffffffffff16610b9561182f565b73ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be290613c95565b60405180910390fd5b670de0b6b3a764000081610bff9190613ce0565b600a8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610c3d6123b0565b73ffffffffffffffffffffffffffffffffffffffff16610c5b61182f565b73ffffffffffffffffffffffffffffffffffffffff1614610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca890613c95565b60405180910390fd5b670de0b6b3a76400006103e86001610cc7610c2c565b610cd19190613ce0565b610cdb9190613d4e565b610ce59190613d4e565b811015610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e90613dee565b60405180910390fd5b670de0b6b3a764000081610d3b9190613ce0565b60078190555050565b5f610d5084848461257a565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d976123b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0d90613e7c565b60405180910390fd5b610e2a85610e226123b0565b8584036123b7565b60019150509392505050565b61dead81565b5f6012905090565b5f610ee1610e506123b0565b848460015f610e5d6123b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610edc9190613e9a565b6123b7565b6001905092915050565b610ef36123b0565b73ffffffffffffffffffffffffffffffffffffffff16610f1161182f565b73ffffffffffffffffffffffffffffffffffffffff1614610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90613c95565b60405180910390fd5b610f99307f0000000000000000000000000000000000000000000000000000000000000000610f94610c2c565b6123b7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fe030611548565b5f80610fea61182f565b426040518863ffffffff1660e01b815260040161100c96959493929190613f06565b60606040518083038185885af1158015611028573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061104d9190613f79565b5050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110eb929190613fc9565b6020604051808303815f875af1158015611107573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112b9190614004565b5080600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d8190555050565b6111826123b0565b73ffffffffffffffffffffffffffffffffffffffff166111a061182f565b73ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed90613c95565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611230919061395e565b602060405180830381865afa15801561124b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126f919061402f565b90503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016112ac929190613fc9565b6020604051808303815f875af11580156112c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ec9190614004565b503373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611330573d5f803e3d5ffd5b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5f9054906101000a900460ff1681565b5f8484905011801561138157508383905082829050145b611389575f80fd5b5f3390505f5b8585905081101561140b576113f8828787848181106113b1576113b061405a565b5b90506020020160208101906113c6919061380d565b670de0b6b3a76400008787868181106113e2576113e161405a565b5b905060200201356113f39190613ce0565b61257a565b808061140390614087565b91505061138f565b505050505050565b60105481565b6114216123b0565b73ffffffffffffffffffffffffffffffffffffffff1661143f61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c90613c95565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611500906140fb565b5f6040518083038185875af1925050503d805f811461153a576040519150601f19603f3d011682016040523d82523d5f602084013e61153f565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6115956123b0565b73ffffffffffffffffffffffffffffffffffffffff166115b361182f565b73ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090613c95565b60405180910390fd5b6116125f612f53565b565b61161c6123b0565b73ffffffffffffffffffffffffffffffffffffffff1661163a61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790613c95565b60405180910390fd5b80600f8190555050565b6116a26123b0565b73ffffffffffffffffffffffffffffffffffffffff166116c061182f565b73ffffffffffffffffffffffffffffffffffffffff1614611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d90613c95565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117ae6123b0565b73ffffffffffffffffffffffffffffffffffffffff16146117cd575f80fd5b6117d630611548565b81111580156117e457505f81115b611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90614159565b60405180910390fd5b61182c81613016565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61185f6123b0565b73ffffffffffffffffffffffffffffffffffffffff1661187d61182f565b73ffffffffffffffffffffffffffffffffffffffff16146118d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ca90613c95565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b6060600480546118ff90613c1b565b80601f016020809104026020016040519081016040528092919081815260200182805461192b90613c1b565b80156119765780601f1061194d57610100808354040283529160200191611976565b820191905f5260205f20905b81548152906001019060200180831161195957829003601f168201915b5050505050905090565b600e5481565b61198e6123b0565b73ffffffffffffffffffffffffffffffffffffffff166119ac61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f990613c95565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a87906141e7565b60405180910390fd5b611a9a8282613249565b5050565b5f8060015f611aab6123b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5c90614275565b60405180910390fd5b611b79611b706123b0565b858584036123b7565b600191505092915050565b611b8c6123b0565b73ffffffffffffffffffffffffffffffffffffffff16611baa61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790613c95565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611cbf611cb86123b0565b848461257a565b6001905092915050565b611cd16123b0565b73ffffffffffffffffffffffffffffffffffffffff16611cef61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3c90613c95565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611e3b6123b0565b73ffffffffffffffffffffffffffffffffffffffff16611e5961182f565b73ffffffffffffffffffffffffffffffffffffffff1614611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea690613c95565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f4991906137f4565b60405180910390a25050565b611f5d6123b0565b73ffffffffffffffffffffffffffffffffffffffff16611f7b61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890613c95565b60405180910390fd5b670de0b6b3a76400006103e86005611fe7610c2c565b611ff19190613ce0565b611ffb9190613d4e565b6120059190613d4e565b811015612047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203e90614303565b60405180910390fd5b670de0b6b3a76400008161205b9190613ce0565b60098190555050565b60075481565b600a5481565b6120786123b0565b73ffffffffffffffffffffffffffffffffffffffff1661209661182f565b73ffffffffffffffffffffffffffffffffffffffff16146120ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e390613c95565b60405180910390fd5b670de0b6b3a7640000816121009190613ce0565b60088190555050565b600f5481565b6121176123b0565b73ffffffffffffffffffffffffffffffffffffffff1661213561182f565b73ffffffffffffffffffffffffffffffffffffffff161461218b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218290613c95565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6122366123b0565b73ffffffffffffffffffffffffffffffffffffffff1661225461182f565b73ffffffffffffffffffffffffffffffffffffffff16146122aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a190613c95565b60405180910390fd5b8060108190555050565b6122bc6123b0565b73ffffffffffffffffffffffffffffffffffffffff166122da61182f565b73ffffffffffffffffffffffffffffffffffffffff1614612330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232790613c95565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239590614391565b60405180910390fd5b6123a781612f53565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c9061441f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248a906144ad565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161256d91906138e6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125df9061453b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264d906145c9565b60405180910390fd5b5f810361266d5761266883835f6132e7565b612f4e565b600b5f9054906101000a900460ff1615612b785761268961182f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126f757506126c761182f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561272f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612769575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127825750600560149054906101000a900460ff16155b15612b775743600e54600c546127989190613e9a565b106127ae5760126010819055506012600f819055505b600b60019054906101000a900460ff1661289d5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061285d575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61289c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289390614631565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561293a575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129e157600754811115612984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297b906146bf565b60405180910390fd5b60095461299083611548565b8261299b9190613e9a565b11156129dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d390614727565b60405180910390fd5b612b76565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612a7e575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612acd57600754811115612ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abf906147b5565b60405180910390fd5b612b75565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612b7457600954612b2783611548565b82612b329190613e9a565b1115612b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6a90614727565b60405180910390fd5b5b5b5b5b5b5f612b8230611548565b90505f6008548210159050808015612ba65750600b60029054906101000a900460ff165b8015612bbf5750600560149054906101000a900460ff16155b8015612c12575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612c65575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612cb8575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d4957600360145f4381526020019081526020015f20541015612d48576001600560146101000a81548160ff021916908315150217905550612cfa61355c565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612d329190613e9a565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612df8575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612e01575f90505b5f8115612f3e5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612e5f57505f601054115b15612e9357612e8c6064612e7e6010548861362990919063ffffffff16565b61363e90919063ffffffff16565b9050612f1b565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612eea57505f600f54115b15612f1a57612f176064612f09600f548861362990919063ffffffff16565b61363e90919063ffffffff16565b90505b5b5f811115612f2f57612f2e8730836132e7565b5b8085612f3b91906147d3565b94505b612f498787876132e7565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561303257613031614806565b5b6040519080825280602002602001820160405280156130605781602001602082028036833780820191505090505b50905030815f815181106130775761307661405a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561311a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061313e9190614847565b816001815181106131525761315161405a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131b7307f0000000000000000000000000000000000000000000000000000000000000000846123b7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613218959493929190614929565b5f604051808303815f87803b15801561322f575f80fd5b505af1158015613241573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334c9061453b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ba906145c9565b60405180910390fd5b6133ce838383613653565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613451576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613448906149f1565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546134df9190613e9a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161354391906138e6565b60405180910390a3613556848484613658565b50505050565b5f61356630611548565b90505f808203613577575050613627565b600a5482111561358757600a5491505b5f82905061359481613016565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516135dd906140fb565b5f6040518083038185875af1925050503d805f8114613617576040519150601f19603f3d011682016040523d82523d5f602084013e61361c565b606091505b505080935050505050505b565b5f81836136369190613ce0565b905092915050565b5f818361364b9190613d4e565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613694578082015181840152602081019050613679565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6136b98261365d565b6136c38185613667565b93506136d3818560208601613677565b6136dc8161369f565b840191505092915050565b5f6020820190508181035f8301526136ff81846136af565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6137388261370f565b9050919050565b6137488161372e565b8114613752575f80fd5b50565b5f813590506137638161373f565b92915050565b5f819050919050565b61377b81613769565b8114613785575f80fd5b50565b5f8135905061379681613772565b92915050565b5f80604083850312156137b2576137b1613707565b5b5f6137bf85828601613755565b92505060206137d085828601613788565b9150509250929050565b5f8115159050919050565b6137ee816137da565b82525050565b5f6020820190506138075f8301846137e5565b92915050565b5f6020828403121561382257613821613707565b5b5f61382f84828501613755565b91505092915050565b5f6020828403121561384d5761384c613707565b5b5f61385a84828501613788565b91505092915050565b5f819050919050565b5f61388661388161387c8461370f565b613863565b61370f565b9050919050565b5f6138978261386c565b9050919050565b5f6138a88261388d565b9050919050565b6138b88161389e565b82525050565b5f6020820190506138d15f8301846138af565b92915050565b6138e081613769565b82525050565b5f6020820190506138f95f8301846138d7565b92915050565b5f805f6060848603121561391657613915613707565b5b5f61392386828701613755565b935050602061393486828701613755565b925050604061394586828701613788565b9150509250925092565b6139588161372e565b82525050565b5f6020820190506139715f83018461394f565b92915050565b5f60ff82169050919050565b61398c81613977565b82525050565b5f6020820190506139a55f830184613983565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126139cc576139cb6139ab565b5b8235905067ffffffffffffffff8111156139e9576139e86139af565b5b602083019150836020820283011115613a0557613a046139b3565b5b9250929050565b5f8083601f840112613a2157613a206139ab565b5b8235905067ffffffffffffffff811115613a3e57613a3d6139af565b5b602083019150836020820283011115613a5a57613a596139b3565b5b9250929050565b5f805f8060408587031215613a7957613a78613707565b5b5f85013567ffffffffffffffff811115613a9657613a9561370b565b5b613aa2878288016139b7565b9450945050602085013567ffffffffffffffff811115613ac557613ac461370b565b5b613ad187828801613a0c565b925092505092959194509250565b5f8060408385031215613af557613af4613707565b5b5f613b0285828601613788565b9250506020613b1385828601613788565b9150509250929050565b613b26816137da565b8114613b30575f80fd5b50565b5f81359050613b4181613b1d565b92915050565b5f8060408385031215613b5d57613b5c613707565b5b5f613b6a85828601613755565b9250506020613b7b85828601613b33565b9150509250929050565b5f60208284031215613b9a57613b99613707565b5b5f613ba784828501613b33565b91505092915050565b5f8060408385031215613bc657613bc5613707565b5b5f613bd385828601613755565b9250506020613be485828601613755565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613c3257607f821691505b602082108103613c4557613c44613bee565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613c7f602083613667565b9150613c8a82613c4b565b602082019050919050565b5f6020820190508181035f830152613cac81613c73565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613cea82613769565b9150613cf583613769565b9250828202613d0381613769565b91508282048414831517613d1a57613d19613cb3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d5882613769565b9150613d6383613769565b925082613d7357613d72613d21565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613dd8602f83613667565b9150613de382613d7e565b604082019050919050565b5f6020820190508181035f830152613e0581613dcc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613e66602883613667565b9150613e7182613e0c565b604082019050919050565b5f6020820190508181035f830152613e9381613e5a565b9050919050565b5f613ea482613769565b9150613eaf83613769565b9250828201905080821115613ec757613ec6613cb3565b5b92915050565b5f819050919050565b5f613ef0613eeb613ee684613ecd565b613863565b613769565b9050919050565b613f0081613ed6565b82525050565b5f60c082019050613f195f83018961394f565b613f2660208301886138d7565b613f336040830187613ef7565b613f406060830186613ef7565b613f4d608083018561394f565b613f5a60a08301846138d7565b979650505050505050565b5f81519050613f7381613772565b92915050565b5f805f60608486031215613f9057613f8f613707565b5b5f613f9d86828701613f65565b9350506020613fae86828701613f65565b9250506040613fbf86828701613f65565b9150509250925092565b5f604082019050613fdc5f83018561394f565b613fe960208301846138d7565b9392505050565b5f81519050613ffe81613b1d565b92915050565b5f6020828403121561401957614018613707565b5b5f61402684828501613ff0565b91505092915050565b5f6020828403121561404457614043613707565b5b5f61405184828501613f65565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61409182613769565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140c3576140c2613cb3565b5b600182019050919050565b5f81905092915050565b50565b5f6140e65f836140ce565b91506140f1826140d8565b5f82019050919050565b5f614105826140db565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f614143600c83613667565b915061414e8261410f565b602082019050919050565b5f6020820190508181035f83015261417081614137565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6141d1603983613667565b91506141dc82614177565b604082019050919050565b5f6020820190508181035f8301526141fe816141c5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61425f602583613667565b915061426a82614205565b604082019050919050565b5f6020820190508181035f83015261428c81614253565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f6142ed602483613667565b91506142f882614293565b604082019050919050565b5f6020820190508181035f83015261431a816142e1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61437b602683613667565b915061438682614321565b604082019050919050565b5f6020820190508181035f8301526143a88161436f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614409602483613667565b9150614414826143af565b604082019050919050565b5f6020820190508181035f830152614436816143fd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614497602283613667565b91506144a28261443d565b604082019050919050565b5f6020820190508181035f8301526144c48161448b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614525602583613667565b9150614530826144cb565b604082019050919050565b5f6020820190508181035f83015261455281614519565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6145b3602383613667565b91506145be82614559565b604082019050919050565b5f6020820190508181035f8301526145e0816145a7565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61461b601683613667565b9150614626826145e7565b602082019050919050565b5f6020820190508181035f8301526146488161460f565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6146a9603583613667565b91506146b48261464f565b604082019050919050565b5f6020820190508181035f8301526146d68161469d565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614711601383613667565b915061471c826146dd565b602082019050919050565b5f6020820190508181035f83015261473e81614705565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61479f603683613667565b91506147aa82614745565b604082019050919050565b5f6020820190508181035f8301526147cc81614793565b9050919050565b5f6147dd82613769565b91506147e883613769565b9250828203905081811115614800576147ff613cb3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506148418161373f565b92915050565b5f6020828403121561485c5761485b613707565b5b5f61486984828501614833565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6148a48161372e565b82525050565b5f6148b5838361489b565b60208301905092915050565b5f602082019050919050565b5f6148d782614872565b6148e1818561487c565b93506148ec8361488c565b805f5b8381101561491c57815161490388826148aa565b975061490e836148c1565b9250506001810190506148ef565b5085935050505092915050565b5f60a08201905061493c5f8301886138d7565b6149496020830187613ef7565b818103604083015261495b81866148cd565b905061496a606083018561394f565b61497760808301846138d7565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6149db602683613667565b91506149e682614981565b604082019050919050565b5f6020820190508181035f830152614a08816149cf565b905091905056fea26469706673582212201cb9a94d41ccfa736cc6566984ca00ead2350311a31f96ec119bde79e14c646d64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610296575f3560e01c8063881dce6011610159578063c0246668116100c0578063db3fa6f911610079578063db3fa6f9146109af578063dd62ed3e146109c5578063e2f4560514610a01578063eba4c33314610a2b578063f2fde38b14610a53578063f8b45b0514610a7b5761029d565b8063c0246668146108b9578063c18bc195146108e1578063c8c8ebe414610909578063cce987d414610933578063d257b34f1461095d578063d85ba063146109855761029d565b8063a457c2d711610112578063a457c2d71461078b578063a672990c146107c7578063a9059cbb146107ef578063aacebbe31461082b578063b62496f514610853578063bbc0c7421461088f5761029d565b8063881dce60146106955780638da5cb5b146106bd578063924de9b7146106e757806395d89b411461070f578063967ff23e146107395780639a7a23d6146107635761029d565b80633ccfd60b116101fd5780636ddd1713116101b65780636ddd1713146105b35780636fc3eaec146105dd57806370a08231146105f3578063715018a61461062f57806371fc4688146106455780637571336a1461066d5761029d565b80633ccfd60b146104cf57806349bd5a5e146104e55780634a62bb651461050f57806367243482146105395780636a486a8e146105615780636db794371461058b5761029d565b8063203e727e1161024f578063203e727e146103bf57806323b872dd146103e757806327c8f83514610423578063313ce5671461044d5780633950935114610477578063395f0593146104b35761029d565b806306fdde03146102a1578063095ea7b3146102cb57806310d5de5314610307578063150074a3146103435780631694505e1461036b57806318160ddd146103955761029d565b3661029d57005b5f80fd5b3480156102ac575f80fd5b506102b5610aa5565b6040516102c291906136e7565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec919061379c565b610b35565b6040516102fe91906137f4565b60405180910390f35b348015610312575f80fd5b5061032d6004803603810190610328919061380d565b610b52565b60405161033a91906137f4565b60405180910390f35b34801561034e575f80fd5b5061036960048036038101906103649190613838565b610b6f565b005b348015610376575f80fd5b5061037f610c08565b60405161038c91906138be565b60405180910390f35b3480156103a0575f80fd5b506103a9610c2c565b6040516103b691906138e6565b60405180910390f35b3480156103ca575f80fd5b506103e560048036038101906103e09190613838565b610c35565b005b3480156103f2575f80fd5b5061040d600480360381019061040891906138ff565b610d44565b60405161041a91906137f4565b60405180910390f35b34801561042e575f80fd5b50610437610e36565b604051610444919061395e565b60405180910390f35b348015610458575f80fd5b50610461610e3c565b60405161046e9190613992565b60405180910390f35b348015610482575f80fd5b5061049d6004803603810190610498919061379c565b610e44565b6040516104aa91906137f4565b60405180910390f35b6104cd60048036038101906104c89190613838565b610eeb565b005b3480156104da575f80fd5b506104e361117a565b005b3480156104f0575f80fd5b506104f9611334565b604051610506919061395e565b60405180910390f35b34801561051a575f80fd5b50610523611358565b60405161053091906137f4565b60405180910390f35b348015610544575f80fd5b5061055f600480360381019061055a9190613a61565b61136a565b005b34801561056c575f80fd5b50610575611413565b60405161058291906138e6565b60405180910390f35b348015610596575f80fd5b506105b160048036038101906105ac9190613adf565b611419565b005b3480156105be575f80fd5b506105c76114a7565b6040516105d491906137f4565b60405180910390f35b3480156105e8575f80fd5b506105f16114ba565b005b3480156105fe575f80fd5b506106196004803603810190610614919061380d565b611548565b60405161062691906138e6565b60405180910390f35b34801561063a575f80fd5b5061064361158d565b005b348015610650575f80fd5b5061066b60048036038101906106669190613838565b611614565b005b348015610678575f80fd5b50610693600480360381019061068e9190613b47565b61169a565b005b3480156106a0575f80fd5b506106bb60048036038101906106b69190613838565b61176e565b005b3480156106c8575f80fd5b506106d161182f565b6040516106de919061395e565b60405180910390f35b3480156106f2575f80fd5b5061070d60048036038101906107089190613b85565b611857565b005b34801561071a575f80fd5b506107236118f0565b60405161073091906136e7565b60405180910390f35b348015610744575f80fd5b5061074d611980565b60405161075a91906138e6565b60405180910390f35b34801561076e575f80fd5b5061078960048036038101906107849190613b47565b611986565b005b348015610796575f80fd5b506107b160048036038101906107ac919061379c565b611a9e565b6040516107be91906137f4565b60405180910390f35b3480156107d2575f80fd5b506107ed60048036038101906107e89190613b47565b611b84565b005b3480156107fa575f80fd5b506108156004803603810190610810919061379c565b611cac565b60405161082291906137f4565b60405180910390f35b348015610836575f80fd5b50610851600480360381019061084c919061380d565b611cc9565b005b34801561085e575f80fd5b506108796004803603810190610874919061380d565b611e03565b60405161088691906137f4565b60405180910390f35b34801561089a575f80fd5b506108a3611e20565b6040516108b091906137f4565b60405180910390f35b3480156108c4575f80fd5b506108df60048036038101906108da9190613b47565b611e33565b005b3480156108ec575f80fd5b5061090760048036038101906109029190613838565b611f55565b005b348015610914575f80fd5b5061091d612064565b60405161092a91906138e6565b60405180910390f35b34801561093e575f80fd5b5061094761206a565b60405161095491906138e6565b60405180910390f35b348015610968575f80fd5b50610983600480360381019061097e9190613838565b612070565b005b348015610990575f80fd5b50610999612109565b6040516109a691906138e6565b60405180910390f35b3480156109ba575f80fd5b506109c361210f565b005b3480156109d0575f80fd5b506109eb60048036038101906109e69190613bb0565b6121a6565b6040516109f891906138e6565b60405180910390f35b348015610a0c575f80fd5b50610a15612228565b604051610a2291906138e6565b60405180910390f35b348015610a36575f80fd5b50610a516004803603810190610a4c9190613838565b61222e565b005b348015610a5e575f80fd5b50610a796004803603810190610a74919061380d565b6122b4565b005b348015610a86575f80fd5b50610a8f6123aa565b604051610a9c91906138e6565b60405180910390f35b606060038054610ab490613c1b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae090613c1b565b8015610b2b5780601f10610b0257610100808354040283529160200191610b2b565b820191905f5260205f20905b815481529060010190602001808311610b0e57829003601f168201915b5050505050905090565b5f610b48610b416123b0565b84846123b7565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b776123b0565b73ffffffffffffffffffffffffffffffffffffffff16610b9561182f565b73ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be290613c95565b60405180910390fd5b670de0b6b3a764000081610bff9190613ce0565b600a8190555050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b610c3d6123b0565b73ffffffffffffffffffffffffffffffffffffffff16610c5b61182f565b73ffffffffffffffffffffffffffffffffffffffff1614610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca890613c95565b60405180910390fd5b670de0b6b3a76400006103e86001610cc7610c2c565b610cd19190613ce0565b610cdb9190613d4e565b610ce59190613d4e565b811015610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e90613dee565b60405180910390fd5b670de0b6b3a764000081610d3b9190613ce0565b60078190555050565b5f610d5084848461257a565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d976123b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0d90613e7c565b60405180910390fd5b610e2a85610e226123b0565b8584036123b7565b60019150509392505050565b61dead81565b5f6012905090565b5f610ee1610e506123b0565b848460015f610e5d6123b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610edc9190613e9a565b6123b7565b6001905092915050565b610ef36123b0565b73ffffffffffffffffffffffffffffffffffffffff16610f1161182f565b73ffffffffffffffffffffffffffffffffffffffff1614610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90613c95565b60405180910390fd5b610f99307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d610f94610c2c565b6123b7565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fe030611548565b5f80610fea61182f565b426040518863ffffffff1660e01b815260040161100c96959493929190613f06565b60606040518083038185885af1158015611028573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061104d9190613f79565b5050507f00000000000000000000000081963033ff1c148d406a830fbe365318733a885f73ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110eb929190613fc9565b6020604051808303815f875af1158015611107573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112b9190614004565b5080600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d8190555050565b6111826123b0565b73ffffffffffffffffffffffffffffffffffffffff166111a061182f565b73ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed90613c95565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611230919061395e565b602060405180830381865afa15801561124b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126f919061402f565b90503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016112ac929190613fc9565b6020604051808303815f875af11580156112c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ec9190614004565b503373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611330573d5f803e3d5ffd5b5050565b7f00000000000000000000000081963033ff1c148d406a830fbe365318733a885f81565b600b5f9054906101000a900460ff1681565b5f8484905011801561138157508383905082829050145b611389575f80fd5b5f3390505f5b8585905081101561140b576113f8828787848181106113b1576113b061405a565b5b90506020020160208101906113c6919061380d565b670de0b6b3a76400008787868181106113e2576113e161405a565b5b905060200201356113f39190613ce0565b61257a565b808061140390614087565b91505061138f565b505050505050565b60105481565b6114216123b0565b73ffffffffffffffffffffffffffffffffffffffff1661143f61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c90613c95565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611500906140fb565b5f6040518083038185875af1925050503d805f811461153a576040519150601f19603f3d011682016040523d82523d5f602084013e61153f565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6115956123b0565b73ffffffffffffffffffffffffffffffffffffffff166115b361182f565b73ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090613c95565b60405180910390fd5b6116125f612f53565b565b61161c6123b0565b73ffffffffffffffffffffffffffffffffffffffff1661163a61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790613c95565b60405180910390fd5b80600f8190555050565b6116a26123b0565b73ffffffffffffffffffffffffffffffffffffffff166116c061182f565b73ffffffffffffffffffffffffffffffffffffffff1614611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d90613c95565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117ae6123b0565b73ffffffffffffffffffffffffffffffffffffffff16146117cd575f80fd5b6117d630611548565b81111580156117e457505f81115b611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90614159565b60405180910390fd5b61182c81613016565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61185f6123b0565b73ffffffffffffffffffffffffffffffffffffffff1661187d61182f565b73ffffffffffffffffffffffffffffffffffffffff16146118d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ca90613c95565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b6060600480546118ff90613c1b565b80601f016020809104026020016040519081016040528092919081815260200182805461192b90613c1b565b80156119765780601f1061194d57610100808354040283529160200191611976565b820191905f5260205f20905b81548152906001019060200180831161195957829003601f168201915b5050505050905090565b600e5481565b61198e6123b0565b73ffffffffffffffffffffffffffffffffffffffff166119ac61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f990613c95565b60405180910390fd5b7f00000000000000000000000081963033ff1c148d406a830fbe365318733a885f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a87906141e7565b60405180910390fd5b611a9a8282613249565b5050565b5f8060015f611aab6123b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5c90614275565b60405180910390fd5b611b79611b706123b0565b858584036123b7565b600191505092915050565b611b8c6123b0565b73ffffffffffffffffffffffffffffffffffffffff16611baa61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790613c95565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611cbf611cb86123b0565b848461257a565b6001905092915050565b611cd16123b0565b73ffffffffffffffffffffffffffffffffffffffff16611cef61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3c90613c95565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611e3b6123b0565b73ffffffffffffffffffffffffffffffffffffffff16611e5961182f565b73ffffffffffffffffffffffffffffffffffffffff1614611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea690613c95565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f4991906137f4565b60405180910390a25050565b611f5d6123b0565b73ffffffffffffffffffffffffffffffffffffffff16611f7b61182f565b73ffffffffffffffffffffffffffffffffffffffff1614611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890613c95565b60405180910390fd5b670de0b6b3a76400006103e86005611fe7610c2c565b611ff19190613ce0565b611ffb9190613d4e565b6120059190613d4e565b811015612047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203e90614303565b60405180910390fd5b670de0b6b3a76400008161205b9190613ce0565b60098190555050565b60075481565b600a5481565b6120786123b0565b73ffffffffffffffffffffffffffffffffffffffff1661209661182f565b73ffffffffffffffffffffffffffffffffffffffff16146120ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e390613c95565b60405180910390fd5b670de0b6b3a7640000816121009190613ce0565b60088190555050565b600f5481565b6121176123b0565b73ffffffffffffffffffffffffffffffffffffffff1661213561182f565b73ffffffffffffffffffffffffffffffffffffffff161461218b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218290613c95565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6122366123b0565b73ffffffffffffffffffffffffffffffffffffffff1661225461182f565b73ffffffffffffffffffffffffffffffffffffffff16146122aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a190613c95565b60405180910390fd5b8060108190555050565b6122bc6123b0565b73ffffffffffffffffffffffffffffffffffffffff166122da61182f565b73ffffffffffffffffffffffffffffffffffffffff1614612330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232790613c95565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239590614391565b60405180910390fd5b6123a781612f53565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c9061441f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248a906144ad565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161256d91906138e6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125df9061453b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264d906145c9565b60405180910390fd5b5f810361266d5761266883835f6132e7565b612f4e565b600b5f9054906101000a900460ff1615612b785761268961182f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126f757506126c761182f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561272f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612769575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127825750600560149054906101000a900460ff16155b15612b775743600e54600c546127989190613e9a565b106127ae5760126010819055506012600f819055505b600b60019054906101000a900460ff1661289d5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061285d575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61289c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289390614631565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561293a575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129e157600754811115612984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297b906146bf565b60405180910390fd5b60095461299083611548565b8261299b9190613e9a565b11156129dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d390614727565b60405180910390fd5b612b76565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612a7e575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612acd57600754811115612ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abf906147b5565b60405180910390fd5b612b75565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612b7457600954612b2783611548565b82612b329190613e9a565b1115612b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6a90614727565b60405180910390fd5b5b5b5b5b5b5f612b8230611548565b90505f6008548210159050808015612ba65750600b60029054906101000a900460ff165b8015612bbf5750600560149054906101000a900460ff16155b8015612c12575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612c65575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612cb8575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d4957600360145f4381526020019081526020015f20541015612d48576001600560146101000a81548160ff021916908315150217905550612cfa61355c565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612d329190613e9a565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612df8575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612e01575f90505b5f8115612f3e5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612e5f57505f601054115b15612e9357612e8c6064612e7e6010548861362990919063ffffffff16565b61363e90919063ffffffff16565b9050612f1b565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612eea57505f600f54115b15612f1a57612f176064612f09600f548861362990919063ffffffff16565b61363e90919063ffffffff16565b90505b5b5f811115612f2f57612f2e8730836132e7565b5b8085612f3b91906147d3565b94505b612f498787876132e7565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561303257613031614806565b5b6040519080825280602002602001820160405280156130605781602001602082028036833780820191505090505b50905030815f815181106130775761307661405a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561311a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061313e9190614847565b816001815181106131525761315161405a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131b7307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846123b7565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613218959493929190614929565b5f604051808303815f87803b15801561322f575f80fd5b505af1158015613241573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334c9061453b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ba906145c9565b60405180910390fd5b6133ce838383613653565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613451576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613448906149f1565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546134df9190613e9a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161354391906138e6565b60405180910390a3613556848484613658565b50505050565b5f61356630611548565b90505f808203613577575050613627565b600a5482111561358757600a5491505b5f82905061359481613016565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516135dd906140fb565b5f6040518083038185875af1925050503d805f8114613617576040519150601f19603f3d011682016040523d82523d5f602084013e61361c565b606091505b505080935050505050505b565b5f81836136369190613ce0565b905092915050565b5f818361364b9190613d4e565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613694578082015181840152602081019050613679565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6136b98261365d565b6136c38185613667565b93506136d3818560208601613677565b6136dc8161369f565b840191505092915050565b5f6020820190508181035f8301526136ff81846136af565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6137388261370f565b9050919050565b6137488161372e565b8114613752575f80fd5b50565b5f813590506137638161373f565b92915050565b5f819050919050565b61377b81613769565b8114613785575f80fd5b50565b5f8135905061379681613772565b92915050565b5f80604083850312156137b2576137b1613707565b5b5f6137bf85828601613755565b92505060206137d085828601613788565b9150509250929050565b5f8115159050919050565b6137ee816137da565b82525050565b5f6020820190506138075f8301846137e5565b92915050565b5f6020828403121561382257613821613707565b5b5f61382f84828501613755565b91505092915050565b5f6020828403121561384d5761384c613707565b5b5f61385a84828501613788565b91505092915050565b5f819050919050565b5f61388661388161387c8461370f565b613863565b61370f565b9050919050565b5f6138978261386c565b9050919050565b5f6138a88261388d565b9050919050565b6138b88161389e565b82525050565b5f6020820190506138d15f8301846138af565b92915050565b6138e081613769565b82525050565b5f6020820190506138f95f8301846138d7565b92915050565b5f805f6060848603121561391657613915613707565b5b5f61392386828701613755565b935050602061393486828701613755565b925050604061394586828701613788565b9150509250925092565b6139588161372e565b82525050565b5f6020820190506139715f83018461394f565b92915050565b5f60ff82169050919050565b61398c81613977565b82525050565b5f6020820190506139a55f830184613983565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126139cc576139cb6139ab565b5b8235905067ffffffffffffffff8111156139e9576139e86139af565b5b602083019150836020820283011115613a0557613a046139b3565b5b9250929050565b5f8083601f840112613a2157613a206139ab565b5b8235905067ffffffffffffffff811115613a3e57613a3d6139af565b5b602083019150836020820283011115613a5a57613a596139b3565b5b9250929050565b5f805f8060408587031215613a7957613a78613707565b5b5f85013567ffffffffffffffff811115613a9657613a9561370b565b5b613aa2878288016139b7565b9450945050602085013567ffffffffffffffff811115613ac557613ac461370b565b5b613ad187828801613a0c565b925092505092959194509250565b5f8060408385031215613af557613af4613707565b5b5f613b0285828601613788565b9250506020613b1385828601613788565b9150509250929050565b613b26816137da565b8114613b30575f80fd5b50565b5f81359050613b4181613b1d565b92915050565b5f8060408385031215613b5d57613b5c613707565b5b5f613b6a85828601613755565b9250506020613b7b85828601613b33565b9150509250929050565b5f60208284031215613b9a57613b99613707565b5b5f613ba784828501613b33565b91505092915050565b5f8060408385031215613bc657613bc5613707565b5b5f613bd385828601613755565b9250506020613be485828601613755565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613c3257607f821691505b602082108103613c4557613c44613bee565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613c7f602083613667565b9150613c8a82613c4b565b602082019050919050565b5f6020820190508181035f830152613cac81613c73565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613cea82613769565b9150613cf583613769565b9250828202613d0381613769565b91508282048414831517613d1a57613d19613cb3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d5882613769565b9150613d6383613769565b925082613d7357613d72613d21565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613dd8602f83613667565b9150613de382613d7e565b604082019050919050565b5f6020820190508181035f830152613e0581613dcc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613e66602883613667565b9150613e7182613e0c565b604082019050919050565b5f6020820190508181035f830152613e9381613e5a565b9050919050565b5f613ea482613769565b9150613eaf83613769565b9250828201905080821115613ec757613ec6613cb3565b5b92915050565b5f819050919050565b5f613ef0613eeb613ee684613ecd565b613863565b613769565b9050919050565b613f0081613ed6565b82525050565b5f60c082019050613f195f83018961394f565b613f2660208301886138d7565b613f336040830187613ef7565b613f406060830186613ef7565b613f4d608083018561394f565b613f5a60a08301846138d7565b979650505050505050565b5f81519050613f7381613772565b92915050565b5f805f60608486031215613f9057613f8f613707565b5b5f613f9d86828701613f65565b9350506020613fae86828701613f65565b9250506040613fbf86828701613f65565b9150509250925092565b5f604082019050613fdc5f83018561394f565b613fe960208301846138d7565b9392505050565b5f81519050613ffe81613b1d565b92915050565b5f6020828403121561401957614018613707565b5b5f61402684828501613ff0565b91505092915050565b5f6020828403121561404457614043613707565b5b5f61405184828501613f65565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61409182613769565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140c3576140c2613cb3565b5b600182019050919050565b5f81905092915050565b50565b5f6140e65f836140ce565b91506140f1826140d8565b5f82019050919050565b5f614105826140db565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f614143600c83613667565b915061414e8261410f565b602082019050919050565b5f6020820190508181035f83015261417081614137565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6141d1603983613667565b91506141dc82614177565b604082019050919050565b5f6020820190508181035f8301526141fe816141c5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61425f602583613667565b915061426a82614205565b604082019050919050565b5f6020820190508181035f83015261428c81614253565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f6142ed602483613667565b91506142f882614293565b604082019050919050565b5f6020820190508181035f83015261431a816142e1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61437b602683613667565b915061438682614321565b604082019050919050565b5f6020820190508181035f8301526143a88161436f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614409602483613667565b9150614414826143af565b604082019050919050565b5f6020820190508181035f830152614436816143fd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614497602283613667565b91506144a28261443d565b604082019050919050565b5f6020820190508181035f8301526144c48161448b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614525602583613667565b9150614530826144cb565b604082019050919050565b5f6020820190508181035f83015261455281614519565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6145b3602383613667565b91506145be82614559565b604082019050919050565b5f6020820190508181035f8301526145e0816145a7565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61461b601683613667565b9150614626826145e7565b602082019050919050565b5f6020820190508181035f8301526146488161460f565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6146a9603583613667565b91506146b48261464f565b604082019050919050565b5f6020820190508181035f8301526146d68161469d565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614711601383613667565b915061471c826146dd565b602082019050919050565b5f6020820190508181035f83015261473e81614705565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61479f603683613667565b91506147aa82614745565b604082019050919050565b5f6020820190508181035f8301526147cc81614793565b9050919050565b5f6147dd82613769565b91506147e883613769565b9250828203905081811115614800576147ff613cb3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506148418161373f565b92915050565b5f6020828403121561485c5761485b613707565b5b5f61486984828501614833565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6148a48161372e565b82525050565b5f6148b5838361489b565b60208301905092915050565b5f602082019050919050565b5f6148d782614872565b6148e1818561487c565b93506148ec8361488c565b805f5b8381101561491c57815161490388826148aa565b975061490e836148c1565b9250506001810190506148ef565b5085935050505092915050565b5f60a08201905061493c5f8301886138d7565b6149496020830187613ef7565b818103604083015261495b81866148cd565b905061496a606083018561394f565b61497760808301846138d7565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6149db602683613667565b91506149e682614981565b604082019050919050565b5f6020820190508181035f830152614a08816149cf565b905091905056fea26469706673582212201cb9a94d41ccfa736cc6566984ca00ead2350311a31f96ec119bde79e14c646d64736f6c63430008150033

Deployed Bytecode Sourcemap

11719:11237:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7227:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8141:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12528:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15142:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11793:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7548:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15268:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8318:458;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11896:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7447:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8784:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14366:535;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22115:246;;;;;;;;;;;;;:::i;:::-;;11851:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12178:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17926:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12432:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17564:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12258:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16717:149;;;;;;;;;;;;;:::i;:::-;;7664:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6273:103;;;;;;;;;;;;;:::i;:::-;;17322:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15948:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16486:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6050:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16188:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7335:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12366:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16874:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9007:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15745:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7799:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17710:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12600:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12218:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16296:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15516:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12028:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12141:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15000:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12396:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14909:83;;;;;;;;;;;;;:::i;:::-;;7982:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12070:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17442:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6384:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12110:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7227:100;7281:13;7314:5;7307:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7227:100;:::o;8141:169::-;8224:4;8241:39;8250:12;:10;:12::i;:::-;8264:7;8273:6;8241:8;:39::i;:::-;8298:4;8291:11;;8141:169;;;;:::o;12528:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;15142:118::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15243:8:::1;15230:9;:22;;;;:::i;:::-;15214:13;:38;;;;15142:118:::0;:::o;11793:51::-;;;:::o;7548:108::-;7609:7;7636:12;;7629:19;;7548:108;:::o;15268:240::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15391:4:::1;15383;15378:1;15362:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15361:26;;;;:::i;:::-;15360:35;;;;:::i;:::-;15350:6;:45;;15342:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;15491:8;15481:6;:19;;;;:::i;:::-;15458:20;:42;;;;15268:240:::0;:::o;8318:458::-;8424:4;8441:36;8451:6;8459:9;8470:6;8441:9;:36::i;:::-;8490:24;8517:11;:19;8529:6;8517:19;;;;;;;;;;;;;;;:33;8537:12;:10;:12::i;:::-;8517:33;;;;;;;;;;;;;;;;8490:60;;8589:6;8569:16;:26;;8561:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8676:57;8685:6;8693:12;:10;:12::i;:::-;8726:6;8707:16;:25;8676:8;:57::i;:::-;8764:4;8757:11;;;8318:458;;;;;:::o;11896:53::-;11942:6;11896:53;:::o;7447:93::-;7505:5;7530:2;7523:9;;7447:93;:::o;8784:215::-;8872:4;8889:80;8898:12;:10;:12::i;:::-;8912:7;8958:10;8921:11;:25;8933:12;:10;:12::i;:::-;8921:25;;;;;;;;;;;;;;;:34;8947:7;8921:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8889:8;:80::i;:::-;8987:4;8980:11;;8784:215;;;;:::o;14366:535::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14441:64:::1;14458:4;14473:15;14491:13;:11;:13::i;:::-;14441:8;:64::i;:::-;14516:15;:31;;;14555:21;14586:4;14592:24;14610:4;14592:9;:24::i;:::-;14617:1;14619::::0;14621:7:::1;:5;:7::i;:::-;14629:15;14516:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14663:13;14656:29;;;14694:15;14712:14;14656:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14749:7;14740:6;:16;;;;14783:4;14767:13;;:20;;;;;;;;;;;;;;;;;;14812:4;14798:11;;:18;;;;;;;;;;;;;;;;;;14840:12;14827:10;:25;;;;14878:15;14863:12;:30;;;;14366:535:::0;:::o;22115:246::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22165:15:::1;22198:4;22183:31;;;22223:4;22183:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22165:64;;22255:4;22240:30;;;22271:10;22283:7;22240:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22310:10;22302:28;;:51;22331:21;22302:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22154:207;22115:246::o:0;11851:38::-;;;:::o;12178:33::-;;;;;;;;;;;;;:::o;17926:346::-;18048:1;18029:9;;:16;;:20;:58;;;;;18071:9;;:16;;18053:7;;:14;;:34;18029:58;18021:67;;;;;;18099:12;18114:10;18099:25;;18142:9;18137:128;18161:9;;:16;;18157:1;:20;18137:128;;;18199:54;18209:4;18215:9;;18225:1;18215:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18243:8;18229:7;;18237:1;18229:10;;;;;;;:::i;:::-;;;;;;;;:23;;;;:::i;:::-;18199:9;:54::i;:::-;18179:3;;;;;:::i;:::-;;;;18137:128;;;;18010:262;17926:346;;;;:::o;12432:28::-;;;;:::o;17564:138::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17658:4:::1;17643:12;:19;;;;17689:5;17673:13;:21;;;;17564:138:::0;;:::o;12258:31::-;;;;;;;;;;;;;:::o;16717:149::-;16759:12;16803:15;;;;;;;;;;;16795:29;;16832:21;16795:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16782:76;;;;;16748:118;16717:149::o;7664:127::-;7738:7;7765:9;:18;7775:7;7765:18;;;;;;;;;;;;;;;;7758:25;;7664:127;;;:::o;6273:103::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6338:30:::1;6365:1;6338:18;:30::i;:::-;6273:103::o:0;17322:112::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17413:13:::1;17398:12;:28;;;;17322:112:::0;:::o;15948:144::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16080:4:::1;16038:31;:39;16070:6;16038:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15948:144:::0;;:::o;16486:223::-;16566:15;;;;;;;;;;;16550:31;;:12;:10;:12::i;:::-;:31;;;16542:40;;;;;;16611:24;16629:4;16611:9;:24::i;:::-;16601:6;:34;;:48;;;;;16648:1;16639:6;:10;16601:48;16593:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16677:24;16694:6;16677:16;:24::i;:::-;16486:223;:::o;6050:87::-;6096:7;6123:6;;;;;;;;;;;6116:13;;6050:87;:::o;16188:100::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16273:7:::1;16259:11;;:21;;;;;;;;;;;;;;;;;;16188:100:::0;:::o;7335:104::-;7391:13;7424:7;7417:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7335:104;:::o;12366:21::-;;;;:::o;16874:244::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16981:13:::1;16973:21;;:4;:21;;::::0;16965:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17069:41;17098:4;17104:5;17069:28;:41::i;:::-;16874:244:::0;;:::o;9007:413::-;9100:4;9117:24;9144:11;:25;9156:12;:10;:12::i;:::-;9144:25;;;;;;;;;;;;;;;:34;9170:7;9144:34;;;;;;;;;;;;;;;;9117:61;;9217:15;9197:16;:35;;9189:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9310:67;9319:12;:10;:12::i;:::-;9333:7;9361:15;9342:16;:34;9310:8;:67::i;:::-;9408:4;9401:11;;;9007:413;;;;:::o;15745:195::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15877:4:::1;15831:31;:43;15863:10;15831:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;15928:4;15894:19;:31;15914:10;15894:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;15745:195:::0;;:::o;7799:175::-;7885:4;7902:42;7912:12;:10;:12::i;:::-;7926:9;7937:6;7902:9;:42::i;:::-;7962:4;7955:11;;7799:175;;;;:::o;17710:208::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17847:15:::1;;;;;;;;;;;17804:59;;17827:18;17804:59;;;;;;;;;;;;17892:18;17874:15;;:36;;;;;;;;;;;;;;;;;;17710:208:::0;:::o;12600:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;12218:33::-;;;;;;;;;;;;;:::o;16296:182::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16412:8:::1;16381:19;:28;16401:7;16381:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16452:7;16436:34;;;16461:8;16436:34;;;;;;:::i;:::-;;;;;;;;16296:182:::0;;:::o;15516:221::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15642:4:::1;15634;15629:1;15613:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15612:26;;;;:::i;:::-;15611:35;;;;:::i;:::-;15601:6;:45;;15593:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15720:8;15710:6;:19;;;;:::i;:::-;15698:9;:31;;;;15516:221:::0;:::o;12028:35::-;;;;:::o;12141:28::-;;;;:::o;15000:134::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15117:8:::1;15104:9;:22;;;;:::i;:::-;15083:18;:43;;;;15000:134:::0;:::o;12396:27::-;;;;:::o;14909:83::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14979:5:::1;14962:14;;:22;;;;;;;;;;;;;;;;;;14909:83::o:0;7982:151::-;8071:7;8098:11;:18;8110:5;8098:18;;;;;;;;;;;;;;;:27;8117:7;8098:27;;;;;;;;;;;;;;;;8091:34;;7982:151;;;;:::o;12070:33::-;;;;:::o;17442:114::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17535:13:::1;17519;:29;;;;17442:114:::0;:::o;6384:201::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6493:1:::1;6473:22;;:8;:22;;::::0;6465:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6549:28;6568:8;6549:18;:28::i;:::-;6384:201:::0;:::o;12110:24::-;;;;:::o;5566:98::-;5619:7;5646:10;5639:17;;5566:98;:::o;11141:346::-;11260:1;11243:19;;:5;:19;;;11235:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11341:1;11322:21;;:7;:21;;;11314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11425:6;11395:11;:18;11407:5;11395:18;;;;;;;;;;;;;;;:27;11414:7;11395:27;;;;;;;;;;;;;;;:36;;;;11463:7;11447:32;;11456:5;11447:32;;;11472:6;11447:32;;;;;;:::i;:::-;;;;;;;;11141:346;;;:::o;18280:3198::-;18394:1;18378:18;;:4;:18;;;18370:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18471:1;18457:16;;:2;:16;;;18449:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18540:1;18530:6;:11;18526:93;;18558:28;18574:4;18580:2;18584:1;18558:15;:28::i;:::-;18601:7;;18526:93;18635:14;;;;;;;;;;;18631:1322;;;18678:7;:5;:7::i;:::-;18670:15;;:4;:15;;;;:32;;;;;18695:7;:5;:7::i;:::-;18689:13;;:2;:13;;;;18670:32;:52;;;;;18720:1;18706:16;;:2;:16;;;;18670:52;:77;;;;;18740:6;18726:21;;:2;:21;;;;18670:77;:90;;;;;18752:8;;;;;;;;;;;18751:9;18670:90;18666:1276;;;18810:12;18799:6;;18786:10;;:19;;;;:::i;:::-;18785:37;18781:195;;18914:2;18898:13;:18;;;;18954:2;18939:12;:17;;;;18781:195;19001:13;;;;;;;;;;;18996:150;;19047:19;:25;19067:4;19047:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19076:19;:23;19096:2;19076:23;;;;;;;;;;;;;;;;;;;;;;;;;19047:52;19039:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;18996:150;19198:25;:31;19224:4;19198:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19234:31;:35;19266:2;19234:35;;;;;;;;;;;;;;;;;;;;;;;;;19233:36;19198:71;19194:733;;;19312:20;;19302:6;:30;;19294:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19447:9;;19430:13;19440:2;19430:9;:13::i;:::-;19421:6;:22;;;;:::i;:::-;:35;;19413:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19194:733;;;19556:25;:29;19582:2;19556:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19590:31;:37;19622:4;19590:37;;;;;;;;;;;;;;;;;;;;;;;;;19589:38;19556:71;19552:375;;;19670:20;;19660:6;:30;;19652:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19552:375;;;19780:31;:35;19812:2;19780:35;;;;;;;;;;;;;;;;;;;;;;;;;19775:152;;19874:9;;19857:13;19867:2;19857:9;:13::i;:::-;19848:6;:22;;;;:::i;:::-;:35;;19840:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19775:152;19552:375;19194:733;18666:1276;18631:1322;19965:28;19996:24;20014:4;19996:9;:24::i;:::-;19965:55;;20033:12;20072:18;;20048:20;:42;;20033:57;;20121:7;:22;;;;;20132:11;;;;;;;;;;;20121:22;:35;;;;;20148:8;;;;;;;;;;;20147:9;20121:35;:71;;;;;20161:25;:31;20187:4;20161:31;;;;;;;;;;;;;;;;;;;;;;;;;20160:32;20121:71;:101;;;;;20197:19;:25;20217:4;20197:25;;;;;;;;;;;;;;;;;;;;;;;;;20196:26;20121:101;:146;;;;;20244:19;:23;20264:2;20244:23;;;;;;;;;;;;;;;;;;;;;;;;;20243:24;20121:146;20103:468;;;20363:1;20336:10;:24;20347:12;20336:24;;;;;;;;;;;;:28;20332:228;;;20396:4;20385:8;;:15;;;;;;;;;;;;;;;;;;20421:10;:8;:10::i;:::-;20463:5;20452:8;;:16;;;;;;;;;;;;;;;;;;20543:1;20516:10;:24;20527:12;20516:24;;;;;;;;;;;;:28;;;;:::i;:::-;20489:10;:24;20500:12;20489:24;;;;;;;;;;;:55;;;;20332:228;20103:468;20583:12;20599:8;;;;;;;;;;;20598:9;20583:24;;20709:19;:25;20729:4;20709:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20738:19;:23;20758:2;20738:23;;;;;;;;;;;;;;;;;;;;;;;;;20709:52;20705:100;;;20788:5;20778:15;;20705:100;20817:12;20922:7;20918:507;;;20974:25;:29;21000:2;20974:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;21023:1;21007:13;;:17;20974:50;20970:306;;;21052:34;21082:3;21052:25;21063:13;;21052:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;21045:41;;20970:306;;;21148:25;:31;21174:4;21148:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;21198:1;21183:12;;:16;21148:51;21144:132;;;21227:33;21256:3;21227:24;21238:12;;21227:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;21220:40;;21144:132;20970:306;21303:1;21296:4;:8;21292:91;;;21325:42;21341:4;21355;21362;21325:15;:42::i;:::-;21292:91;21409:4;21399:14;;;;;:::i;:::-;;;20918:507;21437:33;21453:4;21459:2;21463:6;21437:15;:33::i;:::-;18359:3119;;;;18280:3198;;;;:::o;6593:191::-;6667:16;6686:6;;;;;;;;;;;6667:25;;6712:8;6703:6;;:17;;;;;;;;;;;;;;;;;;6767:8;6736:40;;6757:8;6736:40;;;;;;;;;;;;6656:128;6593:191;:::o;21486:589::-;21612:21;21650:1;21636:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21612:40;;21681:4;21663;21668:1;21663:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21707:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21697:4;21702:1;21697:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21742:62;21759:4;21774:15;21792:11;21742:8;:62::i;:::-;21843:15;:66;;;21924:11;21950:1;21994:4;22021;22041:15;21843:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21541:534;21486:589;:::o;17126:188::-;17243:5;17209:25;:31;17235:4;17209:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17300:5;17266:40;;17294:4;17266:40;;;;;;;;;;;;17126:188;;:::o;9428:699::-;9552:1;9534:20;;:6;:20;;;9526:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9636:1;9615:23;;:9;:23;;;9607:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9691:47;9712:6;9720:9;9731:6;9691:20;:47::i;:::-;9751:21;9775:9;:17;9785:6;9775:17;;;;;;;;;;;;;;;;9751:41;;9828:6;9811:13;:23;;9803:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9949:6;9933:13;:22;9913:9;:17;9923:6;9913:17;;;;;;;;;;;;;;;:42;;;;10001:6;9977:9;:20;9987:9;9977:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10042:9;10025:35;;10034:6;10025:35;;;10053:6;10025:35;;;;;;:::i;:::-;;;;;;;;10073:46;10093:6;10101:9;10112:6;10073:19;:46::i;:::-;9515:612;9428:699;;;:::o;22369:584::-;22408:23;22434:24;22452:4;22434:9;:24::i;:::-;22408:50;;22469:12;22517:1;22498:15;:20;22494:59;;22535:7;;;;22494:59;22587:13;;22569:15;:31;22565:95;;;22635:13;;22617:31;;22565:95;22723:26;22752:15;22723:44;;22780:36;22797:18;22780:16;:36::i;:::-;22829:16;22848:21;22829:40;;22903:15;;;;;;;;;;;22895:29;;22932:8;22895:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22882:63;;;;;22397:556;;;;22369:584;:::o;3574:98::-;3632:7;3663:1;3659;:5;;;;:::i;:::-;3652:12;;3574:98;;;;:::o;3680:::-;3738:7;3769:1;3765;:5;;;;:::i;:::-;3758:12;;3680:98;;;;:::o;11495:91::-;;;;:::o;11594:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:::-;3840:6;3889:2;3877:9;3868:7;3864:23;3860:32;3857:119;;;3895:79;;:::i;:::-;3857:119;4015:1;4040:53;4085:7;4076:6;4065:9;4061:22;4040:53;:::i;:::-;4030:63;;3986:117;3781:329;;;;:::o;4116:60::-;4144:3;4165:5;4158:12;;4116:60;;;:::o;4182:142::-;4232:9;4265:53;4283:34;4292:24;4310:5;4292:24;:::i;:::-;4283:34;:::i;:::-;4265:53;:::i;:::-;4252:66;;4182:142;;;:::o;4330:126::-;4380:9;4413:37;4444:5;4413:37;:::i;:::-;4400:50;;4330:126;;;:::o;4462:152::-;4538:9;4571:37;4602:5;4571:37;:::i;:::-;4558:50;;4462:152;;;:::o;4620:183::-;4733:63;4790:5;4733:63;:::i;:::-;4728:3;4721:76;4620:183;;:::o;4809:274::-;4928:4;4966:2;4955:9;4951:18;4943:26;;4979:97;5073:1;5062:9;5058:17;5049:6;4979:97;:::i;:::-;4809:274;;;;:::o;5089:118::-;5176:24;5194:5;5176:24;:::i;:::-;5171:3;5164:37;5089:118;;:::o;5213:222::-;5306:4;5344:2;5333:9;5329:18;5321:26;;5357:71;5425:1;5414:9;5410:17;5401:6;5357:71;:::i;:::-;5213:222;;;;:::o;5441:619::-;5518:6;5526;5534;5583:2;5571:9;5562:7;5558:23;5554:32;5551:119;;;5589:79;;:::i;:::-;5551:119;5709:1;5734:53;5779:7;5770:6;5759:9;5755:22;5734:53;:::i;:::-;5724:63;;5680:117;5836:2;5862:53;5907:7;5898:6;5887:9;5883:22;5862:53;:::i;:::-;5852:63;;5807:118;5964:2;5990:53;6035:7;6026:6;6015:9;6011:22;5990:53;:::i;:::-;5980:63;;5935:118;5441:619;;;;;:::o;6066:118::-;6153:24;6171:5;6153:24;:::i;:::-;6148:3;6141:37;6066:118;;:::o;6190:222::-;6283:4;6321:2;6310:9;6306:18;6298:26;;6334:71;6402:1;6391:9;6387:17;6378:6;6334:71;:::i;:::-;6190:222;;;;:::o;6418:86::-;6453:7;6493:4;6486:5;6482:16;6471:27;;6418:86;;;:::o;6510:112::-;6593:22;6609:5;6593:22;:::i;:::-;6588:3;6581:35;6510:112;;:::o;6628:214::-;6717:4;6755:2;6744:9;6740:18;6732:26;;6768:67;6832:1;6821:9;6817:17;6808:6;6768:67;:::i;:::-;6628:214;;;;:::o;6848:117::-;6957:1;6954;6947:12;6971:117;7080:1;7077;7070:12;7094:117;7203:1;7200;7193:12;7234:568;7307:8;7317:6;7367:3;7360:4;7352:6;7348:17;7344:27;7334:122;;7375:79;;:::i;:::-;7334:122;7488:6;7475:20;7465:30;;7518:18;7510:6;7507:30;7504:117;;;7540:79;;:::i;:::-;7504:117;7654:4;7646:6;7642:17;7630:29;;7708:3;7700:4;7692:6;7688:17;7678:8;7674:32;7671:41;7668:128;;;7715:79;;:::i;:::-;7668:128;7234:568;;;;;:::o;7825:::-;7898:8;7908:6;7958:3;7951:4;7943:6;7939:17;7935:27;7925:122;;7966:79;;:::i;:::-;7925:122;8079:6;8066:20;8056:30;;8109:18;8101:6;8098:30;8095:117;;;8131:79;;:::i;:::-;8095:117;8245:4;8237:6;8233:17;8221:29;;8299:3;8291:4;8283:6;8279:17;8269:8;8265:32;8262:41;8259:128;;;8306:79;;:::i;:::-;8259:128;7825:568;;;;;:::o;8399:934::-;8521:6;8529;8537;8545;8594:2;8582:9;8573:7;8569:23;8565:32;8562:119;;;8600:79;;:::i;:::-;8562:119;8748:1;8737:9;8733:17;8720:31;8778:18;8770:6;8767:30;8764:117;;;8800:79;;:::i;:::-;8764:117;8913:80;8985:7;8976:6;8965:9;8961:22;8913:80;:::i;:::-;8895:98;;;;8691:312;9070:2;9059:9;9055:18;9042:32;9101:18;9093:6;9090:30;9087:117;;;9123:79;;:::i;:::-;9087:117;9236:80;9308:7;9299:6;9288:9;9284:22;9236:80;:::i;:::-;9218:98;;;;9013:313;8399:934;;;;;;;:::o;9339:474::-;9407:6;9415;9464:2;9452:9;9443:7;9439:23;9435:32;9432:119;;;9470:79;;:::i;:::-;9432:119;9590:1;9615:53;9660:7;9651:6;9640:9;9636:22;9615:53;:::i;:::-;9605:63;;9561:117;9717:2;9743:53;9788:7;9779:6;9768:9;9764:22;9743:53;:::i;:::-;9733:63;;9688:118;9339:474;;;;;:::o;9819:116::-;9889:21;9904:5;9889:21;:::i;:::-;9882:5;9879:32;9869:60;;9925:1;9922;9915:12;9869:60;9819:116;:::o;9941:133::-;9984:5;10022:6;10009:20;10000:29;;10038:30;10062:5;10038:30;:::i;:::-;9941:133;;;;:::o;10080:468::-;10145:6;10153;10202:2;10190:9;10181:7;10177:23;10173:32;10170:119;;;10208:79;;:::i;:::-;10170:119;10328:1;10353:53;10398:7;10389:6;10378:9;10374:22;10353:53;:::i;:::-;10343:63;;10299:117;10455:2;10481:50;10523:7;10514:6;10503:9;10499:22;10481:50;:::i;:::-;10471:60;;10426:115;10080:468;;;;;:::o;10554:323::-;10610:6;10659:2;10647:9;10638:7;10634:23;10630:32;10627:119;;;10665:79;;:::i;:::-;10627:119;10785:1;10810:50;10852:7;10843:6;10832:9;10828:22;10810:50;:::i;:::-;10800:60;;10756:114;10554:323;;;;:::o;10883:474::-;10951:6;10959;11008:2;10996:9;10987:7;10983:23;10979:32;10976:119;;;11014:79;;:::i;:::-;10976:119;11134:1;11159:53;11204:7;11195:6;11184:9;11180:22;11159:53;:::i;:::-;11149:63;;11105:117;11261:2;11287:53;11332:7;11323:6;11312:9;11308:22;11287:53;:::i;:::-;11277:63;;11232:118;10883:474;;;;;:::o;11363:180::-;11411:77;11408:1;11401:88;11508:4;11505:1;11498:15;11532:4;11529:1;11522:15;11549:320;11593:6;11630:1;11624:4;11620:12;11610:22;;11677:1;11671:4;11667:12;11698:18;11688:81;;11754:4;11746:6;11742:17;11732:27;;11688:81;11816:2;11808:6;11805:14;11785:18;11782:38;11779:84;;11835:18;;:::i;:::-;11779:84;11600:269;11549:320;;;:::o;11875:182::-;12015:34;12011:1;12003:6;11999:14;11992:58;11875:182;:::o;12063:366::-;12205:3;12226:67;12290:2;12285:3;12226:67;:::i;:::-;12219:74;;12302:93;12391:3;12302:93;:::i;:::-;12420:2;12415:3;12411:12;12404:19;;12063:366;;;:::o;12435:419::-;12601:4;12639:2;12628:9;12624:18;12616:26;;12688:9;12682:4;12678:20;12674:1;12663:9;12659:17;12652:47;12716:131;12842:4;12716:131;:::i;:::-;12708:139;;12435:419;;;:::o;12860:180::-;12908:77;12905:1;12898:88;13005:4;13002:1;12995:15;13029:4;13026:1;13019:15;13046:410;13086:7;13109:20;13127:1;13109:20;:::i;:::-;13104:25;;13143:20;13161:1;13143:20;:::i;:::-;13138:25;;13198:1;13195;13191:9;13220:30;13238:11;13220:30;:::i;:::-;13209:41;;13399:1;13390:7;13386:15;13383:1;13380:22;13360:1;13353:9;13333:83;13310:139;;13429:18;;:::i;:::-;13310:139;13094:362;13046:410;;;;:::o;13462:180::-;13510:77;13507:1;13500:88;13607:4;13604:1;13597:15;13631:4;13628:1;13621:15;13648:185;13688:1;13705:20;13723:1;13705:20;:::i;:::-;13700:25;;13739:20;13757:1;13739:20;:::i;:::-;13734:25;;13778:1;13768:35;;13783:18;;:::i;:::-;13768:35;13825:1;13822;13818:9;13813:14;;13648:185;;;;:::o;13839:234::-;13979:34;13975:1;13967:6;13963:14;13956:58;14048:17;14043:2;14035:6;14031:15;14024:42;13839:234;:::o;14079:366::-;14221:3;14242:67;14306:2;14301:3;14242:67;:::i;:::-;14235:74;;14318:93;14407:3;14318:93;:::i;:::-;14436:2;14431:3;14427:12;14420:19;;14079:366;;;:::o;14451:419::-;14617:4;14655:2;14644:9;14640:18;14632:26;;14704:9;14698:4;14694:20;14690:1;14679:9;14675:17;14668:47;14732:131;14858:4;14732:131;:::i;:::-;14724:139;;14451:419;;;:::o;14876:227::-;15016:34;15012:1;15004:6;15000:14;14993:58;15085:10;15080:2;15072:6;15068:15;15061:35;14876:227;:::o;15109:366::-;15251:3;15272:67;15336:2;15331:3;15272:67;:::i;:::-;15265:74;;15348:93;15437:3;15348:93;:::i;:::-;15466:2;15461:3;15457:12;15450:19;;15109:366;;;:::o;15481:419::-;15647:4;15685:2;15674:9;15670:18;15662:26;;15734:9;15728:4;15724:20;15720:1;15709:9;15705:17;15698:47;15762:131;15888:4;15762:131;:::i;:::-;15754:139;;15481:419;;;:::o;15906:191::-;15946:3;15965:20;15983:1;15965:20;:::i;:::-;15960:25;;15999:20;16017:1;15999:20;:::i;:::-;15994:25;;16042:1;16039;16035:9;16028:16;;16063:3;16060:1;16057:10;16054:36;;;16070:18;;:::i;:::-;16054:36;15906:191;;;;:::o;16103:85::-;16148:7;16177:5;16166:16;;16103:85;;;:::o;16194:158::-;16252:9;16285:61;16303:42;16312:32;16338:5;16312:32;:::i;:::-;16303:42;:::i;:::-;16285:61;:::i;:::-;16272:74;;16194:158;;;:::o;16358:147::-;16453:45;16492:5;16453:45;:::i;:::-;16448:3;16441:58;16358:147;;:::o;16511:807::-;16760:4;16798:3;16787:9;16783:19;16775:27;;16812:71;16880:1;16869:9;16865:17;16856:6;16812:71;:::i;:::-;16893:72;16961:2;16950:9;16946:18;16937:6;16893:72;:::i;:::-;16975:80;17051:2;17040:9;17036:18;17027:6;16975:80;:::i;:::-;17065;17141:2;17130:9;17126:18;17117:6;17065:80;:::i;:::-;17155:73;17223:3;17212:9;17208:19;17199:6;17155:73;:::i;:::-;17238;17306:3;17295:9;17291:19;17282:6;17238:73;:::i;:::-;16511:807;;;;;;;;;:::o;17324:143::-;17381:5;17412:6;17406:13;17397:22;;17428:33;17455:5;17428:33;:::i;:::-;17324:143;;;;:::o;17473:663::-;17561:6;17569;17577;17626:2;17614:9;17605:7;17601:23;17597:32;17594:119;;;17632:79;;:::i;:::-;17594:119;17752:1;17777:64;17833:7;17824:6;17813:9;17809:22;17777:64;:::i;:::-;17767:74;;17723:128;17890:2;17916:64;17972:7;17963:6;17952:9;17948:22;17916:64;:::i;:::-;17906:74;;17861:129;18029:2;18055:64;18111:7;18102:6;18091:9;18087:22;18055:64;:::i;:::-;18045:74;;18000:129;17473:663;;;;;:::o;18142:332::-;18263:4;18301:2;18290:9;18286:18;18278:26;;18314:71;18382:1;18371:9;18367:17;18358:6;18314:71;:::i;:::-;18395:72;18463:2;18452:9;18448:18;18439:6;18395:72;:::i;:::-;18142:332;;;;;:::o;18480:137::-;18534:5;18565:6;18559:13;18550:22;;18581:30;18605:5;18581:30;:::i;:::-;18480:137;;;;:::o;18623:345::-;18690:6;18739:2;18727:9;18718:7;18714:23;18710:32;18707:119;;;18745:79;;:::i;:::-;18707:119;18865:1;18890:61;18943:7;18934:6;18923:9;18919:22;18890:61;:::i;:::-;18880:71;;18836:125;18623:345;;;;:::o;18974:351::-;19044:6;19093:2;19081:9;19072:7;19068:23;19064:32;19061:119;;;19099:79;;:::i;:::-;19061:119;19219:1;19244:64;19300:7;19291:6;19280:9;19276:22;19244:64;:::i;:::-;19234:74;;19190:128;18974:351;;;;:::o;19331:180::-;19379:77;19376:1;19369:88;19476:4;19473:1;19466:15;19500:4;19497:1;19490:15;19517:233;19556:3;19579:24;19597:5;19579:24;:::i;:::-;19570:33;;19625:66;19618:5;19615:77;19612:103;;19695:18;;:::i;:::-;19612:103;19742:1;19735:5;19731:13;19724:20;;19517:233;;;:::o;19756:147::-;19857:11;19894:3;19879:18;;19756:147;;;;:::o;19909:114::-;;:::o;20029:398::-;20188:3;20209:83;20290:1;20285:3;20209:83;:::i;:::-;20202:90;;20301:93;20390:3;20301:93;:::i;:::-;20419:1;20414:3;20410:11;20403:18;;20029:398;;;:::o;20433:379::-;20617:3;20639:147;20782:3;20639:147;:::i;:::-;20632:154;;20803:3;20796:10;;20433:379;;;:::o;20818:162::-;20958:14;20954:1;20946:6;20942:14;20935:38;20818:162;:::o;20986:366::-;21128:3;21149:67;21213:2;21208:3;21149:67;:::i;:::-;21142:74;;21225:93;21314:3;21225:93;:::i;:::-;21343:2;21338:3;21334:12;21327:19;;20986:366;;;:::o;21358:419::-;21524:4;21562:2;21551:9;21547:18;21539:26;;21611:9;21605:4;21601:20;21597:1;21586:9;21582:17;21575:47;21639:131;21765:4;21639:131;:::i;:::-;21631:139;;21358:419;;;:::o;21783:244::-;21923:34;21919:1;21911:6;21907:14;21900:58;21992:27;21987:2;21979:6;21975:15;21968:52;21783:244;:::o;22033:366::-;22175:3;22196:67;22260:2;22255:3;22196:67;:::i;:::-;22189:74;;22272:93;22361:3;22272:93;:::i;:::-;22390:2;22385:3;22381:12;22374:19;;22033:366;;;:::o;22405:419::-;22571:4;22609:2;22598:9;22594:18;22586:26;;22658:9;22652:4;22648:20;22644:1;22633:9;22629:17;22622:47;22686:131;22812:4;22686:131;:::i;:::-;22678:139;;22405:419;;;:::o;22830:224::-;22970:34;22966:1;22958:6;22954:14;22947:58;23039:7;23034:2;23026:6;23022:15;23015:32;22830:224;:::o;23060:366::-;23202:3;23223:67;23287:2;23282:3;23223:67;:::i;:::-;23216:74;;23299:93;23388:3;23299:93;:::i;:::-;23417:2;23412:3;23408:12;23401:19;;23060:366;;;:::o;23432:419::-;23598:4;23636:2;23625:9;23621:18;23613:26;;23685:9;23679:4;23675:20;23671:1;23660:9;23656:17;23649:47;23713:131;23839:4;23713:131;:::i;:::-;23705:139;;23432:419;;;:::o;23857:223::-;23997:34;23993:1;23985:6;23981:14;23974:58;24066:6;24061:2;24053:6;24049:15;24042:31;23857:223;:::o;24086:366::-;24228:3;24249:67;24313:2;24308:3;24249:67;:::i;:::-;24242:74;;24325:93;24414:3;24325:93;:::i;:::-;24443:2;24438:3;24434:12;24427:19;;24086:366;;;:::o;24458:419::-;24624:4;24662:2;24651:9;24647:18;24639:26;;24711:9;24705:4;24701:20;24697:1;24686:9;24682:17;24675:47;24739:131;24865:4;24739:131;:::i;:::-;24731:139;;24458:419;;;:::o;24883:225::-;25023:34;25019:1;25011:6;25007:14;25000:58;25092:8;25087:2;25079:6;25075:15;25068:33;24883:225;:::o;25114:366::-;25256:3;25277:67;25341:2;25336:3;25277:67;:::i;:::-;25270:74;;25353:93;25442:3;25353:93;:::i;:::-;25471:2;25466:3;25462:12;25455:19;;25114:366;;;:::o;25486:419::-;25652:4;25690:2;25679:9;25675:18;25667:26;;25739:9;25733:4;25729:20;25725:1;25714:9;25710:17;25703:47;25767:131;25893:4;25767:131;:::i;:::-;25759:139;;25486:419;;;:::o;25911:223::-;26051:34;26047:1;26039:6;26035:14;26028:58;26120:6;26115:2;26107:6;26103:15;26096:31;25911:223;:::o;26140:366::-;26282:3;26303:67;26367:2;26362:3;26303:67;:::i;:::-;26296:74;;26379:93;26468:3;26379:93;:::i;:::-;26497:2;26492:3;26488:12;26481:19;;26140:366;;;:::o;26512:419::-;26678:4;26716:2;26705:9;26701:18;26693:26;;26765:9;26759:4;26755:20;26751:1;26740:9;26736:17;26729:47;26793:131;26919:4;26793:131;:::i;:::-;26785:139;;26512:419;;;:::o;26937:221::-;27077:34;27073:1;27065:6;27061:14;27054:58;27146:4;27141:2;27133:6;27129:15;27122:29;26937:221;:::o;27164:366::-;27306:3;27327:67;27391:2;27386:3;27327:67;:::i;:::-;27320:74;;27403:93;27492:3;27403:93;:::i;:::-;27521:2;27516:3;27512:12;27505:19;;27164:366;;;:::o;27536:419::-;27702:4;27740:2;27729:9;27725:18;27717:26;;27789:9;27783:4;27779:20;27775:1;27764:9;27760:17;27753:47;27817:131;27943:4;27817:131;:::i;:::-;27809:139;;27536:419;;;:::o;27961:224::-;28101:34;28097:1;28089:6;28085:14;28078:58;28170:7;28165:2;28157:6;28153:15;28146:32;27961:224;:::o;28191:366::-;28333:3;28354:67;28418:2;28413:3;28354:67;:::i;:::-;28347:74;;28430:93;28519:3;28430:93;:::i;:::-;28548:2;28543:3;28539:12;28532:19;;28191:366;;;:::o;28563:419::-;28729:4;28767:2;28756:9;28752:18;28744:26;;28816:9;28810:4;28806:20;28802:1;28791:9;28787:17;28780:47;28844:131;28970:4;28844:131;:::i;:::-;28836:139;;28563:419;;;:::o;28988:222::-;29128:34;29124:1;29116:6;29112:14;29105:58;29197:5;29192:2;29184:6;29180:15;29173:30;28988:222;:::o;29216:366::-;29358:3;29379:67;29443:2;29438:3;29379:67;:::i;:::-;29372:74;;29455:93;29544:3;29455:93;:::i;:::-;29573:2;29568:3;29564:12;29557:19;;29216:366;;;:::o;29588:419::-;29754:4;29792:2;29781:9;29777:18;29769:26;;29841:9;29835:4;29831:20;29827:1;29816:9;29812:17;29805:47;29869:131;29995:4;29869:131;:::i;:::-;29861:139;;29588:419;;;:::o;30013:172::-;30153:24;30149:1;30141:6;30137:14;30130:48;30013:172;:::o;30191:366::-;30333:3;30354:67;30418:2;30413:3;30354:67;:::i;:::-;30347:74;;30430:93;30519:3;30430:93;:::i;:::-;30548:2;30543:3;30539:12;30532:19;;30191:366;;;:::o;30563:419::-;30729:4;30767:2;30756:9;30752:18;30744:26;;30816:9;30810:4;30806:20;30802:1;30791:9;30787:17;30780:47;30844:131;30970:4;30844:131;:::i;:::-;30836:139;;30563:419;;;:::o;30988:240::-;31128:34;31124:1;31116:6;31112:14;31105:58;31197:23;31192:2;31184:6;31180:15;31173:48;30988:240;:::o;31234:366::-;31376:3;31397:67;31461:2;31456:3;31397:67;:::i;:::-;31390:74;;31473:93;31562:3;31473:93;:::i;:::-;31591:2;31586:3;31582:12;31575:19;;31234:366;;;:::o;31606:419::-;31772:4;31810:2;31799:9;31795:18;31787:26;;31859:9;31853:4;31849:20;31845:1;31834:9;31830:17;31823:47;31887:131;32013:4;31887:131;:::i;:::-;31879:139;;31606:419;;;:::o;32031:169::-;32171:21;32167:1;32159:6;32155:14;32148:45;32031:169;:::o;32206:366::-;32348:3;32369:67;32433:2;32428:3;32369:67;:::i;:::-;32362:74;;32445:93;32534:3;32445:93;:::i;:::-;32563:2;32558:3;32554:12;32547:19;;32206:366;;;:::o;32578:419::-;32744:4;32782:2;32771:9;32767:18;32759:26;;32831:9;32825:4;32821:20;32817:1;32806:9;32802:17;32795:47;32859:131;32985:4;32859:131;:::i;:::-;32851:139;;32578:419;;;:::o;33003:241::-;33143:34;33139:1;33131:6;33127:14;33120:58;33212:24;33207:2;33199:6;33195:15;33188:49;33003:241;:::o;33250:366::-;33392:3;33413:67;33477:2;33472:3;33413:67;:::i;:::-;33406:74;;33489:93;33578:3;33489:93;:::i;:::-;33607:2;33602:3;33598:12;33591:19;;33250:366;;;:::o;33622:419::-;33788:4;33826:2;33815:9;33811:18;33803:26;;33875:9;33869:4;33865:20;33861:1;33850:9;33846:17;33839:47;33903:131;34029:4;33903:131;:::i;:::-;33895:139;;33622:419;;;:::o;34047:194::-;34087:4;34107:20;34125:1;34107:20;:::i;:::-;34102:25;;34141:20;34159:1;34141:20;:::i;:::-;34136:25;;34185:1;34182;34178:9;34170:17;;34209:1;34203:4;34200:11;34197:37;;;34214:18;;:::i;:::-;34197:37;34047:194;;;;:::o;34247:180::-;34295:77;34292:1;34285:88;34392:4;34389:1;34382:15;34416:4;34413:1;34406:15;34433:143;34490:5;34521:6;34515:13;34506:22;;34537:33;34564:5;34537:33;:::i;:::-;34433:143;;;;:::o;34582:351::-;34652:6;34701:2;34689:9;34680:7;34676:23;34672:32;34669:119;;;34707:79;;:::i;:::-;34669:119;34827:1;34852:64;34908:7;34899:6;34888:9;34884:22;34852:64;:::i;:::-;34842:74;;34798:128;34582:351;;;;:::o;34939:114::-;35006:6;35040:5;35034:12;35024:22;;34939:114;;;:::o;35059:184::-;35158:11;35192:6;35187:3;35180:19;35232:4;35227:3;35223:14;35208:29;;35059:184;;;;:::o;35249:132::-;35316:4;35339:3;35331:11;;35369:4;35364:3;35360:14;35352:22;;35249:132;;;:::o;35387:108::-;35464:24;35482:5;35464:24;:::i;:::-;35459:3;35452:37;35387:108;;:::o;35501:179::-;35570:10;35591:46;35633:3;35625:6;35591:46;:::i;:::-;35669:4;35664:3;35660:14;35646:28;;35501:179;;;;:::o;35686:113::-;35756:4;35788;35783:3;35779:14;35771:22;;35686:113;;;:::o;35835:732::-;35954:3;35983:54;36031:5;35983:54;:::i;:::-;36053:86;36132:6;36127:3;36053:86;:::i;:::-;36046:93;;36163:56;36213:5;36163:56;:::i;:::-;36242:7;36273:1;36258:284;36283:6;36280:1;36277:13;36258:284;;;36359:6;36353:13;36386:63;36445:3;36430:13;36386:63;:::i;:::-;36379:70;;36472:60;36525:6;36472:60;:::i;:::-;36462:70;;36318:224;36305:1;36302;36298:9;36293:14;;36258:284;;;36262:14;36558:3;36551:10;;35959:608;;;35835:732;;;;:::o;36573:831::-;36836:4;36874:3;36863:9;36859:19;36851:27;;36888:71;36956:1;36945:9;36941:17;36932:6;36888:71;:::i;:::-;36969:80;37045:2;37034:9;37030:18;37021:6;36969:80;:::i;:::-;37096:9;37090:4;37086:20;37081:2;37070:9;37066:18;37059:48;37124:108;37227:4;37218:6;37124:108;:::i;:::-;37116:116;;37242:72;37310:2;37299:9;37295:18;37286:6;37242:72;:::i;:::-;37324:73;37392:3;37381:9;37377:19;37368:6;37324:73;:::i;:::-;36573:831;;;;;;;;:::o;37410:225::-;37550:34;37546:1;37538:6;37534:14;37527:58;37619:8;37614:2;37606:6;37602:15;37595:33;37410:225;:::o;37641:366::-;37783:3;37804:67;37868:2;37863:3;37804:67;:::i;:::-;37797:74;;37880:93;37969:3;37880:93;:::i;:::-;37998:2;37993:3;37989:12;37982:19;;37641:366;;;:::o;38013:419::-;38179:4;38217:2;38206:9;38202:18;38194:26;;38266:9;38260:4;38256:20;38252:1;38241:9;38237:17;38230:47;38294:131;38420:4;38294:131;:::i;:::-;38286:139;;38013:419;;;:::o

Swarm Source

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