ETH Price: $1,878.15 (-12.40%)
 

Overview

Max Total Supply

10,000,000 QUBIC

Holders

69

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
QubicAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2025-06-05
*/

//SPDX-License-Identifier: UNLICENSED

// QubicAI - World Class AI for Next-Gen 3D Creativity
// W: https://qubicai.app/
// T: https://t.me/qubicAIOfficial
// X: https://x.com/qubicAIOfficial

pragma solidity 0.8.19;



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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

library Address {
    function sendValue(
        address payable recipient,
        uint256 amount
    ) internal returns (bool) {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        (bool success, ) = recipient.call{value: amount}("");
        return success; // always proceeds
    }
}

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

abstract 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() public 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;
    }
}

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) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, 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 _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

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

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

contract QubicAI is ERC20, Ownable {
    using Address for address payable;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    mapping(address => bool) private _isExcludedFromFees;

    address public marketingFeeReceiver;
    uint256 public tradingEnabledTime;

    bool private inSwapAndLiquify;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public marketingFee;
    uint256 public maxSwapThreshold;
    uint256 public maxWalletSize;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend);
    event MarketingFeeReceiverChanged(address marketingFeeReceiver);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 bnbReceived,
        uint256 tokensIntoLiqudity
    );
    event ToggleSwapping(bool swapEnabled);
    event FeesLowered(uint256 _new);
    event MaxWalletSizeRaised(uint256 _new);
    event MaxSwapThresholdUpdated(uint256 _new);

    constructor(address _router, address _feeReceiver, uint256 _initalLiquidity) payable ERC20("Qubic AI", "QUBIC") { //uniswapv2router address, feereceiving wallet, Tokenname, symbol
        
        marketingFee = 25;

        marketingFeeReceiver = _feeReceiver;
        uniswapV2Router = IUniswapV2Router02(_router);

        //Excluding wallets from fees
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingFeeReceiver] = true;

        uint256 ownerSupply = 10_000_000 * 10**decimals() - _initalLiquidity;

        _mint(owner(), ownerSupply);
        _mint(address(this), _initalLiquidity);

        maxWalletSize = 7_000*10**decimals();
        maxSwapThreshold = 7_000*10**decimals();
        
        swapEnabled = false;
        tradingEnabled = false;

    }

    receive() external payable {}

    function claimStuckTokens(address token) external onlyOwner {
        require(
            token != address(this),
            "Owner cannot claim contract's balance of its own tokens"
        );
        if (token == address(0x0)) {
            payable(msg.sender).sendValue(address(this).balance);
            return;
        }

        IERC20(token).transfer(
            msg.sender,
            IERC20(token).balanceOf(address(this))
        );
    }

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

        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function changeFeeReceiver(
        address _marketingFeeReceiver
    ) external onlyOwner {
        require(
            _marketingFeeReceiver != address(0) &&
            _marketingFeeReceiver != address(0xdead),
            "Marketing Fee receiver cannot be the zero or dead address"
        );
        marketingFeeReceiver = _marketingFeeReceiver;

        emit MarketingFeeReceiverChanged(marketingFeeReceiver);
    }

    event TradingEnabled(bool tradingEnabled, uint256 tradingEnabledTime);

    function enableTrading() external onlyOwner {
        require(tradingEnabled == false, "QUBICToken: trading already enabled!");
        _approve(address(this), address(uniswapV2Router), type(uint256).max);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingEnabled = true;
        swapEnabled = true;
        tradingEnabledTime = block.timestamp;
        _isExcludedFromFees[uniswapV2Pair] = true;

        emit TradingEnabled(tradingEnabled, tradingEnabledTime);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "Transfer from the zero address");
        require(to != address(0), "Transfer to the zero address");
        require(tradingEnabled 
                || _isExcludedFromFees[from] 
                || _isExcludedFromFees[to],
            "Trading not yet enabled!"
        );

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        uint256 _totalFees;
        if (_isExcludedFromFees[from] && _isExcludedFromFees[to] && inSwapAndLiquify) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair || to == uniswapV2Pair && tradingEnabled) {
            _totalFees = marketingFee;
        } else {
            _totalFees = 0;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

        if(to == uniswapV2Pair) {
            if (contractTokenBalance > maxSwapThreshold && !inSwapAndLiquify && swapEnabled) {
                inSwapAndLiquify = true;

                _swapAndSendMarketing(maxSwapThreshold);
                
                inSwapAndLiquify = false;
            }
        }

        if(tradingEnabled && !_isExcludedFromFees[to] && !inSwapAndLiquify) {
            uint256 toWalletSize = balanceOf(to);
            require(toWalletSize + amount <= maxWalletSize, "Maximum wallet size exceeded!");
        }

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

    function toggleSwapping(bool _swapEnabled) external onlyOwner {
        require(swapEnabled != _swapEnabled, "Currently at the same stage");
        swapEnabled = _swapEnabled;
        emit ToggleSwapping(swapEnabled);
    }

    function _swapAndSendMarketing(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uint256 newBalance = address(this).balance - initialBalance;

        payable(marketingFeeReceiver).sendValue(newBalance);

        emit SwapAndSendFee(tokenAmount, newBalance);
    }

    function sellFees() public onlyOwner() {
        uint256 contractBalance = balanceOf(address(this));
        _swapAndSendMarketing(contractBalance);
    }

    function lowerFees(uint256 _newFee) public onlyOwner() {
        require(_newFee < marketingFee, "QUBICToken: New fee must be lower than old fee!");

        marketingFee = _newFee;

        emit FeesLowered(_newFee);
    }

    function raiseMaxLimit(uint256 _newLimit) public onlyOwner() {
        require(_newLimit > maxWalletSize, "QUBICToken: New limit must be higher than older!");

        maxWalletSize = _newLimit;

        emit MaxWalletSizeRaised(_newLimit);
    }

    function setSwapThreshold(uint256 _newThreshold) public onlyOwner {
        maxSwapThreshold = _newThreshold;

        emit MaxSwapThresholdUpdated(_newThreshold);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"uint256","name":"_initalLiquidity","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_new","type":"uint256"}],"name":"FeesLowered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"}],"name":"MarketingFeeReceiverChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_new","type":"uint256"}],"name":"MaxSwapThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_new","type":"uint256"}],"name":"MaxWalletSizeRaised","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"swapEnabled","type":"bool"}],"name":"ToggleSwapping","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingEnabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"tradingEnabledTime","type":"uint256"}],"name":"TradingEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"lowerFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","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":[{"internalType":"uint256","name":"_newLimit","type":"uint256"}],"name":"raiseMaxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newThreshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwapping","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabledTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040516200511e3803806200511e8339818101604052810190620000299190620006d1565b6040518060400160405280600881526020017f51756269632041490000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f51554249430000000000000000000000000000000000000000000000000000008152508160039081620000a691906200099d565b508060049081620000b891906200099d565b5050506000620000cd620004a160201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506019600c8190555081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860006200020c620004a960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000816200039c620004d360201b60201c565b600a620003aa919062000c14565b62989680620003ba919062000c65565b620003c6919062000cb0565b9050620003e9620003dc620004a960201b60201c565b82620004dc60201b60201c565b620003fb3083620004dc60201b60201c565b6200040b620004d360201b60201c565b600a62000419919062000c14565b611b5862000428919062000c65565b600e819055506200043e620004d360201b60201c565b600a6200044c919062000c14565b611b586200045b919062000c65565b600d819055506000600b60016101000a81548160ff0219169083151502179055506000600b60026101000a81548160ff0219169083151502179055505050505062000dd7565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200054e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005459062000d4c565b60405180910390fd5b806002600082825462000562919062000d6e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620005b9919062000d6e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000620919062000dba565b60405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200065e8262000631565b9050919050565b620006708162000651565b81146200067c57600080fd5b50565b600081519050620006908162000665565b92915050565b6000819050919050565b620006ab8162000696565b8114620006b757600080fd5b50565b600081519050620006cb81620006a0565b92915050565b600080600060608486031215620006ed57620006ec6200062c565b5b6000620006fd868287016200067f565b935050602062000710868287016200067f565b92505060406200072386828701620006ba565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007af57607f821691505b602082108103620007c557620007c462000767565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200082f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007f0565b6200083b8683620007f0565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200087e62000878620008728462000696565b62000853565b62000696565b9050919050565b6000819050919050565b6200089a836200085d565b620008b2620008a98262000885565b848454620007fd565b825550505050565b600090565b620008c9620008ba565b620008d68184846200088f565b505050565b5b81811015620008fe57620008f2600082620008bf565b600181019050620008dc565b5050565b601f8211156200094d576200091781620007cb565b6200092284620007e0565b8101602085101562000932578190505b6200094a6200094185620007e0565b830182620008db565b50505b505050565b600082821c905092915050565b6000620009726000198460080262000952565b1980831691505092915050565b60006200098d83836200095f565b9150826002028217905092915050565b620009a8826200072d565b67ffffffffffffffff811115620009c457620009c362000738565b5b620009d0825462000796565b620009dd82828562000902565b600060209050601f83116001811462000a15576000841562000a00578287015190505b62000a0c85826200097f565b86555062000a7c565b601f19841662000a2586620007cb565b60005b8281101562000a4f5784890151825560018201915060208501945060208101905062000a28565b8683101562000a6f578489015162000a6b601f8916826200095f565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000b125780860481111562000aea5762000ae962000a84565b5b600185161562000afa5780820291505b808102905062000b0a8562000ab3565b945062000aca565b94509492505050565b60008262000b2d576001905062000c00565b8162000b3d576000905062000c00565b816001811462000b56576002811462000b615762000b97565b600191505062000c00565b60ff84111562000b765762000b7562000a84565b5b8360020a91508482111562000b905762000b8f62000a84565b5b5062000c00565b5060208310610133831016604e8410600b841016171562000bd15782820a90508381111562000bcb5762000bca62000a84565b5b62000c00565b62000be0848484600162000ac0565b9250905081840481111562000bfa5762000bf962000a84565b5b81810290505b9392505050565b600060ff82169050919050565b600062000c218262000696565b915062000c2e8362000c07565b925062000c5d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b1b565b905092915050565b600062000c728262000696565b915062000c7f8362000696565b925082820262000c8f8162000696565b9150828204841483151762000ca95762000ca862000a84565b5b5092915050565b600062000cbd8262000696565b915062000cca8362000696565b925082820390508181111562000ce55762000ce462000a84565b5b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d34601f8362000ceb565b915062000d418262000cfc565b602082019050919050565b6000602082019050818103600083015262000d678162000d25565b9050919050565b600062000d7b8262000696565b915062000d888362000696565b925082820190508082111562000da35762000da262000a84565b5b92915050565b62000db48162000696565b82525050565b600060208201905062000dd1600083018462000da9565b92915050565b6143378062000de76000396000f3fe6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063e0f3ccf51161006f578063e0f3ccf514610710578063e3b24c8014610727578063e96fada214610750578063f2fde38b1461077b578063f9d0831a146107a4576101f9565b8063a9059cbb14610642578063acef1a441461067f578063c0246668146106aa578063dd62ed3e146106d3576101f9565b80638f3fa860116100dc5780638f3fa8601461058657806395d89b41146105b15780639d0014b1146105dc578063a457c2d714610605576101f9565b8063715018a6146105045780637c08b9641461051b5780638a8c523c146105445780638da5cb5b1461055b576101f9565b806339509351116101855780636b67c4df116101545780636b67c4df146104465780636ddd1713146104715780636fd8fb7a1461049c57806370a08231146104c7576101f9565b8063395093511461037657806349bd5a5e146103b35780634ada218b146103de5780634fbee19314610409576101f9565b806318160ddd116101c157806318160ddd146102ba578063239be29a146102e557806323b872dd1461030e578063313ce5671461034b576101f9565b806306fdde03146101fe578063095ea7b3146102295780630f198ee8146102665780631694505e1461028f576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107cd565b6040516102209190612f39565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b9190612ff4565b61085f565b60405161025d919061304f565b60405180910390f35b34801561027257600080fd5b5061028d6004803603810190610288919061306a565b61087d565b005b34801561029b57600080fd5b506102a4610999565b6040516102b191906130f6565b60405180910390f35b3480156102c657600080fd5b506102cf6109bf565b6040516102dc9190613120565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190613167565b6109c9565b005b34801561031a57600080fd5b5061033560048036038101906103309190613194565b610b18565b604051610342919061304f565b60405180910390f35b34801561035757600080fd5b50610360610c37565b60405161036d9190613203565b60405180910390f35b34801561038257600080fd5b5061039d60048036038101906103989190612ff4565b610c40565b6040516103aa919061304f565b60405180910390f35b3480156103bf57600080fd5b506103c8610cec565b6040516103d5919061322d565b60405180910390f35b3480156103ea57600080fd5b506103f3610d12565b604051610400919061304f565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b9190613248565b610d25565b60405161043d919061304f565b60405180910390f35b34801561045257600080fd5b5061045b610d7b565b6040516104689190613120565b60405180910390f35b34801561047d57600080fd5b50610486610d81565b604051610493919061304f565b60405180910390f35b3480156104a857600080fd5b506104b1610d94565b6040516104be9190613120565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e99190613248565b610d9a565b6040516104fb9190613120565b60405180910390f35b34801561051057600080fd5b50610519610de2565b005b34801561052757600080fd5b50610542600480360381019061053d9190613248565b610f3a565b005b34801561055057600080fd5b50610559611118565b005b34801561056757600080fd5b506105706116d2565b60405161057d919061322d565b60405180910390f35b34801561059257600080fd5b5061059b6116fc565b6040516105a89190613120565b60405180910390f35b3480156105bd57600080fd5b506105c6611702565b6040516105d39190612f39565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe919061306a565b611794565b005b34801561061157600080fd5b5061062c60048036038101906106279190612ff4565b61186c565b604051610639919061304f565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190612ff4565b611957565b604051610676919061304f565b60405180910390f35b34801561068b57600080fd5b50610694611975565b6040516106a19190613120565b60405180910390f35b3480156106b657600080fd5b506106d160048036038101906106cc9190613275565b61197b565b005b3480156106df57600080fd5b506106fa60048036038101906106f591906132b5565b611abb565b6040516107079190613120565b60405180910390f35b34801561071c57600080fd5b50610725611b42565b005b34801561073357600080fd5b5061074e6004803603810190610749919061306a565b611bf2565b005b34801561075c57600080fd5b50610765611d0e565b604051610772919061322d565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613248565b611d34565b005b3480156107b057600080fd5b506107cb60048036038101906107c69190613248565b611efa565b005b6060600380546107dc90613324565b80601f016020809104026020016040519081016040528092919081815260200182805461080890613324565b80156108555780601f1061082a57610100808354040283529160200191610855565b820191906000526020600020905b81548152906001019060200180831161083857829003601f168201915b5050505050905090565b600061087361086c61215e565b8484612166565b6001905092915050565b61088561215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090b906133a1565b60405180910390fd5b600c548110610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90613433565b60405180910390fd5b80600c819055507f521fe74e1c24ea5dc1327c29145ebc90bae09bc5a6f6bea118b4ad87793327a58160405161098e9190613120565b60405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6109d161215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a57906133a1565b60405180910390fd5b801515600b60019054906101000a900460ff16151503610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac9061349f565b60405180910390fd5b80600b60016101000a81548160ff0219169083151502179055507f0b24deddd077e0149099adf20869b94ebb4b0898a1068e9af5e30529f596e532600b60019054906101000a900460ff16604051610b0d919061304f565b60405180910390a150565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b6461215e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c205782811015610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0290613531565b60405180910390fd5b610c1f85610c1761215e565b858403612166565b5b610c2b85858561232f565b60019150509392505050565b60006012905090565b6000610ce2610c4d61215e565b848460016000610c5b61215e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cdd9190613580565b612166565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c5481565b600b60019054906101000a900460ff1681565b600a5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dea61215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e70906133a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f4261215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc8906133a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561103c575061dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290613626565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fce24358e1d81b90be8bb8786b891404133aa63ffde0e56b69ccf25a5e3c4df06600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161110d919061322d565b60405180910390a150565b61112061215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a6906133a1565b60405180910390fd5b60001515600b60029054906101000a900460ff16151514611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc906136b8565b60405180910390fd5b61125230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612166565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e391906136ed565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561136c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139091906136ed565b6040518363ffffffff1660e01b81526004016113ad92919061371a565b6020604051808303816000875af11580156113cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f091906136ed565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061147930610d9a565b6000806114846116d2565b426040518863ffffffff1660e01b81526004016114a69695949392919061377e565b60606040518083038185885af11580156114c4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114e991906137f4565b505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161158b929190613847565b6020604051808303816000875af11580156115aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ce9190613885565b506001600b60026101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff02191690831515021790555042600a81905550600160086000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3eb2d65e1de77434db1b2cb0645de0085059e6e514d7b9641fdc2978d8e40c40600b60029054906101000a900460ff16600a546040516116c89291906138b2565b60405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606004805461171190613324565b80601f016020809104026020016040519081016040528092919081815260200182805461173d90613324565b801561178a5780601f1061175f5761010080835404028352916020019161178a565b820191906000526020600020905b81548152906001019060200180831161176d57829003601f168201915b5050505050905090565b61179c61215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461182b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611822906133a1565b60405180910390fd5b80600d819055507fb090ae518da13bb076e9fad6694791d1d427db3284f7ac7321fbeafac08c7b27816040516118619190613120565b60405180910390a150565b6000806001600061187b61215e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f9061394d565b60405180910390fd5b61194c61194361215e565b85858403612166565b600191505092915050565b600061196b61196461215e565b848461232f565b6001905092915050565b600d5481565b61198361215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a09906133a1565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611aaf919061304f565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b4a61215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd0906133a1565b60405180910390fd5b6000611be430610d9a565b9050611bef816128d3565b50565b611bfa61215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c80906133a1565b60405180910390fd5b600e548111611ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc4906139df565b60405180910390fd5b80600e819055507f69626ae9392dcbdfaecc4d3af4d6c00e0bb3888f512459d89551c2762e406c4181604051611d039190613120565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d3c61215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc2906133a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3190613a71565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611f0261215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f88906133a1565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff690613b03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120625761205c473373ffffffffffffffffffffffffffffffffffffffff16612b8590919063ffffffff16565b5061215b565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016120b8919061322d565b602060405180830381865afa1580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f99190613b23565b6040518363ffffffff1660e01b8152600401612116929190613847565b6020604051808303816000875af1158015612135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121599190613885565b505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cc90613bc2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b90613c54565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123229190613120565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239590613cc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361240d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240490613d2c565b60405180910390fd5b600b60029054906101000a900460ff16806124715750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124c55750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fb90613d98565b60405180910390fd5b6000810361251d5761251883836000612c40565b6128ce565b600061252830610d9a565b90506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125ce5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156125e65750600b60009054906101000a900460ff165b156125f457600090506126ca565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806126b55750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126b45750600b60029054906101000a900460ff165b5b156126c457600c5490506126c9565b600090505b5b600081111561270a576000606482856126e39190613db8565b6126ed9190613e29565b905080846126fb9190613e5a565b9350612708863083612c40565b505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036127dd57600d548211801561277d5750600b60009054906101000a900460ff16155b80156127955750600b60019054906101000a900460ff165b156127dc576001600b60006101000a81548160ff0219169083151502179055506127c0600d546128d3565b6000600b60006101000a81548160ff0219169083151502179055505b5b600b60029054906101000a900460ff1680156128435750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561285c5750600b60009054906101000a900460ff16155b156128c057600061286c85610d9a565b9050600e54848261287d9190613580565b11156128be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b590613eda565b60405180910390fd5b505b6128cb858585612c40565b50505b505050565b60004790506000600267ffffffffffffffff8111156128f5576128f4613efa565b5b6040519080825280602002602001820160405280156129235781602001602082028036833780820191505090505b509050308160008151811061293b5761293a613f29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0691906136ed565b81600181518110612a1a57612a19613f29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401612ab8959493929190614016565b600060405180830381600087803b158015612ad257600080fd5b505af1158015612ae6573d6000803e3d6000fd5b5050505060008247612af89190613e5a565b9050612b4581600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b8590919063ffffffff16565b507f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b8482604051612b77929190614070565b60405180910390a150505050565b600081471015612bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc1906140e5565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683604051612bf090614136565b60006040518083038185875af1925050503d8060008114612c2d576040519150601f19603f3d011682016040523d82523d6000602084013e612c32565b606091505b505090508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca6906141bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d159061424f565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9b906142e1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e379190613580565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e9b9190613120565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ee3578082015181840152602081019050612ec8565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f0b82612ea9565b612f158185612eb4565b9350612f25818560208601612ec5565b612f2e81612eef565b840191505092915050565b60006020820190508181036000830152612f538184612f00565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f8b82612f60565b9050919050565b612f9b81612f80565b8114612fa657600080fd5b50565b600081359050612fb881612f92565b92915050565b6000819050919050565b612fd181612fbe565b8114612fdc57600080fd5b50565b600081359050612fee81612fc8565b92915050565b6000806040838503121561300b5761300a612f5b565b5b600061301985828601612fa9565b925050602061302a85828601612fdf565b9150509250929050565b60008115159050919050565b61304981613034565b82525050565b60006020820190506130646000830184613040565b92915050565b6000602082840312156130805761307f612f5b565b5b600061308e84828501612fdf565b91505092915050565b6000819050919050565b60006130bc6130b76130b284612f60565b613097565b612f60565b9050919050565b60006130ce826130a1565b9050919050565b60006130e0826130c3565b9050919050565b6130f0816130d5565b82525050565b600060208201905061310b60008301846130e7565b92915050565b61311a81612fbe565b82525050565b60006020820190506131356000830184613111565b92915050565b61314481613034565b811461314f57600080fd5b50565b6000813590506131618161313b565b92915050565b60006020828403121561317d5761317c612f5b565b5b600061318b84828501613152565b91505092915050565b6000806000606084860312156131ad576131ac612f5b565b5b60006131bb86828701612fa9565b93505060206131cc86828701612fa9565b92505060406131dd86828701612fdf565b9150509250925092565b600060ff82169050919050565b6131fd816131e7565b82525050565b600060208201905061321860008301846131f4565b92915050565b61322781612f80565b82525050565b6000602082019050613242600083018461321e565b92915050565b60006020828403121561325e5761325d612f5b565b5b600061326c84828501612fa9565b91505092915050565b6000806040838503121561328c5761328b612f5b565b5b600061329a85828601612fa9565b92505060206132ab85828601613152565b9150509250929050565b600080604083850312156132cc576132cb612f5b565b5b60006132da85828601612fa9565b92505060206132eb85828601612fa9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061333c57607f821691505b60208210810361334f5761334e6132f5565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061338b602083612eb4565b915061339682613355565b602082019050919050565b600060208201905081810360008301526133ba8161337e565b9050919050565b7f5155424943546f6b656e3a204e657720666565206d757374206265206c6f776560008201527f72207468616e206f6c6420666565210000000000000000000000000000000000602082015250565b600061341d602f83612eb4565b9150613428826133c1565b604082019050919050565b6000602082019050818103600083015261344c81613410565b9050919050565b7f43757272656e746c79206174207468652073616d652073746167650000000000600082015250565b6000613489601b83612eb4565b915061349482613453565b602082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061351b602883612eb4565b9150613526826134bf565b604082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061358b82612fbe565b915061359683612fbe565b92508282019050808211156135ae576135ad613551565b5b92915050565b7f4d61726b6574696e67204665652072656365697665722063616e6e6f7420626560008201527f20746865207a65726f206f722064656164206164647265737300000000000000602082015250565b6000613610603983612eb4565b915061361b826135b4565b604082019050919050565b6000602082019050818103600083015261363f81613603565b9050919050565b7f5155424943546f6b656e3a2074726164696e6720616c726561647920656e616260008201527f6c65642100000000000000000000000000000000000000000000000000000000602082015250565b60006136a2602483612eb4565b91506136ad82613646565b604082019050919050565b600060208201905081810360008301526136d181613695565b9050919050565b6000815190506136e781612f92565b92915050565b60006020828403121561370357613702612f5b565b5b6000613711848285016136d8565b91505092915050565b600060408201905061372f600083018561321e565b61373c602083018461321e565b9392505050565b6000819050919050565b600061376861376361375e84613743565b613097565b612fbe565b9050919050565b6137788161374d565b82525050565b600060c082019050613793600083018961321e565b6137a06020830188613111565b6137ad604083018761376f565b6137ba606083018661376f565b6137c7608083018561321e565b6137d460a0830184613111565b979650505050505050565b6000815190506137ee81612fc8565b92915050565b60008060006060848603121561380d5761380c612f5b565b5b600061381b868287016137df565b935050602061382c868287016137df565b925050604061383d868287016137df565b9150509250925092565b600060408201905061385c600083018561321e565b6138696020830184613111565b9392505050565b60008151905061387f8161313b565b92915050565b60006020828403121561389b5761389a612f5b565b5b60006138a984828501613870565b91505092915050565b60006040820190506138c76000830185613040565b6138d46020830184613111565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613937602583612eb4565b9150613942826138db565b604082019050919050565b600060208201905081810360008301526139668161392a565b9050919050565b7f5155424943546f6b656e3a204e6577206c696d6974206d75737420626520686960008201527f67686572207468616e206f6c6465722100000000000000000000000000000000602082015250565b60006139c9603083612eb4565b91506139d48261396d565b604082019050919050565b600060208201905081810360008301526139f8816139bc565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a5b602683612eb4565b9150613a66826139ff565b604082019050919050565b60006020820190508181036000830152613a8a81613a4e565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160008201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000602082015250565b6000613aed603783612eb4565b9150613af882613a91565b604082019050919050565b60006020820190508181036000830152613b1c81613ae0565b9050919050565b600060208284031215613b3957613b38612f5b565b5b6000613b47848285016137df565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613bac602483612eb4565b9150613bb782613b50565b604082019050919050565b60006020820190508181036000830152613bdb81613b9f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c3e602283612eb4565b9150613c4982613be2565b604082019050919050565b60006020820190508181036000830152613c6d81613c31565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b6000613caa601e83612eb4565b9150613cb582613c74565b602082019050919050565b60006020820190508181036000830152613cd981613c9d565b9050919050565b7f5472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b6000613d16601c83612eb4565b9150613d2182613ce0565b602082019050919050565b60006020820190508181036000830152613d4581613d09565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b6000613d82601883612eb4565b9150613d8d82613d4c565b602082019050919050565b60006020820190508181036000830152613db181613d75565b9050919050565b6000613dc382612fbe565b9150613dce83612fbe565b9250828202613ddc81612fbe565b91508282048414831517613df357613df2613551565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e3482612fbe565b9150613e3f83612fbe565b925082613e4f57613e4e613dfa565b5b828204905092915050565b6000613e6582612fbe565b9150613e7083612fbe565b9250828203905081811115613e8857613e87613551565b5b92915050565b7f4d6178696d756d2077616c6c65742073697a6520657863656564656421000000600082015250565b6000613ec4601d83612eb4565b9150613ecf82613e8e565b602082019050919050565b60006020820190508181036000830152613ef381613eb7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f8d81612f80565b82525050565b6000613f9f8383613f84565b60208301905092915050565b6000602082019050919050565b6000613fc382613f58565b613fcd8185613f63565b9350613fd883613f74565b8060005b83811015614009578151613ff08882613f93565b9750613ffb83613fab565b925050600181019050613fdc565b5085935050505092915050565b600060a08201905061402b6000830188613111565b614038602083018761376f565b818103604083015261404a8186613fb8565b9050614059606083018561321e565b6140666080830184613111565b9695505050505050565b60006040820190506140856000830185613111565b6140926020830184613111565b9392505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006140cf601d83612eb4565b91506140da82614099565b602082019050919050565b600060208201905081810360008301526140fe816140c2565b9050919050565b600081905092915050565b50565b6000614120600083614105565b915061412b82614110565b600082019050919050565b600061414182614113565b9150819050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141a7602583612eb4565b91506141b28261414b565b604082019050919050565b600060208201905081810360008301526141d68161419a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614239602383612eb4565b9150614244826141dd565b604082019050919050565b600060208201905081810360008301526142688161422c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142cb602683612eb4565b91506142d68261426f565b604082019050919050565b600060208201905081810360008301526142fa816142be565b905091905056fea26469706673582212204115546af173bff8c1c5b7af89405706265268e0bedc89b91ec60d1780cae62364736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000d81bdf0a94af951273b8733410771b654d46c7ba000000000000000000000000000000000000000000074778f4b571c4bc000000

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063e0f3ccf51161006f578063e0f3ccf514610710578063e3b24c8014610727578063e96fada214610750578063f2fde38b1461077b578063f9d0831a146107a4576101f9565b8063a9059cbb14610642578063acef1a441461067f578063c0246668146106aa578063dd62ed3e146106d3576101f9565b80638f3fa860116100dc5780638f3fa8601461058657806395d89b41146105b15780639d0014b1146105dc578063a457c2d714610605576101f9565b8063715018a6146105045780637c08b9641461051b5780638a8c523c146105445780638da5cb5b1461055b576101f9565b806339509351116101855780636b67c4df116101545780636b67c4df146104465780636ddd1713146104715780636fd8fb7a1461049c57806370a08231146104c7576101f9565b8063395093511461037657806349bd5a5e146103b35780634ada218b146103de5780634fbee19314610409576101f9565b806318160ddd116101c157806318160ddd146102ba578063239be29a146102e557806323b872dd1461030e578063313ce5671461034b576101f9565b806306fdde03146101fe578063095ea7b3146102295780630f198ee8146102665780631694505e1461028f576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107cd565b6040516102209190612f39565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b9190612ff4565b61085f565b60405161025d919061304f565b60405180910390f35b34801561027257600080fd5b5061028d6004803603810190610288919061306a565b61087d565b005b34801561029b57600080fd5b506102a4610999565b6040516102b191906130f6565b60405180910390f35b3480156102c657600080fd5b506102cf6109bf565b6040516102dc9190613120565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190613167565b6109c9565b005b34801561031a57600080fd5b5061033560048036038101906103309190613194565b610b18565b604051610342919061304f565b60405180910390f35b34801561035757600080fd5b50610360610c37565b60405161036d9190613203565b60405180910390f35b34801561038257600080fd5b5061039d60048036038101906103989190612ff4565b610c40565b6040516103aa919061304f565b60405180910390f35b3480156103bf57600080fd5b506103c8610cec565b6040516103d5919061322d565b60405180910390f35b3480156103ea57600080fd5b506103f3610d12565b604051610400919061304f565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b9190613248565b610d25565b60405161043d919061304f565b60405180910390f35b34801561045257600080fd5b5061045b610d7b565b6040516104689190613120565b60405180910390f35b34801561047d57600080fd5b50610486610d81565b604051610493919061304f565b60405180910390f35b3480156104a857600080fd5b506104b1610d94565b6040516104be9190613120565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e99190613248565b610d9a565b6040516104fb9190613120565b60405180910390f35b34801561051057600080fd5b50610519610de2565b005b34801561052757600080fd5b50610542600480360381019061053d9190613248565b610f3a565b005b34801561055057600080fd5b50610559611118565b005b34801561056757600080fd5b506105706116d2565b60405161057d919061322d565b60405180910390f35b34801561059257600080fd5b5061059b6116fc565b6040516105a89190613120565b60405180910390f35b3480156105bd57600080fd5b506105c6611702565b6040516105d39190612f39565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe919061306a565b611794565b005b34801561061157600080fd5b5061062c60048036038101906106279190612ff4565b61186c565b604051610639919061304f565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190612ff4565b611957565b604051610676919061304f565b60405180910390f35b34801561068b57600080fd5b50610694611975565b6040516106a19190613120565b60405180910390f35b3480156106b657600080fd5b506106d160048036038101906106cc9190613275565b61197b565b005b3480156106df57600080fd5b506106fa60048036038101906106f591906132b5565b611abb565b6040516107079190613120565b60405180910390f35b34801561071c57600080fd5b50610725611b42565b005b34801561073357600080fd5b5061074e6004803603810190610749919061306a565b611bf2565b005b34801561075c57600080fd5b50610765611d0e565b604051610772919061322d565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613248565b611d34565b005b3480156107b057600080fd5b506107cb60048036038101906107c69190613248565b611efa565b005b6060600380546107dc90613324565b80601f016020809104026020016040519081016040528092919081815260200182805461080890613324565b80156108555780601f1061082a57610100808354040283529160200191610855565b820191906000526020600020905b81548152906001019060200180831161083857829003601f168201915b5050505050905090565b600061087361086c61215e565b8484612166565b6001905092915050565b61088561215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090b906133a1565b60405180910390fd5b600c548110610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90613433565b60405180910390fd5b80600c819055507f521fe74e1c24ea5dc1327c29145ebc90bae09bc5a6f6bea118b4ad87793327a58160405161098e9190613120565b60405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6109d161215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a57906133a1565b60405180910390fd5b801515600b60019054906101000a900460ff16151503610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac9061349f565b60405180910390fd5b80600b60016101000a81548160ff0219169083151502179055507f0b24deddd077e0149099adf20869b94ebb4b0898a1068e9af5e30529f596e532600b60019054906101000a900460ff16604051610b0d919061304f565b60405180910390a150565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b6461215e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c205782811015610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0290613531565b60405180910390fd5b610c1f85610c1761215e565b858403612166565b5b610c2b85858561232f565b60019150509392505050565b60006012905090565b6000610ce2610c4d61215e565b848460016000610c5b61215e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cdd9190613580565b612166565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c5481565b600b60019054906101000a900460ff1681565b600a5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dea61215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e70906133a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f4261215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc8906133a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561103c575061dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290613626565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fce24358e1d81b90be8bb8786b891404133aa63ffde0e56b69ccf25a5e3c4df06600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161110d919061322d565b60405180910390a150565b61112061215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a6906133a1565b60405180910390fd5b60001515600b60029054906101000a900460ff16151514611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc906136b8565b60405180910390fd5b61125230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612166565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e391906136ed565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561136c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139091906136ed565b6040518363ffffffff1660e01b81526004016113ad92919061371a565b6020604051808303816000875af11580156113cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f091906136ed565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061147930610d9a565b6000806114846116d2565b426040518863ffffffff1660e01b81526004016114a69695949392919061377e565b60606040518083038185885af11580156114c4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114e991906137f4565b505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161158b929190613847565b6020604051808303816000875af11580156115aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ce9190613885565b506001600b60026101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff02191690831515021790555042600a81905550600160086000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3eb2d65e1de77434db1b2cb0645de0085059e6e514d7b9641fdc2978d8e40c40600b60029054906101000a900460ff16600a546040516116c89291906138b2565b60405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606004805461171190613324565b80601f016020809104026020016040519081016040528092919081815260200182805461173d90613324565b801561178a5780601f1061175f5761010080835404028352916020019161178a565b820191906000526020600020905b81548152906001019060200180831161176d57829003601f168201915b5050505050905090565b61179c61215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461182b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611822906133a1565b60405180910390fd5b80600d819055507fb090ae518da13bb076e9fad6694791d1d427db3284f7ac7321fbeafac08c7b27816040516118619190613120565b60405180910390a150565b6000806001600061187b61215e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f9061394d565b60405180910390fd5b61194c61194361215e565b85858403612166565b600191505092915050565b600061196b61196461215e565b848461232f565b6001905092915050565b600d5481565b61198361215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a09906133a1565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611aaf919061304f565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b4a61215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd0906133a1565b60405180910390fd5b6000611be430610d9a565b9050611bef816128d3565b50565b611bfa61215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c80906133a1565b60405180910390fd5b600e548111611ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc4906139df565b60405180910390fd5b80600e819055507f69626ae9392dcbdfaecc4d3af4d6c00e0bb3888f512459d89551c2762e406c4181604051611d039190613120565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d3c61215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc2906133a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3190613a71565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611f0261215e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f88906133a1565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff690613b03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120625761205c473373ffffffffffffffffffffffffffffffffffffffff16612b8590919063ffffffff16565b5061215b565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016120b8919061322d565b602060405180830381865afa1580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f99190613b23565b6040518363ffffffff1660e01b8152600401612116929190613847565b6020604051808303816000875af1158015612135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121599190613885565b505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cc90613bc2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b90613c54565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123229190613120565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239590613cc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361240d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240490613d2c565b60405180910390fd5b600b60029054906101000a900460ff16806124715750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124c55750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fb90613d98565b60405180910390fd5b6000810361251d5761251883836000612c40565b6128ce565b600061252830610d9a565b90506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125ce5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156125e65750600b60009054906101000a900460ff165b156125f457600090506126ca565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806126b55750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126b45750600b60029054906101000a900460ff165b5b156126c457600c5490506126c9565b600090505b5b600081111561270a576000606482856126e39190613db8565b6126ed9190613e29565b905080846126fb9190613e5a565b9350612708863083612c40565b505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036127dd57600d548211801561277d5750600b60009054906101000a900460ff16155b80156127955750600b60019054906101000a900460ff165b156127dc576001600b60006101000a81548160ff0219169083151502179055506127c0600d546128d3565b6000600b60006101000a81548160ff0219169083151502179055505b5b600b60029054906101000a900460ff1680156128435750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561285c5750600b60009054906101000a900460ff16155b156128c057600061286c85610d9a565b9050600e54848261287d9190613580565b11156128be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b590613eda565b60405180910390fd5b505b6128cb858585612c40565b50505b505050565b60004790506000600267ffffffffffffffff8111156128f5576128f4613efa565b5b6040519080825280602002602001820160405280156129235781602001602082028036833780820191505090505b509050308160008151811061293b5761293a613f29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0691906136ed565b81600181518110612a1a57612a19613f29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401612ab8959493929190614016565b600060405180830381600087803b158015612ad257600080fd5b505af1158015612ae6573d6000803e3d6000fd5b5050505060008247612af89190613e5a565b9050612b4581600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b8590919063ffffffff16565b507f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b8482604051612b77929190614070565b60405180910390a150505050565b600081471015612bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc1906140e5565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683604051612bf090614136565b60006040518083038185875af1925050503d8060008114612c2d576040519150601f19603f3d011682016040523d82523d6000602084013e612c32565b606091505b505090508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca6906141bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d159061424f565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9b906142e1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e379190613580565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e9b9190613120565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ee3578082015181840152602081019050612ec8565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f0b82612ea9565b612f158185612eb4565b9350612f25818560208601612ec5565b612f2e81612eef565b840191505092915050565b60006020820190508181036000830152612f538184612f00565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f8b82612f60565b9050919050565b612f9b81612f80565b8114612fa657600080fd5b50565b600081359050612fb881612f92565b92915050565b6000819050919050565b612fd181612fbe565b8114612fdc57600080fd5b50565b600081359050612fee81612fc8565b92915050565b6000806040838503121561300b5761300a612f5b565b5b600061301985828601612fa9565b925050602061302a85828601612fdf565b9150509250929050565b60008115159050919050565b61304981613034565b82525050565b60006020820190506130646000830184613040565b92915050565b6000602082840312156130805761307f612f5b565b5b600061308e84828501612fdf565b91505092915050565b6000819050919050565b60006130bc6130b76130b284612f60565b613097565b612f60565b9050919050565b60006130ce826130a1565b9050919050565b60006130e0826130c3565b9050919050565b6130f0816130d5565b82525050565b600060208201905061310b60008301846130e7565b92915050565b61311a81612fbe565b82525050565b60006020820190506131356000830184613111565b92915050565b61314481613034565b811461314f57600080fd5b50565b6000813590506131618161313b565b92915050565b60006020828403121561317d5761317c612f5b565b5b600061318b84828501613152565b91505092915050565b6000806000606084860312156131ad576131ac612f5b565b5b60006131bb86828701612fa9565b93505060206131cc86828701612fa9565b92505060406131dd86828701612fdf565b9150509250925092565b600060ff82169050919050565b6131fd816131e7565b82525050565b600060208201905061321860008301846131f4565b92915050565b61322781612f80565b82525050565b6000602082019050613242600083018461321e565b92915050565b60006020828403121561325e5761325d612f5b565b5b600061326c84828501612fa9565b91505092915050565b6000806040838503121561328c5761328b612f5b565b5b600061329a85828601612fa9565b92505060206132ab85828601613152565b9150509250929050565b600080604083850312156132cc576132cb612f5b565b5b60006132da85828601612fa9565b92505060206132eb85828601612fa9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061333c57607f821691505b60208210810361334f5761334e6132f5565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061338b602083612eb4565b915061339682613355565b602082019050919050565b600060208201905081810360008301526133ba8161337e565b9050919050565b7f5155424943546f6b656e3a204e657720666565206d757374206265206c6f776560008201527f72207468616e206f6c6420666565210000000000000000000000000000000000602082015250565b600061341d602f83612eb4565b9150613428826133c1565b604082019050919050565b6000602082019050818103600083015261344c81613410565b9050919050565b7f43757272656e746c79206174207468652073616d652073746167650000000000600082015250565b6000613489601b83612eb4565b915061349482613453565b602082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061351b602883612eb4565b9150613526826134bf565b604082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061358b82612fbe565b915061359683612fbe565b92508282019050808211156135ae576135ad613551565b5b92915050565b7f4d61726b6574696e67204665652072656365697665722063616e6e6f7420626560008201527f20746865207a65726f206f722064656164206164647265737300000000000000602082015250565b6000613610603983612eb4565b915061361b826135b4565b604082019050919050565b6000602082019050818103600083015261363f81613603565b9050919050565b7f5155424943546f6b656e3a2074726164696e6720616c726561647920656e616260008201527f6c65642100000000000000000000000000000000000000000000000000000000602082015250565b60006136a2602483612eb4565b91506136ad82613646565b604082019050919050565b600060208201905081810360008301526136d181613695565b9050919050565b6000815190506136e781612f92565b92915050565b60006020828403121561370357613702612f5b565b5b6000613711848285016136d8565b91505092915050565b600060408201905061372f600083018561321e565b61373c602083018461321e565b9392505050565b6000819050919050565b600061376861376361375e84613743565b613097565b612fbe565b9050919050565b6137788161374d565b82525050565b600060c082019050613793600083018961321e565b6137a06020830188613111565b6137ad604083018761376f565b6137ba606083018661376f565b6137c7608083018561321e565b6137d460a0830184613111565b979650505050505050565b6000815190506137ee81612fc8565b92915050565b60008060006060848603121561380d5761380c612f5b565b5b600061381b868287016137df565b935050602061382c868287016137df565b925050604061383d868287016137df565b9150509250925092565b600060408201905061385c600083018561321e565b6138696020830184613111565b9392505050565b60008151905061387f8161313b565b92915050565b60006020828403121561389b5761389a612f5b565b5b60006138a984828501613870565b91505092915050565b60006040820190506138c76000830185613040565b6138d46020830184613111565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613937602583612eb4565b9150613942826138db565b604082019050919050565b600060208201905081810360008301526139668161392a565b9050919050565b7f5155424943546f6b656e3a204e6577206c696d6974206d75737420626520686960008201527f67686572207468616e206f6c6465722100000000000000000000000000000000602082015250565b60006139c9603083612eb4565b91506139d48261396d565b604082019050919050565b600060208201905081810360008301526139f8816139bc565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a5b602683612eb4565b9150613a66826139ff565b604082019050919050565b60006020820190508181036000830152613a8a81613a4e565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160008201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000602082015250565b6000613aed603783612eb4565b9150613af882613a91565b604082019050919050565b60006020820190508181036000830152613b1c81613ae0565b9050919050565b600060208284031215613b3957613b38612f5b565b5b6000613b47848285016137df565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613bac602483612eb4565b9150613bb782613b50565b604082019050919050565b60006020820190508181036000830152613bdb81613b9f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c3e602283612eb4565b9150613c4982613be2565b604082019050919050565b60006020820190508181036000830152613c6d81613c31565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b6000613caa601e83612eb4565b9150613cb582613c74565b602082019050919050565b60006020820190508181036000830152613cd981613c9d565b9050919050565b7f5472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b6000613d16601c83612eb4565b9150613d2182613ce0565b602082019050919050565b60006020820190508181036000830152613d4581613d09565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b6000613d82601883612eb4565b9150613d8d82613d4c565b602082019050919050565b60006020820190508181036000830152613db181613d75565b9050919050565b6000613dc382612fbe565b9150613dce83612fbe565b9250828202613ddc81612fbe565b91508282048414831517613df357613df2613551565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e3482612fbe565b9150613e3f83612fbe565b925082613e4f57613e4e613dfa565b5b828204905092915050565b6000613e6582612fbe565b9150613e7083612fbe565b9250828203905081811115613e8857613e87613551565b5b92915050565b7f4d6178696d756d2077616c6c65742073697a6520657863656564656421000000600082015250565b6000613ec4601d83612eb4565b9150613ecf82613e8e565b602082019050919050565b60006020820190508181036000830152613ef381613eb7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f8d81612f80565b82525050565b6000613f9f8383613f84565b60208301905092915050565b6000602082019050919050565b6000613fc382613f58565b613fcd8185613f63565b9350613fd883613f74565b8060005b83811015614009578151613ff08882613f93565b9750613ffb83613fab565b925050600181019050613fdc565b5085935050505092915050565b600060a08201905061402b6000830188613111565b614038602083018761376f565b818103604083015261404a8186613fb8565b9050614059606083018561321e565b6140666080830184613111565b9695505050505050565b60006040820190506140856000830185613111565b6140926020830184613111565b9392505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006140cf601d83612eb4565b91506140da82614099565b602082019050919050565b600060208201905081810360008301526140fe816140c2565b9050919050565b600081905092915050565b50565b6000614120600083614105565b915061412b82614110565b600082019050919050565b600061414182614113565b9150819050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141a7602583612eb4565b91506141b28261414b565b604082019050919050565b600060208201905081810360008301526141d68161419a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614239602383612eb4565b9150614244826141dd565b604082019050919050565b600060208201905081810360008301526142688161422c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142cb602683612eb4565b91506142d68261426f565b604082019050919050565b600060208201905081810360008301526142fa816142be565b905091905056fea26469706673582212204115546af173bff8c1c5b7af89405706265268e0bedc89b91ec60d1780cae62364736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000d81bdf0a94af951273b8733410771b654d46c7ba000000000000000000000000000000000000000000074778f4b571c4bc000000

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _feeReceiver (address): 0xD81BdF0A94Af951273b8733410771b654D46c7bA
Arg [2] : _initalLiquidity (uint256): 8800000000000000000000000

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000d81bdf0a94af951273b8733410771b654d46c7ba
Arg [2] : 000000000000000000000000000000000000000000074778f4b571c4bc000000


