ETH Price: $2,522.62 (-0.22%)

Token

Pegged (PEG)
 

Overview

Max Total Supply

69,000,000 PEG

Holders

126

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000021219239 PEG

Value
$0.00
0x4d6de1b8f5f887c3957c87610e52b43e2c90cad4
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:
Pegged

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-26
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.9;

/* 
    $PEG Token: Making Crypto Sexy Again one PEG at a time.

    Telegram: https://t.me/PEG_official
    Twitter: https://twitter.com/Peg_bot
    Website: https://www.pegged.life/
*/

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

    function transfer(address to, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        address owner = _msgSender();
        _transfer(owner, to, 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)
    {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

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

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

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

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

contract Pegged is ERC20, Ownable {
    IUniswapV2Router02 public immutable uniswapV2Router;

    address public uniswapV2Pair;
    address public constant deadAddress = address(0xdead);
    address public marketingWallet;

    bool public launched;
    bool private swapping;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public tradingBlock;
    uint256 public buyMarketingFee;
    uint256 public sellMarketingFee;
    uint256 public totalFeesGenerated;
    uint256 private dx;

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

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event BuyFeeChanged(uint256 newFee, uint256 oldFee);
    event SellFeeChanged(uint256 newFee, uint256 oldFee);
    event MaxTransactionAmountChanged(uint256 newFee, uint256 oldFee);
    event SwapTokensAtAmountChanged(uint256 newFee, uint256 oldFee);
    event MaxWalletChanged(uint256 newFee, uint256 oldFee);
    event MarketingWalletChanged(address newAddr, address oldAddr);

    constructor() ERC20("Pegged", "PEG") {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        uint256 totalSupply = 69_000_000 ether;

        maxTransactionAmount = (totalSupply * 1) / 100; 
        maxWallet = (totalSupply * 1) / 100;
        swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05%

        buyMarketingFee = 20;
        sellMarketingFee = 30;

        marketingWallet = 0xc9e18022719df0d193a0cdF325C05f2A7B15C4AD;

        excludeFromFees(msg.sender, true);
        excludeFromFees(address(this), true);
        excludeFromFees(deadAddress, true);
        excludeFromFees(marketingWallet, true);

        excludeFromMaxTransaction(msg.sender, true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(deadAddress, true);
        excludeFromMaxTransaction(address(uniswapV2Router), true);

        _mint(marketingWallet, (totalSupply * 10) / 100);
        _mint(address(this), (totalSupply * 90) / 100);

        _transferOwnership(msg.sender);
    }

    receive() external payable {}

    function burn(uint256 amount) external {
        _burn(msg.sender, amount);
    }

    function launch() external payable onlyOwner {
        require(!launched, "Pegging already conducted");

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        _approve(address(this), address(uniswapV2Pair), type(uint256).max);
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        dx = 3;
        launched = true;
        tradingBlock = block.number;
    }

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

    function updateMaxWallet(uint256 _maxWallet) external onlyOwner {
        require(
            _maxWallet >= ((totalSupply() * 5) / 1000),
            "ERC20: Cannot set maxWallet lower than 0.5%"
        );
        uint256 oldMaxWallet = maxWallet;
        maxWallet = _maxWallet;
        emit MaxWalletChanged(maxWallet, oldMaxWallet);
    }

    function updateMaxTransactionAmount(uint256 _maxTransactionAmount) external onlyOwner {
        require(
            _maxTransactionAmount >= ((totalSupply() * 5) / 1000),
            "ERC20: Cannot set maxTxn lower than 0.5%"
        );
        uint256 oldMaxTxAmount = maxTransactionAmount;
        maxTransactionAmount = _maxTransactionAmount;
        emit MaxTransactionAmountChanged(maxTransactionAmount, oldMaxTxAmount);
    }

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

    function updateBuyFees(uint256 _buyFee) external onlyOwner {
        require(_buyFee <= 20, "ERC20: Must keep fees at 20% or less");
        uint256 oldBuyFee = buyMarketingFee;
        buyMarketingFee = _buyFee;
        emit BuyFeeChanged(buyMarketingFee, oldBuyFee);
    }

    function updateSellFees(uint256 _sellFee) external onlyOwner {
        require(_sellFee <= 20, "ERC20: Must keep fees at 20% or less");
        uint256 oldSellFee = sellMarketingFee;
        sellMarketingFee = _sellFee;
        emit SellFeeChanged(sellMarketingFee, oldSellFee);
    }

    function updateFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_sellFee <= 20 && _buyFee <= 20, "ERC20: Must keep fees at 20% or less");
        uint256 oldBuyFee = buyMarketingFee;
        buyMarketingFee = _buyFee;
        emit BuyFeeChanged(buyMarketingFee, oldBuyFee);

        uint256 oldSellFee = sellMarketingFee;
        sellMarketingFee = _sellFee;
        emit SellFeeChanged(sellMarketingFee, oldSellFee);
    }

    function updateMarketingWallet(address _marketingWallet)
        external
        onlyOwner
    {
        require(_marketingWallet != address(0), "ERC20: Address 0");
        address oldWallet = marketingWallet;
        marketingWallet = _marketingWallet;
        emit MarketingWalletChanged(marketingWallet, oldWallet);
    }

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

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

    function withdrawStuckTokens(address tk) public onlyOwner {
        require(IERC20(tk).balanceOf(address(this)) > 0, "No tokens");
        uint256 amount = IERC20(tk).balanceOf(address(this));
        IERC20(tk).transfer(msg.sender, amount);
    }

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

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

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

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

        if (
            from != owner() &&
            to != owner() &&
            to != address(0) &&
            to != deadAddress &&
            !swapping
        ) {

            if (
                block.number <= tradingBlock + 20 && tx.gasprice > block.basefee
            ) {
                uint256 _bx = tx.gasprice - block.basefee;
                uint256 _bxd = dx * (10**9);
                require(_bx < _bxd, "Stop");
            }

            //when buy
            if (
                automatedMarketMakerPairs[from] &&
                !_isExcludedMaxTransactionAmount[to]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "ERC20: Buy transfer amount exceeds the maxTransactionAmount."
                );
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "ERC20: Max wallet exceeded"
                );
            }
            //when sell
            else if (
                automatedMarketMakerPairs[to] &&
                !_isExcludedMaxTransactionAmount[from]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "ERC20: Sell transfer amount exceeds the maxTransactionAmount."
                );
            } else if (!_isExcludedMaxTransactionAmount[to]) {
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "ERC20: Max wallet exceeded"
                );
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

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

        uint256 fees = 0;

        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellMarketingFee > 0) {
                fees = (amount * sellMarketingFee) / 100;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyMarketingFee > 0) {
                fees = (amount * buyMarketingFee) / 100;
            }

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

            amount -= fees;
        }

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

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

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

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

        swapTokensForEth(contractBalance);

        uint256 feesGenerated = address(this).balance;
        totalFeesGenerated += feesGenerated;

        (success, ) = address(marketingWallet).call{
            value: address(this).balance
        }("");

    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldFee","type":"uint256"}],"name":"BuyFeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAddr","type":"address"},{"indexed":false,"internalType":"address","name":"oldAddr","type":"address"}],"name":"MarketingWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldFee","type":"uint256"}],"name":"MaxTransactionAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldFee","type":"uint256"}],"name":"MaxWalletChanged","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":"newFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldFee","type":"uint256"}],"name":"SellFeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldFee","type":"uint256"}],"name":"SwapTokensAtAmountChanged","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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeesGenerated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTransactionAmount","type":"uint256"}],"name":"updateMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapTokensAtAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tk","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040523480156200001157600080fd5b506040518060400160405280600681526020017f50656767656400000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f50454700000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200097e565b508060049080519060200190620000af9291906200097e565b505050620000d2620000c66200038460201b60201c565b6200038c60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200014f306080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200045260201b60201c565b60006a3913517ebd3c0c650000009050606460018262000170919062000a67565b6200017c919062000af7565b600881905550606460018262000193919062000a67565b6200019f919062000af7565b600a81905550612710600582620001b7919062000a67565b620001c3919062000af7565b6009819055506014600c81905550601e600d8190555073c9e18022719df0d193a0cdf325c05f2a7b15c4ad600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002413360016200062560201b60201c565b620002543060016200062560201b60201c565b6200026961dead60016200062560201b60201c565b6200029e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200062560201b60201c565b620002b1336001620006e060201b60201c565b620002c4306001620006e060201b60201c565b620002d961dead6001620006e060201b60201c565b620002ee6080516001620006e060201b60201c565b6200033e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600a8462000326919062000a67565b62000332919062000af7565b6200074b60201b60201c565b6200036c306064605a8462000354919062000a67565b62000360919062000af7565b6200074b60201b60201c565b6200037d336200038c60201b60201c565b5062000e7e565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620004c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004bc9062000bb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000538576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200052f9062000c4e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000618919062000c81565b60405180910390a3505050565b62000635620008b960201b60201c565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620006d4919062000cbb565b60405180910390a25050565b620006f0620008b960201b60201c565b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007b59062000d28565b60405180910390fd5b620007d2600083836200094a60201b60201c565b8060026000828254620007e6919062000d4a565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000899919062000c81565b60405180910390a3620008b5600083836200094f60201b60201c565b5050565b620008c96200038460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620008ef6200095460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000948576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200093f9062000df7565b60405180910390fd5b565b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200098c9062000e48565b90600052602060002090601f016020900481019282620009b05760008555620009fc565b82601f10620009cb57805160ff1916838001178555620009fc565b82800160010185558215620009fc579182015b82811115620009fb578251825591602001919060010190620009de565b5b50905062000a0b919062000a0f565b5090565b5b8082111562000a2a57600081600090555060010162000a10565b5090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a748262000a2e565b915062000a818362000a2e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000abd5762000abc62000a38565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b048262000a2e565b915062000b118362000a2e565b92508262000b245762000b2362000ac8565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000b9e60248362000b2f565b915062000bab8262000b40565b604082019050919050565b6000602082019050818103600083015262000bd18162000b8f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000c3660228362000b2f565b915062000c438262000bd8565b604082019050919050565b6000602082019050818103600083015262000c698162000c27565b9050919050565b62000c7b8162000a2e565b82525050565b600060208201905062000c98600083018462000c70565b92915050565b60008115159050919050565b62000cb58162000c9e565b82525050565b600060208201905062000cd2600083018462000caa565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d10601f8362000b2f565b915062000d1d8262000cd8565b602082019050919050565b6000602082019050818103600083015262000d438162000d01565b9050919050565b600062000d578262000a2e565b915062000d648362000a2e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d9c5762000d9b62000a38565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000ddf60208362000b2f565b915062000dec8262000da7565b602082019050919050565b6000602082019050818103600083015262000e128162000dd0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e6157607f821691505b6020821081141562000e785762000e7762000e19565b5b50919050565b6080516147cc62000ecb6000396000818161098c01528181610a4601528181610c1e01528181610d2a01528181610ed401528181612fad0152818161309d01526130c401526147cc6000f3fe60806040526004361061023f5760003560e01c80638091f3bf1161012e578063c8c8ebe4116100ab578063e2f456051161006f578063e2f4560514610873578063eba4c3331461089e578063f2fde38b146108c7578063f5648a4f146108f0578063f8b45b051461090757610246565b8063c8c8ebe41461078e578063cb963728146107b9578063cd51e6d4146107e2578063d257b34f1461080d578063dd62ed3e1461083657610246565b8063a457c2d7116100f2578063a457c2d714610699578063a9059cbb146106d6578063aa49802314610713578063aacebbe31461073c578063c02466681461076557610246565b80638091f3bf146105c25780638da5cb5b146105ed578063921369131461061857806395d89b41146106435780639bab43ef1461066e57610246565b806342966c68116101bc578063715018a611610180578063715018a61461050357806371fc46881461051a5780637571336a1461054357806375f0a8741461056c5780637bce5a041461059757610246565b806342966c681461040c57806349bd5a5e146104355780634fbee193146104605780636db794371461049d57806370a08231146104c657610246565b80631c499ab0116102035780631c499ab01461031357806323b872dd1461033c57806327c8f83514610379578063313ce567146103a457806339509351146103cf57610246565b806301339c211461024b57806306fdde0314610255578063095ea7b3146102805780631694505e146102bd57806318160ddd146102e857610246565b3661024657005b600080fd5b610253610932565b005b34801561026157600080fd5b5061026a610e1d565b60405161027791906131f3565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a291906132ae565b610eaf565b6040516102b49190613309565b60405180910390f35b3480156102c957600080fd5b506102d2610ed2565b6040516102df9190613383565b60405180910390f35b3480156102f457600080fd5b506102fd610ef6565b60405161030a91906133ad565b60405180910390f35b34801561031f57600080fd5b5061033a600480360381019061033591906133c8565b610f00565b005b34801561034857600080fd5b50610363600480360381019061035e91906133f5565b610fb8565b6040516103709190613309565b60405180910390f35b34801561038557600080fd5b5061038e610fe7565b60405161039b9190613457565b60405180910390f35b3480156103b057600080fd5b506103b9610fed565b6040516103c6919061348e565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f191906132ae565b610ff6565b6040516104039190613309565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e91906133c8565b61102d565b005b34801561044157600080fd5b5061044a61103a565b6040516104579190613457565b60405180910390f35b34801561046c57600080fd5b50610487600480360381019061048291906134a9565b611060565b6040516104949190613309565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf91906134d6565b6110b6565b005b3480156104d257600080fd5b506104ed60048036038101906104e891906134a9565b6111a7565b6040516104fa91906133ad565b60405180910390f35b34801561050f57600080fd5b506105186111ef565b005b34801561052657600080fd5b50610541600480360381019061053c91906133c8565b611203565b005b34801561054f57600080fd5b5061056a60048036038101906105659190613542565b61129c565b005b34801561057857600080fd5b506105816112ff565b60405161058e9190613457565b60405180910390f35b3480156105a357600080fd5b506105ac611325565b6040516105b991906133ad565b60405180910390f35b3480156105ce57600080fd5b506105d761132b565b6040516105e49190613309565b60405180910390f35b3480156105f957600080fd5b5061060261133e565b60405161060f9190613457565b60405180910390f35b34801561062457600080fd5b5061062d611368565b60405161063a91906133ad565b60405180910390f35b34801561064f57600080fd5b5061065861136e565b60405161066591906131f3565b60405180910390f35b34801561067a57600080fd5b50610683611400565b60405161069091906133ad565b60405180910390f35b3480156106a557600080fd5b506106c060048036038101906106bb91906132ae565b611406565b6040516106cd9190613309565b60405180910390f35b3480156106e257600080fd5b506106fd60048036038101906106f891906132ae565b61147d565b60405161070a9190613309565b60405180910390f35b34801561071f57600080fd5b5061073a600480360381019061073591906133c8565b6114a0565b005b34801561074857600080fd5b50610763600480360381019061075e91906134a9565b611558565b005b34801561077157600080fd5b5061078c60048036038101906107879190613542565b611697565b005b34801561079a57600080fd5b506107a3611748565b6040516107b091906133ad565b60405180910390f35b3480156107c557600080fd5b506107e060048036038101906107db91906134a9565b61174e565b005b3480156107ee57600080fd5b506107f7611940565b60405161080491906133ad565b60405180910390f35b34801561081957600080fd5b50610834600480360381019061082f91906133c8565b611946565b005b34801561084257600080fd5b5061085d60048036038101906108589190613582565b611a62565b60405161086a91906133ad565b60405180910390f35b34801561087f57600080fd5b50610888611ae9565b60405161089591906133ad565b60405180910390f35b3480156108aa57600080fd5b506108c560048036038101906108c091906133c8565b611aef565b005b3480156108d357600080fd5b506108ee60048036038101906108e991906134a9565b611b88565b005b3480156108fc57600080fd5b50610905611c0c565b005b34801561091357600080fd5b5061091c611c85565b60405161092991906133ad565b60405180910390f35b61093a611c8b565b600760149054906101000a900460ff161561098a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109819061360e565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156109f057600080fd5b505afa158015610a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a289190613643565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610aaa57600080fd5b505afa158015610abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae29190613643565b6040518363ffffffff1660e01b8152600401610aff929190613670565b602060405180830381600087803b158015610b1957600080fd5b505af1158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190613643565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bde30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611d09565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c7b929190613699565b602060405180830381600087803b158015610c9557600080fd5b505af1158015610ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccd91906136d7565b50610cfb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611ed4565b610d28600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161129c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d6f306111a7565b600080610d7a61133e565b426040518863ffffffff1660e01b8152600401610d9c9695949392919061373f565b6060604051808303818588803b158015610db557600080fd5b505af1158015610dc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dee91906137b5565b5050506003600f819055506001600760146101000a81548160ff02191690831515021790555043600b81905550565b606060038054610e2c90613837565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5890613837565b8015610ea55780601f10610e7a57610100808354040283529160200191610ea5565b820191906000526020600020905b815481529060010190602001808311610e8857829003601f168201915b5050505050905090565b600080610eba611f75565b9050610ec7818585611d09565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610f08611c8b565b6103e86005610f15610ef6565b610f1f9190613898565b610f299190613921565b811015610f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f62906139c4565b60405180910390fd5b6000600a54905081600a819055507f44d543cdf368504a8e1363a6f41fe63122b6d67c8cdb004b74d8c976439e416b600a5482604051610fac9291906139e4565b60405180910390a15050565b600080610fc3611f75565b9050610fd0858285611f7d565b610fdb858585612009565b60019150509392505050565b61dead81565b60006012905090565b600080611001611f75565b90506110228185856110138589611a62565b61101d9190613a0d565b611d09565b600191505092915050565b61103733826128f7565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6110be611c8b565b601481111580156110d0575060148211155b61110f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110690613ad5565b60405180910390fd5b6000600c54905082600c819055507f26514ee1bed536218b4838232e0c5b32f4d71470a74865380caad452458f91e3600c54826040516111509291906139e4565b60405180910390a16000600d54905082600d819055507ffe65bed4292b79fd04c7eec59e165819b2a233601c74ea6e2e01c829d8c8cb89600d54826040516111999291906139e4565b60405180910390a150505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f7611c8b565b6112016000612ac5565b565b61120b611c8b565b601481111561124f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124690613ad5565b60405180910390fd5b6000600c54905081600c819055507f26514ee1bed536218b4838232e0c5b32f4d71470a74865380caad452458f91e3600c54826040516112909291906139e4565b60405180910390a15050565b6112a4611c8b565b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600760149054906101000a900460ff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606004805461137d90613837565b80601f01602080910402602001604051908101604052809291908181526020018280546113a990613837565b80156113f65780601f106113cb576101008083540402835291602001916113f6565b820191906000526020600020905b8154815290600101906020018083116113d957829003601f168201915b5050505050905090565b600e5481565b600080611411611f75565b9050600061141f8286611a62565b905083811015611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90613b67565b60405180910390fd5b6114718286868403611d09565b60019250505092915050565b600080611488611f75565b9050611495818585612009565b600191505092915050565b6114a8611c8b565b6103e860056114b5610ef6565b6114bf9190613898565b6114c99190613921565b81101561150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290613bf9565b60405180910390fd5b60006008549050816008819055507f7ce9f1e2c75852250b7e23e803f455fc0d1fa34ddbf5cc4ee7125e9c9d0ea7f76008548260405161154c9291906139e4565b60405180910390a15050565b611560611c8b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c790613c65565b60405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc17db519c06a38e30a448e03e08b3edec28a0a29d239f693ab94a6206a5ca63d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260405161168b929190613670565b60405180910390a15050565b61169f611c8b565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161173c9190613309565b60405180910390a25050565b60085481565b611756611c8b565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117919190613457565b60206040518083038186803b1580156117a957600080fd5b505afa1580156117bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e19190613c85565b11611821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181890613cfe565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161185c9190613457565b60206040518083038186803b15801561187457600080fd5b505afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190613c85565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016118e9929190613699565b602060405180830381600087803b15801561190357600080fd5b505af1158015611917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193b91906136d7565b505050565b600b5481565b61194e611c8b565b620186a0600161195c610ef6565b6119669190613898565b6119709190613921565b8110156119b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a990613d90565b60405180910390fd5b6103e860056119bf610ef6565b6119c99190613898565b6119d39190613921565b811115611a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0c90613e22565b60405180910390fd5b60006009549050816009819055507fab0ec7468909bac916971a36711bb7a453201e59940de1fb0be6acc303854ffd60095482604051611a569291906139e4565b60405180910390a15050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b611af7611c8b565b6014811115611b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3290613ad5565b60405180910390fd5b6000600d54905081600d819055507ffe65bed4292b79fd04c7eec59e165819b2a233601c74ea6e2e01c829d8c8cb89600d5482604051611b7c9291906139e4565b60405180910390a15050565b611b90611c8b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790613eb4565b60405180910390fd5b611c0981612ac5565b50565b611c14611c8b565b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611c3a90613f05565b60006040518083038185875af1925050503d8060008114611c77576040519150601f19603f3d011682016040523d82523d6000602084013e611c7c565b606091505b50508091505050565b600a5481565b611c93611f75565b73ffffffffffffffffffffffffffffffffffffffff16611cb161133e565b73ffffffffffffffffffffffffffffffffffffffff1614611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe90613f66565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7090613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de09061408a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ec791906133ad565b60405180910390a3505050565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600033905090565b6000611f898484611a62565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146120035781811015611ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fec906140f6565b60405180910390fd5b6120028484848403611d09565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207090614188565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e09061421a565b60405180910390fd5b6000811415612103576120fe83836000612b8b565b6128f2565b61210b61133e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612179575061214961133e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121b25750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121ec575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122055750600760159054906101000a900460ff16155b15612580576014600b546122199190613a0d565b43111580156122275750483a115b15612297576000483a61223a919061423a565b90506000633b9aca00600f546122509190613898565b9050808210612294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228b906142ba565b60405180910390fd5b50505b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561233a5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123e157600854811115612384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237b9061434c565b60405180910390fd5b600a54612390836111a7565b8261239b9190613a0d565b11156123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d3906143b8565b60405180910390fd5b61257f565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124845750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124d3576008548111156124ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c59061444a565b60405180910390fd5b61257e565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661257d57600a54612530836111a7565b8261253b9190613a0d565b111561257c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612573906143b8565b60405180910390fd5b5b5b5b5b600061258b306111a7565b9050600060095482101590508080156125b15750600760159054906101000a900460ff16155b80156126075750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561265d5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126b35750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126f7576001600760156101000a81548160ff0219169083151502179055506126db612e03565b6000600760156101000a81548160ff0219169083151502179055505b6000600760159054906101000a900460ff16159050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127ad5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127b757600090505b600081156128e257601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561281a57506000600d54115b15612840576064600d548661282f9190613898565b6128399190613921565b90506128be565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561289b57506000600c54115b156128bd576064600c54866128b09190613898565b6128ba9190613921565b90505b5b60008111156128d3576128d2873083612b8b565b5b80856128df919061423a565b94505b6128ed878787612b8b565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295e906144dc565b60405180910390fd5b61297382600083612f04565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f09061456e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612aac91906133ad565b60405180910390a3612ac083600084612f09565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf290614188565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c629061421a565b60405180910390fd5b612c76838383612f04565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf390614600565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612dea91906133ad565b60405180910390a3612dfd848484612f09565b50505050565b6000612e0e306111a7565b9050600080821415612e21575050612f02565b6014600954612e309190613898565b821115612e49576014600954612e469190613898565b91505b612e5282612f0e565b600047905080600e6000828254612e699190613a0d565b92505081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612eb690613f05565b60006040518083038185875af1925050503d8060008114612ef3576040519150601f19603f3d011682016040523d82523d6000602084013e612ef8565b606091505b5050809250505050505b565b505050565b505050565b6000600267ffffffffffffffff811115612f2b57612f2a614620565b5b604051908082528060200260200182016040528015612f595781602001602082028036833780820191505090505b5090503081600081518110612f7157612f7061464f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561301157600080fd5b505afa158015613025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130499190613643565b8160018151811061305d5761305c61464f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506130c2307f000000000000000000000000000000000000000000000000000000000000000084611d09565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161312495949392919061473c565b600060405180830381600087803b15801561313e57600080fd5b505af1158015613152573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613194578082015181840152602081019050613179565b838111156131a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006131c58261315a565b6131cf8185613165565b93506131df818560208601613176565b6131e8816131a9565b840191505092915050565b6000602082019050818103600083015261320d81846131ba565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132458261321a565b9050919050565b6132558161323a565b811461326057600080fd5b50565b6000813590506132728161324c565b92915050565b6000819050919050565b61328b81613278565b811461329657600080fd5b50565b6000813590506132a881613282565b92915050565b600080604083850312156132c5576132c4613215565b5b60006132d385828601613263565b92505060206132e485828601613299565b9150509250929050565b60008115159050919050565b613303816132ee565b82525050565b600060208201905061331e60008301846132fa565b92915050565b6000819050919050565b600061334961334461333f8461321a565b613324565b61321a565b9050919050565b600061335b8261332e565b9050919050565b600061336d82613350565b9050919050565b61337d81613362565b82525050565b60006020820190506133986000830184613374565b92915050565b6133a781613278565b82525050565b60006020820190506133c2600083018461339e565b92915050565b6000602082840312156133de576133dd613215565b5b60006133ec84828501613299565b91505092915050565b60008060006060848603121561340e5761340d613215565b5b600061341c86828701613263565b935050602061342d86828701613263565b925050604061343e86828701613299565b9150509250925092565b6134518161323a565b82525050565b600060208201905061346c6000830184613448565b92915050565b600060ff82169050919050565b61348881613472565b82525050565b60006020820190506134a3600083018461347f565b92915050565b6000602082840312156134bf576134be613215565b5b60006134cd84828501613263565b91505092915050565b600080604083850312156134ed576134ec613215565b5b60006134fb85828601613299565b925050602061350c85828601613299565b9150509250929050565b61351f816132ee565b811461352a57600080fd5b50565b60008135905061353c81613516565b92915050565b6000806040838503121561355957613558613215565b5b600061356785828601613263565b92505060206135788582860161352d565b9150509250929050565b6000806040838503121561359957613598613215565b5b60006135a785828601613263565b92505060206135b885828601613263565b9150509250929050565b7f50656767696e6720616c726561647920636f6e64756374656400000000000000600082015250565b60006135f8601983613165565b9150613603826135c2565b602082019050919050565b60006020820190508181036000830152613627816135eb565b9050919050565b60008151905061363d8161324c565b92915050565b60006020828403121561365957613658613215565b5b60006136678482850161362e565b91505092915050565b60006040820190506136856000830185613448565b6136926020830184613448565b9392505050565b60006040820190506136ae6000830185613448565b6136bb602083018461339e565b9392505050565b6000815190506136d181613516565b92915050565b6000602082840312156136ed576136ec613215565b5b60006136fb848285016136c2565b91505092915050565b6000819050919050565b600061372961372461371f84613704565b613324565b613278565b9050919050565b6137398161370e565b82525050565b600060c0820190506137546000830189613448565b613761602083018861339e565b61376e6040830187613730565b61377b6060830186613730565b6137886080830185613448565b61379560a083018461339e565b979650505050505050565b6000815190506137af81613282565b92915050565b6000806000606084860312156137ce576137cd613215565b5b60006137dc868287016137a0565b93505060206137ed868287016137a0565b92505060406137fe868287016137a0565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061384f57607f821691505b6020821081141561386357613862613808565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138a382613278565b91506138ae83613278565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138e7576138e6613869565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061392c82613278565b915061393783613278565b925082613947576139466138f2565b5b828204905092915050565b7f45524332303a2043616e6e6f7420736574206d617857616c6c6574206c6f776560008201527f72207468616e20302e3525000000000000000000000000000000000000000000602082015250565b60006139ae602b83613165565b91506139b982613952565b604082019050919050565b600060208201905081810360008301526139dd816139a1565b9050919050565b60006040820190506139f9600083018561339e565b613a06602083018461339e565b9392505050565b6000613a1882613278565b9150613a2383613278565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a5857613a57613869565b5b828201905092915050565b7f45524332303a204d757374206b656570206665657320617420323025206f722060008201527f6c65737300000000000000000000000000000000000000000000000000000000602082015250565b6000613abf602483613165565b9150613aca82613a63565b604082019050919050565b60006020820190508181036000830152613aee81613ab2565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b51602583613165565b9150613b5c82613af5565b604082019050919050565b60006020820190508181036000830152613b8081613b44565b9050919050565b7f45524332303a2043616e6e6f7420736574206d617854786e206c6f776572207460008201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b6000613be3602883613165565b9150613bee82613b87565b604082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f45524332303a2041646472657373203000000000000000000000000000000000600082015250565b6000613c4f601083613165565b9150613c5a82613c19565b602082019050919050565b60006020820190508181036000830152613c7e81613c42565b9050919050565b600060208284031215613c9b57613c9a613215565b5b6000613ca9848285016137a0565b91505092915050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000613ce8600983613165565b9150613cf382613cb2565b602082019050919050565b60006020820190508181036000830152613d1781613cdb565b9050919050565b7f45524332303a205377617020616d6f756e742063616e6e6f74206265206c6f7760008201527f6572207468616e20302e3030312520746f74616c20737570706c792e00000000602082015250565b6000613d7a603c83613165565b9150613d8582613d1e565b604082019050919050565b60006020820190508181036000830152613da981613d6d565b9050919050565b7f45524332303a205377617020616d6f756e742063616e6e6f742062652068696760008201527f686572207468616e20302e352520746f74616c20737570706c792e0000000000602082015250565b6000613e0c603b83613165565b9150613e1782613db0565b604082019050919050565b60006020820190508181036000830152613e3b81613dff565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e9e602683613165565b9150613ea982613e42565b604082019050919050565b60006020820190508181036000830152613ecd81613e91565b9050919050565b600081905092915050565b50565b6000613eef600083613ed4565b9150613efa82613edf565b600082019050919050565b6000613f1082613ee2565b9150819050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f50602083613165565b9150613f5b82613f1a565b602082019050919050565b60006020820190508181036000830152613f7f81613f43565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613fe2602483613165565b9150613fed82613f86565b604082019050919050565b6000602082019050818103600083015261401181613fd5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614074602283613165565b915061407f82614018565b604082019050919050565b600060208201905081810360008301526140a381614067565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006140e0601d83613165565b91506140eb826140aa565b602082019050919050565b6000602082019050818103600083015261410f816140d3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614172602583613165565b915061417d82614116565b604082019050919050565b600060208201905081810360008301526141a181614165565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614204602383613165565b915061420f826141a8565b604082019050919050565b60006020820190508181036000830152614233816141f7565b9050919050565b600061424582613278565b915061425083613278565b92508282101561426357614262613869565b5b828203905092915050565b7f53746f7000000000000000000000000000000000000000000000000000000000600082015250565b60006142a4600483613165565b91506142af8261426e565b602082019050919050565b600060208201905081810360008301526142d381614297565b9050919050565b7f45524332303a20427579207472616e7366657220616d6f756e7420657863656560008201527f647320746865206d61785472616e73616374696f6e416d6f756e742e00000000602082015250565b6000614336603c83613165565b9150614341826142da565b604082019050919050565b6000602082019050818103600083015261436581614329565b9050919050565b7f45524332303a204d61782077616c6c6574206578636565646564000000000000600082015250565b60006143a2601a83613165565b91506143ad8261436c565b602082019050919050565b600060208201905081810360008301526143d181614395565b9050919050565b7f45524332303a2053656c6c207472616e7366657220616d6f756e74206578636560008201527f65647320746865206d61785472616e73616374696f6e416d6f756e742e000000602082015250565b6000614434603d83613165565b915061443f826143d8565b604082019050919050565b6000602082019050818103600083015261446381614427565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006144c6602183613165565b91506144d18261446a565b604082019050919050565b600060208201905081810360008301526144f5816144b9565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614558602283613165565b9150614563826144fc565b604082019050919050565b600060208201905081810360008301526145878161454b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006145ea602683613165565b91506145f58261458e565b604082019050919050565b60006020820190508181036000830152614619816145dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146b38161323a565b82525050565b60006146c583836146aa565b60208301905092915050565b6000602082019050919050565b60006146e98261467e565b6146f38185614689565b93506146fe8361469a565b8060005b8381101561472f57815161471688826146b9565b9750614721836146d1565b925050600181019050614702565b5085935050505092915050565b600060a082019050614751600083018861339e565b61475e6020830187613730565b818103604083015261477081866146de565b905061477f6060830185613448565b61478c608083018461339e565b969550505050505056fea26469706673582212201b5a0595d3322f4953ec238a257ab17e8e2489150e47f0d4751f40b5b2b05e4564736f6c63430008090033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c80638091f3bf1161012e578063c8c8ebe4116100ab578063e2f456051161006f578063e2f4560514610873578063eba4c3331461089e578063f2fde38b146108c7578063f5648a4f146108f0578063f8b45b051461090757610246565b8063c8c8ebe41461078e578063cb963728146107b9578063cd51e6d4146107e2578063d257b34f1461080d578063dd62ed3e1461083657610246565b8063a457c2d7116100f2578063a457c2d714610699578063a9059cbb146106d6578063aa49802314610713578063aacebbe31461073c578063c02466681461076557610246565b80638091f3bf146105c25780638da5cb5b146105ed578063921369131461061857806395d89b41146106435780639bab43ef1461066e57610246565b806342966c68116101bc578063715018a611610180578063715018a61461050357806371fc46881461051a5780637571336a1461054357806375f0a8741461056c5780637bce5a041461059757610246565b806342966c681461040c57806349bd5a5e146104355780634fbee193146104605780636db794371461049d57806370a08231146104c657610246565b80631c499ab0116102035780631c499ab01461031357806323b872dd1461033c57806327c8f83514610379578063313ce567146103a457806339509351146103cf57610246565b806301339c211461024b57806306fdde0314610255578063095ea7b3146102805780631694505e146102bd57806318160ddd146102e857610246565b3661024657005b600080fd5b610253610932565b005b34801561026157600080fd5b5061026a610e1d565b60405161027791906131f3565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a291906132ae565b610eaf565b6040516102b49190613309565b60405180910390f35b3480156102c957600080fd5b506102d2610ed2565b6040516102df9190613383565b60405180910390f35b3480156102f457600080fd5b506102fd610ef6565b60405161030a91906133ad565b60405180910390f35b34801561031f57600080fd5b5061033a600480360381019061033591906133c8565b610f00565b005b34801561034857600080fd5b50610363600480360381019061035e91906133f5565b610fb8565b6040516103709190613309565b60405180910390f35b34801561038557600080fd5b5061038e610fe7565b60405161039b9190613457565b60405180910390f35b3480156103b057600080fd5b506103b9610fed565b6040516103c6919061348e565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f191906132ae565b610ff6565b6040516104039190613309565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e91906133c8565b61102d565b005b34801561044157600080fd5b5061044a61103a565b6040516104579190613457565b60405180910390f35b34801561046c57600080fd5b50610487600480360381019061048291906134a9565b611060565b6040516104949190613309565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf91906134d6565b6110b6565b005b3480156104d257600080fd5b506104ed60048036038101906104e891906134a9565b6111a7565b6040516104fa91906133ad565b60405180910390f35b34801561050f57600080fd5b506105186111ef565b005b34801561052657600080fd5b50610541600480360381019061053c91906133c8565b611203565b005b34801561054f57600080fd5b5061056a60048036038101906105659190613542565b61129c565b005b34801561057857600080fd5b506105816112ff565b60405161058e9190613457565b60405180910390f35b3480156105a357600080fd5b506105ac611325565b6040516105b991906133ad565b60405180910390f35b3480156105ce57600080fd5b506105d761132b565b6040516105e49190613309565b60405180910390f35b3480156105f957600080fd5b5061060261133e565b60405161060f9190613457565b60405180910390f35b34801561062457600080fd5b5061062d611368565b60405161063a91906133ad565b60405180910390f35b34801561064f57600080fd5b5061065861136e565b60405161066591906131f3565b60405180910390f35b34801561067a57600080fd5b50610683611400565b60405161069091906133ad565b60405180910390f35b3480156106a557600080fd5b506106c060048036038101906106bb91906132ae565b611406565b6040516106cd9190613309565b60405180910390f35b3480156106e257600080fd5b506106fd60048036038101906106f891906132ae565b61147d565b60405161070a9190613309565b60405180910390f35b34801561071f57600080fd5b5061073a600480360381019061073591906133c8565b6114a0565b005b34801561074857600080fd5b50610763600480360381019061075e91906134a9565b611558565b005b34801561077157600080fd5b5061078c60048036038101906107879190613542565b611697565b005b34801561079a57600080fd5b506107a3611748565b6040516107b091906133ad565b60405180910390f35b3480156107c557600080fd5b506107e060048036038101906107db91906134a9565b61174e565b005b3480156107ee57600080fd5b506107f7611940565b60405161080491906133ad565b60405180910390f35b34801561081957600080fd5b50610834600480360381019061082f91906133c8565b611946565b005b34801561084257600080fd5b5061085d60048036038101906108589190613582565b611a62565b60405161086a91906133ad565b60405180910390f35b34801561087f57600080fd5b50610888611ae9565b60405161089591906133ad565b60405180910390f35b3480156108aa57600080fd5b506108c560048036038101906108c091906133c8565b611aef565b005b3480156108d357600080fd5b506108ee60048036038101906108e991906134a9565b611b88565b005b3480156108fc57600080fd5b50610905611c0c565b005b34801561091357600080fd5b5061091c611c85565b60405161092991906133ad565b60405180910390f35b61093a611c8b565b600760149054906101000a900460ff161561098a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109819061360e565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156109f057600080fd5b505afa158015610a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a289190613643565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610aaa57600080fd5b505afa158015610abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae29190613643565b6040518363ffffffff1660e01b8152600401610aff929190613670565b602060405180830381600087803b158015610b1957600080fd5b505af1158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190613643565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bde30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611d09565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c7b929190613699565b602060405180830381600087803b158015610c9557600080fd5b505af1158015610ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccd91906136d7565b50610cfb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611ed4565b610d28600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161129c565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d6f306111a7565b600080610d7a61133e565b426040518863ffffffff1660e01b8152600401610d9c9695949392919061373f565b6060604051808303818588803b158015610db557600080fd5b505af1158015610dc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dee91906137b5565b5050506003600f819055506001600760146101000a81548160ff02191690831515021790555043600b81905550565b606060038054610e2c90613837565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5890613837565b8015610ea55780601f10610e7a57610100808354040283529160200191610ea5565b820191906000526020600020905b815481529060010190602001808311610e8857829003601f168201915b5050505050905090565b600080610eba611f75565b9050610ec7818585611d09565b600191505092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610f08611c8b565b6103e86005610f15610ef6565b610f1f9190613898565b610f299190613921565b811015610f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f62906139c4565b60405180910390fd5b6000600a54905081600a819055507f44d543cdf368504a8e1363a6f41fe63122b6d67c8cdb004b74d8c976439e416b600a5482604051610fac9291906139e4565b60405180910390a15050565b600080610fc3611f75565b9050610fd0858285611f7d565b610fdb858585612009565b60019150509392505050565b61dead81565b60006012905090565b600080611001611f75565b90506110228185856110138589611a62565b61101d9190613a0d565b611d09565b600191505092915050565b61103733826128f7565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6110be611c8b565b601481111580156110d0575060148211155b61110f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110690613ad5565b60405180910390fd5b6000600c54905082600c819055507f26514ee1bed536218b4838232e0c5b32f4d71470a74865380caad452458f91e3600c54826040516111509291906139e4565b60405180910390a16000600d54905082600d819055507ffe65bed4292b79fd04c7eec59e165819b2a233601c74ea6e2e01c829d8c8cb89600d54826040516111999291906139e4565b60405180910390a150505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f7611c8b565b6112016000612ac5565b565b61120b611c8b565b601481111561124f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124690613ad5565b60405180910390fd5b6000600c54905081600c819055507f26514ee1bed536218b4838232e0c5b32f4d71470a74865380caad452458f91e3600c54826040516112909291906139e4565b60405180910390a15050565b6112a4611c8b565b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600760149054906101000a900460ff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606004805461137d90613837565b80601f01602080910402602001604051908101604052809291908181526020018280546113a990613837565b80156113f65780601f106113cb576101008083540402835291602001916113f6565b820191906000526020600020905b8154815290600101906020018083116113d957829003601f168201915b5050505050905090565b600e5481565b600080611411611f75565b9050600061141f8286611a62565b905083811015611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90613b67565b60405180910390fd5b6114718286868403611d09565b60019250505092915050565b600080611488611f75565b9050611495818585612009565b600191505092915050565b6114a8611c8b565b6103e860056114b5610ef6565b6114bf9190613898565b6114c99190613921565b81101561150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290613bf9565b60405180910390fd5b60006008549050816008819055507f7ce9f1e2c75852250b7e23e803f455fc0d1fa34ddbf5cc4ee7125e9c9d0ea7f76008548260405161154c9291906139e4565b60405180910390a15050565b611560611c8b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c790613c65565b60405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc17db519c06a38e30a448e03e08b3edec28a0a29d239f693ab94a6206a5ca63d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260405161168b929190613670565b60405180910390a15050565b61169f611c8b565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161173c9190613309565b60405180910390a25050565b60085481565b611756611c8b565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117919190613457565b60206040518083038186803b1580156117a957600080fd5b505afa1580156117bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e19190613c85565b11611821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181890613cfe565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161185c9190613457565b60206040518083038186803b15801561187457600080fd5b505afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190613c85565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016118e9929190613699565b602060405180830381600087803b15801561190357600080fd5b505af1158015611917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193b91906136d7565b505050565b600b5481565b61194e611c8b565b620186a0600161195c610ef6565b6119669190613898565b6119709190613921565b8110156119b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a990613d90565b60405180910390fd5b6103e860056119bf610ef6565b6119c99190613898565b6119d39190613921565b811115611a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0c90613e22565b60405180910390fd5b60006009549050816009819055507fab0ec7468909bac916971a36711bb7a453201e59940de1fb0be6acc303854ffd60095482604051611a569291906139e4565b60405180910390a15050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b611af7611c8b565b6014811115611b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3290613ad5565b60405180910390fd5b6000600d54905081600d819055507ffe65bed4292b79fd04c7eec59e165819b2a233601c74ea6e2e01c829d8c8cb89600d5482604051611b7c9291906139e4565b60405180910390a15050565b611b90611c8b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790613eb4565b60405180910390fd5b611c0981612ac5565b50565b611c14611c8b565b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611c3a90613f05565b60006040518083038185875af1925050503d8060008114611c77576040519150601f19603f3d011682016040523d82523d6000602084013e611c7c565b606091505b50508091505050565b600a5481565b611c93611f75565b73ffffffffffffffffffffffffffffffffffffffff16611cb161133e565b73ffffffffffffffffffffffffffffffffffffffff1614611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe90613f66565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7090613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de09061408a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ec791906133ad565b60405180910390a3505050565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600033905090565b6000611f898484611a62565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146120035781811015611ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fec906140f6565b60405180910390fd5b6120028484848403611d09565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207090614188565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e09061421a565b60405180910390fd5b6000811415612103576120fe83836000612b8b565b6128f2565b61210b61133e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612179575061214961133e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121b25750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121ec575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122055750600760159054906101000a900460ff16155b15612580576014600b546122199190613a0d565b43111580156122275750483a115b15612297576000483a61223a919061423a565b90506000633b9aca00600f546122509190613898565b9050808210612294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228b906142ba565b60405180910390fd5b50505b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561233a5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123e157600854811115612384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237b9061434c565b60405180910390fd5b600a54612390836111a7565b8261239b9190613a0d565b11156123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d3906143b8565b60405180910390fd5b61257f565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124845750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124d3576008548111156124ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c59061444a565b60405180910390fd5b61257e565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661257d57600a54612530836111a7565b8261253b9190613a0d565b111561257c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612573906143b8565b60405180910390fd5b5b5b5b5b600061258b306111a7565b9050600060095482101590508080156125b15750600760159054906101000a900460ff16155b80156126075750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561265d5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126b35750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126f7576001600760156101000a81548160ff0219169083151502179055506126db612e03565b6000600760156101000a81548160ff0219169083151502179055505b6000600760159054906101000a900460ff16159050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127ad5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127b757600090505b600081156128e257601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561281a57506000600d54115b15612840576064600d548661282f9190613898565b6128399190613921565b90506128be565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561289b57506000600c54115b156128bd576064600c54866128b09190613898565b6128ba9190613921565b90505b5b60008111156128d3576128d2873083612b8b565b5b80856128df919061423a565b94505b6128ed878787612b8b565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295e906144dc565b60405180910390fd5b61297382600083612f04565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f09061456e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612aac91906133ad565b60405180910390a3612ac083600084612f09565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf290614188565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c629061421a565b60405180910390fd5b612c76838383612f04565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf390614600565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612dea91906133ad565b60405180910390a3612dfd848484612f09565b50505050565b6000612e0e306111a7565b9050600080821415612e21575050612f02565b6014600954612e309190613898565b821115612e49576014600954612e469190613898565b91505b612e5282612f0e565b600047905080600e6000828254612e699190613a0d565b92505081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612eb690613f05565b60006040518083038185875af1925050503d8060008114612ef3576040519150601f19603f3d011682016040523d82523d6000602084013e612ef8565b606091505b5050809250505050505b565b505050565b505050565b6000600267ffffffffffffffff811115612f2b57612f2a614620565b5b604051908082528060200260200182016040528015612f595781602001602082028036833780820191505090505b5090503081600081518110612f7157612f7061464f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561301157600080fd5b505afa158015613025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130499190613643565b8160018151811061305d5761305c61464f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506130c2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611d09565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161312495949392919061473c565b600060405180830381600087803b15801561313e57600080fd5b505af1158015613152573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613194578082015181840152602081019050613179565b838111156131a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006131c58261315a565b6131cf8185613165565b93506131df818560208601613176565b6131e8816131a9565b840191505092915050565b6000602082019050818103600083015261320d81846131ba565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132458261321a565b9050919050565b6132558161323a565b811461326057600080fd5b50565b6000813590506132728161324c565b92915050565b6000819050919050565b61328b81613278565b811461329657600080fd5b50565b6000813590506132a881613282565b92915050565b600080604083850312156132c5576132c4613215565b5b60006132d385828601613263565b92505060206132e485828601613299565b9150509250929050565b60008115159050919050565b613303816132ee565b82525050565b600060208201905061331e60008301846132fa565b92915050565b6000819050919050565b600061334961334461333f8461321a565b613324565b61321a565b9050919050565b600061335b8261332e565b9050919050565b600061336d82613350565b9050919050565b61337d81613362565b82525050565b60006020820190506133986000830184613374565b92915050565b6133a781613278565b82525050565b60006020820190506133c2600083018461339e565b92915050565b6000602082840312156133de576133dd613215565b5b60006133ec84828501613299565b91505092915050565b60008060006060848603121561340e5761340d613215565b5b600061341c86828701613263565b935050602061342d86828701613263565b925050604061343e86828701613299565b9150509250925092565b6134518161323a565b82525050565b600060208201905061346c6000830184613448565b92915050565b600060ff82169050919050565b61348881613472565b82525050565b60006020820190506134a3600083018461347f565b92915050565b6000602082840312156134bf576134be613215565b5b60006134cd84828501613263565b91505092915050565b600080604083850312156134ed576134ec613215565b5b60006134fb85828601613299565b925050602061350c85828601613299565b9150509250929050565b61351f816132ee565b811461352a57600080fd5b50565b60008135905061353c81613516565b92915050565b6000806040838503121561355957613558613215565b5b600061356785828601613263565b92505060206135788582860161352d565b9150509250929050565b6000806040838503121561359957613598613215565b5b60006135a785828601613263565b92505060206135b885828601613263565b9150509250929050565b7f50656767696e6720616c726561647920636f6e64756374656400000000000000600082015250565b60006135f8601983613165565b9150613603826135c2565b602082019050919050565b60006020820190508181036000830152613627816135eb565b9050919050565b60008151905061363d8161324c565b92915050565b60006020828403121561365957613658613215565b5b60006136678482850161362e565b91505092915050565b60006040820190506136856000830185613448565b6136926020830184613448565b9392505050565b60006040820190506136ae6000830185613448565b6136bb602083018461339e565b9392505050565b6000815190506136d181613516565b92915050565b6000602082840312156136ed576136ec613215565b5b60006136fb848285016136c2565b91505092915050565b6000819050919050565b600061372961372461371f84613704565b613324565b613278565b9050919050565b6137398161370e565b82525050565b600060c0820190506137546000830189613448565b613761602083018861339e565b61376e6040830187613730565b61377b6060830186613730565b6137886080830185613448565b61379560a083018461339e565b979650505050505050565b6000815190506137af81613282565b92915050565b6000806000606084860312156137ce576137cd613215565b5b60006137dc868287016137a0565b93505060206137ed868287016137a0565b92505060406137fe868287016137a0565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061384f57607f821691505b6020821081141561386357613862613808565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138a382613278565b91506138ae83613278565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138e7576138e6613869565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061392c82613278565b915061393783613278565b925082613947576139466138f2565b5b828204905092915050565b7f45524332303a2043616e6e6f7420736574206d617857616c6c6574206c6f776560008201527f72207468616e20302e3525000000000000000000000000000000000000000000602082015250565b60006139ae602b83613165565b91506139b982613952565b604082019050919050565b600060208201905081810360008301526139dd816139a1565b9050919050565b60006040820190506139f9600083018561339e565b613a06602083018461339e565b9392505050565b6000613a1882613278565b9150613a2383613278565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a5857613a57613869565b5b828201905092915050565b7f45524332303a204d757374206b656570206665657320617420323025206f722060008201527f6c65737300000000000000000000000000000000000000000000000000000000602082015250565b6000613abf602483613165565b9150613aca82613a63565b604082019050919050565b60006020820190508181036000830152613aee81613ab2565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b51602583613165565b9150613b5c82613af5565b604082019050919050565b60006020820190508181036000830152613b8081613b44565b9050919050565b7f45524332303a2043616e6e6f7420736574206d617854786e206c6f776572207460008201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b6000613be3602883613165565b9150613bee82613b87565b604082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f45524332303a2041646472657373203000000000000000000000000000000000600082015250565b6000613c4f601083613165565b9150613c5a82613c19565b602082019050919050565b60006020820190508181036000830152613c7e81613c42565b9050919050565b600060208284031215613c9b57613c9a613215565b5b6000613ca9848285016137a0565b91505092915050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000613ce8600983613165565b9150613cf382613cb2565b602082019050919050565b60006020820190508181036000830152613d1781613cdb565b9050919050565b7f45524332303a205377617020616d6f756e742063616e6e6f74206265206c6f7760008201527f6572207468616e20302e3030312520746f74616c20737570706c792e00000000602082015250565b6000613d7a603c83613165565b9150613d8582613d1e565b604082019050919050565b60006020820190508181036000830152613da981613d6d565b9050919050565b7f45524332303a205377617020616d6f756e742063616e6e6f742062652068696760008201527f686572207468616e20302e352520746f74616c20737570706c792e0000000000602082015250565b6000613e0c603b83613165565b9150613e1782613db0565b604082019050919050565b60006020820190508181036000830152613e3b81613dff565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e9e602683613165565b9150613ea982613e42565b604082019050919050565b60006020820190508181036000830152613ecd81613e91565b9050919050565b600081905092915050565b50565b6000613eef600083613ed4565b9150613efa82613edf565b600082019050919050565b6000613f1082613ee2565b9150819050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f50602083613165565b9150613f5b82613f1a565b602082019050919050565b60006020820190508181036000830152613f7f81613f43565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613fe2602483613165565b9150613fed82613f86565b604082019050919050565b6000602082019050818103600083015261401181613fd5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614074602283613165565b915061407f82614018565b604082019050919050565b600060208201905081810360008301526140a381614067565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006140e0601d83613165565b91506140eb826140aa565b602082019050919050565b6000602082019050818103600083015261410f816140d3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614172602583613165565b915061417d82614116565b604082019050919050565b600060208201905081810360008301526141a181614165565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614204602383613165565b915061420f826141a8565b604082019050919050565b60006020820190508181036000830152614233816141f7565b9050919050565b600061424582613278565b915061425083613278565b92508282101561426357614262613869565b5b828203905092915050565b7f53746f7000000000000000000000000000000000000000000000000000000000600082015250565b60006142a4600483613165565b91506142af8261426e565b602082019050919050565b600060208201905081810360008301526142d381614297565b9050919050565b7f45524332303a20427579207472616e7366657220616d6f756e7420657863656560008201527f647320746865206d61785472616e73616374696f6e416d6f756e742e00000000602082015250565b6000614336603c83613165565b9150614341826142da565b604082019050919050565b6000602082019050818103600083015261436581614329565b9050919050565b7f45524332303a204d61782077616c6c6574206578636565646564000000000000600082015250565b60006143a2601a83613165565b91506143ad8261436c565b602082019050919050565b600060208201905081810360008301526143d181614395565b9050919050565b7f45524332303a2053656c6c207472616e7366657220616d6f756e74206578636560008201527f65647320746865206d61785472616e73616374696f6e416d6f756e742e000000602082015250565b6000614434603d83613165565b915061443f826143d8565b604082019050919050565b6000602082019050818103600083015261446381614427565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006144c6602183613165565b91506144d18261446a565b604082019050919050565b600060208201905081810360008301526144f5816144b9565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614558602283613165565b9150614563826144fc565b604082019050919050565b600060208201905081810360008301526145878161454b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006145ea602683613165565b91506145f58261458e565b604082019050919050565b60006020820190508181036000830152614619816145dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146b38161323a565b82525050565b60006146c583836146aa565b60208301905092915050565b6000602082019050919050565b60006146e98261467e565b6146f38185614689565b93506146fe8361469a565b8060005b8381101561472f57815161471688826146b9565b9750614721836146d1565b925050600181019050614702565b5085935050505092915050565b600060a082019050614751600083018861339e565b61475e6020830187613730565b818103604083015261477081866146de565b905061477f6060830185613448565b61478c608083018461339e565b969550505050505056fea26469706673582212201b5a0595d3322f4953ec238a257ab17e8e2489150e47f0d4751f40b5b2b05e4564736f6c63430008090033

