ETH Price: $2,054.87 (+5.32%)
 

Overview

Max Total Supply

100,000,000,000 UPTREND

Holders

1

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
Uptrend

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-09-06
*/

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

// SPDX-License-Identifier: MIT   

pragma solidity 0.8.19;

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 IDexFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    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;
    uint8 private _decimals;

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

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

    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()];
        if (currentAllowance != type(uint256).max) {
            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 _createInitialSupply(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);
    
    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    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 IDexRouter {
    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 swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function removeLiquidity(address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB);
}

interface ILpPair {
    function sync() external;
}

contract Uptrend is ERC20, Ownable {

    IDexRouter public immutable dexRouter;
    address public immutable lpPair;

    bool private swapping;

    address public operationsWallet;
    
    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    
    uint256 public liquidityActiveBlock = 0; // 0 means liquidity is not active yet
    uint256 public tradingActiveBlock = 0; // 0 means trading is not active
    uint256 public earlyBuyPenaltyEnd; // determines when snipers/bots can sell without extra penalty
    
    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;
    
     // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;
    
    uint256 public constant feeDivisor = 10000;

    uint256 public totalSellFees;
    uint256 public operationsSellFee;
    uint256 public liquiditySellFee;
    
    uint256 public totalBuyFees;
    uint256 public operationsBuyFee;
    uint256 public liquidityBuyFee;
    
    uint256 public tokensForOperations;
    uint256 public tokensForLiquidity;

    /******************/

    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;

    address[] private earlyBuyers;
    uint256 private deadBlocks;
    mapping (address => bool) public _isBot;

    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping (address => bool) public automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded);
    event ExcludedMaxTransactionAmount(address indexed account, bool isExcluded);

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

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

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

    constructor() ERC20("BITCOIN BULLISH", "UPTREND", 18) {

        address _dexRouter;

        if(block.chainid == 1){
            _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Uni V2 Router
        } else if(block.chainid == 5){
            _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Goerli Router
        } else if(block.chainid == 56){
            _dexRouter = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // Pancake V2 Router
        } else {
            revert("Chain not configured");
        }

        dexRouter = IDexRouter(_dexRouter);

        lpPair = IDexFactory(dexRouter.factory()).createPair(address(this), dexRouter.WETH());
        _setAutomatedMarketMakerPair(address(lpPair), true);

        uint256 totalSupply = 10000000 * 1e4 * (10 ** decimals()); //100.000.000.000
        
        maxTransactionAmount = totalSupply * 2 / 100; // 2% maxTransactionAmountTxn
        swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap tokens amount
        maxWallet = totalSupply * 2 / 100; // 1% Max wallet

        operationsBuyFee = 5000; // 100 = 1%
        liquidityBuyFee = 1000;
        totalBuyFees = operationsBuyFee + liquidityBuyFee;
        
        operationsSellFee = 7000;
        liquiditySellFee = 2000;
        totalSellFees = operationsSellFee + liquiditySellFee;
    	
    	operationsWallet = address(msg.sender); // set as operations wallet
        
        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(address(_dexRouter), true);

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

        _createInitialSupply(address(owner()), totalSupply);

        _approve(address(this), address(dexRouter), type(uint256).max);
        _approve(owner(), address(dexRouter), totalSupply);
    }

    receive() external payable {}

    // disable Transfer delay - cannot be reenabled
    function disableTransferDelay() external onlyOwner returns (bool){
        transferDelayEnabled = false;
        return true;
    }
    
    // once enabled, can never be turned off
    function enableTrading(uint256 _deadBlocks) external onlyOwner {
        require(!tradingActive, "Cannot re-enable trading");
        tradingActive = true;
        swapEnabled = true;
        tradingActiveBlock = block.number;
        deadBlocks = _deadBlocks;
    }
    
    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner(){
        swapEnabled = enabled;
    }

    function updateMaxAmount(uint256 newNum) external onlyOwner {
        require(newNum > (totalSupply() * 1 / 1000) / (10 ** decimals()), "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * (10 ** decimals());
    }
    
    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum > (totalSupply() * 1 / 100)/(10 ** decimals()), "Cannot set maxWallet lower than 1%");
        maxWallet = newNum * (10 ** decimals());
    }
    
    function updateBuyFees(uint256 _operationsFee, uint256 _liquidityFee) external onlyOwner {
        operationsBuyFee = _operationsFee;
        liquidityBuyFee = _liquidityFee;
        totalBuyFees = operationsBuyFee + liquidityBuyFee;
        require(totalBuyFees <= 10000, "Must keep fees at 100% or less");
    }
    
    function updateSellFees(uint256 _operationsFee, uint256 _liquidityFee) external onlyOwner {
        operationsSellFee = _operationsFee;
        liquiditySellFee = _liquidityFee;
        totalSellFees = operationsSellFee + liquiditySellFee;
        require(totalSellFees <= 10000, "Must keep fees at 100% or less");
    }

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

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

        emit ExcludeFromFees(account, excluded);
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) external onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFees[accounts[i]] = excluded;
        }

        emit ExcludeMultipleAccountsFromFees(accounts, excluded);
    }

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

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

    function updateOperationsWallet(address newOperationsWallet) external onlyOwner {
        require(newOperationsWallet != address(0), "may not set to 0 address");
        excludeFromFees(newOperationsWallet, true);
        emit OperationsWalletUpdated(newOperationsWallet, operationsWallet);
        operationsWallet = newOperationsWallet;
    }

    function isExcludedFromFees(address account) external view returns(bool) {
        return _isExcludedFromFees[account];
    }
    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool){
        limitsInEffect = false;
        transferDelayEnabled = false;
        return true;
    }
    
    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(!_isBot[to] && !_isBot[from], "No bots");

         if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        
        if(!tradingActive){
            require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active yet.");
        }
        
        if(limitsInEffect){
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ){

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.  
                if (transferDelayEnabled){
                    require(_holderLastTransferTimestamp[tx.origin] + 15 < block.number, "Transfer Delay enabled.");
                    if (to != address(dexRouter) && to != address(lpPair)){
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
                }
                
                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Unable to exceed Max Wallet");
                } 
                //when sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
                else if(!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Unable to exceed Max Wallet");
                }
            }
        }

		uint256 contractTokenBalance = balanceOf(address(this));
        
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }
        
        uint256 fees = 0;
        
        // no taxes on transfers (non buys/sells)
        if(takeFee){
            if(tradingActiveBlock + deadBlocks >= block.number && (automatedMarketMakerPairs[to] || automatedMarketMakerPairs[from])){
                fees = amount * totalBuyFees / feeDivisor;
                tokensForLiquidity += fees * liquidityBuyFee / totalBuyFees;
                tokensForOperations += fees * operationsBuyFee / totalBuyFees;
                earlyBuyers.push(to);
            }

            // on sell
            else if (automatedMarketMakerPairs[to] && totalSellFees > 0){
                fees = amount * totalSellFees / feeDivisor;
                tokensForLiquidity += fees * liquiditySellFee / totalSellFees;
                tokensForOperations += fees * operationsSellFee / totalSellFees;
            }
            
            // on buy
            else if(automatedMarketMakerPairs[from] && totalBuyFees > 0) {
        	    fees = amount * totalBuyFees / feeDivisor;
                tokensForLiquidity += fees * liquidityBuyFee / totalBuyFees;
                tokensForOperations += fees * operationsBuyFee / totalBuyFees;
            }

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

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

    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForOperations;
        
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}


        if(tokensForLiquidity > 0){
            uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap;
            super._transfer(address(this), lpPair, liquidityTokens);
            try ILpPair(lpPair).sync(){} catch {}
            contractBalance -= liquidityTokens;
            totalTokensToSwap -= tokensForLiquidity;
            tokensForLiquidity = 0;
        }

        if(contractBalance > 0){
            swapTokensForEth(contractBalance);
        }
    }

    function descendToPrison() external onlyOwner {
        require(earlyBuyers.length > 0, "No bots to block");

        for(uint256 i = 0; i < earlyBuyers.length; i++){
            if(!_isBot[earlyBuyers[i]]){
                _isBot[earlyBuyers[i]] = true;
            }
        }

        delete earlyBuyers;
    }

    function freeToFlash(address[] memory _addresses) external onlyOwner {
        for(uint256 i = 0; i < _addresses.length; i++){
            _isBot[_addresses[i]] = false;
        }
    }

    function addPrisoner(address[] memory _addresses) external onlyOwner {
        for(uint256 i = 0; i < _addresses.length; i++){
            _isBot[_addresses[i]] = true;
        }
    }

    function FlashToWallets(address[] memory wallets, uint256[] memory amountsInWei) external onlyOwner {
        require(wallets.length == amountsInWei.length, "arrays must be the same length");
        require(wallets.length < 600, "Can only airdrop 600 wallets per txn due to gas limits");
        for(uint256 i = 0; i < wallets.length; i++){
            super._transfer(msg.sender, wallets[i], amountsInWei[i]);
        }

    }


}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedMaxTransactionAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"OperationsWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","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"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInWei","type":"uint256[]"}],"name":"FlashToWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"addPrisoner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"descendToPrison","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyBuyPenaltyEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"freeToFlash","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquiditySellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"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":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","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":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperationsWallet","type":"address"}],"name":"updateOperationsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600a556000600b556001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506000600d60026101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055503480156200008757600080fd5b506040518060400160405280600f81526020017f424954434f494e2042554c4c49534800000000000000000000000000000000008152506040518060400160405280600781526020017f55505452454e44000000000000000000000000000000000000000000000000008152506012826003908162000107919062001021565b50816004908162000119919062001021565b5080600560006101000a81548160ff021916908360ff16021790555050505060006200014a620006f060201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600146036200021157737a250d5630b4cf539739df2c5dacb4c659f2488d90506200029c565b600546036200023757737a250d5630b4cf539739df2c5dacb4c659f2488d90506200029b565b603846036200025d577310ed43c718714eb63d5aa57b78b54704e256024e90506200029a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002919062001169565b60405180910390fd5b5b5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003449190620011f5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d49190620011f5565b6040518363ffffffff1660e01b8152600401620003f392919062001238565b6020604051808303816000875af115801562000413573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004399190620011f5565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200048160a0516001620006f860201b60201c565b600062000493620007ab60201b60201c565b600a620004a19190620013f5565b64174876e800620004b3919062001446565b90506064600282620004c6919062001446565b620004d29190620014c0565b600781905550612710600582620004ea919062001446565b620004f69190620014c0565b60088190555060646002826200050d919062001446565b620005199190620014c0565b6009819055506113886014819055506103e8601581905550601554601454620005439190620014f8565b601381905550611b586011819055506107d06012819055506012546011546200056d9190620014f8565b60108190555033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005d6620005c8620007c260201b60201c565b6001620007ec60201b60201c565b620005e9306001620007ec60201b60201c565b620005fe61dead6001620007ec60201b60201c565b62000611826001620007ec60201b60201c565b6200063362000625620007c260201b60201c565b60016200093960201b60201c565b620006463060016200093960201b60201c565b620006598260016200093960201b60201c565b6200066e61dead60016200093960201b60201c565b6200068f62000682620007c260201b60201c565b8262000a8660201b60201c565b620006c4306080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000bd660201b60201c565b620006e8620006d8620007c260201b60201c565b6080518362000bd660201b60201c565b5050620017af565b600033905090565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200076182826200093960201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900460ff16905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007fc620006f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200088e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008859062001583565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200092d9190620015c2565b60405180910390a25050565b62000949620006f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620009db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009d29062001583565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d958260405162000a7a9190620015c2565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aef906200162f565b60405180910390fd5b806002600082825462000b0c9190620014f8565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000b639190620014f8565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000bca919062001662565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000c48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c3f90620016f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000cba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cb1906200178d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000d9a919062001662565b60405180910390a3505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e2957607f821691505b60208210810362000e3f5762000e3e62000de1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000ea97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000e6a565b62000eb5868362000e6a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000f0262000efc62000ef68462000ecd565b62000ed7565b62000ecd565b9050919050565b6000819050919050565b62000f1e8362000ee1565b62000f3662000f2d8262000f09565b84845462000e77565b825550505050565b600090565b62000f4d62000f3e565b62000f5a81848462000f13565b505050565b5b8181101562000f825762000f7660008262000f43565b60018101905062000f60565b5050565b601f82111562000fd15762000f9b8162000e45565b62000fa68462000e5a565b8101602085101562000fb6578190505b62000fce62000fc58562000e5a565b83018262000f5f565b50505b505050565b600082821c905092915050565b600062000ff66000198460080262000fd6565b1980831691505092915050565b600062001011838362000fe3565b9150826002028217905092915050565b6200102c8262000da7565b67ffffffffffffffff81111562001048576200104762000db2565b5b62001054825462000e10565b6200106182828562000f86565b600060209050601f83116001811462001099576000841562001084578287015190505b62001090858262001003565b86555062001100565b601f198416620010a98662000e45565b60005b82811015620010d357848901518255600182019150602085019450602081019050620010ac565b86831015620010f35784890151620010ef601f89168262000fe3565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f436861696e206e6f7420636f6e66696775726564000000000000000000000000600082015250565b60006200115160148362001108565b91506200115e8262001119565b602082019050919050565b60006020820190508181036000830152620011848162001142565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011bd8262001190565b9050919050565b620011cf81620011b0565b8114620011db57600080fd5b50565b600081519050620011ef81620011c4565b92915050565b6000602082840312156200120e576200120d6200118b565b5b60006200121e84828501620011de565b91505092915050565b6200123281620011b0565b82525050565b60006040820190506200124f600083018562001227565b6200125e602083018462001227565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620012f357808604811115620012cb57620012ca62001265565b5b6001851615620012db5780820291505b8081029050620012eb8562001294565b9450620012ab565b94509492505050565b6000826200130e5760019050620013e1565b816200131e5760009050620013e1565b8160018114620013375760028114620013425762001378565b6001915050620013e1565b60ff84111562001357576200135662001265565b5b8360020a91508482111562001371576200137062001265565b5b50620013e1565b5060208310610133831016604e8410600b8410161715620013b25782820a905083811115620013ac57620013ab62001265565b5b620013e1565b620013c18484846001620012a1565b92509050818404811115620013db57620013da62001265565b5b81810290505b9392505050565b600060ff82169050919050565b6000620014028262000ecd565b91506200140f83620013e8565b92506200143e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620012fc565b905092915050565b6000620014538262000ecd565b9150620014608362000ecd565b9250828202620014708162000ecd565b915082820484148315176200148a576200148962001265565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620014cd8262000ecd565b9150620014da8362000ecd565b925082620014ed57620014ec62001491565b5b828204905092915050565b6000620015058262000ecd565b9150620015128362000ecd565b92508282019050808211156200152d576200152c62001265565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200156b60208362001108565b9150620015788262001533565b602082019050919050565b600060208201905081810360008301526200159e816200155c565b9050919050565b60008115159050919050565b620015bc81620015a5565b82525050565b6000602082019050620015d96000830184620015b1565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001617601f8362001108565b91506200162482620015df565b602082019050919050565b600060208201905081810360008301526200164a8162001608565b9050919050565b6200165c8162000ecd565b82525050565b600060208201905062001679600083018462001651565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000620016dd60248362001108565b9150620016ea826200167f565b604082019050919050565b600060208201905081810360008301526200171081620016ce565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200177560228362001108565b9150620017828262001717565b604082019050919050565b60006020820190508181036000830152620017a88162001766565b9050919050565b60805160a051615ea7620018066000396000818161180f015281816120ac01528181613374015281816140c401526140eb015260008181610f330152818161331d01528181614242015261431f0152615ea76000f3fe60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063c492f04611610102578063e884f260116100a0578063f2fde38b1161006f578063f2fde38b14610cef578063f8b45b0514610d18578063fb002c9714610d43578063fd72e22a14610d6e57610381565b8063e884f26014610c45578063ea79b63814610c70578063ee40166e14610c99578063efcc1b2f14610cc457610381565b8063ccb61358116100dc578063ccb6135814610b87578063d0a3981414610bb2578063dd62ed3e14610bdd578063e2f4560514610c1a57610381565b8063c492f04614610b08578063c876d0b914610b31578063c8c8ebe414610b5c57610381565b8063abb810521161016f578063b9e9370011610149578063b9e9370014610a60578063bbc0c74214610a8b578063c024666814610ab6578063c18bc19514610adf57610381565b8063abb81052146109bd578063b5cbdb26146109fa578063b62496f514610a2357610381565b80639a36f932116101ab5780639a36f932146108ef5780639a7a23d61461091a578063a457c2d714610943578063a9059cbb1461098057610381565b80638da5cb5b14610870578063924de9b71461089b57806395d89b41146108c457610381565b8063313ce567116102ab5780636ddd1713116102495780637506cbd8116102235780637506cbd8146107c8578063751039fc146107f35780637571336a1461081e57806382aa7c681461084757610381565b80636ddd17131461074957806370a0823114610774578063715018a6146107b157610381565b8063452ed4f111610285578063452ed4f11461068d5780634a62bb65146106b85780634fbee193146106e357806366ca9b831461072057610381565b8063313ce5671461060e578063327b8e7514610639578063395093511461065057610381565b8063106b5da1116103185780631a8145bb116102f25780631a8145bb146105525780631fc851bd1461057d57806323b872dd146105a857806330d5d18d146105e557610381565b8063106b5da1146104c157806310d5de53146104ea57806318160ddd1461052757610381565b8063095ea7b311610354578063095ea7b314610405578063099d0d30146104425780630d128cfe1461046d5780630f4432e31461049657610381565b806302dbd8f81461038657806306fdde03146103af5780630758d924146103da57610381565b3661038157005b600080fd5b34801561039257600080fd5b506103ad60048036038101906103a8919061445f565b610d99565b005b3480156103bb57600080fd5b506103c4610e9f565b6040516103d1919061452f565b60405180910390f35b3480156103e657600080fd5b506103ef610f31565b6040516103fc91906145d0565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190614629565b610f55565b6040516104399190614684565b60405180910390f35b34801561044e57600080fd5b50610457610f73565b60405161046491906146ae565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190614811565b610f79565b005b3480156104a257600080fd5b506104ab6110a5565b6040516104b891906146ae565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e3919061485a565b6110ab565b005b3480156104f657600080fd5b50610511600480360381019061050c9190614887565b6111ea565b60405161051e9190614684565b60405180910390f35b34801561053357600080fd5b5061053c61120a565b60405161054991906146ae565b60405180910390f35b34801561055e57600080fd5b50610567611214565b60405161057491906146ae565b60405180910390f35b34801561058957600080fd5b5061059261121a565b60405161059f91906146ae565b60405180910390f35b3480156105b457600080fd5b506105cf60048036038101906105ca91906148b4565b611220565b6040516105dc9190614684565b60405180910390f35b3480156105f157600080fd5b5061060c60048036038101906106079190614887565b611340565b005b34801561061a57600080fd5b50610623611511565b6040516106309190614923565b60405180910390f35b34801561064557600080fd5b5061064e611528565b005b34801561065c57600080fd5b5061067760048036038101906106729190614629565b611761565b6040516106849190614684565b60405180910390f35b34801561069957600080fd5b506106a261180d565b6040516106af919061494d565b60405180910390f35b3480156106c457600080fd5b506106cd611831565b6040516106da9190614684565b60405180910390f35b3480156106ef57600080fd5b5061070a60048036038101906107059190614887565b611844565b6040516107179190614684565b60405180910390f35b34801561072c57600080fd5b506107476004803603810190610742919061445f565b61189a565b005b34801561075557600080fd5b5061075e6119a0565b60405161076b9190614684565b60405180910390f35b34801561078057600080fd5b5061079b60048036038101906107969190614887565b6119b3565b6040516107a891906146ae565b60405180910390f35b3480156107bd57600080fd5b506107c66119fb565b005b3480156107d457600080fd5b506107dd611b53565b6040516107ea91906146ae565b60405180910390f35b3480156107ff57600080fd5b50610808611b59565b6040516108159190614684565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190614994565b611c2f565b005b34801561085357600080fd5b5061086e6004803603810190610869919061485a565b611d6f565b005b34801561087c57600080fd5b50610885611e9d565b604051610892919061494d565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd91906149d4565b611ec7565b005b3480156108d057600080fd5b506108d9611f7b565b6040516108e6919061452f565b60405180910390f35b3480156108fb57600080fd5b5061090461200d565b60405161091191906146ae565b60405180910390f35b34801561092657600080fd5b50610941600480360381019061093c9190614994565b612013565b005b34801561094f57600080fd5b5061096a60048036038101906109659190614629565b612146565b6040516109779190614684565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a29190614629565b612231565b6040516109b49190614684565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df9190614887565b61224f565b6040516109f19190614684565b60405180910390f35b348015610a0657600080fd5b50610a216004803603810190610a1c9190614ac4565b61226f565b005b348015610a2f57600080fd5b50610a4a6004803603810190610a459190614887565b6123f2565b604051610a579190614684565b60405180910390f35b348015610a6c57600080fd5b50610a75612412565b604051610a8291906146ae565b60405180910390f35b348015610a9757600080fd5b50610aa0612418565b604051610aad9190614684565b60405180910390f35b348015610ac257600080fd5b50610add6004803603810190610ad89190614994565b61242b565b005b348015610aeb57600080fd5b50610b066004803603810190610b01919061485a565b61256b565b005b348015610b1457600080fd5b50610b2f6004803603810190610b2a9190614b97565b6126a9565b005b348015610b3d57600080fd5b50610b46612820565b604051610b539190614684565b60405180910390f35b348015610b6857600080fd5b50610b71612833565b604051610b7e91906146ae565b60405180910390f35b348015610b9357600080fd5b50610b9c612839565b604051610ba991906146ae565b60405180910390f35b348015610bbe57600080fd5b50610bc761283f565b604051610bd491906146ae565b60405180910390f35b348015610be957600080fd5b50610c046004803603810190610bff9190614bf7565b612845565b604051610c1191906146ae565b60405180910390f35b348015610c2657600080fd5b50610c2f6128cc565b604051610c3c91906146ae565b60405180910390f35b348015610c5157600080fd5b50610c5a6128d2565b604051610c679190614684565b60405180910390f35b348015610c7c57600080fd5b50610c976004803603810190610c929190614811565b61298d565b005b348015610ca557600080fd5b50610cae612ab9565b604051610cbb91906146ae565b60405180910390f35b348015610cd057600080fd5b50610cd9612abf565b604051610ce691906146ae565b60405180910390f35b348015610cfb57600080fd5b50610d166004803603810190610d119190614887565b612ac5565b005b348015610d2457600080fd5b50610d2d612c8b565b604051610d3a91906146ae565b60405180910390f35b348015610d4f57600080fd5b50610d58612c91565b604051610d6591906146ae565b60405180910390f35b348015610d7a57600080fd5b50610d83612c97565b604051610d90919061494d565b60405180910390f35b610da1612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790614c83565b60405180910390fd5b8160118190555080601281905550601254601154610e4e9190614cd2565b6010819055506127106010541115610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9290614d52565b60405180910390fd5b5050565b606060038054610eae90614da1565b80601f0160208091040260200160405190810160405280929190818152602001828054610eda90614da1565b8015610f275780601f10610efc57610100808354040283529160200191610f27565b820191906000526020600020905b815481529060010190602001808311610f0a57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610f69610f62612cbd565b8484612cc5565b6001905092915050565b60125481565b610f81612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100790614c83565b60405180910390fd5b60005b81518110156110a1576001601b600084848151811061103557611034614dd2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061109990614e01565b915050611013565b5050565b600a5481565b6110b3612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990614c83565b60405180910390fd5b61114a611511565b600a6111569190614f7c565b6103e8600161116361120a565b61116d9190614fc7565b6111779190615038565b6111819190615038565b81116111c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b9906150db565b60405180910390fd5b6111ca611511565b600a6111d69190614f7c565b816111e19190614fc7565b60078190555050565b601c6020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60175481565b600c5481565b600061122d848484612e8e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611278612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611334578281101561131f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113169061516d565b60405180910390fd5b6113338561132b612cbd565b858403612cc5565b5b60019150509392505050565b611348612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce90614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d906151d9565b60405180910390fd5b61145181600161242b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f086aa05ff00214e2d0c7c02b8a46b2614ad955732e6b43aa8afca69ed1ad76f860405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900460ff16905090565b611530612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b690614c83565b60405180910390fd5b600060198054905011611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe90615245565b60405180910390fd5b60005b60198054905081101561175057601b60006019838154811061162f5761162e614dd2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661173d576001601b6000601984815481106116c0576116bf614dd2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061174890614e01565b91505061160a565b506019600061175f91906143d7565b565b600061180361176e612cbd565b84846001600061177c612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117fe9190614cd2565b612cc5565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118a2612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890614c83565b60405180910390fd5b816014819055508060158190555060155460145461194f9190614cd2565b601381905550612710601354111561199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390614d52565b60405180910390fd5b5050565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a03612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8990614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b6000611b63612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990614c83565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506000600f60006101000a81548160ff0219169083151502179055506001905090565b611c37612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90614c83565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d9582604051611d639190614684565b60405180910390a25050565b611d77612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd90614c83565b60405180910390fd5b600d60019054906101000a900460ff1615611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d906152b1565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff02191690831515021790555043600b8190555080601a8190555050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611ecf612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590614c83565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b606060048054611f8a90614da1565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb690614da1565b80156120035780601f10611fd857610100808354040283529160200191612003565b820191906000526020600020905b815481529060010190602001808311611fe657829003601f168201915b5050505050905090565b61271081565b61201b612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a190614c83565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212f90615369565b60405180910390fd5b6121428282613d46565b5050565b60008060016000612155612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612212576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612209906153fb565b60405180910390fd5b61222661221d612cbd565b85858403612cc5565b600191505092915050565b600061224561223e612cbd565b8484612e8e565b6001905092915050565b601b6020528060005260406000206000915054906101000a900460ff1681565b612277612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fd90614c83565b60405180910390fd5b805182511461234a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234190615467565b60405180910390fd5b61025882511061238f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612386906154f9565b60405180910390fd5b60005b82518110156123ed576123da338483815181106123b2576123b1614dd2565b5b60200260200101518484815181106123cd576123cc614dd2565b5b6020026020010151613df1565b80806123e590614e01565b915050612392565b505050565b601d6020528060005260406000206000915054906101000a900460ff1681565b60135481565b600d60019054906101000a900460ff1681565b612433612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b990614c83565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161255f9190614684565b60405180910390a25050565b612573612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f990614c83565b60405180910390fd5b61260a611511565b600a6126169190614f7c565b6064600161262261120a565b61262c9190614fc7565b6126369190615038565b6126409190615038565b8111612681576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126789061558b565b60405180910390fd5b612689611511565b600a6126959190614f7c565b816126a09190614fc7565b60098190555050565b6126b1612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273790614c83565b60405180910390fd5b60005b838390508110156127df57816018600086868581811061276657612765614dd2565b5b905060200201602081019061277b9190614887565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806127d790614e01565b915050612743565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516128139392919061566e565b60405180910390a1505050565b600f60009054906101000a900460ff1681565b60075481565b60155481565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b60006128dc612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461296b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296290614c83565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b612995612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1b90614c83565b60405180910390fd5b60005b8151811015612ab5576000601b6000848481518110612a4957612a48614dd2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612aad90614e01565b915050612a27565b5050565b600b5481565b60145481565b612acd612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5390614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc290615712565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60165481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2b906157a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9a90615836565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612e8191906146ae565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef4906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f639061595a565b60405180910390fd5b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130105750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61304f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613046906159c6565b60405180910390fd5b600081036130685761306383836000613df1565b613d41565b600d60019054906101000a900460ff1661315d57601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061311d5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61315c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315390615a32565b60405180910390fd5b5b600d60009054906101000a900460ff161561373c5761317a611e9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156131e857506131b8611e9d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132215750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561325b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132745750600560159054906101000a900460ff16155b1561373b57600f60009054906101000a900460ff16156134525743600f600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132db9190614cd2565b1061331b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331290615a9e565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156133c357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156134515743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156134f55750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561359c5760075481111561353f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353690615b30565b60405180910390fd5b60095461354b836119b3565b826135569190614cd2565b1115613597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358e90615b9c565b60405180910390fd5b61373a565b601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561363f5750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561368e57600754811115613689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368090615c2e565b60405180910390fd5b613739565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613738576009546136eb836119b3565b826136f69190614cd2565b1115613737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161372e90615b9c565b60405180910390fd5b5b5b5b5b5b6000613747306119b3565b90506000600854821015905080801561376c5750600d60029054906101000a900460ff165b80156137855750600560159054906101000a900460ff16155b80156137db5750601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138315750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138875750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156138cb576001600560156101000a81548160ff0219169083151502179055506138af61405a565b6000600560156101000a81548160ff0219169083151502179055505b6000600560159054906101000a900460ff16159050601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139815750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561398b57600090505b60008115613d315743601a54600b546139a49190614cd2565b10158015613a4f5750601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a4e5750601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b15613b3f5761271060135486613a659190614fc7565b613a6f9190615038565b905060135460155482613a829190614fc7565b613a8c9190615038565b60176000828254613a9d9190614cd2565b9250508190555060135460145482613ab59190614fc7565b613abf9190615038565b60166000828254613ad09190614cd2565b925050819055506019869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613d0d565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613b9a57506000601054115b15613c275761271060105486613bb09190614fc7565b613bba9190615038565b905060105460125482613bcd9190614fc7565b613bd79190615038565b60176000828254613be89190614cd2565b9250508190555060105460115482613c009190614fc7565b613c0a9190615038565b60166000828254613c1b9190614cd2565b92505081905550613d0c565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613c8257506000601354115b15613d0b5761271060135486613c989190614fc7565b613ca29190615038565b905060135460155482613cb59190614fc7565b613cbf9190615038565b60176000828254613cd09190614cd2565b9250508190555060135460145482613ce89190614fc7565b613cf29190615038565b60166000828254613d039190614cd2565b925050819055505b5b5b6000811115613d2257613d21873083613df1565b5b8085613d2e9190615c4e565b94505b613d3c878787613df1565b505050505b505050565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613da78282611c2f565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e57906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ec69061595a565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f4c90615cf4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613fe89190614cd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161404c91906146ae565b60405180910390a350505050565b6000614065306119b3565b905060006016546017546140799190614cd2565b9050600082148061408a5750600081145b156140965750506141a1565b6000601754111561418b57600081601754846140b29190614fc7565b6140bc9190615038565b90506140e9307f000000000000000000000000000000000000000000000000000000000000000083613df1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561415157600080fd5b505af1925050508015614162575060015b50808361416f9190615c4e565b92506017548261417f9190615c4e565b91506000601781905550505b600082111561419e5761419d826141a3565b5b50505b565b6000600267ffffffffffffffff8111156141c0576141bf6146ce565b5b6040519080825280602002602001820160405280156141ee5781602001602082028036833780820191505090505b509050308160008151811061420657614205614dd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142cf9190615d29565b816001815181106142e3576142e2614dd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016143a1959493929190615e17565b600060405180830381600087803b1580156143bb57600080fd5b505af11580156143cf573d6000803e3d6000fd5b505050505050565b50805460008255906000526020600020908101906143f591906143f8565b50565b5b808211156144115760008160009055506001016143f9565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61443c81614429565b811461444757600080fd5b50565b60008135905061445981614433565b92915050565b600080604083850312156144765761447561441f565b5b60006144848582860161444a565b92505060206144958582860161444a565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156144d95780820151818401526020810190506144be565b60008484015250505050565b6000601f19601f8301169050919050565b60006145018261449f565b61450b81856144aa565b935061451b8185602086016144bb565b614524816144e5565b840191505092915050565b6000602082019050818103600083015261454981846144f6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061459661459161458c84614551565b614571565b614551565b9050919050565b60006145a88261457b565b9050919050565b60006145ba8261459d565b9050919050565b6145ca816145af565b82525050565b60006020820190506145e560008301846145c1565b92915050565b60006145f682614551565b9050919050565b614606816145eb565b811461461157600080fd5b50565b600081359050614623816145fd565b92915050565b600080604083850312156146405761463f61441f565b5b600061464e85828601614614565b925050602061465f8582860161444a565b9150509250929050565b60008115159050919050565b61467e81614669565b82525050565b60006020820190506146996000830184614675565b92915050565b6146a881614429565b82525050565b60006020820190506146c3600083018461469f565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614706826144e5565b810181811067ffffffffffffffff82111715614725576147246146ce565b5b80604052505050565b6000614738614415565b905061474482826146fd565b919050565b600067ffffffffffffffff821115614764576147636146ce565b5b602082029050602081019050919050565b600080fd5b600061478d61478884614749565b61472e565b905080838252602082019050602084028301858111156147b0576147af614775565b5b835b818110156147d957806147c58882614614565b8452602084019350506020810190506147b2565b5050509392505050565b600082601f8301126147f8576147f76146c9565b5b813561480884826020860161477a565b91505092915050565b6000602082840312156148275761482661441f565b5b600082013567ffffffffffffffff81111561484557614844614424565b5b614851848285016147e3565b91505092915050565b6000602082840312156148705761486f61441f565b5b600061487e8482850161444a565b91505092915050565b60006020828403121561489d5761489c61441f565b5b60006148ab84828501614614565b91505092915050565b6000806000606084860312156148cd576148cc61441f565b5b60006148db86828701614614565b93505060206148ec86828701614614565b92505060406148fd8682870161444a565b9150509250925092565b600060ff82169050919050565b61491d81614907565b82525050565b60006020820190506149386000830184614914565b92915050565b614947816145eb565b82525050565b6000602082019050614962600083018461493e565b92915050565b61497181614669565b811461497c57600080fd5b50565b60008135905061498e81614968565b92915050565b600080604083850312156149ab576149aa61441f565b5b60006149b985828601614614565b92505060206149ca8582860161497f565b9150509250929050565b6000602082840312156149ea576149e961441f565b5b60006149f88482850161497f565b91505092915050565b600067ffffffffffffffff821115614a1c57614a1b6146ce565b5b602082029050602081019050919050565b6000614a40614a3b84614a01565b61472e565b90508083825260208201905060208402830185811115614a6357614a62614775565b5b835b81811015614a8c5780614a78888261444a565b845260208401935050602081019050614a65565b5050509392505050565b600082601f830112614aab57614aaa6146c9565b5b8135614abb848260208601614a2d565b91505092915050565b60008060408385031215614adb57614ada61441f565b5b600083013567ffffffffffffffff811115614af957614af8614424565b5b614b05858286016147e3565b925050602083013567ffffffffffffffff811115614b2657614b25614424565b5b614b3285828601614a96565b9150509250929050565b600080fd5b60008083601f840112614b5757614b566146c9565b5b8235905067ffffffffffffffff811115614b7457614b73614b3c565b5b602083019150836020820283011115614b9057614b8f614775565b5b9250929050565b600080600060408486031215614bb057614baf61441f565b5b600084013567ffffffffffffffff811115614bce57614bcd614424565b5b614bda86828701614b41565b93509350506020614bed8682870161497f565b9150509250925092565b60008060408385031215614c0e57614c0d61441f565b5b6000614c1c85828601614614565b9250506020614c2d85828601614614565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614c6d6020836144aa565b9150614c7882614c37565b602082019050919050565b60006020820190508181036000830152614c9c81614c60565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614cdd82614429565b9150614ce883614429565b9250828201905080821115614d0057614cff614ca3565b5b92915050565b7f4d757374206b65657020666565732061742031303025206f72206c6573730000600082015250565b6000614d3c601e836144aa565b9150614d4782614d06565b602082019050919050565b60006020820190508181036000830152614d6b81614d2f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614db957607f821691505b602082108103614dcc57614dcb614d72565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614e0c82614429565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e3e57614e3d614ca3565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115614ea057808604811115614e7c57614e7b614ca3565b5b6001851615614e8b5780820291505b8081029050614e9985614e49565b9450614e60565b94509492505050565b600082614eb95760019050614f75565b81614ec75760009050614f75565b8160018114614edd5760028114614ee757614f16565b6001915050614f75565b60ff841115614ef957614ef8614ca3565b5b8360020a915084821115614f1057614f0f614ca3565b5b50614f75565b5060208310610133831016604e8410600b8410161715614f4b5782820a905083811115614f4657614f45614ca3565b5b614f75565b614f588484846001614e56565b92509050818404811115614f6f57614f6e614ca3565b5b81810290505b9392505050565b6000614f8782614429565b9150614f9283614907565b9250614fbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614ea9565b905092915050565b6000614fd282614429565b9150614fdd83614429565b9250828202614feb81614429565b9150828204841483151761500257615001614ca3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061504382614429565b915061504e83614429565b92508261505e5761505d615009565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006150c5602f836144aa565b91506150d082615069565b604082019050919050565b600060208201905081810360008301526150f4816150b8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006151576028836144aa565b9150615162826150fb565b604082019050919050565b600060208201905081810360008301526151868161514a565b9050919050565b7f6d6179206e6f742073657420746f203020616464726573730000000000000000600082015250565b60006151c36018836144aa565b91506151ce8261518d565b602082019050919050565b600060208201905081810360008301526151f2816151b6565b9050919050565b7f4e6f20626f747320746f20626c6f636b00000000000000000000000000000000600082015250565b600061522f6010836144aa565b915061523a826151f9565b602082019050919050565b6000602082019050818103600083015261525e81615222565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b600061529b6018836144aa565b91506152a682615265565b602082019050919050565b600060208201905081810360008301526152ca8161528e565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f74206265207260008201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b60006153536045836144aa565b915061535e826152d1565b606082019050919050565b6000602082019050818103600083015261538281615346565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006153e56025836144aa565b91506153f082615389565b604082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b7f617272617973206d757374206265207468652073616d65206c656e6774680000600082015250565b6000615451601e836144aa565b915061545c8261541b565b602082019050919050565b6000602082019050818103600083015261548081615444565b9050919050565b7f43616e206f6e6c792061697264726f70203630302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b60006154e36036836144aa565b91506154ee82615487565b604082019050919050565b60006020820190508181036000830152615512816154d6565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b60006155756022836144aa565b915061558082615519565b604082019050919050565b600060208201905081810360008301526155a481615568565b9050919050565b600082825260208201905092915050565b6000819050919050565b6155cf816145eb565b82525050565b60006155e183836155c6565b60208301905092915050565b60006155fc6020840184614614565b905092915050565b6000602082019050919050565b600061561d83856155ab565b9350615628826155bc565b8060005b858110156156615761563e82846155ed565b61564888826155d5565b975061565383615604565b92505060018101905061562c565b5085925050509392505050565b60006040820190508181036000830152615689818587615611565b90506156986020830184614675565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006156fc6026836144aa565b9150615707826156a0565b604082019050919050565b6000602082019050818103600083015261572b816156ef565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061578e6024836144aa565b915061579982615732565b604082019050919050565b600060208201905081810360008301526157bd81615781565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006158206022836144aa565b915061582b826157c4565b604082019050919050565b6000602082019050818103600083015261584f81615813565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006158b26025836144aa565b91506158bd82615856565b604082019050919050565b600060208201905081810360008301526158e1816158a5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006159446023836144aa565b915061594f826158e8565b604082019050919050565b6000602082019050818103600083015261597381615937565b9050919050565b7f4e6f20626f747300000000000000000000000000000000000000000000000000600082015250565b60006159b06007836144aa565b91506159bb8261597a565b602082019050919050565b600060208201905081810360008301526159df816159a3565b9050919050565b7f54726164696e67206973206e6f7420616374697665207965742e000000000000600082015250565b6000615a1c601a836144aa565b9150615a27826159e6565b602082019050919050565b60006020820190508181036000830152615a4b81615a0f565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e000000000000000000600082015250565b6000615a886017836144aa565b9150615a9382615a52565b602082019050919050565b60006020820190508181036000830152615ab781615a7b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000615b1a6035836144aa565b9150615b2582615abe565b604082019050919050565b60006020820190508181036000830152615b4981615b0d565b9050919050565b7f556e61626c6520746f20657863656564204d61782057616c6c65740000000000600082015250565b6000615b86601b836144aa565b9150615b9182615b50565b602082019050919050565b60006020820190508181036000830152615bb581615b79565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000615c186036836144aa565b9150615c2382615bbc565b604082019050919050565b60006020820190508181036000830152615c4781615c0b565b9050919050565b6000615c5982614429565b9150615c6483614429565b9250828203905081811115615c7c57615c7b614ca3565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615cde6026836144aa565b9150615ce982615c82565b604082019050919050565b60006020820190508181036000830152615d0d81615cd1565b9050919050565b600081519050615d23816145fd565b92915050565b600060208284031215615d3f57615d3e61441f565b5b6000615d4d84828501615d14565b91505092915050565b6000819050919050565b6000615d7b615d76615d7184615d56565b614571565b614429565b9050919050565b615d8b81615d60565b82525050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b6000615dc482615d91565b615dce81856155ab565b9350615dd983615d9c565b8060005b83811015615e0a578151615df188826155d5565b9750615dfc83615dac565b925050600181019050615ddd565b5085935050505092915050565b600060a082019050615e2c600083018861469f565b615e396020830187615d82565b8181036040830152615e4b8186615db9565b9050615e5a606083018561493e565b615e67608083018461469f565b969550505050505056fea2646970667358221220a11b69f4c520e2628dac71e5c48a428b17912922d1c1a5f66e33e79423a5f4bd64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063c492f04611610102578063e884f260116100a0578063f2fde38b1161006f578063f2fde38b14610cef578063f8b45b0514610d18578063fb002c9714610d43578063fd72e22a14610d6e57610381565b8063e884f26014610c45578063ea79b63814610c70578063ee40166e14610c99578063efcc1b2f14610cc457610381565b8063ccb61358116100dc578063ccb6135814610b87578063d0a3981414610bb2578063dd62ed3e14610bdd578063e2f4560514610c1a57610381565b8063c492f04614610b08578063c876d0b914610b31578063c8c8ebe414610b5c57610381565b8063abb810521161016f578063b9e9370011610149578063b9e9370014610a60578063bbc0c74214610a8b578063c024666814610ab6578063c18bc19514610adf57610381565b8063abb81052146109bd578063b5cbdb26146109fa578063b62496f514610a2357610381565b80639a36f932116101ab5780639a36f932146108ef5780639a7a23d61461091a578063a457c2d714610943578063a9059cbb1461098057610381565b80638da5cb5b14610870578063924de9b71461089b57806395d89b41146108c457610381565b8063313ce567116102ab5780636ddd1713116102495780637506cbd8116102235780637506cbd8146107c8578063751039fc146107f35780637571336a1461081e57806382aa7c681461084757610381565b80636ddd17131461074957806370a0823114610774578063715018a6146107b157610381565b8063452ed4f111610285578063452ed4f11461068d5780634a62bb65146106b85780634fbee193146106e357806366ca9b831461072057610381565b8063313ce5671461060e578063327b8e7514610639578063395093511461065057610381565b8063106b5da1116103185780631a8145bb116102f25780631a8145bb146105525780631fc851bd1461057d57806323b872dd146105a857806330d5d18d146105e557610381565b8063106b5da1146104c157806310d5de53146104ea57806318160ddd1461052757610381565b8063095ea7b311610354578063095ea7b314610405578063099d0d30146104425780630d128cfe1461046d5780630f4432e31461049657610381565b806302dbd8f81461038657806306fdde03146103af5780630758d924146103da57610381565b3661038157005b600080fd5b34801561039257600080fd5b506103ad60048036038101906103a8919061445f565b610d99565b005b3480156103bb57600080fd5b506103c4610e9f565b6040516103d1919061452f565b60405180910390f35b3480156103e657600080fd5b506103ef610f31565b6040516103fc91906145d0565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190614629565b610f55565b6040516104399190614684565b60405180910390f35b34801561044e57600080fd5b50610457610f73565b60405161046491906146ae565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190614811565b610f79565b005b3480156104a257600080fd5b506104ab6110a5565b6040516104b891906146ae565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e3919061485a565b6110ab565b005b3480156104f657600080fd5b50610511600480360381019061050c9190614887565b6111ea565b60405161051e9190614684565b60405180910390f35b34801561053357600080fd5b5061053c61120a565b60405161054991906146ae565b60405180910390f35b34801561055e57600080fd5b50610567611214565b60405161057491906146ae565b60405180910390f35b34801561058957600080fd5b5061059261121a565b60405161059f91906146ae565b60405180910390f35b3480156105b457600080fd5b506105cf60048036038101906105ca91906148b4565b611220565b6040516105dc9190614684565b60405180910390f35b3480156105f157600080fd5b5061060c60048036038101906106079190614887565b611340565b005b34801561061a57600080fd5b50610623611511565b6040516106309190614923565b60405180910390f35b34801561064557600080fd5b5061064e611528565b005b34801561065c57600080fd5b5061067760048036038101906106729190614629565b611761565b6040516106849190614684565b60405180910390f35b34801561069957600080fd5b506106a261180d565b6040516106af919061494d565b60405180910390f35b3480156106c457600080fd5b506106cd611831565b6040516106da9190614684565b60405180910390f35b3480156106ef57600080fd5b5061070a60048036038101906107059190614887565b611844565b6040516107179190614684565b60405180910390f35b34801561072c57600080fd5b506107476004803603810190610742919061445f565b61189a565b005b34801561075557600080fd5b5061075e6119a0565b60405161076b9190614684565b60405180910390f35b34801561078057600080fd5b5061079b60048036038101906107969190614887565b6119b3565b6040516107a891906146ae565b60405180910390f35b3480156107bd57600080fd5b506107c66119fb565b005b3480156107d457600080fd5b506107dd611b53565b6040516107ea91906146ae565b60405180910390f35b3480156107ff57600080fd5b50610808611b59565b6040516108159190614684565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190614994565b611c2f565b005b34801561085357600080fd5b5061086e6004803603810190610869919061485a565b611d6f565b005b34801561087c57600080fd5b50610885611e9d565b604051610892919061494d565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd91906149d4565b611ec7565b005b3480156108d057600080fd5b506108d9611f7b565b6040516108e6919061452f565b60405180910390f35b3480156108fb57600080fd5b5061090461200d565b60405161091191906146ae565b60405180910390f35b34801561092657600080fd5b50610941600480360381019061093c9190614994565b612013565b005b34801561094f57600080fd5b5061096a60048036038101906109659190614629565b612146565b6040516109779190614684565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a29190614629565b612231565b6040516109b49190614684565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df9190614887565b61224f565b6040516109f19190614684565b60405180910390f35b348015610a0657600080fd5b50610a216004803603810190610a1c9190614ac4565b61226f565b005b348015610a2f57600080fd5b50610a4a6004803603810190610a459190614887565b6123f2565b604051610a579190614684565b60405180910390f35b348015610a6c57600080fd5b50610a75612412565b604051610a8291906146ae565b60405180910390f35b348015610a9757600080fd5b50610aa0612418565b604051610aad9190614684565b60405180910390f35b348015610ac257600080fd5b50610add6004803603810190610ad89190614994565b61242b565b005b348015610aeb57600080fd5b50610b066004803603810190610b01919061485a565b61256b565b005b348015610b1457600080fd5b50610b2f6004803603810190610b2a9190614b97565b6126a9565b005b348015610b3d57600080fd5b50610b46612820565b604051610b539190614684565b60405180910390f35b348015610b6857600080fd5b50610b71612833565b604051610b7e91906146ae565b60405180910390f35b348015610b9357600080fd5b50610b9c612839565b604051610ba991906146ae565b60405180910390f35b348015610bbe57600080fd5b50610bc761283f565b604051610bd491906146ae565b60405180910390f35b348015610be957600080fd5b50610c046004803603810190610bff9190614bf7565b612845565b604051610c1191906146ae565b60405180910390f35b348015610c2657600080fd5b50610c2f6128cc565b604051610c3c91906146ae565b60405180910390f35b348015610c5157600080fd5b50610c5a6128d2565b604051610c679190614684565b60405180910390f35b348015610c7c57600080fd5b50610c976004803603810190610c929190614811565b61298d565b005b348015610ca557600080fd5b50610cae612ab9565b604051610cbb91906146ae565b60405180910390f35b348015610cd057600080fd5b50610cd9612abf565b604051610ce691906146ae565b60405180910390f35b348015610cfb57600080fd5b50610d166004803603810190610d119190614887565b612ac5565b005b348015610d2457600080fd5b50610d2d612c8b565b604051610d3a91906146ae565b60405180910390f35b348015610d4f57600080fd5b50610d58612c91565b604051610d6591906146ae565b60405180910390f35b348015610d7a57600080fd5b50610d83612c97565b604051610d90919061494d565b60405180910390f35b610da1612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790614c83565b60405180910390fd5b8160118190555080601281905550601254601154610e4e9190614cd2565b6010819055506127106010541115610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9290614d52565b60405180910390fd5b5050565b606060038054610eae90614da1565b80601f0160208091040260200160405190810160405280929190818152602001828054610eda90614da1565b8015610f275780601f10610efc57610100808354040283529160200191610f27565b820191906000526020600020905b815481529060010190602001808311610f0a57829003601f168201915b5050505050905090565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000610f69610f62612cbd565b8484612cc5565b6001905092915050565b60125481565b610f81612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100790614c83565b60405180910390fd5b60005b81518110156110a1576001601b600084848151811061103557611034614dd2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061109990614e01565b915050611013565b5050565b600a5481565b6110b3612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990614c83565b60405180910390fd5b61114a611511565b600a6111569190614f7c565b6103e8600161116361120a565b61116d9190614fc7565b6111779190615038565b6111819190615038565b81116111c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b9906150db565b60405180910390fd5b6111ca611511565b600a6111d69190614f7c565b816111e19190614fc7565b60078190555050565b601c6020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60175481565b600c5481565b600061122d848484612e8e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611278612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611334578281101561131f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113169061516d565b60405180910390fd5b6113338561132b612cbd565b858403612cc5565b5b60019150509392505050565b611348612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce90614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d906151d9565b60405180910390fd5b61145181600161242b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f086aa05ff00214e2d0c7c02b8a46b2614ad955732e6b43aa8afca69ed1ad76f860405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900460ff16905090565b611530612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b690614c83565b60405180910390fd5b600060198054905011611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe90615245565b60405180910390fd5b60005b60198054905081101561175057601b60006019838154811061162f5761162e614dd2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661173d576001601b6000601984815481106116c0576116bf614dd2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061174890614e01565b91505061160a565b506019600061175f91906143d7565b565b600061180361176e612cbd565b84846001600061177c612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117fe9190614cd2565b612cc5565b6001905092915050565b7f000000000000000000000000e190a87be7a7f4c1b0a657b6abbe0e71019d2f4681565b600d60009054906101000a900460ff1681565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118a2612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890614c83565b60405180910390fd5b816014819055508060158190555060155460145461194f9190614cd2565b601381905550612710601354111561199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390614d52565b60405180910390fd5b5050565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a03612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8990614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b6000611b63612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990614c83565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506000600f60006101000a81548160ff0219169083151502179055506001905090565b611c37612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90614c83565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d9582604051611d639190614684565b60405180910390a25050565b611d77612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd90614c83565b60405180910390fd5b600d60019054906101000a900460ff1615611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d906152b1565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff02191690831515021790555043600b8190555080601a8190555050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611ecf612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590614c83565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b606060048054611f8a90614da1565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb690614da1565b80156120035780601f10611fd857610100808354040283529160200191612003565b820191906000526020600020905b815481529060010190602001808311611fe657829003601f168201915b5050505050905090565b61271081565b61201b612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a190614c83565b60405180910390fd5b7f000000000000000000000000e190a87be7a7f4c1b0a657b6abbe0e71019d2f4673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212f90615369565b60405180910390fd5b6121428282613d46565b5050565b60008060016000612155612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612212576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612209906153fb565b60405180910390fd5b61222661221d612cbd565b85858403612cc5565b600191505092915050565b600061224561223e612cbd565b8484612e8e565b6001905092915050565b601b6020528060005260406000206000915054906101000a900460ff1681565b612277612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fd90614c83565b60405180910390fd5b805182511461234a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234190615467565b60405180910390fd5b61025882511061238f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612386906154f9565b60405180910390fd5b60005b82518110156123ed576123da338483815181106123b2576123b1614dd2565b5b60200260200101518484815181106123cd576123cc614dd2565b5b6020026020010151613df1565b80806123e590614e01565b915050612392565b505050565b601d6020528060005260406000206000915054906101000a900460ff1681565b60135481565b600d60019054906101000a900460ff1681565b612433612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b990614c83565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161255f9190614684565b60405180910390a25050565b612573612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f990614c83565b60405180910390fd5b61260a611511565b600a6126169190614f7c565b6064600161262261120a565b61262c9190614fc7565b6126369190615038565b6126409190615038565b8111612681576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126789061558b565b60405180910390fd5b612689611511565b600a6126959190614f7c565b816126a09190614fc7565b60098190555050565b6126b1612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273790614c83565b60405180910390fd5b60005b838390508110156127df57816018600086868581811061276657612765614dd2565b5b905060200201602081019061277b9190614887565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806127d790614e01565b915050612743565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516128139392919061566e565b60405180910390a1505050565b600f60009054906101000a900460ff1681565b60075481565b60155481565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b60006128dc612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461296b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296290614c83565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b612995612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1b90614c83565b60405180910390fd5b60005b8151811015612ab5576000601b6000848481518110612a4957612a48614dd2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612aad90614e01565b915050612a27565b5050565b600b5481565b60145481565b612acd612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5390614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc290615712565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60165481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2b906157a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9a90615836565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612e8191906146ae565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef4906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f639061595a565b60405180910390fd5b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130105750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61304f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613046906159c6565b60405180910390fd5b600081036130685761306383836000613df1565b613d41565b600d60019054906101000a900460ff1661315d57601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061311d5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61315c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315390615a32565b60405180910390fd5b5b600d60009054906101000a900460ff161561373c5761317a611e9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156131e857506131b8611e9d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132215750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561325b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132745750600560159054906101000a900460ff16155b1561373b57600f60009054906101000a900460ff16156134525743600f600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132db9190614cd2565b1061331b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331290615a9e565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156133c357507f000000000000000000000000e190a87be7a7f4c1b0a657b6abbe0e71019d2f4673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156134515743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156134f55750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561359c5760075481111561353f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353690615b30565b60405180910390fd5b60095461354b836119b3565b826135569190614cd2565b1115613597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358e90615b9c565b60405180910390fd5b61373a565b601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561363f5750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561368e57600754811115613689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368090615c2e565b60405180910390fd5b613739565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613738576009546136eb836119b3565b826136f69190614cd2565b1115613737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161372e90615b9c565b60405180910390fd5b5b5b5b5b5b6000613747306119b3565b90506000600854821015905080801561376c5750600d60029054906101000a900460ff165b80156137855750600560159054906101000a900460ff16155b80156137db5750601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138315750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138875750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156138cb576001600560156101000a81548160ff0219169083151502179055506138af61405a565b6000600560156101000a81548160ff0219169083151502179055505b6000600560159054906101000a900460ff16159050601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139815750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561398b57600090505b60008115613d315743601a54600b546139a49190614cd2565b10158015613a4f5750601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a4e5750601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b15613b3f5761271060135486613a659190614fc7565b613a6f9190615038565b905060135460155482613a829190614fc7565b613a8c9190615038565b60176000828254613a9d9190614cd2565b9250508190555060135460145482613ab59190614fc7565b613abf9190615038565b60166000828254613ad09190614cd2565b925050819055506019869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613d0d565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613b9a57506000601054115b15613c275761271060105486613bb09190614fc7565b613bba9190615038565b905060105460125482613bcd9190614fc7565b613bd79190615038565b60176000828254613be89190614cd2565b9250508190555060105460115482613c009190614fc7565b613c0a9190615038565b60166000828254613c1b9190614cd2565b92505081905550613d0c565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613c8257506000601354115b15613d0b5761271060135486613c989190614fc7565b613ca29190615038565b905060135460155482613cb59190614fc7565b613cbf9190615038565b60176000828254613cd09190614cd2565b9250508190555060135460145482613ce89190614fc7565b613cf29190615038565b60166000828254613d039190614cd2565b925050819055505b5b5b6000811115613d2257613d21873083613df1565b5b8085613d2e9190615c4e565b94505b613d3c878787613df1565b505050505b505050565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613da78282611c2f565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e57906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ec69061595a565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f4c90615cf4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613fe89190614cd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161404c91906146ae565b60405180910390a350505050565b6000614065306119b3565b905060006016546017546140799190614cd2565b9050600082148061408a5750600081145b156140965750506141a1565b6000601754111561418b57600081601754846140b29190614fc7565b6140bc9190615038565b90506140e9307f000000000000000000000000e190a87be7a7f4c1b0a657b6abbe0e71019d2f4683613df1565b7f000000000000000000000000e190a87be7a7f4c1b0a657b6abbe0e71019d2f4673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561415157600080fd5b505af1925050508015614162575060015b50808361416f9190615c4e565b92506017548261417f9190615c4e565b91506000601781905550505b600082111561419e5761419d826141a3565b5b50505b565b6000600267ffffffffffffffff8111156141c0576141bf6146ce565b5b6040519080825280602002602001820160405280156141ee5781602001602082028036833780820191505090505b509050308160008151811061420657614205614dd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142cf9190615d29565b816001815181106142e3576142e2614dd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016143a1959493929190615e17565b600060405180830381600087803b1580156143bb57600080fd5b505af11580156143cf573d6000803e3d6000fd5b505050505050565b50805460008255906000526020600020908101906143f591906143f8565b50565b5b808211156144115760008160009055506001016143f9565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61443c81614429565b811461444757600080fd5b50565b60008135905061445981614433565b92915050565b600080604083850312156144765761447561441f565b5b60006144848582860161444a565b92505060206144958582860161444a565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156144d95780820151818401526020810190506144be565b60008484015250505050565b6000601f19601f8301169050919050565b60006145018261449f565b61450b81856144aa565b935061451b8185602086016144bb565b614524816144e5565b840191505092915050565b6000602082019050818103600083015261454981846144f6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061459661459161458c84614551565b614571565b614551565b9050919050565b60006145a88261457b565b9050919050565b60006145ba8261459d565b9050919050565b6145ca816145af565b82525050565b60006020820190506145e560008301846145c1565b92915050565b60006145f682614551565b9050919050565b614606816145eb565b811461461157600080fd5b50565b600081359050614623816145fd565b92915050565b600080604083850312156146405761463f61441f565b5b600061464e85828601614614565b925050602061465f8582860161444a565b9150509250929050565b60008115159050919050565b61467e81614669565b82525050565b60006020820190506146996000830184614675565b92915050565b6146a881614429565b82525050565b60006020820190506146c3600083018461469f565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614706826144e5565b810181811067ffffffffffffffff82111715614725576147246146ce565b5b80604052505050565b6000614738614415565b905061474482826146fd565b919050565b600067ffffffffffffffff821115614764576147636146ce565b5b602082029050602081019050919050565b600080fd5b600061478d61478884614749565b61472e565b905080838252602082019050602084028301858111156147b0576147af614775565b5b835b818110156147d957806147c58882614614565b8452602084019350506020810190506147b2565b5050509392505050565b600082601f8301126147f8576147f76146c9565b5b813561480884826020860161477a565b91505092915050565b6000602082840312156148275761482661441f565b5b600082013567ffffffffffffffff81111561484557614844614424565b5b614851848285016147e3565b91505092915050565b6000602082840312156148705761486f61441f565b5b600061487e8482850161444a565b91505092915050565b60006020828403121561489d5761489c61441f565b5b60006148ab84828501614614565b91505092915050565b6000806000606084860312156148cd576148cc61441f565b5b60006148db86828701614614565b93505060206148ec86828701614614565b92505060406148fd8682870161444a565b9150509250925092565b600060ff82169050919050565b61491d81614907565b82525050565b60006020820190506149386000830184614914565b92915050565b614947816145eb565b82525050565b6000602082019050614962600083018461493e565b92915050565b61497181614669565b811461497c57600080fd5b50565b60008135905061498e81614968565b92915050565b600080604083850312156149ab576149aa61441f565b5b60006149b985828601614614565b92505060206149ca8582860161497f565b9150509250929050565b6000602082840312156149ea576149e961441f565b5b60006149f88482850161497f565b91505092915050565b600067ffffffffffffffff821115614a1c57614a1b6146ce565b5b602082029050602081019050919050565b6000614a40614a3b84614a01565b61472e565b90508083825260208201905060208402830185811115614a6357614a62614775565b5b835b81811015614a8c5780614a78888261444a565b845260208401935050602081019050614a65565b5050509392505050565b600082601f830112614aab57614aaa6146c9565b5b8135614abb848260208601614a2d565b91505092915050565b60008060408385031215614adb57614ada61441f565b5b600083013567ffffffffffffffff811115614af957614af8614424565b5b614b05858286016147e3565b925050602083013567ffffffffffffffff811115614b2657614b25614424565b5b614b3285828601614a96565b9150509250929050565b600080fd5b60008083601f840112614b5757614b566146c9565b5b8235905067ffffffffffffffff811115614b7457614b73614b3c565b5b602083019150836020820283011115614b9057614b8f614775565b5b9250929050565b600080600060408486031215614bb057614baf61441f565b5b600084013567ffffffffffffffff811115614bce57614bcd614424565b5b614bda86828701614b41565b93509350506020614bed8682870161497f565b9150509250925092565b60008060408385031215614c0e57614c0d61441f565b5b6000614c1c85828601614614565b9250506020614c2d85828601614614565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614c6d6020836144aa565b9150614c7882614c37565b602082019050919050565b60006020820190508181036000830152614c9c81614c60565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614cdd82614429565b9150614ce883614429565b9250828201905080821115614d0057614cff614ca3565b5b92915050565b7f4d757374206b65657020666565732061742031303025206f72206c6573730000600082015250565b6000614d3c601e836144aa565b9150614d4782614d06565b602082019050919050565b60006020820190508181036000830152614d6b81614d2f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614db957607f821691505b602082108103614dcc57614dcb614d72565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614e0c82614429565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e3e57614e3d614ca3565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115614ea057808604811115614e7c57614e7b614ca3565b5b6001851615614e8b5780820291505b8081029050614e9985614e49565b9450614e60565b94509492505050565b600082614eb95760019050614f75565b81614ec75760009050614f75565b8160018114614edd5760028114614ee757614f16565b6001915050614f75565b60ff841115614ef957614ef8614ca3565b5b8360020a915084821115614f1057614f0f614ca3565b5b50614f75565b5060208310610133831016604e8410600b8410161715614f4b5782820a905083811115614f4657614f45614ca3565b5b614f75565b614f588484846001614e56565b92509050818404811115614f6f57614f6e614ca3565b5b81810290505b9392505050565b6000614f8782614429565b9150614f9283614907565b9250614fbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614ea9565b905092915050565b6000614fd282614429565b9150614fdd83614429565b9250828202614feb81614429565b9150828204841483151761500257615001614ca3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061504382614429565b915061504e83614429565b92508261505e5761505d615009565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006150c5602f836144aa565b91506150d082615069565b604082019050919050565b600060208201905081810360008301526150f4816150b8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006151576028836144aa565b9150615162826150fb565b604082019050919050565b600060208201905081810360008301526151868161514a565b9050919050565b7f6d6179206e6f742073657420746f203020616464726573730000000000000000600082015250565b60006151c36018836144aa565b91506151ce8261518d565b602082019050919050565b600060208201905081810360008301526151f2816151b6565b9050919050565b7f4e6f20626f747320746f20626c6f636b00000000000000000000000000000000600082015250565b600061522f6010836144aa565b915061523a826151f9565b602082019050919050565b6000602082019050818103600083015261525e81615222565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b600061529b6018836144aa565b91506152a682615265565b602082019050919050565b600060208201905081810360008301526152ca8161528e565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f74206265207260008201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b60006153536045836144aa565b915061535e826152d1565b606082019050919050565b6000602082019050818103600083015261538281615346565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006153e56025836144aa565b91506153f082615389565b604082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b7f617272617973206d757374206265207468652073616d65206c656e6774680000600082015250565b6000615451601e836144aa565b915061545c8261541b565b602082019050919050565b6000602082019050818103600083015261548081615444565b9050919050565b7f43616e206f6e6c792061697264726f70203630302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b60006154e36036836144aa565b91506154ee82615487565b604082019050919050565b60006020820190508181036000830152615512816154d6565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b60006155756022836144aa565b915061558082615519565b604082019050919050565b600060208201905081810360008301526155a481615568565b9050919050565b600082825260208201905092915050565b6000819050919050565b6155cf816145eb565b82525050565b60006155e183836155c6565b60208301905092915050565b60006155fc6020840184614614565b905092915050565b6000602082019050919050565b600061561d83856155ab565b9350615628826155bc565b8060005b858110156156615761563e82846155ed565b61564888826155d5565b975061565383615604565b92505060018101905061562c565b5085925050509392505050565b60006040820190508181036000830152615689818587615611565b90506156986020830184614675565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006156fc6026836144aa565b9150615707826156a0565b604082019050919050565b6000602082019050818103600083015261572b816156ef565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061578e6024836144aa565b915061579982615732565b604082019050919050565b600060208201905081810360008301526157bd81615781565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006158206022836144aa565b915061582b826157c4565b604082019050919050565b6000602082019050818103600083015261584f81615813565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006158b26025836144aa565b91506158bd82615856565b604082019050919050565b600060208201905081810360008301526158e1816158a5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006159446023836144aa565b915061594f826158e8565b604082019050919050565b6000602082019050818103600083015261597381615937565b9050919050565b7f4e6f20626f747300000000000000000000000000000000000000000000000000600082015250565b60006159b06007836144aa565b91506159bb8261597a565b602082019050919050565b600060208201905081810360008301526159df816159a3565b9050919050565b7f54726164696e67206973206e6f7420616374697665207965742e000000000000600082015250565b6000615a1c601a836144aa565b9150615a27826159e6565b602082019050919050565b60006020820190508181036000830152615a4b81615a0f565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e000000000000000000600082015250565b6000615a886017836144aa565b9150615a9382615a52565b602082019050919050565b60006020820190508181036000830152615ab781615a7b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000615b1a6035836144aa565b9150615b2582615abe565b604082019050919050565b60006020820190508181036000830152615b4981615b0d565b9050919050565b7f556e61626c6520746f20657863656564204d61782057616c6c65740000000000600082015250565b6000615b86601b836144aa565b9150615b9182615b50565b602082019050919050565b60006020820190508181036000830152615bb581615b79565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000615c186036836144aa565b9150615c2382615bbc565b604082019050919050565b60006020820190508181036000830152615c4781615c0b565b9050919050565b6000615c5982614429565b9150615c6483614429565b9250828203905081811115615c7c57615c7b614ca3565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615cde6026836144aa565b9150615ce982615c82565b604082019050919050565b60006020820190508181036000830152615d0d81615cd1565b9050919050565b600081519050615d23816145fd565b92915050565b600060208284031215615d3f57615d3e61441f565b5b6000615d4d84828501615d14565b91505092915050565b6000819050919050565b6000615d7b615d76615d7184615d56565b614571565b614429565b9050919050565b615d8b81615d60565b82525050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b6000615dc482615d91565b615dce81856155ab565b9350615dd983615d9c565b8060005b83811015615e0a578151615df188826155d5565b9750615dfc83615dac565b925050600181019050615ddd565b5085935050505092915050565b600060a082019050615e2c600083018861469f565b615e396020830187615d82565b8181036040830152615e4b8186615db9565b9050615e5a606083018561493e565b615e67608083018461469f565b969550505050505056fea2646970667358221220a11b69f4c520e2628dac71e5c48a428b17912922d1c1a5f66e33e79423a5f4bd64736f6c63430008130033