Deployed Bytecode Sourcemap

8449:7646:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4054:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5030:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15422:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8533:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4371:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14356:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5232:622;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4274:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5862:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8581:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8829:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11157:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8864:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8799:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8721:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4487:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3206:148;;;;;;;;;;;;;:::i;:::-;;11291:433;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11810:785;;;;;;;;;;;;;:::i;:::-;;2992:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8936:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4162:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15919:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6160:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4638:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8898:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10938:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4846:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15257:157;;;;;;;;;;;;;:::i;:::-;;15659:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8679:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3362:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10463:467;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4054:100;4108:13;4141:5;4134:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4054:100;:::o;5030:194::-;5138:4;5155:39;5164:12;:10;:12::i;:::-;5178:7;5187:6;5155:8;:39::i;:::-;5212:4;5205:11;;5030:194;;;;:::o;15422:229::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15506:12:::1;;15496:7;:22;15488:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;15598:7;15583:12;:22;;;;15623:20;15635:7;15623:20;;;;;;:::i;:::-;;;;;;;;15422:229:::0;:::o;8533:41::-;;;;;;;;;;;;;:::o;4371:108::-;4432:7;4459:12;;4452:19;;4371:108;:::o;14356:228::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14452:12:::1;14437:27;;:11;;;;;;;;;;;:27;;::::0;14429:67:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14521:12;14507:11;;:26;;;;;;;;;;;;;;;;;;14549:27;14564:11;;;;;;;;;;;14549:27;;;;;;:::i;:::-;;;;;;;;14356:228:::0;:::o;5232:622::-;5372:4;5389:24;5416:11;:19;5428:6;5416:19;;;;;;;;;;;;;;;:33;5436:12;:10;:12::i;:::-;5416:33;;;;;;;;;;;;;;;;5389:60;;5484:17;5464:16;:37;5460:314;;5564:6;5544:16;:26;;5518:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;5690:57;5699:6;5707:12;:10;:12::i;:::-;5740:6;5721:16;:25;5690:8;:57::i;:::-;5460:314;5786:36;5796:6;5804:9;5815:6;5786:9;:36::i;:::-;5842:4;5835:11;;;5232:622;;;;;:::o;4274:93::-;4332:5;4357:2;4350:9;;4274:93;:::o;5862:290::-;5975:4;5992:130;6015:12;:10;:12::i;:::-;6042:7;6101:10;6064:11;:25;6076:12;:10;:12::i;:::-;6064:25;;;;;;;;;;;;;;;:34;6090:7;6064:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5992:8;:130::i;:::-;6140:4;6133:11;;5862:290;;;;:::o;8581:28::-;;;;;;;;;;;;;:::o;8829:26::-;;;;;;;;;;;;;:::o;11157:126::-;11223:4;11247:19;:28;11267:7;11247:28;;;;;;;;;;;;;;;;;;;;;;;;;11240:35;;11157:126;;;:::o;8864:27::-;;;;:::o;8799:23::-;;;;;;;;;;;;;:::o;8721:33::-;;;;:::o;4487:143::-;4577:7;4604:9;:18;4614:7;4604:18;;;;;;;;;;;;;;;;4597:25;;4487:143;;;:::o;3206:148::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3313:1:::1;3276:40;;3297:6;;;;;;;;;;;3276:40;;;;;;;;;;;;3344:1;3327:6;;:19;;;;;;;;;;;;;;;;;;3206:148::o:0;11291:433::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11450:1:::1;11417:35;;:21;:35;;;;:92;;;;;11502:6;11469:40;;:21;:40;;;;11417:92;11395:199;;;;;;;;;;;;:::i;:::-;;;;;;;;;11628:21;11605:20;;:44;;;;;;;;;;;;;;;;;;11667:49;11695:20;;;;;;;;;;;11667:49;;;;;;:::i;:::-;;;;;;;;11291:433:::0;:::o;11810:785::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11891:5:::1;11873:23;;:14;;;;;;;;;;;:23;;;11865:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11948:68;11965:4;11980:15;;;;;;;;;;;11998:17;11948:8;:68::i;:::-;12061:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12043:55;;;12107:4;12114:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12043:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12027:13;;:110;;;;;;;;;;;;;;;;;;12148:15;;;;;;;;;;;:31;;;12187:21;12218:4;12224:24;12242:4;12224:9;:24::i;:::-;12249:1;12251::::0;12253:7:::1;:5;:7::i;:::-;12261:15;12148:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12295:13;;;;;;;;;;;12288:29;;;12326:15;;;;;;;;;;;12344:14;12288:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12387:4;12370:14;;:21;;;;;;;;;;;;;;;;;;12416:4;12402:11;;:18;;;;;;;;;;;;;;;;;;12452:15;12431:18;:36;;;;12515:4;12478:19;:34;12498:13;;;;;;;;;;;12478:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12537:50;12552:14;;;;;;;;;;;12568:18;;12537:50;;;;;;;:::i;:::-;;;;;;;;11810:785::o:0;2992:79::-;3030:7;3057:6;;;;;;;;;;;3050:13;;2992:79;:::o;8936:28::-;;;;:::o;4162:104::-;4218:13;4251:7;4244:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4162:104;:::o;15919:173::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16015:13:::1;15996:16;:32;;;;16046:38;16070:13;16046:38;;;;;;:::i;:::-;;;;;;;;15919:173:::0;:::o;6160:475::-;6278:4;6295:24;6322:11;:25;6334:12;:10;:12::i;:::-;6322:25;;;;;;;;;;;;;;;:34;6348:7;6322:34;;;;;;;;;;;;;;;;6295:61;;6409:15;6389:16;:35;;6367:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;6525:67;6534:12;:10;:12::i;:::-;6548:7;6576:15;6557:16;:34;6525:8;:67::i;:::-;6623:4;6616:11;;;6160:475;;;;:::o;4638:200::-;4749:4;4766:42;4776:12;:10;:12::i;:::-;4790:9;4801:6;4766:9;:42::i;:::-;4826:4;4819:11;;4638:200;;;;:::o;8898:31::-;;;;:::o;10938:211::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11081:8:::1;11050:19;:28;11070:7;11050:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;11123:7;11107:34;;;11132:8;11107:34;;;;;;:::i;:::-;;;;;;;;10938:211:::0;;:::o;4846:176::-;4960:7;4987:11;:18;4999:5;4987:18;;;;;;;;;;;;;;;:27;5006:7;4987:27;;;;;;;;;;;;;;;;4980:34;;4846:176;;;;:::o;15257:157::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15307:23:::1;15333:24;15351:4;15333:9;:24::i;:::-;15307:50;;15368:38;15390:15;15368:21;:38::i;:::-;15296:118;15257:157::o:0;15659:252::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15751:13:::1;;15739:9;:25;15731:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;15846:9;15830:13;:25;;;;15873:30;15893:9;15873:30;;;;;;:::i;:::-;;;;;;;;15659:252:::0;:::o;8679:35::-;;;;;;;;;;;;;:::o;3362:281::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3485:1:::1;3465:22;;:8;:22;;::::0;3443:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3598:8;3569:38;;3590:6;;;;;;;;;;;3569:38;;;;;;;;;;;;3627:8;3618:6;;:17;;;;;;;;;;;;;;;;;;3362:281:::0;:::o;10463:467::-;3129:12;:10;:12::i;:::-;3119:22;;:6;;;;;;;;;;;:22;;;3111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10573:4:::1;10556:22;;:5;:22;;::::0;10534:127:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10693:3;10676:21;;:5;:21;;::::0;10672:127:::1;;10714:52;10744:21;10722:10;10714:29;;;;:52;;;;:::i;:::-;;10781:7;;10672:127;10818:5;10811:22;;;10848:10;10880:5;10873:23;;;10905:4;10873:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10811:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3189:1;10463:467:::0;:::o;2534:98::-;2587:7;2614:10;2607:17;;2534:98;:::o;8062:380::-;8215:1;8198:19;;:5;:19;;;8190:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8296:1;8277:21;;:7;:21;;;8269:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8380:6;8350:11;:18;8362:5;8350:18;;;;;;;;;;;;;;;:27;8369:7;8350:27;;;;;;;;;;;;;;;:36;;;;8418:7;8402:32;;8411:5;8402:32;;;8427:6;8402:32;;;;;;:::i;:::-;;;;;;;;8062:380;;;:::o;12603:1745::-;12751:1;12735:18;;:4;:18;;;12727:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;12821:1;12807:16;;:2;:16;;;12799:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12875:14;;;;;;;;;;;:61;;;;12911:19;:25;12931:4;12911:25;;;;;;;;;;;;;;;;;;;;;;;;;12875:61;:106;;;;12958:19;:23;12978:2;12958:23;;;;;;;;;;;;;;;;;;;;;;;;;12875:106;12867:166;;;;;;;;;;;;:::i;:::-;;;;;;;;;13060:1;13050:6;:11;13046:93;;13078:28;13094:4;13100:2;13104:1;13078:15;:28::i;:::-;13121:7;;13046:93;13151:28;13182:24;13200:4;13182:9;:24::i;:::-;13151:55;;13219:18;13252:19;:25;13272:4;13252:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;;13281:19;:23;13301:2;13281:23;;;;;;;;;;;;;;;;;;;;;;;;;13252:52;:72;;;;;13308:16;;;;;;;;;;;13252:72;13248:292;;;13354:1;13341:14;;13248:292;;;13385:13;;;;;;;;;;;13377:21;;:4;:21;;;:62;;;;13408:13;;;;;;;;;;;13402:19;;:2;:19;;;:37;;;;;13425:14;;;;;;;;;;;13402:37;13377:62;13373:167;;;13469:12;;13456:25;;13373:167;;;13527:1;13514:14;;13373:167;13248:292;13569:1;13556:10;:14;13552:183;;;13587:12;13626:3;13612:10;13603:6;:19;;;;:::i;:::-;13602:27;;;;:::i;:::-;13587:42;;13662:4;13653:6;:13;;;;:::i;:::-;13644:22;;13681:42;13697:4;13711;13718;13681:15;:42::i;:::-;13572:163;13552:183;13756:13;;;;;;;;;;;13750:19;;:2;:19;;;13747:310;;13813:16;;13790:20;:39;:60;;;;;13834:16;;;;;;;;;;;13833:17;13790:60;:75;;;;;13854:11;;;;;;;;;;;13790:75;13786:260;;;13905:4;13886:16;;:23;;;;;;;;;;;;;;;;;;13930:39;13952:16;;13930:21;:39::i;:::-;14025:5;14006:16;;:24;;;;;;;;;;;;;;;;;;13786:260;13747:310;14072:14;;;;;;;;;;;:42;;;;;14091:19;:23;14111:2;14091:23;;;;;;;;;;;;;;;;;;;;;;;;;14090:24;14072:42;:63;;;;;14119:16;;;;;;;;;;;14118:17;14072:63;14069:226;;;14152:20;14175:13;14185:2;14175:9;:13::i;:::-;14152:36;;14236:13;;14226:6;14211:12;:21;;;;:::i;:::-;:38;;14203:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;14137:158;14069:226;14307:33;14323:4;14329:2;14333:6;14307:15;:33::i;:::-;12716:1632;;12603:1745;;;;:::o;14592:657::-;14663:22;14688:21;14663:46;;14722:21;14760:1;14746:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14722:40;;14791:4;14773;14778:1;14773:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14817:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14807:4;14812:1;14807:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;14852:15;;;;;;;;;;;:66;;;14933:11;14959:1;14975:4;15002;15022:15;14852:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15061:18;15106:14;15082:21;:38;;;;:::i;:::-;15061:59;;15133:51;15173:10;15141:20;;;;;;;;;;;15133:39;;;;:51;;;;:::i;:::-;;15202:39;15217:11;15230:10;15202:39;;;;;;;:::i;:::-;;;;;;;;14652:597;;;14592:657;:::o;2145:349::-;2250:4;2314:6;2289:21;:31;;2267:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;2391:12;2409:9;:14;;2431:6;2409:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2390:52;;;2460:7;2453:14;;;2145:349;;;;:::o;6643:651::-;6801:1;6783:20;;:6;:20;;;6775:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6885:1;6864:23;;:9;:23;;;6856:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6940:21;6964:9;:17;6974:6;6964:17;;;;;;;;;;;;;;;;6940:41;;7031:6;7014:13;:23;;6992:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;7175:6;7159:13;:22;7139:9;:17;7149:6;7139:17;;;;;;;;;;;;;;;:42;;;;7227:6;7203:9;:20;7213:9;7203:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7268:9;7251:35;;7260:6;7251:35;;;7279:6;7251:35;;;;;;:::i;:::-;;;;;;;;6764:530;6643:651;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:151::-;4202:9;4235:37;4266:5;4235:37;:::i;:::-;4222:50;;4127:151;;;:::o;4284:181::-;4396:62;4452:5;4396:62;:::i;:::-;4391:3;4384:75;4284:181;;:::o;4471:272::-;4589:4;4627:2;4616:9;4612:18;4604:26;;4640:96;4733:1;4722:9;4718:17;4709:6;4640:96;:::i;:::-;4471:272;;;;:::o;4749:118::-;4836:24;4854:5;4836:24;:::i;:::-;4831:3;4824:37;4749:118;;:::o;4873:222::-;4966:4;5004:2;4993:9;4989:18;4981:26;;5017:71;5085:1;5074:9;5070:17;5061:6;5017:71;:::i;:::-;4873:222;;;;:::o;5101:116::-;5171:21;5186:5;5171:21;:::i;:::-;5164:5;5161:32;5151:60;;5207:1;5204;5197:12;5151:60;5101:116;:::o;5223:133::-;5266:5;5304:6;5291:20;5282:29;;5320:30;5344:5;5320:30;:::i;:::-;5223:133;;;;:::o;5362:323::-;5418:6;5467:2;5455:9;5446:7;5442:23;5438:32;5435:119;;;5473:79;;:::i;:::-;5435:119;5593:1;5618:50;5660:7;5651:6;5640:9;5636:22;5618:50;:::i;:::-;5608:60;;5564:114;5362:323;;;;:::o;5691:619::-;5768:6;5776;5784;5833:2;5821:9;5812:7;5808:23;5804:32;5801:119;;;5839:79;;:::i;:::-;5801:119;5959:1;5984:53;6029:7;6020:6;6009:9;6005:22;5984:53;:::i;:::-;5974:63;;5930:117;6086:2;6112:53;6157:7;6148:6;6137:9;6133:22;6112:53;:::i;:::-;6102:63;;6057:118;6214:2;6240:53;6285:7;6276:6;6265:9;6261:22;6240:53;:::i;:::-;6230:63;;6185:118;5691:619;;;;;:::o;6316:86::-;6351:7;6391:4;6384:5;6380:16;6369:27;;6316:86;;;:::o;6408:112::-;6491:22;6507:5;6491:22;:::i;:::-;6486:3;6479:35;6408:112;;:::o;6526:214::-;6615:4;6653:2;6642:9;6638:18;6630:26;;6666:67;6730:1;6719:9;6715:17;6706:6;6666:67;:::i;:::-;6526:214;;;;:::o;6746:118::-;6833:24;6851:5;6833:24;:::i;:::-;6828:3;6821:37;6746:118;;:::o;6870:222::-;6963:4;7001:2;6990:9;6986:18;6978:26;;7014:71;7082:1;7071:9;7067:17;7058:6;7014:71;:::i;:::-;6870:222;;;;:::o;7098:329::-;7157:6;7206:2;7194:9;7185:7;7181:23;7177:32;7174:119;;;7212:79;;:::i;:::-;7174:119;7332:1;7357:53;7402:7;7393:6;7382:9;7378:22;7357:53;:::i;:::-;7347:63;;7303:117;7098:329;;;;:::o;7433:468::-;7498:6;7506;7555:2;7543:9;7534:7;7530:23;7526:32;7523:119;;;7561:79;;:::i;:::-;7523:119;7681:1;7706:53;7751:7;7742:6;7731:9;7727:22;7706:53;:::i;:::-;7696:63;;7652:117;7808:2;7834:50;7876:7;7867:6;7856:9;7852:22;7834:50;:::i;:::-;7824:60;;7779:115;7433:468;;;;;:::o;7907:474::-;7975:6;7983;8032:2;8020:9;8011:7;8007:23;8003:32;8000:119;;;8038:79;;:::i;:::-;8000:119;8158:1;8183:53;8228:7;8219:6;8208:9;8204:22;8183:53;:::i;:::-;8173:63;;8129:117;8285:2;8311:53;8356:7;8347:6;8336:9;8332:22;8311:53;:::i;:::-;8301:63;;8256:118;7907:474;;;;;:::o;8387:180::-;8435:77;8432:1;8425:88;8532:4;8529:1;8522:15;8556:4;8553:1;8546:15;8573:320;8617:6;8654:1;8648:4;8644:12;8634:22;;8701:1;8695:4;8691:12;8722:18;8712:81;;8778:4;8770:6;8766:17;8756:27;;8712:81;8840:2;8832:6;8829:14;8809:18;8806:38;8803:84;;8859:18;;:::i;:::-;8803:84;8624:269;8573:320;;;:::o;8899:182::-;9039:34;9035:1;9027:6;9023:14;9016:58;8899:182;:::o;9087:366::-;9229:3;9250:67;9314:2;9309:3;9250:67;:::i;:::-;9243:74;;9326:93;9415:3;9326:93;:::i;:::-;9444:2;9439:3;9435:12;9428:19;;9087:366;;;:::o;9459:419::-;9625:4;9663:2;9652:9;9648:18;9640:26;;9712:9;9706:4;9702:20;9698:1;9687:9;9683:17;9676:47;9740:131;9866:4;9740:131;:::i;:::-;9732:139;;9459:419;;;:::o;9884:234::-;10024:34;10020:1;10012:6;10008:14;10001:58;10093:17;10088:2;10080:6;10076:15;10069:42;9884:234;:::o;10124:366::-;10266:3;10287:67;10351:2;10346:3;10287:67;:::i;:::-;10280:74;;10363:93;10452:3;10363:93;:::i;:::-;10481:2;10476:3;10472:12;10465:19;;10124:366;;;:::o;10496:419::-;10662:4;10700:2;10689:9;10685:18;10677:26;;10749:9;10743:4;10739:20;10735:1;10724:9;10720:17;10713:47;10777:131;10903:4;10777:131;:::i;:::-;10769:139;;10496:419;;;:::o;10921:177::-;11061:29;11057:1;11049:6;11045:14;11038:53;10921:177;:::o;11104:366::-;11246:3;11267:67;11331:2;11326:3;11267:67;:::i;:::-;11260:74;;11343:93;11432:3;11343:93;:::i;:::-;11461:2;11456:3;11452:12;11445:19;;11104:366;;;:::o;11476:419::-;11642:4;11680:2;11669:9;11665:18;11657:26;;11729:9;11723:4;11719:20;11715:1;11704:9;11700:17;11693:47;11757:131;11883:4;11757:131;:::i;:::-;11749:139;;11476:419;;;:::o;11901:227::-;12041:34;12037:1;12029:6;12025:14;12018:58;12110:10;12105:2;12097:6;12093:15;12086:35;11901:227;:::o;12134:366::-;12276:3;12297:67;12361:2;12356:3;12297:67;:::i;:::-;12290:74;;12373:93;12462:3;12373:93;:::i;:::-;12491:2;12486:3;12482:12;12475:19;;12134:366;;;:::o;12506:419::-;12672:4;12710:2;12699:9;12695:18;12687:26;;12759:9;12753:4;12749:20;12745:1;12734:9;12730:17;12723:47;12787:131;12913:4;12787:131;:::i;:::-;12779:139;;12506:419;;;:::o;12931:180::-;12979:77;12976:1;12969:88;13076:4;13073:1;13066:15;13100:4;13097:1;13090:15;13117:191;13157:3;13176:20;13194:1;13176:20;:::i;:::-;13171:25;;13210:20;13228:1;13210:20;:::i;:::-;13205:25;;13253:1;13250;13246:9;13239:16;;13274:3;13271:1;13268:10;13265:36;;;13281:18;;:::i;:::-;13265:36;13117:191;;;;:::o;13314:244::-;13454:34;13450:1;13442:6;13438:14;13431:58;13523:27;13518:2;13510:6;13506:15;13499:52;13314:244;:::o;13564:366::-;13706:3;13727:67;13791:2;13786:3;13727:67;:::i;:::-;13720:74;;13803:93;13892:3;13803:93;:::i;:::-;13921:2;13916:3;13912:12;13905:19;;13564:366;;;:::o;13936:419::-;14102:4;14140:2;14129:9;14125:18;14117:26;;14189:9;14183:4;14179:20;14175:1;14164:9;14160:17;14153:47;14217:131;14343:4;14217:131;:::i;:::-;14209:139;;13936:419;;;:::o;14361:223::-;14501:34;14497:1;14489:6;14485:14;14478:58;14570:6;14565:2;14557:6;14553:15;14546:31;14361:223;:::o;14590:366::-;14732:3;14753:67;14817:2;14812:3;14753:67;:::i;:::-;14746:74;;14829:93;14918:3;14829:93;:::i;:::-;14947:2;14942:3;14938:12;14931:19;;14590:366;;;:::o;14962:419::-;15128:4;15166:2;15155:9;15151:18;15143:26;;15215:9;15209:4;15205:20;15201:1;15190:9;15186:17;15179:47;15243:131;15369:4;15243:131;:::i;:::-;15235:139;;14962:419;;;:::o;15387:143::-;15444:5;15475:6;15469:13;15460:22;;15491:33;15518:5;15491:33;:::i;:::-;15387:143;;;;:::o;15536:351::-;15606:6;15655:2;15643:9;15634:7;15630:23;15626:32;15623:119;;;15661:79;;:::i;:::-;15623:119;15781:1;15806:64;15862:7;15853:6;15842:9;15838:22;15806:64;:::i;:::-;15796:74;;15752:128;15536:351;;;;:::o;15893:332::-;16014:4;16052:2;16041:9;16037:18;16029:26;;16065:71;16133:1;16122:9;16118:17;16109:6;16065:71;:::i;:::-;16146:72;16214:2;16203:9;16199:18;16190:6;16146:72;:::i;:::-;15893:332;;;;;:::o;16231:85::-;16276:7;16305:5;16294:16;;16231:85;;;:::o;16322:158::-;16380:9;16413:61;16431:42;16440:32;16466:5;16440:32;:::i;:::-;16431:42;:::i;:::-;16413:61;:::i;:::-;16400:74;;16322:158;;;:::o;16486:147::-;16581:45;16620:5;16581:45;:::i;:::-;16576:3;16569:58;16486:147;;:::o;16639:807::-;16888:4;16926:3;16915:9;16911:19;16903:27;;16940:71;17008:1;16997:9;16993:17;16984:6;16940:71;:::i;:::-;17021:72;17089:2;17078:9;17074:18;17065:6;17021:72;:::i;:::-;17103:80;17179:2;17168:9;17164:18;17155:6;17103:80;:::i;:::-;17193;17269:2;17258:9;17254:18;17245:6;17193:80;:::i;:::-;17283:73;17351:3;17340:9;17336:19;17327:6;17283:73;:::i;:::-;17366;17434:3;17423:9;17419:19;17410:6;17366:73;:::i;:::-;16639:807;;;;;;;;;:::o;17452:143::-;17509:5;17540:6;17534:13;17525:22;;17556:33;17583:5;17556:33;:::i;:::-;17452:143;;;;:::o;17601:663::-;17689:6;17697;17705;17754:2;17742:9;17733:7;17729:23;17725:32;17722:119;;;17760:79;;:::i;:::-;17722:119;17880:1;17905:64;17961:7;17952:6;17941:9;17937:22;17905:64;:::i;:::-;17895:74;;17851:128;18018:2;18044:64;18100:7;18091:6;18080:9;18076:22;18044:64;:::i;:::-;18034:74;;17989:129;18157:2;18183:64;18239:7;18230:6;18219:9;18215:22;18183:64;:::i;:::-;18173:74;;18128:129;17601:663;;;;;:::o;18270:332::-;18391:4;18429:2;18418:9;18414:18;18406:26;;18442:71;18510:1;18499:9;18495:17;18486:6;18442:71;:::i;:::-;18523:72;18591:2;18580:9;18576:18;18567:6;18523:72;:::i;:::-;18270:332;;;;;:::o;18608:137::-;18662:5;18693:6;18687:13;18678:22;;18709:30;18733:5;18709:30;:::i;:::-;18608:137;;;;:::o;18751:345::-;18818:6;18867:2;18855:9;18846:7;18842:23;18838:32;18835:119;;;18873:79;;:::i;:::-;18835:119;18993:1;19018:61;19071:7;19062:6;19051:9;19047:22;19018:61;:::i;:::-;19008:71;;18964:125;18751:345;;;;:::o;19102:320::-;19217:4;19255:2;19244:9;19240:18;19232:26;;19268:65;19330:1;19319:9;19315:17;19306:6;19268:65;:::i;:::-;19343:72;19411:2;19400:9;19396:18;19387:6;19343:72;:::i;:::-;19102:320;;;;;:::o;19428:224::-;19568:34;19564:1;19556:6;19552:14;19545:58;19637:7;19632:2;19624:6;19620:15;19613:32;19428:224;:::o;19658:366::-;19800:3;19821:67;19885:2;19880:3;19821:67;:::i;:::-;19814:74;;19897:93;19986:3;19897:93;:::i;:::-;20015:2;20010:3;20006:12;19999:19;;19658:366;;;:::o;20030:419::-;20196:4;20234:2;20223:9;20219:18;20211:26;;20283:9;20277:4;20273:20;20269:1;20258:9;20254:17;20247:47;20311:131;20437:4;20311:131;:::i;:::-;20303:139;;20030:419;;;:::o;20455:235::-;20595:34;20591:1;20583:6;20579:14;20572:58;20664:18;20659:2;20651:6;20647:15;20640:43;20455:235;:::o;20696:366::-;20838:3;20859:67;20923:2;20918:3;20859:67;:::i;:::-;20852:74;;20935:93;21024:3;20935:93;:::i;:::-;21053:2;21048:3;21044:12;21037:19;;20696:366;;;:::o;21068:419::-;21234:4;21272:2;21261:9;21257:18;21249:26;;21321:9;21315:4;21311:20;21307:1;21296:9;21292:17;21285:47;21349:131;21475:4;21349:131;:::i;:::-;21341:139;;21068:419;;;:::o;21493:225::-;21633:34;21629:1;21621:6;21617:14;21610:58;21702:8;21697:2;21689:6;21685:15;21678:33;21493:225;:::o;21724:366::-;21866:3;21887:67;21951:2;21946:3;21887:67;:::i;:::-;21880:74;;21963:93;22052:3;21963:93;:::i;:::-;22081:2;22076:3;22072:12;22065:19;;21724:366;;;:::o;22096:419::-;22262:4;22300:2;22289:9;22285:18;22277:26;;22349:9;22343:4;22339:20;22335:1;22324:9;22320:17;22313:47;22377:131;22503:4;22377:131;:::i;:::-;22369:139;;22096:419;;;:::o;22521:242::-;22661:34;22657:1;22649:6;22645:14;22638:58;22730:25;22725:2;22717:6;22713:15;22706:50;22521:242;:::o;22769:366::-;22911:3;22932:67;22996:2;22991:3;22932:67;:::i;:::-;22925:74;;23008:93;23097:3;23008:93;:::i;:::-;23126:2;23121:3;23117:12;23110:19;;22769:366;;;:::o;23141:419::-;23307:4;23345:2;23334:9;23330:18;23322:26;;23394:9;23388:4;23384:20;23380:1;23369:9;23365:17;23358:47;23422:131;23548:4;23422:131;:::i;:::-;23414:139;;23141:419;;;:::o;23566:351::-;23636:6;23685:2;23673:9;23664:7;23660:23;23656:32;23653:119;;;23691:79;;:::i;:::-;23653:119;23811:1;23836:64;23892:7;23883:6;23872:9;23868:22;23836:64;:::i;:::-;23826:74;;23782:128;23566:351;;;;:::o;23923:223::-;24063:34;24059:1;24051:6;24047:14;24040:58;24132:6;24127:2;24119:6;24115:15;24108:31;23923:223;:::o;24152:366::-;24294:3;24315:67;24379:2;24374:3;24315:67;:::i;:::-;24308:74;;24391:93;24480:3;24391:93;:::i;:::-;24509:2;24504:3;24500:12;24493:19;;24152:366;;;:::o;24524:419::-;24690:4;24728:2;24717:9;24713:18;24705:26;;24777:9;24771:4;24767:20;24763:1;24752:9;24748:17;24741:47;24805:131;24931:4;24805:131;:::i;:::-;24797:139;;24524:419;;;:::o;24949:221::-;25089:34;25085:1;25077:6;25073:14;25066:58;25158:4;25153:2;25145:6;25141:15;25134:29;24949:221;:::o;25176:366::-;25318:3;25339:67;25403:2;25398:3;25339:67;:::i;:::-;25332:74;;25415:93;25504:3;25415:93;:::i;:::-;25533:2;25528:3;25524:12;25517:19;;25176:366;;;:::o;25548:419::-;25714:4;25752:2;25741:9;25737:18;25729:26;;25801:9;25795:4;25791:20;25787:1;25776:9;25772:17;25765:47;25829:131;25955:4;25829:131;:::i;:::-;25821:139;;25548:419;;;:::o;25973:180::-;26113:32;26109:1;26101:6;26097:14;26090:56;25973:180;:::o;26159:366::-;26301:3;26322:67;26386:2;26381:3;26322:67;:::i;:::-;26315:74;;26398:93;26487:3;26398:93;:::i;:::-;26516:2;26511:3;26507:12;26500:19;;26159:366;;;:::o;26531:419::-;26697:4;26735:2;26724:9;26720:18;26712:26;;26784:9;26778:4;26774:20;26770:1;26759:9;26755:17;26748:47;26812:131;26938:4;26812:131;:::i;:::-;26804:139;;26531:419;;;:::o;26956:178::-;27096:30;27092:1;27084:6;27080:14;27073:54;26956:178;:::o;27140:366::-;27282:3;27303:67;27367:2;27362:3;27303:67;:::i;:::-;27296:74;;27379:93;27468:3;27379:93;:::i;:::-;27497:2;27492:3;27488:12;27481:19;;27140:366;;;:::o;27512:419::-;27678:4;27716:2;27705:9;27701:18;27693:26;;27765:9;27759:4;27755:20;27751:1;27740:9;27736:17;27729:47;27793:131;27919:4;27793:131;:::i;:::-;27785:139;;27512:419;;;:::o;27937:174::-;28077:26;28073:1;28065:6;28061:14;28054:50;27937:174;:::o;28117:366::-;28259:3;28280:67;28344:2;28339:3;28280:67;:::i;:::-;28273:74;;28356:93;28445:3;28356:93;:::i;:::-;28474:2;28469:3;28465:12;28458:19;;28117:366;;;:::o;28489:419::-;28655:4;28693:2;28682:9;28678:18;28670:26;;28742:9;28736:4;28732:20;28728:1;28717:9;28713:17;28706:47;28770:131;28896:4;28770:131;:::i;:::-;28762:139;;28489:419;;;:::o;28914:410::-;28954:7;28977:20;28995:1;28977:20;:::i;:::-;28972:25;;29011:20;29029:1;29011:20;:::i;:::-;29006:25;;29066:1;29063;29059:9;29088:30;29106:11;29088:30;:::i;:::-;29077:41;;29267:1;29258:7;29254:15;29251:1;29248:22;29228:1;29221:9;29201:83;29178:139;;29297:18;;:::i;:::-;29178:139;28962:362;28914:410;;;;:::o;29330:180::-;29378:77;29375:1;29368:88;29475:4;29472:1;29465:15;29499:4;29496:1;29489:15;29516:185;29556:1;29573:20;29591:1;29573:20;:::i;:::-;29568:25;;29607:20;29625:1;29607:20;:::i;:::-;29602:25;;29646:1;29636:35;;29651:18;;:::i;:::-;29636:35;29693:1;29690;29686:9;29681:14;;29516:185;;;;:::o;29707:194::-;29747:4;29767:20;29785:1;29767:20;:::i;:::-;29762:25;;29801:20;29819:1;29801:20;:::i;:::-;29796:25;;29845:1;29842;29838:9;29830:17;;29869:1;29863:4;29860:11;29857:37;;;29874:18;;:::i;:::-;29857:37;29707:194;;;;:::o;29907:179::-;30047:31;30043:1;30035:6;30031:14;30024:55;29907:179;:::o;30092:366::-;30234:3;30255:67;30319:2;30314:3;30255:67;:::i;:::-;30248:74;;30331:93;30420:3;30331:93;:::i;:::-;30449:2;30444:3;30440:12;30433:19;;30092:366;;;:::o;30464:419::-;30630:4;30668:2;30657:9;30653:18;30645:26;;30717:9;30711:4;30707:20;30703:1;30692:9;30688:17;30681:47;30745:131;30871:4;30745:131;:::i;:::-;30737:139;;30464:419;;;:::o;30889:180::-;30937:77;30934:1;30927:88;31034:4;31031:1;31024:15;31058:4;31055:1;31048:15;31075:180;31123:77;31120:1;31113:88;31220:4;31217:1;31210:15;31244:4;31241:1;31234:15;31261:114;31328:6;31362:5;31356:12;31346:22;;31261:114;;;:::o;31381:184::-;31480:11;31514:6;31509:3;31502:19;31554:4;31549:3;31545:14;31530:29;;31381:184;;;;:::o;31571:132::-;31638:4;31661:3;31653:11;;31691:4;31686:3;31682:14;31674:22;;31571:132;;;:::o;31709:108::-;31786:24;31804:5;31786:24;:::i;:::-;31781:3;31774:37;31709:108;;:::o;31823:179::-;31892:10;31913:46;31955:3;31947:6;31913:46;:::i;:::-;31991:4;31986:3;31982:14;31968:28;;31823:179;;;;:::o;32008:113::-;32078:4;32110;32105:3;32101:14;32093:22;;32008:113;;;:::o;32157:732::-;32276:3;32305:54;32353:5;32305:54;:::i;:::-;32375:86;32454:6;32449:3;32375:86;:::i;:::-;32368:93;;32485:56;32535:5;32485:56;:::i;:::-;32564:7;32595:1;32580:284;32605:6;32602:1;32599:13;32580:284;;;32681:6;32675:13;32708:63;32767:3;32752:13;32708:63;:::i;:::-;32701:70;;32794:60;32847:6;32794:60;:::i;:::-;32784:70;;32640:224;32627:1;32624;32620:9;32615:14;;32580:284;;;32584:14;32880:3;32873:10;;32281:608;;;32157:732;;;;:::o;32895:831::-;33158:4;33196:3;33185:9;33181:19;33173:27;;33210:71;33278:1;33267:9;33263:17;33254:6;33210:71;:::i;:::-;33291:80;33367:2;33356:9;33352:18;33343:6;33291:80;:::i;:::-;33418:9;33412:4;33408:20;33403:2;33392:9;33388:18;33381:48;33446:108;33549:4;33540:6;33446:108;:::i;:::-;33438:116;;33564:72;33632:2;33621:9;33617:18;33608:6;33564:72;:::i;:::-;33646:73;33714:3;33703:9;33699:19;33690:6;33646:73;:::i;:::-;32895:831;;;;;;;;:::o;33732:332::-;33853:4;33891:2;33880:9;33876:18;33868:26;;33904:71;33972:1;33961:9;33957:17;33948:6;33904:71;:::i;:::-;33985:72;34053:2;34042:9;34038:18;34029:6;33985:72;:::i;:::-;33732:332;;;;;:::o;34070:179::-;34210:31;34206:1;34198:6;34194:14;34187:55;34070:179;:::o;34255:366::-;34397:3;34418:67;34482:2;34477:3;34418:67;:::i;:::-;34411:74;;34494:93;34583:3;34494:93;:::i;:::-;34612:2;34607:3;34603:12;34596:19;;34255:366;;;:::o;34627:419::-;34793:4;34831:2;34820:9;34816:18;34808:26;;34880:9;34874:4;34870:20;34866:1;34855:9;34851:17;34844:47;34908:131;35034:4;34908:131;:::i;:::-;34900:139;;34627:419;;;:::o;35052:147::-;35153:11;35190:3;35175:18;;35052:147;;;;:::o;35205:114::-;;:::o;35325:398::-;35484:3;35505:83;35586:1;35581:3;35505:83;:::i;:::-;35498:90;;35597:93;35686:3;35597:93;:::i;:::-;35715:1;35710:3;35706:11;35699:18;;35325:398;;;:::o;35729:379::-;35913:3;35935:147;36078:3;35935:147;:::i;:::-;35928:154;;36099:3;36092:10;;35729:379;;;:::o;36114:224::-;36254:34;36250:1;36242:6;36238:14;36231:58;36323:7;36318:2;36310:6;36306:15;36299:32;36114:224;:::o;36344:366::-;36486:3;36507:67;36571:2;36566:3;36507:67;:::i;:::-;36500:74;;36583:93;36672:3;36583:93;:::i;:::-;36701:2;36696:3;36692:12;36685:19;;36344:366;;;:::o;36716:419::-;36882:4;36920:2;36909:9;36905:18;36897:26;;36969:9;36963:4;36959:20;36955:1;36944:9;36940:17;36933:47;36997:131;37123:4;36997:131;:::i;:::-;36989:139;;36716:419;;;:::o;37141:222::-;37281:34;37277:1;37269:6;37265:14;37258:58;37350:5;37345:2;37337:6;37333:15;37326:30;37141:222;:::o;37369:366::-;37511:3;37532:67;37596:2;37591:3;37532:67;:::i;:::-;37525:74;;37608:93;37697:3;37608:93;:::i;:::-;37726:2;37721:3;37717:12;37710:19;;37369:366;;;:::o;37741:419::-;37907:4;37945:2;37934:9;37930:18;37922:26;;37994:9;37988:4;37984:20;37980:1;37969:9;37965:17;37958:47;38022:131;38148:4;38022:131;:::i;:::-;38014:139;;37741:419;;;:::o;38166:225::-;38306:34;38302:1;38294:6;38290:14;38283:58;38375:8;38370:2;38362:6;38358:15;38351:33;38166:225;:::o;38397:366::-;38539:3;38560:67;38624:2;38619:3;38560:67;:::i;:::-;38553:74;;38636:93;38725:3;38636:93;:::i;:::-;38754:2;38749:3;38745:12;38738:19;;38397:366;;;:::o;38769:419::-;38935:4;38973:2;38962:9;38958:18;38950:26;;39022:9;39016:4;39012:20;39008:1;38997:9;38993:17;38986:47;39050:131;39176:4;39050:131;:::i;:::-;39042:139;;38769:419;;;:::o

Swarm Source

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