Deployed Bytecode Sourcemap

10303:11793:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12944:924;;;:::i;:::-;;3037:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4110:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10344:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14511:351;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4360:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10439:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3257:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4663:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12853:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10404:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17698:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16054:460;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3474:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1077:103;;;;;;;;;;;;;:::i;:::-;;15470:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15318:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10499:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10742;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10538:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;842:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10779:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3145:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10817:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4941:505;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3659:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14870:440;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16522:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16864:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10595:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17245:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10708:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13876:627;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3901:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10637:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15757:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1188:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17054:183;;;;;;;;;;;;;:::i;:::-;;10677:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12944:924;801:13;:11;:13::i;:::-;13009:8:::1;;;;;;;;;;;13008:9;13000:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13094:15;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13076:55;;;13154:4;13174:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13076:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13060:13;;:147;;;;;;;;;;;;;;;;;;13218:66;13235:4;13250:13;;;;;;;;;;;13266:17;13218:8;:66::i;:::-;13302:13;;;;;;;;;;;13295:29;;;13347:15;13378:17;13295:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13419:58;13456:13;;;;;;;;;;;13472:4;13419:28;:58::i;:::-;13488:55;13522:13;;;;;;;;;;;13538:4;13488:25;:55::i;:::-;13556:15;:31;;;13595:21;13640:4;13660:24;13678:4;13660:9;:24::i;:::-;13699:1;13715::::0;13731:7:::1;:5;:7::i;:::-;13753:15;13556:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13795:1;13790:2;:6;;;;13818:4;13807:8;;:15;;;;;;;;;;;;;;;;;;13848:12;13833;:27;;;;12944:924::o:0;3037:100::-;3091:13;3124:5;3117:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3037:100;:::o;4110:242::-;4229:4;4251:13;4267:12;:10;:12::i;:::-;4251:28;;4290:32;4299:5;4306:7;4315:6;4290:8;:32::i;:::-;4340:4;4333:11;;;4110:242;;;;:::o;10344:51::-;;;:::o;3358:108::-;3419:7;3446:12;;3439:19;;3358:108;:::o;14511:351::-;801:13;:11;:13::i;:::-;14645:4:::1;14640:1;14624:13;:11;:13::i;:::-;:17;;;;:::i;:::-;14623:26;;;;:::i;:::-;14608:10;:42;;14586:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;14732:20;14755:9;;14732:32;;14787:10;14775:9;:22;;;;14813:41;14830:9;;14841:12;14813:41;;;;;;;:::i;:::-;;;;;;;;14575:287;14511:351:::0;:::o;4360:295::-;4491:4;4508:15;4526:12;:10;:12::i;:::-;4508:30;;4549:38;4565:4;4571:7;4580:6;4549:15;:38::i;:::-;4598:27;4608:4;4614:2;4618:6;4598:9;:27::i;:::-;4643:4;4636:11;;;4360:295;;;;;:::o;10439:53::-;10485:6;10439:53;:::o;3257:93::-;3315:5;3340:2;3333:9;;3257:93;:::o;4663:270::-;4778:4;4800:13;4816:12;:10;:12::i;:::-;4800:28;;4839:64;4848:5;4855:7;4892:10;4864:25;4874:5;4881:7;4864:9;:25::i;:::-;:38;;;;:::i;:::-;4839:8;:64::i;:::-;4921:4;4914:11;;;4663:270;;;;:::o;12853:83::-;12903:25;12909:10;12921:6;12903:5;:25::i;:::-;12853:83;:::o;10404:28::-;;;;;;;;;;;;;:::o;17698:126::-;17764:4;17788:19;:28;17808:7;17788:28;;;;;;;;;;;;;;;;;;;;;;;;;17781:35;;17698:126;;;:::o;16054:460::-;801:13;:11;:13::i;:::-;16159:2:::1;16147:8;:14;;:31;;;;;16176:2;16165:7;:13;;16147:31;16139:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;16230:17;16250:15;;16230:35;;16294:7;16276:15;:25;;;;16317:41;16331:15;;16348:9;16317:41;;;;;;;:::i;:::-;;;;;;;;16371:18;16392:16;;16371:37;;16438:8;16419:16;:27;;;;16462:44;16477:16;;16495:10;16462:44;;;;;;;:::i;:::-;;;;;;;;16128:386;;16054:460:::0;;:::o;3474:177::-;3593:7;3625:9;:18;3635:7;3625:18;;;;;;;;;;;;;;;;3618:25;;3474:177;;;:::o;1077:103::-;801:13;:11;:13::i;:::-;1142:30:::1;1169:1;1142:18;:30::i;:::-;1077:103::o:0;15470:279::-;801:13;:11;:13::i;:::-;15559:2:::1;15548:7;:13;;15540:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;15613:17;15633:15;;15613:35;;15677:7;15659:15;:25;;;;15700:41;15714:15;;15731:9;15700:41;;;;;;;:::i;:::-;;;;;;;;15529:220;15470:279:::0;:::o;15318:144::-;801:13;:11;:13::i;:::-;15448:6:::1;15408:31;:37;15440:4;15408:37;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15318:144:::0;;:::o;10499:30::-;;;;;;;;;;;;;:::o;10742:::-;;;;:::o;10538:20::-;;;;;;;;;;;;;:::o;842:87::-;888:7;915:6;;;;;;;;;;;908:13;;842:87;:::o;10779:31::-;;;;:::o;3145:104::-;3201:13;3234:7;3227:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3145:104;:::o;10817:33::-;;;;:::o;4941:505::-;5061:4;5083:13;5099:12;:10;:12::i;:::-;5083:28;;5122:24;5149:25;5159:5;5166:7;5149:9;:25::i;:::-;5122:52;;5227:15;5207:16;:35;;5185:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;5343:60;5352:5;5359:7;5387:15;5368:16;:34;5343:8;:60::i;:::-;5434:4;5427:11;;;;4941:505;;;;:::o;3659:234::-;3774:4;3796:13;3812:12;:10;:12::i;:::-;3796:28;;3835;3845:5;3852:2;3856:6;3835:9;:28::i;:::-;3881:4;3874:11;;;3659:234;;;;:::o;14870:440::-;801:13;:11;:13::i;:::-;15037:4:::1;15032:1;15016:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15015:26;;;;:::i;:::-;14989:21;:53;;14967:143;;;;;;;;;;;;:::i;:::-;;;;;;;;;15121:22;15146:20;;15121:45;;15200:21;15177:20;:44;;;;15237:65;15265:20;;15287:14;15237:65;;;;;;;:::i;:::-;;;;;;;;14956:354;14870:440:::0;:::o;16522:334::-;801:13;:11;:13::i;:::-;16668:1:::1;16640:30;;:16;:30;;;;16632:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16702:17;16722:15;;;;;;;;;;;16702:35;;16766:16;16748:15;;:34;;;;;;;;;;;;;;;;;;16798:50;16821:15;;;;;;;;;;;16838:9;16798:50;;;;;;;:::i;:::-;;;;;;;;16621:235;16522:334:::0;:::o;16864:182::-;801:13;:11;:13::i;:::-;16980:8:::1;16949:19;:28;16969:7;16949:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17020:7;17004:34;;;17029:8;17004:34;;;;;;:::i;:::-;;;;;;;;16864:182:::0;;:::o;10595:35::-;;;;:::o;17245:251::-;801:13;:11;:13::i;:::-;17360:1:::1;17329:2;17322:20;;;17351:4;17322:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;17314:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17386:14;17410:2;17403:20;;;17432:4;17403:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17386:52;;17456:2;17449:19;;;17469:10;17481:6;17449:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17303:193;17245:251:::0;:::o;10708:27::-;;;;:::o;13876:627::-;801:13;:11;:13::i;:::-;14036:6:::1;14031:1;14015:13;:11;:13::i;:::-;:17;;;;:::i;:::-;14014:28;;;;:::i;:::-;13991:19;:51;;13969:161;;;;;;;;;;;;:::i;:::-;;;;;;;;;14208:4;14203:1;14187:13;:11;:13::i;:::-;:17;;;;:::i;:::-;14186:26;;;;:::i;:::-;14163:19;:49;;14141:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;14310:29;14342:18;;14310:50;;14392:19;14371:18;:40;;;;14427:68;14453:18;;14473:21;14427:68;;;;;;;:::i;:::-;;;;;;;;13958:545;13876:627:::0;:::o;3901:201::-;4035:7;4067:11;:18;4079:5;4067:18;;;;;;;;;;;;;;;:27;4086:7;4067:27;;;;;;;;;;;;;;;;4060:34;;3901:201;;;;:::o;10637:33::-;;;;:::o;15757:289::-;801:13;:11;:13::i;:::-;15849:2:::1;15837:8;:14;;15829:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15903:18;15924:16;;15903:37;;15970:8;15951:16;:27;;;;15994:44;16009:16;;16027:10;15994:44;;;;;;;:::i;:::-;;;;;;;;15818:228;15757:289:::0;:::o;1188:238::-;801:13;:11;:13::i;:::-;1311:1:::1;1291:22;;:8;:22;;;;1269:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;1390:28;1409:8;1390:18;:28::i;:::-;1188:238:::0;:::o;17054:183::-;801:13;:11;:13::i;:::-;17110:12:::1;17155:10;17147:24;;17179:21;17147:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17133:96;;;;;17099:138;17054:183::o:0;10677:24::-;;;;:::o;937:132::-;1012:12;:10;:12::i;:::-;1001:23;;:7;:5;:7::i;:::-;:23;;;993:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;937:132::o;7578:380::-;7731:1;7714:19;;:5;:19;;;;7706:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7812:1;7793:21;;:7;:21;;;;7785:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7896:6;7866:11;:18;7878:5;7866:18;;;;;;;;;;;;;;;:27;7885:7;7866:27;;;;;;;;;;;;;;;:36;;;;7934:7;7918:32;;7927:5;7918:32;;;7943:6;7918:32;;;;;;:::i;:::-;;;;;;;;7578:380;;;:::o;17504:186::-;17621:5;17587:25;:31;17613:4;17587:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17676:5;17642:40;;17670:4;17642:40;;;;;;;;;;;;17504:186;;:::o;290:98::-;343:7;370:10;363:17;;290:98;:::o;7966:502::-;8101:24;8128:25;8138:5;8145:7;8128:9;:25::i;:::-;8101:52;;8188:17;8168:16;:37;8164:297;;8268:6;8248:16;:26;;8222:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;8383:51;8392:5;8399:7;8427:6;8408:16;:25;8383:8;:51::i;:::-;8164:297;8090:378;7966:502;;;:::o;17832:3160::-;17980:1;17964:18;;:4;:18;;;;17956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18057:1;18043:16;;:2;:16;;;;18035:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18126:1;18116:6;:11;18112:93;;;18144:28;18160:4;18166:2;18170:1;18144:15;:28::i;:::-;18187:7;;18112:93;18243:7;:5;:7::i;:::-;18235:15;;:4;:15;;;;:45;;;;;18273:7;:5;:7::i;:::-;18267:13;;:2;:13;;;;18235:45;:78;;;;;18311:1;18297:16;;:2;:16;;;;18235:78;:112;;;;;10485:6;18330:17;;:2;:17;;;;18235:112;:138;;;;;18365:8;;;;;;;;;;;18364:9;18235:138;18217:1573;;;18455:2;18440:12;;:17;;;;:::i;:::-;18424:12;:33;;:64;;;;;18475:13;18461:11;:27;18424:64;18402:270;;;18523:11;18551:13;18537:11;:27;;;;:::i;:::-;18523:41;;18583:12;18604:5;18598:2;;:12;;;;:::i;:::-;18583:27;;18643:4;18637:3;:10;18629:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;18504:168;;18402:270;18734:25;:31;18760:4;18734:31;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;18787:31;:35;18819:2;18787:35;;;;;;;;;;;;;;;;;;;;;;;;;18786:36;18734:88;18712:1067;;;18897:20;;18887:6;:30;;18857:164;;;;;;;;;;;;:::i;:::-;;;;;;;;;19096:9;;19079:13;19089:2;19079:9;:13::i;:::-;19070:6;:22;;;;:::i;:::-;:35;;19040:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;18712:1067;;;19257:25;:29;19283:2;19257:29;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;19308:31;:37;19340:4;19308:37;;;;;;;;;;;;;;;;;;;;;;;;;19307:38;19257:88;19235:544;;;19420:20;;19410:6;:30;;19380:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;19235:544;;;19572:31;:35;19604:2;19572:35;;;;;;;;;;;;;;;;;;;;;;;;;19567:212;;19684:9;;19667:13;19677:2;19667:9;:13::i;:::-;19658:6;:22;;;;:::i;:::-;:35;;19628:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;19567:212;19235:544;18712:1067;18217:1573;19802:28;19833:24;19851:4;19833:9;:24::i;:::-;19802:55;;19870:12;19909:18;;19885:20;:42;;19870:57;;19958:7;:33;;;;;19983:8;;;;;;;;;;;19982:9;19958:33;:82;;;;;20009:25;:31;20035:4;20009:31;;;;;;;;;;;;;;;;;;;;;;;;;20008:32;19958:82;:125;;;;;20058:19;:25;20078:4;20058:25;;;;;;;;;;;;;;;;;;;;;;;;;20057:26;19958:125;:166;;;;;20101:19;:23;20121:2;20101:23;;;;;;;;;;;;;;;;;;;;;;;;;20100:24;19958:166;19940:298;;;20162:4;20151:8;;:15;;;;;;;;;;;;;;;;;;20183:10;:8;:10::i;:::-;20221:5;20210:8;;:16;;;;;;;;;;;;;;;;;;19940:298;20250:12;20266:8;;;;;;;;;;;20265:9;20250:24;;20291:19;:25;20311:4;20291:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20320:19;:23;20340:2;20320:23;;;;;;;;;;;;;;;;;;;;;;;;;20291:52;20287:100;;;20370:5;20360:15;;20287:100;20399:12;20432:7;20428:511;;;20484:25;:29;20510:2;20484:29;;;;;;;;;;;;;;;;;;;;;;;;;:53;;;;;20536:1;20517:16;;:20;20484:53;20480:310;;;20595:3;20575:16;;20566:6;:25;;;;:::i;:::-;20565:33;;;;:::i;:::-;20558:40;;20480:310;;;20660:25;:31;20686:4;20660:31;;;;;;;;;;;;;;;;;;;;;;;;;:54;;;;;20713:1;20695:15;;:19;20660:54;20656:134;;;20771:3;20752:15;;20743:6;:24;;;;:::i;:::-;20742:32;;;;:::i;:::-;20735:39;;20656:134;20480:310;20817:1;20810:4;:8;20806:91;;;20839:42;20855:4;20869;20876;20839:15;:42::i;:::-;20806:91;20923:4;20913:14;;;;;:::i;:::-;;;20428:511;20951:33;20967:4;20973:2;20977:6;20951:15;:33::i;:::-;17945:3047;;;;17832:3160;;;;:::o;6895:675::-;6998:1;6979:21;;:7;:21;;;;6971:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7051:49;7072:7;7089:1;7093:6;7051:20;:49::i;:::-;7113:22;7138:9;:18;7148:7;7138:18;;;;;;;;;;;;;;;;7113:43;;7193:6;7175:14;:24;;7167:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7312:6;7295:14;:23;7274:9;:18;7284:7;7274:18;;;;;;;;;;;;;;;:44;;;;7429:6;7413:12;;:22;;;;;;;;;;;7490:1;7464:37;;7473:7;7464:37;;;7494:6;7464:37;;;;;;:::i;:::-;;;;;;;;7514:48;7534:7;7551:1;7555:6;7514:19;:48::i;:::-;6960:610;6895:675;;:::o;1434:191::-;1508:16;1527:6;;;;;;;;;;;1508:25;;1553:8;1544:6;;:17;;;;;;;;;;;;;;;;;;1608:8;1577:40;;1598:8;1577:40;;;;;;;;;;;;1497:128;1434:191;:::o;5454:877::-;5601:1;5585:18;;:4;:18;;;;5577:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5678:1;5664:16;;:2;:16;;;;5656:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5733:38;5754:4;5760:2;5764:6;5733:20;:38::i;:::-;5784:19;5806:9;:15;5816:4;5806:15;;;;;;;;;;;;;;;;5784:37;;5869:6;5854:11;:21;;5832:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;6009:6;5995:11;:20;5977:9;:15;5987:4;5977:15;;;;;;;;;;;;;;;:38;;;;6212:6;6195:9;:13;6205:2;6195:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;6262:2;6247:26;;6256:4;6247:26;;;6266:6;6247:26;;;;;;:::i;:::-;;;;;;;;6286:37;6306:4;6312:2;6316:6;6286:19;:37::i;:::-;5566:765;5454:877;;;:::o;21509:584::-;21548:23;21574:24;21592:4;21574:9;:24::i;:::-;21548:50;;21609:12;21657:1;21638:15;:20;21634:59;;;21675:7;;;;21634:59;21748:2;21727:18;;:23;;;;:::i;:::-;21709:15;:41;21705:115;;;21806:2;21785:18;;:23;;;;:::i;:::-;21767:41;;21705:115;21832:33;21849:15;21832:16;:33::i;:::-;21878:21;21902;21878:45;;21956:13;21934:18;;:35;;;;;;;:::i;:::-;;;;;;;;22004:15;;;;;;;;;;;21996:29;;22047:21;21996:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21982:101;;;;;21537:556;;;21509:584;:::o;8476:125::-;;;;:::o;8609:124::-;;;;:::o;21000:501::-;21066:21;21104:1;21090:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21066:40;;21135:4;21117;21122:1;21117:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21161:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21151:4;21156:1;21151:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21196:62;21213:4;21228:15;21246:11;21196:8;:62::i;:::-;21297:15;:66;;;21378:11;21404:1;21420:4;21447;21467:15;21297:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21055:446;21000:501;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:329::-;4878:6;4927:2;4915:9;4906:7;4902:23;4898:32;4895:119;;;4933:79;;:::i;:::-;4895:119;5053:1;5078:53;5123:7;5114:6;5103:9;5099:22;5078:53;:::i;:::-;5068:63;;5024:117;4819:329;;;;:::o;5154:619::-;5231:6;5239;5247;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5549:2;5575:53;5620:7;5611:6;5600:9;5596:22;5575:53;:::i;:::-;5565:63;;5520:118;5677:2;5703:53;5748:7;5739:6;5728:9;5724:22;5703:53;:::i;:::-;5693:63;;5648:118;5154:619;;;;;:::o;5779:118::-;5866:24;5884:5;5866:24;:::i;:::-;5861:3;5854:37;5779:118;;:::o;5903:222::-;5996:4;6034:2;6023:9;6019:18;6011:26;;6047:71;6115:1;6104:9;6100:17;6091:6;6047:71;:::i;:::-;5903:222;;;;:::o;6131:86::-;6166:7;6206:4;6199:5;6195:16;6184:27;;6131:86;;;:::o;6223:112::-;6306:22;6322:5;6306:22;:::i;:::-;6301:3;6294:35;6223:112;;:::o;6341:214::-;6430:4;6468:2;6457:9;6453:18;6445:26;;6481:67;6545:1;6534:9;6530:17;6521:6;6481:67;:::i;:::-;6341:214;;;;:::o;6561:329::-;6620:6;6669:2;6657:9;6648:7;6644:23;6640:32;6637:119;;;6675:79;;:::i;:::-;6637:119;6795:1;6820:53;6865:7;6856:6;6845:9;6841:22;6820:53;:::i;:::-;6810:63;;6766:117;6561:329;;;;:::o;6896:474::-;6964:6;6972;7021:2;7009:9;7000:7;6996:23;6992:32;6989:119;;;7027:79;;:::i;:::-;6989:119;7147:1;7172:53;7217:7;7208:6;7197:9;7193:22;7172:53;:::i;:::-;7162:63;;7118:117;7274:2;7300:53;7345:7;7336:6;7325:9;7321:22;7300:53;:::i;:::-;7290:63;;7245:118;6896:474;;;;;:::o;7376:116::-;7446:21;7461:5;7446:21;:::i;:::-;7439:5;7436:32;7426:60;;7482:1;7479;7472:12;7426:60;7376:116;:::o;7498:133::-;7541:5;7579:6;7566:20;7557:29;;7595:30;7619:5;7595:30;:::i;:::-;7498:133;;;;:::o;7637:468::-;7702:6;7710;7759:2;7747:9;7738:7;7734:23;7730:32;7727:119;;;7765:79;;:::i;:::-;7727:119;7885:1;7910:53;7955:7;7946:6;7935:9;7931:22;7910:53;:::i;:::-;7900:63;;7856:117;8012:2;8038:50;8080:7;8071:6;8060:9;8056:22;8038:50;:::i;:::-;8028:60;;7983:115;7637:468;;;;;:::o;8111:474::-;8179:6;8187;8236:2;8224:9;8215:7;8211:23;8207:32;8204:119;;;8242:79;;:::i;:::-;8204:119;8362:1;8387:53;8432:7;8423:6;8412:9;8408:22;8387:53;:::i;:::-;8377:63;;8333:117;8489:2;8515:53;8560:7;8551:6;8540:9;8536:22;8515:53;:::i;:::-;8505:63;;8460:118;8111:474;;;;;:::o;8591:175::-;8731:27;8727:1;8719:6;8715:14;8708:51;8591:175;:::o;8772:366::-;8914:3;8935:67;8999:2;8994:3;8935:67;:::i;:::-;8928:74;;9011:93;9100:3;9011:93;:::i;:::-;9129:2;9124:3;9120:12;9113:19;;8772:366;;;:::o;9144:419::-;9310:4;9348:2;9337:9;9333:18;9325:26;;9397:9;9391:4;9387:20;9383:1;9372:9;9368:17;9361:47;9425:131;9551:4;9425:131;:::i;:::-;9417:139;;9144:419;;;:::o;9569:143::-;9626:5;9657:6;9651:13;9642:22;;9673:33;9700:5;9673:33;:::i;:::-;9569:143;;;;:::o;9718:351::-;9788:6;9837:2;9825:9;9816:7;9812:23;9808:32;9805:119;;;9843:79;;:::i;:::-;9805:119;9963:1;9988:64;10044:7;10035:6;10024:9;10020:22;9988:64;:::i;:::-;9978:74;;9934:128;9718:351;;;;:::o;10075:332::-;10196:4;10234:2;10223:9;10219:18;10211:26;;10247:71;10315:1;10304:9;10300:17;10291:6;10247:71;:::i;:::-;10328:72;10396:2;10385:9;10381:18;10372:6;10328:72;:::i;:::-;10075:332;;;;;:::o;10413:::-;10534:4;10572:2;10561:9;10557:18;10549:26;;10585:71;10653:1;10642:9;10638:17;10629:6;10585:71;:::i;:::-;10666:72;10734:2;10723:9;10719:18;10710:6;10666:72;:::i;:::-;10413:332;;;;;:::o;10751:137::-;10805:5;10836:6;10830:13;10821:22;;10852:30;10876:5;10852:30;:::i;:::-;10751:137;;;;:::o;10894:345::-;10961:6;11010:2;10998:9;10989:7;10985:23;10981:32;10978:119;;;11016:79;;:::i;:::-;10978:119;11136:1;11161:61;11214:7;11205:6;11194:9;11190:22;11161:61;:::i;:::-;11151:71;;11107:125;10894:345;;;;:::o;11245:85::-;11290:7;11319:5;11308:16;;11245:85;;;:::o;11336:158::-;11394:9;11427:61;11445:42;11454:32;11480:5;11454:32;:::i;:::-;11445:42;:::i;:::-;11427:61;:::i;:::-;11414:74;;11336:158;;;:::o;11500:147::-;11595:45;11634:5;11595:45;:::i;:::-;11590:3;11583:58;11500:147;;:::o;11653:807::-;11902:4;11940:3;11929:9;11925:19;11917:27;;11954:71;12022:1;12011:9;12007:17;11998:6;11954:71;:::i;:::-;12035:72;12103:2;12092:9;12088:18;12079:6;12035:72;:::i;:::-;12117:80;12193:2;12182:9;12178:18;12169:6;12117:80;:::i;:::-;12207;12283:2;12272:9;12268:18;12259:6;12207:80;:::i;:::-;12297:73;12365:3;12354:9;12350:19;12341:6;12297:73;:::i;:::-;12380;12448:3;12437:9;12433:19;12424:6;12380:73;:::i;:::-;11653:807;;;;;;;;;:::o;12466:143::-;12523:5;12554:6;12548:13;12539:22;;12570:33;12597:5;12570:33;:::i;:::-;12466:143;;;;:::o;12615:663::-;12703:6;12711;12719;12768:2;12756:9;12747:7;12743:23;12739:32;12736:119;;;12774:79;;:::i;:::-;12736:119;12894:1;12919:64;12975:7;12966:6;12955:9;12951:22;12919:64;:::i;:::-;12909:74;;12865:128;13032:2;13058:64;13114:7;13105:6;13094:9;13090:22;13058:64;:::i;:::-;13048:74;;13003:129;13171:2;13197:64;13253:7;13244:6;13233:9;13229:22;13197:64;:::i;:::-;13187:74;;13142:129;12615:663;;;;;:::o;13284:180::-;13332:77;13329:1;13322:88;13429:4;13426:1;13419:15;13453:4;13450:1;13443:15;13470:320;13514:6;13551:1;13545:4;13541:12;13531:22;;13598:1;13592:4;13588:12;13619:18;13609:81;;13675:4;13667:6;13663:17;13653:27;;13609:81;13737:2;13729:6;13726:14;13706:18;13703:38;13700:84;;;13756:18;;:::i;:::-;13700:84;13521:269;13470:320;;;:::o;13796:180::-;13844:77;13841:1;13834:88;13941:4;13938:1;13931:15;13965:4;13962:1;13955:15;13982:348;14022:7;14045:20;14063:1;14045:20;:::i;:::-;14040:25;;14079:20;14097:1;14079:20;:::i;:::-;14074:25;;14267:1;14199:66;14195:74;14192:1;14189:81;14184:1;14177:9;14170:17;14166:105;14163:131;;;14274:18;;:::i;:::-;14163:131;14322:1;14319;14315:9;14304:20;;13982:348;;;;:::o;14336:180::-;14384:77;14381:1;14374:88;14481:4;14478:1;14471:15;14505:4;14502:1;14495:15;14522:185;14562:1;14579:20;14597:1;14579:20;:::i;:::-;14574:25;;14613:20;14631:1;14613:20;:::i;:::-;14608:25;;14652:1;14642:35;;14657:18;;:::i;:::-;14642:35;14699:1;14696;14692:9;14687:14;;14522:185;;;;:::o;14713:230::-;14853:34;14849:1;14841:6;14837:14;14830:58;14922:13;14917:2;14909:6;14905:15;14898:38;14713:230;:::o;14949:366::-;15091:3;15112:67;15176:2;15171:3;15112:67;:::i;:::-;15105:74;;15188:93;15277:3;15188:93;:::i;:::-;15306:2;15301:3;15297:12;15290:19;;14949:366;;;:::o;15321:419::-;15487:4;15525:2;15514:9;15510:18;15502:26;;15574:9;15568:4;15564:20;15560:1;15549:9;15545:17;15538:47;15602:131;15728:4;15602:131;:::i;:::-;15594:139;;15321:419;;;:::o;15746:332::-;15867:4;15905:2;15894:9;15890:18;15882:26;;15918:71;15986:1;15975:9;15971:17;15962:6;15918:71;:::i;:::-;15999:72;16067:2;16056:9;16052:18;16043:6;15999:72;:::i;:::-;15746:332;;;;;:::o;16084:305::-;16124:3;16143:20;16161:1;16143:20;:::i;:::-;16138:25;;16177:20;16195:1;16177:20;:::i;:::-;16172:25;;16331:1;16263:66;16259:74;16256:1;16253:81;16250:107;;;16337:18;;:::i;:::-;16250:107;16381:1;16378;16374:9;16367:16;;16084:305;;;;:::o;16395:223::-;16535:34;16531:1;16523:6;16519:14;16512:58;16604:6;16599:2;16591:6;16587:15;16580:31;16395:223;:::o;16624:366::-;16766:3;16787:67;16851:2;16846:3;16787:67;:::i;:::-;16780:74;;16863:93;16952:3;16863:93;:::i;:::-;16981:2;16976:3;16972:12;16965:19;;16624:366;;;:::o;16996:419::-;17162:4;17200:2;17189:9;17185:18;17177:26;;17249:9;17243:4;17239:20;17235:1;17224:9;17220:17;17213:47;17277:131;17403:4;17277:131;:::i;:::-;17269:139;;16996:419;;;:::o;17421:224::-;17561:34;17557:1;17549:6;17545:14;17538:58;17630:7;17625:2;17617:6;17613:15;17606:32;17421:224;:::o;17651:366::-;17793:3;17814:67;17878:2;17873:3;17814:67;:::i;:::-;17807:74;;17890:93;17979:3;17890:93;:::i;:::-;18008:2;18003:3;17999:12;17992:19;;17651:366;;;:::o;18023:419::-;18189:4;18227:2;18216:9;18212:18;18204:26;;18276:9;18270:4;18266:20;18262:1;18251:9;18247:17;18240:47;18304:131;18430:4;18304:131;:::i;:::-;18296:139;;18023:419;;;:::o;18448:227::-;18588:34;18584:1;18576:6;18572:14;18565:58;18657:10;18652:2;18644:6;18640:15;18633:35;18448:227;:::o;18681:366::-;18823:3;18844:67;18908:2;18903:3;18844:67;:::i;:::-;18837:74;;18920:93;19009:3;18920:93;:::i;:::-;19038:2;19033:3;19029:12;19022:19;;18681:366;;;:::o;19053:419::-;19219:4;19257:2;19246:9;19242:18;19234:26;;19306:9;19300:4;19296:20;19292:1;19281:9;19277:17;19270:47;19334:131;19460:4;19334:131;:::i;:::-;19326:139;;19053:419;;;:::o;19478:166::-;19618:18;19614:1;19606:6;19602:14;19595:42;19478:166;:::o;19650:366::-;19792:3;19813:67;19877:2;19872:3;19813:67;:::i;:::-;19806:74;;19889:93;19978:3;19889:93;:::i;:::-;20007:2;20002:3;19998:12;19991:19;;19650:366;;;:::o;20022:419::-;20188:4;20226:2;20215:9;20211:18;20203:26;;20275:9;20269:4;20265:20;20261:1;20250:9;20246:17;20239:47;20303:131;20429:4;20303:131;:::i;:::-;20295:139;;20022:419;;;:::o;20447:351::-;20517:6;20566:2;20554:9;20545:7;20541:23;20537:32;20534:119;;;20572:79;;:::i;:::-;20534:119;20692:1;20717:64;20773:7;20764:6;20753:9;20749:22;20717:64;:::i;:::-;20707:74;;20663:128;20447:351;;;;:::o;20804:159::-;20944:11;20940:1;20932:6;20928:14;20921:35;20804:159;:::o;20969:365::-;21111:3;21132:66;21196:1;21191:3;21132:66;:::i;:::-;21125:73;;21207:93;21296:3;21207:93;:::i;:::-;21325:2;21320:3;21316:12;21309:19;;20969:365;;;:::o;21340:419::-;21506:4;21544:2;21533:9;21529:18;21521:26;;21593:9;21587:4;21583:20;21579:1;21568:9;21564:17;21557:47;21621:131;21747:4;21621:131;:::i;:::-;21613:139;;21340:419;;;:::o;21765:247::-;21905:34;21901:1;21893:6;21889:14;21882:58;21974:30;21969:2;21961:6;21957:15;21950:55;21765:247;:::o;22018:366::-;22160:3;22181:67;22245:2;22240:3;22181:67;:::i;:::-;22174:74;;22257:93;22346:3;22257:93;:::i;:::-;22375:2;22370:3;22366:12;22359:19;;22018:366;;;:::o;22390:419::-;22556:4;22594:2;22583:9;22579:18;22571:26;;22643:9;22637:4;22633:20;22629:1;22618:9;22614:17;22607:47;22671:131;22797:4;22671:131;:::i;:::-;22663:139;;22390:419;;;:::o;22815:246::-;22955:34;22951:1;22943:6;22939:14;22932:58;23024:29;23019:2;23011:6;23007:15;23000:54;22815:246;:::o;23067:366::-;23209:3;23230:67;23294:2;23289:3;23230:67;:::i;:::-;23223:74;;23306:93;23395:3;23306:93;:::i;:::-;23424:2;23419:3;23415:12;23408:19;;23067:366;;;:::o;23439:419::-;23605:4;23643:2;23632:9;23628:18;23620:26;;23692:9;23686:4;23682:20;23678:1;23667:9;23663:17;23656:47;23720:131;23846:4;23720:131;:::i;:::-;23712:139;;23439:419;;;:::o;23864:225::-;24004:34;24000:1;23992:6;23988:14;23981:58;24073:8;24068:2;24060:6;24056:15;24049:33;23864:225;:::o;24095:366::-;24237:3;24258:67;24322:2;24317:3;24258:67;:::i;:::-;24251:74;;24334:93;24423:3;24334:93;:::i;:::-;24452:2;24447:3;24443:12;24436:19;;24095:366;;;:::o;24467:419::-;24633:4;24671:2;24660:9;24656:18;24648:26;;24720:9;24714:4;24710:20;24706:1;24695:9;24691:17;24684:47;24748:131;24874:4;24748:131;:::i;:::-;24740:139;;24467:419;;;:::o;24892:147::-;24993:11;25030:3;25015:18;;24892:147;;;;:::o;25045:114::-;;:::o;25165:398::-;25324:3;25345:83;25426:1;25421:3;25345:83;:::i;:::-;25338:90;;25437:93;25526:3;25437:93;:::i;:::-;25555:1;25550:3;25546:11;25539:18;;25165:398;;;:::o;25569:379::-;25753:3;25775:147;25918:3;25775:147;:::i;:::-;25768:154;;25939:3;25932:10;;25569:379;;;:::o;25954:182::-;26094:34;26090:1;26082:6;26078:14;26071:58;25954:182;:::o;26142:366::-;26284:3;26305:67;26369:2;26364:3;26305:67;:::i;:::-;26298:74;;26381:93;26470:3;26381:93;:::i;:::-;26499:2;26494:3;26490:12;26483:19;;26142:366;;;:::o;26514:419::-;26680:4;26718:2;26707:9;26703:18;26695:26;;26767:9;26761:4;26757:20;26753:1;26742:9;26738:17;26731:47;26795:131;26921:4;26795:131;:::i;:::-;26787:139;;26514:419;;;:::o;26939:223::-;27079:34;27075:1;27067:6;27063:14;27056:58;27148:6;27143:2;27135:6;27131:15;27124:31;26939:223;:::o;27168:366::-;27310:3;27331:67;27395:2;27390:3;27331:67;:::i;:::-;27324:74;;27407:93;27496:3;27407:93;:::i;:::-;27525:2;27520:3;27516:12;27509:19;;27168:366;;;:::o;27540:419::-;27706:4;27744:2;27733:9;27729:18;27721:26;;27793:9;27787:4;27783:20;27779:1;27768:9;27764:17;27757:47;27821:131;27947:4;27821:131;:::i;:::-;27813:139;;27540:419;;;:::o;27965:221::-;28105:34;28101:1;28093:6;28089:14;28082:58;28174:4;28169:2;28161:6;28157:15;28150:29;27965:221;:::o;28192:366::-;28334:3;28355:67;28419:2;28414:3;28355:67;:::i;:::-;28348:74;;28431:93;28520:3;28431:93;:::i;:::-;28549:2;28544:3;28540:12;28533:19;;28192:366;;;:::o;28564:419::-;28730:4;28768:2;28757:9;28753:18;28745:26;;28817:9;28811:4;28807:20;28803:1;28792:9;28788:17;28781:47;28845:131;28971:4;28845:131;:::i;:::-;28837:139;;28564:419;;;:::o;28989:179::-;29129:31;29125:1;29117:6;29113:14;29106:55;28989:179;:::o;29174:366::-;29316:3;29337:67;29401:2;29396:3;29337:67;:::i;:::-;29330:74;;29413:93;29502:3;29413:93;:::i;:::-;29531:2;29526:3;29522:12;29515:19;;29174:366;;;:::o;29546:419::-;29712:4;29750:2;29739:9;29735:18;29727:26;;29799:9;29793:4;29789:20;29785:1;29774:9;29770:17;29763:47;29827:131;29953:4;29827:131;:::i;:::-;29819:139;;29546:419;;;:::o;29971:224::-;30111:34;30107:1;30099:6;30095:14;30088:58;30180:7;30175:2;30167:6;30163:15;30156:32;29971:224;:::o;30201:366::-;30343:3;30364:67;30428:2;30423:3;30364:67;:::i;:::-;30357:74;;30440:93;30529:3;30440:93;:::i;:::-;30558:2;30553:3;30549:12;30542:19;;30201:366;;;:::o;30573:419::-;30739:4;30777:2;30766:9;30762:18;30754:26;;30826:9;30820:4;30816:20;30812:1;30801:9;30797:17;30790:47;30854:131;30980:4;30854:131;:::i;:::-;30846:139;;30573:419;;;:::o;30998:222::-;31138:34;31134:1;31126:6;31122:14;31115:58;31207:5;31202:2;31194:6;31190:15;31183:30;30998:222;:::o;31226:366::-;31368:3;31389:67;31453:2;31448:3;31389:67;:::i;:::-;31382:74;;31465:93;31554:3;31465:93;:::i;:::-;31583:2;31578:3;31574:12;31567:19;;31226:366;;;:::o;31598:419::-;31764:4;31802:2;31791:9;31787:18;31779:26;;31851:9;31845:4;31841:20;31837:1;31826:9;31822:17;31815:47;31879:131;32005:4;31879:131;:::i;:::-;31871:139;;31598:419;;;:::o;32023:191::-;32063:4;32083:20;32101:1;32083:20;:::i;:::-;32078:25;;32117:20;32135:1;32117:20;:::i;:::-;32112:25;;32156:1;32153;32150:8;32147:34;;;32161:18;;:::i;:::-;32147:34;32206:1;32203;32199:9;32191:17;;32023:191;;;;:::o;32220:154::-;32360:6;32356:1;32348:6;32344:14;32337:30;32220:154;:::o;32380:365::-;32522:3;32543:66;32607:1;32602:3;32543:66;:::i;:::-;32536:73;;32618:93;32707:3;32618:93;:::i;:::-;32736:2;32731:3;32727:12;32720:19;;32380:365;;;:::o;32751:419::-;32917:4;32955:2;32944:9;32940:18;32932:26;;33004:9;32998:4;32994:20;32990:1;32979:9;32975:17;32968:47;33032:131;33158:4;33032:131;:::i;:::-;33024:139;;32751:419;;;:::o;33176:247::-;33316:34;33312:1;33304:6;33300:14;33293:58;33385:30;33380:2;33372:6;33368:15;33361:55;33176:247;:::o;33429:366::-;33571:3;33592:67;33656:2;33651:3;33592:67;:::i;:::-;33585:74;;33668:93;33757:3;33668:93;:::i;:::-;33786:2;33781:3;33777:12;33770:19;;33429:366;;;:::o;33801:419::-;33967:4;34005:2;33994:9;33990:18;33982:26;;34054:9;34048:4;34044:20;34040:1;34029:9;34025:17;34018:47;34082:131;34208:4;34082:131;:::i;:::-;34074:139;;33801:419;;;:::o;34226:176::-;34366:28;34362:1;34354:6;34350:14;34343:52;34226:176;:::o;34408:366::-;34550:3;34571:67;34635:2;34630:3;34571:67;:::i;:::-;34564:74;;34647:93;34736:3;34647:93;:::i;:::-;34765:2;34760:3;34756:12;34749:19;;34408:366;;;:::o;34780:419::-;34946:4;34984:2;34973:9;34969:18;34961:26;;35033:9;35027:4;35023:20;35019:1;35008:9;35004:17;34997:47;35061:131;35187:4;35061:131;:::i;:::-;35053:139;;34780:419;;;:::o;35205:248::-;35345:34;35341:1;35333:6;35329:14;35322:58;35414:31;35409:2;35401:6;35397:15;35390:56;35205:248;:::o;35459:366::-;35601:3;35622:67;35686:2;35681:3;35622:67;:::i;:::-;35615:74;;35698:93;35787:3;35698:93;:::i;:::-;35816:2;35811:3;35807:12;35800:19;;35459:366;;;:::o;35831:419::-;35997:4;36035:2;36024:9;36020:18;36012:26;;36084:9;36078:4;36074:20;36070:1;36059:9;36055:17;36048:47;36112:131;36238:4;36112:131;:::i;:::-;36104:139;;35831:419;;;:::o;36256:220::-;36396:34;36392:1;36384:6;36380:14;36373:58;36465:3;36460:2;36452:6;36448:15;36441:28;36256:220;:::o;36482:366::-;36624:3;36645:67;36709:2;36704:3;36645:67;:::i;:::-;36638:74;;36721:93;36810:3;36721:93;:::i;:::-;36839:2;36834:3;36830:12;36823:19;;36482:366;;;:::o;36854:419::-;37020:4;37058:2;37047:9;37043:18;37035:26;;37107:9;37101:4;37097:20;37093:1;37082:9;37078:17;37071:47;37135:131;37261:4;37135:131;:::i;:::-;37127:139;;36854:419;;;:::o;37279:221::-;37419:34;37415:1;37407:6;37403:14;37396:58;37488:4;37483:2;37475:6;37471:15;37464:29;37279:221;:::o;37506:366::-;37648:3;37669:67;37733:2;37728:3;37669:67;:::i;:::-;37662:74;;37745:93;37834:3;37745:93;:::i;:::-;37863:2;37858:3;37854:12;37847:19;;37506:366;;;:::o;37878:419::-;38044:4;38082:2;38071:9;38067:18;38059:26;;38131:9;38125:4;38121:20;38117:1;38106:9;38102:17;38095:47;38159:131;38285:4;38159:131;:::i;:::-;38151:139;;37878:419;;;:::o;38303:225::-;38443:34;38439:1;38431:6;38427:14;38420:58;38512:8;38507:2;38499:6;38495:15;38488:33;38303:225;:::o;38534:366::-;38676:3;38697:67;38761:2;38756:3;38697:67;:::i;:::-;38690:74;;38773:93;38862:3;38773:93;:::i;:::-;38891:2;38886:3;38882:12;38875:19;;38534:366;;;:::o;38906:419::-;39072:4;39110:2;39099:9;39095:18;39087:26;;39159:9;39153:4;39149:20;39145:1;39134:9;39130:17;39123:47;39187:131;39313:4;39187:131;:::i;:::-;39179:139;;38906:419;;;:::o;39331:180::-;39379:77;39376:1;39369:88;39476:4;39473:1;39466:15;39500:4;39497:1;39490:15;39517:180;39565:77;39562:1;39555:88;39662:4;39659:1;39652:15;39686:4;39683:1;39676:15;39703:114;39770:6;39804:5;39798:12;39788:22;;39703:114;;;:::o;39823:184::-;39922:11;39956:6;39951:3;39944:19;39996:4;39991:3;39987:14;39972:29;;39823:184;;;;:::o;40013:132::-;40080:4;40103:3;40095:11;;40133:4;40128:3;40124:14;40116:22;;40013:132;;;:::o;40151:108::-;40228:24;40246:5;40228:24;:::i;:::-;40223:3;40216:37;40151:108;;:::o;40265:179::-;40334:10;40355:46;40397:3;40389:6;40355:46;:::i;:::-;40433:4;40428:3;40424:14;40410:28;;40265:179;;;;:::o;40450:113::-;40520:4;40552;40547:3;40543:14;40535:22;;40450:113;;;:::o;40599:732::-;40718:3;40747:54;40795:5;40747:54;:::i;:::-;40817:86;40896:6;40891:3;40817:86;:::i;:::-;40810:93;;40927:56;40977:5;40927:56;:::i;:::-;41006:7;41037:1;41022:284;41047:6;41044:1;41041:13;41022:284;;;41123:6;41117:13;41150:63;41209:3;41194:13;41150:63;:::i;:::-;41143:70;;41236:60;41289:6;41236:60;:::i;:::-;41226:70;;41082:224;41069:1;41066;41062:9;41057:14;;41022:284;;;41026:14;41322:3;41315:10;;40723:608;;;40599:732;;;;:::o;41337:831::-;41600:4;41638:3;41627:9;41623:19;41615:27;;41652:71;41720:1;41709:9;41705:17;41696:6;41652:71;:::i;:::-;41733:80;41809:2;41798:9;41794:18;41785:6;41733:80;:::i;:::-;41860:9;41854:4;41850:20;41845:2;41834:9;41830:18;41823:48;41888:108;41991:4;41982:6;41888:108;:::i;:::-;41880:116;;42006:72;42074:2;42063:9;42059:18;42050:6;42006:72;:::i;:::-;42088:73;42156:3;42145:9;42141:19;42132:6;42088:73;:::i;:::-;41337:831;;;;;;;;:::o

Swarm Source

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