ETH Price: $3,335.07 (-1.18%)

Token

God (GOD)
 

Overview

Max Total Supply

1,000,000,000 GOD

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 GOD

Value
$0.00
0xF99d6d58a00b92aeD6A8185Ee9FE5A86c9caec69
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:
God

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 2024-02-15
*/

/*

Website:  https://godcoineth.xyz/
Twitter:  https://x.com/godcoin_eth
Telegram: https://t.co/A3GvPGkCaV

*/

// 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 God 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("God", "GOD") {
        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 = 20_000_000 * 1e18;
        maxWallet = 20_000_000 * 1e18;
        swapTokensAtAmount = 50_000 * 1e18;
        maxSwapAmount = 10_000_000 * 1e18;

        marketingWallet = msg.sender;

        uint256 amountLP = totalSupply.mul(90).div(100);
        uint256 amountTeam = totalSupply.mul(10).div(100);

        _mint(address(this), amountLP); 
        _mint(msg.sender, amountTeam);

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

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

    receive() external payable {}

    function openTrading() 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 = 2;
        tradingActive = true;
        swapEnabled = true;
        launchedAt = block.number;
        launchedTime = block.timestamp;
    }

    function removeLimits() 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 updateFees(uint256 _fee) external onlyOwner {
        buyTotalFees = _fee;
        sellTotalFees = _fee;
    }

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

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

    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) {
                    // Starting Taxes
                    sellTotalFees = 25;
                    buyTotalFees = 25;
                }

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

    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":"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":"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":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"_fee","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"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055505f600b60026101000a81548160ff0219169083151502179055503480156200005e575f80fd5b506040518060400160405280600381526020017f476f6400000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474f4400000000000000000000000000000000000000000000000000000000008152508160039081620000dc919062000c9a565b508060049081620000ee919062000c9a565b5050506200011162000105620004e060201b60201c565b620004e760201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90506200013c816001620005aa60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e0919062000de3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026c919062000de3565b6040518363ffffffff1660e01b81526004016200028b92919062000e24565b6020604051808303815f875af1158015620002a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000de3565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200031660a0516001620005aa60201b60201c565b6200032b60a05160016200069160201b60201c565b5f6b033b2e3c9fd0803ce800000090506a108b2a2c280290940000006007819055506a108b2a2c28029094000000600981905550690a968163f0a57b4000006008819055506a084595161401484a000000600a819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f620003ee6064620003df605a856200072f60201b90919060201c565b6200074660201b90919060201c565b90505f6200041c60646200040d600a866200072f60201b90919060201c565b6200074660201b90919060201c565b90506200043030836200075d60201b60201c565b6200044233826200075d60201b60201c565b6200046462000456620008cd60201b60201c565b6001620008f560201b60201c565b62000477306001620008f560201b60201c565b6200048c61dead6001620008f560201b60201c565b620004ae620004a0620008cd60201b60201c565b6001620005aa60201b60201c565b620004c1306001620005aa60201b60201c565b620004d661dead6001620005aa60201b60201c565b50505050620010b3565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005ba620004e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005e0620008cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006309062000ead565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f81836200073e919062000efa565b905092915050565b5f818362000755919062000f71565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c59062000ff6565b60405180910390fd5b620007e15f838362000a2c60201b60201c565b8060025f828254620007f4919062001016565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000848919062001016565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008ae919062001061565b60405180910390a3620008c95f838362000a3160201b60201c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000905620004e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200092b620008cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000984576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200097b9062000ead565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000a20919062001098565b60405180910390a25050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ab257607f821691505b60208210810362000ac85762000ac762000a6d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b2c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000aef565b62000b38868362000aef565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b8262000b7c62000b768462000b50565b62000b59565b62000b50565b9050919050565b5f819050919050565b62000b9d8362000b62565b62000bb562000bac8262000b89565b84845462000afb565b825550505050565b5f90565b62000bcb62000bbd565b62000bd881848462000b92565b505050565b5b8181101562000bff5762000bf35f8262000bc1565b60018101905062000bde565b5050565b601f82111562000c4e5762000c188162000ace565b62000c238462000ae0565b8101602085101562000c33578190505b62000c4b62000c428562000ae0565b83018262000bdd565b50505b505050565b5f82821c905092915050565b5f62000c705f198460080262000c53565b1980831691505092915050565b5f62000c8a838362000c5f565b9150826002028217905092915050565b62000ca58262000a36565b67ffffffffffffffff81111562000cc15762000cc062000a40565b5b62000ccd825462000a9a565b62000cda82828562000c03565b5f60209050601f83116001811462000d10575f841562000cfb578287015190505b62000d07858262000c7d565b86555062000d76565b601f19841662000d208662000ace565b5f5b8281101562000d495784890151825560018201915060208501945060208101905062000d22565b8683101562000d69578489015162000d65601f89168262000c5f565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000dad8262000d82565b9050919050565b62000dbf8162000da1565b811462000dca575f80fd5b50565b5f8151905062000ddd8162000db4565b92915050565b5f6020828403121562000dfb5762000dfa62000d7e565b5b5f62000e0a8482850162000dcd565b91505092915050565b62000e1e8162000da1565b82525050565b5f60408201905062000e395f83018562000e13565b62000e48602083018462000e13565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000e9560208362000e4f565b915062000ea28262000e5f565b602082019050919050565b5f6020820190508181035f83015262000ec68162000e87565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000f068262000b50565b915062000f138362000b50565b925082820262000f238162000b50565b9150828204841483151762000f3d5762000f3c62000ecd565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f7d8262000b50565b915062000f8a8362000b50565b92508262000f9d5762000f9c62000f44565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000fde601f8362000e4f565b915062000feb8262000fa8565b602082019050919050565b5f6020820190508181035f8301526200100f8162000fd0565b9050919050565b5f620010228262000b50565b91506200102f8362000b50565b92508282019050808211156200104a576200104962000ecd565b5b92915050565b6200105b8162000b50565b82525050565b5f602082019050620010765f83018462001050565b92915050565b5f8115159050919050565b62001092816200107c565b82525050565b5f602082019050620010ad5f83018462001087565b92915050565b60805160a0516147ee6200110d5f395f8181610eba0152818161161e0152611deb01525f8181610bd701528181611d0601528181611d3401528181611e2701528181612ec501528181612fa40152612fcb01526147ee5ff3fe60806040526004361061028b575f3560e01c8063881dce6011610159578063c0246668116100c0578063d85ba06311610079578063d85ba06314610968578063dd62ed3e14610992578063e2f45605146109ce578063eba4c333146109f8578063f2fde38b14610a20578063f8b45b0514610a4857610292565b8063c024666814610892578063c18bc195146108ba578063c8c8ebe4146108e2578063c9567bf91461090c578063cce987d414610916578063d257b34f1461094057610292565b8063a457c2d711610112578063a457c2d714610764578063a672990c146107a0578063a9059cbb146107c8578063aacebbe314610804578063b62496f51461082c578063bbc0c7421461086857610292565b8063881dce601461066e5780638da5cb5b14610696578063924de9b7146106c057806395d89b41146106e8578063967ff23e146107125780639a7a23d61461073c57610292565b806349bd5a5e116101fd57806370a08231116101b657806370a082311461058e578063715018a6146105ca57806371fc4688146105e0578063751039fc146106085780637571336a1461061e57806378dacee11461064657610292565b806349bd5a5e146104a85780634a62bb65146104d257806367243482146104fc5780636a486a8e146105245780636ddd17131461054e5780636fc3eaec1461057857610292565b806318160ddd1161024f57806318160ddd1461038a578063203e727e146103b457806323b872dd146103dc57806327c8f83514610418578063313ce56714610442578063395093511461046c57610292565b806306fdde0314610296578063095ea7b3146102c057806310d5de53146102fc578063150074a3146103385780631694505e1461036057610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610a72565b6040516102b791906134f9565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e191906135ae565b610b02565b6040516102f39190613606565b60405180910390f35b348015610307575f80fd5b50610322600480360381019061031d919061361f565b610b1f565b60405161032f9190613606565b60405180910390f35b348015610343575f80fd5b5061035e6004803603810190610359919061364a565b610b3c565b005b34801561036b575f80fd5b50610374610bd5565b60405161038191906136d0565b60405180910390f35b348015610395575f80fd5b5061039e610bf9565b6040516103ab91906136f8565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d5919061364a565b610c02565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190613711565b610d11565b60405161040f9190613606565b60405180910390f35b348015610423575f80fd5b5061042c610e03565b6040516104399190613770565b60405180910390f35b34801561044d575f80fd5b50610456610e09565b60405161046391906137a4565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d91906135ae565b610e11565b60405161049f9190613606565b60405180910390f35b3480156104b3575f80fd5b506104bc610eb8565b6040516104c99190613770565b60405180910390f35b3480156104dd575f80fd5b506104e6610edc565b6040516104f39190613606565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d9190613873565b610eee565b005b34801561052f575f80fd5b50610538610f97565b60405161054591906136f8565b60405180910390f35b348015610559575f80fd5b50610562610f9d565b60405161056f9190613606565b60405180910390f35b348015610583575f80fd5b5061058c610fb0565b005b348015610599575f80fd5b506105b460048036038101906105af919061361f565b61103e565b6040516105c191906136f8565b60405180910390f35b3480156105d5575f80fd5b506105de611083565b005b3480156105eb575f80fd5b506106066004803603810190610601919061364a565b61110a565b005b348015610613575f80fd5b5061061c611190565b005b348015610629575f80fd5b50610644600480360381019061063f919061391b565b611227565b005b348015610651575f80fd5b5061066c6004803603810190610667919061364a565b6112fb565b005b348015610679575f80fd5b50610694600480360381019061068f919061364a565b611388565b005b3480156106a1575f80fd5b506106aa611449565b6040516106b79190613770565b60405180910390f35b3480156106cb575f80fd5b506106e660048036038101906106e19190613959565b611471565b005b3480156106f3575f80fd5b506106fc61150a565b60405161070991906134f9565b60405180910390f35b34801561071d575f80fd5b5061072661159a565b60405161073391906136f8565b60405180910390f35b348015610747575f80fd5b50610762600480360381019061075d919061391b565b6115a0565b005b34801561076f575f80fd5b5061078a600480360381019061078591906135ae565b6116b8565b6040516107979190613606565b60405180910390f35b3480156107ab575f80fd5b506107c660048036038101906107c1919061391b565b61179e565b005b3480156107d3575f80fd5b506107ee60048036038101906107e991906135ae565b6118c6565b6040516107fb9190613606565b60405180910390f35b34801561080f575f80fd5b5061082a6004803603810190610825919061361f565b6118e3565b005b348015610837575f80fd5b50610852600480360381019061084d919061361f565b611a1d565b60405161085f9190613606565b60405180910390f35b348015610873575f80fd5b5061087c611a3a565b6040516108899190613606565b60405180910390f35b34801561089d575f80fd5b506108b860048036038101906108b3919061391b565b611a4d565b005b3480156108c5575f80fd5b506108e060048036038101906108db919061364a565b611b6f565b005b3480156108ed575f80fd5b506108f6611c7e565b60405161090391906136f8565b60405180910390f35b610914611c84565b005b348015610921575f80fd5b5061092a611f13565b60405161093791906136f8565b60405180910390f35b34801561094b575f80fd5b506109666004803603810190610961919061364a565b611f19565b005b348015610973575f80fd5b5061097c611fb2565b60405161098991906136f8565b60405180910390f35b34801561099d575f80fd5b506109b860048036038101906109b39190613984565b611fb8565b6040516109c591906136f8565b60405180910390f35b3480156109d9575f80fd5b506109e261203a565b6040516109ef91906136f8565b60405180910390f35b348015610a03575f80fd5b50610a1e6004803603810190610a19919061364a565b612040565b005b348015610a2b575f80fd5b50610a466004803603810190610a41919061361f565b6120c6565b005b348015610a53575f80fd5b50610a5c6121bc565b604051610a6991906136f8565b60405180910390f35b606060038054610a81906139ef565b80601f0160208091040260200160405190810160405280929190818152602001828054610aad906139ef565b8015610af85780601f10610acf57610100808354040283529160200191610af8565b820191905f5260205f20905b815481529060010190602001808311610adb57829003601f168201915b5050505050905090565b5f610b15610b0e6121c2565b84846121c9565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b446121c2565b73ffffffffffffffffffffffffffffffffffffffff16610b62611449565b73ffffffffffffffffffffffffffffffffffffffff1614610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf90613a69565b60405180910390fd5b670de0b6b3a764000081610bcc9190613ab4565b600a8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610c0a6121c2565b73ffffffffffffffffffffffffffffffffffffffff16610c28611449565b73ffffffffffffffffffffffffffffffffffffffff1614610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7590613a69565b60405180910390fd5b670de0b6b3a76400006103e86001610c94610bf9565b610c9e9190613ab4565b610ca89190613b22565b610cb29190613b22565b811015610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90613bc2565b60405180910390fd5b670de0b6b3a764000081610d089190613ab4565b60078190555050565b5f610d1d84848461238c565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d646121c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda90613c50565b60405180910390fd5b610df785610def6121c2565b8584036121c9565b60019150509392505050565b61dead81565b5f6012905090565b5f610eae610e1d6121c2565b848460015f610e2a6121c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ea99190613c6e565b6121c9565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5f9054906101000a900460ff1681565b5f84849050118015610f0557508383905082829050145b610f0d575f80fd5b5f3390505f5b85859050811015610f8f57610f7c82878784818110610f3557610f34613ca1565b5b9050602002016020810190610f4a919061361f565b670de0b6b3a7640000878786818110610f6657610f65613ca1565b5b90506020020135610f779190613ab4565b61238c565b8080610f8790613cce565b915050610f13565b505050505050565b60105481565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610ff690613d42565b5f6040518083038185875af1925050503d805f8114611030576040519150601f19603f3d011682016040523d82523d5f602084013e611035565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61108b6121c2565b73ffffffffffffffffffffffffffffffffffffffff166110a9611449565b73ffffffffffffffffffffffffffffffffffffffff16146110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f690613a69565b60405180910390fd5b6111085f612d65565b565b6111126121c2565b73ffffffffffffffffffffffffffffffffffffffff16611130611449565b73ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90613a69565b60405180910390fd5b80600f8190555050565b6111986121c2565b73ffffffffffffffffffffffffffffffffffffffff166111b6611449565b73ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390613a69565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b61122f6121c2565b73ffffffffffffffffffffffffffffffffffffffff1661124d611449565b73ffffffffffffffffffffffffffffffffffffffff16146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a90613a69565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6113036121c2565b73ffffffffffffffffffffffffffffffffffffffff16611321611449565b73ffffffffffffffffffffffffffffffffffffffff1614611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90613a69565b60405180910390fd5b80600f819055508060108190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c86121c2565b73ffffffffffffffffffffffffffffffffffffffff16146113e7575f80fd5b6113f03061103e565b81111580156113fe57505f81115b61143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490613da0565b60405180910390fd5b61144681612e28565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114796121c2565b73ffffffffffffffffffffffffffffffffffffffff16611497611449565b73ffffffffffffffffffffffffffffffffffffffff16146114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e490613a69565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b606060048054611519906139ef565b80601f0160208091040260200160405190810160405280929190818152602001828054611545906139ef565b80156115905780601f1061156757610100808354040283529160200191611590565b820191905f5260205f20905b81548152906001019060200180831161157357829003601f168201915b5050505050905090565b600e5481565b6115a86121c2565b73ffffffffffffffffffffffffffffffffffffffff166115c6611449565b73ffffffffffffffffffffffffffffffffffffffff161461161c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161390613a69565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a190613e2e565b60405180910390fd5b6116b4828261305b565b5050565b5f8060015f6116c56121c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561177f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177690613ebc565b60405180910390fd5b61179361178a6121c2565b858584036121c9565b600191505092915050565b6117a66121c2565b73ffffffffffffffffffffffffffffffffffffffff166117c4611449565b73ffffffffffffffffffffffffffffffffffffffff161461181a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181190613a69565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6118d96118d26121c2565b848461238c565b6001905092915050565b6118eb6121c2565b73ffffffffffffffffffffffffffffffffffffffff16611909611449565b73ffffffffffffffffffffffffffffffffffffffff161461195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195690613a69565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611a556121c2565b73ffffffffffffffffffffffffffffffffffffffff16611a73611449565b73ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac090613a69565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611b639190613606565b60405180910390a25050565b611b776121c2565b73ffffffffffffffffffffffffffffffffffffffff16611b95611449565b73ffffffffffffffffffffffffffffffffffffffff1614611beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be290613a69565b60405180910390fd5b670de0b6b3a76400006103e86005611c01610bf9565b611c0b9190613ab4565b611c159190613b22565b611c1f9190613b22565b811015611c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5890613f4a565b60405180910390fd5b670de0b6b3a764000081611c759190613ab4565b60098190555050565b60075481565b611c8c6121c2565b73ffffffffffffffffffffffffffffffffffffffff16611caa611449565b73ffffffffffffffffffffffffffffffffffffffff1614611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf790613a69565b60405180910390fd5b611d32307f0000000000000000000000000000000000000000000000000000000000000000611d2d610bf9565b6121c9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611d793061103e565b5f80611d83611449565b426040518863ffffffff1660e01b8152600401611da596959493929190613fa1565b60606040518083038185885af1158015611dc1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611de69190614014565b5050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611e84929190614064565b6020604051808303815f875af1158015611ea0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ec4919061409f565b506002600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d81905550565b600a5481565b611f216121c2565b73ffffffffffffffffffffffffffffffffffffffff16611f3f611449565b73ffffffffffffffffffffffffffffffffffffffff1614611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90613a69565b60405180910390fd5b670de0b6b3a764000081611fa99190613ab4565b60088190555050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6120486121c2565b73ffffffffffffffffffffffffffffffffffffffff16612066611449565b73ffffffffffffffffffffffffffffffffffffffff16146120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b390613a69565b60405180910390fd5b8060108190555050565b6120ce6121c2565b73ffffffffffffffffffffffffffffffffffffffff166120ec611449565b73ffffffffffffffffffffffffffffffffffffffff1614612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613a69565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a79061413a565b60405180910390fd5b6121b981612d65565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e906141c8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229c90614256565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237f91906136f8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f1906142e4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245f90614372565b60405180910390fd5b5f810361247f5761247a83835f6130f9565b612d60565b600b5f9054906101000a900460ff161561298a5761249b611449565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561250957506124d9611449565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254157505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561257b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125945750600560149054906101000a900460ff16155b156129895743600e54600c546125aa9190613c6e565b106125c05760196010819055506019600f819055505b600b60019054906101000a900460ff166126af5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061266f575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a5906143da565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561274c575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127f357600754811115612796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278d90614468565b60405180910390fd5b6009546127a28361103e565b826127ad9190613c6e565b11156127ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e5906144d0565b60405180910390fd5b612988565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612890575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128df576007548111156128da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d19061455e565b60405180910390fd5b612987565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612986576009546129398361103e565b826129449190613c6e565b1115612985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297c906144d0565b60405180910390fd5b5b5b5b5b5b5f6129943061103e565b90505f60085482101590508080156129b85750600b60029054906101000a900460ff165b80156129d15750600560149054906101000a900460ff16155b8015612a24575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a77575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612aca575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b5b57600360145f4381526020019081526020015f20541015612b5a576001600560146101000a81548160ff021916908315150217905550612b0c61336e565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612b449190613c6e565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c0a575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c13575f90505b5f8115612d505760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7157505f601054115b15612ca557612c9e6064612c906010548861343b90919063ffffffff16565b61345090919063ffffffff16565b9050612d2d565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612cfc57505f600f54115b15612d2c57612d296064612d1b600f548861343b90919063ffffffff16565b61345090919063ffffffff16565b90505b5b5f811115612d4157612d408730836130f9565b5b8085612d4d919061457c565b94505b612d5b8787876130f9565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612e4457612e436145af565b5b604051908082528060200260200182016040528015612e725781602001602082028036833780820191505090505b50905030815f81518110612e8957612e88613ca1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5091906145f0565b81600181518110612f6457612f63613ca1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fc9307f0000000000000000000000000000000000000000000000000000000000000000846121c9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161302a9594939291906146d2565b5f604051808303815f87803b158015613041575f80fd5b505af1158015613053573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315e906142e4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131cc90614372565b60405180910390fd5b6131e0838383613465565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325a9061479a565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132f19190613c6e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161335591906136f8565b60405180910390a361336884848461346a565b50505050565b5f6133783061103e565b90505f808203613389575050613439565b600a5482111561339957600a5491505b5f8290506133a681612e28565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516133ef90613d42565b5f6040518083038185875af1925050503d805f8114613429576040519150601f19603f3d011682016040523d82523d5f602084013e61342e565b606091505b505080935050505050505b565b5f81836134489190613ab4565b905092915050565b5f818361345d9190613b22565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134a657808201518184015260208101905061348b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6134cb8261346f565b6134d58185613479565b93506134e5818560208601613489565b6134ee816134b1565b840191505092915050565b5f6020820190508181035f83015261351181846134c1565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61354a82613521565b9050919050565b61355a81613540565b8114613564575f80fd5b50565b5f8135905061357581613551565b92915050565b5f819050919050565b61358d8161357b565b8114613597575f80fd5b50565b5f813590506135a881613584565b92915050565b5f80604083850312156135c4576135c3613519565b5b5f6135d185828601613567565b92505060206135e28582860161359a565b9150509250929050565b5f8115159050919050565b613600816135ec565b82525050565b5f6020820190506136195f8301846135f7565b92915050565b5f6020828403121561363457613633613519565b5b5f61364184828501613567565b91505092915050565b5f6020828403121561365f5761365e613519565b5b5f61366c8482850161359a565b91505092915050565b5f819050919050565b5f61369861369361368e84613521565b613675565b613521565b9050919050565b5f6136a98261367e565b9050919050565b5f6136ba8261369f565b9050919050565b6136ca816136b0565b82525050565b5f6020820190506136e35f8301846136c1565b92915050565b6136f28161357b565b82525050565b5f60208201905061370b5f8301846136e9565b92915050565b5f805f6060848603121561372857613727613519565b5b5f61373586828701613567565b935050602061374686828701613567565b92505060406137578682870161359a565b9150509250925092565b61376a81613540565b82525050565b5f6020820190506137835f830184613761565b92915050565b5f60ff82169050919050565b61379e81613789565b82525050565b5f6020820190506137b75f830184613795565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137de576137dd6137bd565b5b8235905067ffffffffffffffff8111156137fb576137fa6137c1565b5b602083019150836020820283011115613817576138166137c5565b5b9250929050565b5f8083601f840112613833576138326137bd565b5b8235905067ffffffffffffffff8111156138505761384f6137c1565b5b60208301915083602082028301111561386c5761386b6137c5565b5b9250929050565b5f805f806040858703121561388b5761388a613519565b5b5f85013567ffffffffffffffff8111156138a8576138a761351d565b5b6138b4878288016137c9565b9450945050602085013567ffffffffffffffff8111156138d7576138d661351d565b5b6138e38782880161381e565b925092505092959194509250565b6138fa816135ec565b8114613904575f80fd5b50565b5f81359050613915816138f1565b92915050565b5f806040838503121561393157613930613519565b5b5f61393e85828601613567565b925050602061394f85828601613907565b9150509250929050565b5f6020828403121561396e5761396d613519565b5b5f61397b84828501613907565b91505092915050565b5f806040838503121561399a57613999613519565b5b5f6139a785828601613567565b92505060206139b885828601613567565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a0657607f821691505b602082108103613a1957613a186139c2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a53602083613479565b9150613a5e82613a1f565b602082019050919050565b5f6020820190508181035f830152613a8081613a47565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613abe8261357b565b9150613ac98361357b565b9250828202613ad78161357b565b91508282048414831517613aee57613aed613a87565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b2c8261357b565b9150613b378361357b565b925082613b4757613b46613af5565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613bac602f83613479565b9150613bb782613b52565b604082019050919050565b5f6020820190508181035f830152613bd981613ba0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613c3a602883613479565b9150613c4582613be0565b604082019050919050565b5f6020820190508181035f830152613c6781613c2e565b9050919050565b5f613c788261357b565b9150613c838361357b565b9250828201905080821115613c9b57613c9a613a87565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613cd88261357b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d0a57613d09613a87565b5b600182019050919050565b5f81905092915050565b50565b5f613d2d5f83613d15565b9150613d3882613d1f565b5f82019050919050565b5f613d4c82613d22565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613d8a600c83613479565b9150613d9582613d56565b602082019050919050565b5f6020820190508181035f830152613db781613d7e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613e18603983613479565b9150613e2382613dbe565b604082019050919050565b5f6020820190508181035f830152613e4581613e0c565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613ea6602583613479565b9150613eb182613e4c565b604082019050919050565b5f6020820190508181035f830152613ed381613e9a565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613f34602483613479565b9150613f3f82613eda565b604082019050919050565b5f6020820190508181035f830152613f6181613f28565b9050919050565b5f819050919050565b5f613f8b613f86613f8184613f68565b613675565b61357b565b9050919050565b613f9b81613f71565b82525050565b5f60c082019050613fb45f830189613761565b613fc160208301886136e9565b613fce6040830187613f92565b613fdb6060830186613f92565b613fe86080830185613761565b613ff560a08301846136e9565b979650505050505050565b5f8151905061400e81613584565b92915050565b5f805f6060848603121561402b5761402a613519565b5b5f61403886828701614000565b935050602061404986828701614000565b925050604061405a86828701614000565b9150509250925092565b5f6040820190506140775f830185613761565b61408460208301846136e9565b9392505050565b5f81519050614099816138f1565b92915050565b5f602082840312156140b4576140b3613519565b5b5f6140c18482850161408b565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614124602683613479565b915061412f826140ca565b604082019050919050565b5f6020820190508181035f83015261415181614118565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6141b2602483613479565b91506141bd82614158565b604082019050919050565b5f6020820190508181035f8301526141df816141a6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614240602283613479565b915061424b826141e6565b604082019050919050565b5f6020820190508181035f83015261426d81614234565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142ce602583613479565b91506142d982614274565b604082019050919050565b5f6020820190508181035f8301526142fb816142c2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61435c602383613479565b915061436782614302565b604082019050919050565b5f6020820190508181035f83015261438981614350565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6143c4601683613479565b91506143cf82614390565b602082019050919050565b5f6020820190508181035f8301526143f1816143b8565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f614452603583613479565b915061445d826143f8565b604082019050919050565b5f6020820190508181035f83015261447f81614446565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6144ba601383613479565b91506144c582614486565b602082019050919050565b5f6020820190508181035f8301526144e7816144ae565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f614548603683613479565b9150614553826144ee565b604082019050919050565b5f6020820190508181035f8301526145758161453c565b9050919050565b5f6145868261357b565b91506145918361357b565b92508282039050818111156145a9576145a8613a87565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506145ea81613551565b92915050565b5f6020828403121561460557614604613519565b5b5f614612848285016145dc565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61464d81613540565b82525050565b5f61465e8383614644565b60208301905092915050565b5f602082019050919050565b5f6146808261461b565b61468a8185614625565b935061469583614635565b805f5b838110156146c55781516146ac8882614653565b97506146b78361466a565b925050600181019050614698565b5085935050505092915050565b5f60a0820190506146e55f8301886136e9565b6146f26020830187613f92565b81810360408301526147048186614676565b90506147136060830185613761565b61472060808301846136e9565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614784602683613479565b915061478f8261472a565b604082019050919050565b5f6020820190508181035f8301526147b181614778565b905091905056fea2646970667358221220ced0405a589bc5ad484ded2856b4fa3d130657bc35b9aa697efd550426f9fc1e64736f6c63430008150033

