ETH Price: $2,356.57 (+1.14%)

Token

Dinos Extinction (RATS)
 

Overview

Max Total Supply

100,000,000 RATS

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,103,803.727273039267211389 RATS

Value
$0.00
0x49051C995C018e134De27d5BDA0ce62f8F802B72
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:
DinosExtinction

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-27
*/

/**

The dinosaurs "sacrificed" themselves 66 million years ago, so little mammals like $RATS could live. Yup, after Ms. Comet hit Mr. Earth, we humans evolved from placental mammals, tiny, furry-tailed creatures that looked like rats. 

So there is no wonder why a lot of people behave like rats, especially in the crypto space. The crypto space is becoming flooded with rats day by day, and the dinosaur spirits are sad that their sacrifice was in vain.  "Cryptos will never Die Gayry!"

https://dinosextinction.com
https://t.me/DinosExtinction
https://twitter.com/DinosExtinction

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
    /**
     * @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;

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

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

        emit Transfer(sender, recipient, amount);
    }

    function _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 _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

    function transferOwnership(address newOwner) external 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 addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

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

contract DinosExtinction is ERC20, Ownable {

    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWalletAmount;

    IDexRouter private dexRouter;
    address private lpPair;

    bool private swapping;
    uint256 public swapTokensAtAmount;

    address operationsAddress;

    bool private limitsInEffect = true;

    bool private swapEnabled = true;

    uint256 public buyTotalFees;
    uint256 private buyOperationsFee;

    uint256 public sellTotalFees;
    uint256 private sellOperationsFee;

    uint256 private tokensForOperations;


    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private _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) private automatedMarketMakerPairs;

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


    event RemovedLimits();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedMaxBuyAmount(uint256 newAmount);

    event UpdatedMaxSellAmount(uint256 newAmount);

    event UpdatedMaxWalletAmount(uint256 newAmount);

    event UpdatedOperationsAddress(address indexed newWallet);

    event MaxTransactionExclusion(address _address, bool excluded);

    event OwnerForcedSwapBack(uint256 timestamp);


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

    event TransferForeignToken(address token, uint256 amount);

    constructor() ERC20("Dinos Extinction", "RATS") {

        address newOwner = msg.sender; // can leave alone if owner is deployer.

        IDexRouter _dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        dexRouter = _dexRouter;

        // create pair
        lpPair = IDexFactory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH());
        _excludeFromMaxTransaction(address(lpPair), true);
        _setAutomatedMarketMakerPair(address(lpPair), true);

        uint256 totalSupply = 1 * 1e8 * 1e18;

        maxBuyAmount = totalSupply * 2 / 100;
        maxSellAmount = totalSupply * 2 / 100;
        maxWalletAmount = totalSupply * 2 / 100;
        swapTokensAtAmount = totalSupply * 5 / 10000;

        buyOperationsFee = 0;
 
        buyTotalFees = buyOperationsFee;

        sellOperationsFee = 0;
        sellTotalFees = sellOperationsFee ;

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);

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

        operationsAddress = address(newOwner);

        _createInitialSupply(newOwner, totalSupply);
        //transferOwnership(newOwner);
    }

    receive() external payable {}


    // remove limits after token is stable
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        emit RemovedLimits();
    }


    function updateMaxBuyAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max buy amount lower than 0.1%");
        require(maxBuyAmount < (totalSupply() * 100 / 1000)/1e18, "Cannot set max buy amount higher than 10%");
        maxBuyAmount = newNum * (10**18);
        emit UpdatedMaxBuyAmount(maxBuyAmount);
    }

    function updateMaxSellAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max sell amount lower than 0.1%");
                require(maxSellAmount < (totalSupply() * 100 / 1000)/1e18, "Cannot set max sell amount higher than 10%");

        maxSellAmount = newNum * (10**18);
        emit UpdatedMaxSellAmount(maxSellAmount);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max wallet amount lower than 0.1%");
                require(maxWalletAmount < (totalSupply() * 100 / 1000)/1e18, "Cannot set max wallet amount higher than 10%");

        maxWalletAmount = newNum * (10**18);
        emit UpdatedMaxWalletAmount(maxWalletAmount);
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
  	    require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
          require(swapTokensAtAmount < (totalSupply() * 100 / 1000)/1e18, "Cannot set max swap token amount higher than 10%");
  	    swapTokensAtAmount = newAmount;
  	}

    function _excludeFromMaxTransaction(address updAds, bool isExcluded) private {
        _isExcludedMaxTransactionAmount[updAds] = isExcluded;
        emit MaxTransactionExclusion(updAds, isExcluded);
    }


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

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

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

        _excludeFromMaxTransaction(pair, value);

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyFees(uint256 _operationsFee) external onlyOwner {
        buyOperationsFee = _operationsFee;
        buyTotalFees = buyOperationsFee;
        require(buyTotalFees <= 20, "Must keep fees at 20% or less");
    }

    function updateSellFees(uint256 _operationsFee) external onlyOwner {
        sellOperationsFee = _operationsFee;
        sellTotalFees = sellOperationsFee;
        require(sellTotalFees <= 30, "Must keep fees at 30% or less");
    }

    function removeTax() external onlyOwner {
        sellOperationsFee = 0;
        sellTotalFees = sellOperationsFee;
        buyOperationsFee = 0;
        buyTotalFees = buyOperationsFee;
    }

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

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

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

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

                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                        require(amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy.");
                        require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet");
                }
                //when sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                        require(amount <= maxSellAmount, "Sell transfer amount exceeds the max sell.");
                }
                else if (!_isExcludedMaxTransactionAmount[to]){
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

            swapBack();

            swapping = false;
        }

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

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if(takeFee){

            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
                fees = amount * sellTotalFees / 100;
                tokensForOperations += fees;
            }

            // on buy
            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
        	    fees = amount * buyTotalFees / 100;
                tokensForOperations += fees;
            }

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

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

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(dexRouter), tokenAmount);

        // add the liquidity
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0xdead),
            block.timestamp
        );
    }

    function swapBack() private {

    
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForOperations ;

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

        if(contractBalance > swapTokensAtAmount * 20){
            contractBalance = swapTokensAtAmount * 20;
        }

        bool success;
        swapTokensForEth(contractBalance);
        tokensForOperations = 0;
        (success,) = address(operationsAddress).call{value: address(this).balance}("");
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerForcedSwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedOperationsAddress","type":"event"},{"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600c60146101000a81548160ff0219169083151502179055506001600c60156101000a81548160ff02191690831515021790555034801562000046575f80fd5b506040518060400160405280601081526020017f44696e6f7320457874696e6374696f6e000000000000000000000000000000008152506040518060400160405280600481526020017f52415453000000000000000000000000000000000000000000000000000000008152508160039081620000c4919062000b15565b508060049081620000d6919062000b15565b5050505f620000ea6200057560201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f3390505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000253919062000c5e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002df919062000c5e565b6040518363ffffffff1660e01b8152600401620002fe92919062000c9f565b6020604051808303815f875af11580156200031b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000341919062000c5e565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003b4600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200057c60201b60201c565b620003e8600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200060f60201b60201c565b5f6a52b7d2dcc80cd2e40000009050606460028262000408919062000cf7565b62000414919062000d6e565b60068190555060646002826200042b919062000cf7565b62000437919062000d6e565b60078190555060646002826200044e919062000cf7565b6200045a919062000d6e565b60088190555061271060058262000472919062000cf7565b6200047e919062000d6e565b600b819055505f600e81905550600e54600d819055505f601081905550601054600f81905550620004b78360016200057c60201b60201c565b620004ca3060016200057c60201b60201c565b620004df61dead60016200057c60201b60201c565b620004f2836001620006bf60201b60201c565b62000505306001620006bf60201b60201c565b6200051a61dead6001620006bf60201b60201c565b82600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200056c83826200076760201b60201c565b50505062000eeb565b5f33905090565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516200060392919062000dc1565b60405180910390a15050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200067582826200057c60201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200075b919062000dec565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007cf9062000e65565b60405180910390fd5b8060025f828254620007eb919062000e85565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200083f919062000e85565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008a5919062000ed0565b60405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200092d57607f821691505b602082108103620009435762000942620008e8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200096a565b620009b386836200096a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620009fd620009f7620009f184620009cb565b620009d4565b620009cb565b9050919050565b5f819050919050565b62000a1883620009dd565b62000a3062000a278262000a04565b84845462000976565b825550505050565b5f90565b62000a4662000a38565b62000a5381848462000a0d565b505050565b5b8181101562000a7a5762000a6e5f8262000a3c565b60018101905062000a59565b5050565b601f82111562000ac95762000a938162000949565b62000a9e846200095b565b8101602085101562000aae578190505b62000ac662000abd856200095b565b83018262000a58565b50505b505050565b5f82821c905092915050565b5f62000aeb5f198460080262000ace565b1980831691505092915050565b5f62000b05838362000ada565b9150826002028217905092915050565b62000b2082620008b1565b67ffffffffffffffff81111562000b3c5762000b3b620008bb565b5b62000b48825462000915565b62000b5582828562000a7e565b5f60209050601f83116001811462000b8b575f841562000b76578287015190505b62000b82858262000af8565b86555062000bf1565b601f19841662000b9b8662000949565b5f5b8281101562000bc45784890151825560018201915060208501945060208101905062000b9d565b8683101562000be4578489015162000be0601f89168262000ada565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c288262000bfd565b9050919050565b62000c3a8162000c1c565b811462000c45575f80fd5b50565b5f8151905062000c588162000c2f565b92915050565b5f6020828403121562000c765762000c7562000bf9565b5b5f62000c858482850162000c48565b91505092915050565b62000c998162000c1c565b82525050565b5f60408201905062000cb45f83018562000c8e565b62000cc3602083018462000c8e565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000d0382620009cb565b915062000d1083620009cb565b925082820262000d2081620009cb565b9150828204841483151762000d3a5762000d3962000cca565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000d7a82620009cb565b915062000d8783620009cb565b92508262000d9a5762000d9962000d41565b5b828204905092915050565b5f8115159050919050565b62000dbb8162000da5565b82525050565b5f60408201905062000dd65f83018562000c8e565b62000de5602083018462000db0565b9392505050565b5f60208201905062000e015f83018462000db0565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e4d601f8362000e07565b915062000e5a8262000e17565b602082019050919050565b5f6020820190508181035f83015262000e7e8162000e3f565b9050919050565b5f62000e9182620009cb565b915062000e9e83620009cb565b925082820190508082111562000eb95762000eb862000cca565b5b92915050565b62000eca81620009cb565b82525050565b5f60208201905062000ee55f83018462000ebf565b92915050565b613ca98062000ef95f395ff3fe6080604052600436106101ba575f3560e01c806388e765ff116100eb578063d257b34f11610089578063dd62ed3e11610063578063dd62ed3e146105db578063e2f4560514610617578063eba4c33314610641578063f2fde38b14610669576101c1565b8063d257b34f14610561578063d85ba06314610589578063dc3f0d0f146105b3576101c1565b8063a457c2d7116100c5578063a457c2d714610497578063a9059cbb146104d3578063aa4bde281461050f578063c18bc19514610539576101c1565b806388e765ff146104195780638da5cb5b1461044357806395d89b411461046d576101c1565b8063395093511161015857806370a082311161013257806370a0823114610389578063715018a6146103c557806371fc4688146103db578063751039fc14610403576101c1565b806339509351146102f957806366d602ae146103355780636a486a8e1461035f576101c1565b806323b872dd1161019457806323b872dd146102555780632be32b61146102915780632f5f2572146102b9578063313ce567146102cf576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d9610691565b6040516101e69190612a2c565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190612add565b610721565b6040516102229190612b35565b60405180910390f35b348015610236575f80fd5b5061023f61073e565b60405161024c9190612b5d565b60405180910390f35b348015610260575f80fd5b5061027b60048036038101906102769190612b76565b610747565b6040516102889190612b35565b60405180910390f35b34801561029c575f80fd5b506102b760048036038101906102b29190612bc6565b610839565b005b3480156102c4575f80fd5b506102cd610a12565b005b3480156102da575f80fd5b506102e3610aca565b6040516102f09190612c0c565b60405180910390f35b348015610304575f80fd5b5061031f600480360381019061031a9190612add565b610ad2565b60405161032c9190612b35565b60405180910390f35b348015610340575f80fd5b50610349610b79565b6040516103569190612b5d565b60405180910390f35b34801561036a575f80fd5b50610373610b7f565b6040516103809190612b5d565b60405180910390f35b348015610394575f80fd5b506103af60048036038101906103aa9190612c25565b610b85565b6040516103bc9190612b5d565b60405180910390f35b3480156103d0575f80fd5b506103d9610bca565b005b3480156103e6575f80fd5b5061040160048036038101906103fc9190612bc6565b610d1d565b005b34801561040e575f80fd5b50610417610e0c565b005b348015610424575f80fd5b5061042d610eea565b60405161043a9190612b5d565b60405180910390f35b34801561044e575f80fd5b50610457610ef0565b6040516104649190612c5f565b60405180910390f35b348015610478575f80fd5b50610481610f18565b60405161048e9190612a2c565b60405180910390f35b3480156104a2575f80fd5b506104bd60048036038101906104b89190612add565b610fa8565b6040516104ca9190612b35565b60405180910390f35b3480156104de575f80fd5b506104f960048036038101906104f49190612add565b61108e565b6040516105069190612b35565b60405180910390f35b34801561051a575f80fd5b506105236110ab565b6040516105309190612b5d565b60405180910390f35b348015610544575f80fd5b5061055f600480360381019061055a9190612bc6565b6110b1565b005b34801561056c575f80fd5b5061058760048036038101906105829190612bc6565b61128a565b005b348015610594575f80fd5b5061059d611405565b6040516105aa9190612b5d565b60405180910390f35b3480156105be575f80fd5b506105d960048036038101906105d49190612bc6565b61140b565b005b3480156105e6575f80fd5b5061060160048036038101906105fc9190612c78565b6115e4565b60405161060e9190612b5d565b60405180910390f35b348015610622575f80fd5b5061062b611666565b6040516106389190612b5d565b60405180910390f35b34801561064c575f80fd5b5061066760048036038101906106629190612bc6565b61166c565b005b348015610674575f80fd5b5061068f600480360381019061068a9190612c25565b61175b565b005b6060600380546106a090612ce3565b80601f01602080910402602001604051908101604052809291908181526020018280546106cc90612ce3565b80156107175780601f106106ee57610100808354040283529160200191610717565b820191905f5260205f20905b8154815290600101906020018083116106fa57829003601f168201915b5050505050905090565b5f61073461072d61191d565b8484611924565b6001905092915050565b5f600254905090565b5f610753848484611ae7565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61079a61191d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081090612d83565b60405180910390fd5b61082d8561082561191d565b858403611924565b60019150509392505050565b61084161191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690612deb565b60405180910390fd5b670de0b6b3a76400006103e860016108e561073e565b6108ef9190612e36565b6108f99190612ea4565b6109039190612ea4565b811015610945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093c90612f44565b60405180910390fd5b670de0b6b3a76400006103e8606461095b61073e565b6109659190612e36565b61096f9190612ea4565b6109799190612ea4565b600654106109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b390612fd2565b60405180910390fd5b670de0b6b3a7640000816109d09190612e36565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610a079190612b5d565b60405180910390a150565b610a1a61191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90612deb565b60405180910390fd5b5f601081905550601054600f819055505f600e81905550600e54600d81905550565b5f6012905090565b5f610b6f610ade61191d565b848460015f610aeb61191d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b6a9190612ff0565b611924565b6001905092915050565b60075481565b600f5481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bd261191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612deb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d2561191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa90612deb565b60405180910390fd5b80600e81905550600e54600d819055506014600d541115610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e009061306d565b60405180910390fd5b50565b610e1461191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9990612deb565b60405180910390fd5b5f600c60146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60065481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f2790612ce3565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5390612ce3565b8015610f9e5780601f10610f7557610100808354040283529160200191610f9e565b820191905f5260205f20905b815481529060010190602001808311610f8157829003601f168201915b5050505050905090565b5f8060015f610fb561191d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561106f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611066906130fb565b60405180910390fd5b61108361107a61191d565b85858403611924565b600191505092915050565b5f6110a161109a61191d565b8484611ae7565b6001905092915050565b60085481565b6110b961191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90612deb565b60405180910390fd5b670de0b6b3a76400006103e8600161115d61073e565b6111679190612e36565b6111719190612ea4565b61117b9190612ea4565b8110156111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490613189565b60405180910390fd5b670de0b6b3a76400006103e860646111d361073e565b6111dd9190612e36565b6111e79190612ea4565b6111f19190612ea4565b60085410611234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122b90613217565b60405180910390fd5b670de0b6b3a7640000816112489190612e36565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc60085460405161127f9190612b5d565b60405180910390a150565b61129261191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131790612deb565b60405180910390fd5b620186a0600161132e61073e565b6113389190612e36565b6113429190612ea4565b811015611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b906132a5565b60405180910390fd5b670de0b6b3a76400006103e8606461139a61073e565b6113a49190612e36565b6113ae9190612ea4565b6113b89190612ea4565b600b54106113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290613333565b60405180910390fd5b80600b8190555050565b600d5481565b61141361191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149890612deb565b60405180910390fd5b670de0b6b3a76400006103e860016114b761073e565b6114c19190612e36565b6114cb9190612ea4565b6114d59190612ea4565b811015611517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150e906133c1565b60405180910390fd5b670de0b6b3a76400006103e8606461152d61073e565b6115379190612e36565b6115419190612ea4565b61154b9190612ea4565b6007541061158e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115859061344f565b60405180910390fd5b670de0b6b3a7640000816115a29190612e36565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e6007546040516115d99190612b5d565b60405180910390a150565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600b5481565b61167461191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612deb565b60405180910390fd5b80601081905550601054600f81905550601e600f541115611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f906134b7565b60405180910390fd5b50565b61176361191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890612deb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690613545565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611989906135d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f790613661565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ada9190612b5d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4c906136ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bba9061377d565b60405180910390fd5b5f8111611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfc906137e5565b60405180910390fd5b600c60149054906101000a900460ff161561208857611c22610ef0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c905750611c60610ef0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cc857505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d02575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d55575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611da8575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120875760145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e4a575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ef157600654811115611e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8b90613873565b60405180910390fd5b600854611ea083610b85565b82611eab9190612ff0565b1115611eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee3906138db565b60405180910390fd5b612086565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f8e575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fdd57600754811115611fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcf90613969565b60405180910390fd5b612085565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166120845760085461203783610b85565b826120429190612ff0565b1115612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a906138db565b60405180910390fd5b5b5b5b5b5b5f61209230610b85565b90505f600b5482101590508080156120b65750600c60159054906101000a900460ff165b80156120cf5750600a60149054906101000a900460ff16155b8015612122575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612175575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121c8575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561220b576001600a60146101000a81548160ff0219169083151502179055506121f0612419565b5f600a60146101000a81548160ff0219169083151502179055505b5f6001905060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122ab575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156122b4575f90505b5f81156124055760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561231257505f600f54115b15612350576064600f54866123279190612e36565b6123319190612ea4565b90508060115f8282546123449190612ff0565b925050819055506123e2565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156123a757505f600d54115b156123e1576064600d54866123bc9190612e36565b6123c69190612ea4565b90508060115f8282546123d99190612ff0565b925050819055505b5b5f8111156123f6576123f587308361250d565b5b80856124029190613987565b94505b61241087878761250d565b50505050505050565b5f61242330610b85565b90505f60115490505f82148061243857505f81145b1561244457505061250b565b6014600b546124539190612e36565b82111561246c576014600b546124699190612e36565b91505b5f6124768361276c565b5f601181905550600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516124c2906139e7565b5f6040518083038185875af1925050503d805f81146124fc576040519150601f19603f3d011682016040523d82523d5f602084013e612501565b606091505b5050809150505050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361257b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612572906136ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e09061377d565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561266c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266390613a6b565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546126fa9190612ff0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161275e9190612b5d565b60405180910390a350505050565b5f600267ffffffffffffffff81111561278857612787613a89565b5b6040519080825280602002602001820160405280156127b65781602001602082028036833780820191505090505b50905030815f815181106127cd576127cc613ab6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612871573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128959190613af7565b816001815181106128a9576128a8613ab6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061290f3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611924565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612971959493929190613c1b565b5f604051808303815f87803b158015612988575f80fd5b505af115801561299a573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129d95780820151818401526020810190506129be565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6129fe826129a2565b612a0881856129ac565b9350612a188185602086016129bc565b612a21816129e4565b840191505092915050565b5f6020820190508181035f830152612a4481846129f4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a7982612a50565b9050919050565b612a8981612a6f565b8114612a93575f80fd5b50565b5f81359050612aa481612a80565b92915050565b5f819050919050565b612abc81612aaa565b8114612ac6575f80fd5b50565b5f81359050612ad781612ab3565b92915050565b5f8060408385031215612af357612af2612a4c565b5b5f612b0085828601612a96565b9250506020612b1185828601612ac9565b9150509250929050565b5f8115159050919050565b612b2f81612b1b565b82525050565b5f602082019050612b485f830184612b26565b92915050565b612b5781612aaa565b82525050565b5f602082019050612b705f830184612b4e565b92915050565b5f805f60608486031215612b8d57612b8c612a4c565b5b5f612b9a86828701612a96565b9350506020612bab86828701612a96565b9250506040612bbc86828701612ac9565b9150509250925092565b5f60208284031215612bdb57612bda612a4c565b5b5f612be884828501612ac9565b91505092915050565b5f60ff82169050919050565b612c0681612bf1565b82525050565b5f602082019050612c1f5f830184612bfd565b92915050565b5f60208284031215612c3a57612c39612a4c565b5b5f612c4784828501612a96565b91505092915050565b612c5981612a6f565b82525050565b5f602082019050612c725f830184612c50565b92915050565b5f8060408385031215612c8e57612c8d612a4c565b5b5f612c9b85828601612a96565b9250506020612cac85828601612a96565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612cfa57607f821691505b602082108103612d0d57612d0c612cb6565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612d6d6028836129ac565b9150612d7882612d13565b604082019050919050565b5f6020820190508181035f830152612d9a81612d61565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612dd56020836129ac565b9150612de082612da1565b602082019050919050565b5f6020820190508181035f830152612e0281612dc9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e4082612aaa565b9150612e4b83612aaa565b9250828202612e5981612aaa565b91508282048414831517612e7057612e6f612e09565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612eae82612aaa565b9150612eb983612aaa565b925082612ec957612ec8612e77565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572205f8201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b5f612f2e6029836129ac565b9150612f3982612ed4565b604082019050919050565b5f6020820190508181035f830152612f5b81612f22565b9050919050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206869676865725f8201527f207468616e203130250000000000000000000000000000000000000000000000602082015250565b5f612fbc6029836129ac565b9150612fc782612f62565b604082019050919050565b5f6020820190508181035f830152612fe981612fb0565b9050919050565b5f612ffa82612aaa565b915061300583612aaa565b925082820190508082111561301d5761301c612e09565b5b92915050565b7f4d757374206b656570206665657320617420323025206f72206c6573730000005f82015250565b5f613057601d836129ac565b915061306282613023565b602082019050919050565b5f6020820190508181035f8301526130848161304b565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6130e56025836129ac565b91506130f08261308b565b604082019050919050565b5f6020820190508181035f830152613112816130d9565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f775f8201527f6572207468616e20302e31250000000000000000000000000000000000000000602082015250565b5f613173602c836129ac565b915061317e82613119565b604082019050919050565b5f6020820190508181035f8301526131a081613167565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206869675f8201527f686572207468616e203130250000000000000000000000000000000000000000602082015250565b5f613201602c836129ac565b915061320c826131a7565b604082019050919050565b5f6020820190508181035f83015261322e816131f5565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61328f6035836129ac565b915061329a82613235565b604082019050919050565b5f6020820190508181035f8301526132bc81613283565b9050919050565b7f43616e6e6f7420736574206d6178207377617020746f6b656e20616d6f756e745f8201527f20686967686572207468616e2031302500000000000000000000000000000000602082015250565b5f61331d6030836129ac565b9150613328826132c3565b604082019050919050565b5f6020820190508181035f83015261334a81613311565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f7765725f8201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b5f6133ab602a836129ac565b91506133b682613351565b604082019050919050565b5f6020820190508181035f8301526133d88161339f565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e742068696768655f8201527f72207468616e2031302500000000000000000000000000000000000000000000602082015250565b5f613439602a836129ac565b9150613444826133df565b604082019050919050565b5f6020820190508181035f8301526134668161342d565b9050919050565b7f4d757374206b656570206665657320617420333025206f72206c6573730000005f82015250565b5f6134a1601d836129ac565b91506134ac8261346d565b602082019050919050565b5f6020820190508181035f8301526134ce81613495565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61352f6026836129ac565b915061353a826134d5565b604082019050919050565b5f6020820190508181035f83015261355c81613523565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135bd6024836129ac565b91506135c882613563565b604082019050919050565b5f6020820190508181035f8301526135ea816135b1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61364b6022836129ac565b9150613656826135f1565b604082019050919050565b5f6020820190508181035f8301526136788161363f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136d96025836129ac565b91506136e48261367f565b604082019050919050565b5f6020820190508181035f830152613706816136cd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137676023836129ac565b91506137728261370d565b604082019050919050565b5f6020820190508181035f8301526137948161375b565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f6137cf601d836129ac565b91506137da8261379b565b602082019050919050565b5f6020820190508181035f8301526137fc816137c3565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b5f61385d6028836129ac565b915061386882613803565b604082019050919050565b5f6020820190508181035f83015261388a81613851565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c657400000000000000005f82015250565b5f6138c56018836129ac565b91506138d082613891565b602082019050919050565b5f6020820190508181035f8301526138f2816138b9565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b5f613953602a836129ac565b915061395e826138f9565b604082019050919050565b5f6020820190508181035f83015261398081613947565b9050919050565b5f61399182612aaa565b915061399c83612aaa565b92508282039050818111156139b4576139b3612e09565b5b92915050565b5f81905092915050565b50565b5f6139d25f836139ba565b91506139dd826139c4565b5f82019050919050565b5f6139f1826139c7565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613a556026836129ac565b9150613a60826139fb565b604082019050919050565b5f6020820190508181035f830152613a8281613a49565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613af181612a80565b92915050565b5f60208284031215613b0c57613b0b612a4c565b5b5f613b1984828501613ae3565b91505092915050565b5f819050919050565b5f819050919050565b5f613b4e613b49613b4484613b22565b613b2b565b612aaa565b9050919050565b613b5e81613b34565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613b9681612a6f565b82525050565b5f613ba78383613b8d565b60208301905092915050565b5f602082019050919050565b5f613bc982613b64565b613bd38185613b6e565b9350613bde83613b7e565b805f5b83811015613c0e578151613bf58882613b9c565b9750613c0083613bb3565b925050600181019050613be1565b5085935050505092915050565b5f60a082019050613c2e5f830188612b4e565b613c3b6020830187613b55565b8181036040830152613c4d8186613bbf565b9050613c5c6060830185612c50565b613c696080830184612b4e565b969550505050505056fea26469706673582212205156eb4f385667db0c9e18d0cbe02582e679a921e80b9b7440fc6bdf6aa7fbee64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101ba575f3560e01c806388e765ff116100eb578063d257b34f11610089578063dd62ed3e11610063578063dd62ed3e146105db578063e2f4560514610617578063eba4c33314610641578063f2fde38b14610669576101c1565b8063d257b34f14610561578063d85ba06314610589578063dc3f0d0f146105b3576101c1565b8063a457c2d7116100c5578063a457c2d714610497578063a9059cbb146104d3578063aa4bde281461050f578063c18bc19514610539576101c1565b806388e765ff146104195780638da5cb5b1461044357806395d89b411461046d576101c1565b8063395093511161015857806370a082311161013257806370a0823114610389578063715018a6146103c557806371fc4688146103db578063751039fc14610403576101c1565b806339509351146102f957806366d602ae146103355780636a486a8e1461035f576101c1565b806323b872dd1161019457806323b872dd146102555780632be32b61146102915780632f5f2572146102b9578063313ce567146102cf576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d9610691565b6040516101e69190612a2c565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190612add565b610721565b6040516102229190612b35565b60405180910390f35b348015610236575f80fd5b5061023f61073e565b60405161024c9190612b5d565b60405180910390f35b348015610260575f80fd5b5061027b60048036038101906102769190612b76565b610747565b6040516102889190612b35565b60405180910390f35b34801561029c575f80fd5b506102b760048036038101906102b29190612bc6565b610839565b005b3480156102c4575f80fd5b506102cd610a12565b005b3480156102da575f80fd5b506102e3610aca565b6040516102f09190612c0c565b60405180910390f35b348015610304575f80fd5b5061031f600480360381019061031a9190612add565b610ad2565b60405161032c9190612b35565b60405180910390f35b348015610340575f80fd5b50610349610b79565b6040516103569190612b5d565b60405180910390f35b34801561036a575f80fd5b50610373610b7f565b6040516103809190612b5d565b60405180910390f35b348015610394575f80fd5b506103af60048036038101906103aa9190612c25565b610b85565b6040516103bc9190612b5d565b60405180910390f35b3480156103d0575f80fd5b506103d9610bca565b005b3480156103e6575f80fd5b5061040160048036038101906103fc9190612bc6565b610d1d565b005b34801561040e575f80fd5b50610417610e0c565b005b348015610424575f80fd5b5061042d610eea565b60405161043a9190612b5d565b60405180910390f35b34801561044e575f80fd5b50610457610ef0565b6040516104649190612c5f565b60405180910390f35b348015610478575f80fd5b50610481610f18565b60405161048e9190612a2c565b60405180910390f35b3480156104a2575f80fd5b506104bd60048036038101906104b89190612add565b610fa8565b6040516104ca9190612b35565b60405180910390f35b3480156104de575f80fd5b506104f960048036038101906104f49190612add565b61108e565b6040516105069190612b35565b60405180910390f35b34801561051a575f80fd5b506105236110ab565b6040516105309190612b5d565b60405180910390f35b348015610544575f80fd5b5061055f600480360381019061055a9190612bc6565b6110b1565b005b34801561056c575f80fd5b5061058760048036038101906105829190612bc6565b61128a565b005b348015610594575f80fd5b5061059d611405565b6040516105aa9190612b5d565b60405180910390f35b3480156105be575f80fd5b506105d960048036038101906105d49190612bc6565b61140b565b005b3480156105e6575f80fd5b5061060160048036038101906105fc9190612c78565b6115e4565b60405161060e9190612b5d565b60405180910390f35b348015610622575f80fd5b5061062b611666565b6040516106389190612b5d565b60405180910390f35b34801561064c575f80fd5b5061066760048036038101906106629190612bc6565b61166c565b005b348015610674575f80fd5b5061068f600480360381019061068a9190612c25565b61175b565b005b6060600380546106a090612ce3565b80601f01602080910402602001604051908101604052809291908181526020018280546106cc90612ce3565b80156107175780601f106106ee57610100808354040283529160200191610717565b820191905f5260205f20905b8154815290600101906020018083116106fa57829003601f168201915b5050505050905090565b5f61073461072d61191d565b8484611924565b6001905092915050565b5f600254905090565b5f610753848484611ae7565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61079a61191d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081090612d83565b60405180910390fd5b61082d8561082561191d565b858403611924565b60019150509392505050565b61084161191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690612deb565b60405180910390fd5b670de0b6b3a76400006103e860016108e561073e565b6108ef9190612e36565b6108f99190612ea4565b6109039190612ea4565b811015610945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093c90612f44565b60405180910390fd5b670de0b6b3a76400006103e8606461095b61073e565b6109659190612e36565b61096f9190612ea4565b6109799190612ea4565b600654106109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b390612fd2565b60405180910390fd5b670de0b6b3a7640000816109d09190612e36565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610a079190612b5d565b60405180910390a150565b610a1a61191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90612deb565b60405180910390fd5b5f601081905550601054600f819055505f600e81905550600e54600d81905550565b5f6012905090565b5f610b6f610ade61191d565b848460015f610aeb61191d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b6a9190612ff0565b611924565b6001905092915050565b60075481565b600f5481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bd261191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612deb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d2561191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa90612deb565b60405180910390fd5b80600e81905550600e54600d819055506014600d541115610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e009061306d565b60405180910390fd5b50565b610e1461191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9990612deb565b60405180910390fd5b5f600c60146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60065481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f2790612ce3565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5390612ce3565b8015610f9e5780601f10610f7557610100808354040283529160200191610f9e565b820191905f5260205f20905b815481529060010190602001808311610f8157829003601f168201915b5050505050905090565b5f8060015f610fb561191d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561106f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611066906130fb565b60405180910390fd5b61108361107a61191d565b85858403611924565b600191505092915050565b5f6110a161109a61191d565b8484611ae7565b6001905092915050565b60085481565b6110b961191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90612deb565b60405180910390fd5b670de0b6b3a76400006103e8600161115d61073e565b6111679190612e36565b6111719190612ea4565b61117b9190612ea4565b8110156111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490613189565b60405180910390fd5b670de0b6b3a76400006103e860646111d361073e565b6111dd9190612e36565b6111e79190612ea4565b6111f19190612ea4565b60085410611234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122b90613217565b60405180910390fd5b670de0b6b3a7640000816112489190612e36565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc60085460405161127f9190612b5d565b60405180910390a150565b61129261191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131790612deb565b60405180910390fd5b620186a0600161132e61073e565b6113389190612e36565b6113429190612ea4565b811015611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b906132a5565b60405180910390fd5b670de0b6b3a76400006103e8606461139a61073e565b6113a49190612e36565b6113ae9190612ea4565b6113b89190612ea4565b600b54106113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290613333565b60405180910390fd5b80600b8190555050565b600d5481565b61141361191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149890612deb565b60405180910390fd5b670de0b6b3a76400006103e860016114b761073e565b6114c19190612e36565b6114cb9190612ea4565b6114d59190612ea4565b811015611517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150e906133c1565b60405180910390fd5b670de0b6b3a76400006103e8606461152d61073e565b6115379190612e36565b6115419190612ea4565b61154b9190612ea4565b6007541061158e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115859061344f565b60405180910390fd5b670de0b6b3a7640000816115a29190612e36565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e6007546040516115d99190612b5d565b60405180910390a150565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600b5481565b61167461191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612deb565b60405180910390fd5b80601081905550601054600f81905550601e600f541115611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f906134b7565b60405180910390fd5b50565b61176361191d565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890612deb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690613545565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611989906135d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f790613661565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ada9190612b5d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4c906136ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bba9061377d565b60405180910390fd5b5f8111611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfc906137e5565b60405180910390fd5b600c60149054906101000a900460ff161561208857611c22610ef0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c905750611c60610ef0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cc857505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d02575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d55575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611da8575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120875760145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e4a575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ef157600654811115611e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8b90613873565b60405180910390fd5b600854611ea083610b85565b82611eab9190612ff0565b1115611eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee3906138db565b60405180910390fd5b612086565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f8e575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fdd57600754811115611fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcf90613969565b60405180910390fd5b612085565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166120845760085461203783610b85565b826120429190612ff0565b1115612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a906138db565b60405180910390fd5b5b5b5b5b5b5f61209230610b85565b90505f600b5482101590508080156120b65750600c60159054906101000a900460ff165b80156120cf5750600a60149054906101000a900460ff16155b8015612122575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612175575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121c8575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561220b576001600a60146101000a81548160ff0219169083151502179055506121f0612419565b5f600a60146101000a81548160ff0219169083151502179055505b5f6001905060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122ab575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156122b4575f90505b5f81156124055760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561231257505f600f54115b15612350576064600f54866123279190612e36565b6123319190612ea4565b90508060115f8282546123449190612ff0565b925050819055506123e2565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156123a757505f600d54115b156123e1576064600d54866123bc9190612e36565b6123c69190612ea4565b90508060115f8282546123d99190612ff0565b925050819055505b5b5f8111156123f6576123f587308361250d565b5b80856124029190613987565b94505b61241087878761250d565b50505050505050565b5f61242330610b85565b90505f60115490505f82148061243857505f81145b1561244457505061250b565b6014600b546124539190612e36565b82111561246c576014600b546124699190612e36565b91505b5f6124768361276c565b5f601181905550600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516124c2906139e7565b5f6040518083038185875af1925050503d805f81146124fc576040519150601f19603f3d011682016040523d82523d5f602084013e612501565b606091505b5050809150505050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361257b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612572906136ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e09061377d565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561266c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266390613a6b565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546126fa9190612ff0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161275e9190612b5d565b60405180910390a350505050565b5f600267ffffffffffffffff81111561278857612787613a89565b5b6040519080825280602002602001820160405280156127b65781602001602082028036833780820191505090505b50905030815f815181106127cd576127cc613ab6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612871573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128959190613af7565b816001815181106128a9576128a8613ab6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061290f3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611924565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612971959493929190613c1b565b5f604051808303815f87803b158015612988575f80fd5b505af115801561299a573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129d95780820151818401526020810190506129be565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6129fe826129a2565b612a0881856129ac565b9350612a188185602086016129bc565b612a21816129e4565b840191505092915050565b5f6020820190508181035f830152612a4481846129f4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a7982612a50565b9050919050565b612a8981612a6f565b8114612a93575f80fd5b50565b5f81359050612aa481612a80565b92915050565b5f819050919050565b612abc81612aaa565b8114612ac6575f80fd5b50565b5f81359050612ad781612ab3565b92915050565b5f8060408385031215612af357612af2612a4c565b5b5f612b0085828601612a96565b9250506020612b1185828601612ac9565b9150509250929050565b5f8115159050919050565b612b2f81612b1b565b82525050565b5f602082019050612b485f830184612b26565b92915050565b612b5781612aaa565b82525050565b5f602082019050612b705f830184612b4e565b92915050565b5f805f60608486031215612b8d57612b8c612a4c565b5b5f612b9a86828701612a96565b9350506020612bab86828701612a96565b9250506040612bbc86828701612ac9565b9150509250925092565b5f60208284031215612bdb57612bda612a4c565b5b5f612be884828501612ac9565b91505092915050565b5f60ff82169050919050565b612c0681612bf1565b82525050565b5f602082019050612c1f5f830184612bfd565b92915050565b5f60208284031215612c3a57612c39612a4c565b5b5f612c4784828501612a96565b91505092915050565b612c5981612a6f565b82525050565b5f602082019050612c725f830184612c50565b92915050565b5f8060408385031215612c8e57612c8d612a4c565b5b5f612c9b85828601612a96565b9250506020612cac85828601612a96565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612cfa57607f821691505b602082108103612d0d57612d0c612cb6565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612d6d6028836129ac565b9150612d7882612d13565b604082019050919050565b5f6020820190508181035f830152612d9a81612d61565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612dd56020836129ac565b9150612de082612da1565b602082019050919050565b5f6020820190508181035f830152612e0281612dc9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e4082612aaa565b9150612e4b83612aaa565b9250828202612e5981612aaa565b91508282048414831517612e7057612e6f612e09565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612eae82612aaa565b9150612eb983612aaa565b925082612ec957612ec8612e77565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572205f8201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b5f612f2e6029836129ac565b9150612f3982612ed4565b604082019050919050565b5f6020820190508181035f830152612f5b81612f22565b9050919050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206869676865725f8201527f207468616e203130250000000000000000000000000000000000000000000000602082015250565b5f612fbc6029836129ac565b9150612fc782612f62565b604082019050919050565b5f6020820190508181035f830152612fe981612fb0565b9050919050565b5f612ffa82612aaa565b915061300583612aaa565b925082820190508082111561301d5761301c612e09565b5b92915050565b7f4d757374206b656570206665657320617420323025206f72206c6573730000005f82015250565b5f613057601d836129ac565b915061306282613023565b602082019050919050565b5f6020820190508181035f8301526130848161304b565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6130e56025836129ac565b91506130f08261308b565b604082019050919050565b5f6020820190508181035f830152613112816130d9565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f775f8201527f6572207468616e20302e31250000000000000000000000000000000000000000602082015250565b5f613173602c836129ac565b915061317e82613119565b604082019050919050565b5f6020820190508181035f8301526131a081613167565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206869675f8201527f686572207468616e203130250000000000000000000000000000000000000000602082015250565b5f613201602c836129ac565b915061320c826131a7565b604082019050919050565b5f6020820190508181035f83015261322e816131f5565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61328f6035836129ac565b915061329a82613235565b604082019050919050565b5f6020820190508181035f8301526132bc81613283565b9050919050565b7f43616e6e6f7420736574206d6178207377617020746f6b656e20616d6f756e745f8201527f20686967686572207468616e2031302500000000000000000000000000000000602082015250565b5f61331d6030836129ac565b9150613328826132c3565b604082019050919050565b5f6020820190508181035f83015261334a81613311565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f7765725f8201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b5f6133ab602a836129ac565b91506133b682613351565b604082019050919050565b5f6020820190508181035f8301526133d88161339f565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e742068696768655f8201527f72207468616e2031302500000000000000000000000000000000000000000000602082015250565b5f613439602a836129ac565b9150613444826133df565b604082019050919050565b5f6020820190508181035f8301526134668161342d565b9050919050565b7f4d757374206b656570206665657320617420333025206f72206c6573730000005f82015250565b5f6134a1601d836129ac565b91506134ac8261346d565b602082019050919050565b5f6020820190508181035f8301526134ce81613495565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61352f6026836129ac565b915061353a826134d5565b604082019050919050565b5f6020820190508181035f83015261355c81613523565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135bd6024836129ac565b91506135c882613563565b604082019050919050565b5f6020820190508181035f8301526135ea816135b1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61364b6022836129ac565b9150613656826135f1565b604082019050919050565b5f6020820190508181035f8301526136788161363f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136d96025836129ac565b91506136e48261367f565b604082019050919050565b5f6020820190508181035f830152613706816136cd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137676023836129ac565b91506137728261370d565b604082019050919050565b5f6020820190508181035f8301526137948161375b565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f6137cf601d836129ac565b91506137da8261379b565b602082019050919050565b5f6020820190508181035f8301526137fc816137c3565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b5f61385d6028836129ac565b915061386882613803565b604082019050919050565b5f6020820190508181035f83015261388a81613851565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c657400000000000000005f82015250565b5f6138c56018836129ac565b91506138d082613891565b602082019050919050565b5f6020820190508181035f8301526138f2816138b9565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b5f613953602a836129ac565b915061395e826138f9565b604082019050919050565b5f6020820190508181035f83015261398081613947565b9050919050565b5f61399182612aaa565b915061399c83612aaa565b92508282039050818111156139b4576139b3612e09565b5b92915050565b5f81905092915050565b50565b5f6139d25f836139ba565b91506139dd826139c4565b5f82019050919050565b5f6139f1826139c7565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613a556026836129ac565b9150613a60826139fb565b604082019050919050565b5f6020820190508181035f830152613a8281613a49565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613af181612a80565b92915050565b5f60208284031215613b0c57613b0b612a4c565b5b5f613b1984828501613ae3565b91505092915050565b5f819050919050565b5f819050919050565b5f613b4e613b49613b4484613b22565b613b2b565b612aaa565b9050919050565b613b5e81613b34565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613b9681612a6f565b82525050565b5f613ba78383613b8d565b60208301905092915050565b5f602082019050919050565b5f613bc982613b64565b613bd38185613b6e565b9350613bde83613b7e565b805f5b83811015613c0e578151613bf58882613b9c565b9750613c0083613bb3565b925050600181019050613be1565b5085935050505092915050565b5f60a082019050613c2e5f830188612b4e565b613c3b6020830187613b55565b8181036040830152613c4d8186613bbf565b9050613c5c6060830185612c50565b613c696080830184612b4e565b969550505050505056fea26469706673582212205156eb4f385667db0c9e18d0cbe02582e679a921e80b9b7440fc6bdf6aa7fbee64736f6c63430008140033

Deployed Bytecode Sourcemap

10661:10951:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4548:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5462:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4869:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5639:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14013:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16903:197;;;;;;;;;;;;;:::i;:::-;;4768:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6139:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10747:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11149;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4985:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9183:150;;;;;;;;;;;;;:::i;:::-;;16420:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13888:115;;;;;;;;;;;;;:::i;:::-;;10713:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8969:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4656:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6362:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5120:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10782:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14810:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15293:362;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11074:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14403:399;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5303:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10915:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16659:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9341:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4548:100;4602:13;4635:5;4628:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4548:100;:::o;5462:169::-;5545:4;5562:39;5571:12;:10;:12::i;:::-;5585:7;5594:6;5562:8;:39::i;:::-;5619:4;5612:11;;5462:169;;;;:::o;4869:108::-;4930:7;4957:12;;4950:19;;4869:108;:::o;5639:492::-;5779:4;5796:36;5806:6;5814:9;5825:6;5796:9;:36::i;:::-;5845:24;5872:11;:19;5884:6;5872:19;;;;;;;;;;;;;;;:33;5892:12;:10;:12::i;:::-;5872:33;;;;;;;;;;;;;;;;5845:60;;5944:6;5924:16;:26;;5916:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6031:57;6040:6;6048:12;:10;:12::i;:::-;6081:6;6062:16;:25;6031:8;:57::i;:::-;6119:4;6112:11;;;5639:492;;;;;:::o;14013:382::-;9106:12;:10;:12::i;:::-;9096:22;;:6;;;;;;;;;;;:22;;;9088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14132:4:::1;14126;14122:1;14106:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;14105:31;;;;:::i;:::-;14095:6;:41;;14087:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;14245:4;14239;14233:3;14217:13;:11;:13::i;:::-;:19;;;;:::i;:::-;:26;;;;:::i;:::-;14216:33;;;;:::i;:::-;14201:12;;:48;14193:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;14331:6;14321;:17;;;;:::i;:::-;14306:12;:32;;;;14354:33;14374:12;;14354:33;;;;;;:::i;:::-;;;;;;;;14013:382:::0;:::o;16903:197::-;9106:12;:10;:12::i;:::-;9096:22;;:6;;;;;;;;;;;:22;;;9088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16974:1:::1;16954:17;:21;;;;17002:17;;16986:13;:33;;;;17049:1;17030:16;:20;;;;17076:16;;17061:12;:31;;;;16903:197::o:0;4768:93::-;4826:5;4851:2;4844:9;;4768:93;:::o;6139:215::-;6227:4;6244:80;6253:12;:10;:12::i;:::-;6267:7;6313:10;6276:11;:25;6288:12;:10;:12::i;:::-;6276:25;;;;;;;;;;;;;;;:34;6302:7;6276:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6244:8;:80::i;:::-;6342:4;6335:11;;6139:215;;;;:::o;10747:28::-;;;;:::o;11149:::-;;;;:::o;4985:127::-;5059:7;5086:9;:18;5096:7;5086:18;;;;;;;;;;;;;;;;5079:25;;4985:127;;;:::o;9183:150::-;9106:12;:10;:12::i;:::-;9096:22;;:6;;;;;;;;;;;:22;;;9088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9292:1:::1;9255:40;;9276:6;;;;;;;;;;;9255:40;;;;;;;;;;;;9323:1;9306:6;;:19;;;;;;;;;;;;;;;;;;9183:150::o:0;16420:231::-;9106:12;:10;:12::i;:::-;9096:22;;:6;;;;;;;;;;;:22;;;9088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16516:14:::1;16497:16;:33;;;;16556:16;;16541:12;:31;;;;16607:2;16591:12;;:18;;16583:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16420:231:::0;:::o;13888:115::-;9106:12;:10;:12::i;:::-;9096:22;;:6;;;;;;;;;;;:22;;;9088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13959:5:::1;13942:14;;:22;;;;;;;;;;;;;;;;;;13980:15;;;;;;;;;;13888:115::o:0;10713:27::-;;;;:::o;8969:79::-;9007:7;9034:6;;;;;;;;;;;9027:13;;8969:79;:::o;4656:104::-;4712:13;4745:7;4738:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4656:104;:::o;6362:413::-;6455:4;6472:24;6499:11;:25;6511:12;:10;:12::i;:::-;6499:25;;;;;;;;;;;;;;;:34;6525:7;6499:34;;;;;;;;;;;;;;;;6472:61;;6572:15;6552:16;:35;;6544:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6665:67;6674:12;:10;:12::i;:::-;6688:7;6716:15;6697:16;:34;6665:8;:67::i;:::-;6763:4;6756:11;;;6362:413;;;;:::o;5120:175::-;5206:4;5223:42;5233:12;:10;:12::i;:::-;5247:9;5258:6;5223:9;:42::i;:::-;5283:4;5276:11;;5120:175;;;;:::o;10782:30::-;;;;:::o;14810:413::-;9106:12;:10;:12::i;:::-;9096:22;;:6;;;;;;;;;;;:22;;;9088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14932:4:::1;14926;14922:1;14906:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;14905:31;;;;:::i;:::-;14895:6;:41;;14887:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;15059:4;15053;15047:3;15031:13;:11;:13::i;:::-;:19;;;;:::i;:::-;:26;;;;:::i;:::-;15030:33;;;;:::i;:::-;15012:15;;:51;15004:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;15153:6;15143;:17;;;;:::i;:::-;15125:15;:35;;;;15176:39;15199:15;;15176:39;;;;;;:::i;:::-;;;;;;;;14810:413:::0;:::o;15293:362::-;9106:12;:10;:12::i;:::-;9096:22;;:6;;;;;;;;;;;:22;;;9088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15416:6:::1;15412:1;15396:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;15383:9;:39;;15375:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;15551:4;15545;15539:3;15523:13;:11;:13::i;:::-;:19;;;;:::i;:::-;:26;;;;:::i;:::-;15522:33;;;;:::i;:::-;15501:18;;:54;15493:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;15639:9;15618:18;:30;;;;15293:362:::0;:::o;11074:27::-;;;;:::o;14403:399::-;9106:12;:10;:12::i;:::-;9096:22;;:6;;;;;;;;;;;:22;;;9088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14523:4:::1;14517;14513:1;14497:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;14496:31;;;;:::i;:::-;14486:6;:41;;14478:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;14646:4;14640;14634:3;14618:13;:11;:13::i;:::-;:19;;;;:::i;:::-;:26;;;;:::i;:::-;14617:33;;;;:::i;:::-;14601:13;;:49;14593:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;14736:6;14726;:17;;;;:::i;:::-;14710:13;:33;;;;14759:35;14780:13;;14759:35;;;;;;:::i;:::-;;;;;;;;14403:399:::0;:::o;5303:151::-;5392:7;5419:11;:18;5431:5;5419:18;;;;;;;;;;;;;;;:27;5438:7;5419:27;;;;;;;;;;;;;;;;5412:34;;5303:151;;;;:::o;10915:33::-;;;;:::o;16659:236::-;9106:12;:10;:12::i;:::-;9096:22;;:6;;;;;;;;;;;:22;;;9088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16757:14:::1;16737:17;:34;;;;16798:17;;16782:13;:33;;;;16851:2;16834:13;;:19;;16826:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16659:236:::0;:::o;9341:246::-;9106:12;:10;:12::i;:::-;9096:22;;:6;;;;;;;;;;;:22;;;9088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9452:1:::1;9432:22;;:8;:22;;::::0;9424:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9542:8;9513:38;;9534:6;;;;;;;;;;;9513:38;;;;;;;;;;;;9571:8;9562:6;;:17;;;;;;;;;;;;;;;;;;9341:246:::0;:::o;697:98::-;750:7;777:10;770:17;;697:98;:::o;8262:380::-;8415:1;8398:19;;:5;:19;;;8390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8496:1;8477:21;;:7;:21;;;8469:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8580:6;8550:11;:18;8562:5;8550:18;;;;;;;;;;;;;;;:27;8569:7;8550:27;;;;;;;;;;;;;;;:36;;;;8618:7;8602:32;;8611:5;8602:32;;;8627:6;8602:32;;;;;;:::i;:::-;;;;;;;;8262:380;;;:::o;17289:2659::-;17405:1;17389:18;;:4;:18;;;17381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17482:1;17468:16;;:2;:16;;;17460:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17552:1;17543:6;:10;17535:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;17603:14;;;;;;;;;;;17600:991;;;17645:7;:5;:7::i;:::-;17637:15;;:4;:15;;;;:32;;;;;17662:7;:5;:7::i;:::-;17656:13;;:2;:13;;;;17637:32;:52;;;;;17687:1;17673:16;;:2;:16;;;;17637:52;:77;;;;;17707:6;17693:21;;:2;:21;;;;17637:77;:107;;;;;17719:19;:25;17739:4;17719:25;;;;;;;;;;;;;;;;;;;;;;;;;17718:26;17637:107;:135;;;;;17749:19;:23;17769:2;17749:23;;;;;;;;;;;;;;;;;;;;;;;;;17748:24;17637:135;17633:947;;;17826:25;:31;17852:4;17826:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;17862:31;:35;17894:2;17862:35;;;;;;;;;;;;;;;;;;;;;;;;;17861:36;17826:71;17822:743;;;17944:12;;17934:6;:22;;17926:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;18062:15;;18045:13;18055:2;18045:9;:13::i;:::-;18036:6;:22;;;;:::i;:::-;:41;;18028:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;17822:743;;;18182:25;:29;18208:2;18182:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;18216:31;:37;18248:4;18216:37;;;;;;;;;;;;;;;;;;;;;;;;;18215:38;18182:71;18178:387;;;18300:13;;18290:6;:23;;18282:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;18178:387;;;18408:31;:35;18440:2;18408:35;;;;;;;;;;;;;;;;;;;;;;;;;18403:162;;18501:15;;18484:13;18494:2;18484:9;:13::i;:::-;18475:6;:22;;;;:::i;:::-;:41;;18467:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;18403:162;18178:387;17822:743;17633:947;17600:991;18603:28;18634:24;18652:4;18634:9;:24::i;:::-;18603:55;;18671:12;18710:18;;18686:20;:42;;18671:57;;18744:7;:22;;;;;18755:11;;;;;;;;;;;18744:22;:35;;;;;18771:8;;;;;;;;;;;18770:9;18744:35;:71;;;;;18784:25;:31;18810:4;18784:31;;;;;;;;;;;;;;;;;;;;;;;;;18783:32;18744:71;:101;;;;;18820:19;:25;18840:4;18820:25;;;;;;;;;;;;;;;;;;;;;;;;;18819:26;18744:101;:129;;;;;18850:19;:23;18870:2;18850:23;;;;;;;;;;;;;;;;;;;;;;;;;18849:24;18744:129;18741:236;;;18901:4;18890:8;;:15;;;;;;;;;;;;;;;;;;18922:10;:8;:10::i;:::-;18960:5;18949:8;;:16;;;;;;;;;;;;;;;;;;18741:236;18989:12;19004:4;18989:19;;19107;:25;19127:4;19107:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19136:19;:23;19156:2;19136:23;;;;;;;;;;;;;;;;;;;;;;;;;19107:52;19104:99;;;19186:5;19176:15;;19104:99;19215:12;19319:7;19316:579;;;19372:25;:29;19398:2;19372:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;19421:1;19405:13;;:17;19372:50;19368:383;;;19474:3;19458:13;;19449:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;19442:35;;19519:4;19496:19;;:27;;;;;;;:::i;:::-;;;;;;;;19368:383;;;19586:25;:31;19612:4;19586:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;19636:1;19621:12;;:16;19586:51;19583:168;;;19686:3;19671:12;;19662:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;19655:34;;19731:4;19708:19;;:27;;;;;;;:::i;:::-;;;;;;;;19583:168;19368:383;19777:1;19770:4;:8;19767:89;;;19798:42;19814:4;19828;19835;19798:15;:42::i;:::-;19767:89;19879:4;19869:14;;;;;:::i;:::-;;;19316:579;19907:33;19923:4;19929:2;19933:6;19907:15;:33::i;:::-;17368:2580;;;;17289:2659;;;:::o;21054:553::-;21101:23;21127:24;21145:4;21127:9;:24::i;:::-;21101:50;;21162:25;21190:19;;21162:47;;21245:1;21226:15;:20;:46;;;;21271:1;21250:17;:22;21226:46;21223:60;;;21275:7;;;;21223:60;21337:2;21316:18;;:23;;;;:::i;:::-;21298:15;:41;21295:113;;;21394:2;21373:18;;:23;;;;:::i;:::-;21355:41;;21295:113;21420:12;21443:33;21460:15;21443:16;:33::i;:::-;21509:1;21487:19;:23;;;;21542:17;;;;;;;;;;;21534:31;;21573:21;21534:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21521:78;;;;;21082:525;;;21054:553;:::o;6783:614::-;6941:1;6923:20;;:6;:20;;;6915:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7025:1;7004:23;;:9;:23;;;6996:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7080:21;7104:9;:17;7114:6;7104:17;;;;;;;;;;;;;;;;7080:41;;7157:6;7140:13;:23;;7132:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7278:6;7262:13;:22;7242:9;:17;7252:6;7242:17;;;;;;;;;;;;;;;:42;;;;7330:6;7306:9;:20;7316:9;7306:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7371:9;7354:35;;7363:6;7354:35;;;7382:6;7354:35;;;;;;:::i;:::-;;;;;;;;6904:493;6783:614;;;:::o;19956:573::-;20084:21;20122:1;20108:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20084:40;;20153:4;20135;20140:1;20135:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20179:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20169:4;20174:1;20169:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;20208:56;20225:4;20240:9;;;;;;;;;;;20252:11;20208:8;:56::i;:::-;20303:9;;;;;;;;;;;:60;;;20378:11;20404:1;20448:4;20475;20495:15;20303:218;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20011:518;19956:573;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:320;6585:6;6622:1;6616:4;6612:12;6602:22;;6669:1;6663:4;6659:12;6690:18;6680:81;;6746:4;6738:6;6734:17;6724:27;;6680:81;6808:2;6800:6;6797:14;6777:18;6774:38;6771:84;;6827:18;;:::i;:::-;6771:84;6592:269;6541:320;;;:::o;6867:227::-;7007:34;7003:1;6995:6;6991:14;6984:58;7076:10;7071:2;7063:6;7059:15;7052:35;6867:227;:::o;7100:366::-;7242:3;7263:67;7327:2;7322:3;7263:67;:::i;:::-;7256:74;;7339:93;7428:3;7339:93;:::i;:::-;7457:2;7452:3;7448:12;7441:19;;7100:366;;;:::o;7472:419::-;7638:4;7676:2;7665:9;7661:18;7653:26;;7725:9;7719:4;7715:20;7711:1;7700:9;7696:17;7689:47;7753:131;7879:4;7753:131;:::i;:::-;7745:139;;7472:419;;;:::o;7897:182::-;8037:34;8033:1;8025:6;8021:14;8014:58;7897:182;:::o;8085:366::-;8227:3;8248:67;8312:2;8307:3;8248:67;:::i;:::-;8241:74;;8324:93;8413:3;8324:93;:::i;:::-;8442:2;8437:3;8433:12;8426:19;;8085:366;;;:::o;8457:419::-;8623:4;8661:2;8650:9;8646:18;8638:26;;8710:9;8704:4;8700:20;8696:1;8685:9;8681:17;8674:47;8738:131;8864:4;8738:131;:::i;:::-;8730:139;;8457:419;;;:::o;8882:180::-;8930:77;8927:1;8920:88;9027:4;9024:1;9017:15;9051:4;9048:1;9041:15;9068:410;9108:7;9131:20;9149:1;9131:20;:::i;:::-;9126:25;;9165:20;9183:1;9165:20;:::i;:::-;9160:25;;9220:1;9217;9213:9;9242:30;9260:11;9242:30;:::i;:::-;9231:41;;9421:1;9412:7;9408:15;9405:1;9402:22;9382:1;9375:9;9355:83;9332:139;;9451:18;;:::i;:::-;9332:139;9116:362;9068:410;;;;:::o;9484:180::-;9532:77;9529:1;9522:88;9629:4;9626:1;9619:15;9653:4;9650:1;9643:15;9670:185;9710:1;9727:20;9745:1;9727:20;:::i;:::-;9722:25;;9761:20;9779:1;9761:20;:::i;:::-;9756:25;;9800:1;9790:35;;9805:18;;:::i;:::-;9790:35;9847:1;9844;9840:9;9835:14;;9670:185;;;;:::o;9861:228::-;10001:34;9997:1;9989:6;9985:14;9978:58;10070:11;10065:2;10057:6;10053:15;10046:36;9861:228;:::o;10095:366::-;10237:3;10258:67;10322:2;10317:3;10258:67;:::i;:::-;10251:74;;10334:93;10423:3;10334:93;:::i;:::-;10452:2;10447:3;10443:12;10436:19;;10095:366;;;:::o;10467:419::-;10633:4;10671:2;10660:9;10656:18;10648:26;;10720:9;10714:4;10710:20;10706:1;10695:9;10691:17;10684:47;10748:131;10874:4;10748:131;:::i;:::-;10740:139;;10467:419;;;:::o;10892:228::-;11032:34;11028:1;11020:6;11016:14;11009:58;11101:11;11096:2;11088:6;11084:15;11077:36;10892:228;:::o;11126:366::-;11268:3;11289:67;11353:2;11348:3;11289:67;:::i;:::-;11282:74;;11365:93;11454:3;11365:93;:::i;:::-;11483:2;11478:3;11474:12;11467:19;;11126:366;;;:::o;11498:419::-;11664:4;11702:2;11691:9;11687:18;11679:26;;11751:9;11745:4;11741:20;11737:1;11726:9;11722:17;11715:47;11779:131;11905:4;11779:131;:::i;:::-;11771:139;;11498:419;;;:::o;11923:191::-;11963:3;11982:20;12000:1;11982:20;:::i;:::-;11977:25;;12016:20;12034:1;12016:20;:::i;:::-;12011:25;;12059:1;12056;12052:9;12045:16;;12080:3;12077:1;12074:10;12071:36;;;12087:18;;:::i;:::-;12071:36;11923:191;;;;:::o;12120:179::-;12260:31;12256:1;12248:6;12244:14;12237:55;12120:179;:::o;12305:366::-;12447:3;12468:67;12532:2;12527:3;12468:67;:::i;:::-;12461:74;;12544:93;12633:3;12544:93;:::i;:::-;12662:2;12657:3;12653:12;12646:19;;12305:366;;;:::o;12677:419::-;12843:4;12881:2;12870:9;12866:18;12858:26;;12930:9;12924:4;12920:20;12916:1;12905:9;12901:17;12894:47;12958:131;13084:4;12958:131;:::i;:::-;12950:139;;12677:419;;;:::o;13102:224::-;13242:34;13238:1;13230:6;13226:14;13219:58;13311:7;13306:2;13298:6;13294:15;13287:32;13102:224;:::o;13332:366::-;13474:3;13495:67;13559:2;13554:3;13495:67;:::i;:::-;13488:74;;13571:93;13660:3;13571:93;:::i;:::-;13689:2;13684:3;13680:12;13673:19;;13332:366;;;:::o;13704:419::-;13870:4;13908:2;13897:9;13893:18;13885:26;;13957:9;13951:4;13947:20;13943:1;13932:9;13928:17;13921:47;13985:131;14111:4;13985:131;:::i;:::-;13977:139;;13704:419;;;:::o;14129:231::-;14269:34;14265:1;14257:6;14253:14;14246:58;14338:14;14333:2;14325:6;14321:15;14314:39;14129:231;:::o;14366:366::-;14508:3;14529:67;14593:2;14588:3;14529:67;:::i;:::-;14522:74;;14605:93;14694:3;14605:93;:::i;:::-;14723:2;14718:3;14714:12;14707:19;;14366:366;;;:::o;14738:419::-;14904:4;14942:2;14931:9;14927:18;14919:26;;14991:9;14985:4;14981:20;14977:1;14966:9;14962:17;14955:47;15019:131;15145:4;15019:131;:::i;:::-;15011:139;;14738:419;;;:::o;15163:231::-;15303:34;15299:1;15291:6;15287:14;15280:58;15372:14;15367:2;15359:6;15355:15;15348:39;15163:231;:::o;15400:366::-;15542:3;15563:67;15627:2;15622:3;15563:67;:::i;:::-;15556:74;;15639:93;15728:3;15639:93;:::i;:::-;15757:2;15752:3;15748:12;15741:19;;15400:366;;;:::o;15772:419::-;15938:4;15976:2;15965:9;15961:18;15953:26;;16025:9;16019:4;16015:20;16011:1;16000:9;15996:17;15989:47;16053:131;16179:4;16053:131;:::i;:::-;16045:139;;15772:419;;;:::o;16197:240::-;16337:34;16333:1;16325:6;16321:14;16314:58;16406:23;16401:2;16393:6;16389:15;16382:48;16197:240;:::o;16443:366::-;16585:3;16606:67;16670:2;16665:3;16606:67;:::i;:::-;16599:74;;16682:93;16771:3;16682:93;:::i;:::-;16800:2;16795:3;16791:12;16784:19;;16443:366;;;:::o;16815:419::-;16981:4;17019:2;17008:9;17004:18;16996:26;;17068:9;17062:4;17058:20;17054:1;17043:9;17039:17;17032:47;17096:131;17222:4;17096:131;:::i;:::-;17088:139;;16815:419;;;:::o;17240:235::-;17380:34;17376:1;17368:6;17364:14;17357:58;17449:18;17444:2;17436:6;17432:15;17425:43;17240:235;:::o;17481:366::-;17623:3;17644:67;17708:2;17703:3;17644:67;:::i;:::-;17637:74;;17720:93;17809:3;17720:93;:::i;:::-;17838:2;17833:3;17829:12;17822:19;;17481:366;;;:::o;17853:419::-;18019:4;18057:2;18046:9;18042:18;18034:26;;18106:9;18100:4;18096:20;18092:1;18081:9;18077:17;18070:47;18134:131;18260:4;18134:131;:::i;:::-;18126:139;;17853:419;;;:::o;18278:229::-;18418:34;18414:1;18406:6;18402:14;18395:58;18487:12;18482:2;18474:6;18470:15;18463:37;18278:229;:::o;18513:366::-;18655:3;18676:67;18740:2;18735:3;18676:67;:::i;:::-;18669:74;;18752:93;18841:3;18752:93;:::i;:::-;18870:2;18865:3;18861:12;18854:19;;18513:366;;;:::o;18885:419::-;19051:4;19089:2;19078:9;19074:18;19066:26;;19138:9;19132:4;19128:20;19124:1;19113:9;19109:17;19102:47;19166:131;19292:4;19166:131;:::i;:::-;19158:139;;18885:419;;;:::o;19310:229::-;19450:34;19446:1;19438:6;19434:14;19427:58;19519:12;19514:2;19506:6;19502:15;19495:37;19310:229;:::o;19545:366::-;19687:3;19708:67;19772:2;19767:3;19708:67;:::i;:::-;19701:74;;19784:93;19873:3;19784:93;:::i;:::-;19902:2;19897:3;19893:12;19886:19;;19545:366;;;:::o;19917:419::-;20083:4;20121:2;20110:9;20106:18;20098:26;;20170:9;20164:4;20160:20;20156:1;20145:9;20141:17;20134:47;20198:131;20324:4;20198:131;:::i;:::-;20190:139;;19917:419;;;:::o;20342:179::-;20482:31;20478:1;20470:6;20466:14;20459:55;20342:179;:::o;20527:366::-;20669:3;20690:67;20754:2;20749:3;20690:67;:::i;:::-;20683:74;;20766:93;20855:3;20766:93;:::i;:::-;20884:2;20879:3;20875:12;20868:19;;20527:366;;;:::o;20899:419::-;21065:4;21103:2;21092:9;21088:18;21080:26;;21152:9;21146:4;21142:20;21138:1;21127:9;21123:17;21116:47;21180:131;21306:4;21180:131;:::i;:::-;21172:139;;20899:419;;;:::o;21324:225::-;21464:34;21460:1;21452:6;21448:14;21441:58;21533:8;21528:2;21520:6;21516:15;21509:33;21324:225;:::o;21555:366::-;21697:3;21718:67;21782:2;21777:3;21718:67;:::i;:::-;21711:74;;21794:93;21883:3;21794:93;:::i;:::-;21912:2;21907:3;21903:12;21896:19;;21555:366;;;:::o;21927:419::-;22093:4;22131:2;22120:9;22116:18;22108:26;;22180:9;22174:4;22170:20;22166:1;22155:9;22151:17;22144:47;22208:131;22334:4;22208:131;:::i;:::-;22200:139;;21927:419;;;:::o;22352:223::-;22492:34;22488:1;22480:6;22476:14;22469:58;22561:6;22556:2;22548:6;22544:15;22537:31;22352:223;:::o;22581:366::-;22723:3;22744:67;22808:2;22803:3;22744:67;:::i;:::-;22737:74;;22820:93;22909:3;22820:93;:::i;:::-;22938:2;22933:3;22929:12;22922:19;;22581:366;;;:::o;22953:419::-;23119:4;23157:2;23146:9;23142:18;23134:26;;23206:9;23200:4;23196:20;23192:1;23181:9;23177:17;23170:47;23234:131;23360:4;23234:131;:::i;:::-;23226:139;;22953:419;;;:::o;23378:221::-;23518:34;23514:1;23506:6;23502:14;23495:58;23587:4;23582:2;23574:6;23570:15;23563:29;23378:221;:::o;23605:366::-;23747:3;23768:67;23832:2;23827:3;23768:67;:::i;:::-;23761:74;;23844:93;23933:3;23844:93;:::i;:::-;23962:2;23957:3;23953:12;23946:19;;23605:366;;;:::o;23977:419::-;24143:4;24181:2;24170:9;24166:18;24158:26;;24230:9;24224:4;24220:20;24216:1;24205:9;24201:17;24194:47;24258:131;24384:4;24258:131;:::i;:::-;24250:139;;23977:419;;;:::o;24402:224::-;24542:34;24538:1;24530:6;24526:14;24519:58;24611:7;24606:2;24598:6;24594:15;24587:32;24402:224;:::o;24632:366::-;24774:3;24795:67;24859:2;24854:3;24795:67;:::i;:::-;24788:74;;24871:93;24960:3;24871:93;:::i;:::-;24989:2;24984:3;24980:12;24973:19;;24632:366;;;:::o;25004:419::-;25170:4;25208:2;25197:9;25193:18;25185:26;;25257:9;25251:4;25247:20;25243:1;25232:9;25228:17;25221:47;25285:131;25411:4;25285:131;:::i;:::-;25277:139;;25004:419;;;:::o;25429:222::-;25569:34;25565:1;25557:6;25553:14;25546:58;25638:5;25633:2;25625:6;25621:15;25614:30;25429:222;:::o;25657:366::-;25799:3;25820:67;25884:2;25879:3;25820:67;:::i;:::-;25813:74;;25896:93;25985:3;25896:93;:::i;:::-;26014:2;26009:3;26005:12;25998:19;;25657:366;;;:::o;26029:419::-;26195:4;26233:2;26222:9;26218:18;26210:26;;26282:9;26276:4;26272:20;26268:1;26257:9;26253:17;26246:47;26310:131;26436:4;26310:131;:::i;:::-;26302:139;;26029:419;;;:::o;26454:179::-;26594:31;26590:1;26582:6;26578:14;26571:55;26454:179;:::o;26639:366::-;26781:3;26802:67;26866:2;26861:3;26802:67;:::i;:::-;26795:74;;26878:93;26967:3;26878:93;:::i;:::-;26996:2;26991:3;26987:12;26980:19;;26639:366;;;:::o;27011:419::-;27177:4;27215:2;27204:9;27200:18;27192:26;;27264:9;27258:4;27254:20;27250:1;27239:9;27235:17;27228:47;27292:131;27418:4;27292:131;:::i;:::-;27284:139;;27011:419;;;:::o;27436:227::-;27576:34;27572:1;27564:6;27560:14;27553:58;27645:10;27640:2;27632:6;27628:15;27621:35;27436:227;:::o;27669:366::-;27811:3;27832:67;27896:2;27891:3;27832:67;:::i;:::-;27825:74;;27908:93;27997:3;27908:93;:::i;:::-;28026:2;28021:3;28017:12;28010:19;;27669:366;;;:::o;28041:419::-;28207:4;28245:2;28234:9;28230:18;28222:26;;28294:9;28288:4;28284:20;28280:1;28269:9;28265:17;28258:47;28322:131;28448:4;28322:131;:::i;:::-;28314:139;;28041:419;;;:::o;28466:174::-;28606:26;28602:1;28594:6;28590:14;28583:50;28466:174;:::o;28646:366::-;28788:3;28809:67;28873:2;28868:3;28809:67;:::i;:::-;28802:74;;28885:93;28974:3;28885:93;:::i;:::-;29003:2;28998:3;28994:12;28987:19;;28646:366;;;:::o;29018:419::-;29184:4;29222:2;29211:9;29207:18;29199:26;;29271:9;29265:4;29261:20;29257:1;29246:9;29242:17;29235:47;29299:131;29425:4;29299:131;:::i;:::-;29291:139;;29018:419;;;:::o;29443:229::-;29583:34;29579:1;29571:6;29567:14;29560:58;29652:12;29647:2;29639:6;29635:15;29628:37;29443:229;:::o;29678:366::-;29820:3;29841:67;29905:2;29900:3;29841:67;:::i;:::-;29834:74;;29917:93;30006:3;29917:93;:::i;:::-;30035:2;30030:3;30026:12;30019:19;;29678:366;;;:::o;30050:419::-;30216:4;30254:2;30243:9;30239:18;30231:26;;30303:9;30297:4;30293:20;30289:1;30278:9;30274:17;30267:47;30331:131;30457:4;30331:131;:::i;:::-;30323:139;;30050:419;;;:::o;30475:194::-;30515:4;30535:20;30553:1;30535:20;:::i;:::-;30530:25;;30569:20;30587:1;30569:20;:::i;:::-;30564:25;;30613:1;30610;30606:9;30598:17;;30637:1;30631:4;30628:11;30625:37;;;30642:18;;:::i;:::-;30625:37;30475:194;;;;:::o;30675:147::-;30776:11;30813:3;30798:18;;30675:147;;;;:::o;30828:114::-;;:::o;30948:398::-;31107:3;31128:83;31209:1;31204:3;31128:83;:::i;:::-;31121:90;;31220:93;31309:3;31220:93;:::i;:::-;31338:1;31333:3;31329:11;31322:18;;30948:398;;;:::o;31352:379::-;31536:3;31558:147;31701:3;31558:147;:::i;:::-;31551:154;;31722:3;31715:10;;31352:379;;;:::o;31737:225::-;31877:34;31873:1;31865:6;31861:14;31854:58;31946:8;31941:2;31933:6;31929:15;31922:33;31737:225;:::o;31968:366::-;32110:3;32131:67;32195:2;32190:3;32131:67;:::i;:::-;32124:74;;32207:93;32296:3;32207:93;:::i;:::-;32325:2;32320:3;32316:12;32309:19;;31968:366;;;:::o;32340:419::-;32506:4;32544:2;32533:9;32529:18;32521:26;;32593:9;32587:4;32583:20;32579:1;32568:9;32564:17;32557:47;32621:131;32747:4;32621:131;:::i;:::-;32613:139;;32340:419;;;:::o;32765:180::-;32813:77;32810:1;32803:88;32910:4;32907:1;32900:15;32934:4;32931:1;32924:15;32951:180;32999:77;32996:1;32989:88;33096:4;33093:1;33086:15;33120:4;33117:1;33110:15;33137:143;33194:5;33225:6;33219:13;33210:22;;33241:33;33268:5;33241:33;:::i;:::-;33137:143;;;;:::o;33286:351::-;33356:6;33405:2;33393:9;33384:7;33380:23;33376:32;33373:119;;;33411:79;;:::i;:::-;33373:119;33531:1;33556:64;33612:7;33603:6;33592:9;33588:22;33556:64;:::i;:::-;33546:74;;33502:128;33286:351;;;;:::o;33643:85::-;33688:7;33717:5;33706:16;;33643:85;;;:::o;33734:60::-;33762:3;33783:5;33776:12;;33734:60;;;:::o;33800:158::-;33858:9;33891:61;33909:42;33918:32;33944:5;33918:32;:::i;:::-;33909:42;:::i;:::-;33891:61;:::i;:::-;33878:74;;33800:158;;;:::o;33964:147::-;34059:45;34098:5;34059:45;:::i;:::-;34054:3;34047:58;33964:147;;:::o;34117:114::-;34184:6;34218:5;34212:12;34202:22;;34117:114;;;:::o;34237:184::-;34336:11;34370:6;34365:3;34358:19;34410:4;34405:3;34401:14;34386:29;;34237:184;;;;:::o;34427:132::-;34494:4;34517:3;34509:11;;34547:4;34542:3;34538:14;34530:22;;34427:132;;;:::o;34565:108::-;34642:24;34660:5;34642:24;:::i;:::-;34637:3;34630:37;34565:108;;:::o;34679:179::-;34748:10;34769:46;34811:3;34803:6;34769:46;:::i;:::-;34847:4;34842:3;34838:14;34824:28;;34679:179;;;;:::o;34864:113::-;34934:4;34966;34961:3;34957:14;34949:22;;34864:113;;;:::o;35013:732::-;35132:3;35161:54;35209:5;35161:54;:::i;:::-;35231:86;35310:6;35305:3;35231:86;:::i;:::-;35224:93;;35341:56;35391:5;35341:56;:::i;:::-;35420:7;35451:1;35436:284;35461:6;35458:1;35455:13;35436:284;;;35537:6;35531:13;35564:63;35623:3;35608:13;35564:63;:::i;:::-;35557:70;;35650:60;35703:6;35650:60;:::i;:::-;35640:70;;35496:224;35483:1;35480;35476:9;35471:14;;35436:284;;;35440:14;35736:3;35729:10;;35137:608;;;35013:732;;;;:::o;35751:831::-;36014:4;36052:3;36041:9;36037:19;36029:27;;36066:71;36134:1;36123:9;36119:17;36110:6;36066:71;:::i;:::-;36147:80;36223:2;36212:9;36208:18;36199:6;36147:80;:::i;:::-;36274:9;36268:4;36264:20;36259:2;36248:9;36244:18;36237:48;36302:108;36405:4;36396:6;36302:108;:::i;:::-;36294:116;;36420:72;36488:2;36477:9;36473:18;36464:6;36420:72;:::i;:::-;36502:73;36570:3;36559:9;36555:19;36546:6;36502:73;:::i;:::-;35751:831;;;;;;;;:::o

Swarm Source

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