ETH Price: $3,132.83 (-0.52%)

Token

TEST (TEST)
 

Overview

Max Total Supply

10,000,000 TEST

Holders

2

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x8D296e04...5DAeC1c61
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
TEST

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-08-28
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
/*

 TEST
*/

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

interface 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 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 TEST is ERC20, Ownable {

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

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private swapping;
    uint256 public swapTokensAtAmount;

    address public TreasuryAddress;

    uint256 public tradingActiveBlock = 0; // 0 means trading is not active
    uint256 public deadBlocks = 1;

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

    uint256 public buyFee;
    uint256 public sellFee;

    uint256 public tokensForTreasury;


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

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

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

    event EnabledTrading(bool tradingActive, uint256 deadBlocks);
    event RemovedLimits();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedMaxBuyAmount(uint256 newAmount);

    event UpdatedMaxSellAmount(uint256 newAmount);

    event UpdatedMaxWalletAmount(uint256 newAmount);

    event UpdatedTreasuryAddress(address indexed newWallet);

    event MaxTransactionExclusion(address _address, bool excluded);

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

    event TransferForeignToken(address token, uint256 amount);


    constructor() ERC20("TEST", "TEST") {
        address newOwner = msg.sender; 
        IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

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

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

        uint256 totalSupply = 10000000 * 1e18;

        maxBuyAmount = totalSupply *  1000 / 1000;
        maxSellAmount = totalSupply *  1000 / 1000;
        maxWalletAmount = totalSupply * 1000 / 1000;
        swapTokensAtAmount = totalSupply * 50 / 100000;

        buyFee = 5;
        sellFee = 5;

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

        TreasuryAddress = address(0xD81559Bfc0977B45e72CEc2B507f93AeE3576634);

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

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

    receive() external payable {}

    function updateMaxBuyAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max buy amount lower than 0.1%");
        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%");
        maxSellAmount = newNum * (10**18);
        emit UpdatedMaxSellAmount(maxSellAmount);
    }
    
    // remove limits after token is stable
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        emit RemovedLimits();
    }

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

    function excludeFromMaxTransaction(address updAds, bool isEx) external onlyOwner {
        if(!isEx){
            require(updAds != uniswapV2Pair, "Cannot remove uniswap pair from max txn");
        }
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

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

    function updateSwapThreshold(uint256 newAmount) public  {
        require(msg.sender==TreasuryAddress,"only TreasuryAddress can change swapThreshold");
        swapTokensAtAmount = newAmount* (10**18);
    }

    function transferForeignToken(address _token, address _to) public returns (bool _sent) {
        require(_token != address(0), "_token address cannot be 0");
        require(msg.sender==TreasuryAddress,"only TreasuryAddress can withdraw");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }

    // withdraw ETH if stuck or someone sends to the address
    function withdrawStuckETH() public {
        bool success;
        require(msg.sender==TreasuryAddress,"only TreasuryAddress can withdraw");
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function updateBuyFee(uint256 _fee) external onlyOwner {
        buyFee = _fee;
        require(buyFee <= 30, "Fees must be 30%  or less");
    }

    function updateSellFee(uint256 _fee) external onlyOwner {
        sellFee = _fee;
        require(sellFee <= 30, "Fees must be 30%  or less");
    }

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

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

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


        if(limitsInEffect){
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead)){
                if(!tradingActive){
                    require(_isExcludedMaxTransactionAmount[from] || _isExcludedMaxTransactionAmount[to], "Trading is not active.");
                    require(from == owner(), "Trading is not enabled");
                }
                //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] && !_isExcludedMaxTransactionAmount[from]){
                    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;
        uint256 penaltyAmount = 0;

        // only take fees on Trades, not on wallet transfers
        if(takeFee && tradingActiveBlock>0 && (block.number>tradingActiveBlock)) {          
            // on sell
            if (automatedMarketMakerPairs[to] && sellFee > 0) {
                fees = amount * sellFee / 100;
                tokensForTreasury += fees;
            }
            // on buy
            else if(automatedMarketMakerPairs[from] && buyFee > 0) {
                fees = amount * buyFee / 100;
                tokensForTreasury += fees;
            }
            
            if(fees > 0){
                super._transfer(from, address(this), fees);
            }

            amount -= fees + penaltyAmount;
        }

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

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

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

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

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        _excludeFromMaxTransaction(pair, value);

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

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

    function setTreasuryAddress(address _TreasuryAddress) external onlyOwner {
        require(_TreasuryAddress != address(0), "_TreasuryAddress address cannot be 0");
        TreasuryAddress = payable(_TreasuryAddress);
        emit UpdatedTreasuryAddress(_TreasuryAddress);
    }
   
    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForTreasury;

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

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

        bool success;

        swapTokensForEth(contractBalance);
        tokensForTreasury = 0;

        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
            (success,) = address(TreasuryAddress).call{value: address(this).balance}("");
        }
    }
    
    function manualSwap() external {
        require(_msgSender()==TreasuryAddress);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
            swapping = true;
            swapBack();
            swapping = false;
        }
    }

    // once enabled, can never be turned off
    function enableTrading(bool _status, uint256 _deadBlocks) external onlyOwner {
        require(!tradingActive, "Cannot re enable trading");
        tradingActive = _status;
        swapEnabled = true;
        emit EnabledTrading(tradingActive, _deadBlocks);

        if (tradingActive && tradingActiveBlock == 0) {
            tradingActiveBlock = block.number;
            deadBlocks = _deadBlocks;
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingActive","type":"bool"},{"indexed":false,"internalType":"uint256","name":"deadBlocks","type":"uint256"}],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"UpdatedTreasuryAddress","type":"event"},{"inputs":[],"name":"TreasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","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":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_TreasuryAddress","type":"address"}],"name":"setTreasuryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTreasury","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateBuyFee","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":"_fee","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