Deployed Bytecode

0x60806040526004361061028b575f3560e01c8063881dce6011610159578063c0246668116100c0578063d85ba06311610079578063d85ba06314610968578063dd62ed3e14610992578063e2f45605146109ce578063eba4c333146109f8578063f2fde38b14610a20578063f8b45b0514610a4857610292565b8063c024666814610892578063c18bc195146108ba578063c8c8ebe4146108e2578063c9567bf91461090c578063cce987d414610916578063d257b34f1461094057610292565b8063a457c2d711610112578063a457c2d714610764578063a672990c146107a0578063a9059cbb146107c8578063aacebbe314610804578063b62496f51461082c578063bbc0c7421461086857610292565b8063881dce601461066e5780638da5cb5b14610696578063924de9b7146106c057806395d89b41146106e8578063967ff23e146107125780639a7a23d61461073c57610292565b806349bd5a5e116101fd57806370a08231116101b657806370a082311461058e578063715018a6146105ca57806371fc4688146105e0578063751039fc146106085780637571336a1461061e57806378dacee11461064657610292565b806349bd5a5e146104a85780634a62bb65146104d257806367243482146104fc5780636a486a8e146105245780636ddd17131461054e5780636fc3eaec1461057857610292565b806318160ddd1161024f57806318160ddd1461038a578063203e727e146103b457806323b872dd146103dc57806327c8f83514610418578063313ce56714610442578063395093511461046c57610292565b806306fdde0314610296578063095ea7b3146102c057806310d5de53146102fc578063150074a3146103385780631694505e1461036057610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610a72565b6040516102b791906134f9565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e191906135ae565b610b02565b6040516102f39190613606565b60405180910390f35b348015610307575f80fd5b50610322600480360381019061031d919061361f565b610b1f565b60405161032f9190613606565b60405180910390f35b348015610343575f80fd5b5061035e6004803603810190610359919061364a565b610b3c565b005b34801561036b575f80fd5b50610374610bd5565b60405161038191906136d0565b60405180910390f35b348015610395575f80fd5b5061039e610bf9565b6040516103ab91906136f8565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d5919061364a565b610c02565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190613711565b610d11565b60405161040f9190613606565b60405180910390f35b348015610423575f80fd5b5061042c610e03565b6040516104399190613770565b60405180910390f35b34801561044d575f80fd5b50610456610e09565b60405161046391906137a4565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d91906135ae565b610e11565b60405161049f9190613606565b60405180910390f35b3480156104b3575f80fd5b506104bc610eb8565b6040516104c99190613770565b60405180910390f35b3480156104dd575f80fd5b506104e6610edc565b6040516104f39190613606565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d9190613873565b610eee565b005b34801561052f575f80fd5b50610538610f97565b60405161054591906136f8565b60405180910390f35b348015610559575f80fd5b50610562610f9d565b60405161056f9190613606565b60405180910390f35b348015610583575f80fd5b5061058c610fb0565b005b348015610599575f80fd5b506105b460048036038101906105af919061361f565b61103e565b6040516105c191906136f8565b60405180910390f35b3480156105d5575f80fd5b506105de611083565b005b3480156105eb575f80fd5b506106066004803603810190610601919061364a565b61110a565b005b348015610613575f80fd5b5061061c611190565b005b348015610629575f80fd5b50610644600480360381019061063f919061391b565b611227565b005b348015610651575f80fd5b5061066c6004803603810190610667919061364a565b6112fb565b005b348015610679575f80fd5b50610694600480360381019061068f919061364a565b611388565b005b3480156106a1575f80fd5b506106aa611449565b6040516106b79190613770565b60405180910390f35b3480156106cb575f80fd5b506106e660048036038101906106e19190613959565b611471565b005b3480156106f3575f80fd5b506106fc61150a565b60405161070991906134f9565b60405180910390f35b34801561071d575f80fd5b5061072661159a565b60405161073391906136f8565b60405180910390f35b348015610747575f80fd5b50610762600480360381019061075d919061391b565b6115a0565b005b34801561076f575f80fd5b5061078a600480360381019061078591906135ae565b6116b8565b6040516107979190613606565b60405180910390f35b3480156107ab575f80fd5b506107c660048036038101906107c1919061391b565b61179e565b005b3480156107d3575f80fd5b506107ee60048036038101906107e991906135ae565b6118c6565b6040516107fb9190613606565b60405180910390f35b34801561080f575f80fd5b5061082a6004803603810190610825919061361f565b6118e3565b005b348015610837575f80fd5b50610852600480360381019061084d919061361f565b611a1d565b60405161085f9190613606565b60405180910390f35b348015610873575f80fd5b5061087c611a3a565b6040516108899190613606565b60405180910390f35b34801561089d575f80fd5b506108b860048036038101906108b3919061391b565b611a4d565b005b3480156108c5575f80fd5b506108e060048036038101906108db919061364a565b611b6f565b005b3480156108ed575f80fd5b506108f6611c7e565b60405161090391906136f8565b60405180910390f35b610914611c84565b005b348015610921575f80fd5b5061092a611f13565b60405161093791906136f8565b60405180910390f35b34801561094b575f80fd5b506109666004803603810190610961919061364a565b611f19565b005b348015610973575f80fd5b5061097c611fb2565b60405161098991906136f8565b60405180910390f35b34801561099d575f80fd5b506109b860048036038101906109b39190613984565b611fb8565b6040516109c591906136f8565b60405180910390f35b3480156109d9575f80fd5b506109e261203a565b6040516109ef91906136f8565b60405180910390f35b348015610a03575f80fd5b50610a1e6004803603810190610a19919061364a565b612040565b005b348015610a2b575f80fd5b50610a466004803603810190610a41919061361f565b6120c6565b005b348015610a53575f80fd5b50610a5c6121bc565b604051610a6991906136f8565b60405180910390f35b606060038054610a81906139ef565b80601f0160208091040260200160405190810160405280929190818152602001828054610aad906139ef565b8015610af85780601f10610acf57610100808354040283529160200191610af8565b820191905f5260205f20905b815481529060010190602001808311610adb57829003601f168201915b5050505050905090565b5f610b15610b0e6121c2565b84846121c9565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b446121c2565b73ffffffffffffffffffffffffffffffffffffffff16610b62611449565b73ffffffffffffffffffffffffffffffffffffffff1614610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf90613a69565b60405180910390fd5b670de0b6b3a764000081610bcc9190613ab4565b600a8190555050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b610c0a6121c2565b73ffffffffffffffffffffffffffffffffffffffff16610c28611449565b73ffffffffffffffffffffffffffffffffffffffff1614610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7590613a69565b60405180910390fd5b670de0b6b3a76400006103e86001610c94610bf9565b610c9e9190613ab4565b610ca89190613b22565b610cb29190613b22565b811015610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90613bc2565b60405180910390fd5b670de0b6b3a764000081610d089190613ab4565b60078190555050565b5f610d1d84848461238c565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d646121c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda90613c50565b60405180910390fd5b610df785610def6121c2565b8584036121c9565b60019150509392505050565b61dead81565b5f6012905090565b5f610eae610e1d6121c2565b848460015f610e2a6121c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ea99190613c6e565b6121c9565b6001905092915050565b7f00000000000000000000000046014562684c336fe37fd46ac25344bbedf0a5dc81565b600b5f9054906101000a900460ff1681565b5f84849050118015610f0557508383905082829050145b610f0d575f80fd5b5f3390505f5b85859050811015610f8f57610f7c82878784818110610f3557610f34613ca1565b5b9050602002016020810190610f4a919061361f565b670de0b6b3a7640000878786818110610f6657610f65613ca1565b5b90506020020135610f779190613ab4565b61238c565b8080610f8790613cce565b915050610f13565b505050505050565b60105481565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610ff690613d42565b5f6040518083038185875af1925050503d805f8114611030576040519150601f19603f3d011682016040523d82523d5f602084013e611035565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61108b6121c2565b73ffffffffffffffffffffffffffffffffffffffff166110a9611449565b73ffffffffffffffffffffffffffffffffffffffff16146110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f690613a69565b60405180910390fd5b6111085f612d65565b565b6111126121c2565b73ffffffffffffffffffffffffffffffffffffffff16611130611449565b73ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90613a69565b60405180910390fd5b80600f8190555050565b6111986121c2565b73ffffffffffffffffffffffffffffffffffffffff166111b6611449565b73ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390613a69565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b61122f6121c2565b73ffffffffffffffffffffffffffffffffffffffff1661124d611449565b73ffffffffffffffffffffffffffffffffffffffff16146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a90613a69565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6113036121c2565b73ffffffffffffffffffffffffffffffffffffffff16611321611449565b73ffffffffffffffffffffffffffffffffffffffff1614611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90613a69565b60405180910390fd5b80600f819055508060108190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c86121c2565b73ffffffffffffffffffffffffffffffffffffffff16146113e7575f80fd5b6113f03061103e565b81111580156113fe57505f81115b61143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490613da0565b60405180910390fd5b61144681612e28565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114796121c2565b73ffffffffffffffffffffffffffffffffffffffff16611497611449565b73ffffffffffffffffffffffffffffffffffffffff16146114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e490613a69565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b606060048054611519906139ef565b80601f0160208091040260200160405190810160405280929190818152602001828054611545906139ef565b80156115905780601f1061156757610100808354040283529160200191611590565b820191905f5260205f20905b81548152906001019060200180831161157357829003601f168201915b5050505050905090565b600e5481565b6115a86121c2565b73ffffffffffffffffffffffffffffffffffffffff166115c6611449565b73ffffffffffffffffffffffffffffffffffffffff161461161c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161390613a69565b60405180910390fd5b7f00000000000000000000000046014562684c336fe37fd46ac25344bbedf0a5dc73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a190613e2e565b60405180910390fd5b6116b4828261305b565b5050565b5f8060015f6116c56121c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561177f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177690613ebc565b60405180910390fd5b61179361178a6121c2565b858584036121c9565b600191505092915050565b6117a66121c2565b73ffffffffffffffffffffffffffffffffffffffff166117c4611449565b73ffffffffffffffffffffffffffffffffffffffff161461181a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181190613a69565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6118d96118d26121c2565b848461238c565b6001905092915050565b6118eb6121c2565b73ffffffffffffffffffffffffffffffffffffffff16611909611449565b73ffffffffffffffffffffffffffffffffffffffff161461195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195690613a69565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611a556121c2565b73ffffffffffffffffffffffffffffffffffffffff16611a73611449565b73ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac090613a69565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611b639190613606565b60405180910390a25050565b611b776121c2565b73ffffffffffffffffffffffffffffffffffffffff16611b95611449565b73ffffffffffffffffffffffffffffffffffffffff1614611beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be290613a69565b60405180910390fd5b670de0b6b3a76400006103e86005611c01610bf9565b611c0b9190613ab4565b611c159190613b22565b611c1f9190613b22565b811015611c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5890613f4a565b60405180910390fd5b670de0b6b3a764000081611c759190613ab4565b60098190555050565b60075481565b611c8c6121c2565b73ffffffffffffffffffffffffffffffffffffffff16611caa611449565b73ffffffffffffffffffffffffffffffffffffffff1614611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf790613a69565b60405180910390fd5b611d32307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d611d2d610bf9565b6121c9565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611d793061103e565b5f80611d83611449565b426040518863ffffffff1660e01b8152600401611da596959493929190613fa1565b60606040518083038185885af1158015611dc1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611de69190614014565b5050507f00000000000000000000000046014562684c336fe37fd46ac25344bbedf0a5dc73ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611e84929190614064565b6020604051808303815f875af1158015611ea0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ec4919061409f565b506002600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d81905550565b600a5481565b611f216121c2565b73ffffffffffffffffffffffffffffffffffffffff16611f3f611449565b73ffffffffffffffffffffffffffffffffffffffff1614611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90613a69565b60405180910390fd5b670de0b6b3a764000081611fa99190613ab4565b60088190555050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6120486121c2565b73ffffffffffffffffffffffffffffffffffffffff16612066611449565b73ffffffffffffffffffffffffffffffffffffffff16146120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b390613a69565b60405180910390fd5b8060108190555050565b6120ce6121c2565b73ffffffffffffffffffffffffffffffffffffffff166120ec611449565b73ffffffffffffffffffffffffffffffffffffffff1614612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613a69565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a79061413a565b60405180910390fd5b6121b981612d65565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e906141c8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229c90614256565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237f91906136f8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f1906142e4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245f90614372565b60405180910390fd5b5f810361247f5761247a83835f6130f9565b612d60565b600b5f9054906101000a900460ff161561298a5761249b611449565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561250957506124d9611449565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254157505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561257b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125945750600560149054906101000a900460ff16155b156129895743600e54600c546125aa9190613c6e565b106125c05760196010819055506019600f819055505b600b60019054906101000a900460ff166126af5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061266f575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a5906143da565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561274c575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127f357600754811115612796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278d90614468565b60405180910390fd5b6009546127a28361103e565b826127ad9190613c6e565b11156127ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e5906144d0565b60405180910390fd5b612988565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612890575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128df576007548111156128da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d19061455e565b60405180910390fd5b612987565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612986576009546129398361103e565b826129449190613c6e565b1115612985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297c906144d0565b60405180910390fd5b5b5b5b5b5b5f6129943061103e565b90505f60085482101590508080156129b85750600b60029054906101000a900460ff165b80156129d15750600560149054906101000a900460ff16155b8015612a24575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a77575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612aca575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b5b57600360145f4381526020019081526020015f20541015612b5a576001600560146101000a81548160ff021916908315150217905550612b0c61336e565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612b449190613c6e565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c0a575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c13575f90505b5f8115612d505760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7157505f601054115b15612ca557612c9e6064612c906010548861343b90919063ffffffff16565b61345090919063ffffffff16565b9050612d2d565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612cfc57505f600f54115b15612d2c57612d296064612d1b600f548861343b90919063ffffffff16565b61345090919063ffffffff16565b90505b5b5f811115612d4157612d408730836130f9565b5b8085612d4d919061457c565b94505b612d5b8787876130f9565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612e4457612e436145af565b5b604051908082528060200260200182016040528015612e725781602001602082028036833780820191505090505b50905030815f81518110612e8957612e88613ca1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5091906145f0565b81600181518110612f6457612f63613ca1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fc9307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846121c9565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161302a9594939291906146d2565b5f604051808303815f87803b158015613041575f80fd5b505af1158015613053573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315e906142e4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131cc90614372565b60405180910390fd5b6131e0838383613465565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325a9061479a565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132f19190613c6e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161335591906136f8565b60405180910390a361336884848461346a565b50505050565b5f6133783061103e565b90505f808203613389575050613439565b600a5482111561339957600a5491505b5f8290506133a681612e28565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516133ef90613d42565b5f6040518083038185875af1925050503d805f8114613429576040519150601f19603f3d011682016040523d82523d5f602084013e61342e565b606091505b505080935050505050505b565b5f81836134489190613ab4565b905092915050565b5f818361345d9190613b22565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134a657808201518184015260208101905061348b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6134cb8261346f565b6134d58185613479565b93506134e5818560208601613489565b6134ee816134b1565b840191505092915050565b5f6020820190508181035f83015261351181846134c1565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61354a82613521565b9050919050565b61355a81613540565b8114613564575f80fd5b50565b5f8135905061357581613551565b92915050565b5f819050919050565b61358d8161357b565b8114613597575f80fd5b50565b5f813590506135a881613584565b92915050565b5f80604083850312156135c4576135c3613519565b5b5f6135d185828601613567565b92505060206135e28582860161359a565b9150509250929050565b5f8115159050919050565b613600816135ec565b82525050565b5f6020820190506136195f8301846135f7565b92915050565b5f6020828403121561363457613633613519565b5b5f61364184828501613567565b91505092915050565b5f6020828403121561365f5761365e613519565b5b5f61366c8482850161359a565b91505092915050565b5f819050919050565b5f61369861369361368e84613521565b613675565b613521565b9050919050565b5f6136a98261367e565b9050919050565b5f6136ba8261369f565b9050919050565b6136ca816136b0565b82525050565b5f6020820190506136e35f8301846136c1565b92915050565b6136f28161357b565b82525050565b5f60208201905061370b5f8301846136e9565b92915050565b5f805f6060848603121561372857613727613519565b5b5f61373586828701613567565b935050602061374686828701613567565b92505060406137578682870161359a565b9150509250925092565b61376a81613540565b82525050565b5f6020820190506137835f830184613761565b92915050565b5f60ff82169050919050565b61379e81613789565b82525050565b5f6020820190506137b75f830184613795565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137de576137dd6137bd565b5b8235905067ffffffffffffffff8111156137fb576137fa6137c1565b5b602083019150836020820283011115613817576138166137c5565b5b9250929050565b5f8083601f840112613833576138326137bd565b5b8235905067ffffffffffffffff8111156138505761384f6137c1565b5b60208301915083602082028301111561386c5761386b6137c5565b5b9250929050565b5f805f806040858703121561388b5761388a613519565b5b5f85013567ffffffffffffffff8111156138a8576138a761351d565b5b6138b4878288016137c9565b9450945050602085013567ffffffffffffffff8111156138d7576138d661351d565b5b6138e38782880161381e565b925092505092959194509250565b6138fa816135ec565b8114613904575f80fd5b50565b5f81359050613915816138f1565b92915050565b5f806040838503121561393157613930613519565b5b5f61393e85828601613567565b925050602061394f85828601613907565b9150509250929050565b5f6020828403121561396e5761396d613519565b5b5f61397b84828501613907565b91505092915050565b5f806040838503121561399a57613999613519565b5b5f6139a785828601613567565b92505060206139b885828601613567565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a0657607f821691505b602082108103613a1957613a186139c2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a53602083613479565b9150613a5e82613a1f565b602082019050919050565b5f6020820190508181035f830152613a8081613a47565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613abe8261357b565b9150613ac98361357b565b9250828202613ad78161357b565b91508282048414831517613aee57613aed613a87565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b2c8261357b565b9150613b378361357b565b925082613b4757613b46613af5565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613bac602f83613479565b9150613bb782613b52565b604082019050919050565b5f6020820190508181035f830152613bd981613ba0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613c3a602883613479565b9150613c4582613be0565b604082019050919050565b5f6020820190508181035f830152613c6781613c2e565b9050919050565b5f613c788261357b565b9150613c838361357b565b9250828201905080821115613c9b57613c9a613a87565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613cd88261357b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d0a57613d09613a87565b5b600182019050919050565b5f81905092915050565b50565b5f613d2d5f83613d15565b9150613d3882613d1f565b5f82019050919050565b5f613d4c82613d22565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613d8a600c83613479565b9150613d9582613d56565b602082019050919050565b5f6020820190508181035f830152613db781613d7e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613e18603983613479565b9150613e2382613dbe565b604082019050919050565b5f6020820190508181035f830152613e4581613e0c565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613ea6602583613479565b9150613eb182613e4c565b604082019050919050565b5f6020820190508181035f830152613ed381613e9a565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613f34602483613479565b9150613f3f82613eda565b604082019050919050565b5f6020820190508181035f830152613f6181613f28565b9050919050565b5f819050919050565b5f613f8b613f86613f8184613f68565b613675565b61357b565b9050919050565b613f9b81613f71565b82525050565b5f60c082019050613fb45f830189613761565b613fc160208301886136e9565b613fce6040830187613f92565b613fdb6060830186613f92565b613fe86080830185613761565b613ff560a08301846136e9565b979650505050505050565b5f8151905061400e81613584565b92915050565b5f805f6060848603121561402b5761402a613519565b5b5f61403886828701614000565b935050602061404986828701614000565b925050604061405a86828701614000565b9150509250925092565b5f6040820190506140775f830185613761565b61408460208301846136e9565b9392505050565b5f81519050614099816138f1565b92915050565b5f602082840312156140b4576140b3613519565b5b5f6140c18482850161408b565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614124602683613479565b915061412f826140ca565b604082019050919050565b5f6020820190508181035f83015261415181614118565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6141b2602483613479565b91506141bd82614158565b604082019050919050565b5f6020820190508181035f8301526141df816141a6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614240602283613479565b915061424b826141e6565b604082019050919050565b5f6020820190508181035f83015261426d81614234565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142ce602583613479565b91506142d982614274565b604082019050919050565b5f6020820190508181035f8301526142fb816142c2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61435c602383613479565b915061436782614302565b604082019050919050565b5f6020820190508181035f83015261438981614350565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6143c4601683613479565b91506143cf82614390565b602082019050919050565b5f6020820190508181035f8301526143f1816143b8565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f614452603583613479565b915061445d826143f8565b604082019050919050565b5f6020820190508181035f83015261447f81614446565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6144ba601383613479565b91506144c582614486565b602082019050919050565b5f6020820190508181035f8301526144e7816144ae565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f614548603683613479565b9150614553826144ee565b604082019050919050565b5f6020820190508181035f8301526145758161453c565b9050919050565b5f6145868261357b565b91506145918361357b565b92508282039050818111156145a9576145a8613a87565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506145ea81613551565b92915050565b5f6020828403121561460557614604613519565b5b5f614612848285016145dc565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61464d81613540565b82525050565b5f61465e8383614644565b60208301905092915050565b5f602082019050919050565b5f6146808261461b565b61468a8185614625565b935061469583614635565b805f5b838110156146c55781516146ac8882614653565b97506146b78361466a565b925050600181019050614698565b5085935050505092915050565b5f60a0820190506146e55f8301886136e9565b6146f26020830187613f92565b81810360408301526147048186614676565b90506147136060830185613761565b61472060808301846136e9565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614784602683613479565b915061478f8261472a565b604082019050919050565b5f6020820190508181035f8301526147b181614778565b905091905056fea2646970667358221220ced0405a589bc5ad484ded2856b4fa3d130657bc35b9aa697efd550426f9fc1e64736f6c63430008150033