Deployed Bytecode Sourcemap

10979:15296:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17153:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4221:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11023:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5142:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12051:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25637:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11300:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16308:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12553:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4549:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12251:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11462;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5319:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18706:349;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4441:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25109:323;;;;;;;;;;;;;:::i;:::-;;5900:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11067:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11571:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19063:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16823:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11651:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4665:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8988:148;;;;;;;;;;;;;:::i;:::-;;12012:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19240:159;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17486:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15827:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8346:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16199:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4329:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11926:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18202:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6123:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4800:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12505:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25833:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12775:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12095:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11611:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17696:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16576:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17888:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11874:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11181:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12167:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11977:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4983:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11223:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15635:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25440:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11385:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12129:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9291:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11263:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12210:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11137:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17153:325;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17274:14:::1;17254:17;:34;;;;17318:13;17299:16;:32;;;;17378:16;;17358:17;;:36;;;;:::i;:::-;17342:13;:52;;;;17430:5;17413:13;;:22;;17405:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17153:325:::0;;:::o;4221:100::-;4275:13;4308:5;4301:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4221:100;:::o;11023:37::-;;;:::o;5142:169::-;5225:4;5242:39;5251:12;:10;:12::i;:::-;5265:7;5274:6;5242:8;:39::i;:::-;5299:4;5292:11;;5142:169;;;;:::o;12051:31::-;;;;:::o;25637:188::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25721:9:::1;25717:101;25740:10;:17;25736:1;:21;25717:101;;;25802:4;25778:6;:21;25785:10;25796:1;25785:13;;;;;;;;:::i;:::-;;;;;;;;25778:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;25759:3;;;;;:::i;:::-;;;;25717:101;;;;25637:188:::0;:::o;11300:39::-;;;;:::o;16308:256::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16432:10:::1;:8;:10::i;:::-;16426:2;:16;;;;:::i;:::-;16417:4;16413:1;16397:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16396:47;;;;:::i;:::-;16387:6;:56;16379:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;16545:10;:8;:10::i;:::-;16539:2;:16;;;;:::i;:::-;16529:6;:27;;;;:::i;:::-;16506:20;:50;;;;16308:256:::0;:::o;12553:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;4549:108::-;4610:7;4637:12;;4630:19;;4549:108;:::o;12251:33::-;;;;:::o;11462:::-;;;;:::o;5319:573::-;5459:4;5476:36;5486:6;5494:9;5505:6;5476:9;:36::i;:::-;5525:24;5552:11;:19;5564:6;5552:19;;;;;;;;;;;;;;;:33;5572:12;:10;:12::i;:::-;5552:33;;;;;;;;;;;;;;;;5525:60;;5620:17;5600:16;:37;5596:265;;5682:6;5662:16;:26;;5654:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5777:57;5786:6;5794:12;:10;:12::i;:::-;5827:6;5808:16;:25;5777:8;:57::i;:::-;5596:265;5880:4;5873:11;;;5319:573;;;;;:::o;18706:349::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18836:1:::1;18805:33;;:19;:33;;::::0;18797:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18878:42;18894:19;18915:4;18878:15;:42::i;:::-;18981:16;;;;;;;;;;;18936:62;;18960:19;18936:62;;;;;;;;;;;;19028:19;19009:16;;:38;;;;;;;;;;;;;;;;;;18706:349:::0;:::o;4441:100::-;4499:5;4524:9;;;;;;;;;;;4517:16;;4441:100;:::o;25109:323::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25195:1:::1;25174:11;:18;;;;:22;25166:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;25234:9;25230:164;25253:11;:18;;;;25249:1;:22;25230:164;;;25296:6;:22;25303:11;25315:1;25303:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25296:22;;;;;;;;;;;;;;;;;;;;;;;;;25292:91;;25363:4;25338:6;:22;25345:11;25357:1;25345:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25338:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;25292:91;25273:3;;;;;:::i;:::-;;;;25230:164;;;;25413:11;;25406:18;;;;:::i;:::-;25109:323::o:0;5900:215::-;5988:4;6005:80;6014:12;:10;:12::i;:::-;6028:7;6074:10;6037:11;:25;6049:12;:10;:12::i;:::-;6037:25;;;;;;;;;;;;;;;:34;6063:7;6037:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6005:8;:80::i;:::-;6103:4;6096:11;;5900:215;;;;:::o;11067:31::-;;;:::o;11571:33::-;;;;;;;;;;;;;:::o;19063:127::-;19130:4;19154:19;:28;19174:7;19154:28;;;;;;;;;;;;;;;;;;;;;;;;;19147:35;;19063:127;;;:::o;16823:318::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16942:14:::1;16923:16;:33;;;;16985:13;16967:15;:31;;;;17043:15;;17024:16;;:34;;;;:::i;:::-;17009:12;:49;;;;17093:5;17077:12;;:21;;17069:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16823:318:::0;;:::o;11651:31::-;;;;;;;;;;;;;:::o;4665:127::-;4739:7;4766:9;:18;4776:7;4766:18;;;;;;;;;;;;;;;;4759:25;;4665:127;;;:::o;8988:148::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9095:1:::1;9058:40;;9079:6;;;;;;;;;;;9058:40;;;;;;;;;;;;9126:1;9109:6;;:19;;;;;;;;;;;;;;;;;;8988:148::o:0;12012:32::-;;;;:::o;19240:159::-;19292:4;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19325:5:::1;19308:14;;:22;;;;;;;;;;;;;;;;;;19364:5;19341:20;;:28;;;;;;;;;;;;;;;;;;19387:4;19380:11;;19240:159:::0;:::o;17486:202::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17618:4:::1;17576:31;:39;17608:6;17576:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17667:6;17638:42;;;17675:4;17638:42;;;;;;:::i;:::-;;;;;;;;17486:202:::0;;:::o;15827:272::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15910:13:::1;;;;;;;;;;;15909:14;15901:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15979:4;15963:13;;:20;;;;;;;;;;;;;;;;;;16008:4;15994:11;;:18;;;;;;;;;;;;;;;;;;16044:12;16023:18;:33;;;;16080:11;16067:10;:24;;;;15827:272:::0;:::o;8346:79::-;8384:7;8411:6;;;;;;;;;;;8404:13;;8346:79;:::o;16199:101::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16285:7:::1;16271:11;;:21;;;;;;;;;;;;;;;;;;16199:101:::0;:::o;4329:104::-;4385:13;4418:7;4411:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4329:104;:::o;11926:42::-;11963:5;11926:42;:::o;18202:251::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18311:6:::1;18303:14;;:4;:14;;::::0;18295:96:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18404:41;18433:4;18439:5;18404:28;:41::i;:::-;18202:251:::0;;:::o;6123:413::-;6216:4;6233:24;6260:11;:25;6272:12;:10;:12::i;:::-;6260:25;;;;;;;;;;;;;;;:34;6286:7;6260:34;;;;;;;;;;;;;;;;6233:61;;6333:15;6313:16;:35;;6305:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6426:67;6435:12;:10;:12::i;:::-;6449:7;6477:15;6458:16;:34;6426:8;:67::i;:::-;6524:4;6517:11;;;6123:413;;;;:::o;4800:175::-;4886:4;4903:42;4913:12;:10;:12::i;:::-;4927:9;4938:6;4903:9;:42::i;:::-;4963:4;4956:11;;4800:175;;;;:::o;12505:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;25833:435::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25970:12:::1;:19;25952:7;:14;:37;25944:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;26060:3;26043:7;:14;:20;26035:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;26137:9;26133:126;26156:7;:14;26152:1;:18;26133:126;;;26191:56;26207:10;26219:7;26227:1;26219:10;;;;;;;;:::i;:::-;;;;;;;;26231:12;26244:1;26231:15;;;;;;;;:::i;:::-;;;;;;;;26191;:56::i;:::-;26172:3;;;;;:::i;:::-;;;;26133:126;;;;25833:435:::0;;:::o;12775:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12095:27::-;;;;:::o;11611:33::-;;;;;;;;;;;;;:::o;17696:184::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17812:8:::1;17781:19;:28;17801:7;17781:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17854:7;17838:34;;;17863:8;17838:34;;;;;;:::i;:::-;;;;;;;;17696:184:::0;;:::o;16576:235::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16703:10:::1;:8;:10::i;:::-;16697:2;:16;;;;:::i;:::-;16691:3;16687:1;16671:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:23;;;;:::i;:::-;16670:44;;;;:::i;:::-;16661:6;:53;16653:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;16792:10;:8;:10::i;:::-;16786:2;:16;;;;:::i;:::-;16776:6;:27;;;;:::i;:::-;16764:9;:39;;;;16576:235:::0;:::o;17888:306::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18007:9:::1;18003:115;18026:8;;:15;;18022:1;:19;18003:115;;;18098:8;18063:19;:32;18083:8;;18092:1;18083:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18063:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;18043:3;;;;;:::i;:::-;;;;18003:115;;;;18135:51;18167:8;;18177;18135:51;;;;;;;;:::i;:::-;;;;;;;;17888:306:::0;;;:::o;11874:39::-;;;;;;;;;;;;;:::o;11181:35::-;;;;:::o;12167:30::-;;;;:::o;11977:28::-;;;;:::o;4983:151::-;5072:7;5099:11;:18;5111:5;5099:18;;;;;;;;;;;;;;;:27;5118:7;5099:27;;;;;;;;;;;;;;;;5092:34;;4983:151;;;;:::o;11223:33::-;;;;:::o;15635:134::-;15695:4;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15734:5:::1;15711:20;;:28;;;;;;;;;;;;;;;;;;15757:4;15750:11;;15635:134:::0;:::o;25440:189::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25524:9:::1;25520:102;25543:10;:17;25539:1;:21;25520:102;;;25605:5;25581:6;:21;25588:10;25599:1;25588:13;;;;;;;;:::i;:::-;;;;;;;;25581:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;25562:3;;;;;:::i;:::-;;;;25520:102;;;;25440:189:::0;:::o;11385:37::-;;;;:::o;12129:31::-;;;;:::o;9291:244::-;8568:12;:10;:12::i;:::-;8558:22;;:6;;;;;;;;;;;:22;;;8550:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9400:1:::1;9380:22;;:8;:22;;::::0;9372:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9490:8;9461:38;;9482:6;;;;;;;;;;;9461:38;;;;;;;;;;;;9519:8;9510:6;;:17;;;;;;;;;;;;;;;;;;9291:244:::0;:::o;11263:24::-;;;;:::o;12210:34::-;;;;:::o;11137:31::-;;;;;;;;;;;;;:::o;169:98::-;222:7;249:10;242:17;;169:98;:::o;7463:380::-;7616:1;7599:19;;:5;:19;;;7591:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:1;7678:21;;:7;:21;;;7670:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7781:6;7751:11;:18;7763:5;7751:18;;;;;;;;;;;;;;;:27;7770:7;7751:27;;;;;;;;;;;;;;;:36;;;;7819:7;7803:32;;7812:5;7803:32;;;7828:6;7803:32;;;;;;:::i;:::-;;;;;;;;7463:380;;;:::o;19411:4392::-;19559:1;19543:18;;:4;:18;;;19535:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19636:1;19622:16;;:2;:16;;;19614:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19698:6;:10;19705:2;19698:10;;;;;;;;;;;;;;;;;;;;;;;;;19697:11;:28;;;;;19713:6;:12;19720:4;19713:12;;;;;;;;;;;;;;;;;;;;;;;;;19712:13;19697:28;19689:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;19764:1;19754:6;:11;19751:92;;19782:28;19798:4;19804:2;19808:1;19782:15;:28::i;:::-;19825:7;;19751:92;19867:13;;;;;;;;;;;19863:136;;19904:19;:25;19924:4;19904:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19933:19;:23;19953:2;19933:23;;;;;;;;;;;;;;;;;;;;;;;;;19904:52;19896:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;19863:136;20022:14;;;;;;;;;;;20019:1657;;;20082:7;:5;:7::i;:::-;20074:15;;:4;:15;;;;:49;;;;;20116:7;:5;:7::i;:::-;20110:13;;:2;:13;;;;20074:49;:86;;;;;20158:1;20144:16;;:2;:16;;;;20074:86;:128;;;;;20195:6;20181:21;;:2;:21;;;;20074:128;:158;;;;;20224:8;;;;;;;;;;;20223:9;20074:158;20052:1613;;;20406:20;;;;;;;;;;;20402:418;;;20505:12;20500:2;20458:28;:39;20487:9;20458:39;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;:59;20450:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;20586:9;20572:24;;:2;:24;;;;:49;;;;;20614:6;20600:21;;:2;:21;;;;20572:49;20568:233;;;20691:12;20649:28;:39;20678:9;20649:39;;;;;;;;;;;;;;;:54;;;;20765:12;20730:28;:32;20759:2;20730:32;;;;;;;;;;;;;;;:47;;;;20568:233;20402:418;20888:25;:31;20914:4;20888:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20924:31;:35;20956:2;20924:35;;;;;;;;;;;;;;;;;;;;;;;;;20923:36;20888:71;20884:766;;;21002:20;;20992:6;:30;;20984:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21137:9;;21120:13;21130:2;21120:9;:13::i;:::-;21111:6;:22;;;;:::i;:::-;:35;;21103:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;20884:766;;;21255:25;:29;21281:2;21255:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21289:31;:37;21321:4;21289:37;;;;;;;;;;;;;;;;;;;;;;;;;21288:38;21255:71;21251:399;;;21369:20;;21359:6;:30;;21351:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21251:399;;;21495:31;:35;21527:2;21495:35;;;;;;;;;;;;;;;;;;;;;;;;;21491:159;;21589:9;;21572:13;21582:2;21572:9;:13::i;:::-;21563:6;:22;;;;:::i;:::-;:35;;21555:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;21491:159;21251:399;20884:766;20052:1613;20019:1657;21682:28;21713:24;21731:4;21713:9;:24::i;:::-;21682:55;;21758:12;21797:18;;21773:20;:42;;21758:57;;21846:7;:35;;;;;21870:11;;;;;;;;;;;21846:35;:61;;;;;21899:8;;;;;;;;;;;21898:9;21846:61;:110;;;;;21925:25;:31;21951:4;21925:31;;;;;;;;;;;;;;;;;;;;;;;;;21924:32;21846:110;:153;;;;;21974:19;:25;21994:4;21974:25;;;;;;;;;;;;;;;;;;;;;;;;;21973:26;21846:153;:194;;;;;22017:19;:23;22037:2;22017:23;;;;;;;;;;;;;;;;;;;;;;;;;22016:24;21846:194;21828:322;;;22078:4;22067:8;;:15;;;;;;;;;;;;;;;;;;22097:10;:8;:10::i;:::-;22133:5;22122:8;;:16;;;;;;;;;;;;;;;;;;21828:322;22162:12;22178:8;;;;;;;;;;;22177:9;22162:24;;22287:19;:25;22307:4;22287:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22316:19;:23;22336:2;22316:23;;;;;;;;;;;;;;;;;;;;;;;;;22287:52;22284:99;;;22366:5;22356:15;;22284:99;22403:12;22494:7;22491:1259;;;22555:12;22541:10;;22520:18;;:31;;;;:::i;:::-;:47;;:117;;;;;22572:25;:29;22598:2;22572:29;;;;;;;;;;;;;;;;;;;;;;;;;:64;;;;22605:25;:31;22631:4;22605:31;;;;;;;;;;;;;;;;;;;;;;;;;22572:64;22520:117;22517:1076;;;11963:5;22673:12;;22664:6;:21;;;;:::i;:::-;:34;;;;:::i;:::-;22657:41;;22764:12;;22746:15;;22739:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;22717:18;;:59;;;;;;;:::i;:::-;;;;;;;;22844:12;;22825:16;;22818:4;:23;;;;:::i;:::-;:38;;;;:::i;:::-;22795:19;;:61;;;;;;;:::i;:::-;;;;;;;;22875:11;22892:2;22875:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22517:1076;;;22960:25;:29;22986:2;22960:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;23009:1;22993:13;;:17;22960:50;22956:637;;;11963:5;23046:13;;23037:6;:22;;;;:::i;:::-;:35;;;;:::i;:::-;23030:42;;23139:13;;23120:16;;23113:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;23091:18;;:61;;;;;;;:::i;:::-;;;;;;;;23221:13;;23201:17;;23194:4;:24;;;;:::i;:::-;:40;;;;:::i;:::-;23171:19;;:63;;;;;;;:::i;:::-;;;;;;;;22956:637;;;23309:25;:31;23335:4;23309:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;23359:1;23344:12;;:16;23309:51;23306:287;;;11963:5;23394:12;;23385:6;:21;;;;:::i;:::-;:34;;;;:::i;:::-;23378:41;;23485:12;;23467:15;;23460:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;23438:18;;:59;;;;;;;:::i;:::-;;;;;;;;23565:12;;23546:16;;23539:4;:23;;;;:::i;:::-;:38;;;;:::i;:::-;23516:19;;:61;;;;;;;:::i;:::-;;;;;;;;23306:287;22956:637;22517:1076;23619:1;23612:4;:8;23609:93;;;23644:42;23660:4;23674;23681;23644:15;:42::i;:::-;23609:93;23734:4;23724:14;;;;;:::i;:::-;;;22491:1259;23762:33;23778:4;23784:2;23788:6;23762:15;:33::i;:::-;19524:4279;;;;19411:4392;;;;:::o;18461:237::-;18578:5;18544:25;:31;18570:4;18544:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18596:38;18622:4;18628:5;18596:25;:38::i;:::-;18684:5;18650:40;;18678:4;18650:40;;;;;;;;;;;;18461:237;;:::o;6544:614::-;6702:1;6684:20;;:6;:20;;;6676:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6786:1;6765:23;;:9;:23;;;6757:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6841:21;6865:9;:17;6875:6;6865:17;;;;;;;;;;;;;;;;6841:41;;6918:6;6901:13;:23;;6893:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7039:6;7023:13;:22;7003:9;:17;7013:6;7003:17;;;;;;;;;;;;;;;:42;;;;7091:6;7067:9;:20;7077:9;7067:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7132:9;7115:35;;7124:6;7115:35;;;7143:6;7115:35;;;;;;:::i;:::-;;;;;;;;6665:493;6544:614;;;:::o;24340:761::-;24379:23;24405:24;24423:4;24405:9;:24::i;:::-;24379:50;;24440:25;24489:19;;24468:18;;:40;;;;:::i;:::-;24440:68;;24551:1;24532:15;:20;:46;;;;24577:1;24556:17;:22;24532:46;24529:60;;;24581:7;;;;24529:60;24627:1;24606:18;;:22;24603:396;;;24644:23;24709:17;24688:18;;24670:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;24644:82;;24741:55;24765:4;24772:6;24780:15;24741;:55::i;:::-;24823:6;24815:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24811:37;24881:15;24862:34;;;;;:::i;:::-;;;24932:18;;24911:39;;;;;:::i;:::-;;;24986:1;24965:18;:22;;;;24629:370;24603:396;25032:1;25014:15;:19;25011:83;;;25049:33;25066:15;25049:16;:33::i;:::-;25011:83;24368:733;;24340:761;:::o;23811:521::-;23939:21;23977:1;23963:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23939:40;;24008:4;23990;23995:1;23990:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24034:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24024:4;24029:1;24024:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;24089:9;:60;;;24164:11;24190:1;24234:4;24261:16;;;;;;;;;;;24293:15;24089:230;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23866:466;23811:521;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:60::-;2672:3;2693:5;2686:12;;2644:60;;;:::o;2710:142::-;2760:9;2793:53;2811:34;2820:24;2838:5;2820:24;:::i;:::-;2811:34;:::i;:::-;2793:53;:::i;:::-;2780:66;;2710:142;;;:::o;2858:126::-;2908:9;2941:37;2972:5;2941:37;:::i;:::-;2928:50;;2858:126;;;:::o;2990:144::-;3058:9;3091:37;3122:5;3091:37;:::i;:::-;3078:50;;2990:144;;;:::o;3140:167::-;3245:55;3294:5;3245:55;:::i;:::-;3240:3;3233:68;3140:167;;:::o;3313:258::-;3424:4;3462:2;3451:9;3447:18;3439:26;;3475:89;3561:1;3550:9;3546:17;3537:6;3475:89;:::i;:::-;3313:258;;;;:::o;3577:96::-;3614:7;3643:24;3661:5;3643:24;:::i;:::-;3632:35;;3577:96;;;:::o;3679:122::-;3752:24;3770:5;3752:24;:::i;:::-;3745:5;3742:35;3732:63;;3791:1;3788;3781:12;3732:63;3679:122;:::o;3807:139::-;3853:5;3891:6;3878:20;3869:29;;3907:33;3934:5;3907:33;:::i;:::-;3807:139;;;;:::o;3952:474::-;4020:6;4028;4077:2;4065:9;4056:7;4052:23;4048:32;4045:119;;;4083:79;;:::i;:::-;4045:119;4203:1;4228:53;4273:7;4264:6;4253:9;4249:22;4228:53;:::i;:::-;4218:63;;4174:117;4330:2;4356:53;4401:7;4392:6;4381:9;4377:22;4356:53;:::i;:::-;4346:63;;4301:118;3952:474;;;;;:::o;4432:90::-;4466:7;4509:5;4502:13;4495:21;4484:32;;4432:90;;;:::o;4528:109::-;4609:21;4624:5;4609:21;:::i;:::-;4604:3;4597:34;4528:109;;:::o;4643:210::-;4730:4;4768:2;4757:9;4753:18;4745:26;;4781:65;4843:1;4832:9;4828:17;4819:6;4781:65;:::i;:::-;4643:210;;;;:::o;4859:118::-;4946:24;4964:5;4946:24;:::i;:::-;4941:3;4934:37;4859:118;;:::o;4983:222::-;5076:4;5114:2;5103:9;5099:18;5091:26;;5127:71;5195:1;5184:9;5180:17;5171:6;5127:71;:::i;:::-;4983:222;;;;:::o;5211:117::-;5320:1;5317;5310:12;5334:180;5382:77;5379:1;5372:88;5479:4;5476:1;5469:15;5503:4;5500:1;5493:15;5520:281;5603:27;5625:4;5603:27;:::i;:::-;5595:6;5591:40;5733:6;5721:10;5718:22;5697:18;5685:10;5682:34;5679:62;5676:88;;;5744:18;;:::i;:::-;5676:88;5784:10;5780:2;5773:22;5563:238;5520:281;;:::o;5807:129::-;5841:6;5868:20;;:::i;:::-;5858:30;;5897:33;5925:4;5917:6;5897:33;:::i;:::-;5807:129;;;:::o;5942:311::-;6019:4;6109:18;6101:6;6098:30;6095:56;;;6131:18;;:::i;:::-;6095:56;6181:4;6173:6;6169:17;6161:25;;6241:4;6235;6231:15;6223:23;;5942:311;;;:::o;6259:117::-;6368:1;6365;6358:12;6399:710;6495:5;6520:81;6536:64;6593:6;6536:64;:::i;:::-;6520:81;:::i;:::-;6511:90;;6621:5;6650:6;6643:5;6636:21;6684:4;6677:5;6673:16;6666:23;;6737:4;6729:6;6725:17;6717:6;6713:30;6766:3;6758:6;6755:15;6752:122;;;6785:79;;:::i;:::-;6752:122;6900:6;6883:220;6917:6;6912:3;6909:15;6883:220;;;6992:3;7021:37;7054:3;7042:10;7021:37;:::i;:::-;7016:3;7009:50;7088:4;7083:3;7079:14;7072:21;;6959:144;6943:4;6938:3;6934:14;6927:21;;6883:220;;;6887:21;6501:608;;6399:710;;;;;:::o;7132:370::-;7203:5;7252:3;7245:4;7237:6;7233:17;7229:27;7219:122;;7260:79;;:::i;:::-;7219:122;7377:6;7364:20;7402:94;7492:3;7484:6;7477:4;7469:6;7465:17;7402:94;:::i;:::-;7393:103;;7209:293;7132:370;;;;:::o;7508:539::-;7592:6;7641:2;7629:9;7620:7;7616:23;7612:32;7609:119;;;7647:79;;:::i;:::-;7609:119;7795:1;7784:9;7780:17;7767:31;7825:18;7817:6;7814:30;7811:117;;;7847:79;;:::i;:::-;7811:117;7952:78;8022:7;8013:6;8002:9;7998:22;7952:78;:::i;:::-;7942:88;;7738:302;7508:539;;;;:::o;8053:329::-;8112:6;8161:2;8149:9;8140:7;8136:23;8132:32;8129:119;;;8167:79;;:::i;:::-;8129:119;8287:1;8312:53;8357:7;8348:6;8337:9;8333:22;8312:53;:::i;:::-;8302:63;;8258:117;8053:329;;;;:::o;8388:::-;8447:6;8496:2;8484:9;8475:7;8471:23;8467:32;8464:119;;;8502:79;;:::i;:::-;8464:119;8622:1;8647:53;8692:7;8683:6;8672:9;8668:22;8647:53;:::i;:::-;8637:63;;8593:117;8388:329;;;;:::o;8723:619::-;8800:6;8808;8816;8865:2;8853:9;8844:7;8840:23;8836:32;8833:119;;;8871:79;;:::i;:::-;8833:119;8991:1;9016:53;9061:7;9052:6;9041:9;9037:22;9016:53;:::i;:::-;9006:63;;8962:117;9118:2;9144:53;9189:7;9180:6;9169:9;9165:22;9144:53;:::i;:::-;9134:63;;9089:118;9246:2;9272:53;9317:7;9308:6;9297:9;9293:22;9272:53;:::i;:::-;9262:63;;9217:118;8723:619;;;;;:::o;9348:86::-;9383:7;9423:4;9416:5;9412:16;9401:27;;9348:86;;;:::o;9440:112::-;9523:22;9539:5;9523:22;:::i;:::-;9518:3;9511:35;9440:112;;:::o;9558:214::-;9647:4;9685:2;9674:9;9670:18;9662:26;;9698:67;9762:1;9751:9;9747:17;9738:6;9698:67;:::i;:::-;9558:214;;;;:::o;9778:118::-;9865:24;9883:5;9865:24;:::i;:::-;9860:3;9853:37;9778:118;;:::o;9902:222::-;9995:4;10033:2;10022:9;10018:18;10010:26;;10046:71;10114:1;10103:9;10099:17;10090:6;10046:71;:::i;:::-;9902:222;;;;:::o;10130:116::-;10200:21;10215:5;10200:21;:::i;:::-;10193:5;10190:32;10180:60;;10236:1;10233;10226:12;10180:60;10130:116;:::o;10252:133::-;10295:5;10333:6;10320:20;10311:29;;10349:30;10373:5;10349:30;:::i;:::-;10252:133;;;;:::o;10391:468::-;10456:6;10464;10513:2;10501:9;10492:7;10488:23;10484:32;10481:119;;;10519:79;;:::i;:::-;10481:119;10639:1;10664:53;10709:7;10700:6;10689:9;10685:22;10664:53;:::i;:::-;10654:63;;10610:117;10766:2;10792:50;10834:7;10825:6;10814:9;10810:22;10792:50;:::i;:::-;10782:60;;10737:115;10391:468;;;;;:::o;10865:323::-;10921:6;10970:2;10958:9;10949:7;10945:23;10941:32;10938:119;;;10976:79;;:::i;:::-;10938:119;11096:1;11121:50;11163:7;11154:6;11143:9;11139:22;11121:50;:::i;:::-;11111:60;;11067:114;10865:323;;;;:::o;11194:311::-;11271:4;11361:18;11353:6;11350:30;11347:56;;;11383:18;;:::i;:::-;11347:56;11433:4;11425:6;11421:17;11413:25;;11493:4;11487;11483:15;11475:23;;11194:311;;;:::o;11528:710::-;11624:5;11649:81;11665:64;11722:6;11665:64;:::i;:::-;11649:81;:::i;:::-;11640:90;;11750:5;11779:6;11772:5;11765:21;11813:4;11806:5;11802:16;11795:23;;11866:4;11858:6;11854:17;11846:6;11842:30;11895:3;11887:6;11884:15;11881:122;;;11914:79;;:::i;:::-;11881:122;12029:6;12012:220;12046:6;12041:3;12038:15;12012:220;;;12121:3;12150:37;12183:3;12171:10;12150:37;:::i;:::-;12145:3;12138:50;12217:4;12212:3;12208:14;12201:21;;12088:144;12072:4;12067:3;12063:14;12056:21;;12012:220;;;12016:21;11630:608;;11528:710;;;;;:::o;12261:370::-;12332:5;12381:3;12374:4;12366:6;12362:17;12358:27;12348:122;;12389:79;;:::i;:::-;12348:122;12506:6;12493:20;12531:94;12621:3;12613:6;12606:4;12598:6;12594:17;12531:94;:::i;:::-;12522:103;;12338:293;12261:370;;;;:::o;12637:894::-;12755:6;12763;12812:2;12800:9;12791:7;12787:23;12783:32;12780:119;;;12818:79;;:::i;:::-;12780:119;12966:1;12955:9;12951:17;12938:31;12996:18;12988:6;12985:30;12982:117;;;13018:79;;:::i;:::-;12982:117;13123:78;13193:7;13184:6;13173:9;13169:22;13123:78;:::i;:::-;13113:88;;12909:302;13278:2;13267:9;13263:18;13250:32;13309:18;13301:6;13298:30;13295:117;;;13331:79;;:::i;:::-;13295:117;13436:78;13506:7;13497:6;13486:9;13482:22;13436:78;:::i;:::-;13426:88;;13221:303;12637:894;;;;;:::o;13537:117::-;13646:1;13643;13636:12;13677:568;13750:8;13760:6;13810:3;13803:4;13795:6;13791:17;13787:27;13777:122;;13818:79;;:::i;:::-;13777:122;13931:6;13918:20;13908:30;;13961:18;13953:6;13950:30;13947:117;;;13983:79;;:::i;:::-;13947:117;14097:4;14089:6;14085:17;14073:29;;14151:3;14143:4;14135:6;14131:17;14121:8;14117:32;14114:41;14111:128;;;14158:79;;:::i;:::-;14111:128;13677:568;;;;;:::o;14251:698::-;14343:6;14351;14359;14408:2;14396:9;14387:7;14383:23;14379:32;14376:119;;;14414:79;;:::i;:::-;14376:119;14562:1;14551:9;14547:17;14534:31;14592:18;14584:6;14581:30;14578:117;;;14614:79;;:::i;:::-;14578:117;14727:80;14799:7;14790:6;14779:9;14775:22;14727:80;:::i;:::-;14709:98;;;;14505:312;14856:2;14882:50;14924:7;14915:6;14904:9;14900:22;14882:50;:::i;:::-;14872:60;;14827:115;14251:698;;;;;:::o;14955:474::-;15023:6;15031;15080:2;15068:9;15059:7;15055:23;15051:32;15048:119;;;15086:79;;:::i;:::-;15048:119;15206:1;15231:53;15276:7;15267:6;15256:9;15252:22;15231:53;:::i;:::-;15221:63;;15177:117;15333:2;15359:53;15404:7;15395:6;15384:9;15380:22;15359:53;:::i;:::-;15349:63;;15304:118;14955:474;;;;;:::o;15435:182::-;15575:34;15571:1;15563:6;15559:14;15552:58;15435:182;:::o;15623:366::-;15765:3;15786:67;15850:2;15845:3;15786:67;:::i;:::-;15779:74;;15862:93;15951:3;15862:93;:::i;:::-;15980:2;15975:3;15971:12;15964:19;;15623:366;;;:::o;15995:419::-;16161:4;16199:2;16188:9;16184:18;16176:26;;16248:9;16242:4;16238:20;16234:1;16223:9;16219:17;16212:47;16276:131;16402:4;16276:131;:::i;:::-;16268:139;;15995:419;;;:::o;16420:180::-;16468:77;16465:1;16458:88;16565:4;16562:1;16555:15;16589:4;16586:1;16579:15;16606:191;16646:3;16665:20;16683:1;16665:20;:::i;:::-;16660:25;;16699:20;16717:1;16699:20;:::i;:::-;16694:25;;16742:1;16739;16735:9;16728:16;;16763:3;16760:1;16757:10;16754:36;;;16770:18;;:::i;:::-;16754:36;16606:191;;;;:::o;16803:180::-;16943:32;16939:1;16931:6;16927:14;16920:56;16803:180;:::o;16989:366::-;17131:3;17152:67;17216:2;17211:3;17152:67;:::i;:::-;17145:74;;17228:93;17317:3;17228:93;:::i;:::-;17346:2;17341:3;17337:12;17330:19;;16989:366;;;:::o;17361:419::-;17527:4;17565:2;17554:9;17550:18;17542:26;;17614:9;17608:4;17604:20;17600:1;17589:9;17585:17;17578:47;17642:131;17768:4;17642:131;:::i;:::-;17634:139;;17361:419;;;:::o;17786:180::-;17834:77;17831:1;17824:88;17931:4;17928:1;17921:15;17955:4;17952:1;17945:15;17972:320;18016:6;18053:1;18047:4;18043:12;18033:22;;18100:1;18094:4;18090:12;18121:18;18111:81;;18177:4;18169:6;18165:17;18155:27;;18111:81;18239:2;18231:6;18228:14;18208:18;18205:38;18202:84;;18258:18;;:::i;:::-;18202:84;18023:269;17972:320;;;:::o;18298:180::-;18346:77;18343:1;18336:88;18443:4;18440:1;18433:15;18467:4;18464:1;18457:15;18484:233;18523:3;18546:24;18564:5;18546:24;:::i;:::-;18537:33;;18592:66;18585:5;18582:77;18579:103;;18662:18;;:::i;:::-;18579:103;18709:1;18702:5;18698:13;18691:20;;18484:233;;;:::o;18723:102::-;18765:8;18812:5;18809:1;18805:13;18784:34;;18723:102;;;:::o;18831:848::-;18892:5;18899:4;18923:6;18914:15;;18947:5;18938:14;;18961:712;18982:1;18972:8;18969:15;18961:712;;;19077:4;19072:3;19068:14;19062:4;19059:24;19056:50;;;19086:18;;:::i;:::-;19056:50;19136:1;19126:8;19122:16;19119:451;;;19551:4;19544:5;19540:16;19531:25;;19119:451;19601:4;19595;19591:15;19583:23;;19631:32;19654:8;19631:32;:::i;:::-;19619:44;;18961:712;;;18831:848;;;;;;;:::o;19685:1073::-;19739:5;19930:8;19920:40;;19951:1;19942:10;;19953:5;;19920:40;19979:4;19969:36;;19996:1;19987:10;;19998:5;;19969:36;20065:4;20113:1;20108:27;;;;20149:1;20144:191;;;;20058:277;;20108:27;20126:1;20117:10;;20128:5;;;20144:191;20189:3;20179:8;20176:17;20173:43;;;20196:18;;:::i;:::-;20173:43;20245:8;20242:1;20238:16;20229:25;;20280:3;20273:5;20270:14;20267:40;;;20287:18;;:::i;:::-;20267:40;20320:5;;;20058:277;;20444:2;20434:8;20431:16;20425:3;20419:4;20416:13;20412:36;20394:2;20384:8;20381:16;20376:2;20370:4;20367:12;20363:35;20347:111;20344:246;;;20500:8;20494:4;20490:19;20481:28;;20535:3;20528:5;20525:14;20522:40;;;20542:18;;:::i;:::-;20522:40;20575:5;;20344:246;20615:42;20653:3;20643:8;20637:4;20634:1;20615:42;:::i;:::-;20600:57;;;;20689:4;20684:3;20680:14;20673:5;20670:25;20667:51;;;20698:18;;:::i;:::-;20667:51;20747:4;20740:5;20736:16;20727:25;;19685:1073;;;;;;:::o;20764:281::-;20822:5;20846:23;20864:4;20846:23;:::i;:::-;20838:31;;20890:25;20906:8;20890:25;:::i;:::-;20878:37;;20934:104;20971:66;20961:8;20955:4;20934:104;:::i;:::-;20925:113;;20764:281;;;;:::o;21051:410::-;21091:7;21114:20;21132:1;21114:20;:::i;:::-;21109:25;;21148:20;21166:1;21148:20;:::i;:::-;21143:25;;21203:1;21200;21196:9;21225:30;21243:11;21225:30;:::i;:::-;21214:41;;21404:1;21395:7;21391:15;21388:1;21385:22;21365:1;21358:9;21338:83;21315:139;;21434:18;;:::i;:::-;21315:139;21099:362;21051:410;;;;:::o;21467:180::-;21515:77;21512:1;21505:88;21612:4;21609:1;21602:15;21636:4;21633:1;21626:15;21653:185;21693:1;21710:20;21728:1;21710:20;:::i;:::-;21705:25;;21744:20;21762:1;21744:20;:::i;:::-;21739:25;;21783:1;21773:35;;21788:18;;:::i;:::-;21773:35;21830:1;21827;21823:9;21818:14;;21653:185;;;;:::o;21844:234::-;21984:34;21980:1;21972:6;21968:14;21961:58;22053:17;22048:2;22040:6;22036:15;22029:42;21844:234;:::o;22084:366::-;22226:3;22247:67;22311:2;22306:3;22247:67;:::i;:::-;22240:74;;22323:93;22412:3;22323:93;:::i;:::-;22441:2;22436:3;22432:12;22425:19;;22084:366;;;:::o;22456:419::-;22622:4;22660:2;22649:9;22645:18;22637:26;;22709:9;22703:4;22699:20;22695:1;22684:9;22680:17;22673:47;22737:131;22863:4;22737:131;:::i;:::-;22729:139;;22456:419;;;:::o;22881:227::-;23021:34;23017:1;23009:6;23005:14;22998:58;23090:10;23085:2;23077:6;23073:15;23066:35;22881:227;:::o;23114:366::-;23256:3;23277:67;23341:2;23336:3;23277:67;:::i;:::-;23270:74;;23353:93;23442:3;23353:93;:::i;:::-;23471:2;23466:3;23462:12;23455:19;;23114:366;;;:::o;23486:419::-;23652:4;23690:2;23679:9;23675:18;23667:26;;23739:9;23733:4;23729:20;23725:1;23714:9;23710:17;23703:47;23767:131;23893:4;23767:131;:::i;:::-;23759:139;;23486:419;;;:::o;23911:174::-;24051:26;24047:1;24039:6;24035:14;24028:50;23911:174;:::o;24091:366::-;24233:3;24254:67;24318:2;24313:3;24254:67;:::i;:::-;24247:74;;24330:93;24419:3;24330:93;:::i;:::-;24448:2;24443:3;24439:12;24432:19;;24091:366;;;:::o;24463:419::-;24629:4;24667:2;24656:9;24652:18;24644:26;;24716:9;24710:4;24706:20;24702:1;24691:9;24687:17;24680:47;24744:131;24870:4;24744:131;:::i;:::-;24736:139;;24463:419;;;:::o;24888:166::-;25028:18;25024:1;25016:6;25012:14;25005:42;24888:166;:::o;25060:366::-;25202:3;25223:67;25287:2;25282:3;25223:67;:::i;:::-;25216:74;;25299:93;25388:3;25299:93;:::i;:::-;25417:2;25412:3;25408:12;25401:19;;25060:366;;;:::o;25432:419::-;25598:4;25636:2;25625:9;25621:18;25613:26;;25685:9;25679:4;25675:20;25671:1;25660:9;25656:17;25649:47;25713:131;25839:4;25713:131;:::i;:::-;25705:139;;25432:419;;;:::o;25857:174::-;25997:26;25993:1;25985:6;25981:14;25974:50;25857:174;:::o;26037:366::-;26179:3;26200:67;26264:2;26259:3;26200:67;:::i;:::-;26193:74;;26276:93;26365:3;26276:93;:::i;:::-;26394:2;26389:3;26385:12;26378:19;;26037:366;;;:::o;26409:419::-;26575:4;26613:2;26602:9;26598:18;26590:26;;26662:9;26656:4;26652:20;26648:1;26637:9;26633:17;26626:47;26690:131;26816:4;26690:131;:::i;:::-;26682:139;;26409:419;;;:::o;26834:293::-;26974:34;26970:1;26962:6;26958:14;26951:58;27043:34;27038:2;27030:6;27026:15;27019:59;27112:7;27107:2;27099:6;27095:15;27088:32;26834:293;:::o;27133:366::-;27275:3;27296:67;27360:2;27355:3;27296:67;:::i;:::-;27289:74;;27372:93;27461:3;27372:93;:::i;:::-;27490:2;27485:3;27481:12;27474:19;;27133:366;;;:::o;27505:419::-;27671:4;27709:2;27698:9;27694:18;27686:26;;27758:9;27752:4;27748:20;27744:1;27733:9;27729:17;27722:47;27786:131;27912:4;27786:131;:::i;:::-;27778:139;;27505:419;;;:::o;27930:224::-;28070:34;28066:1;28058:6;28054:14;28047:58;28139:7;28134:2;28126:6;28122:15;28115:32;27930:224;:::o;28160:366::-;28302:3;28323:67;28387:2;28382:3;28323:67;:::i;:::-;28316:74;;28399:93;28488:3;28399:93;:::i;:::-;28517:2;28512:3;28508:12;28501:19;;28160:366;;;:::o;28532:419::-;28698:4;28736:2;28725:9;28721:18;28713:26;;28785:9;28779:4;28775:20;28771:1;28760:9;28756:17;28749:47;28813:131;28939:4;28813:131;:::i;:::-;28805:139;;28532:419;;;:::o;28957:180::-;29097:32;29093:1;29085:6;29081:14;29074:56;28957:180;:::o;29143:366::-;29285:3;29306:67;29370:2;29365:3;29306:67;:::i;:::-;29299:74;;29382:93;29471:3;29382:93;:::i;:::-;29500:2;29495:3;29491:12;29484:19;;29143:366;;;:::o;29515:419::-;29681:4;29719:2;29708:9;29704:18;29696:26;;29768:9;29762:4;29758:20;29754:1;29743:9;29739:17;29732:47;29796:131;29922:4;29796:131;:::i;:::-;29788:139;;29515:419;;;:::o;29940:241::-;30080:34;30076:1;30068:6;30064:14;30057:58;30149:24;30144:2;30136:6;30132:15;30125:49;29940:241;:::o;30187:366::-;30329:3;30350:67;30414:2;30409:3;30350:67;:::i;:::-;30343:74;;30426:93;30515:3;30426:93;:::i;:::-;30544:2;30539:3;30535:12;30528:19;;30187:366;;;:::o;30559:419::-;30725:4;30763:2;30752:9;30748:18;30740:26;;30812:9;30806:4;30802:20;30798:1;30787:9;30783:17;30776:47;30840:131;30966:4;30840:131;:::i;:::-;30832:139;;30559:419;;;:::o;30984:221::-;31124:34;31120:1;31112:6;31108:14;31101:58;31193:4;31188:2;31180:6;31176:15;31169:29;30984:221;:::o;31211:366::-;31353:3;31374:67;31438:2;31433:3;31374:67;:::i;:::-;31367:74;;31450:93;31539:3;31450:93;:::i;:::-;31568:2;31563:3;31559:12;31552:19;;31211:366;;;:::o;31583:419::-;31749:4;31787:2;31776:9;31772:18;31764:26;;31836:9;31830:4;31826:20;31822:1;31811:9;31807:17;31800:47;31864:131;31990:4;31864:131;:::i;:::-;31856:139;;31583:419;;;:::o;32008:184::-;32107:11;32141:6;32136:3;32129:19;32181:4;32176:3;32172:14;32157:29;;32008:184;;;;:::o;32198:102::-;32267:4;32290:3;32282:11;;32198:102;;;:::o;32306:108::-;32383:24;32401:5;32383:24;:::i;:::-;32378:3;32371:37;32306:108;;:::o;32420:179::-;32489:10;32510:46;32552:3;32544:6;32510:46;:::i;:::-;32588:4;32583:3;32579:14;32565:28;;32420:179;;;;:::o;32605:122::-;32657:5;32682:39;32717:2;32712:3;32708:12;32703:3;32682:39;:::i;:::-;32673:48;;32605:122;;;;:::o;32733:115::-;32805:4;32837;32832:3;32828:14;32820:22;;32733:115;;;:::o;32884:699::-;33013:3;33036:86;33115:6;33110:3;33036:86;:::i;:::-;33029:93;;33146:58;33198:5;33146:58;:::i;:::-;33227:7;33258:1;33243:315;33268:6;33265:1;33262:13;33243:315;;;33338:42;33373:6;33364:7;33338:42;:::i;:::-;33400:63;33459:3;33444:13;33400:63;:::i;:::-;33393:70;;33486:62;33541:6;33486:62;:::i;:::-;33476:72;;33303:255;33290:1;33287;33283:9;33278:14;;33243:315;;;33247:14;33574:3;33567:10;;33018:565;;32884:699;;;;;:::o;33589:491::-;33764:4;33802:2;33791:9;33787:18;33779:26;;33851:9;33845:4;33841:20;33837:1;33826:9;33822:17;33815:47;33879:118;33992:4;33983:6;33975;33879:118;:::i;:::-;33871:126;;34007:66;34069:2;34058:9;34054:18;34045:6;34007:66;:::i;:::-;33589:491;;;;;;:::o;34086:225::-;34226:34;34222:1;34214:6;34210:14;34203:58;34295:8;34290:2;34282:6;34278:15;34271:33;34086:225;:::o;34317:366::-;34459:3;34480:67;34544:2;34539:3;34480:67;:::i;:::-;34473:74;;34556:93;34645:3;34556:93;:::i;:::-;34674:2;34669:3;34665:12;34658:19;;34317:366;;;:::o;34689:419::-;34855:4;34893:2;34882:9;34878:18;34870:26;;34942:9;34936:4;34932:20;34928:1;34917:9;34913:17;34906:47;34970:131;35096:4;34970:131;:::i;:::-;34962:139;;34689:419;;;:::o;35114:223::-;35254:34;35250:1;35242:6;35238:14;35231:58;35323:6;35318:2;35310:6;35306:15;35299:31;35114:223;:::o;35343:366::-;35485:3;35506:67;35570:2;35565:3;35506:67;:::i;:::-;35499:74;;35582:93;35671:3;35582:93;:::i;:::-;35700:2;35695:3;35691:12;35684:19;;35343:366;;;:::o;35715:419::-;35881:4;35919:2;35908:9;35904:18;35896:26;;35968:9;35962:4;35958:20;35954:1;35943:9;35939:17;35932:47;35996:131;36122:4;35996:131;:::i;:::-;35988:139;;35715:419;;;:::o;36140:221::-;36280:34;36276:1;36268:6;36264:14;36257:58;36349:4;36344:2;36336:6;36332:15;36325:29;36140:221;:::o;36367:366::-;36509:3;36530:67;36594:2;36589:3;36530:67;:::i;:::-;36523:74;;36606:93;36695:3;36606:93;:::i;:::-;36724:2;36719:3;36715:12;36708:19;;36367:366;;;:::o;36739:419::-;36905:4;36943:2;36932:9;36928:18;36920:26;;36992:9;36986:4;36982:20;36978:1;36967:9;36963:17;36956:47;37020:131;37146:4;37020:131;:::i;:::-;37012:139;;36739:419;;;:::o;37164:224::-;37304:34;37300:1;37292:6;37288:14;37281:58;37373:7;37368:2;37360:6;37356:15;37349:32;37164:224;:::o;37394:366::-;37536:3;37557:67;37621:2;37616:3;37557:67;:::i;:::-;37550:74;;37633:93;37722:3;37633:93;:::i;:::-;37751:2;37746:3;37742:12;37735:19;;37394:366;;;:::o;37766:419::-;37932:4;37970:2;37959:9;37955:18;37947:26;;38019:9;38013:4;38009:20;38005:1;37994:9;37990:17;37983:47;38047:131;38173:4;38047:131;:::i;:::-;38039:139;;37766:419;;;:::o;38191:222::-;38331:34;38327:1;38319:6;38315:14;38308:58;38400:5;38395:2;38387:6;38383:15;38376:30;38191:222;:::o;38419:366::-;38561:3;38582:67;38646:2;38641:3;38582:67;:::i;:::-;38575:74;;38658:93;38747:3;38658:93;:::i;:::-;38776:2;38771:3;38767:12;38760:19;;38419:366;;;:::o;38791:419::-;38957:4;38995:2;38984:9;38980:18;38972:26;;39044:9;39038:4;39034:20;39030:1;39019:9;39015:17;39008:47;39072:131;39198:4;39072:131;:::i;:::-;39064:139;;38791:419;;;:::o;39216:157::-;39356:9;39352:1;39344:6;39340:14;39333:33;39216:157;:::o;39379:365::-;39521:3;39542:66;39606:1;39601:3;39542:66;:::i;:::-;39535:73;;39617:93;39706:3;39617:93;:::i;:::-;39735:2;39730:3;39726:12;39719:19;;39379:365;;;:::o;39750:419::-;39916:4;39954:2;39943:9;39939:18;39931:26;;40003:9;39997:4;39993:20;39989:1;39978:9;39974:17;39967:47;40031:131;40157:4;40031:131;:::i;:::-;40023:139;;39750:419;;;:::o;40175:176::-;40315:28;40311:1;40303:6;40299:14;40292:52;40175:176;:::o;40357:366::-;40499:3;40520:67;40584:2;40579:3;40520:67;:::i;:::-;40513:74;;40596:93;40685:3;40596:93;:::i;:::-;40714:2;40709:3;40705:12;40698:19;;40357:366;;;:::o;40729:419::-;40895:4;40933:2;40922:9;40918:18;40910:26;;40982:9;40976:4;40972:20;40968:1;40957:9;40953:17;40946:47;41010:131;41136:4;41010:131;:::i;:::-;41002:139;;40729:419;;;:::o;41154:173::-;41294:25;41290:1;41282:6;41278:14;41271:49;41154:173;:::o;41333:366::-;41475:3;41496:67;41560:2;41555:3;41496:67;:::i;:::-;41489:74;;41572:93;41661:3;41572:93;:::i;:::-;41690:2;41685:3;41681:12;41674:19;;41333:366;;;:::o;41705:419::-;41871:4;41909:2;41898:9;41894:18;41886:26;;41958:9;41952:4;41948:20;41944:1;41933:9;41929:17;41922:47;41986:131;42112:4;41986:131;:::i;:::-;41978:139;;41705:419;;;:::o;42130:240::-;42270:34;42266:1;42258:6;42254:14;42247:58;42339:23;42334:2;42326:6;42322:15;42315:48;42130:240;:::o;42376:366::-;42518:3;42539:67;42603:2;42598:3;42539:67;:::i;:::-;42532:74;;42615:93;42704:3;42615:93;:::i;:::-;42733:2;42728:3;42724:12;42717:19;;42376:366;;;:::o;42748:419::-;42914:4;42952:2;42941:9;42937:18;42929:26;;43001:9;42995:4;42991:20;42987:1;42976:9;42972:17;42965:47;43029:131;43155:4;43029:131;:::i;:::-;43021:139;;42748:419;;;:::o;43173:177::-;43313:29;43309:1;43301:6;43297:14;43290:53;43173:177;:::o;43356:366::-;43498:3;43519:67;43583:2;43578:3;43519:67;:::i;:::-;43512:74;;43595:93;43684:3;43595:93;:::i;:::-;43713:2;43708:3;43704:12;43697:19;;43356:366;;;:::o;43728:419::-;43894:4;43932:2;43921:9;43917:18;43909:26;;43981:9;43975:4;43971:20;43967:1;43956:9;43952:17;43945:47;44009:131;44135:4;44009:131;:::i;:::-;44001:139;;43728:419;;;:::o;44153:241::-;44293:34;44289:1;44281:6;44277:14;44270:58;44362:24;44357:2;44349:6;44345:15;44338:49;44153:241;:::o;44400:366::-;44542:3;44563:67;44627:2;44622:3;44563:67;:::i;:::-;44556:74;;44639:93;44728:3;44639:93;:::i;:::-;44757:2;44752:3;44748:12;44741:19;;44400:366;;;:::o;44772:419::-;44938:4;44976:2;44965:9;44961:18;44953:26;;45025:9;45019:4;45015:20;45011:1;45000:9;44996:17;44989:47;45053:131;45179:4;45053:131;:::i;:::-;45045:139;;44772:419;;;:::o;45197:194::-;45237:4;45257:20;45275:1;45257:20;:::i;:::-;45252:25;;45291:20;45309:1;45291:20;:::i;:::-;45286:25;;45335:1;45332;45328:9;45320:17;;45359:1;45353:4;45350:11;45347:37;;;45364:18;;:::i;:::-;45347:37;45197:194;;;;:::o;45397:225::-;45537:34;45533:1;45525:6;45521:14;45514:58;45606:8;45601:2;45593:6;45589:15;45582:33;45397:225;:::o;45628:366::-;45770:3;45791:67;45855:2;45850:3;45791:67;:::i;:::-;45784:74;;45867:93;45956:3;45867:93;:::i;:::-;45985:2;45980:3;45976:12;45969:19;;45628:366;;;:::o;46000:419::-;46166:4;46204:2;46193:9;46189:18;46181:26;;46253:9;46247:4;46243:20;46239:1;46228:9;46224:17;46217:47;46281:131;46407:4;46281:131;:::i;:::-;46273:139;;46000:419;;;:::o;46425:143::-;46482:5;46513:6;46507:13;46498:22;;46529:33;46556:5;46529:33;:::i;:::-;46425:143;;;;:::o;46574:351::-;46644:6;46693:2;46681:9;46672:7;46668:23;46664:32;46661:119;;;46699:79;;:::i;:::-;46661:119;46819:1;46844:64;46900:7;46891:6;46880:9;46876:22;46844:64;:::i;:::-;46834:74;;46790:128;46574:351;;;;:::o;46931:85::-;46976:7;47005:5;46994:16;;46931:85;;;:::o;47022:158::-;47080:9;47113:61;47131:42;47140:32;47166:5;47140:32;:::i;:::-;47131:42;:::i;:::-;47113:61;:::i;:::-;47100:74;;47022:158;;;:::o;47186:147::-;47281:45;47320:5;47281:45;:::i;:::-;47276:3;47269:58;47186:147;;:::o;47339:114::-;47406:6;47440:5;47434:12;47424:22;;47339:114;;;:::o;47459:132::-;47526:4;47549:3;47541:11;;47579:4;47574:3;47570:14;47562:22;;47459:132;;;:::o;47597:113::-;47667:4;47699;47694:3;47690:14;47682:22;;47597:113;;;:::o;47746:732::-;47865:3;47894:54;47942:5;47894:54;:::i;:::-;47964:86;48043:6;48038:3;47964:86;:::i;:::-;47957:93;;48074:56;48124:5;48074:56;:::i;:::-;48153:7;48184:1;48169:284;48194:6;48191:1;48188:13;48169:284;;;48270:6;48264:13;48297:63;48356:3;48341:13;48297:63;:::i;:::-;48290:70;;48383:60;48436:6;48383:60;:::i;:::-;48373:70;;48229:224;48216:1;48213;48209:9;48204:14;;48169:284;;;48173:14;48469:3;48462:10;;47870:608;;;47746:732;;;;:::o;48484:831::-;48747:4;48785:3;48774:9;48770:19;48762:27;;48799:71;48867:1;48856:9;48852:17;48843:6;48799:71;:::i;:::-;48880:80;48956:2;48945:9;48941:18;48932:6;48880:80;:::i;:::-;49007:9;49001:4;48997:20;48992:2;48981:9;48977:18;48970:48;49035:108;49138:4;49129:6;49035:108;:::i;:::-;49027:116;;49153:72;49221:2;49210:9;49206:18;49197:6;49153:72;:::i;:::-;49235:73;49303:3;49292:9;49288:19;49279:6;49235:73;:::i;:::-;48484:831;;;;;;;;:::o

Swarm Source

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