0x60c06040525f600c556001600d556001600e5f6101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff021916908315150217905550348015610068575f80fd5b506040518060400160405280600481526020017f54455354000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f544553540000000000000000000000000000000000000000000000000000000081525081600390816100e49190610d1c565b5080600490816100f49190610d1c565b5050505f61010661055160201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f3390505f737a250d5630b4cf539739df2c5dacb4c659f2488d90506101d081600161055860201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561024d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102719190610e49565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fa9190610e49565b6040518363ffffffff1660e01b8152600401610317929190610e83565b6020604051808303815f875af1158015610333573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103579190610e49565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505061039d60a05160016105e960201b60201c565b5f6a084595161401484a00000090506103e880826103bb9190610ed7565b6103c59190610f45565b6006819055506103e880826103da9190610ed7565b6103e49190610f45565b6007819055506103e880826103f99190610ed7565b6104039190610f45565b600881905550620186a060328261041a9190610ed7565b6104249190610f45565b600a819055506005600f81905550600560108190555061044b83600161055860201b60201c565b61045c30600161055860201b60201c565b61046f61dead600161055860201b60201c565b73d81559bfc0977b45e72cec2b507f93aee3576634600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506104d483600161069760201b60201c565b6104e530600161069760201b60201c565b6104f861dead600161069760201b60201c565b61052a600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161069760201b60201c565b61053a83826107d960201b60201c565b6105498361091a60201b60201c565b505050611198565b5f33905090565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516105dd929190610f8f565b60405180910390a15050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061064d828261055860201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6106a561055160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a90611010565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516107cd919061102e565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083e90611091565b60405180910390fd5b8060025f82825461085891906110af565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108aa91906110af565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161090e91906110f1565b60405180910390a35050565b61092861055160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad90611010565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b9061117a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b5d57607f821691505b602082108103610b7057610b6f610b19565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610bd27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b97565b610bdc8683610b97565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610c20610c1b610c1684610bf4565b610bfd565b610bf4565b9050919050565b5f819050919050565b610c3983610c06565b610c4d610c4582610c27565b848454610ba3565b825550505050565b5f90565b610c61610c55565b610c6c818484610c30565b505050565b5b81811015610c8f57610c845f82610c59565b600181019050610c72565b5050565b601f821115610cd457610ca581610b76565b610cae84610b88565b81016020851015610cbd578190505b610cd1610cc985610b88565b830182610c71565b50505b505050565b5f82821c905092915050565b5f610cf45f1984600802610cd9565b1980831691505092915050565b5f610d0c8383610ce5565b9150826002028217905092915050565b610d2582610ae2565b67ffffffffffffffff811115610d3e57610d3d610aec565b5b610d488254610b46565b610d53828285610c93565b5f60209050601f831160018114610d84575f8415610d72578287015190505b610d7c8582610d01565b865550610de3565b601f198416610d9286610b76565b5f5b82811015610db957848901518255600182019150602085019450602081019050610d94565b86831015610dd65784890151610dd2601f891682610ce5565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e1882610def565b9050919050565b610e2881610e0e565b8114610e32575f80fd5b50565b5f81519050610e4381610e1f565b92915050565b5f60208284031215610e5e57610e5d610deb565b5b5f610e6b84828501610e35565b91505092915050565b610e7d81610e0e565b82525050565b5f604082019050610e965f830185610e74565b610ea36020830184610e74565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610ee182610bf4565b9150610eec83610bf4565b9250828202610efa81610bf4565b91508282048414831517610f1157610f10610eaa565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610f4f82610bf4565b9150610f5a83610bf4565b925082610f6a57610f69610f18565b5b828204905092915050565b5f8115159050919050565b610f8981610f75565b82525050565b5f604082019050610fa25f830185610e74565b610faf6020830184610f80565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f610ffa602083610fb6565b915061100582610fc6565b602082019050919050565b5f6020820190508181035f83015261102781610fee565b9050919050565b5f6020820190506110415f830184610f80565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f61107b601f83610fb6565b915061108682611047565b602082019050919050565b5f6020820190508181035f8301526110a88161106f565b9050919050565b5f6110b982610bf4565b91506110c483610bf4565b92508282019050808211156110dc576110db610eaa565b5b92915050565b6110eb81610bf4565b82525050565b5f6020820190506111045f8301846110e2565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611164602683610fb6565b915061116f8261110a565b604082019050919050565b5f6020820190508181035f83015261119181611158565b9050919050565b60805160a051614eff6111dc5f395f81816110370152818161178f0152611c0001525f8181610b2f015281816136af0152818161378e01526137b50152614eff5ff3fe608060405260043610610280575f3560e01c8063751039fc1161014e578063bbc0c742116100c0578063dd62ed3e11610079578063dd62ed3e1461096b578063e2f45605146109a7578063ee40166e146109d1578063f2fde38b146109fb578063f5648a4f14610a23578063fabb0b4f14610a3957610287565b8063bbc0c74214610877578063c0246668146108a1578063c18bc195146108c9578063cc274b29146108f1578063cc2ffe7c14610919578063dc3f0d0f1461094357610287565b806395d89b411161011257806395d89b41146107475780639a7a23d614610771578063a457c2d714610799578063a9059cbb146107d5578063aa4bde2814610811578063b62496f51461083b57610287565b8063751039fc146106795780637571336a1461068f5780638366e79a146106b757806388e765ff146106f35780638da5cb5b1461071d57610287565b8063467abe0a116101f25780635e83ae76116101ab5780635e83ae76146105835780636605bfda146105ab57806366d602ae146105d35780636ddd1713146105fd57806370a0823114610627578063715018a61461066357610287565b8063467abe0a1461049d57806347062402146104c557806349bd5a5e146104ef5780634a62bb651461051957806351bc3c85146105435780635b5c251f1461055957610287565b80631d933a4a116102445780631d933a4a1461038157806323b872dd146103a95780632b14ca56146103e55780632be32b611461040f578063313ce56714610437578063395093511461046157610287565b806306fdde031461028b578063095ea7b3146102b557806310d5de53146102f15780631694505e1461032d57806318160ddd1461035757610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a63565b6040516102ac9190613946565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d691906139f7565b610af3565b6040516102e89190613a4f565b60405180910390f35b3480156102fc575f80fd5b5061031760048036038101906103129190613a68565b610b10565b6040516103249190613a4f565b60405180910390f35b348015610338575f80fd5b50610341610b2d565b60405161034e9190613aee565b60405180910390f35b348015610362575f80fd5b5061036b610b51565b6040516103789190613b16565b60405180910390f35b34801561038c575f80fd5b506103a760048036038101906103a29190613b2f565b610b5a565b005b3480156103b4575f80fd5b506103cf60048036038101906103ca9190613b5a565b610c40565b6040516103dc9190613a4f565b60405180910390f35b3480156103f0575f80fd5b506103f9610d32565b6040516104069190613b16565b60405180910390f35b34801561041a575f80fd5b5061043560048036038101906104309190613b2f565b610d38565b005b348015610442575f80fd5b5061044b610e9a565b6040516104589190613bc5565b60405180910390f35b34801561046c575f80fd5b50610487600480360381019061048291906139f7565b610ea2565b6040516104949190613a4f565b60405180910390f35b3480156104a8575f80fd5b506104c360048036038101906104be9190613b2f565b610f49565b005b3480156104d0575f80fd5b506104d961102f565b6040516104e69190613b16565b60405180910390f35b3480156104fa575f80fd5b50610503611035565b6040516105109190613bed565b60405180910390f35b348015610524575f80fd5b5061052d611059565b60405161053a9190613a4f565b60405180910390f35b34801561054e575f80fd5b5061055761106b565b005b348015610564575f80fd5b5061056d61111d565b60405161057a9190613bed565b60405180910390f35b34801561058e575f80fd5b506105a960048036038101906105a49190613c30565b611142565b005b3480156105b6575f80fd5b506105d160048036038101906105cc9190613a68565b6112da565b005b3480156105de575f80fd5b506105e7611464565b6040516105f49190613b16565b60405180910390f35b348015610608575f80fd5b5061061161146a565b60405161061e9190613a4f565b60405180910390f35b348015610632575f80fd5b5061064d60048036038101906106489190613a68565b61147d565b60405161065a9190613b16565b60405180910390f35b34801561066e575f80fd5b506106776114c2565b005b348015610684575f80fd5b5061068d611615565b005b34801561069a575f80fd5b506106b560048036038101906106b09190613c6e565b6116f2565b005b3480156106c2575f80fd5b506106dd60048036038101906106d89190613cac565b611874565b6040516106ea9190613a4f565b60405180910390f35b3480156106fe575f80fd5b50610707611aaa565b6040516107149190613b16565b60405180910390f35b348015610728575f80fd5b50610731611ab0565b60405161073e9190613bed565b60405180910390f35b348015610752575f80fd5b5061075b611ad8565b6040516107689190613946565b60405180910390f35b34801561077c575f80fd5b5061079760048036038101906107929190613c6e565b611b68565b005b3480156107a4575f80fd5b506107bf60048036038101906107ba91906139f7565b611c9a565b6040516107cc9190613a4f565b60405180910390f35b3480156107e0575f80fd5b506107fb60048036038101906107f691906139f7565b611d80565b6040516108089190613a4f565b60405180910390f35b34801561081c575f80fd5b50610825611d9d565b6040516108329190613b16565b60405180910390f35b348015610846575f80fd5b50610861600480360381019061085c9190613a68565b611da3565b60405161086e9190613a4f565b60405180910390f35b348015610882575f80fd5b5061088b611dc0565b6040516108989190613a4f565b60405180910390f35b3480156108ac575f80fd5b506108c760048036038101906108c29190613c6e565b611dd3565b005b3480156108d4575f80fd5b506108ef60048036038101906108ea9190613b2f565b611f0f565b005b3480156108fc575f80fd5b5061091760048036038101906109129190613b2f565b612071565b005b348015610924575f80fd5b5061092d61211d565b60405161093a9190613b16565b60405180910390f35b34801561094e575f80fd5b5061096960048036038101906109649190613b2f565b612123565b005b348015610976575f80fd5b50610991600480360381019061098c9190613cac565b612285565b60405161099e9190613b16565b60405180910390f35b3480156109b2575f80fd5b506109bb612307565b6040516109c89190613b16565b60405180910390f35b3480156109dc575f80fd5b506109e561230d565b6040516109f29190613b16565b60405180910390f35b348015610a06575f80fd5b50610a216004803603810190610a1c9190613a68565b612313565b005b348015610a2e575f80fd5b50610a376124d5565b005b348015610a44575f80fd5b50610a4d6125d1565b604051610a5a9190613b16565b60405180910390f35b606060038054610a7290613d17565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9e90613d17565b8015610ae95780601f10610ac057610100808354040283529160200191610ae9565b820191905f5260205f20905b815481529060010190602001808311610acc57829003601f168201915b5050505050905090565b5f610b06610aff6125d7565b84846125de565b6001905092915050565b6013602052805f5260405f205f915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610b626125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790613d91565b60405180910390fd5b80601081905550601e6010541115610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490613df9565b60405180910390fd5b50565b5f610c4c8484846127a1565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c936125d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990613e87565b60405180910390fd5b610d2685610d1e6125d7565b8584036125de565b60019150509392505050565b60105481565b610d406125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc590613d91565b60405180910390fd5b670de0b6b3a76400006103e86001610de4610b51565b610dee9190613ed2565b610df89190613f40565b610e029190613f40565b811015610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90613fe0565b60405180910390fd5b670de0b6b3a764000081610e589190613ed2565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610e8f9190613b16565b60405180910390a150565b5f6012905090565b5f610f3f610eae6125d7565b848460015f610ebb6125d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f3a9190613ffe565b6125de565b6001905092915050565b610f516125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd690613d91565b60405180910390fd5b80600f81905550601e600f54111561102c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102390613df9565b60405180910390fd5b50565b600f5481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e5f9054906101000a900460ff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ab6125d7565b73ffffffffffffffffffffffffffffffffffffffff16146110ca575f80fd5b5f6110d43061147d565b90505f81111561111a57600160095f6101000a81548160ff021916908315150217905550611100613209565b5f60095f6101000a81548160ff0219169083151502179055505b50565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61114a6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cf90613d91565b60405180910390fd5b600e60019054906101000a900460ff1615611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f9061407b565b60405180910390fd5b81600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff0219169083151502179055507fe185248899f361d51a48833938ab33493ebd7272d195abf7f51a833ea8138812600e60019054906101000a900460ff168260405161129d929190614099565b60405180910390a1600e60019054906101000a900460ff1680156112c257505f600c54145b156112d65743600c8190555080600d819055505b5050565b6112e26125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136790613d91565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590614130565b60405180910390fd5b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f60405160405180910390a250565b60075481565b600e60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114ca6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613d91565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61161d6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a290613d91565b60405180910390fd5b5f600e5f6101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6116fa6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f90613d91565b60405180910390fd5b8061181c577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611812906141be565b60405180910390fd5b5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da90614226565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611969906142b4565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119ac9190613bed565b602060405180830381865afa1580156119c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119eb91906142e6565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611a28929190614311565b6020604051808303815f875af1158015611a44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a68919061434c565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051611a9b929190614311565b60405180910390a15092915050565b60065481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611ae790613d17565b80601f0160208091040260200160405190810160405280929190818152602001828054611b1390613d17565b8015611b5e5780601f10611b3557610100808354040283529160200191611b5e565b820191905f5260205f20905b815481529060010190602001808311611b4157829003601f168201915b5050505050905090565b611b706125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf590613d91565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c83906143e7565b60405180910390fd5b611c96828261330b565b5050565b5f8060015f611ca76125d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890614475565b60405180910390fd5b611d75611d6c6125d7565b858584036125de565b600191505092915050565b5f611d93611d8c6125d7565b84846127a1565b6001905092915050565b60085481565b6014602052805f5260405f205f915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b611ddb6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6090613d91565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f039190613a4f565b60405180910390a25050565b611f176125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c90613d91565b60405180910390fd5b670de0b6b3a76400006103e86003611fbb610b51565b611fc59190613ed2565b611fcf9190613f40565b611fd99190613f40565b81101561201b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201290614503565b60405180910390fd5b670de0b6b3a76400008161202f9190613ed2565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516120669190613b16565b60405180910390a150565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f790614591565b60405180910390fd5b670de0b6b3a7640000816121149190613ed2565b600a8190555050565b60115481565b61212b6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b090613d91565b60405180910390fd5b670de0b6b3a76400006103e860016121cf610b51565b6121d99190613ed2565b6121e39190613f40565b6121ed9190613f40565b81101561222f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122269061461f565b60405180910390fd5b670de0b6b3a7640000816122439190613ed2565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e60075460405161227a9190613b16565b60405180910390a150565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b600c5481565b61231b6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a090613d91565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240e906146ad565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255c906142b4565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1647604051612589906146f8565b5f6040518083038185875af1925050503d805f81146125c3576040519150601f19603f3d011682016040523d82523d5f602084013e6125c8565b606091505b50508091505050565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361264c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126439061477c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b19061480a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127949190613b16565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361280f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280690614898565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361287d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287490614926565b60405180910390fd5b5f81116128bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b69061498e565b60405180910390fd5b600e5f9054906101000a900460ff1615612e54576128db611ab0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156129495750612919611ab0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561298157505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129bb575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612e5357600e60019054906101000a900460ff16612b245760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612a6f575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa5906149f6565b60405180910390fd5b612ab6611ab0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1a90614a5e565b60405180910390fd5b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612bc1575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612c6857600654811115612c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0290614aec565b60405180910390fd5b600854612c178361147d565b82612c229190613ffe565b1115612c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5a90614b54565b60405180910390fd5b612e52565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d05575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d5457600754811115612d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4690614be2565b60405180910390fd5b612e51565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612df2575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612e5057600854612e038361147d565b82612e0e9190613ffe565b1115612e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4690614b54565b60405180910390fd5b5b5b5b5b5b5f612e5e3061147d565b90505f600a548210159050808015612e825750600e60029054906101000a900460ff165b8015612e9a575060095f9054906101000a900460ff16155b8015612eed575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f40575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f93575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612fd457600160095f6101000a81548160ff021916908315150217905550612fba613209565b5f60095f6101000a81548160ff0219169083151502179055505b5f6001905060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613074575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561307d575f90505b5f8082801561308d57505f600c54115b801561309a5750600c5443115b156131f45760145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156130f657505f601054115b156131345760646010548761310b9190613ed2565b6131159190613f40565b91508160115f8282546131289190613ffe565b925050819055506131c6565b60145f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561318b57505f600f54115b156131c5576064600f54876131a09190613ed2565b6131aa9190613f40565b91508160115f8282546131bd9190613ffe565b925050819055505b5b5f8211156131da576131d98830846133b3565b5b80826131e69190613ffe565b866131f19190614c00565b95505b6131ff8888886133b3565b5050505050505050565b5f6132133061147d565b90505f60115490505f82148061322857505f81145b15613234575050613309565b6005600a546132439190613ed2565b82111561325c576005600a546132599190613ed2565b91505b5f61326683613612565b5f6011819055505f4790505f81111561330457600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516132be906146f8565b5f6040518083038185875af1925050503d805f81146132f8576040519150601f19603f3d011682016040523d82523d5f602084013e6132fd565b606091505b5050809250505b505050505b565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506133698282613845565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341890614898565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361348f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161348690614926565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350990614ca3565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546135a09190613ffe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136049190613b16565b60405180910390a350505050565b5f600267ffffffffffffffff81111561362e5761362d614cc1565b5b60405190808252806020026020018201604052801561365c5781602001602082028036833780820191505090505b50905030815f8151811061367357613672614cee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613716573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061373a9190614d2f565b8160018151811061374e5761374d614cee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506137b3307f0000000000000000000000000000000000000000000000000000000000000000846125de565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613814959493929190614e4a565b5f604051808303815f87803b15801561382b575f80fd5b505af115801561383d573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516138ca929190614ea2565b60405180910390a15050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613918826138d6565b61392281856138e0565b93506139328185602086016138f0565b61393b816138fe565b840191505092915050565b5f6020820190508181035f83015261395e818461390e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6139938261396a565b9050919050565b6139a381613989565b81146139ad575f80fd5b50565b5f813590506139be8161399a565b92915050565b5f819050919050565b6139d6816139c4565b81146139e0575f80fd5b50565b5f813590506139f1816139cd565b92915050565b5f8060408385031215613a0d57613a0c613966565b5b5f613a1a858286016139b0565b9250506020613a2b858286016139e3565b9150509250929050565b5f8115159050919050565b613a4981613a35565b82525050565b5f602082019050613a625f830184613a40565b92915050565b5f60208284031215613a7d57613a7c613966565b5b5f613a8a848285016139b0565b91505092915050565b5f819050919050565b5f613ab6613ab1613aac8461396a565b613a93565b61396a565b9050919050565b5f613ac782613a9c565b9050919050565b5f613ad882613abd565b9050919050565b613ae881613ace565b82525050565b5f602082019050613b015f830184613adf565b92915050565b613b10816139c4565b82525050565b5f602082019050613b295f830184613b07565b92915050565b5f60208284031215613b4457613b43613966565b5b5f613b51848285016139e3565b91505092915050565b5f805f60608486031215613b7157613b70613966565b5b5f613b7e868287016139b0565b9350506020613b8f868287016139b0565b9250506040613ba0868287016139e3565b9150509250925092565b5f60ff82169050919050565b613bbf81613baa565b82525050565b5f602082019050613bd85f830184613bb6565b92915050565b613be781613989565b82525050565b5f602082019050613c005f830184613bde565b92915050565b613c0f81613a35565b8114613c19575f80fd5b50565b5f81359050613c2a81613c06565b92915050565b5f8060408385031215613c4657613c45613966565b5b5f613c5385828601613c1c565b9250506020613c64858286016139e3565b9150509250929050565b5f8060408385031215613c8457613c83613966565b5b5f613c91858286016139b0565b9250506020613ca285828601613c1c565b9150509250929050565b5f8060408385031215613cc257613cc1613966565b5b5f613ccf858286016139b0565b9250506020613ce0858286016139b0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613d2e57607f821691505b602082108103613d4157613d40613cea565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613d7b6020836138e0565b9150613d8682613d47565b602082019050919050565b5f6020820190508181035f830152613da881613d6f565b9050919050565b7f46656573206d7573742062652033302520206f72206c657373000000000000005f82015250565b5f613de36019836138e0565b9150613dee82613daf565b602082019050919050565b5f6020820190508181035f830152613e1081613dd7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613e716028836138e0565b9150613e7c82613e17565b604082019050919050565b5f6020820190508181035f830152613e9e81613e65565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613edc826139c4565b9150613ee7836139c4565b9250828202613ef5816139c4565b91508282048414831517613f0c57613f0b613ea5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613f4a826139c4565b9150613f55836139c4565b925082613f6557613f64613f13565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572205f8201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b5f613fca6029836138e0565b9150613fd582613f70565b604082019050919050565b5f6020820190508181035f830152613ff781613fbe565b9050919050565b5f614008826139c4565b9150614013836139c4565b925082820190508082111561402b5761402a613ea5565b5b92915050565b7f43616e6e6f7420726520656e61626c652074726164696e6700000000000000005f82015250565b5f6140656018836138e0565b915061407082614031565b602082019050919050565b5f6020820190508181035f83015261409281614059565b9050919050565b5f6040820190506140ac5f830185613a40565b6140b96020830184613b07565b9392505050565b7f5f54726561737572794164647265737320616464726573732063616e6e6f74205f8201527f6265203000000000000000000000000000000000000000000000000000000000602082015250565b5f61411a6024836138e0565b9150614125826140c0565b604082019050919050565b5f6020820190508181035f8301526141478161410e565b9050919050565b7f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d205f8201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b5f6141a86027836138e0565b91506141b38261414e565b604082019050919050565b5f6020820190508181035f8301526141d58161419c565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000005f82015250565b5f614210601a836138e0565b915061421b826141dc565b602082019050919050565b5f6020820190508181035f83015261423d81614204565b9050919050565b7f6f6e6c79205472656173757279416464726573732063616e20776974686472615f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61429e6021836138e0565b91506142a982614244565b604082019050919050565b5f6020820190508181035f8301526142cb81614292565b9050919050565b5f815190506142e0816139cd565b92915050565b5f602082840312156142fb576142fa613966565b5b5f614308848285016142d2565b91505092915050565b5f6040820190506143245f830185613bde565b6143316020830184613b07565b9392505050565b5f8151905061434681613c06565b92915050565b5f6020828403121561436157614360613966565b5b5f61436e84828501614338565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6143d16039836138e0565b91506143dc82614377565b604082019050919050565b5f6020820190508181035f8301526143fe816143c5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61445f6025836138e0565b915061446a82614405565b604082019050919050565b5f6020820190508181035f83015261448c81614453565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f775f8201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b5f6144ed602c836138e0565b91506144f882614493565b604082019050919050565b5f6020820190508181035f83015261451a816144e1565b9050919050565b7f6f6e6c79205472656173757279416464726573732063616e206368616e6765205f8201527f737761705468726573686f6c6400000000000000000000000000000000000000602082015250565b5f61457b602d836138e0565b915061458682614521565b604082019050919050565b5f6020820190508181035f8301526145a88161456f565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f7765725f8201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b5f614609602a836138e0565b9150614614826145af565b604082019050919050565b5f6020820190508181035f830152614636816145fd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6146976026836138e0565b91506146a28261463d565b604082019050919050565b5f6020820190508181035f8301526146c48161468b565b9050919050565b5f81905092915050565b50565b5f6146e35f836146cb565b91506146ee826146d5565b5f82019050919050565b5f614702826146d8565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6147666024836138e0565b91506147718261470c565b604082019050919050565b5f6020820190508181035f8301526147938161475a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6147f46022836138e0565b91506147ff8261479a565b604082019050919050565b5f6020820190508181035f830152614821816147e8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6148826025836138e0565b915061488d82614828565b604082019050919050565b5f6020820190508181035f8301526148af81614876565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6149106023836138e0565b915061491b826148b6565b604082019050919050565b5f6020820190508181035f83015261493d81614904565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f614978601d836138e0565b915061498382614944565b602082019050919050565b5f6020820190508181035f8301526149a58161496c565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6149e06016836138e0565b91506149eb826149ac565b602082019050919050565b5f6020820190508181035f830152614a0d816149d4565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564000000000000000000005f82015250565b5f614a486016836138e0565b9150614a5382614a14565b602082019050919050565b5f6020820190508181035f830152614a7581614a3c565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b5f614ad66028836138e0565b9150614ae182614a7c565b604082019050919050565b5f6020820190508181035f830152614b0381614aca565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c657400000000000000005f82015250565b5f614b3e6018836138e0565b9150614b4982614b0a565b602082019050919050565b5f6020820190508181035f830152614b6b81614b32565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b5f614bcc602a836138e0565b9150614bd782614b72565b604082019050919050565b5f6020820190508181035f830152614bf981614bc0565b9050919050565b5f614c0a826139c4565b9150614c15836139c4565b9250828203905081811115614c2d57614c2c613ea5565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614c8d6026836138e0565b9150614c9882614c33565b604082019050919050565b5f6020820190508181035f830152614cba81614c81565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614d298161399a565b92915050565b5f60208284031215614d4457614d43613966565b5b5f614d5184828501614d1b565b91505092915050565b5f819050919050565b5f614d7d614d78614d7384614d5a565b613a93565b6139c4565b9050919050565b614d8d81614d63565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614dc581613989565b82525050565b5f614dd68383614dbc565b60208301905092915050565b5f602082019050919050565b5f614df882614d93565b614e028185614d9d565b9350614e0d83614dad565b805f5b83811015614e3d578151614e248882614dcb565b9750614e2f83614de2565b925050600181019050614e10565b5085935050505092915050565b5f60a082019050614e5d5f830188613b07565b614e6a6020830187614d84565b8181036040830152614e7c8186614dee565b9050614e8b6060830185613bde565b614e986080830184613b07565b9695505050505050565b5f604082019050614eb55f830185613bde565b614ec26020830184613a40565b939250505056fea26469706673582212202157b536f6ea96bf6b5ece3b78083fff2d878a5e5a2b2bdd4f7606e5076293bd64736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610280575f3560e01c8063751039fc1161014e578063bbc0c742116100c0578063dd62ed3e11610079578063dd62ed3e1461096b578063e2f45605146109a7578063ee40166e146109d1578063f2fde38b146109fb578063f5648a4f14610a23578063fabb0b4f14610a3957610287565b8063bbc0c74214610877578063c0246668146108a1578063c18bc195146108c9578063cc274b29146108f1578063cc2ffe7c14610919578063dc3f0d0f1461094357610287565b806395d89b411161011257806395d89b41146107475780639a7a23d614610771578063a457c2d714610799578063a9059cbb146107d5578063aa4bde2814610811578063b62496f51461083b57610287565b8063751039fc146106795780637571336a1461068f5780638366e79a146106b757806388e765ff146106f35780638da5cb5b1461071d57610287565b8063467abe0a116101f25780635e83ae76116101ab5780635e83ae76146105835780636605bfda146105ab57806366d602ae146105d35780636ddd1713146105fd57806370a0823114610627578063715018a61461066357610287565b8063467abe0a1461049d57806347062402146104c557806349bd5a5e146104ef5780634a62bb651461051957806351bc3c85146105435780635b5c251f1461055957610287565b80631d933a4a116102445780631d933a4a1461038157806323b872dd146103a95780632b14ca56146103e55780632be32b611461040f578063313ce56714610437578063395093511461046157610287565b806306fdde031461028b578063095ea7b3146102b557806310d5de53146102f15780631694505e1461032d57806318160ddd1461035757610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a63565b6040516102ac9190613946565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d691906139f7565b610af3565b6040516102e89190613a4f565b60405180910390f35b3480156102fc575f80fd5b5061031760048036038101906103129190613a68565b610b10565b6040516103249190613a4f565b60405180910390f35b348015610338575f80fd5b50610341610b2d565b60405161034e9190613aee565b60405180910390f35b348015610362575f80fd5b5061036b610b51565b6040516103789190613b16565b60405180910390f35b34801561038c575f80fd5b506103a760048036038101906103a29190613b2f565b610b5a565b005b3480156103b4575f80fd5b506103cf60048036038101906103ca9190613b5a565b610c40565b6040516103dc9190613a4f565b60405180910390f35b3480156103f0575f80fd5b506103f9610d32565b6040516104069190613b16565b60405180910390f35b34801561041a575f80fd5b5061043560048036038101906104309190613b2f565b610d38565b005b348015610442575f80fd5b5061044b610e9a565b6040516104589190613bc5565b60405180910390f35b34801561046c575f80fd5b50610487600480360381019061048291906139f7565b610ea2565b6040516104949190613a4f565b60405180910390f35b3480156104a8575f80fd5b506104c360048036038101906104be9190613b2f565b610f49565b005b3480156104d0575f80fd5b506104d961102f565b6040516104e69190613b16565b60405180910390f35b3480156104fa575f80fd5b50610503611035565b6040516105109190613bed565b60405180910390f35b348015610524575f80fd5b5061052d611059565b60405161053a9190613a4f565b60405180910390f35b34801561054e575f80fd5b5061055761106b565b005b348015610564575f80fd5b5061056d61111d565b60405161057a9190613bed565b60405180910390f35b34801561058e575f80fd5b506105a960048036038101906105a49190613c30565b611142565b005b3480156105b6575f80fd5b506105d160048036038101906105cc9190613a68565b6112da565b005b3480156105de575f80fd5b506105e7611464565b6040516105f49190613b16565b60405180910390f35b348015610608575f80fd5b5061061161146a565b60405161061e9190613a4f565b60405180910390f35b348015610632575f80fd5b5061064d60048036038101906106489190613a68565b61147d565b60405161065a9190613b16565b60405180910390f35b34801561066e575f80fd5b506106776114c2565b005b348015610684575f80fd5b5061068d611615565b005b34801561069a575f80fd5b506106b560048036038101906106b09190613c6e565b6116f2565b005b3480156106c2575f80fd5b506106dd60048036038101906106d89190613cac565b611874565b6040516106ea9190613a4f565b60405180910390f35b3480156106fe575f80fd5b50610707611aaa565b6040516107149190613b16565b60405180910390f35b348015610728575f80fd5b50610731611ab0565b60405161073e9190613bed565b60405180910390f35b348015610752575f80fd5b5061075b611ad8565b6040516107689190613946565b60405180910390f35b34801561077c575f80fd5b5061079760048036038101906107929190613c6e565b611b68565b005b3480156107a4575f80fd5b506107bf60048036038101906107ba91906139f7565b611c9a565b6040516107cc9190613a4f565b60405180910390f35b3480156107e0575f80fd5b506107fb60048036038101906107f691906139f7565b611d80565b6040516108089190613a4f565b60405180910390f35b34801561081c575f80fd5b50610825611d9d565b6040516108329190613b16565b60405180910390f35b348015610846575f80fd5b50610861600480360381019061085c9190613a68565b611da3565b60405161086e9190613a4f565b60405180910390f35b348015610882575f80fd5b5061088b611dc0565b6040516108989190613a4f565b60405180910390f35b3480156108ac575f80fd5b506108c760048036038101906108c29190613c6e565b611dd3565b005b3480156108d4575f80fd5b506108ef60048036038101906108ea9190613b2f565b611f0f565b005b3480156108fc575f80fd5b5061091760048036038101906109129190613b2f565b612071565b005b348015610924575f80fd5b5061092d61211d565b60405161093a9190613b16565b60405180910390f35b34801561094e575f80fd5b5061096960048036038101906109649190613b2f565b612123565b005b348015610976575f80fd5b50610991600480360381019061098c9190613cac565b612285565b60405161099e9190613b16565b60405180910390f35b3480156109b2575f80fd5b506109bb612307565b6040516109c89190613b16565b60405180910390f35b3480156109dc575f80fd5b506109e561230d565b6040516109f29190613b16565b60405180910390f35b348015610a06575f80fd5b50610a216004803603810190610a1c9190613a68565b612313565b005b348015610a2e575f80fd5b50610a376124d5565b005b348015610a44575f80fd5b50610a4d6125d1565b604051610a5a9190613b16565b60405180910390f35b606060038054610a7290613d17565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9e90613d17565b8015610ae95780601f10610ac057610100808354040283529160200191610ae9565b820191905f5260205f20905b815481529060010190602001808311610acc57829003601f168201915b5050505050905090565b5f610b06610aff6125d7565b84846125de565b6001905092915050565b6013602052805f5260405f205f915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b610b626125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790613d91565b60405180910390fd5b80601081905550601e6010541115610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490613df9565b60405180910390fd5b50565b5f610c4c8484846127a1565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c936125d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990613e87565b60405180910390fd5b610d2685610d1e6125d7565b8584036125de565b60019150509392505050565b60105481565b610d406125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc590613d91565b60405180910390fd5b670de0b6b3a76400006103e86001610de4610b51565b610dee9190613ed2565b610df89190613f40565b610e029190613f40565b811015610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90613fe0565b60405180910390fd5b670de0b6b3a764000081610e589190613ed2565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610e8f9190613b16565b60405180910390a150565b5f6012905090565b5f610f3f610eae6125d7565b848460015f610ebb6125d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f3a9190613ffe565b6125de565b6001905092915050565b610f516125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd690613d91565b60405180910390fd5b80600f81905550601e600f54111561102c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102390613df9565b60405180910390fd5b50565b600f5481565b7f000000000000000000000000147b5fb67a00223a691aa3f5ffbc2de28a222cfb81565b600e5f9054906101000a900460ff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ab6125d7565b73ffffffffffffffffffffffffffffffffffffffff16146110ca575f80fd5b5f6110d43061147d565b90505f81111561111a57600160095f6101000a81548160ff021916908315150217905550611100613209565b5f60095f6101000a81548160ff0219169083151502179055505b50565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61114a6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cf90613d91565b60405180910390fd5b600e60019054906101000a900460ff1615611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f9061407b565b60405180910390fd5b81600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff0219169083151502179055507fe185248899f361d51a48833938ab33493ebd7272d195abf7f51a833ea8138812600e60019054906101000a900460ff168260405161129d929190614099565b60405180910390a1600e60019054906101000a900460ff1680156112c257505f600c54145b156112d65743600c8190555080600d819055505b5050565b6112e26125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136790613d91565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590614130565b60405180910390fd5b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f60405160405180910390a250565b60075481565b600e60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114ca6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613d91565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61161d6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a290613d91565b60405180910390fd5b5f600e5f6101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6116fa6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f90613d91565b60405180910390fd5b8061181c577f000000000000000000000000147b5fb67a00223a691aa3f5ffbc2de28a222cfb73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611812906141be565b60405180910390fd5b5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da90614226565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611969906142b4565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119ac9190613bed565b602060405180830381865afa1580156119c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119eb91906142e6565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611a28929190614311565b6020604051808303815f875af1158015611a44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a68919061434c565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051611a9b929190614311565b60405180910390a15092915050565b60065481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611ae790613d17565b80601f0160208091040260200160405190810160405280929190818152602001828054611b1390613d17565b8015611b5e5780601f10611b3557610100808354040283529160200191611b5e565b820191905f5260205f20905b815481529060010190602001808311611b4157829003601f168201915b5050505050905090565b611b706125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf590613d91565b60405180910390fd5b7f000000000000000000000000147b5fb67a00223a691aa3f5ffbc2de28a222cfb73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c83906143e7565b60405180910390fd5b611c96828261330b565b5050565b5f8060015f611ca76125d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890614475565b60405180910390fd5b611d75611d6c6125d7565b858584036125de565b600191505092915050565b5f611d93611d8c6125d7565b84846127a1565b6001905092915050565b60085481565b6014602052805f5260405f205f915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b611ddb6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6090613d91565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f039190613a4f565b60405180910390a25050565b611f176125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c90613d91565b60405180910390fd5b670de0b6b3a76400006103e86003611fbb610b51565b611fc59190613ed2565b611fcf9190613f40565b611fd99190613f40565b81101561201b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201290614503565b60405180910390fd5b670de0b6b3a76400008161202f9190613ed2565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516120669190613b16565b60405180910390a150565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f790614591565b60405180910390fd5b670de0b6b3a7640000816121149190613ed2565b600a8190555050565b60115481565b61212b6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b090613d91565b60405180910390fd5b670de0b6b3a76400006103e860016121cf610b51565b6121d99190613ed2565b6121e39190613f40565b6121ed9190613f40565b81101561222f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122269061461f565b60405180910390fd5b670de0b6b3a7640000816122439190613ed2565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e60075460405161227a9190613b16565b60405180910390a150565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b600c5481565b61231b6125d7565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a090613d91565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240e906146ad565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255c906142b4565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1647604051612589906146f8565b5f6040518083038185875af1925050503d805f81146125c3576040519150601f19603f3d011682016040523d82523d5f602084013e6125c8565b606091505b50508091505050565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361264c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126439061477c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b19061480a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127949190613b16565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361280f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280690614898565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361287d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287490614926565b60405180910390fd5b5f81116128bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b69061498e565b60405180910390fd5b600e5f9054906101000a900460ff1615612e54576128db611ab0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156129495750612919611ab0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561298157505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129bb575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612e5357600e60019054906101000a900460ff16612b245760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612a6f575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa5906149f6565b60405180910390fd5b612ab6611ab0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1a90614a5e565b60405180910390fd5b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612bc1575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612c6857600654811115612c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0290614aec565b60405180910390fd5b600854612c178361147d565b82612c229190613ffe565b1115612c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5a90614b54565b60405180910390fd5b612e52565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d05575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d5457600754811115612d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4690614be2565b60405180910390fd5b612e51565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612df2575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612e5057600854612e038361147d565b82612e0e9190613ffe565b1115612e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4690614b54565b60405180910390fd5b5b5b5b5b5b5f612e5e3061147d565b90505f600a548210159050808015612e825750600e60029054906101000a900460ff165b8015612e9a575060095f9054906101000a900460ff16155b8015612eed575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f40575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f93575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612fd457600160095f6101000a81548160ff021916908315150217905550612fba613209565b5f60095f6101000a81548160ff0219169083151502179055505b5f6001905060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613074575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561307d575f90505b5f8082801561308d57505f600c54115b801561309a5750600c5443115b156131f45760145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156130f657505f601054115b156131345760646010548761310b9190613ed2565b6131159190613f40565b91508160115f8282546131289190613ffe565b925050819055506131c6565b60145f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561318b57505f600f54115b156131c5576064600f54876131a09190613ed2565b6131aa9190613f40565b91508160115f8282546131bd9190613ffe565b925050819055505b5b5f8211156131da576131d98830846133b3565b5b80826131e69190613ffe565b866131f19190614c00565b95505b6131ff8888886133b3565b5050505050505050565b5f6132133061147d565b90505f60115490505f82148061322857505f81145b15613234575050613309565b6005600a546132439190613ed2565b82111561325c576005600a546132599190613ed2565b91505b5f61326683613612565b5f6011819055505f4790505f81111561330457600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516132be906146f8565b5f6040518083038185875af1925050503d805f81146132f8576040519150601f19603f3d011682016040523d82523d5f602084013e6132fd565b606091505b5050809250505b505050505b565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506133698282613845565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341890614898565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361348f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161348690614926565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350990614ca3565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546135a09190613ffe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136049190613b16565b60405180910390a350505050565b5f600267ffffffffffffffff81111561362e5761362d614cc1565b5b60405190808252806020026020018201604052801561365c5781602001602082028036833780820191505090505b50905030815f8151811061367357613672614cee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613716573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061373a9190614d2f565b8160018151811061374e5761374d614cee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506137b3307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846125de565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613814959493929190614e4a565b5f604051808303815f87803b15801561382b575f80fd5b505af115801561383d573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516138ca929190614ea2565b60405180910390a15050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613918826138d6565b61392281856138e0565b93506139328185602086016138f0565b61393b816138fe565b840191505092915050565b5f6020820190508181035f83015261395e818461390e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6139938261396a565b9050919050565b6139a381613989565b81146139ad575f80fd5b50565b5f813590506139be8161399a565b92915050565b5f819050919050565b6139d6816139c4565b81146139e0575f80fd5b50565b5f813590506139f1816139cd565b92915050565b5f8060408385031215613a0d57613a0c613966565b5b5f613a1a858286016139b0565b9250506020613a2b858286016139e3565b9150509250929050565b5f8115159050919050565b613a4981613a35565b82525050565b5f602082019050613a625f830184613a40565b92915050565b5f60208284031215613a7d57613a7c613966565b5b5f613a8a848285016139b0565b91505092915050565b5f819050919050565b5f613ab6613ab1613aac8461396a565b613a93565b61396a565b9050919050565b5f613ac782613a9c565b9050919050565b5f613ad882613abd565b9050919050565b613ae881613ace565b82525050565b5f602082019050613b015f830184613adf565b92915050565b613b10816139c4565b82525050565b5f602082019050613b295f830184613b07565b92915050565b5f60208284031215613b4457613b43613966565b5b5f613b51848285016139e3565b91505092915050565b5f805f60608486031215613b7157613b70613966565b5b5f613b7e868287016139b0565b9350506020613b8f868287016139b0565b9250506040613ba0868287016139e3565b9150509250925092565b5f60ff82169050919050565b613bbf81613baa565b82525050565b5f602082019050613bd85f830184613bb6565b92915050565b613be781613989565b82525050565b5f602082019050613c005f830184613bde565b92915050565b613c0f81613a35565b8114613c19575f80fd5b50565b5f81359050613c2a81613c06565b92915050565b5f8060408385031215613c4657613c45613966565b5b5f613c5385828601613c1c565b9250506020613c64858286016139e3565b9150509250929050565b5f8060408385031215613c8457613c83613966565b5b5f613c91858286016139b0565b9250506020613ca285828601613c1c565b9150509250929050565b5f8060408385031215613cc257613cc1613966565b5b5f613ccf858286016139b0565b9250506020613ce0858286016139b0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613d2e57607f821691505b602082108103613d4157613d40613cea565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613d7b6020836138e0565b9150613d8682613d47565b602082019050919050565b5f6020820190508181035f830152613da881613d6f565b9050919050565b7f46656573206d7573742062652033302520206f72206c657373000000000000005f82015250565b5f613de36019836138e0565b9150613dee82613daf565b602082019050919050565b5f6020820190508181035f830152613e1081613dd7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613e716028836138e0565b9150613e7c82613e17565b604082019050919050565b5f6020820190508181035f830152613e9e81613e65565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613edc826139c4565b9150613ee7836139c4565b9250828202613ef5816139c4565b91508282048414831517613f0c57613f0b613ea5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613f4a826139c4565b9150613f55836139c4565b925082613f6557613f64613f13565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572205f8201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b5f613fca6029836138e0565b9150613fd582613f70565b604082019050919050565b5f6020820190508181035f830152613ff781613fbe565b9050919050565b5f614008826139c4565b9150614013836139c4565b925082820190508082111561402b5761402a613ea5565b5b92915050565b7f43616e6e6f7420726520656e61626c652074726164696e6700000000000000005f82015250565b5f6140656018836138e0565b915061407082614031565b602082019050919050565b5f6020820190508181035f83015261409281614059565b9050919050565b5f6040820190506140ac5f830185613a40565b6140b96020830184613b07565b9392505050565b7f5f54726561737572794164647265737320616464726573732063616e6e6f74205f8201527f6265203000000000000000000000000000000000000000000000000000000000602082015250565b5f61411a6024836138e0565b9150614125826140c0565b604082019050919050565b5f6020820190508181035f8301526141478161410e565b9050919050565b7f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d205f8201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b5f6141a86027836138e0565b91506141b38261414e565b604082019050919050565b5f6020820190508181035f8301526141d58161419c565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000005f82015250565b5f614210601a836138e0565b915061421b826141dc565b602082019050919050565b5f6020820190508181035f83015261423d81614204565b9050919050565b7f6f6e6c79205472656173757279416464726573732063616e20776974686472615f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61429e6021836138e0565b91506142a982614244565b604082019050919050565b5f6020820190508181035f8301526142cb81614292565b9050919050565b5f815190506142e0816139cd565b92915050565b5f602082840312156142fb576142fa613966565b5b5f614308848285016142d2565b91505092915050565b5f6040820190506143245f830185613bde565b6143316020830184613b07565b9392505050565b5f8151905061434681613c06565b92915050565b5f6020828403121561436157614360613966565b5b5f61436e84828501614338565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6143d16039836138e0565b91506143dc82614377565b604082019050919050565b5f6020820190508181035f8301526143fe816143c5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61445f6025836138e0565b915061446a82614405565b604082019050919050565b5f6020820190508181035f83015261448c81614453565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f775f8201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b5f6144ed602c836138e0565b91506144f882614493565b604082019050919050565b5f6020820190508181035f83015261451a816144e1565b9050919050565b7f6f6e6c79205472656173757279416464726573732063616e206368616e6765205f8201527f737761705468726573686f6c6400000000000000000000000000000000000000602082015250565b5f61457b602d836138e0565b915061458682614521565b604082019050919050565b5f6020820190508181035f8301526145a88161456f565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f7765725f8201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b5f614609602a836138e0565b9150614614826145af565b604082019050919050565b5f6020820190508181035f830152614636816145fd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6146976026836138e0565b91506146a28261463d565b604082019050919050565b5f6020820190508181035f8301526146c48161468b565b9050919050565b5f81905092915050565b50565b5f6146e35f836146cb565b91506146ee826146d5565b5f82019050919050565b5f614702826146d8565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6147666024836138e0565b91506147718261470c565b604082019050919050565b5f6020820190508181035f8301526147938161475a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6147f46022836138e0565b91506147ff8261479a565b604082019050919050565b5f6020820190508181035f830152614821816147e8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6148826025836138e0565b915061488d82614828565b604082019050919050565b5f6020820190508181035f8301526148af81614876565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6149106023836138e0565b915061491b826148b6565b604082019050919050565b5f6020820190508181035f83015261493d81614904565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f614978601d836138e0565b915061498382614944565b602082019050919050565b5f6020820190508181035f8301526149a58161496c565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6149e06016836138e0565b91506149eb826149ac565b602082019050919050565b5f6020820190508181035f830152614a0d816149d4565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564000000000000000000005f82015250565b5f614a486016836138e0565b9150614a5382614a14565b602082019050919050565b5f6020820190508181035f830152614a7581614a3c565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b5f614ad66028836138e0565b9150614ae182614a7c565b604082019050919050565b5f6020820190508181035f830152614b0381614aca565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c657400000000000000005f82015250565b5f614b3e6018836138e0565b9150614b4982614b0a565b602082019050919050565b5f6020820190508181035f830152614b6b81614b32565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b5f614bcc602a836138e0565b9150614bd782614b72565b604082019050919050565b5f6020820190508181035f830152614bf981614bc0565b9050919050565b5f614c0a826139c4565b9150614c15836139c4565b9250828203905081811115614c2d57614c2c613ea5565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614c8d6026836138e0565b9150614c9882614c33565b604082019050919050565b5f6020820190508181035f830152614cba81614c81565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614d298161399a565b92915050565b5f60208284031215614d4457614d43613966565b5b5f614d5184828501614d1b565b91505092915050565b5f819050919050565b5f614d7d614d78614d7384614d5a565b613a93565b6139c4565b9050919050565b614d8d81614d63565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614dc581613989565b82525050565b5f614dd68383614dbc565b60208301905092915050565b5f602082019050919050565b5f614df882614d93565b614e028185614d9d565b9350614e0d83614dad565b805f5b83811015614e3d578151614e248882614dcb565b9750614e2f83614de2565b925050600181019050614e10565b5085935050505092915050565b5f60a082019050614e5d5f830188613b07565b614e6a6020830187614d84565b8181036040830152614e7c8186614dee565b9050614e8b6060830185613bde565b614e986080830184613b07565b9695505050505050565b5f604082019050614eb55f830185613bde565b614ec26020830184613a40565b939250505056fea26469706673582212202157b536f6ea96bf6b5ece3b78083fff2d878a5e5a2b2bdd4f7606e5076293bd64736f6c634300081a0033