Deployed Bytecode Sourcemap

11839:11061:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7348:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8262:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12647:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15402:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11912:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7669:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15528:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8439:458;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12015:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7568:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8905:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11970:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12297:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18170:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12551:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12377:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16977:149;;;;;;;;;;;;;:::i;:::-;;7785:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6394:103;;;;;;;;;;;;;:::i;:::-;;17712:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15168:84;;;;;;;;;;;;;:::i;:::-;;16208:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17582:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16746:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6171:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16448:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7456:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12485:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17134:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9128:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16005:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7920:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17954:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12719:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12337:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16556:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15776:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12147:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14645:515;;;:::i;:::-;;12260:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15260:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12515:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8103:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12189:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17832:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6505:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12229:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7348:100;7402:13;7435:5;7428:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7348:100;:::o;8262:169::-;8345:4;8362:39;8371:12;:10;:12::i;:::-;8385:7;8394:6;8362:8;:39::i;:::-;8419:4;8412:11;;8262:169;;;;:::o;12647:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;15402:118::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15503:8:::1;15490:9;:22;;;;:::i;:::-;15474:13;:38;;;;15402:118:::0;:::o;11912:51::-;;;:::o;7669:108::-;7730:7;7757:12;;7750:19;;7669:108;:::o;15528:240::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15651:4:::1;15643;15638:1;15622:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15621:26;;;;:::i;:::-;15620:35;;;;:::i;:::-;15610:6;:45;;15602:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;15751:8;15741:6;:19;;;;:::i;:::-;15718:20;:42;;;;15528:240:::0;:::o;8439:458::-;8545:4;8562:36;8572:6;8580:9;8591:6;8562:9;:36::i;:::-;8611:24;8638:11;:19;8650:6;8638:19;;;;;;;;;;;;;;;:33;8658:12;:10;:12::i;:::-;8638:33;;;;;;;;;;;;;;;;8611:60;;8710:6;8690:16;:26;;8682:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8797:57;8806:6;8814:12;:10;:12::i;:::-;8847:6;8828:16;:25;8797:8;:57::i;:::-;8885:4;8878:11;;;8439:458;;;;;:::o;12015:53::-;12061:6;12015:53;:::o;7568:93::-;7626:5;7651:2;7644:9;;7568:93;:::o;8905:215::-;8993:4;9010:80;9019:12;:10;:12::i;:::-;9033:7;9079:10;9042:11;:25;9054:12;:10;:12::i;:::-;9042:25;;;;;;;;;;;;;;;:34;9068:7;9042:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9010:8;:80::i;:::-;9108:4;9101:11;;8905:215;;;;:::o;11970:38::-;;;:::o;12297:33::-;;;;;;;;;;;;;:::o;18170:346::-;18292:1;18273:9;;:16;;:20;:58;;;;;18315:9;;:16;;18297:7;;:14;;:34;18273:58;18265:67;;;;;;18343:12;18358:10;18343:25;;18386:9;18381:128;18405:9;;:16;;18401:1;:20;18381:128;;;18443:54;18453:4;18459:9;;18469:1;18459:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18487:8;18473:7;;18481:1;18473:10;;;;;;;:::i;:::-;;;;;;;;:23;;;;:::i;:::-;18443:9;:54::i;:::-;18423:3;;;;;:::i;:::-;;;;18381:128;;;;18254:262;18170:346;;;;:::o;12551:28::-;;;;:::o;12377:31::-;;;;;;;;;;;;;:::o;16977:149::-;17019:12;17063:15;;;;;;;;;;;17055:29;;17092:21;17055:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17042:76;;;;;17008:118;16977:149::o;7785:127::-;7859:7;7886:9;:18;7896:7;7886:18;;;;;;;;;;;;;;;;7879:25;;7785:127;;;:::o;6394:103::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6459:30:::1;6486:1;6459:18;:30::i;:::-;6394:103::o:0;17712:112::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17803:13:::1;17788:12;:28;;;;17712:112:::0;:::o;15168:84::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15239:5:::1;15222:14;;:22;;;;;;;;;;;;;;;;;;15168:84::o:0;16208:144::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16340:4:::1;16298:31;:39;16330:6;16298:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16208:144:::0;;:::o;17582:122::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17661:4:::1;17646:12;:19;;;;17692:4;17676:13;:20;;;;17582:122:::0;:::o;16746:223::-;16826:15;;;;;;;;;;;16810:31;;:12;:10;:12::i;:::-;:31;;;16802:40;;;;;;16871:24;16889:4;16871:9;:24::i;:::-;16861:6;:34;;:48;;;;;16908:1;16899:6;:10;16861:48;16853:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16937:24;16954:6;16937:16;:24::i;:::-;16746:223;:::o;6171:87::-;6217:7;6244:6;;;;;;;;;;;6237:13;;6171:87;:::o;16448:100::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16533:7:::1;16519:11;;:21;;;;;;;;;;;;;;;;;;16448:100:::0;:::o;7456:104::-;7512:13;7545:7;7538:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7456:104;:::o;12485:21::-;;;;:::o;17134:244::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17241:13:::1;17233:21;;:4;:21;;::::0;17225:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17329:41;17358:4;17364:5;17329:28;:41::i;:::-;17134:244:::0;;:::o;9128:413::-;9221:4;9238:24;9265:11;:25;9277:12;:10;:12::i;:::-;9265:25;;;;;;;;;;;;;;;:34;9291:7;9265:34;;;;;;;;;;;;;;;;9238:61;;9338:15;9318:16;:35;;9310:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9431:67;9440:12;:10;:12::i;:::-;9454:7;9482:15;9463:16;:34;9431:8;:67::i;:::-;9529:4;9522:11;;;9128:413;;;;:::o;16005:195::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16137:4:::1;16091:31;:43;16123:10;16091:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;16188:4;16154:19;:31;16174:10;16154:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;16005:195:::0;;:::o;7920:175::-;8006:4;8023:42;8033:12;:10;:12::i;:::-;8047:9;8058:6;8023:9;:42::i;:::-;8083:4;8076:11;;7920:175;;;;:::o;17954:208::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18091:15:::1;;;;;;;;;;;18048:59;;18071:18;18048:59;;;;;;;;;;;;18136:18;18118:15;;:36;;;;;;;;;;;;;;;;;;17954:208:::0;:::o;12719:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;12337:33::-;;;;;;;;;;;;;:::o;16556:182::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16672:8:::1;16641:19;:28;16661:7;16641:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16712:7;16696:34;;;16721:8;16696:34;;;;;;:::i;:::-;;;;;;;;16556:182:::0;;:::o;15776:221::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15902:4:::1;15894;15889:1;15873:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15872:26;;;;:::i;:::-;15871:35;;;;:::i;:::-;15861:6;:45;;15853:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15980:8;15970:6;:19;;;;:::i;:::-;15958:9;:31;;;;15776:221:::0;:::o;12147:35::-;;;;:::o;14645:515::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14706:64:::1;14723:4;14738:15;14756:13;:11;:13::i;:::-;14706:8;:64::i;:::-;14781:15;:31;;;14820:21;14851:4;14857:24;14875:4;14857:9;:24::i;:::-;14882:1;14884::::0;14886:7:::1;:5;:7::i;:::-;14894:15;14781:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14928:13;14921:29;;;14959:15;14977:14;14921:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15014:1;15005:6;:10;;;;15042:4;15026:13;;:20;;;;;;;;;;;;;;;;;;15071:4;15057:11;;:18;;;;;;;;;;;;;;;;;;15099:12;15086:10;:25;;;;15137:15;15122:12;:30;;;;14645:515::o:0;12260:28::-;;;;:::o;15260:134::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15377:8:::1;15364:9;:22;;;;:::i;:::-;15343:18;:43;;;;15260:134:::0;:::o;12515:27::-;;;;:::o;8103:151::-;8192:7;8219:11;:18;8231:5;8219:18;;;;;;;;;;;;;;;:27;8238:7;8219:27;;;;;;;;;;;;;;;;8212:34;;8103:151;;;;:::o;12189:33::-;;;;:::o;17832:114::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17925:13:::1;17909;:29;;;;17832:114:::0;:::o;6505:201::-;6317:12;:10;:12::i;:::-;6306:23;;:7;:5;:7::i;:::-;:23;;;6298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6614:1:::1;6594:22;;:8;:22;;::::0;6586:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6670:28;6689:8;6670:18;:28::i;:::-;6505:201:::0;:::o;12229:24::-;;;;:::o;5687:98::-;5740:7;5767:10;5760:17;;5687:98;:::o;11261:346::-;11380:1;11363:19;;:5;:19;;;11355:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11461:1;11442:21;;:7;:21;;;11434:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11545:6;11515:11;:18;11527:5;11515:18;;;;;;;;;;;;;;;:27;11534:7;11515:27;;;;;;;;;;;;;;;:36;;;;11583:7;11567:32;;11576:5;11567:32;;;11592:6;11567:32;;;;;;:::i;:::-;;;;;;;;11261:346;;;:::o;18524:3185::-;18638:1;18622:18;;:4;:18;;;18614:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18715:1;18701:16;;:2;:16;;;18693:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18784:1;18774:6;:11;18770:93;;18802:28;18818:4;18824:2;18828:1;18802:15;:28::i;:::-;18845:7;;18770:93;18879:14;;;;;;;;;;;18875:1310;;;18922:7;:5;:7::i;:::-;18914:15;;:4;:15;;;;:32;;;;;18939:7;:5;:7::i;:::-;18933:13;;:2;:13;;;;18914:32;:52;;;;;18964:1;18950:16;;:2;:16;;;;18914:52;:77;;;;;18984:6;18970:21;;:2;:21;;;;18914:77;:90;;;;;18996:8;;;;;;;;;;;18995:9;18914:90;18910:1264;;;19054:12;19043:6;;19030:10;;:19;;;;:::i;:::-;19029:37;19025:183;;19146:2;19130:13;:18;;;;19186:2;19171:12;:17;;;;19025:183;19233:13;;;;;;;;;;;19228:150;;19279:19;:25;19299:4;19279:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19308:19;:23;19328:2;19308:23;;;;;;;;;;;;;;;;;;;;;;;;;19279:52;19271:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19228:150;19430:25;:31;19456:4;19430:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19466:31;:35;19498:2;19466:35;;;;;;;;;;;;;;;;;;;;;;;;;19465:36;19430:71;19426:733;;;19544:20;;19534:6;:30;;19526:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19679:9;;19662:13;19672:2;19662:9;:13::i;:::-;19653:6;:22;;;;:::i;:::-;:35;;19645:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19426:733;;;19788:25;:29;19814:2;19788:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19822:31;:37;19854:4;19822:37;;;;;;;;;;;;;;;;;;;;;;;;;19821:38;19788:71;19784:375;;;19902:20;;19892:6;:30;;19884:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19784:375;;;20012:31;:35;20044:2;20012:35;;;;;;;;;;;;;;;;;;;;;;;;;20007:152;;20106:9;;20089:13;20099:2;20089:9;:13::i;:::-;20080:6;:22;;;;:::i;:::-;:35;;20072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20007:152;19784:375;19426:733;18910:1264;18875:1310;20197:28;20228:24;20246:4;20228:9;:24::i;:::-;20197:55;;20265:12;20304:18;;20280:20;:42;;20265:57;;20353:7;:22;;;;;20364:11;;;;;;;;;;;20353:22;:35;;;;;20380:8;;;;;;;;;;;20379:9;20353:35;:71;;;;;20393:25;:31;20419:4;20393:31;;;;;;;;;;;;;;;;;;;;;;;;;20392:32;20353:71;:101;;;;;20429:19;:25;20449:4;20429:25;;;;;;;;;;;;;;;;;;;;;;;;;20428:26;20353:101;:146;;;;;20476:19;:23;20496:2;20476:23;;;;;;;;;;;;;;;;;;;;;;;;;20475:24;20353:146;20335:467;;;20595:1;20568:10;:24;20579:12;20568:24;;;;;;;;;;;;:28;20564:227;;;20627:4;20616:8;;:15;;;;;;;;;;;;;;;;;;20652:10;:8;:10::i;:::-;20694:5;20683:8;;:16;;;;;;;;;;;;;;;;;;20774:1;20747:10;:24;20758:12;20747:24;;;;;;;;;;;;:28;;;;:::i;:::-;20720:10;:24;20731:12;20720:24;;;;;;;;;;;:55;;;;20564:227;20335:467;20814:12;20830:8;;;;;;;;;;;20829:9;20814:24;;20940:19;:25;20960:4;20940:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20969:19;:23;20989:2;20969:23;;;;;;;;;;;;;;;;;;;;;;;;;20940:52;20936:100;;;21019:5;21009:15;;20936:100;21048:12;21153:7;21149:507;;;21205:25;:29;21231:2;21205:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;21254:1;21238:13;;:17;21205:50;21201:306;;;21283:34;21313:3;21283:25;21294:13;;21283:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;21276:41;;21201:306;;;21379:25;:31;21405:4;21379:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;21429:1;21414:12;;:16;21379:51;21375:132;;;21458:33;21487:3;21458:24;21469:12;;21458:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;21451:40;;21375:132;21201:306;21534:1;21527:4;:8;21523:91;;;21556:42;21572:4;21586;21593;21556:15;:42::i;:::-;21523:91;21640:4;21630:14;;;;;:::i;:::-;;;21149:507;21668:33;21684:4;21690:2;21694:6;21668:15;:33::i;:::-;18603:3106;;;;18524:3185;;;;:::o;6714:191::-;6788:16;6807:6;;;;;;;;;;;6788:25;;6833:8;6824:6;;:17;;;;;;;;;;;;;;;;;;6888:8;6857:40;;6878:8;6857:40;;;;;;;;;;;;6777:128;6714:191;:::o;21717:588::-;21843:21;21881:1;21867:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21843:40;;21911:4;21893;21898:1;21893:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21937:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21927:4;21932:1;21927:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21972:62;21989:4;22004:15;22022:11;21972:8;:62::i;:::-;22073:15;:66;;;22154:11;22180:1;22224:4;22251;22271:15;22073:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21772:533;21717:588;:::o;17386:188::-;17503:5;17469:25;:31;17495:4;17469:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17560:5;17526:40;;17554:4;17526:40;;;;;;;;;;;;17386:188;;:::o;9549:698::-;9673:1;9655:20;;:6;:20;;;9647:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9757:1;9736:23;;:9;:23;;;9728:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9811:47;9832:6;9840:9;9851:6;9811:20;:47::i;:::-;9871:21;9895:9;:17;9905:6;9895:17;;;;;;;;;;;;;;;;9871:41;;9948:6;9931:13;:23;;9923:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10069:6;10053:13;:22;10033:9;:17;10043:6;10033:17;;;;;;;;;;;;;;;:42;;;;10121:6;10097:9;:20;10107:9;10097:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10162:9;10145:35;;10154:6;10145:35;;;10173:6;10145:35;;;;;;:::i;:::-;;;;;;;;10193:46;10213:6;10221:9;10232:6;10193:19;:46::i;:::-;9636:611;9549:698;;;:::o;22313:584::-;22352:23;22378:24;22396:4;22378:9;:24::i;:::-;22352:50;;22413:12;22461:1;22442:15;:20;22438:59;;22479:7;;;;22438:59;22531:13;;22513:15;:31;22509:95;;;22579:13;;22561:31;;22509:95;22667:26;22696:15;22667:44;;22724:36;22741:18;22724:16;:36::i;:::-;22773:16;22792:21;22773:40;;22847:15;;;;;;;;;;;22839:29;;22876:8;22839:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22826:63;;;;;22341:556;;;;22313:584;:::o;3695:98::-;3753:7;3784:1;3780;:5;;;;:::i;:::-;3773:12;;3695:98;;;;:::o;3801:::-;3859:7;3890:1;3886;:5;;;;:::i;:::-;3879:12;;3801:98;;;;:::o;11615:91::-;;;;:::o;11714: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:116::-;9409:21;9424:5;9409:21;:::i;:::-;9402:5;9399:32;9389:60;;9445:1;9442;9435:12;9389:60;9339:116;:::o;9461:133::-;9504:5;9542:6;9529:20;9520:29;;9558:30;9582:5;9558:30;:::i;:::-;9461:133;;;;:::o;9600:468::-;9665:6;9673;9722:2;9710:9;9701:7;9697:23;9693:32;9690:119;;;9728:79;;:::i;:::-;9690:119;9848:1;9873:53;9918:7;9909:6;9898:9;9894:22;9873:53;:::i;:::-;9863:63;;9819:117;9975:2;10001:50;10043:7;10034:6;10023:9;10019:22;10001:50;:::i;:::-;9991:60;;9946:115;9600:468;;;;;:::o;10074:323::-;10130:6;10179:2;10167:9;10158:7;10154:23;10150:32;10147:119;;;10185:79;;:::i;:::-;10147:119;10305:1;10330:50;10372:7;10363:6;10352:9;10348:22;10330:50;:::i;:::-;10320:60;;10276:114;10074:323;;;;:::o;10403:474::-;10471:6;10479;10528:2;10516:9;10507:7;10503:23;10499:32;10496:119;;;10534:79;;:::i;:::-;10496:119;10654:1;10679:53;10724:7;10715:6;10704:9;10700:22;10679:53;:::i;:::-;10669:63;;10625:117;10781:2;10807:53;10852:7;10843:6;10832:9;10828:22;10807:53;:::i;:::-;10797:63;;10752:118;10403:474;;;;;:::o;10883:180::-;10931:77;10928:1;10921:88;11028:4;11025:1;11018:15;11052:4;11049:1;11042:15;11069:320;11113:6;11150:1;11144:4;11140:12;11130:22;;11197:1;11191:4;11187:12;11218:18;11208:81;;11274:4;11266:6;11262:17;11252:27;;11208:81;11336:2;11328:6;11325:14;11305:18;11302:38;11299:84;;11355:18;;:::i;:::-;11299:84;11120:269;11069:320;;;:::o;11395:182::-;11535:34;11531:1;11523:6;11519:14;11512:58;11395:182;:::o;11583:366::-;11725:3;11746:67;11810:2;11805:3;11746:67;:::i;:::-;11739:74;;11822:93;11911:3;11822:93;:::i;:::-;11940:2;11935:3;11931:12;11924:19;;11583:366;;;:::o;11955:419::-;12121:4;12159:2;12148:9;12144:18;12136:26;;12208:9;12202:4;12198:20;12194:1;12183:9;12179:17;12172:47;12236:131;12362:4;12236:131;:::i;:::-;12228:139;;11955:419;;;:::o;12380:180::-;12428:77;12425:1;12418:88;12525:4;12522:1;12515:15;12549:4;12546:1;12539:15;12566:410;12606:7;12629:20;12647:1;12629:20;:::i;:::-;12624:25;;12663:20;12681:1;12663:20;:::i;:::-;12658:25;;12718:1;12715;12711:9;12740:30;12758:11;12740:30;:::i;:::-;12729:41;;12919:1;12910:7;12906:15;12903:1;12900:22;12880:1;12873:9;12853:83;12830:139;;12949:18;;:::i;:::-;12830:139;12614:362;12566:410;;;;:::o;12982:180::-;13030:77;13027:1;13020:88;13127:4;13124:1;13117:15;13151:4;13148:1;13141:15;13168:185;13208:1;13225:20;13243:1;13225:20;:::i;:::-;13220:25;;13259:20;13277:1;13259:20;:::i;:::-;13254:25;;13298:1;13288:35;;13303:18;;:::i;:::-;13288:35;13345:1;13342;13338:9;13333:14;;13168:185;;;;:::o;13359:234::-;13499:34;13495:1;13487:6;13483:14;13476:58;13568:17;13563:2;13555:6;13551:15;13544:42;13359:234;:::o;13599:366::-;13741:3;13762:67;13826:2;13821:3;13762:67;:::i;:::-;13755:74;;13838:93;13927:3;13838:93;:::i;:::-;13956:2;13951:3;13947:12;13940:19;;13599:366;;;:::o;13971:419::-;14137:4;14175:2;14164:9;14160:18;14152:26;;14224:9;14218:4;14214:20;14210:1;14199:9;14195:17;14188:47;14252:131;14378:4;14252:131;:::i;:::-;14244:139;;13971:419;;;:::o;14396:227::-;14536:34;14532:1;14524:6;14520:14;14513:58;14605:10;14600:2;14592:6;14588:15;14581:35;14396:227;:::o;14629:366::-;14771:3;14792:67;14856:2;14851:3;14792:67;:::i;:::-;14785:74;;14868:93;14957:3;14868:93;:::i;:::-;14986:2;14981:3;14977:12;14970:19;;14629:366;;;:::o;15001:419::-;15167:4;15205:2;15194:9;15190:18;15182:26;;15254:9;15248:4;15244:20;15240:1;15229:9;15225:17;15218:47;15282:131;15408:4;15282:131;:::i;:::-;15274:139;;15001:419;;;:::o;15426:191::-;15466:3;15485:20;15503:1;15485:20;:::i;:::-;15480:25;;15519:20;15537:1;15519:20;:::i;:::-;15514:25;;15562:1;15559;15555:9;15548:16;;15583:3;15580:1;15577:10;15574:36;;;15590:18;;:::i;:::-;15574:36;15426:191;;;;:::o;15623:180::-;15671:77;15668:1;15661:88;15768:4;15765:1;15758:15;15792:4;15789:1;15782:15;15809:233;15848:3;15871:24;15889:5;15871:24;:::i;:::-;15862:33;;15917:66;15910:5;15907:77;15904:103;;15987:18;;:::i;:::-;15904:103;16034:1;16027:5;16023:13;16016:20;;15809:233;;;:::o;16048:147::-;16149:11;16186:3;16171:18;;16048:147;;;;:::o;16201:114::-;;:::o;16321:398::-;16480:3;16501:83;16582:1;16577:3;16501:83;:::i;:::-;16494:90;;16593:93;16682:3;16593:93;:::i;:::-;16711:1;16706:3;16702:11;16695:18;;16321:398;;;:::o;16725:379::-;16909:3;16931:147;17074:3;16931:147;:::i;:::-;16924:154;;17095:3;17088:10;;16725:379;;;:::o;17110:162::-;17250:14;17246:1;17238:6;17234:14;17227:38;17110:162;:::o;17278:366::-;17420:3;17441:67;17505:2;17500:3;17441:67;:::i;:::-;17434:74;;17517:93;17606:3;17517:93;:::i;:::-;17635:2;17630:3;17626:12;17619:19;;17278:366;;;:::o;17650:419::-;17816:4;17854:2;17843:9;17839:18;17831:26;;17903:9;17897:4;17893:20;17889:1;17878:9;17874:17;17867:47;17931:131;18057:4;17931:131;:::i;:::-;17923:139;;17650:419;;;:::o;18075:244::-;18215:34;18211:1;18203:6;18199:14;18192:58;18284:27;18279:2;18271:6;18267:15;18260:52;18075:244;:::o;18325:366::-;18467:3;18488:67;18552:2;18547:3;18488:67;:::i;:::-;18481:74;;18564:93;18653:3;18564:93;:::i;:::-;18682:2;18677:3;18673:12;18666:19;;18325:366;;;:::o;18697:419::-;18863:4;18901:2;18890:9;18886:18;18878:26;;18950:9;18944:4;18940:20;18936:1;18925:9;18921:17;18914:47;18978:131;19104:4;18978:131;:::i;:::-;18970:139;;18697:419;;;:::o;19122:224::-;19262:34;19258:1;19250:6;19246:14;19239:58;19331:7;19326:2;19318:6;19314:15;19307:32;19122:224;:::o;19352:366::-;19494:3;19515:67;19579:2;19574:3;19515:67;:::i;:::-;19508:74;;19591:93;19680:3;19591:93;:::i;:::-;19709:2;19704:3;19700:12;19693:19;;19352:366;;;:::o;19724:419::-;19890:4;19928:2;19917:9;19913:18;19905:26;;19977:9;19971:4;19967:20;19963:1;19952:9;19948:17;19941:47;20005:131;20131:4;20005:131;:::i;:::-;19997:139;;19724:419;;;:::o;20149:223::-;20289:34;20285:1;20277:6;20273:14;20266:58;20358:6;20353:2;20345:6;20341:15;20334:31;20149:223;:::o;20378:366::-;20520:3;20541:67;20605:2;20600:3;20541:67;:::i;:::-;20534:74;;20617:93;20706:3;20617:93;:::i;:::-;20735:2;20730:3;20726:12;20719:19;;20378:366;;;:::o;20750:419::-;20916:4;20954:2;20943:9;20939:18;20931:26;;21003:9;20997:4;20993:20;20989:1;20978:9;20974:17;20967:47;21031:131;21157:4;21031:131;:::i;:::-;21023:139;;20750:419;;;:::o;21175:85::-;21220:7;21249:5;21238:16;;21175:85;;;:::o;21266:158::-;21324:9;21357:61;21375:42;21384:32;21410:5;21384:32;:::i;:::-;21375:42;:::i;:::-;21357:61;:::i;:::-;21344:74;;21266:158;;;:::o;21430:147::-;21525:45;21564:5;21525:45;:::i;:::-;21520:3;21513:58;21430:147;;:::o;21583:807::-;21832:4;21870:3;21859:9;21855:19;21847:27;;21884:71;21952:1;21941:9;21937:17;21928:6;21884:71;:::i;:::-;21965:72;22033:2;22022:9;22018:18;22009:6;21965:72;:::i;:::-;22047:80;22123:2;22112:9;22108:18;22099:6;22047:80;:::i;:::-;22137;22213:2;22202:9;22198:18;22189:6;22137:80;:::i;:::-;22227:73;22295:3;22284:9;22280:19;22271:6;22227:73;:::i;:::-;22310;22378:3;22367:9;22363:19;22354:6;22310:73;:::i;:::-;21583:807;;;;;;;;;:::o;22396:143::-;22453:5;22484:6;22478:13;22469:22;;22500:33;22527:5;22500:33;:::i;:::-;22396:143;;;;:::o;22545:663::-;22633:6;22641;22649;22698:2;22686:9;22677:7;22673:23;22669:32;22666:119;;;22704:79;;:::i;:::-;22666:119;22824:1;22849:64;22905:7;22896:6;22885:9;22881:22;22849:64;:::i;:::-;22839:74;;22795:128;22962:2;22988:64;23044:7;23035:6;23024:9;23020:22;22988:64;:::i;:::-;22978:74;;22933:129;23101:2;23127:64;23183:7;23174:6;23163:9;23159:22;23127:64;:::i;:::-;23117:74;;23072:129;22545:663;;;;;:::o;23214:332::-;23335:4;23373:2;23362:9;23358:18;23350:26;;23386:71;23454:1;23443:9;23439:17;23430:6;23386:71;:::i;:::-;23467:72;23535:2;23524:9;23520:18;23511:6;23467:72;:::i;:::-;23214:332;;;;;:::o;23552:137::-;23606:5;23637:6;23631:13;23622:22;;23653:30;23677:5;23653:30;:::i;:::-;23552:137;;;;:::o;23695:345::-;23762:6;23811:2;23799:9;23790:7;23786:23;23782:32;23779:119;;;23817:79;;:::i;:::-;23779:119;23937:1;23962:61;24015:7;24006:6;23995:9;23991:22;23962:61;:::i;:::-;23952:71;;23908:125;23695:345;;;;:::o;24046:225::-;24186:34;24182:1;24174:6;24170:14;24163:58;24255:8;24250:2;24242:6;24238:15;24231:33;24046:225;:::o;24277:366::-;24419:3;24440:67;24504:2;24499:3;24440:67;:::i;:::-;24433:74;;24516:93;24605:3;24516:93;:::i;:::-;24634:2;24629:3;24625:12;24618:19;;24277:366;;;:::o;24649:419::-;24815:4;24853:2;24842:9;24838:18;24830:26;;24902:9;24896:4;24892:20;24888:1;24877:9;24873:17;24866:47;24930:131;25056:4;24930:131;:::i;:::-;24922:139;;24649:419;;;:::o;25074:223::-;25214:34;25210:1;25202:6;25198:14;25191:58;25283:6;25278:2;25270:6;25266:15;25259:31;25074:223;:::o;25303:366::-;25445:3;25466:67;25530:2;25525:3;25466:67;:::i;:::-;25459:74;;25542:93;25631:3;25542:93;:::i;:::-;25660:2;25655:3;25651:12;25644:19;;25303:366;;;:::o;25675:419::-;25841:4;25879:2;25868:9;25864:18;25856:26;;25928:9;25922:4;25918:20;25914:1;25903:9;25899:17;25892:47;25956:131;26082:4;25956:131;:::i;:::-;25948:139;;25675:419;;;:::o;26100:221::-;26240:34;26236:1;26228:6;26224:14;26217:58;26309:4;26304:2;26296:6;26292:15;26285:29;26100:221;:::o;26327:366::-;26469:3;26490:67;26554:2;26549:3;26490:67;:::i;:::-;26483:74;;26566:93;26655:3;26566:93;:::i;:::-;26684:2;26679:3;26675:12;26668:19;;26327:366;;;:::o;26699:419::-;26865:4;26903:2;26892:9;26888:18;26880:26;;26952:9;26946:4;26942:20;26938:1;26927:9;26923:17;26916:47;26980:131;27106:4;26980:131;:::i;:::-;26972:139;;26699:419;;;:::o;27124:224::-;27264:34;27260:1;27252:6;27248:14;27241:58;27333:7;27328:2;27320:6;27316:15;27309:32;27124:224;:::o;27354:366::-;27496:3;27517:67;27581:2;27576:3;27517:67;:::i;:::-;27510:74;;27593:93;27682:3;27593:93;:::i;:::-;27711:2;27706:3;27702:12;27695:19;;27354:366;;;:::o;27726:419::-;27892:4;27930:2;27919:9;27915:18;27907:26;;27979:9;27973:4;27969:20;27965:1;27954:9;27950:17;27943:47;28007:131;28133:4;28007:131;:::i;:::-;27999:139;;27726:419;;;:::o;28151:222::-;28291:34;28287:1;28279:6;28275:14;28268:58;28360:5;28355:2;28347:6;28343:15;28336:30;28151:222;:::o;28379:366::-;28521:3;28542:67;28606:2;28601:3;28542:67;:::i;:::-;28535:74;;28618:93;28707:3;28618:93;:::i;:::-;28736:2;28731:3;28727:12;28720:19;;28379:366;;;:::o;28751:419::-;28917:4;28955:2;28944:9;28940:18;28932:26;;29004:9;28998:4;28994:20;28990:1;28979:9;28975:17;28968:47;29032:131;29158:4;29032:131;:::i;:::-;29024:139;;28751:419;;;:::o;29176:172::-;29316:24;29312:1;29304:6;29300:14;29293:48;29176:172;:::o;29354:366::-;29496:3;29517:67;29581:2;29576:3;29517:67;:::i;:::-;29510:74;;29593:93;29682:3;29593:93;:::i;:::-;29711:2;29706:3;29702:12;29695:19;;29354:366;;;:::o;29726:419::-;29892:4;29930:2;29919:9;29915:18;29907:26;;29979:9;29973:4;29969:20;29965:1;29954:9;29950:17;29943:47;30007:131;30133:4;30007:131;:::i;:::-;29999:139;;29726:419;;;:::o;30151:240::-;30291:34;30287:1;30279:6;30275:14;30268:58;30360:23;30355:2;30347:6;30343:15;30336:48;30151:240;:::o;30397:366::-;30539:3;30560:67;30624:2;30619:3;30560:67;:::i;:::-;30553:74;;30636:93;30725:3;30636:93;:::i;:::-;30754:2;30749:3;30745:12;30738:19;;30397:366;;;:::o;30769:419::-;30935:4;30973:2;30962:9;30958:18;30950:26;;31022:9;31016:4;31012:20;31008:1;30997:9;30993:17;30986:47;31050:131;31176:4;31050:131;:::i;:::-;31042:139;;30769:419;;;:::o;31194:169::-;31334:21;31330:1;31322:6;31318:14;31311:45;31194:169;:::o;31369:366::-;31511:3;31532:67;31596:2;31591:3;31532:67;:::i;:::-;31525:74;;31608:93;31697:3;31608:93;:::i;:::-;31726:2;31721:3;31717:12;31710:19;;31369:366;;;:::o;31741:419::-;31907:4;31945:2;31934:9;31930:18;31922:26;;31994:9;31988:4;31984:20;31980:1;31969:9;31965:17;31958:47;32022:131;32148:4;32022:131;:::i;:::-;32014:139;;31741:419;;;:::o;32166:241::-;32306:34;32302:1;32294:6;32290:14;32283:58;32375:24;32370:2;32362:6;32358:15;32351:49;32166:241;:::o;32413:366::-;32555:3;32576:67;32640:2;32635:3;32576:67;:::i;:::-;32569:74;;32652:93;32741:3;32652:93;:::i;:::-;32770:2;32765:3;32761:12;32754:19;;32413:366;;;:::o;32785:419::-;32951:4;32989:2;32978:9;32974:18;32966:26;;33038:9;33032:4;33028:20;33024:1;33013:9;33009:17;33002:47;33066:131;33192:4;33066:131;:::i;:::-;33058:139;;32785:419;;;:::o;33210:194::-;33250:4;33270:20;33288:1;33270:20;:::i;:::-;33265:25;;33304:20;33322:1;33304:20;:::i;:::-;33299:25;;33348:1;33345;33341:9;33333:17;;33372:1;33366:4;33363:11;33360:37;;;33377:18;;:::i;:::-;33360:37;33210:194;;;;:::o;33410:180::-;33458:77;33455:1;33448:88;33555:4;33552:1;33545:15;33579:4;33576:1;33569:15;33596:143;33653:5;33684:6;33678:13;33669:22;;33700:33;33727:5;33700:33;:::i;:::-;33596:143;;;;:::o;33745:351::-;33815:6;33864:2;33852:9;33843:7;33839:23;33835:32;33832:119;;;33870:79;;:::i;:::-;33832:119;33990:1;34015:64;34071:7;34062:6;34051:9;34047:22;34015:64;:::i;:::-;34005:74;;33961:128;33745:351;;;;:::o;34102:114::-;34169:6;34203:5;34197:12;34187:22;;34102:114;;;:::o;34222:184::-;34321:11;34355:6;34350:3;34343:19;34395:4;34390:3;34386:14;34371:29;;34222:184;;;;:::o;34412:132::-;34479:4;34502:3;34494:11;;34532:4;34527:3;34523:14;34515:22;;34412:132;;;:::o;34550:108::-;34627:24;34645:5;34627:24;:::i;:::-;34622:3;34615:37;34550:108;;:::o;34664:179::-;34733:10;34754:46;34796:3;34788:6;34754:46;:::i;:::-;34832:4;34827:3;34823:14;34809:28;;34664:179;;;;:::o;34849:113::-;34919:4;34951;34946:3;34942:14;34934:22;;34849:113;;;:::o;34998:732::-;35117:3;35146:54;35194:5;35146:54;:::i;:::-;35216:86;35295:6;35290:3;35216:86;:::i;:::-;35209:93;;35326:56;35376:5;35326:56;:::i;:::-;35405:7;35436:1;35421:284;35446:6;35443:1;35440:13;35421:284;;;35522:6;35516:13;35549:63;35608:3;35593:13;35549:63;:::i;:::-;35542:70;;35635:60;35688:6;35635:60;:::i;:::-;35625:70;;35481:224;35468:1;35465;35461:9;35456:14;;35421:284;;;35425:14;35721:3;35714:10;;35122:608;;;34998:732;;;;:::o;35736:831::-;35999:4;36037:3;36026:9;36022:19;36014:27;;36051:71;36119:1;36108:9;36104:17;36095:6;36051:71;:::i;:::-;36132:80;36208:2;36197:9;36193:18;36184:6;36132:80;:::i;:::-;36259:9;36253:4;36249:20;36244:2;36233:9;36229:18;36222:48;36287:108;36390:4;36381:6;36287:108;:::i;:::-;36279:116;;36405:72;36473:2;36462:9;36458:18;36449:6;36405:72;:::i;:::-;36487:73;36555:3;36544:9;36540:19;36531:6;36487:73;:::i;:::-;35736:831;;;;;;;;:::o;36573:225::-;36713:34;36709:1;36701:6;36697:14;36690:58;36782:8;36777:2;36769:6;36765:15;36758:33;36573:225;:::o;36804:366::-;36946:3;36967:67;37031:2;37026:3;36967:67;:::i;:::-;36960:74;;37043:93;37132:3;37043:93;:::i;:::-;37161:2;37156:3;37152:12;37145:19;;36804:366;;;:::o;37176:419::-;37342:4;37380:2;37369:9;37365:18;37357:26;;37429:9;37423:4;37419:20;37415:1;37404:9;37400:17;37393:47;37457:131;37583:4;37457:131;:::i;:::-;37449:139;;37176:419;;;:::o

Swarm Source

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