ETH Price: $2,481.27 (-0.72%)

Token

ELON (ELON)
 

Overview

Max Total Supply

42,000,000,000 ELON

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.312352342210145289 ELON

Value
$0.00
0x9c734993D7E60774CE2231e0f355921f0aFCaAf1
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:
ELON

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**


███████╗██╗░░░░░░██████╗░███╗░░░██╗
██╔════╝██║░░░░░██╔═══██╗████╗░░██║
█████╗░░██║░░░░░██║░░░██║██╔██╗░██║
██╔══╝░░██║░░░░░██║░░░██║██║╚██╗██║
███████╗███████╗╚██████╔╝██║░╚████║
╚══════╝╚══════╝░╚═════╝░╚═╝░░╚═══╝
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

Web: https://elon.fan/

TG: https://t.me/elonfancoin

Twitter: https://twitter.com/elonfancoin



If You Care About Freedom of Speech, Support $ELON

If you don't, GO FUCK YOURSELF

*/


// SPDX-License-Identifier: MIT

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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

    function transfer(address 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");

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

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, 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);
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

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

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

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

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

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



contract ELON is ERC20, Ownable {

    UniswapV2Router public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    uint256 public maxWallet;
    uint256 public maxTxnAmount;

    bool private swapping;
    uint256 public swapTokensAtAmount;
    uint256 public swapLimit;

    address devWallet;

    mapping (address => bool) public bot;

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

    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;

    uint256 private buyFee;
    uint256 private sellFee;

    uint256 public taxedTokens;

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

    mapping (address => bool) public automatedMarketMakerPairs;

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

    event EnabledTrading();

    event RemovedLimits();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedTxnAmount(uint256 newAmount);

    event UpdatedMaxWalletAmount(uint256 newAmount);

    event MaxTransactionExclusion(address _address, bool excluded);

    event OwnerManualCollection(uint256 timestamp);

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


    constructor() ERC20(unicode"ELON", unicode"ELON") {

        UniswapV2Router _uniswapV2Router = UniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

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

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

        buyFee = 20;
        sellFee = 20;

        uint256 totalSupply = 42 * 10**27;

        maxWallet = totalSupply * 2 / 100; // 2% MAX WALLET
        maxTxnAmount = totalSupply * 2 / 100; // 2% MAX TRANSACTION
        swapTokensAtAmount = totalSupply * 10 / 1000; // 1% SWAP THRESHOLD
        swapLimit = 5; // 1% SWAP THRESHOLD

        devWallet = payable(_msgSender());

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

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

        _generateSupply(devWallet, totalSupply);
    }

    receive() external payable {}

    // ENABLE TRADING
    function enableELON() external onlyOwner {
        require(!tradingLive, "Trading already live!");
        tradingLive = true;
        swapEnabled = true;
        emit EnabledTrading();
    }

    // REMOVE TXN LIMITS
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        transferDelayEnabled = false;
        swapTokensAtAmount = totalSupply() * 1 / 1000; // 0.1% SWAP THRESHOLD
        emit RemovedLimits();
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 2 / 1000)/1e18, "Cannot set max txn amount lower than 0.2%");
        maxTxnAmount = newNum * (10**18);
        emit UpdatedTxnAmount(maxTxnAmount);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 3 / 1000)/1e18, "Cannot set max wallet amount lower than 0.3%");
        maxWallet = newNum * (10**18);
        emit UpdatedMaxWalletAmount(maxWallet);
    }

     function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
         require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
         require(newAmount <= totalSupply() * 5 / 1000, "Swap amount cannot be higher than 0.5% total supply.");
         swapTokensAtAmount = newAmount;
     }

     function updateFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
         buyFee = _buyFee;
         sellFee = _sellFee;
         require((buyFee / 100) <= 25, "Must keep fees at 25% or less");
         require((sellFee / 100) <= 25, "Must keep fees at 25% or less");
     }

     function updateBot(address wallet, bool isBot) external onlyOwner {
         bot[wallet] = isBot;
     }

     function updateBots(address[] calldata wallets, bool isBot) external onlyOwner {
         for(uint256 i = 0; i < wallets.length; i++){
             bot[wallets[i]] = isBot;
         }
     }

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

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

        _setAutomatedMarketMakerPair(pair, value);
        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

        excludeFromMaxTransaction(pair, value);

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "amount must be greater than 0");

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

        require(!bot[from] && !bot[to]);

        if(limitsInEffect){
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){

                // LAUNCH TRANSFER DELAY
                if (transferDelayEnabled){
                    if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)){
                      require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }

                // BUY TXN
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                        require(amount <= maxTxnAmount, "Buy transfer amount exceeds the max txn.");
                        require(amount + balanceOf(to) <= maxWallet, "Cannot Exceed max wallet");
                }
                // SELL TXN
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                        require(amount <= maxTxnAmount, "Sell transfer amount exceeds the max txn.");
                }
                else if (!_isExcludedMaxTransactionAmount[to]){
                    require(amount + balanceOf(to) <= maxWallet, "Cannot Exceed max wallet");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if(canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;

            collectFees();

            swapping = false;
        }

        bool takeFee = true;

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

        uint256 fees = 0;

        if(takeFee){
            // SELL TXN
            if (automatedMarketMakerPairs[to] && sellFee > 0){
                fees = amount * sellFee / 100;
                taxedTokens += fees;
            }

            // BUY TXN
            else if(automatedMarketMakerPairs[from] && buyFee > 0) {
          	    fees = amount * buyFee / 100;
                taxedTokens += fees;
            }

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

        	amount -= fees;
        }

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

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

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

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            address(0xdead),
            block.timestamp
        );
    }

    function collectFees() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = taxedTokens;

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

        if (limitsInEffect){
          if (contractBalance > swapTokensAtAmount * swapLimit){
              contractBalance = swapTokensAtAmount * swapLimit;
          }
        } else {
          if (contractBalance > swapTokensAtAmount){
              contractBalance = swapTokensAtAmount;
          }
        }

        bool success;

        swapTokensForEth(contractBalance);

        taxedTokens = 0;

        if(address(this).balance > 0){
            (success,) = address(devWallet).call{value: address(this).balance}("");
        }
    }

    function manualCollect() external onlyOwner {
        require(balanceOf(address(this)) >= 0, "No tokens to swap");
        swapping = true;
        collectFees();
        swapping = false;
        emit OwnerManualCollection(block.timestamp);
    }

    function RescueStuckETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function rescueStuckTokens(IERC20 token, uint256 amount, address to) external onlyOwner {
        require(address(token) != address(0), "Token address cannot be zero");
        if(amount == 0){
            amount = token.balanceOf(address(this));
        } 

        token.transfer(to, amount);
    }

}

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":[],"name":"EnabledTrading","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":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerManualCollection","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedTxnAmount","type":"event"},{"inputs":[],"name":"RescueStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"bot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableELON","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"manualCollect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"rescueStuckTokens","outputs":[],"stateMutability":"nonpayable","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":"swapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"taxedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingLive","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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 UniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"updateBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"updateBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","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":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600d5f6101000a81548160ff0219169083151502179055505f600d60016101000a81548160ff0219169083151502179055505f600d60026101000a81548160ff0219169083151502179055505f600f5f6101000a81548160ff02191690831515021790555034801562000077575f80fd5b506040518060400160405280600481526020017f454c4f4e000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f454c4f4e000000000000000000000000000000000000000000000000000000008152508160039081620000f5919062000cb9565b50806004908162000107919062000cb9565b5050505f6200011b620005ea60201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001e3816001620005f160201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000261573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000287919062000e02565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ed573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000313919062000e02565b6040518363ffffffff1660e01b81526004016200033292919062000e43565b6020604051808303815f875af11580156200034f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000375919062000e02565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620003bd60a0516001620005f160201b60201c565b620003d260a0516001620006ea60201b60201c565b601460108190555060146011819055505f6b87b595f2383509fe100000009050606460028262000403919062000e9b565b6200040f919062000f12565b600681905550606460028262000426919062000e9b565b62000432919062000f12565b6007819055506103e8600a826200044a919062000e9b565b62000456919062000f12565b6009819055506005600a8190555062000474620005ea60201b60201c565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004d5620004c76200079a60201b60201c565b6001620007c260201b60201c565b62000509600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620007c260201b60201c565b6200051c306001620007c260201b60201c565b6200053161dead6001620007c260201b60201c565b62000553620005456200079a60201b60201c565b6001620005f160201b60201c565b62000587600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620005f160201b60201c565b6200059a306001620005f160201b60201c565b620005af61dead6001620005f160201b60201c565b620005e2600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826200090b60201b60201c565b5050620010d2565b5f33905090565b62000601620005ea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000692576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006899062000fa7565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620007508282620005f160201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007d2620005ea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000863576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200085a9062000fa7565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620008ff919062000fe3565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200097c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000973906200104c565b60405180910390fd5b8060025f8282546200098f91906200106c565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620009e391906200106c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a499190620010b7565b60405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ad157607f821691505b60208210810362000ae75762000ae662000a8c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b4b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b0e565b62000b57868362000b0e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000ba162000b9b62000b958462000b6f565b62000b78565b62000b6f565b9050919050565b5f819050919050565b62000bbc8362000b81565b62000bd462000bcb8262000ba8565b84845462000b1a565b825550505050565b5f90565b62000bea62000bdc565b62000bf781848462000bb1565b505050565b5b8181101562000c1e5762000c125f8262000be0565b60018101905062000bfd565b5050565b601f82111562000c6d5762000c378162000aed565b62000c428462000aff565b8101602085101562000c52578190505b62000c6a62000c618562000aff565b83018262000bfc565b50505b505050565b5f82821c905092915050565b5f62000c8f5f198460080262000c72565b1980831691505092915050565b5f62000ca9838362000c7e565b9150826002028217905092915050565b62000cc48262000a55565b67ffffffffffffffff81111562000ce05762000cdf62000a5f565b5b62000cec825462000ab9565b62000cf982828562000c22565b5f60209050601f83116001811462000d2f575f841562000d1a578287015190505b62000d26858262000c9c565b86555062000d95565b601f19841662000d3f8662000aed565b5f5b8281101562000d685784890151825560018201915060208501945060208101905062000d41565b8683101562000d88578489015162000d84601f89168262000c7e565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000dcc8262000da1565b9050919050565b62000dde8162000dc0565b811462000de9575f80fd5b50565b5f8151905062000dfc8162000dd3565b92915050565b5f6020828403121562000e1a5762000e1962000d9d565b5b5f62000e298482850162000dec565b91505092915050565b62000e3d8162000dc0565b82525050565b5f60408201905062000e585f83018562000e32565b62000e67602083018462000e32565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000ea78262000b6f565b915062000eb48362000b6f565b925082820262000ec48162000b6f565b9150828204841483151762000ede5762000edd62000e6e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f1e8262000b6f565b915062000f2b8362000b6f565b92508262000f3e5762000f3d62000ee5565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000f8f60208362000f49565b915062000f9c8262000f59565b602082019050919050565b5f6020820190508181035f83015262000fc08162000f81565b9050919050565b5f8115159050919050565b62000fdd8162000fc7565b82525050565b5f60208201905062000ff85f83018462000fd2565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001034601f8362000f49565b9150620010418262000ffe565b602082019050919050565b5f6020820190508181035f830152620010658162001026565b9050919050565b5f620010788262000b6f565b9150620010858362000b6f565b9250828201905080821115620010a0576200109f62000e6e565b5b92915050565b620010b18162000b6f565b82525050565b5f602082019050620010cc5f830184620010a6565b92915050565b60805160a051614f576200111e5f395f81816110010152818161189a0152612c3001525f8181610b5f01528181612bd9015281816134f5015281816135d401526135fb0152614f575ff3fe608060405260043610610254575f3560e01c80637571336a11610138578063c0246668116100b5578063dba432a211610079578063dba432a214610887578063dd62ed3e1461089d578063e2f45605146108d9578063f2fde38b14610903578063f8b45b051461092b578063fac1b9bc146109555761025b565b8063c0246668146107bb578063c18bc195146107e3578063c876d0b91461080b578063cf46f24c14610835578063d257b34f1461085f5761025b565b80639a7a23d6116100fc5780639a7a23d6146106b7578063a457c2d7146106df578063a9059cbb1461071b578063aeb9670414610757578063b62496f51461077f5761025b565b80637571336a146105e957806376d628b7146106115780638da5cb5b1461063b5780639014642b1461066557806395d89b411461068d5761025b565b8063313ce567116101d15780636a01f09c116101955780636a01f09c146105055780636db794371461052f5780636ddd17131461055757806370a0823114610581578063715018a6146105bd578063751039fc146105d35761025b565b8063313ce5671461040f578063353f234514610439578063395093511461047557806349bd5a5e146104b15780634a62bb65146104db5761025b565b80631694505e116102185780631694505e1461034157806318160ddd1461036b5780631cdaa84714610395578063203e727e146103ab57806323b872dd146103d35761025b565b806306fdde031461025f578063095ea7b3146102895780630ae912d0146102c557806310d5de53146102db57806311704f52146103175761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b5061027361097d565b6040516102809190613974565b60405180910390f35b348015610294575f80fd5b506102af60048036038101906102aa9190613a29565b610a0d565b6040516102bc9190613a81565b60405180910390f35b3480156102d0575f80fd5b506102d9610a2a565b005b3480156102e6575f80fd5b5061030160048036038101906102fc9190613a9a565b610b2d565b60405161030e9190613a81565b60405180910390f35b348015610322575f80fd5b5061032b610b4a565b6040516103389190613a81565b60405180910390f35b34801561034c575f80fd5b50610355610b5d565b6040516103629190613b20565b60405180910390f35b348015610376575f80fd5b5061037f610b81565b60405161038c9190613b48565b60405180910390f35b3480156103a0575f80fd5b506103a9610b8a565b005b3480156103b6575f80fd5b506103d160048036038101906103cc9190613b61565b610cdf565b005b3480156103de575f80fd5b506103f960048036038101906103f49190613b8c565b610e41565b6040516104069190613a81565b60405180910390f35b34801561041a575f80fd5b50610423610f33565b6040516104309190613bf7565b60405180910390f35b348015610444575f80fd5b5061045f600480360381019061045a9190613a9a565b610f3b565b60405161046c9190613a81565b60405180910390f35b348015610480575f80fd5b5061049b60048036038101906104969190613a29565b610f58565b6040516104a89190613a81565b60405180910390f35b3480156104bc575f80fd5b506104c5610fff565b6040516104d29190613c1f565b60405180910390f35b3480156104e6575f80fd5b506104ef611023565b6040516104fc9190613a81565b60405180910390f35b348015610510575f80fd5b50610519611035565b6040516105269190613b48565b60405180910390f35b34801561053a575f80fd5b5061055560048036038101906105509190613c38565b61103b565b005b348015610562575f80fd5b5061056b611187565b6040516105789190613a81565b60405180910390f35b34801561058c575f80fd5b506105a760048036038101906105a29190613a9a565b61119a565b6040516105b49190613b48565b60405180910390f35b3480156105c8575f80fd5b506105d16111df565b005b3480156105de575f80fd5b506105e7611332565b005b3480156105f4575f80fd5b5061060f600480360381019061060a9190613ca0565b61144f565b005b34801561061c575f80fd5b5061062561153d565b6040516106329190613b48565b60405180910390f35b348015610646575f80fd5b5061064f611543565b60405161065c9190613c1f565b60405180910390f35b348015610670575f80fd5b5061068b60048036038101906106869190613d19565b61156b565b005b348015610698575f80fd5b506106a1611772565b6040516106ae9190613974565b60405180910390f35b3480156106c2575f80fd5b506106dd60048036038101906106d89190613ca0565b611802565b005b3480156106ea575f80fd5b5061070560048036038101906107009190613a29565b61197a565b6040516107129190613a81565b60405180910390f35b348015610726575f80fd5b50610741600480360381019061073c9190613a29565b611a60565b60405161074e9190613a81565b60405180910390f35b348015610762575f80fd5b5061077d60048036038101906107789190613dca565b611a7d565b005b34801561078a575f80fd5b506107a560048036038101906107a09190613a9a565b611bb4565b6040516107b29190613a81565b60405180910390f35b3480156107c6575f80fd5b506107e160048036038101906107dc9190613ca0565b611bd1565b005b3480156107ee575f80fd5b5061080960048036038101906108049190613b61565b611d0d565b005b348015610816575f80fd5b5061081f611e6f565b60405161082c9190613a81565b60405180910390f35b348015610840575f80fd5b50610849611e81565b6040516108569190613b48565b60405180910390f35b34801561086a575f80fd5b5061088560048036038101906108809190613b61565b611e87565b005b348015610892575f80fd5b5061089b611fee565b005b3480156108a8575f80fd5b506108c360048036038101906108be9190613e27565b612138565b6040516108d09190613b48565b60405180910390f35b3480156108e4575f80fd5b506108ed6121ba565b6040516108fa9190613b48565b60405180910390f35b34801561090e575f80fd5b5061092960048036038101906109249190613a9a565b6121c0565b005b348015610936575f80fd5b5061093f612382565b60405161094c9190613b48565b60405180910390f35b348015610960575f80fd5b5061097b60048036038101906109769190613ca0565b612388565b005b60606003805461098c90613e92565b80601f01602080910402602001604051908101604052809291908181526020018280546109b890613e92565b8015610a035780601f106109da57610100808354040283529160200191610a03565b820191905f5260205f20905b8154815290600101906020018083116109e657829003601f168201915b5050505050905090565b5f610a20610a19612476565b848461247d565b6001905092915050565b610a32612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab790613f0c565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610ae590613f57565b5f6040518083038185875af1925050503d805f8114610b1f576040519150601f19603f3d011682016040523d82523d5f602084013e610b24565b606091505b50508091505050565b6014602052805f5260405f205f915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610b92612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790613f0c565b60405180910390fd5b5f610c2a3061119a565b1015610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290613fb5565b60405180910390fd5b600160085f6101000a81548160ff021916908315150217905550610c8d612640565b5f60085f6101000a81548160ff0219169083151502179055507f7704eca0c9eaa0b85444383d91c148463b321cff28fcb55afee0ca730b3a553342604051610cd59190613b48565b60405180910390a1565b610ce7612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6c90613f0c565b60405180910390fd5b670de0b6b3a76400006103e86002610d8b610b81565b610d959190614000565b610d9f919061406e565b610da9919061406e565b811015610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de29061410e565b60405180910390fd5b670de0b6b3a764000081610dff9190614000565b6007819055507fbd8a1f50bda6367cd3771d8453c2582c5f01613dd6d8ee271672f4943da806d3600754604051610e369190613b48565b60405180910390a150565b5f610e4d848484612769565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610e94612476565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a9061419c565b60405180910390fd5b610f2785610f1f612476565b85840361247d565b60019150509392505050565b5f6012905090565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f610ff5610f64612476565b848460015f610f71612476565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ff091906141ba565b61247d565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d5f9054906101000a900460ff1681565b600a5481565b611043612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890613f0c565b60405180910390fd5b8160108190555080601181905550601960646010546110f0919061406e565b1115611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890614237565b60405180910390fd5b60196064601154611142919061406e565b1115611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117a90614237565b60405180910390fd5b5050565b600d60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6111e7612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126c90613f0c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61133a612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf90613f0c565b60405180910390fd5b5f600d5f6101000a81548160ff0219169083151502179055505f600f5f6101000a81548160ff0219169083151502179055506103e86001611407610b81565b6114119190614000565b61141b919061406e565b6009819055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b611457612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dc90613f0c565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60125481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611573612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f890613f0c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361166f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116669061429f565b60405180910390fd5b5f82036116f1578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116af9190613c1f565b602060405180830381865afa1580156116ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ee91906142d1565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b815260040161172c9291906142fc565b6020604051808303815f875af1158015611748573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176c9190614337565b50505050565b60606004805461178190613e92565b80601f01602080910402602001604051908101604052809291908181526020018280546117ad90613e92565b80156117f85780601f106117cf576101008083540402835291602001916117f8565b820191905f5260205f20905b8154815290600101906020018083116117db57829003601f168201915b5050505050905090565b61180a612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f90613f0c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191d906143d2565b60405180910390fd5b61193082826133b0565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f8060015f611987612476565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3890614460565b60405180910390fd5b611a55611a4c612476565b8585840361247d565b600191505092915050565b5f611a73611a6c612476565b8484612769565b6001905092915050565b611a85612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a90613f0c565b60405180910390fd5b5f5b83839050811015611bae5781600c5f868685818110611b3757611b3661447e565b5b9050602002016020810190611b4c9190613a9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611ba6906144ab565b915050611b15565b50505050565b6015602052805f5260405f205f915054906101000a900460ff1681565b611bd9612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5e90613f0c565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d019190613a81565b60405180910390a25050565b611d15612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90613f0c565b60405180910390fd5b670de0b6b3a76400006103e86003611db9610b81565b611dc39190614000565b611dcd919061406e565b611dd7919061406e565b811015611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090614562565b60405180910390fd5b670de0b6b3a764000081611e2d9190614000565b6006819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc600654604051611e649190613b48565b60405180910390a150565b600f5f9054906101000a900460ff1681565b60075481565b611e8f612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1490613f0c565b60405180910390fd5b620186a06001611f2b610b81565b611f359190614000565b611f3f919061406e565b811015611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f78906145f0565b60405180910390fd5b6103e86005611f8e610b81565b611f989190614000565b611fa2919061406e565b811115611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb9061467e565b60405180910390fd5b8060098190555050565b611ff6612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207b90613f0c565b60405180910390fd5b600d60019054906101000a900460ff16156120d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cb906146e6565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff0219169083151502179055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b6121c8612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224d90613f0c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036122c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bb90614774565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b612390612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461241e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241590613f0c565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e290614802565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255090614890565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126339190613b48565b60405180910390a3505050565b5f61264a3061119a565b90505f60125490505f82148061265f57505f81145b1561266b575050612767565b600d5f9054906101000a900460ff16156126ae57600a5460095461268f9190614000565b8211156126a957600a546009546126a69190614000565b91505b6126bf565b6009548211156126be5760095491505b5b5f6126c983613458565b5f6012819055505f47111561276357600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161271d90613f57565b5f6040518083038185875af1925050503d805f8114612757576040519150601f19603f3d011682016040523d82523d5f602084013e61275c565b606091505b5050809150505b5050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce9061491e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283c906149ac565b60405180910390fd5b5f8111612887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287e90614a14565b60405180910390fd5b600d60019054906101000a900460ff166129765760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612936575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296c90614a7c565b60405180910390fd5b5b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612a145750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612a1c575f80fd5b600d5f9054906101000a900460ff161561302257612a38611543565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612aa65750612a76611543565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612ade57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b18575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b6b575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612bbe575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561302157600f5f9054906101000a900460ff1615612d47577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612c7f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612d465743600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfa90614b0a565b60405180910390fd5b43600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612de4575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612e8b57600754811115612e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2590614b98565b60405180910390fd5b600654612e3a8361119a565b82612e4591906141ba565b1115612e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7d90614c00565b60405180910390fd5b613020565b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612f28575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612f7757600754811115612f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6990614c8e565b60405180910390fd5b61301f565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661301e57600654612fd18361119a565b82612fdc91906141ba565b111561301d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301490614c00565b60405180910390fd5b5b5b5b5b5b5f61302c3061119a565b90505f60095482101590508080156130505750600d60029054906101000a900460ff165b8015613068575060085f9054906101000a900460ff16155b80156130bb575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561310e575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613161575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156131a257600160085f6101000a81548160ff021916908315150217905550613188612640565b5f60085f6101000a81548160ff0219169083151502179055505b5f6001905060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613242575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561324b575f90505b5f811561339c5760155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156132a957505f601154115b156132e7576064601154866132be9190614000565b6132c8919061406e565b90508060125f8282546132db91906141ba565b92505081905550613379565b60155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561333e57505f601054115b15613378576064601054866133539190614000565b61335d919061406e565b90508060125f82825461337091906141ba565b925050819055505b5b5f81111561338d5761338c87308361368b565b5b80856133999190614cac565b94505b6133a787878761368b565b50505050505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061340e828261144f565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561347457613473614cdf565b5b6040519080825280602002602001820160405280156134a25781602001602082028036833780820191505090505b50905030815f815181106134b9576134b861447e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561355c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135809190614d20565b816001815181106135945761359361447e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506135f9307f00000000000000000000000000000000000000000000000000000000000000008461247d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161365a959493929190614e3b565b5f604051808303815f87803b158015613671575f80fd5b505af1158015613683573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136f09061491e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161375e906149ac565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156137ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e190614f03565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461387891906141ba565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138dc9190613b48565b60405180910390a350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613921578082015181840152602081019050613906565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613946826138ea565b61395081856138f4565b9350613960818560208601613904565b6139698161392c565b840191505092915050565b5f6020820190508181035f83015261398c818461393c565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6139c58261399c565b9050919050565b6139d5816139bb565b81146139df575f80fd5b50565b5f813590506139f0816139cc565b92915050565b5f819050919050565b613a08816139f6565b8114613a12575f80fd5b50565b5f81359050613a23816139ff565b92915050565b5f8060408385031215613a3f57613a3e613994565b5b5f613a4c858286016139e2565b9250506020613a5d85828601613a15565b9150509250929050565b5f8115159050919050565b613a7b81613a67565b82525050565b5f602082019050613a945f830184613a72565b92915050565b5f60208284031215613aaf57613aae613994565b5b5f613abc848285016139e2565b91505092915050565b5f819050919050565b5f613ae8613ae3613ade8461399c565b613ac5565b61399c565b9050919050565b5f613af982613ace565b9050919050565b5f613b0a82613aef565b9050919050565b613b1a81613b00565b82525050565b5f602082019050613b335f830184613b11565b92915050565b613b42816139f6565b82525050565b5f602082019050613b5b5f830184613b39565b92915050565b5f60208284031215613b7657613b75613994565b5b5f613b8384828501613a15565b91505092915050565b5f805f60608486031215613ba357613ba2613994565b5b5f613bb0868287016139e2565b9350506020613bc1868287016139e2565b9250506040613bd286828701613a15565b9150509250925092565b5f60ff82169050919050565b613bf181613bdc565b82525050565b5f602082019050613c0a5f830184613be8565b92915050565b613c19816139bb565b82525050565b5f602082019050613c325f830184613c10565b92915050565b5f8060408385031215613c4e57613c4d613994565b5b5f613c5b85828601613a15565b9250506020613c6c85828601613a15565b9150509250929050565b613c7f81613a67565b8114613c89575f80fd5b50565b5f81359050613c9a81613c76565b92915050565b5f8060408385031215613cb657613cb5613994565b5b5f613cc3858286016139e2565b9250506020613cd485828601613c8c565b9150509250929050565b5f613ce8826139bb565b9050919050565b613cf881613cde565b8114613d02575f80fd5b50565b5f81359050613d1381613cef565b92915050565b5f805f60608486031215613d3057613d2f613994565b5b5f613d3d86828701613d05565b9350506020613d4e86828701613a15565b9250506040613d5f868287016139e2565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613d8a57613d89613d69565b5b8235905067ffffffffffffffff811115613da757613da6613d6d565b5b602083019150836020820283011115613dc357613dc2613d71565b5b9250929050565b5f805f60408486031215613de157613de0613994565b5b5f84013567ffffffffffffffff811115613dfe57613dfd613998565b5b613e0a86828701613d75565b93509350506020613e1d86828701613c8c565b9150509250925092565b5f8060408385031215613e3d57613e3c613994565b5b5f613e4a858286016139e2565b9250506020613e5b858286016139e2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613ea957607f821691505b602082108103613ebc57613ebb613e65565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613ef66020836138f4565b9150613f0182613ec2565b602082019050919050565b5f6020820190508181035f830152613f2381613eea565b9050919050565b5f81905092915050565b50565b5f613f425f83613f2a565b9150613f4d82613f34565b5f82019050919050565b5f613f6182613f37565b9150819050919050565b7f4e6f20746f6b656e7320746f20737761700000000000000000000000000000005f82015250565b5f613f9f6011836138f4565b9150613faa82613f6b565b602082019050919050565b5f6020820190508181035f830152613fcc81613f93565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61400a826139f6565b9150614015836139f6565b9250828202614023816139f6565b9150828204841483151761403a57614039613fd3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614078826139f6565b9150614083836139f6565b92508261409357614092614041565b5b828204905092915050565b7f43616e6e6f7420736574206d61782074786e20616d6f756e74206c6f776572205f8201527f7468616e20302e32250000000000000000000000000000000000000000000000602082015250565b5f6140f86029836138f4565b91506141038261409e565b604082019050919050565b5f6020820190508181035f830152614125816140ec565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6141866028836138f4565b91506141918261412c565b604082019050919050565b5f6020820190508181035f8301526141b38161417a565b9050919050565b5f6141c4826139f6565b91506141cf836139f6565b92508282019050808211156141e7576141e6613fd3565b5b92915050565b7f4d757374206b656570206665657320617420323525206f72206c6573730000005f82015250565b5f614221601d836138f4565b915061422c826141ed565b602082019050919050565b5f6020820190508181035f83015261424e81614215565b9050919050565b7f546f6b656e20616464726573732063616e6e6f74206265207a65726f000000005f82015250565b5f614289601c836138f4565b915061429482614255565b602082019050919050565b5f6020820190508181035f8301526142b68161427d565b9050919050565b5f815190506142cb816139ff565b92915050565b5f602082840312156142e6576142e5613994565b5b5f6142f3848285016142bd565b91505092915050565b5f60408201905061430f5f830185613c10565b61431c6020830184613b39565b9392505050565b5f8151905061433181613c76565b92915050565b5f6020828403121561434c5761434b613994565b5b5f61435984828501614323565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6143bc6039836138f4565b91506143c782614362565b604082019050919050565b5f6020820190508181035f8301526143e9816143b0565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61444a6025836138f4565b9150614455826143f0565b604082019050919050565b5f6020820190508181035f8301526144778161443e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6144b5826139f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036144e7576144e6613fd3565b5b600182019050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f775f8201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b5f61454c602c836138f4565b9150614557826144f2565b604082019050919050565b5f6020820190508181035f83015261457981614540565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f6145da6035836138f4565b91506145e582614580565b604082019050919050565b5f6020820190508181035f830152614607816145ce565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f6146686034836138f4565b91506146738261460e565b604082019050919050565b5f6020820190508181035f8301526146958161465c565b9050919050565b7f54726164696e6720616c7265616479206c6976652100000000000000000000005f82015250565b5f6146d06015836138f4565b91506146db8261469c565b602082019050919050565b5f6020820190508181035f8301526146fd816146c4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61475e6026836138f4565b915061476982614704565b604082019050919050565b5f6020820190508181035f83015261478b81614752565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6147ec6024836138f4565b91506147f782614792565b604082019050919050565b5f6020820190508181035f830152614819816147e0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61487a6022836138f4565b915061488582614820565b604082019050919050565b5f6020820190508181035f8301526148a78161486e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6149086025836138f4565b9150614913826148ae565b604082019050919050565b5f6020820190508181035f830152614935816148fc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6149966023836138f4565b91506149a18261493c565b604082019050919050565b5f6020820190508181035f8301526149c38161498a565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f6149fe601d836138f4565b9150614a09826149ca565b602082019050919050565b5f6020820190508181035f830152614a2b816149f2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614a666016836138f4565b9150614a7182614a32565b602082019050919050565b5f6020820190508181035f830152614a9381614a5a565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f614af46024836138f4565b9150614aff82614a9a565b604082019050919050565b5f6020820190508181035f830152614b2181614ae8565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61782074786e2e000000000000000000000000000000000000000000000000602082015250565b5f614b826028836138f4565b9150614b8d82614b28565b604082019050919050565b5f6020820190508181035f830152614baf81614b76565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c657400000000000000005f82015250565b5f614bea6018836138f4565b9150614bf582614bb6565b602082019050919050565b5f6020820190508181035f830152614c1781614bde565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61782074786e2e0000000000000000000000000000000000000000000000602082015250565b5f614c786029836138f4565b9150614c8382614c1e565b604082019050919050565b5f6020820190508181035f830152614ca581614c6c565b9050919050565b5f614cb6826139f6565b9150614cc1836139f6565b9250828203905081811115614cd957614cd8613fd3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050614d1a816139cc565b92915050565b5f60208284031215614d3557614d34613994565b5b5f614d4284828501614d0c565b91505092915050565b5f819050919050565b5f614d6e614d69614d6484614d4b565b613ac5565b6139f6565b9050919050565b614d7e81614d54565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614db6816139bb565b82525050565b5f614dc78383614dad565b60208301905092915050565b5f602082019050919050565b5f614de982614d84565b614df38185614d8e565b9350614dfe83614d9e565b805f5b83811015614e2e578151614e158882614dbc565b9750614e2083614dd3565b925050600181019050614e01565b5085935050505092915050565b5f60a082019050614e4e5f830188613b39565b614e5b6020830187614d75565b8181036040830152614e6d8186614ddf565b9050614e7c6060830185613c10565b614e896080830184613b39565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614eed6026836138f4565b9150614ef882614e93565b604082019050919050565b5f6020820190508181035f830152614f1a81614ee1565b905091905056fea2646970667358221220eceede2c949ba0480cc33309bf1a75c7474c23aa1de19658964bef62b0239ba364736f6c63430008150033

Deployed Bytecode

0x608060405260043610610254575f3560e01c80637571336a11610138578063c0246668116100b5578063dba432a211610079578063dba432a214610887578063dd62ed3e1461089d578063e2f45605146108d9578063f2fde38b14610903578063f8b45b051461092b578063fac1b9bc146109555761025b565b8063c0246668146107bb578063c18bc195146107e3578063c876d0b91461080b578063cf46f24c14610835578063d257b34f1461085f5761025b565b80639a7a23d6116100fc5780639a7a23d6146106b7578063a457c2d7146106df578063a9059cbb1461071b578063aeb9670414610757578063b62496f51461077f5761025b565b80637571336a146105e957806376d628b7146106115780638da5cb5b1461063b5780639014642b1461066557806395d89b411461068d5761025b565b8063313ce567116101d15780636a01f09c116101955780636a01f09c146105055780636db794371461052f5780636ddd17131461055757806370a0823114610581578063715018a6146105bd578063751039fc146105d35761025b565b8063313ce5671461040f578063353f234514610439578063395093511461047557806349bd5a5e146104b15780634a62bb65146104db5761025b565b80631694505e116102185780631694505e1461034157806318160ddd1461036b5780631cdaa84714610395578063203e727e146103ab57806323b872dd146103d35761025b565b806306fdde031461025f578063095ea7b3146102895780630ae912d0146102c557806310d5de53146102db57806311704f52146103175761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b5061027361097d565b6040516102809190613974565b60405180910390f35b348015610294575f80fd5b506102af60048036038101906102aa9190613a29565b610a0d565b6040516102bc9190613a81565b60405180910390f35b3480156102d0575f80fd5b506102d9610a2a565b005b3480156102e6575f80fd5b5061030160048036038101906102fc9190613a9a565b610b2d565b60405161030e9190613a81565b60405180910390f35b348015610322575f80fd5b5061032b610b4a565b6040516103389190613a81565b60405180910390f35b34801561034c575f80fd5b50610355610b5d565b6040516103629190613b20565b60405180910390f35b348015610376575f80fd5b5061037f610b81565b60405161038c9190613b48565b60405180910390f35b3480156103a0575f80fd5b506103a9610b8a565b005b3480156103b6575f80fd5b506103d160048036038101906103cc9190613b61565b610cdf565b005b3480156103de575f80fd5b506103f960048036038101906103f49190613b8c565b610e41565b6040516104069190613a81565b60405180910390f35b34801561041a575f80fd5b50610423610f33565b6040516104309190613bf7565b60405180910390f35b348015610444575f80fd5b5061045f600480360381019061045a9190613a9a565b610f3b565b60405161046c9190613a81565b60405180910390f35b348015610480575f80fd5b5061049b60048036038101906104969190613a29565b610f58565b6040516104a89190613a81565b60405180910390f35b3480156104bc575f80fd5b506104c5610fff565b6040516104d29190613c1f565b60405180910390f35b3480156104e6575f80fd5b506104ef611023565b6040516104fc9190613a81565b60405180910390f35b348015610510575f80fd5b50610519611035565b6040516105269190613b48565b60405180910390f35b34801561053a575f80fd5b5061055560048036038101906105509190613c38565b61103b565b005b348015610562575f80fd5b5061056b611187565b6040516105789190613a81565b60405180910390f35b34801561058c575f80fd5b506105a760048036038101906105a29190613a9a565b61119a565b6040516105b49190613b48565b60405180910390f35b3480156105c8575f80fd5b506105d16111df565b005b3480156105de575f80fd5b506105e7611332565b005b3480156105f4575f80fd5b5061060f600480360381019061060a9190613ca0565b61144f565b005b34801561061c575f80fd5b5061062561153d565b6040516106329190613b48565b60405180910390f35b348015610646575f80fd5b5061064f611543565b60405161065c9190613c1f565b60405180910390f35b348015610670575f80fd5b5061068b60048036038101906106869190613d19565b61156b565b005b348015610698575f80fd5b506106a1611772565b6040516106ae9190613974565b60405180910390f35b3480156106c2575f80fd5b506106dd60048036038101906106d89190613ca0565b611802565b005b3480156106ea575f80fd5b5061070560048036038101906107009190613a29565b61197a565b6040516107129190613a81565b60405180910390f35b348015610726575f80fd5b50610741600480360381019061073c9190613a29565b611a60565b60405161074e9190613a81565b60405180910390f35b348015610762575f80fd5b5061077d60048036038101906107789190613dca565b611a7d565b005b34801561078a575f80fd5b506107a560048036038101906107a09190613a9a565b611bb4565b6040516107b29190613a81565b60405180910390f35b3480156107c6575f80fd5b506107e160048036038101906107dc9190613ca0565b611bd1565b005b3480156107ee575f80fd5b5061080960048036038101906108049190613b61565b611d0d565b005b348015610816575f80fd5b5061081f611e6f565b60405161082c9190613a81565b60405180910390f35b348015610840575f80fd5b50610849611e81565b6040516108569190613b48565b60405180910390f35b34801561086a575f80fd5b5061088560048036038101906108809190613b61565b611e87565b005b348015610892575f80fd5b5061089b611fee565b005b3480156108a8575f80fd5b506108c360048036038101906108be9190613e27565b612138565b6040516108d09190613b48565b60405180910390f35b3480156108e4575f80fd5b506108ed6121ba565b6040516108fa9190613b48565b60405180910390f35b34801561090e575f80fd5b5061092960048036038101906109249190613a9a565b6121c0565b005b348015610936575f80fd5b5061093f612382565b60405161094c9190613b48565b60405180910390f35b348015610960575f80fd5b5061097b60048036038101906109769190613ca0565b612388565b005b60606003805461098c90613e92565b80601f01602080910402602001604051908101604052809291908181526020018280546109b890613e92565b8015610a035780601f106109da57610100808354040283529160200191610a03565b820191905f5260205f20905b8154815290600101906020018083116109e657829003601f168201915b5050505050905090565b5f610a20610a19612476565b848461247d565b6001905092915050565b610a32612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab790613f0c565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610ae590613f57565b5f6040518083038185875af1925050503d805f8114610b1f576040519150601f19603f3d011682016040523d82523d5f602084013e610b24565b606091505b50508091505050565b6014602052805f5260405f205f915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b610b92612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790613f0c565b60405180910390fd5b5f610c2a3061119a565b1015610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290613fb5565b60405180910390fd5b600160085f6101000a81548160ff021916908315150217905550610c8d612640565b5f60085f6101000a81548160ff0219169083151502179055507f7704eca0c9eaa0b85444383d91c148463b321cff28fcb55afee0ca730b3a553342604051610cd59190613b48565b60405180910390a1565b610ce7612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6c90613f0c565b60405180910390fd5b670de0b6b3a76400006103e86002610d8b610b81565b610d959190614000565b610d9f919061406e565b610da9919061406e565b811015610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de29061410e565b60405180910390fd5b670de0b6b3a764000081610dff9190614000565b6007819055507fbd8a1f50bda6367cd3771d8453c2582c5f01613dd6d8ee271672f4943da806d3600754604051610e369190613b48565b60405180910390a150565b5f610e4d848484612769565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610e94612476565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a9061419c565b60405180910390fd5b610f2785610f1f612476565b85840361247d565b60019150509392505050565b5f6012905090565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f610ff5610f64612476565b848460015f610f71612476565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ff091906141ba565b61247d565b6001905092915050565b7f00000000000000000000000093934ef87e7ae9065488dab3944d791df351f97e81565b600d5f9054906101000a900460ff1681565b600a5481565b611043612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890613f0c565b60405180910390fd5b8160108190555080601181905550601960646010546110f0919061406e565b1115611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890614237565b60405180910390fd5b60196064601154611142919061406e565b1115611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117a90614237565b60405180910390fd5b5050565b600d60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6111e7612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126c90613f0c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61133a612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf90613f0c565b60405180910390fd5b5f600d5f6101000a81548160ff0219169083151502179055505f600f5f6101000a81548160ff0219169083151502179055506103e86001611407610b81565b6114119190614000565b61141b919061406e565b6009819055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b611457612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dc90613f0c565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60125481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611573612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f890613f0c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361166f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116669061429f565b60405180910390fd5b5f82036116f1578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116af9190613c1f565b602060405180830381865afa1580156116ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ee91906142d1565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b815260040161172c9291906142fc565b6020604051808303815f875af1158015611748573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176c9190614337565b50505050565b60606004805461178190613e92565b80601f01602080910402602001604051908101604052809291908181526020018280546117ad90613e92565b80156117f85780601f106117cf576101008083540402835291602001916117f8565b820191905f5260205f20905b8154815290600101906020018083116117db57829003601f168201915b5050505050905090565b61180a612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f90613f0c565b60405180910390fd5b7f00000000000000000000000093934ef87e7ae9065488dab3944d791df351f97e73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191d906143d2565b60405180910390fd5b61193082826133b0565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f8060015f611987612476565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3890614460565b60405180910390fd5b611a55611a4c612476565b8585840361247d565b600191505092915050565b5f611a73611a6c612476565b8484612769565b6001905092915050565b611a85612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a90613f0c565b60405180910390fd5b5f5b83839050811015611bae5781600c5f868685818110611b3757611b3661447e565b5b9050602002016020810190611b4c9190613a9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611ba6906144ab565b915050611b15565b50505050565b6015602052805f5260405f205f915054906101000a900460ff1681565b611bd9612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5e90613f0c565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d019190613a81565b60405180910390a25050565b611d15612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90613f0c565b60405180910390fd5b670de0b6b3a76400006103e86003611db9610b81565b611dc39190614000565b611dcd919061406e565b611dd7919061406e565b811015611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090614562565b60405180910390fd5b670de0b6b3a764000081611e2d9190614000565b6006819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc600654604051611e649190613b48565b60405180910390a150565b600f5f9054906101000a900460ff1681565b60075481565b611e8f612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1490613f0c565b60405180910390fd5b620186a06001611f2b610b81565b611f359190614000565b611f3f919061406e565b811015611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f78906145f0565b60405180910390fd5b6103e86005611f8e610b81565b611f989190614000565b611fa2919061406e565b811115611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb9061467e565b60405180910390fd5b8060098190555050565b611ff6612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207b90613f0c565b60405180910390fd5b600d60019054906101000a900460ff16156120d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cb906146e6565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff0219169083151502179055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b6121c8612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224d90613f0c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036122c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bb90614774565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b612390612476565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461241e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241590613f0c565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e290614802565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255090614890565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126339190613b48565b60405180910390a3505050565b5f61264a3061119a565b90505f60125490505f82148061265f57505f81145b1561266b575050612767565b600d5f9054906101000a900460ff16156126ae57600a5460095461268f9190614000565b8211156126a957600a546009546126a69190614000565b91505b6126bf565b6009548211156126be5760095491505b5b5f6126c983613458565b5f6012819055505f47111561276357600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161271d90613f57565b5f6040518083038185875af1925050503d805f8114612757576040519150601f19603f3d011682016040523d82523d5f602084013e61275c565b606091505b5050809150505b5050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce9061491e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283c906149ac565b60405180910390fd5b5f8111612887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287e90614a14565b60405180910390fd5b600d60019054906101000a900460ff166129765760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612936575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296c90614a7c565b60405180910390fd5b5b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612a145750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612a1c575f80fd5b600d5f9054906101000a900460ff161561302257612a38611543565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612aa65750612a76611543565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612ade57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b18575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b6b575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612bbe575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561302157600f5f9054906101000a900460ff1615612d47577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612c7f57507f00000000000000000000000093934ef87e7ae9065488dab3944d791df351f97e73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612d465743600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfa90614b0a565b60405180910390fd5b43600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612de4575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612e8b57600754811115612e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2590614b98565b60405180910390fd5b600654612e3a8361119a565b82612e4591906141ba565b1115612e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7d90614c00565b60405180910390fd5b613020565b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612f28575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612f7757600754811115612f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6990614c8e565b60405180910390fd5b61301f565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661301e57600654612fd18361119a565b82612fdc91906141ba565b111561301d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301490614c00565b60405180910390fd5b5b5b5b5b5b5f61302c3061119a565b90505f60095482101590508080156130505750600d60029054906101000a900460ff165b8015613068575060085f9054906101000a900460ff16155b80156130bb575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561310e575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613161575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156131a257600160085f6101000a81548160ff021916908315150217905550613188612640565b5f60085f6101000a81548160ff0219169083151502179055505b5f6001905060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613242575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561324b575f90505b5f811561339c5760155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156132a957505f601154115b156132e7576064601154866132be9190614000565b6132c8919061406e565b90508060125f8282546132db91906141ba565b92505081905550613379565b60155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561333e57505f601054115b15613378576064601054866133539190614000565b61335d919061406e565b90508060125f82825461337091906141ba565b925050819055505b5b5f81111561338d5761338c87308361368b565b5b80856133999190614cac565b94505b6133a787878761368b565b50505050505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061340e828261144f565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561347457613473614cdf565b5b6040519080825280602002602001820160405280156134a25781602001602082028036833780820191505090505b50905030815f815181106134b9576134b861447e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561355c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135809190614d20565b816001815181106135945761359361447e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506135f9307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461247d565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161365a959493929190614e3b565b5f604051808303815f87803b158015613671575f80fd5b505af1158015613683573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136f09061491e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161375e906149ac565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156137ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e190614f03565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461387891906141ba565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138dc9190613b48565b60405180910390a350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613921578082015181840152602081019050613906565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613946826138ea565b61395081856138f4565b9350613960818560208601613904565b6139698161392c565b840191505092915050565b5f6020820190508181035f83015261398c818461393c565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6139c58261399c565b9050919050565b6139d5816139bb565b81146139df575f80fd5b50565b5f813590506139f0816139cc565b92915050565b5f819050919050565b613a08816139f6565b8114613a12575f80fd5b50565b5f81359050613a23816139ff565b92915050565b5f8060408385031215613a3f57613a3e613994565b5b5f613a4c858286016139e2565b9250506020613a5d85828601613a15565b9150509250929050565b5f8115159050919050565b613a7b81613a67565b82525050565b5f602082019050613a945f830184613a72565b92915050565b5f60208284031215613aaf57613aae613994565b5b5f613abc848285016139e2565b91505092915050565b5f819050919050565b5f613ae8613ae3613ade8461399c565b613ac5565b61399c565b9050919050565b5f613af982613ace565b9050919050565b5f613b0a82613aef565b9050919050565b613b1a81613b00565b82525050565b5f602082019050613b335f830184613b11565b92915050565b613b42816139f6565b82525050565b5f602082019050613b5b5f830184613b39565b92915050565b5f60208284031215613b7657613b75613994565b5b5f613b8384828501613a15565b91505092915050565b5f805f60608486031215613ba357613ba2613994565b5b5f613bb0868287016139e2565b9350506020613bc1868287016139e2565b9250506040613bd286828701613a15565b9150509250925092565b5f60ff82169050919050565b613bf181613bdc565b82525050565b5f602082019050613c0a5f830184613be8565b92915050565b613c19816139bb565b82525050565b5f602082019050613c325f830184613c10565b92915050565b5f8060408385031215613c4e57613c4d613994565b5b5f613c5b85828601613a15565b9250506020613c6c85828601613a15565b9150509250929050565b613c7f81613a67565b8114613c89575f80fd5b50565b5f81359050613c9a81613c76565b92915050565b5f8060408385031215613cb657613cb5613994565b5b5f613cc3858286016139e2565b9250506020613cd485828601613c8c565b9150509250929050565b5f613ce8826139bb565b9050919050565b613cf881613cde565b8114613d02575f80fd5b50565b5f81359050613d1381613cef565b92915050565b5f805f60608486031215613d3057613d2f613994565b5b5f613d3d86828701613d05565b9350506020613d4e86828701613a15565b9250506040613d5f868287016139e2565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613d8a57613d89613d69565b5b8235905067ffffffffffffffff811115613da757613da6613d6d565b5b602083019150836020820283011115613dc357613dc2613d71565b5b9250929050565b5f805f60408486031215613de157613de0613994565b5b5f84013567ffffffffffffffff811115613dfe57613dfd613998565b5b613e0a86828701613d75565b93509350506020613e1d86828701613c8c565b9150509250925092565b5f8060408385031215613e3d57613e3c613994565b5b5f613e4a858286016139e2565b9250506020613e5b858286016139e2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613ea957607f821691505b602082108103613ebc57613ebb613e65565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613ef66020836138f4565b9150613f0182613ec2565b602082019050919050565b5f6020820190508181035f830152613f2381613eea565b9050919050565b5f81905092915050565b50565b5f613f425f83613f2a565b9150613f4d82613f34565b5f82019050919050565b5f613f6182613f37565b9150819050919050565b7f4e6f20746f6b656e7320746f20737761700000000000000000000000000000005f82015250565b5f613f9f6011836138f4565b9150613faa82613f6b565b602082019050919050565b5f6020820190508181035f830152613fcc81613f93565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61400a826139f6565b9150614015836139f6565b9250828202614023816139f6565b9150828204841483151761403a57614039613fd3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614078826139f6565b9150614083836139f6565b92508261409357614092614041565b5b828204905092915050565b7f43616e6e6f7420736574206d61782074786e20616d6f756e74206c6f776572205f8201527f7468616e20302e32250000000000000000000000000000000000000000000000602082015250565b5f6140f86029836138f4565b91506141038261409e565b604082019050919050565b5f6020820190508181035f830152614125816140ec565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6141866028836138f4565b91506141918261412c565b604082019050919050565b5f6020820190508181035f8301526141b38161417a565b9050919050565b5f6141c4826139f6565b91506141cf836139f6565b92508282019050808211156141e7576141e6613fd3565b5b92915050565b7f4d757374206b656570206665657320617420323525206f72206c6573730000005f82015250565b5f614221601d836138f4565b915061422c826141ed565b602082019050919050565b5f6020820190508181035f83015261424e81614215565b9050919050565b7f546f6b656e20616464726573732063616e6e6f74206265207a65726f000000005f82015250565b5f614289601c836138f4565b915061429482614255565b602082019050919050565b5f6020820190508181035f8301526142b68161427d565b9050919050565b5f815190506142cb816139ff565b92915050565b5f602082840312156142e6576142e5613994565b5b5f6142f3848285016142bd565b91505092915050565b5f60408201905061430f5f830185613c10565b61431c6020830184613b39565b9392505050565b5f8151905061433181613c76565b92915050565b5f6020828403121561434c5761434b613994565b5b5f61435984828501614323565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6143bc6039836138f4565b91506143c782614362565b604082019050919050565b5f6020820190508181035f8301526143e9816143b0565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61444a6025836138f4565b9150614455826143f0565b604082019050919050565b5f6020820190508181035f8301526144778161443e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6144b5826139f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036144e7576144e6613fd3565b5b600182019050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f775f8201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b5f61454c602c836138f4565b9150614557826144f2565b604082019050919050565b5f6020820190508181035f83015261457981614540565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f6145da6035836138f4565b91506145e582614580565b604082019050919050565b5f6020820190508181035f830152614607816145ce565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f6146686034836138f4565b91506146738261460e565b604082019050919050565b5f6020820190508181035f8301526146958161465c565b9050919050565b7f54726164696e6720616c7265616479206c6976652100000000000000000000005f82015250565b5f6146d06015836138f4565b91506146db8261469c565b602082019050919050565b5f6020820190508181035f8301526146fd816146c4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61475e6026836138f4565b915061476982614704565b604082019050919050565b5f6020820190508181035f83015261478b81614752565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6147ec6024836138f4565b91506147f782614792565b604082019050919050565b5f6020820190508181035f830152614819816147e0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61487a6022836138f4565b915061488582614820565b604082019050919050565b5f6020820190508181035f8301526148a78161486e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6149086025836138f4565b9150614913826148ae565b604082019050919050565b5f6020820190508181035f830152614935816148fc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6149966023836138f4565b91506149a18261493c565b604082019050919050565b5f6020820190508181035f8301526149c38161498a565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f6149fe601d836138f4565b9150614a09826149ca565b602082019050919050565b5f6020820190508181035f830152614a2b816149f2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614a666016836138f4565b9150614a7182614a32565b602082019050919050565b5f6020820190508181035f830152614a9381614a5a565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f614af46024836138f4565b9150614aff82614a9a565b604082019050919050565b5f6020820190508181035f830152614b2181614ae8565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61782074786e2e000000000000000000000000000000000000000000000000602082015250565b5f614b826028836138f4565b9150614b8d82614b28565b604082019050919050565b5f6020820190508181035f830152614baf81614b76565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c657400000000000000005f82015250565b5f614bea6018836138f4565b9150614bf582614bb6565b602082019050919050565b5f6020820190508181035f830152614c1781614bde565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61782074786e2e0000000000000000000000000000000000000000000000602082015250565b5f614c786029836138f4565b9150614c8382614c1e565b604082019050919050565b5f6020820190508181035f830152614ca581614c6c565b9050919050565b5f614cb6826139f6565b9150614cc1836139f6565b9250828203905081811115614cd957614cd8613fd3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050614d1a816139cc565b92915050565b5f60208284031215614d3557614d34613994565b5b5f614d4284828501614d0c565b91505092915050565b5f819050919050565b5f614d6e614d69614d6484614d4b565b613ac5565b6139f6565b9050919050565b614d7e81614d54565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614db6816139bb565b82525050565b5f614dc78383614dad565b60208301905092915050565b5f602082019050919050565b5f614de982614d84565b614df38185614d8e565b9350614dfe83614d9e565b805f5b83811015614e2e578151614e158882614dbc565b9750614e2083614dd3565b925050600181019050614e01565b5085935050505092915050565b5f60a082019050614e4e5f830188613b39565b614e5b6020830187614d75565b8181036040830152614e6d8186614ddf565b9050614e7c6060830185613c10565b614e896080830184613b39565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614eed6026836138f4565b9150614ef882614e93565b604082019050919050565b5f6020820190508181035f830152614f1a81614ee1565b905091905056fea2646970667358221220eceede2c949ba0480cc33309bf1a75c7474c23aa1de19658964bef62b0239ba364736f6c63430008150033

Deployed Bytecode Sourcemap

8310:11335:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2748:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3662:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19167:158;;;;;;;;;;;;;:::i;:::-;;9086:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8732:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8351:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3069:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18906:253;;;;;;;;;;;;;:::i;:::-;;11740:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3839:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2968:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8647:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4339:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8406:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8692:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8588:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12658:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8770:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3185:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6820:150;;;;;;;;;;;;;:::i;:::-;;11499:233;;;;;;;;;;;;;:::i;:::-;;13275:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8991:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6606:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19333:307;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2856:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13429:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4562:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3320:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13072:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9159:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13986:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12014:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8881:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8484:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12295:354;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11269:196;;;;;;;;;;;;;:::i;:::-;;3503:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8548:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6978:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8453:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12957:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2748:100;2802:13;2835:5;2828:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2748:100;:::o;3662:169::-;3745:4;3762:39;3771:12;:10;:12::i;:::-;3785:7;3794:6;3762:8;:39::i;:::-;3819:4;3812:11;;3662:169;;;;:::o;19167:158::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19223:12:::1;19267:10;19259:24;;19291:21;19259:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19246:71;;;;;19212:113;19167:158::o:0;9086:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;8732:31::-;;;;;;;;;;;;;:::o;8351:48::-;;;:::o;3069:108::-;3130:7;3157:12;;3150:19;;3069:108;:::o;18906:253::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18997:1:::1;18969:24;18987:4;18969:9;:24::i;:::-;:29;;18961:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;19042:4;19031:8;;:15;;;;;;;;;;;;;;;;;;19057:13;:11;:13::i;:::-;19092:5;19081:8;;:16;;;;;;;;;;;;;;;;;;19113:38;19135:15;19113:38;;;;;;:::i;:::-;;;;;;;;18906:253::o:0;11740:266::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11859:4:::1;11853;11849:1;11833:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;11832:31;;;;:::i;:::-;11822:6;:41;;11814:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;11945:6;11935;:17;;;;:::i;:::-;11920:12;:32;;;;11968:30;11985:12;;11968:30;;;;;;:::i;:::-;;;;;;;;11740:266:::0;:::o;3839:492::-;3979:4;3996:36;4006:6;4014:9;4025:6;3996:9;:36::i;:::-;4045:24;4072:11;:19;4084:6;4072:19;;;;;;;;;;;;;;;:33;4092:12;:10;:12::i;:::-;4072:33;;;;;;;;;;;;;;;;4045:60;;4144:6;4124:16;:26;;4116:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4231:57;4240:6;4248:12;:10;:12::i;:::-;4281:6;4262:16;:25;4231:8;:57::i;:::-;4319:4;4312:11;;;3839:492;;;;;:::o;2968:93::-;3026:5;3051:2;3044:9;;2968:93;:::o;8647:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;4339:215::-;4427:4;4444:80;4453:12;:10;:12::i;:::-;4467:7;4513:10;4476:11;:25;4488:12;:10;:12::i;:::-;4476:25;;;;;;;;;;;;;;;:34;4502:7;4476:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4444:8;:80::i;:::-;4542:4;4535:11;;4339:215;;;;:::o;8406:38::-;;;:::o;8692:33::-;;;;;;;;;;;;;:::o;8588:24::-;;;;:::o;12658:290::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12753:7:::1;12744:6;:16;;;;12782:8;12772:7;:18;;;;12828:2;12820:3;12811:6;;:12;;;;:::i;:::-;12810:20;;12802:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12903:2;12895:3;12885:7;;:13;;;;:::i;:::-;12884:21;;12876:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12658:290:::0;;:::o;8770:31::-;;;;;;;;;;;;;:::o;3185:127::-;3259:7;3286:9;:18;3296:7;3286:18;;;;;;;;;;;;;;;;3279:25;;3185:127;;;:::o;6820:150::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6929:1:::1;6892:40;;6913:6;;;;;;;;;;;6892:40;;;;;;;;;;;;6960:1;6943:6;;:19;;;;;;;;;;;;;;;;;;6820:150::o:0;11499:233::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11570:5:::1;11553:14;;:22;;;;;;;;;;;;;;;;;;11609:5;11586:20;;:28;;;;;;;;;;;;;;;;;;11666:4;11662:1;11646:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;11625:18;:45;;;;11709:15;;;;;;;;;;11499:233::o:0;13275:146::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13408:4:::1;13366:31;:39;13398:6;13366:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13275:146:::0;;:::o;8991:26::-;;;;:::o;6606:79::-;6644:7;6671:6;;;;;;;;;;;6664:13;;6606:79;:::o;19333:307::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19466:1:::1;19440:28;;19448:5;19440:28;;::::0;19432:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19525:1;19515:6;:11:::0;19512:81:::1;;19551:5;:15;;;19575:4;19551:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19542:39;;19512:81;19606:5;:14;;;19621:2;19625:6;19606:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19333:307:::0;;;:::o;2856:104::-;2912:13;2945:7;2938:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2856:104;:::o;13429:302::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13538:13:::1;13530:21;;:4;:21;;::::0;13522:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13626:41;13655:4;13661:5;13626:28;:41::i;:::-;13717:5;13683:40;;13711:4;13683:40;;;;;;;;;;;;13429:302:::0;;:::o;4562:413::-;4655:4;4672:24;4699:11;:25;4711:12;:10;:12::i;:::-;4699:25;;;;;;;;;;;;;;;:34;4725:7;4699:34;;;;;;;;;;;;;;;;4672:61;;4772:15;4752:16;:35;;4744:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4865:67;4874:12;:10;:12::i;:::-;4888:7;4916:15;4897:16;:34;4865:8;:67::i;:::-;4963:4;4956:11;;;4562:413;;;;:::o;3320:175::-;3406:4;3423:42;3433:12;:10;:12::i;:::-;3447:9;3458:6;3423:9;:42::i;:::-;3483:4;3476:11;;3320:175;;;;:::o;13072:194::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13167:9:::1;13163:95;13186:7;;:14;;13182:1;:18;13163:95;;;13240:5;13222:3;:15;13226:7;;13234:1;13226:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13222:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;13202:3;;;;;:::i;:::-;;;;13163:95;;;;13072:194:::0;;;:::o;9159:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;13986:182::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14102:8:::1;14071:19;:28;14091:7;14071:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14142:7;14126:34;;;14151:8;14126:34;;;;;;:::i;:::-;;;;;;;;13986:182:::0;;:::o;12014:272::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12136:4:::1;12130;12126:1;12110:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;12109:31;;;;:::i;:::-;12099:6;:41;;12091:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;12222:6;12212;:17;;;;:::i;:::-;12200:9;:29;;;;12245:33;12268:9;;12245:33;;;;;;:::i;:::-;;;;;;;;12014:272:::0;:::o;8881:40::-;;;;;;;;;;;;;:::o;8484:27::-;;;;:::o;12295:354::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12420:6:::1;12416:1;12400:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;12387:9;:39;;12379:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;12537:4;12533:1;12517:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;12504:9;:37;;12496:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;12631:9;12610:18;:30;;;;12295:354:::0;:::o;11269:196::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11330:11:::1;;;;;;;;;;;11329:12;11321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11392:4;11378:11;;:18;;;;;;;;;;;;;;;;;;11421:4;11407:11;;:18;;;;;;;;;;;;;;;;;;11441:16;;;;;;;;;;11269:196::o:0;3503:151::-;3592:7;3619:11;:18;3631:5;3619:18;;;;;;;;;;;;;;;:27;3638:7;3619:27;;;;;;;;;;;;;;;;3612:34;;3503:151;;;;:::o;8548:33::-;;;;:::o;6978:244::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7087:1:::1;7067:22;;:8;:22;;::::0;7059:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7177:8;7148:38;;7169:6;;;;;;;;;;;7148:38;;;;;;;;;;;;7206:8;7197:6;;:17;;;;;;;;;;;;;;;;;;6978:244:::0;:::o;8453:24::-;;;;:::o;12957:106::-;6743:12;:10;:12::i;:::-;6733:22;;:6;;;;;;;;;;;:22;;;6725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13049:5:::1;13035:3;:11;13039:6;13035:11;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;12957:106:::0;;:::o;1058:98::-;1111:7;1138:10;1131:17;;1058:98;:::o;5899:380::-;6052:1;6035:19;;:5;:19;;;6027:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6133:1;6114:21;;:7;:21;;;6106:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6217:6;6187:11;:18;6199:5;6187:18;;;;;;;;;;;;;;;:27;6206:7;6187:27;;;;;;;;;;;;;;;:36;;;;6255:7;6239:32;;6248:5;6239:32;;;6264:6;6239:32;;;;;;:::i;:::-;;;;;;;;5899:380;;;:::o;18114:784::-;18156:23;18182:24;18200:4;18182:9;:24::i;:::-;18156:50;;18217:25;18245:11;;18217:39;;18291:1;18272:15;:20;:46;;;;18317:1;18296:17;:22;18272:46;18269:60;;;18321:7;;;;18269:60;18345:14;;;;;;;;;;;18341:313;;;18416:9;;18395:18;;:30;;;;:::i;:::-;18377:15;:48;18373:132;;;18482:9;;18461:18;;:30;;;;:::i;:::-;18443:48;;18373:132;18341:313;;;18557:18;;18539:15;:36;18535:108;;;18611:18;;18593:36;;18535:108;18341:313;18666:12;18691:33;18708:15;18691:16;:33::i;:::-;18751:1;18737:11;:15;;;;18792:1;18768:21;:25;18765:126;;;18830:9;;;;;;;;;;;18822:23;;18853:21;18822:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18809:70;;;;;18765:126;18145:753;;;18114:784;:::o;14176:3069::-;14292:1;14276:18;;:4;:18;;;14268:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14369:1;14355:16;;:2;:16;;;14347:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14439:1;14430:6;:10;14422:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14491:11;;;;;;;;;;;14487:130;;14526:19;:25;14546:4;14526:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;14555:19;:23;14575:2;14555:23;;;;;;;;;;;;;;;;;;;;;;;;;14526:52;14518:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;14487:130;14638:3;:9;14642:4;14638:9;;;;;;;;;;;;;;;;;;;;;;;;;14637:10;:22;;;;;14652:3;:7;14656:2;14652:7;;;;;;;;;;;;;;;;;;;;;;;;;14651:8;14637:22;14629:31;;;;;;14676:14;;;;;;;;;;;14673:1405;;;14718:7;:5;:7::i;:::-;14710:15;;:4;:15;;;;:32;;;;;14735:7;:5;:7::i;:::-;14729:13;;:2;:13;;;;14710:32;:52;;;;;14760:1;14746:16;;:2;:16;;;;14710:52;:77;;;;;14780:6;14766:21;;:2;:21;;;;14710:77;:107;;;;;14792:19;:25;14812:4;14792:25;;;;;;;;;;;;;;;;;;;;;;;;;14791:26;14710:107;:135;;;;;14822:19;:23;14842:2;14822:23;;;;;;;;;;;;;;;;;;;;;;;;;14821:24;14710:135;14706:1361;;;14913:20;;;;;;;;;;;14909:366;;;14975:15;14961:30;;:2;:30;;;;:62;;;;;15009:13;14995:28;;:2;:28;;;;14961:62;14957:299;;;15099:12;15057:28;:39;15086:9;15057:39;;;;;;;;;;;;;;;;:54;15049:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;15220:12;15178:28;:39;15207:9;15178:39;;;;;;;;;;;;;;;:54;;;;14957:299;14909:366;15327:25;:31;15353:4;15327:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;15363:31;:35;15395:2;15363:35;;;;;;;;;;;;;;;;;;;;;;;;;15362:36;15327:71;15323:729;;;15445:12;;15435:6;:22;;15427:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;15563:9;;15546:13;15556:2;15546:9;:13::i;:::-;15537:6;:22;;;;:::i;:::-;:35;;15529:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15323:729;;;15677:25;:29;15703:2;15677:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;15711:31;:37;15743:4;15711:37;;;;;;;;;;;;;;;;;;;;;;;;;15710:38;15677:71;15673:379;;;15795:12;;15785:6;:22;;15777:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;15673:379;;;15901:31;:35;15933:2;15901:35;;;;;;;;;;;;;;;;;;;;;;;;;15896:156;;15994:9;;15977:13;15987:2;15977:9;:13::i;:::-;15968:6;:22;;;;:::i;:::-;:35;;15960:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15896:156;15673:379;15323:729;14706:1361;14673:1405;16090:28;16121:24;16139:4;16121:9;:24::i;:::-;16090:55;;16158:12;16197:18;;16173:20;:42;;16158:57;;16231:7;:22;;;;;16242:11;;;;;;;;;;;16231:22;:35;;;;;16258:8;;;;;;;;;;;16257:9;16231:35;:71;;;;;16271:25;:31;16297:4;16271:31;;;;;;;;;;;;;;;;;;;;;;;;;16270:32;16231:71;:101;;;;;16307:19;:25;16327:4;16307:25;;;;;;;;;;;;;;;;;;;;;;;;;16306:26;16231:101;:129;;;;;16337:19;:23;16357:2;16337:23;;;;;;;;;;;;;;;;;;;;;;;;;16336:24;16231:129;16228:239;;;16388:4;16377:8;;:15;;;;;;;;;;;;;;;;;;16409:13;:11;:13::i;:::-;16450:5;16439:8;;:16;;;;;;;;;;;;;;;;;;16228:239;16479:12;16494:4;16479:19;;16514;:25;16534:4;16514:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;16543:19;:23;16563:2;16543:23;;;;;;;;;;;;;;;;;;;;;;;;;16514:52;16511:99;;;16593:5;16583:15;;16511:99;16622:12;16654:7;16651:541;;;16706:25;:29;16732:2;16706:29;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;16749:1;16739:7;;:11;16706:44;16702:346;;;16796:3;16786:7;;16777:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;16770:29;;16833:4;16818:11;;:19;;;;;;;:::i;:::-;;;;;;;;16702:346;;;16901:25;:31;16927:4;16901:31;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;16945:1;16936:6;;:10;16901:45;16898:150;;;16991:3;16982:6;;16973;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16966:28;;17028:4;17013:11;;:19;;;;;;;:::i;:::-;;;;;;;;16898:150;16702:346;17074:1;17067:4;:8;17064:89;;;17095:42;17111:4;17125;17132;17095:15;:42::i;:::-;17064:89;17176:4;17166:14;;;;;:::i;:::-;;;16651:541;17204:33;17220:4;17226:2;17230:6;17204:15;:33::i;:::-;14255:2990;;;;14176:3069;;;:::o;13739:239::-;13856:5;13822:25;:31;13848:4;13822:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13874:38;13900:4;13906:5;13874:25;:38::i;:::-;13964:5;13930:40;;13958:4;13930:40;;;;;;;;;;;;13739:239;;:::o;17253:475::-;17319:21;17357:1;17343:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17319:40;;17388:4;17370;17375:1;17370:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17414:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17404:4;17409:1;17404:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;17449:62;17466:4;17481:15;17499:11;17449:8;:62::i;:::-;17524:15;:66;;;17605:11;17631:1;17647:4;17674;17694:15;17524:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17308:420;17253:475;:::o;4983:614::-;5141:1;5123:20;;:6;:20;;;5115:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5225:1;5204:23;;:9;:23;;;5196:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5280:21;5304:9;:17;5314:6;5304:17;;;;;;;;;;;;;;;;5280:41;;5357:6;5340:13;:23;;5332:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5478:6;5462:13;:22;5442:9;:17;5452:6;5442:17;;;;;;;;;;;;;;;:42;;;;5530:6;5506:9;:20;5516:9;5506:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5571:9;5554:35;;5563:6;5554:35;;;5582:6;5554:35;;;;;;:::i;:::-;;;;;;;;5104:493;4983:614;;;:::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:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:149::-;4200:9;4233:37;4264:5;4233:37;:::i;:::-;4220:50;;4127:149;;;:::o;4282:177::-;4392:60;4446:5;4392:60;:::i;:::-;4387:3;4380:73;4282:177;;:::o;4465:268::-;4581:4;4619:2;4608:9;4604:18;4596:26;;4632:94;4723:1;4712:9;4708:17;4699:6;4632:94;:::i;:::-;4465:268;;;;:::o;4739:118::-;4826:24;4844:5;4826:24;:::i;:::-;4821:3;4814:37;4739:118;;:::o;4863:222::-;4956:4;4994:2;4983:9;4979:18;4971:26;;5007:71;5075:1;5064:9;5060:17;5051:6;5007:71;:::i;:::-;4863:222;;;;:::o;5091:329::-;5150:6;5199:2;5187:9;5178:7;5174:23;5170:32;5167:119;;;5205:79;;:::i;:::-;5167:119;5325:1;5350:53;5395:7;5386:6;5375:9;5371:22;5350:53;:::i;:::-;5340:63;;5296:117;5091:329;;;;:::o;5426:619::-;5503:6;5511;5519;5568:2;5556:9;5547:7;5543:23;5539:32;5536:119;;;5574:79;;:::i;:::-;5536:119;5694:1;5719:53;5764:7;5755:6;5744:9;5740:22;5719:53;:::i;:::-;5709:63;;5665:117;5821:2;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5792:118;5949:2;5975:53;6020:7;6011:6;6000:9;5996:22;5975:53;:::i;:::-;5965:63;;5920:118;5426:619;;;;;:::o;6051:86::-;6086:7;6126:4;6119:5;6115:16;6104:27;;6051:86;;;:::o;6143:112::-;6226:22;6242:5;6226:22;:::i;:::-;6221:3;6214:35;6143:112;;:::o;6261:214::-;6350:4;6388:2;6377:9;6373:18;6365:26;;6401:67;6465:1;6454:9;6450:17;6441:6;6401:67;:::i;:::-;6261:214;;;;:::o;6481:118::-;6568:24;6586:5;6568:24;:::i;:::-;6563:3;6556:37;6481:118;;:::o;6605:222::-;6698:4;6736:2;6725:9;6721:18;6713:26;;6749:71;6817:1;6806:9;6802:17;6793:6;6749:71;:::i;:::-;6605:222;;;;:::o;6833:474::-;6901:6;6909;6958:2;6946:9;6937:7;6933:23;6929:32;6926:119;;;6964:79;;:::i;:::-;6926:119;7084:1;7109:53;7154:7;7145:6;7134:9;7130:22;7109:53;:::i;:::-;7099:63;;7055:117;7211:2;7237:53;7282:7;7273:6;7262:9;7258:22;7237:53;:::i;:::-;7227:63;;7182:118;6833:474;;;;;:::o;7313:116::-;7383:21;7398:5;7383:21;:::i;:::-;7376:5;7373:32;7363:60;;7419:1;7416;7409:12;7363:60;7313:116;:::o;7435:133::-;7478:5;7516:6;7503:20;7494:29;;7532:30;7556:5;7532:30;:::i;:::-;7435:133;;;;:::o;7574:468::-;7639:6;7647;7696:2;7684:9;7675:7;7671:23;7667:32;7664:119;;;7702:79;;:::i;:::-;7664:119;7822:1;7847:53;7892:7;7883:6;7872:9;7868:22;7847:53;:::i;:::-;7837:63;;7793:117;7949:2;7975:50;8017:7;8008:6;7997:9;7993:22;7975:50;:::i;:::-;7965:60;;7920:115;7574:468;;;;;:::o;8048:109::-;8098:7;8127:24;8145:5;8127:24;:::i;:::-;8116:35;;8048:109;;;:::o;8163:148::-;8249:37;8280:5;8249:37;:::i;:::-;8242:5;8239:48;8229:76;;8301:1;8298;8291:12;8229:76;8163:148;:::o;8317:165::-;8376:5;8414:6;8401:20;8392:29;;8430:46;8470:5;8430:46;:::i;:::-;8317:165;;;;:::o;8488:645::-;8578:6;8586;8594;8643:2;8631:9;8622:7;8618:23;8614:32;8611:119;;;8649:79;;:::i;:::-;8611:119;8769:1;8794:66;8852:7;8843:6;8832:9;8828:22;8794:66;:::i;:::-;8784:76;;8740:130;8909:2;8935:53;8980:7;8971:6;8960:9;8956:22;8935:53;:::i;:::-;8925:63;;8880:118;9037:2;9063:53;9108:7;9099:6;9088:9;9084:22;9063:53;:::i;:::-;9053:63;;9008:118;8488:645;;;;;:::o;9139:117::-;9248:1;9245;9238:12;9262:117;9371:1;9368;9361:12;9385:117;9494:1;9491;9484:12;9525:568;9598:8;9608:6;9658:3;9651:4;9643:6;9639:17;9635:27;9625:122;;9666:79;;:::i;:::-;9625:122;9779:6;9766:20;9756:30;;9809:18;9801:6;9798:30;9795:117;;;9831:79;;:::i;:::-;9795:117;9945:4;9937:6;9933:17;9921:29;;9999:3;9991:4;9983:6;9979:17;9969:8;9965:32;9962:41;9959:128;;;10006:79;;:::i;:::-;9959:128;9525:568;;;;;:::o;10099:698::-;10191:6;10199;10207;10256:2;10244:9;10235:7;10231:23;10227:32;10224:119;;;10262:79;;:::i;:::-;10224:119;10410:1;10399:9;10395:17;10382:31;10440:18;10432:6;10429:30;10426:117;;;10462:79;;:::i;:::-;10426:117;10575:80;10647:7;10638:6;10627:9;10623:22;10575:80;:::i;:::-;10557:98;;;;10353:312;10704:2;10730:50;10772:7;10763:6;10752:9;10748:22;10730:50;:::i;:::-;10720:60;;10675:115;10099:698;;;;;:::o;10803:474::-;10871:6;10879;10928:2;10916:9;10907:7;10903:23;10899:32;10896:119;;;10934:79;;:::i;:::-;10896:119;11054:1;11079:53;11124:7;11115:6;11104:9;11100:22;11079:53;:::i;:::-;11069:63;;11025:117;11181:2;11207:53;11252:7;11243:6;11232:9;11228:22;11207:53;:::i;:::-;11197:63;;11152:118;10803:474;;;;;:::o;11283:180::-;11331:77;11328:1;11321:88;11428:4;11425:1;11418:15;11452:4;11449:1;11442:15;11469:320;11513:6;11550:1;11544:4;11540:12;11530:22;;11597:1;11591:4;11587:12;11618:18;11608:81;;11674:4;11666:6;11662:17;11652:27;;11608:81;11736:2;11728:6;11725:14;11705:18;11702:38;11699:84;;11755:18;;:::i;:::-;11699:84;11520:269;11469:320;;;:::o;11795:182::-;11935:34;11931:1;11923:6;11919:14;11912:58;11795:182;:::o;11983:366::-;12125:3;12146:67;12210:2;12205:3;12146:67;:::i;:::-;12139:74;;12222:93;12311:3;12222:93;:::i;:::-;12340:2;12335:3;12331:12;12324:19;;11983:366;;;:::o;12355:419::-;12521:4;12559:2;12548:9;12544:18;12536:26;;12608:9;12602:4;12598:20;12594:1;12583:9;12579:17;12572:47;12636:131;12762:4;12636:131;:::i;:::-;12628:139;;12355:419;;;:::o;12780:147::-;12881:11;12918:3;12903:18;;12780:147;;;;:::o;12933:114::-;;:::o;13053:398::-;13212:3;13233:83;13314:1;13309:3;13233:83;:::i;:::-;13226:90;;13325:93;13414:3;13325:93;:::i;:::-;13443:1;13438:3;13434:11;13427:18;;13053:398;;;:::o;13457:379::-;13641:3;13663:147;13806:3;13663:147;:::i;:::-;13656:154;;13827:3;13820:10;;13457:379;;;:::o;13842:167::-;13982:19;13978:1;13970:6;13966:14;13959:43;13842:167;:::o;14015:366::-;14157:3;14178:67;14242:2;14237:3;14178:67;:::i;:::-;14171:74;;14254:93;14343:3;14254:93;:::i;:::-;14372:2;14367:3;14363:12;14356:19;;14015:366;;;:::o;14387:419::-;14553:4;14591:2;14580:9;14576:18;14568:26;;14640:9;14634:4;14630:20;14626:1;14615:9;14611:17;14604:47;14668:131;14794:4;14668:131;:::i;:::-;14660:139;;14387:419;;;:::o;14812:180::-;14860:77;14857:1;14850:88;14957:4;14954:1;14947:15;14981:4;14978:1;14971:15;14998:410;15038:7;15061:20;15079:1;15061:20;:::i;:::-;15056:25;;15095:20;15113:1;15095:20;:::i;:::-;15090:25;;15150:1;15147;15143:9;15172:30;15190:11;15172:30;:::i;:::-;15161:41;;15351:1;15342:7;15338:15;15335:1;15332:22;15312:1;15305:9;15285:83;15262:139;;15381:18;;:::i;:::-;15262:139;15046:362;14998:410;;;;:::o;15414:180::-;15462:77;15459:1;15452:88;15559:4;15556:1;15549:15;15583:4;15580:1;15573:15;15600:185;15640:1;15657:20;15675:1;15657:20;:::i;:::-;15652:25;;15691:20;15709:1;15691:20;:::i;:::-;15686:25;;15730:1;15720:35;;15735:18;;:::i;:::-;15720:35;15777:1;15774;15770:9;15765:14;;15600:185;;;;:::o;15791:228::-;15931:34;15927:1;15919:6;15915:14;15908:58;16000:11;15995:2;15987:6;15983:15;15976:36;15791:228;:::o;16025:366::-;16167:3;16188:67;16252:2;16247:3;16188:67;:::i;:::-;16181:74;;16264:93;16353:3;16264:93;:::i;:::-;16382:2;16377:3;16373:12;16366:19;;16025:366;;;:::o;16397:419::-;16563:4;16601:2;16590:9;16586:18;16578:26;;16650:9;16644:4;16640:20;16636:1;16625:9;16621:17;16614:47;16678:131;16804:4;16678:131;:::i;:::-;16670:139;;16397:419;;;:::o;16822:227::-;16962:34;16958:1;16950:6;16946:14;16939:58;17031:10;17026:2;17018:6;17014:15;17007:35;16822:227;:::o;17055:366::-;17197:3;17218:67;17282:2;17277:3;17218:67;:::i;:::-;17211:74;;17294:93;17383:3;17294:93;:::i;:::-;17412:2;17407:3;17403:12;17396:19;;17055:366;;;:::o;17427:419::-;17593:4;17631:2;17620:9;17616:18;17608:26;;17680:9;17674:4;17670:20;17666:1;17655:9;17651:17;17644:47;17708:131;17834:4;17708:131;:::i;:::-;17700:139;;17427:419;;;:::o;17852:191::-;17892:3;17911:20;17929:1;17911:20;:::i;:::-;17906:25;;17945:20;17963:1;17945:20;:::i;:::-;17940:25;;17988:1;17985;17981:9;17974:16;;18009:3;18006:1;18003:10;18000:36;;;18016:18;;:::i;:::-;18000:36;17852:191;;;;:::o;18049:179::-;18189:31;18185:1;18177:6;18173:14;18166:55;18049:179;:::o;18234:366::-;18376:3;18397:67;18461:2;18456:3;18397:67;:::i;:::-;18390:74;;18473:93;18562:3;18473:93;:::i;:::-;18591:2;18586:3;18582:12;18575:19;;18234:366;;;:::o;18606:419::-;18772:4;18810:2;18799:9;18795:18;18787:26;;18859:9;18853:4;18849:20;18845:1;18834:9;18830:17;18823:47;18887:131;19013:4;18887:131;:::i;:::-;18879:139;;18606:419;;;:::o;19031:178::-;19171:30;19167:1;19159:6;19155:14;19148:54;19031:178;:::o;19215:366::-;19357:3;19378:67;19442:2;19437:3;19378:67;:::i;:::-;19371:74;;19454:93;19543:3;19454:93;:::i;:::-;19572:2;19567:3;19563:12;19556:19;;19215:366;;;:::o;19587:419::-;19753:4;19791:2;19780:9;19776:18;19768:26;;19840:9;19834:4;19830:20;19826:1;19815:9;19811:17;19804:47;19868:131;19994:4;19868:131;:::i;:::-;19860:139;;19587:419;;;:::o;20012:143::-;20069:5;20100:6;20094:13;20085:22;;20116:33;20143:5;20116:33;:::i;:::-;20012:143;;;;:::o;20161:351::-;20231:6;20280:2;20268:9;20259:7;20255:23;20251:32;20248:119;;;20286:79;;:::i;:::-;20248:119;20406:1;20431:64;20487:7;20478:6;20467:9;20463:22;20431:64;:::i;:::-;20421:74;;20377:128;20161:351;;;;:::o;20518:332::-;20639:4;20677:2;20666:9;20662:18;20654:26;;20690:71;20758:1;20747:9;20743:17;20734:6;20690:71;:::i;:::-;20771:72;20839:2;20828:9;20824:18;20815:6;20771:72;:::i;:::-;20518:332;;;;;:::o;20856:137::-;20910:5;20941:6;20935:13;20926:22;;20957:30;20981:5;20957:30;:::i;:::-;20856:137;;;;:::o;20999:345::-;21066:6;21115:2;21103:9;21094:7;21090:23;21086:32;21083:119;;;21121:79;;:::i;:::-;21083:119;21241:1;21266:61;21319:7;21310:6;21299:9;21295:22;21266:61;:::i;:::-;21256:71;;21212:125;20999:345;;;;:::o;21350:244::-;21490:34;21486:1;21478:6;21474:14;21467:58;21559:27;21554:2;21546:6;21542:15;21535:52;21350:244;:::o;21600:366::-;21742:3;21763:67;21827:2;21822:3;21763:67;:::i;:::-;21756:74;;21839:93;21928:3;21839:93;:::i;:::-;21957:2;21952:3;21948:12;21941:19;;21600:366;;;:::o;21972:419::-;22138:4;22176:2;22165:9;22161:18;22153:26;;22225:9;22219:4;22215:20;22211:1;22200:9;22196:17;22189:47;22253:131;22379:4;22253:131;:::i;:::-;22245:139;;21972:419;;;:::o;22397:224::-;22537:34;22533:1;22525:6;22521:14;22514:58;22606:7;22601:2;22593:6;22589:15;22582:32;22397:224;:::o;22627:366::-;22769:3;22790:67;22854:2;22849:3;22790:67;:::i;:::-;22783:74;;22866:93;22955:3;22866:93;:::i;:::-;22984:2;22979:3;22975:12;22968:19;;22627:366;;;:::o;22999:419::-;23165:4;23203:2;23192:9;23188:18;23180:26;;23252:9;23246:4;23242:20;23238:1;23227:9;23223:17;23216:47;23280:131;23406:4;23280:131;:::i;:::-;23272:139;;22999:419;;;:::o;23424:180::-;23472:77;23469:1;23462:88;23569:4;23566:1;23559:15;23593:4;23590:1;23583:15;23610:233;23649:3;23672:24;23690:5;23672:24;:::i;:::-;23663:33;;23718:66;23711:5;23708:77;23705:103;;23788:18;;:::i;:::-;23705:103;23835:1;23828:5;23824:13;23817:20;;23610:233;;;:::o;23849:231::-;23989:34;23985:1;23977:6;23973:14;23966:58;24058:14;24053:2;24045:6;24041:15;24034:39;23849:231;:::o;24086:366::-;24228:3;24249:67;24313:2;24308:3;24249:67;:::i;:::-;24242:74;;24325:93;24414:3;24325:93;:::i;:::-;24443:2;24438:3;24434:12;24427:19;;24086:366;;;:::o;24458:419::-;24624:4;24662:2;24651:9;24647:18;24639:26;;24711:9;24705:4;24701:20;24697:1;24686:9;24682:17;24675:47;24739:131;24865:4;24739:131;:::i;:::-;24731:139;;24458:419;;;:::o;24883:240::-;25023:34;25019:1;25011:6;25007:14;25000:58;25092:23;25087:2;25079:6;25075:15;25068:48;24883:240;:::o;25129:366::-;25271:3;25292:67;25356:2;25351:3;25292:67;:::i;:::-;25285:74;;25368:93;25457:3;25368:93;:::i;:::-;25486:2;25481:3;25477:12;25470:19;;25129:366;;;:::o;25501:419::-;25667:4;25705:2;25694:9;25690:18;25682:26;;25754:9;25748:4;25744:20;25740:1;25729:9;25725:17;25718:47;25782:131;25908:4;25782:131;:::i;:::-;25774:139;;25501:419;;;:::o;25926:239::-;26066:34;26062:1;26054:6;26050:14;26043:58;26135:22;26130:2;26122:6;26118:15;26111:47;25926:239;:::o;26171:366::-;26313:3;26334:67;26398:2;26393:3;26334:67;:::i;:::-;26327:74;;26410:93;26499:3;26410:93;:::i;:::-;26528:2;26523:3;26519:12;26512:19;;26171:366;;;:::o;26543:419::-;26709:4;26747:2;26736:9;26732:18;26724:26;;26796:9;26790:4;26786:20;26782:1;26771:9;26767:17;26760:47;26824:131;26950:4;26824:131;:::i;:::-;26816:139;;26543:419;;;:::o;26968:171::-;27108:23;27104:1;27096:6;27092:14;27085:47;26968:171;:::o;27145:366::-;27287:3;27308:67;27372:2;27367:3;27308:67;:::i;:::-;27301:74;;27384:93;27473:3;27384:93;:::i;:::-;27502:2;27497:3;27493:12;27486:19;;27145:366;;;:::o;27517:419::-;27683:4;27721:2;27710:9;27706:18;27698:26;;27770:9;27764:4;27760:20;27756:1;27745:9;27741:17;27734:47;27798:131;27924:4;27798:131;:::i;:::-;27790:139;;27517:419;;;:::o;27942:225::-;28082:34;28078:1;28070:6;28066:14;28059:58;28151:8;28146:2;28138:6;28134:15;28127:33;27942:225;:::o;28173:366::-;28315:3;28336:67;28400:2;28395:3;28336:67;:::i;:::-;28329:74;;28412:93;28501:3;28412:93;:::i;:::-;28530:2;28525:3;28521:12;28514:19;;28173:366;;;:::o;28545:419::-;28711:4;28749:2;28738:9;28734:18;28726:26;;28798:9;28792:4;28788:20;28784:1;28773:9;28769:17;28762:47;28826:131;28952:4;28826:131;:::i;:::-;28818:139;;28545:419;;;:::o;28970:223::-;29110:34;29106:1;29098:6;29094:14;29087:58;29179:6;29174:2;29166:6;29162:15;29155:31;28970:223;:::o;29199:366::-;29341:3;29362:67;29426:2;29421:3;29362:67;:::i;:::-;29355:74;;29438:93;29527:3;29438:93;:::i;:::-;29556:2;29551:3;29547:12;29540:19;;29199:366;;;:::o;29571:419::-;29737:4;29775:2;29764:9;29760:18;29752:26;;29824:9;29818:4;29814:20;29810:1;29799:9;29795:17;29788:47;29852:131;29978:4;29852:131;:::i;:::-;29844:139;;29571:419;;;:::o;29996:221::-;30136:34;30132:1;30124:6;30120:14;30113:58;30205:4;30200:2;30192:6;30188:15;30181:29;29996:221;:::o;30223:366::-;30365:3;30386:67;30450:2;30445:3;30386:67;:::i;:::-;30379:74;;30462:93;30551:3;30462:93;:::i;:::-;30580:2;30575:3;30571:12;30564:19;;30223:366;;;:::o;30595:419::-;30761:4;30799:2;30788:9;30784:18;30776:26;;30848:9;30842:4;30838:20;30834:1;30823:9;30819:17;30812:47;30876:131;31002:4;30876:131;:::i;:::-;30868:139;;30595:419;;;:::o;31020:224::-;31160:34;31156:1;31148:6;31144:14;31137:58;31229:7;31224:2;31216:6;31212:15;31205:32;31020:224;:::o;31250:366::-;31392:3;31413:67;31477:2;31472:3;31413:67;:::i;:::-;31406:74;;31489:93;31578:3;31489:93;:::i;:::-;31607:2;31602:3;31598:12;31591:19;;31250:366;;;:::o;31622:419::-;31788:4;31826:2;31815:9;31811:18;31803:26;;31875:9;31869:4;31865:20;31861:1;31850:9;31846:17;31839:47;31903:131;32029:4;31903:131;:::i;:::-;31895:139;;31622:419;;;:::o;32047:222::-;32187:34;32183:1;32175:6;32171:14;32164:58;32256:5;32251:2;32243:6;32239:15;32232:30;32047:222;:::o;32275:366::-;32417:3;32438:67;32502:2;32497:3;32438:67;:::i;:::-;32431:74;;32514:93;32603:3;32514:93;:::i;:::-;32632:2;32627:3;32623:12;32616:19;;32275:366;;;:::o;32647:419::-;32813:4;32851:2;32840:9;32836:18;32828:26;;32900:9;32894:4;32890:20;32886:1;32875:9;32871:17;32864:47;32928:131;33054:4;32928:131;:::i;:::-;32920:139;;32647:419;;;:::o;33072:179::-;33212:31;33208:1;33200:6;33196:14;33189:55;33072:179;:::o;33257:366::-;33399:3;33420:67;33484:2;33479:3;33420:67;:::i;:::-;33413:74;;33496:93;33585:3;33496:93;:::i;:::-;33614:2;33609:3;33605:12;33598:19;;33257:366;;;:::o;33629:419::-;33795:4;33833:2;33822:9;33818:18;33810:26;;33882:9;33876:4;33872:20;33868:1;33857:9;33853:17;33846:47;33910:131;34036:4;33910:131;:::i;:::-;33902:139;;33629:419;;;:::o;34054:172::-;34194:24;34190:1;34182:6;34178:14;34171:48;34054:172;:::o;34232:366::-;34374:3;34395:67;34459:2;34454:3;34395:67;:::i;:::-;34388:74;;34471:93;34560:3;34471:93;:::i;:::-;34589:2;34584:3;34580:12;34573:19;;34232:366;;;:::o;34604:419::-;34770:4;34808:2;34797:9;34793:18;34785:26;;34857:9;34851:4;34847:20;34843:1;34832:9;34828:17;34821:47;34885:131;35011:4;34885:131;:::i;:::-;34877:139;;34604:419;;;:::o;35029:223::-;35169:34;35165:1;35157:6;35153:14;35146:58;35238:6;35233:2;35225:6;35221:15;35214:31;35029:223;:::o;35258:366::-;35400:3;35421:67;35485:2;35480:3;35421:67;:::i;:::-;35414:74;;35497:93;35586:3;35497:93;:::i;:::-;35615:2;35610:3;35606:12;35599:19;;35258:366;;;:::o;35630:419::-;35796:4;35834:2;35823:9;35819:18;35811:26;;35883:9;35877:4;35873:20;35869:1;35858:9;35854:17;35847:47;35911:131;36037:4;35911:131;:::i;:::-;35903:139;;35630:419;;;:::o;36055:227::-;36195:34;36191:1;36183:6;36179:14;36172:58;36264:10;36259:2;36251:6;36247:15;36240:35;36055:227;:::o;36288:366::-;36430:3;36451:67;36515:2;36510:3;36451:67;:::i;:::-;36444:74;;36527:93;36616:3;36527:93;:::i;:::-;36645:2;36640:3;36636:12;36629:19;;36288:366;;;:::o;36660:419::-;36826:4;36864:2;36853:9;36849:18;36841:26;;36913:9;36907:4;36903:20;36899:1;36888:9;36884:17;36877:47;36941:131;37067:4;36941:131;:::i;:::-;36933:139;;36660:419;;;:::o;37085:174::-;37225:26;37221:1;37213:6;37209:14;37202:50;37085:174;:::o;37265:366::-;37407:3;37428:67;37492:2;37487:3;37428:67;:::i;:::-;37421:74;;37504:93;37593:3;37504:93;:::i;:::-;37622:2;37617:3;37613:12;37606:19;;37265:366;;;:::o;37637:419::-;37803:4;37841:2;37830:9;37826:18;37818:26;;37890:9;37884:4;37880:20;37876:1;37865:9;37861:17;37854:47;37918:131;38044:4;37918:131;:::i;:::-;37910:139;;37637:419;;;:::o;38062:228::-;38202:34;38198:1;38190:6;38186:14;38179:58;38271:11;38266:2;38258:6;38254:15;38247:36;38062:228;:::o;38296:366::-;38438:3;38459:67;38523:2;38518:3;38459:67;:::i;:::-;38452:74;;38535:93;38624:3;38535:93;:::i;:::-;38653:2;38648:3;38644:12;38637:19;;38296:366;;;:::o;38668:419::-;38834:4;38872:2;38861:9;38857:18;38849:26;;38921:9;38915:4;38911:20;38907:1;38896:9;38892:17;38885:47;38949:131;39075:4;38949:131;:::i;:::-;38941:139;;38668:419;;;:::o;39093:194::-;39133:4;39153:20;39171:1;39153:20;:::i;:::-;39148:25;;39187:20;39205:1;39187:20;:::i;:::-;39182:25;;39231:1;39228;39224:9;39216:17;;39255:1;39249:4;39246:11;39243:37;;;39260:18;;:::i;:::-;39243:37;39093:194;;;;:::o;39293:180::-;39341:77;39338:1;39331:88;39438:4;39435:1;39428:15;39462:4;39459:1;39452:15;39479:143;39536:5;39567:6;39561:13;39552:22;;39583:33;39610:5;39583:33;:::i;:::-;39479:143;;;;:::o;39628:351::-;39698:6;39747:2;39735:9;39726:7;39722:23;39718:32;39715:119;;;39753:79;;:::i;:::-;39715:119;39873:1;39898:64;39954:7;39945:6;39934:9;39930:22;39898:64;:::i;:::-;39888:74;;39844:128;39628:351;;;;:::o;39985:85::-;40030:7;40059:5;40048:16;;39985:85;;;:::o;40076:158::-;40134:9;40167:61;40185:42;40194:32;40220:5;40194:32;:::i;:::-;40185:42;:::i;:::-;40167:61;:::i;:::-;40154:74;;40076:158;;;:::o;40240:147::-;40335:45;40374:5;40335:45;:::i;:::-;40330:3;40323:58;40240:147;;:::o;40393:114::-;40460:6;40494:5;40488:12;40478:22;;40393:114;;;:::o;40513:184::-;40612:11;40646:6;40641:3;40634:19;40686:4;40681:3;40677:14;40662:29;;40513:184;;;;:::o;40703:132::-;40770:4;40793:3;40785:11;;40823:4;40818:3;40814:14;40806:22;;40703:132;;;:::o;40841:108::-;40918:24;40936:5;40918:24;:::i;:::-;40913:3;40906:37;40841:108;;:::o;40955:179::-;41024:10;41045:46;41087:3;41079:6;41045:46;:::i;:::-;41123:4;41118:3;41114:14;41100:28;;40955:179;;;;:::o;41140:113::-;41210:4;41242;41237:3;41233:14;41225:22;;41140:113;;;:::o;41289:732::-;41408:3;41437:54;41485:5;41437:54;:::i;:::-;41507:86;41586:6;41581:3;41507:86;:::i;:::-;41500:93;;41617:56;41667:5;41617:56;:::i;:::-;41696:7;41727:1;41712:284;41737:6;41734:1;41731:13;41712:284;;;41813:6;41807:13;41840:63;41899:3;41884:13;41840:63;:::i;:::-;41833:70;;41926:60;41979:6;41926:60;:::i;:::-;41916:70;;41772:224;41759:1;41756;41752:9;41747:14;;41712:284;;;41716:14;42012:3;42005:10;;41413:608;;;41289:732;;;;:::o;42027:831::-;42290:4;42328:3;42317:9;42313:19;42305:27;;42342:71;42410:1;42399:9;42395:17;42386:6;42342:71;:::i;:::-;42423:80;42499:2;42488:9;42484:18;42475:6;42423:80;:::i;:::-;42550:9;42544:4;42540:20;42535:2;42524:9;42520:18;42513:48;42578:108;42681:4;42672:6;42578:108;:::i;:::-;42570:116;;42696:72;42764:2;42753:9;42749:18;42740:6;42696:72;:::i;:::-;42778:73;42846:3;42835:9;42831:19;42822:6;42778:73;:::i;:::-;42027:831;;;;;;;;:::o;42864:225::-;43004:34;43000:1;42992:6;42988:14;42981:58;43073:8;43068:2;43060:6;43056:15;43049:33;42864:225;:::o;43095:366::-;43237:3;43258:67;43322:2;43317:3;43258:67;:::i;:::-;43251:74;;43334:93;43423:3;43334:93;:::i;:::-;43452:2;43447:3;43443:12;43436:19;;43095:366;;;:::o;43467:419::-;43633:4;43671:2;43660:9;43656:18;43648:26;;43720:9;43714:4;43710:20;43706:1;43695:9;43691:17;43684:47;43748:131;43874:4;43748:131;:::i;:::-;43740:139;;43467:419;;;:::o

Swarm Source

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