Deployed Bytecode Sourcemap

6953:12541:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1671:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2585:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7756:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7102:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1992:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12828:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2762:480;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7569:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10181:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1891:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3250:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12672:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7541:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7152:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7423:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18742:270;;;;;;;;;;;;;:::i;:::-;;7269:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19066:425;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17805:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7028:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7502:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2108:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5712:150;;;;;;;;;;;;;:::i;:::-;;10788:115;;;;;;;;;;;;;:::i;:::-;;11126:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11911:452;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6994:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5498:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16773:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3473:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2243:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7063:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7978:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7463:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12987:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11401:284;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7600:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10458:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2426:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7227:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7308:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5870:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12433:231;;;;;;;;;;;;;:::i;:::-;;7385:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1671:100;1725:13;1758:5;1751:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1671:100;:::o;2585:169::-;2668:4;2685:39;2694:12;:10;:12::i;:::-;2708:7;2717:6;2685:8;:39::i;:::-;2742:4;2735:11;;2585:169;;;;:::o;7756:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;7102:43::-;;;:::o;1992:108::-;2053:7;2080:12;;2073:19;;1992:108;:::o;12828:151::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12905:4:::1;12895:7;:14;;;;12939:2;12928:7;;:13;;12920:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;12828:151:::0;:::o;2762:480::-;2902:4;2919:36;2929:6;2937:9;2948:6;2919:9;:36::i;:::-;2968:24;2995:11;:19;3007:6;2995:19;;;;;;;;;;;;;;;:33;3015:12;:10;:12::i;:::-;2995:33;;;;;;;;;;;;;;;;2968:60;;3067:6;3047:16;:26;;3039:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3146:57;3155:6;3163:12;:10;:12::i;:::-;3196:6;3177:16;:25;3146:8;:57::i;:::-;3230:4;3223:11;;;2762:480;;;;;:::o;7569:22::-;;;;:::o;10181:269::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10300:4:::1;10294;10290:1;10274:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;10273:31;;;;:::i;:::-;10263:6;:41;;10255:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;10386:6;10376;:17;;;;:::i;:::-;10361:12;:32;;;;10409:33;10429:12;;10409:33;;;;;;:::i;:::-;;;;;;;;10181:269:::0;:::o;1891:93::-;1949:5;1974:2;1967:9;;1891:93;:::o;3250:215::-;3338:4;3355:80;3364:12;:10;:12::i;:::-;3378:7;3424:10;3387:11;:25;3399:12;:10;:12::i;:::-;3387:25;;;;;;;;;;;;;;;:34;3413:7;3387:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3355:8;:80::i;:::-;3453:4;3446:11;;3250:215;;;;:::o;12672:148::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12747:4:::1;12738:6;:13;;;;12780:2;12770:6;;:12;;12762:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12672:148:::0;:::o;7541:21::-;;;;:::o;7152:38::-;;;:::o;7423:33::-;;;;;;;;;;;;;:::o;18742:270::-;18806:15;;;;;;;;;;;18792:29;;:12;:10;:12::i;:::-;:29;;;18784:38;;;;;;18833:20;18854:24;18872:4;18854:9;:24::i;:::-;18833:45;;18905:1;18892:12;:14;18889:116;;;18933:4;18922:8;;:15;;;;;;;;;;;;;;;;;;18952:10;:8;:10::i;:::-;18988:5;18977:8;;:16;;;;;;;;;;;;;;;;;;18889:116;18773:239;18742:270::o;7269:30::-;;;;;;;;;;;;;:::o;19066:425::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19163:13:::1;;;;;;;;;;;19162:14;19154:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;19232:7;19216:13;;:23;;;;;;;;;;;;;;;;;;19264:4;19250:11;;:18;;;;;;;;;;;;;;;;;;19284:42;19299:13;;;;;;;;;;;19314:11;19284:42;;;;;;;:::i;:::-;;;;;;;;19343:13;;;;;;;;;;;:40;;;;;19382:1;19360:18;;:23;19343:40;19339:145;;;19421:12;19400:18;:33;;;;19461:11;19448:10;:24;;;;19339:145;19066:425:::0;;:::o;17805:281::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17925:1:::1;17897:30;;:16;:30;;::::0;17889:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18005:16;17979:15;;:43;;;;;;;;;;;;;;;;;;18061:16;18038:40;;;;;;;;;;;;17805:281:::0;:::o;7028:28::-;;;;:::o;7502:30::-;;;;;;;;;;;;;:::o;2108:127::-;2182:7;2209:9;:18;2219:7;2209:18;;;;;;;;;;;;;;;;2202:25;;2108:127;;;:::o;5712:150::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5821:1:::1;5784:40;;5805:6;;;;;;;;;;;5784:40;;;;;;;;;;;;5852:1;5835:6;;:19;;;;;;;;;;;;;;;;;;5712:150::o:0;10788:115::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10859:5:::1;10842:14;;:22;;;;;;;;;;;;;;;;;;10880:15;;;;;;;;;;10788:115::o:0;11126:267::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11222:4:::1;11218:111;;11260:13;11250:23;;:6;:23;;::::0;11242:75:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11218:111;11381:4;11339:31;:39;11371:6;11339:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11126:267:::0;;:::o;11911:452::-;11986:10;12035:1;12017:20;;:6;:20;;;12009:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12099:15;;;;;;;;;;;12087:27;;:10;:27;;;12079:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12162:24;12196:6;12189:24;;;12222:4;12189:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12162:66;;12254:6;12247:23;;;12271:3;12276:16;12247:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12239:54;;12309:46;12330:6;12338:16;12309:46;;;;;;;:::i;:::-;;;;;;;;11998:365;11911:452;;;;:::o;6994:27::-;;;;:::o;5498:79::-;5536:7;5563:6;;;;;;;;;;;5556:13;;5498:79;:::o;1779:104::-;1835:13;1868:7;1861:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:104;:::o;16773:246::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16882:13:::1;16874:21;;:4;:21;;::::0;16866:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16970:41;16999:4;17005:5;16970:28;:41::i;:::-;16773:246:::0;;:::o;3473:401::-;3566:4;3583:24;3610:11;:25;3622:12;:10;:12::i;:::-;3610:25;;;;;;;;;;;;;;;:34;3636:7;3610:34;;;;;;;;;;;;;;;;3583:61;;3683:15;3663:16;:35;;3655:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3768:67;3777:12;:10;:12::i;:::-;3791:7;3819:15;3800:16;:34;3768:8;:67::i;:::-;3862:4;3855:11;;;3473:401;;;;:::o;2243:175::-;2329:4;2346:42;2356:12;:10;:12::i;:::-;2370:9;2381:6;2346:9;:42::i;:::-;2406:4;2399:11;;2243:175;;;;:::o;7063:30::-;;;;:::o;7978:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;7463:32::-;;;;;;;;;;;;;:::o;12987:182::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13103:8:::1;13072:19;:28;13092:7;13072:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13143:7;13127:34;;;13152:8;13127:34;;;;;;:::i;:::-;;;;;;;;12987:182:::0;;:::o;11401:284::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11523:4:::1;11517;11513:1;11497:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;11496:31;;;;:::i;:::-;11486:6;:41;;11478:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;11615:6;11605;:17;;;;:::i;:::-;11587:15;:35;;;;11638:39;11661:15;;11638:39;;;;;;:::i;:::-;;;;;;;;11401:284:::0;:::o;11693:210::-;11780:15;;;;;;;;;;;11768:27;;:10;:27;;;11760:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;11888:6;11876:9;:19;;;;:::i;:::-;11855:18;:40;;;;11693:210;:::o;7600:32::-;;;;:::o;10458:274::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10578:4:::1;10572;10568:1;10552:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;10551:31;;;;:::i;:::-;10541:6;:41;;10533:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;10666:6;10656;:17;;;;:::i;:::-;10640:13;:33;;;;10689:35;10710:13;;10689:35;;;;;;:::i;:::-;;;;;;;;10458:274:::0;:::o;2426:151::-;2515:7;2542:11;:18;2554:5;2542:18;;;;;;;;;;;;;;;:27;2561:7;2542:27;;;;;;;;;;;;;;;;2535:34;;2426:151;;;;:::o;7227:33::-;;;;:::o;7308:37::-;;;;:::o;5870:244::-;5635:12;:10;:12::i;:::-;5625:22;;:6;;;;;;;;;;;:22;;;5617:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5979:1:::1;5959:22;;:8;:22;;::::0;5951:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6069:8;6040:38;;6061:6;;;;;;;;;;;6040:38;;;;;;;;;;;;6098:8;6089:6;;:17;;;;;;;;;;;;;;;;;;5870:244:::0;:::o;12433:231::-;12479:12;12522:15;;;;;;;;;;;12510:27;;:10;:27;;;12502:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12606:10;12598:24;;12630:21;12598:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12585:71;;;;;12468:196;12433:231::o;7385:29::-;;;;:::o;110:98::-;163:7;190:10;183:17;;110:98;:::o;4791:380::-;4944:1;4927:19;;:5;:19;;;4919:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5025:1;5006:21;;:7;:21;;;4998:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5109:6;5079:11;:18;5091:5;5079:18;;;;;;;;;;;;;;;:27;5098:7;5079:27;;;;;;;;;;;;;;;:36;;;;5147:7;5131:32;;5140:5;5131:32;;;5156:6;5131:32;;;;;;:::i;:::-;;;;;;;;4791:380;;;:::o;13177:2991::-;13293:1;13277:18;;:4;:18;;;13269:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13370:1;13356:16;;:2;:16;;;13348:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13440:1;13431:6;:10;13423:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13493:14;;;;;;;;;;;13490:1224;;;13535:7;:5;:7::i;:::-;13527:15;;:4;:15;;;;:32;;;;;13552:7;:5;:7::i;:::-;13546:13;;:2;:13;;;;13527:32;:52;;;;;13577:1;13563:16;;:2;:16;;;;13527:52;:77;;;;;13597:6;13583:21;;:2;:21;;;;13527:77;13523:1180;;;13628:13;;;;;;;;;;;13624:245;;13673:31;:37;13705:4;13673:37;;;;;;;;;;;;;;;;;;;;;;;;;:76;;;;13714:31;:35;13746:2;13714:35;;;;;;;;;;;;;;;;;;;;;;;;;13673:76;13665:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;13815:7;:5;:7::i;:::-;13807:15;;:4;:15;;;13799:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13624:245;13919:25;:31;13945:4;13919:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;13955:31;:35;13987:2;13955:35;;;;;;;;;;;;;;;;;;;;;;;;;13954:36;13919:71;13915:773;;;14033:12;;14023:6;:22;;14015:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;14147:15;;14130:13;14140:2;14130:9;:13::i;:::-;14121:6;:22;;;;:::i;:::-;:41;;14113:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;13915:773;;;14267:25;:29;14293:2;14267:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14301:31;:37;14333:4;14301:37;;;;;;;;;;;;;;;;;;;;;;;;;14300:38;14267:71;14263:425;;;14381:13;;14371:6;:23;;14363:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14263:425;;;14489:31;:35;14521:2;14489:35;;;;;;;;;;;;;;;;;;;;;;;;;14488:36;:78;;;;;14529:31;:37;14561:4;14529:37;;;;;;;;;;;;;;;;;;;;;;;;;14528:38;14488:78;14484:204;;;14624:15;;14607:13;14617:2;14607:9;:13::i;:::-;14598:6;:22;;;;:::i;:::-;:41;;14590:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14484:204;14263:425;13915:773;13523:1180;13490:1224;14726:28;14757:24;14775:4;14757:9;:24::i;:::-;14726:55;;14794:12;14833:18;;14809:20;:42;;14794:57;;14867:7;:22;;;;;14878:11;;;;;;;;;;;14867:22;:35;;;;;14894:8;;;;;;;;;;;14893:9;14867:35;:71;;;;;14907:25;:31;14933:4;14907:31;;;;;;;;;;;;;;;;;;;;;;;;;14906:32;14867:71;:101;;;;;14943:19;:25;14963:4;14943:25;;;;;;;;;;;;;;;;;;;;;;;;;14942:26;14867:101;:129;;;;;14973:19;:23;14993:2;14973:23;;;;;;;;;;;;;;;;;;;;;;;;;14972:24;14867:129;14864:232;;;15024:4;15013:8;;:15;;;;;;;;;;;;;;;;;;15043:10;:8;:10::i;:::-;15079:5;15068:8;;:16;;;;;;;;;;;;;;;;;;14864:232;15108:12;15123:4;15108:19;;15226;:25;15246:4;15226:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;15255:19;:23;15275:2;15255:23;;;;;;;;;;;;;;;;;;;;;;;;;15226:52;15223:99;;;15305:5;15295:15;;15223:99;15334:12;15361:21;15464:7;:31;;;;;15494:1;15475:18;;:20;15464:31;:68;;;;;15513:18;;15500:12;:31;15464:68;15461:654;;;15587:25;:29;15613:2;15587:29;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;15630:1;15620:7;;:11;15587:44;15583:357;;;15678:3;15668:7;;15659:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;15652:29;;15721:4;15700:17;;:25;;;;;;;:::i;:::-;;;;;;;;15583:357;;;15786:25;:31;15812:4;15786:31;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;15830:1;15821:6;;:10;15786:45;15783:157;;;15877:3;15868:6;;15859;:15;;;;:::i;:::-;:21;;;;:::i;:::-;15852:28;;15920:4;15899:17;;:25;;;;;;;:::i;:::-;;;;;;;;15783:157;15583:357;15978:1;15971:4;:8;15968:89;;;15999:42;16015:4;16029;16036;15999:15;:42::i;:::-;15968:89;16090:13;16083:4;:20;;;;:::i;:::-;16073:30;;;;;:::i;:::-;;;15461:654;16127:33;16143:4;16149:2;16153:6;16127:15;:33::i;:::-;13256:2912;;;;;13177:2991;;;:::o;18097:633::-;18136:23;18162:24;18180:4;18162:9;:24::i;:::-;18136:50;;18197:25;18225:17;;18197:45;;18277:1;18258:15;:20;:46;;;;18303:1;18282:17;:22;18258:46;18255:60;;;18307:7;;;;18255:60;18369:1;18348:18;;:22;;;;:::i;:::-;18330:15;:40;18327:111;;;18425:1;18404:18;;:22;;;;:::i;:::-;18386:40;;18327:111;18450:12;18475:33;18492:15;18475:16;:33::i;:::-;18539:1;18519:17;:21;;;;18553:18;18572:21;18553:40;;18618:1;18607:10;:12;18604:119;;;18656:15;;;;;;;;;;;18648:29;;18685:21;18648:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18635:76;;;;;18604:119;18125:605;;;;18097:633;:::o;17027:240::-;17144:5;17110:25;:31;17136:4;17110:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17162;17189:4;17195:5;17162:26;:39::i;:::-;17253:5;17219:40;;17247:4;17219:40;;;;;;;;;;;;17027:240;;:::o;3882:602::-;4040:1;4022:20;;:6;:20;;;4014:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4124:1;4103:23;;:9;:23;;;4095:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4179:21;4203:9;:17;4213:6;4203:17;;;;;;;;;;;;;;;;4179:41;;4256:6;4239:13;:23;;4231:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4369:6;4353:13;:22;4333:9;:17;4343:6;4333:17;;;;;;;;;;;;;;;:42;;;;4417:6;4393:9;:20;4403:9;4393:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4458:9;4441:35;;4450:6;4441:35;;;4469:6;4441:35;;;;;;:::i;:::-;;;;;;;;4003:481;3882:602;;;:::o;16176:589::-;16302:21;16340:1;16326:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16302:40;;16371:4;16353;16358:1;16353:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16397:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16387:4;16392:1;16387:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16432:62;16449:4;16464:15;16482:11;16432:8;:62::i;:::-;16533:15;:66;;;16614:11;16640:1;16684:4;16711;16731:15;16533:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16231:534;16176:589;:::o;10911:207::-;11041:10;10999:31;:39;11031:6;10999:39;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;11067:43;11091:6;11099:10;11067:43;;;;;;;:::i;:::-;;;;;;;;10911:207;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:60::-;3702:3;3723:5;3716:12;;3674:60;;;:::o;3740:142::-;3790:9;3823:53;3841:34;3850:24;3868:5;3850:24;:::i;:::-;3841:34;:::i;:::-;3823:53;:::i;:::-;3810:66;;3740:142;;;:::o;3888:126::-;3938:9;3971:37;4002:5;3971:37;:::i;:::-;3958:50;;3888:126;;;:::o;4020:144::-;4088:9;4121:37;4152:5;4121:37;:::i;:::-;4108:50;;4020:144;;;:::o;4170:167::-;4275:55;4324:5;4275:55;:::i;:::-;4270:3;4263:68;4170:167;;:::o;4343:258::-;4454:4;4492:2;4481:9;4477:18;4469:26;;4505:89;4591:1;4580:9;4576:17;4567:6;4505:89;:::i;:::-;4343:258;;;;:::o;4607:118::-;4694:24;4712:5;4694:24;:::i;:::-;4689:3;4682:37;4607:118;;:::o;4731:222::-;4824:4;4862:2;4851:9;4847:18;4839:26;;4875:71;4943:1;4932:9;4928:17;4919:6;4875:71;:::i;:::-;4731:222;;;;:::o;4959:329::-;5018:6;5067:2;5055:9;5046:7;5042:23;5038:32;5035:119;;;5073:79;;:::i;:::-;5035:119;5193:1;5218:53;5263:7;5254:6;5243:9;5239:22;5218:53;:::i;:::-;5208:63;;5164:117;4959:329;;;;:::o;5294:619::-;5371:6;5379;5387;5436:2;5424:9;5415:7;5411:23;5407:32;5404:119;;;5442:79;;:::i;:::-;5404:119;5562:1;5587:53;5632:7;5623:6;5612:9;5608:22;5587:53;:::i;:::-;5577:63;;5533:117;5689:2;5715:53;5760:7;5751:6;5740:9;5736:22;5715:53;:::i;:::-;5705:63;;5660:118;5817:2;5843:53;5888:7;5879:6;5868:9;5864:22;5843:53;:::i;:::-;5833:63;;5788:118;5294:619;;;;;:::o;5919:86::-;5954:7;5994:4;5987:5;5983:16;5972:27;;5919:86;;;:::o;6011:112::-;6094:22;6110:5;6094:22;:::i;:::-;6089:3;6082:35;6011:112;;:::o;6129:214::-;6218:4;6256:2;6245:9;6241:18;6233:26;;6269:67;6333:1;6322:9;6318:17;6309:6;6269:67;:::i;:::-;6129:214;;;;:::o;6349:118::-;6436:24;6454:5;6436:24;:::i;:::-;6431:3;6424:37;6349:118;;:::o;6473:222::-;6566:4;6604:2;6593:9;6589:18;6581:26;;6617:71;6685:1;6674:9;6670:17;6661:6;6617:71;:::i;:::-;6473:222;;;;:::o;6701:116::-;6771:21;6786:5;6771:21;:::i;:::-;6764:5;6761:32;6751:60;;6807:1;6804;6797:12;6751:60;6701:116;:::o;6823:133::-;6866:5;6904:6;6891:20;6882:29;;6920:30;6944:5;6920:30;:::i;:::-;6823:133;;;;:::o;6962:468::-;7027:6;7035;7084:2;7072:9;7063:7;7059:23;7055:32;7052:119;;;7090:79;;:::i;:::-;7052:119;7210:1;7235:50;7277:7;7268:6;7257:9;7253:22;7235:50;:::i;:::-;7225:60;;7181:114;7334:2;7360:53;7405:7;7396:6;7385:9;7381:22;7360:53;:::i;:::-;7350:63;;7305:118;6962:468;;;;;:::o;7436:::-;7501:6;7509;7558:2;7546:9;7537:7;7533:23;7529:32;7526:119;;;7564:79;;:::i;:::-;7526:119;7684:1;7709:53;7754:7;7745:6;7734:9;7730:22;7709:53;:::i;:::-;7699:63;;7655:117;7811:2;7837:50;7879:7;7870:6;7859:9;7855:22;7837:50;:::i;:::-;7827:60;;7782:115;7436:468;;;;;:::o;7910:474::-;7978:6;7986;8035:2;8023:9;8014:7;8010:23;8006:32;8003:119;;;8041:79;;:::i;:::-;8003:119;8161:1;8186:53;8231:7;8222:6;8211:9;8207:22;8186:53;:::i;:::-;8176:63;;8132:117;8288:2;8314:53;8359:7;8350:6;8339:9;8335:22;8314:53;:::i;:::-;8304:63;;8259:118;7910:474;;;;;:::o;8390:180::-;8438:77;8435:1;8428:88;8535:4;8532:1;8525:15;8559:4;8556:1;8549:15;8576:320;8620:6;8657:1;8651:4;8647:12;8637:22;;8704:1;8698:4;8694:12;8725:18;8715:81;;8781:4;8773:6;8769:17;8759:27;;8715:81;8843:2;8835:6;8832:14;8812:18;8809:38;8806:84;;8862:18;;:::i;:::-;8806:84;8627:269;8576:320;;;:::o;8902:182::-;9042:34;9038:1;9030:6;9026:14;9019:58;8902:182;:::o;9090:366::-;9232:3;9253:67;9317:2;9312:3;9253:67;:::i;:::-;9246:74;;9329:93;9418:3;9329:93;:::i;:::-;9447:2;9442:3;9438:12;9431:19;;9090:366;;;:::o;9462:419::-;9628:4;9666:2;9655:9;9651:18;9643:26;;9715:9;9709:4;9705:20;9701:1;9690:9;9686:17;9679:47;9743:131;9869:4;9743:131;:::i;:::-;9735:139;;9462:419;;;:::o;9887:175::-;10027:27;10023:1;10015:6;10011:14;10004:51;9887:175;:::o;10068:366::-;10210:3;10231:67;10295:2;10290:3;10231:67;:::i;:::-;10224:74;;10307:93;10396:3;10307:93;:::i;:::-;10425:2;10420:3;10416:12;10409:19;;10068:366;;;:::o;10440:419::-;10606:4;10644:2;10633:9;10629:18;10621:26;;10693:9;10687:4;10683:20;10679:1;10668:9;10664:17;10657:47;10721:131;10847:4;10721:131;:::i;:::-;10713:139;;10440:419;;;:::o;10865:227::-;11005:34;11001:1;10993:6;10989:14;10982:58;11074:10;11069:2;11061:6;11057:15;11050:35;10865:227;:::o;11098:366::-;11240:3;11261:67;11325:2;11320:3;11261:67;:::i;:::-;11254:74;;11337:93;11426:3;11337:93;:::i;:::-;11455:2;11450:3;11446:12;11439:19;;11098:366;;;:::o;11470:419::-;11636:4;11674:2;11663:9;11659:18;11651:26;;11723:9;11717:4;11713:20;11709:1;11698:9;11694:17;11687:47;11751:131;11877:4;11751:131;:::i;:::-;11743:139;;11470:419;;;:::o;11895:180::-;11943:77;11940:1;11933:88;12040:4;12037:1;12030:15;12064:4;12061:1;12054:15;12081:410;12121:7;12144:20;12162:1;12144:20;:::i;:::-;12139:25;;12178:20;12196:1;12178:20;:::i;:::-;12173:25;;12233:1;12230;12226:9;12255:30;12273:11;12255:30;:::i;:::-;12244:41;;12434:1;12425:7;12421:15;12418:1;12415:22;12395:1;12388:9;12368:83;12345:139;;12464:18;;:::i;:::-;12345:139;12129:362;12081:410;;;;:::o;12497:180::-;12545:77;12542:1;12535:88;12642:4;12639:1;12632:15;12666:4;12663:1;12656:15;12683:185;12723:1;12740:20;12758:1;12740:20;:::i;:::-;12735:25;;12774:20;12792:1;12774:20;:::i;:::-;12769:25;;12813:1;12803:35;;12818:18;;:::i;:::-;12803:35;12860:1;12857;12853:9;12848:14;;12683:185;;;;:::o;12874:228::-;13014:34;13010:1;13002:6;12998:14;12991:58;13083:11;13078:2;13070:6;13066:15;13059:36;12874:228;:::o;13108:366::-;13250:3;13271:67;13335:2;13330:3;13271:67;:::i;:::-;13264:74;;13347:93;13436:3;13347:93;:::i;:::-;13465:2;13460:3;13456:12;13449:19;;13108:366;;;:::o;13480:419::-;13646:4;13684:2;13673:9;13669:18;13661:26;;13733:9;13727:4;13723:20;13719:1;13708:9;13704:17;13697:47;13761:131;13887:4;13761:131;:::i;:::-;13753:139;;13480:419;;;:::o;13905:191::-;13945:3;13964:20;13982:1;13964:20;:::i;:::-;13959:25;;13998:20;14016:1;13998:20;:::i;:::-;13993:25;;14041:1;14038;14034:9;14027:16;;14062:3;14059:1;14056:10;14053:36;;;14069:18;;:::i;:::-;14053:36;13905:191;;;;:::o;14102:174::-;14242:26;14238:1;14230:6;14226:14;14219:50;14102:174;:::o;14282:366::-;14424:3;14445:67;14509:2;14504:3;14445:67;:::i;:::-;14438:74;;14521:93;14610:3;14521:93;:::i;:::-;14639:2;14634:3;14630:12;14623:19;;14282:366;;;:::o;14654:419::-;14820:4;14858:2;14847:9;14843:18;14835:26;;14907:9;14901:4;14897:20;14893:1;14882:9;14878:17;14871:47;14935:131;15061:4;14935:131;:::i;:::-;14927:139;;14654:419;;;:::o;15079:320::-;15194:4;15232:2;15221:9;15217:18;15209:26;;15245:65;15307:1;15296:9;15292:17;15283:6;15245:65;:::i;:::-;15320:72;15388:2;15377:9;15373:18;15364:6;15320:72;:::i;:::-;15079:320;;;;;:::o;15405:223::-;15545:34;15541:1;15533:6;15529:14;15522:58;15614:6;15609:2;15601:6;15597:15;15590:31;15405:223;:::o;15634:366::-;15776:3;15797:67;15861:2;15856:3;15797:67;:::i;:::-;15790:74;;15873:93;15962:3;15873:93;:::i;:::-;15991:2;15986:3;15982:12;15975:19;;15634:366;;;:::o;16006:419::-;16172:4;16210:2;16199:9;16195:18;16187:26;;16259:9;16253:4;16249:20;16245:1;16234:9;16230:17;16223:47;16287:131;16413:4;16287:131;:::i;:::-;16279:139;;16006:419;;;:::o;16431:226::-;16571:34;16567:1;16559:6;16555:14;16548:58;16640:9;16635:2;16627:6;16623:15;16616:34;16431:226;:::o;16663:366::-;16805:3;16826:67;16890:2;16885:3;16826:67;:::i;:::-;16819:74;;16902:93;16991:3;16902:93;:::i;:::-;17020:2;17015:3;17011:12;17004:19;;16663:366;;;:::o;17035:419::-;17201:4;17239:2;17228:9;17224:18;17216:26;;17288:9;17282:4;17278:20;17274:1;17263:9;17259:17;17252:47;17316:131;17442:4;17316:131;:::i;:::-;17308:139;;17035:419;;;:::o;17460:176::-;17600:28;17596:1;17588:6;17584:14;17577:52;17460:176;:::o;17642:366::-;17784:3;17805:67;17869:2;17864:3;17805:67;:::i;:::-;17798:74;;17881:93;17970:3;17881:93;:::i;:::-;17999:2;17994:3;17990:12;17983:19;;17642:366;;;:::o;18014:419::-;18180:4;18218:2;18207:9;18203:18;18195:26;;18267:9;18261:4;18257:20;18253:1;18242:9;18238:17;18231:47;18295:131;18421:4;18295:131;:::i;:::-;18287:139;;18014:419;;;:::o;18439:220::-;18579:34;18575:1;18567:6;18563:14;18556:58;18648:3;18643:2;18635:6;18631:15;18624:28;18439:220;:::o;18665:366::-;18807:3;18828:67;18892:2;18887:3;18828:67;:::i;:::-;18821:74;;18904:93;18993:3;18904:93;:::i;:::-;19022:2;19017:3;19013:12;19006:19;;18665:366;;;:::o;19037:419::-;19203:4;19241:2;19230:9;19226:18;19218:26;;19290:9;19284:4;19280:20;19276:1;19265:9;19261:17;19254:47;19318:131;19444:4;19318:131;:::i;:::-;19310:139;;19037:419;;;:::o;19462:143::-;19519:5;19550:6;19544:13;19535:22;;19566:33;19593:5;19566:33;:::i;:::-;19462:143;;;;:::o;19611:351::-;19681:6;19730:2;19718:9;19709:7;19705:23;19701:32;19698:119;;;19736:79;;:::i;:::-;19698:119;19856:1;19881:64;19937:7;19928:6;19917:9;19913:22;19881:64;:::i;:::-;19871:74;;19827:128;19611:351;;;;:::o;19968:332::-;20089:4;20127:2;20116:9;20112:18;20104:26;;20140:71;20208:1;20197:9;20193:17;20184:6;20140:71;:::i;:::-;20221:72;20289:2;20278:9;20274:18;20265:6;20221:72;:::i;:::-;19968:332;;;;;:::o;20306:137::-;20360:5;20391:6;20385:13;20376:22;;20407:30;20431:5;20407:30;:::i;:::-;20306:137;;;;:::o;20449:345::-;20516:6;20565:2;20553:9;20544:7;20540:23;20536:32;20533:119;;;20571:79;;:::i;:::-;20533:119;20691:1;20716:61;20769:7;20760:6;20749:9;20745:22;20716:61;:::i;:::-;20706:71;;20662:125;20449:345;;;;:::o;20800:244::-;20940:34;20936:1;20928:6;20924:14;20917:58;21009:27;21004:2;20996:6;20992:15;20985:52;20800:244;:::o;21050:366::-;21192:3;21213:67;21277:2;21272:3;21213:67;:::i;:::-;21206:74;;21289:93;21378:3;21289:93;:::i;:::-;21407:2;21402:3;21398:12;21391:19;;21050:366;;;:::o;21422:419::-;21588:4;21626:2;21615:9;21611:18;21603:26;;21675:9;21669:4;21665:20;21661:1;21650:9;21646:17;21639:47;21703:131;21829:4;21703:131;:::i;:::-;21695:139;;21422:419;;;:::o;21847:224::-;21987:34;21983:1;21975:6;21971:14;21964:58;22056:7;22051:2;22043:6;22039:15;22032:32;21847:224;:::o;22077:366::-;22219:3;22240:67;22304:2;22299:3;22240:67;:::i;:::-;22233:74;;22316:93;22405:3;22316:93;:::i;:::-;22434:2;22429:3;22425:12;22418:19;;22077:366;;;:::o;22449:419::-;22615:4;22653:2;22642:9;22638:18;22630:26;;22702:9;22696:4;22692:20;22688:1;22677:9;22673:17;22666:47;22730:131;22856:4;22730:131;:::i;:::-;22722:139;;22449:419;;;:::o;22874:231::-;23014:34;23010:1;23002:6;22998:14;22991:58;23083:14;23078:2;23070:6;23066:15;23059:39;22874:231;:::o;23111:366::-;23253:3;23274:67;23338:2;23333:3;23274:67;:::i;:::-;23267:74;;23350:93;23439:3;23350:93;:::i;:::-;23468:2;23463:3;23459:12;23452:19;;23111:366;;;:::o;23483:419::-;23649:4;23687:2;23676:9;23672:18;23664:26;;23736:9;23730:4;23726:20;23722:1;23711:9;23707:17;23700:47;23764:131;23890:4;23764:131;:::i;:::-;23756:139;;23483:419;;;:::o;23908:232::-;24048:34;24044:1;24036:6;24032:14;24025:58;24117:15;24112:2;24104:6;24100:15;24093:40;23908:232;:::o;24146:366::-;24288:3;24309:67;24373:2;24368:3;24309:67;:::i;:::-;24302:74;;24385:93;24474:3;24385:93;:::i;:::-;24503:2;24498:3;24494:12;24487:19;;24146:366;;;:::o;24518:419::-;24684:4;24722:2;24711:9;24707:18;24699:26;;24771:9;24765:4;24761:20;24757:1;24746:9;24742:17;24735:47;24799:131;24925:4;24799:131;:::i;:::-;24791:139;;24518:419;;;:::o;24943:229::-;25083:34;25079:1;25071:6;25067:14;25060:58;25152:12;25147:2;25139:6;25135:15;25128:37;24943:229;:::o;25178:366::-;25320:3;25341:67;25405:2;25400:3;25341:67;:::i;:::-;25334:74;;25417:93;25506:3;25417:93;:::i;:::-;25535:2;25530:3;25526:12;25519:19;;25178:366;;;:::o;25550:419::-;25716:4;25754:2;25743:9;25739:18;25731:26;;25803:9;25797:4;25793:20;25789:1;25778:9;25774:17;25767:47;25831:131;25957:4;25831:131;:::i;:::-;25823:139;;25550:419;;;:::o;25975:225::-;26115:34;26111:1;26103:6;26099:14;26092:58;26184:8;26179:2;26171:6;26167:15;26160:33;25975:225;:::o;26206:366::-;26348:3;26369:67;26433:2;26428:3;26369:67;:::i;:::-;26362:74;;26445:93;26534:3;26445:93;:::i;:::-;26563:2;26558:3;26554:12;26547:19;;26206:366;;;:::o;26578:419::-;26744:4;26782:2;26771:9;26767:18;26759:26;;26831:9;26825:4;26821:20;26817:1;26806:9;26802:17;26795:47;26859:131;26985:4;26859:131;:::i;:::-;26851:139;;26578:419;;;:::o;27003:147::-;27104:11;27141:3;27126:18;;27003:147;;;;:::o;27156:114::-;;:::o;27276:398::-;27435:3;27456:83;27537:1;27532:3;27456:83;:::i;:::-;27449:90;;27548:93;27637:3;27548:93;:::i;:::-;27666:1;27661:3;27657:11;27650:18;;27276:398;;;:::o;27680:379::-;27864:3;27886:147;28029:3;27886:147;:::i;:::-;27879:154;;28050:3;28043:10;;27680:379;;;:::o;28065:223::-;28205:34;28201:1;28193:6;28189:14;28182:58;28274:6;28269:2;28261:6;28257:15;28250:31;28065:223;:::o;28294:366::-;28436:3;28457:67;28521:2;28516:3;28457:67;:::i;:::-;28450:74;;28533:93;28622:3;28533:93;:::i;:::-;28651:2;28646:3;28642:12;28635:19;;28294:366;;;:::o;28666:419::-;28832:4;28870:2;28859:9;28855:18;28847:26;;28919:9;28913:4;28909:20;28905:1;28894:9;28890:17;28883:47;28947:131;29073:4;28947:131;:::i;:::-;28939:139;;28666:419;;;:::o;29091:221::-;29231:34;29227:1;29219:6;29215:14;29208:58;29300:4;29295:2;29287:6;29283:15;29276:29;29091:221;:::o;29318:366::-;29460:3;29481:67;29545:2;29540:3;29481:67;:::i;:::-;29474:74;;29557:93;29646:3;29557:93;:::i;:::-;29675:2;29670:3;29666:12;29659:19;;29318:366;;;:::o;29690:419::-;29856:4;29894:2;29883:9;29879:18;29871:26;;29943:9;29937:4;29933:20;29929:1;29918:9;29914:17;29907:47;29971:131;30097:4;29971:131;:::i;:::-;29963:139;;29690:419;;;:::o;30115:224::-;30255:34;30251:1;30243:6;30239:14;30232:58;30324:7;30319:2;30311:6;30307:15;30300:32;30115:224;:::o;30345:366::-;30487:3;30508:67;30572:2;30567:3;30508:67;:::i;:::-;30501:74;;30584:93;30673:3;30584:93;:::i;:::-;30702:2;30697:3;30693:12;30686:19;;30345:366;;;:::o;30717:419::-;30883:4;30921:2;30910:9;30906:18;30898:26;;30970:9;30964:4;30960:20;30956:1;30945:9;30941:17;30934:47;30998:131;31124:4;30998:131;:::i;:::-;30990:139;;30717:419;;;:::o;31142:222::-;31282:34;31278:1;31270:6;31266:14;31259:58;31351:5;31346:2;31338:6;31334:15;31327:30;31142:222;:::o;31370:366::-;31512:3;31533:67;31597:2;31592:3;31533:67;:::i;:::-;31526:74;;31609:93;31698:3;31609:93;:::i;:::-;31727:2;31722:3;31718:12;31711:19;;31370:366;;;:::o;31742:419::-;31908:4;31946:2;31935:9;31931:18;31923:26;;31995:9;31989:4;31985:20;31981:1;31970:9;31966:17;31959:47;32023:131;32149:4;32023:131;:::i;:::-;32015:139;;31742:419;;;:::o;32167:179::-;32307:31;32303:1;32295:6;32291:14;32284:55;32167:179;:::o;32352:366::-;32494:3;32515:67;32579:2;32574:3;32515:67;:::i;:::-;32508:74;;32591:93;32680:3;32591:93;:::i;:::-;32709:2;32704:3;32700:12;32693:19;;32352:366;;;:::o;32724:419::-;32890:4;32928:2;32917:9;32913:18;32905:26;;32977:9;32971:4;32967:20;32963:1;32952:9;32948:17;32941:47;33005:131;33131:4;33005:131;:::i;:::-;32997:139;;32724:419;;;:::o;33149:172::-;33289:24;33285:1;33277:6;33273:14;33266:48;33149:172;:::o;33327:366::-;33469:3;33490:67;33554:2;33549:3;33490:67;:::i;:::-;33483:74;;33566:93;33655:3;33566:93;:::i;:::-;33684:2;33679:3;33675:12;33668:19;;33327:366;;;:::o;33699:419::-;33865:4;33903:2;33892:9;33888:18;33880:26;;33952:9;33946:4;33942:20;33938:1;33927:9;33923:17;33916:47;33980:131;34106:4;33980:131;:::i;:::-;33972:139;;33699:419;;;:::o;34124:172::-;34264:24;34260:1;34252:6;34248:14;34241:48;34124:172;:::o;34302:366::-;34444:3;34465:67;34529:2;34524:3;34465:67;:::i;:::-;34458:74;;34541:93;34630:3;34541:93;:::i;:::-;34659:2;34654:3;34650:12;34643:19;;34302:366;;;:::o;34674:419::-;34840:4;34878:2;34867:9;34863:18;34855:26;;34927:9;34921:4;34917:20;34913:1;34902:9;34898:17;34891:47;34955:131;35081:4;34955:131;:::i;:::-;34947:139;;34674:419;;;:::o;35099:227::-;35239:34;35235:1;35227:6;35223:14;35216:58;35308:10;35303:2;35295:6;35291:15;35284:35;35099:227;:::o;35332:366::-;35474:3;35495:67;35559:2;35554:3;35495:67;:::i;:::-;35488:74;;35571:93;35660:3;35571:93;:::i;:::-;35689:2;35684:3;35680:12;35673:19;;35332:366;;;:::o;35704:419::-;35870:4;35908:2;35897:9;35893:18;35885:26;;35957:9;35951:4;35947:20;35943:1;35932:9;35928:17;35921:47;35985:131;36111:4;35985:131;:::i;:::-;35977:139;;35704:419;;;:::o;36129:174::-;36269:26;36265:1;36257:6;36253:14;36246:50;36129:174;:::o;36309:366::-;36451:3;36472:67;36536:2;36531:3;36472:67;:::i;:::-;36465:74;;36548:93;36637:3;36548:93;:::i;:::-;36666:2;36661:3;36657:12;36650:19;;36309:366;;;:::o;36681:419::-;36847:4;36885:2;36874:9;36870:18;36862:26;;36934:9;36928:4;36924:20;36920:1;36909:9;36905:17;36898:47;36962:131;37088:4;36962:131;:::i;:::-;36954:139;;36681:419;;;:::o;37106:229::-;37246:34;37242:1;37234:6;37230:14;37223:58;37315:12;37310:2;37302:6;37298:15;37291:37;37106:229;:::o;37341:366::-;37483:3;37504:67;37568:2;37563:3;37504:67;:::i;:::-;37497:74;;37580:93;37669:3;37580:93;:::i;:::-;37698:2;37693:3;37689:12;37682:19;;37341:366;;;:::o;37713:419::-;37879:4;37917:2;37906:9;37902:18;37894:26;;37966:9;37960:4;37956:20;37952:1;37941:9;37937:17;37930:47;37994:131;38120:4;37994:131;:::i;:::-;37986:139;;37713:419;;;:::o;38138:194::-;38178:4;38198:20;38216:1;38198:20;:::i;:::-;38193:25;;38232:20;38250:1;38232:20;:::i;:::-;38227:25;;38276:1;38273;38269:9;38261:17;;38300:1;38294:4;38291:11;38288:37;;;38305:18;;:::i;:::-;38288:37;38138:194;;;;:::o;38338:225::-;38478:34;38474:1;38466:6;38462:14;38455:58;38547:8;38542:2;38534:6;38530:15;38523:33;38338:225;:::o;38569:366::-;38711:3;38732:67;38796:2;38791:3;38732:67;:::i;:::-;38725:74;;38808:93;38897:3;38808:93;:::i;:::-;38926:2;38921:3;38917:12;38910:19;;38569:366;;;:::o;38941:419::-;39107:4;39145:2;39134:9;39130:18;39122:26;;39194:9;39188:4;39184:20;39180:1;39169:9;39165:17;39158:47;39222:131;39348:4;39222:131;:::i;:::-;39214:139;;38941:419;;;:::o;39366:180::-;39414:77;39411:1;39404:88;39511:4;39508:1;39501:15;39535:4;39532:1;39525:15;39552:180;39600:77;39597:1;39590:88;39697:4;39694:1;39687:15;39721:4;39718:1;39711:15;39738:143;39795:5;39826:6;39820:13;39811:22;;39842:33;39869:5;39842:33;:::i;:::-;39738:143;;;;:::o;39887:351::-;39957:6;40006:2;39994:9;39985:7;39981:23;39977:32;39974:119;;;40012:79;;:::i;:::-;39974:119;40132:1;40157:64;40213:7;40204:6;40193:9;40189:22;40157:64;:::i;:::-;40147:74;;40103:128;39887:351;;;;:::o;40244:85::-;40289:7;40318:5;40307:16;;40244:85;;;:::o;40335:158::-;40393:9;40426:61;40444:42;40453:32;40479:5;40453:32;:::i;:::-;40444:42;:::i;:::-;40426:61;:::i;:::-;40413:74;;40335:158;;;:::o;40499:147::-;40594:45;40633:5;40594:45;:::i;:::-;40589:3;40582:58;40499:147;;:::o;40652:114::-;40719:6;40753:5;40747:12;40737:22;;40652:114;;;:::o;40772:184::-;40871:11;40905:6;40900:3;40893:19;40945:4;40940:3;40936:14;40921:29;;40772:184;;;;:::o;40962:132::-;41029:4;41052:3;41044:11;;41082:4;41077:3;41073:14;41065:22;;40962:132;;;:::o;41100:108::-;41177:24;41195:5;41177:24;:::i;:::-;41172:3;41165:37;41100:108;;:::o;41214:179::-;41283:10;41304:46;41346:3;41338:6;41304:46;:::i;:::-;41382:4;41377:3;41373:14;41359:28;;41214:179;;;;:::o;41399:113::-;41469:4;41501;41496:3;41492:14;41484:22;;41399:113;;;:::o;41548:732::-;41667:3;41696:54;41744:5;41696:54;:::i;:::-;41766:86;41845:6;41840:3;41766:86;:::i;:::-;41759:93;;41876:56;41926:5;41876:56;:::i;:::-;41955:7;41986:1;41971:284;41996:6;41993:1;41990:13;41971:284;;;42072:6;42066:13;42099:63;42158:3;42143:13;42099:63;:::i;:::-;42092:70;;42185:60;42238:6;42185:60;:::i;:::-;42175:70;;42031:224;42018:1;42015;42011:9;42006:14;;41971:284;;;41975:14;42271:3;42264:10;;41672:608;;;41548:732;;;;:::o;42286:831::-;42549:4;42587:3;42576:9;42572:19;42564:27;;42601:71;42669:1;42658:9;42654:17;42645:6;42601:71;:::i;:::-;42682:80;42758:2;42747:9;42743:18;42734:6;42682:80;:::i;:::-;42809:9;42803:4;42799:20;42794:2;42783:9;42779:18;42772:48;42837:108;42940:4;42931:6;42837:108;:::i;:::-;42829:116;;42955:72;43023:2;43012:9;43008:18;42999:6;42955:72;:::i;:::-;43037:73;43105:3;43094:9;43090:19;43081:6;43037:73;:::i;:::-;42286:831;;;;;;;;:::o;43123:320::-;43238:4;43276:2;43265:9;43261:18;43253:26;;43289:71;43357:1;43346:9;43342:17;43333:6;43289:71;:::i;:::-;43370:66;43432:2;43421:9;43417:18;43408:6;43370:66;:::i;:::-;43123:320;;;;;:::o

Swarm Source

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