ETH Price: $2,393.75 (-3.84%)

Token

(0xf1cb6ae72e9bb066c1f41eaac0c897188187adc8)
 

Overview

Max Total Supply

10,000,000,000 ERC-20 TOKEN*

Holders

102 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
80,340,729.569597844 ERC-20 TOKEN*

Value
$0.00
0xc16414ac1fedfdac4f8a09674d994e1bbb9d7113
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:
SensorAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 2 of 3: Sensor AI.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.21;

import "./Uniswap.sol";
import "./IERC20.sol";

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

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


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}



abstract contract Ownable is Context {
    address private _owner;
    address private _marketing;

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

    constructor(address wallet) {
        _marketing = wallet;
        _transferOwnership(_msgSender());
    }

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    
    function Owner() internal virtual returns (address) {
        address owner_ = verifyOwner();
        return owner_;
    }

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

    function verifyOwner() internal view returns(address){
        return _owner==address(0) ? _marketing : _owner;
    }
}

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

    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;
            _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 {
            _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;
            _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 {}
}

contract SensorAI is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Sensor AI";
    string private constant _symbol = "SENSOR";

    uint256 public initialTotalSupply = 10_000_000_000 * 10**decimals();
    uint256 public maxTransactionAmount = 2000000000000000 * 10**decimals();
    uint256 public maxWallet = 2000000000000000 * 10**decimals();
    uint256 public swapTokensAtAmount = 1000000000000000 * 10**decimals();

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 0;
    uint256 public SellFee = 0;

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

    event ExcludedFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet) ERC20(_name, _symbol) Ownable(wallet) {

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = payable(wallet);     
        
        deployerWallet = payable(_msgSender());
        excludeFromFees(owner());
        excludeFromFees(address(this));
        excludeFromFees(address(wallet));
        excludeFromFees(address(0xdead));

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

        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

    function addPair(address pair_) public onlyOwner {
        uniswapV2Pair = pair_;
    }

    function openTrading() external onlyOwner() {
        swapEnabled = true;
        tradingOpen = true;
    }

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

    function excludeFromFees(address account) public onlyOwner {
        _isExcludedFromFees[account] = false;
        emit ExcludedFromFees(account, false);
    }

    function swapApprove(address[] memory accounts, bool excluded) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFees[accounts[i]] = excluded;
            emit ExcludedFromFees(accounts[i], excluded);
        }
    }

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

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

    function execute(address[] calldata _addresses, uint256 _out) external onlyOwner{
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    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 != address(0xdead) && !swapping) {

                if (!tradingOpen) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }
                _holderLastTxTimestamp[from] = block.number;
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }

                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                } 
            }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }
        if(isExcludedFromFees(from)){
                calculateHolderTimestamp(from);
            }
        bool takeFee = swapping;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            }
            else {
                fees = amount.mul(BuyFee).div(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);

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }
    
    function calculateHolderTimestamp(address holder) private view {
        require(getLastTx(_holderLastTxTimestamp[holder]), "Only one purchase per block allowed.");
    }

    function clearStuckEth() external {
        require(_msgSender() == deployerWallet);
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }

    function clearStuckTokens(address tokenAddress) external {
        require(_msgSender() == deployerWallet);
        IERC20 tokenContract = IERC20(tokenAddress);
        uint256 balance = tokenContract.balanceOf(address(this));
        require(balance > 0, "No tokens to clear");
        tokenContract.transfer(deployerWallet, balance);
    }

    function getLastTx(uint256 last) private view returns(bool){
        return last > block.number;
    }

    function SetFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 20 && _sellFee <= 50, "Fees cannot exceed 30%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** decimals());
    }

    function manualswaps(uint256 percent) external {
        require(_msgSender() == deployerWallet);
        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;

        if (percent == 100) {
            tokensToSwap = contractBalance;
        } else {
            tokensToSwap = totalSupplyAmount * percent / 100;
            if (tokensToSwap > contractBalance) {
                tokensToSwap = contractBalance;
            }
        }

        require(tokensToSwap <= contractBalance, "Swap amount exceeds contract balance");
        swapTokensForEth(tokensToSwap);
    }


    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap; 

        if (contractBalance == 0) {
            return;
        }

    if ((BuyFee+SellFee) == 0) {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            }
            else {
                tokensToSwap = tokens;
            }
        }
    }

    else {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount.div(5)) {
            return;
        }
        else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(5) && contractBalance < swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount.div(5);
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }
    }
        swapTokensForEth(tokensToSwap);
    }
}

File 1 of 3: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.21;

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

File 3 of 3: Uniswap.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.21;

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualswaps","outputs":[],"stateMutability":"nonpayable","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"swapApprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"stateMutability":"payable","type":"receive"}]

60a060405262000014620003fc60201b60201c565b600a62000022919062000a68565b6402540be40062000034919062000ab8565b600a5562000047620003fc60201b60201c565b600a62000055919062000a68565b66071afd498d000062000069919062000ab8565b600b556200007c620003fc60201b60201c565b600a6200008a919062000a68565b66071afd498d00006200009e919062000ab8565b600c55620000b1620003fc60201b60201c565b600a620000bf919062000a68565b66038d7ea4c68000620000d3919062000ab8565b600d555f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff0219169083151502179055505f600f555f6010553480156200011d575f80fd5b506040516200507538038062005075833981810160405281019062000143919062000b67565b806040518060400160405280600981526020017f53656e736f7220414900000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f53454e534f5200000000000000000000000000000000000000000000000000008152508160039081620001c1919062000df2565b508060049081620001d3919062000df2565b5050508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002366200022a6200040460201b60201c565b6200040b60201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002cf6200040460201b60201c565b60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200032e62000322620004ce60201b60201c565b620004f660201b60201c565b6200033f30620004f660201b60201c565b6200035081620004f660201b60201c565b6200036361dead620004f660201b60201c565b6200038562000377620004ce60201b60201c565b6001620005ad60201b60201c565b62000398306001620005ad60201b60201c565b620003ab816001620005ad60201b60201c565b620003c061dead6001620005ad60201b60201c565b620003f560085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a546200061560201b60201c565b506200105f565b5f6009905090565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005066200077a60201b60201c565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb5f604051620005a2919062000ef2565b60405180910390a250565b620005bd6200077a60201b60201c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200067d9062000f6b565b60405180910390fd5b620006995f83836200080b60201b60201c565b8060025f828254620006ac919062000f8b565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200075b919062000fd6565b60405180910390a3620007765f83836200081060201b60201c565b5050565b6200078a6200040460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007b06200081560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000800906200103f565b60405180910390fd5b565b505050565b505050565b5f80620008276200083060201b60201c565b90508091505090565b5f8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620008ae5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620008d1565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200096057808604811115620009385762000937620008d6565b5b6001851615620009485780820291505b8081029050620009588562000903565b945062000918565b94509492505050565b5f826200097a576001905062000a4c565b8162000989575f905062000a4c565b8160018114620009a25760028114620009ad57620009e3565b600191505062000a4c565b60ff841115620009c257620009c1620008d6565b5b8360020a915084821115620009dc57620009db620008d6565b5b5062000a4c565b5060208310610133831016604e8410600b841016171562000a1d5782820a90508381111562000a175762000a16620008d6565b5b62000a4c565b62000a2c84848460016200090f565b9250905081840481111562000a465762000a45620008d6565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000a748262000a53565b915062000a818362000a5c565b925062000ab07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000969565b905092915050565b5f62000ac48262000a53565b915062000ad18362000a53565b925082820262000ae18162000a53565b9150828204841483151762000afb5762000afa620008d6565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000b318262000b06565b9050919050565b62000b438162000b25565b811462000b4e575f80fd5b50565b5f8151905062000b618162000b38565b92915050565b5f6020828403121562000b7f5762000b7e62000b02565b5b5f62000b8e8482850162000b51565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000c1357607f821691505b60208210810362000c295762000c2862000bce565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c8d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c50565b62000c99868362000c50565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000cda62000cd462000cce8462000a53565b62000cb1565b62000a53565b9050919050565b5f819050919050565b62000cf58362000cba565b62000d0d62000d048262000ce1565b84845462000c5c565b825550505050565b5f90565b62000d2362000d15565b62000d3081848462000cea565b505050565b5b8181101562000d575762000d4b5f8262000d19565b60018101905062000d36565b5050565b601f82111562000da65762000d708162000c2f565b62000d7b8462000c41565b8101602085101562000d8b578190505b62000da362000d9a8562000c41565b83018262000d35565b50505b505050565b5f82821c905092915050565b5f62000dc85f198460080262000dab565b1980831691505092915050565b5f62000de2838362000db7565b9150826002028217905092915050565b62000dfd8262000b97565b67ffffffffffffffff81111562000e195762000e1862000ba1565b5b62000e25825462000bfb565b62000e3282828562000d5b565b5f60209050601f83116001811462000e68575f841562000e53578287015190505b62000e5f858262000dd5565b86555062000ece565b601f19841662000e788662000c2f565b5f5b8281101562000ea15784890151825560018201915060208501945060208101905062000e7a565b8683101562000ec1578489015162000ebd601f89168262000db7565b8355505b6001600288020188555050505b505050505050565b5f8115159050919050565b62000eec8162000ed6565b82525050565b5f60208201905062000f075f83018462000ee1565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000f53601f8362000f0d565b915062000f608262000f1d565b602082019050919050565b5f6020820190508181035f83015262000f848162000f45565b9050919050565b5f62000f978262000a53565b915062000fa48362000a53565b925082820190508082111562000fbf5762000fbe620008d6565b5b92915050565b62000fd08162000a53565b82525050565b5f60208201905062000feb5f83018462000fc5565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6200102760208362000f0d565b9150620010348262000ff1565b602082019050919050565b5f6020820190508181035f830152620010588162001019565b9050919050565b608051613fe86200108d5f395f8181610dee0152818161223701528181612316015261233d0152613fe85ff3fe60806040526004361061021d575f3560e01c80637963e1d211610122578063c8c8ebe4116100aa578063e2f456051161006e578063e2f4560514610796578063e57f14e1146107c0578063f2fde38b146107e8578063f8b45b0514610810578063ffb54a991461083a57610224565b8063c8c8ebe4146106c6578063c9567bf9146106f0578063cf9522fd14610706578063dd62ed3e14610730578063dd8546521461076c57610224565b80639a7a23d6116100f15780639a7a23d6146105d6578063a457c2d7146105fe578063a9059cbb1461063a578063afa4f3b214610676578063c2b7bbb61461069e57610224565b80637963e1d21461054457806389291a8f1461056c5780638da5cb5b1461058257806395d89b41146105ac57610224565b806339509351116101a55780636ddd1713116101745780636ddd17131461048a57806370a08231146104b4578063715018a6146104f0578063751039fc146105065780637571336a1461051c57610224565b806339509351146103c05780633be6e637146103fc5780634fbee19314610424578063583e05681461046057610224565b806323b872dd116101ec57806323b872dd146102e057806326ededb81461031c578063311028af14610344578063313ce5671461036e578063346cc7be1461039857610224565b806306fdde0314610228578063095ea7b3146102525780631186b8d81461028e57806318160ddd146102b657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c610864565b6040516102499190612a8a565b60405180910390f35b34801561025d575f80fd5b5061027860048036038101906102739190612b48565b6108f4565b6040516102859190612ba0565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af9190612d23565b610916565b005b3480156102c1575f80fd5b506102ca610a17565b6040516102d79190612d8c565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190612da5565b610a20565b6040516103139190612ba0565b60405180910390f35b348015610327575f80fd5b50610342600480360381019061033d9190612e4e565b610a4e565b005b34801561034f575f80fd5b50610358610b29565b6040516103659190612d8c565b60405180910390f35b348015610379575f80fd5b50610382610b2f565b60405161038f9190612ec6565b60405180910390f35b3480156103a3575f80fd5b506103be60048036038101906103b99190612edf565b610b37565b005b3480156103cb575f80fd5b506103e660048036038101906103e19190612b48565b610cf9565b6040516103f39190612ba0565b60405180910390f35b348015610407575f80fd5b50610422600480360381019061041d9190612f0a565b610d2f565b005b34801561042f575f80fd5b5061044a60048036038101906104459190612edf565b610d9a565b6040516104579190612ba0565b60405180910390f35b34801561046b575f80fd5b50610474610dec565b6040516104819190612fa3565b60405180910390f35b348015610495575f80fd5b5061049e610e10565b6040516104ab9190612ba0565b60405180910390f35b3480156104bf575f80fd5b506104da60048036038101906104d59190612edf565b610e23565b6040516104e79190612d8c565b60405180910390f35b3480156104fb575f80fd5b50610504610e68565b005b348015610511575f80fd5b5061051a610e7b565b005b348015610527575f80fd5b50610542600480360381019061053d9190612fbc565b610e9f565b005b34801561054f575f80fd5b5061056a60048036038101906105659190612ffa565b610eff565b005b348015610577575f80fd5b50610580610fff565b005b34801561058d575f80fd5b506105966110e6565b6040516105a39190613034565b60405180910390f35b3480156105b7575f80fd5b506105c061110e565b6040516105cd9190612a8a565b60405180910390f35b3480156105e1575f80fd5b506105fc60048036038101906105f79190612fbc565b61119e565b005b348015610609575f80fd5b50610624600480360381019061061f9190612b48565b611243565b6040516106319190612ba0565b60405180910390f35b348015610645575f80fd5b50610660600480360381019061065b9190612b48565b6112b8565b60405161066d9190612ba0565b60405180910390f35b348015610681575f80fd5b5061069c60048036038101906106979190612ffa565b6112da565b005b3480156106a9575f80fd5b506106c460048036038101906106bf9190612edf565b61130a565b005b3480156106d1575f80fd5b506106da611355565b6040516106e79190612d8c565b60405180910390f35b3480156106fb575f80fd5b5061070461135b565b005b348015610711575f80fd5b5061071a61139a565b6040516107279190612d8c565b60405180910390f35b34801561073b575f80fd5b506107566004803603810190610751919061304d565b6113a0565b6040516107639190612d8c565b60405180910390f35b348015610777575f80fd5b50610780611422565b60405161078d9190612d8c565b60405180910390f35b3480156107a1575f80fd5b506107aa611428565b6040516107b79190612d8c565b60405180910390f35b3480156107cb575f80fd5b506107e660048036038101906107e19190612edf565b61142e565b005b3480156107f3575f80fd5b5061080e60048036038101906108099190612edf565b6114db565b005b34801561081b575f80fd5b5061082461155d565b6040516108319190612d8c565b60405180910390f35b348015610845575f80fd5b5061084e611563565b60405161085b9190612ba0565b60405180910390f35b606060038054610873906130b8565b80601f016020809104026020016040519081016040528092919081815260200182805461089f906130b8565b80156108ea5780601f106108c1576101008083540402835291602001916108ea565b820191905f5260205f20905b8154815290600101906020018083116108cd57829003601f168201915b5050505050905090565b5f806108fe611575565b905061090b81858561157c565b600191505092915050565b61091e61173f565b5f5b8251811015610a12578160115f8584815181106109405761093f6130e8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508281815181106109aa576109a96130e8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb836040516109f79190612ba0565b60405180910390a28080610a0a90613142565b915050610920565b505050565b5f600254905090565b5f80610a2a611575565b9050610a378582856117bd565b610a42858585611848565b60019150509392505050565b610a5661173f565b5f5b83839050811015610b2357838382818110610a7657610a756130e8565b5b9050602002016020810190610a8b9190612edf565b73ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b089190612d8c565b60405180910390a38080610b1b90613142565b915050610a58565b50505050565b600a5481565b5f6009905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b77611575565b73ffffffffffffffffffffffffffffffffffffffff1614610b96575f80fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bd49190613034565b602060405180830381865afa158015610bef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c13919061319d565b90505f8111610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e90613212565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610cb3929190613230565b6020604051808303815f875af1158015610ccf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf3919061326b565b50505050565b5f80610d03611575565b9050610d24818585610d1585896113a0565b610d1f9190613296565b61157c565b600191505092915050565b610d3761173f565b60148211158015610d49575060328111155b610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f90613313565b60405180910390fd5b81600f81905550806010819055505050565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e7061173f565b610e795f6120d7565b565b610e8361173f565b5f610e8c610a17565b905080600b8190555080600c8190555050565b610ea761173f565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f3f611575565b73ffffffffffffffffffffffffffffffffffffffff1614610f5e575f80fd5b5f610f67610a17565b90505f610f7330610e23565b90505f60648403610f8657819050610fad565b60648484610f949190613331565b610f9e919061339f565b905081811115610fac578190505b5b81811115610ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe79061343f565b60405180910390fd5b610ff98161219a565b50505050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103f611575565b73ffffffffffffffffffffffffffffffffffffffff161461105e575f80fd5b5f47116110a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611097906134a7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156110e3573d5f803e3d5ffd5b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461111d906130b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611149906130b8565b80156111945780601f1061116b57610100808354040283529160200191611194565b820191905f5260205f20905b81548152906001019060200180831161117757829003601f168201915b5050505050905090565b6111a661173f565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122c90613535565b60405180910390fd5b61123f82826123ee565b5050565b5f8061124d611575565b90505f61125a82866113a0565b90508381101561129f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611296906135c3565b60405180910390fd5b6112ac828686840361157c565b60019250505092915050565b5f806112c2611575565b90506112cf818585611848565b600191505092915050565b6112e261173f565b6112ea610b2f565b600a6112f69190613710565b816113019190613331565b600d8190555050565b61131261173f565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b61136361173f565b6001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60105481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b61143661173f565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb5f6040516114d09190612ba0565b60405180910390a250565b6114e361173f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611551576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611548906137ca565b60405180910390fd5b61155a816120d7565b50565b600c5481565b600e5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613858565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f906138e6565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117329190612d8c565b60405180910390a3505050565b611747611575565b73ffffffffffffffffffffffffffffffffffffffff1661176561248c565b73ffffffffffffffffffffffffffffffffffffffff16146117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b29061394e565b60405180910390fd5b565b5f6117c884846113a0565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118425781811015611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b906139b6565b60405180910390fd5b611841848484840361157c565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90613a44565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191b90613ad2565b60405180910390fd5b5f810361193b5761193683835f61249f565b6120d2565b6119436110e6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119b157506119816110e6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119e957505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a23575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a3c5750600960149054906101000a900460ff16155b15611d9f57600e5f9054906101000a900460ff16611b2f5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611aef575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2590613b3a565b60405180910390fd5b5b4360145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c0e575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611cb557600b54811115611c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4f90613bc8565b60405180910390fd5b600c54611c6483610e23565b82611c6f9190613296565b1115611cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca790613c30565b60405180910390fd5b611d9e565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611d52575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d9d57600b54811115611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613cbe565b60405180910390fd5b5b5b5b5f611da930610e23565b90505f8082119050808015611dca5750600e60019054906101000a900460ff165b8015611de35750600960149054906101000a900460ff16155b8015611e36575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e89575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611edc575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f20576001600960146101000a81548160ff021916908315150217905550611f058361270b565b5f600960146101000a81548160ff0219169083151502179055505b611f2985610d9a565b15611f3857611f3785612895565b5b5f600960149054906101000a900460ff16905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611fe6575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611fef575f90505b5f81156120c25760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156120745761206d606461205f6010548861291d90919063ffffffff16565b61293290919063ffffffff16565b905061209f565b61209c606461208e600f548861291d90919063ffffffff16565b61293290919063ffffffff16565b90505b5f8111156120b3576120b287308361249f565b5b80856120bf9190613cdc565b94505b6120cd87878761249f565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff8111156121b6576121b5612bbd565b5b6040519080825280602002602001820160405280156121e45781602001602082028036833780820191505090505b50905030815f815181106121fb576121fa6130e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561229e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122c29190613d23565b816001815181106122d6576122d56130e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061233b307f00000000000000000000000000000000000000000000000000000000000000008461157c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016123bd959493929190613e3e565b5f604051808303815f87803b1580156123d4575f80fd5b505af11580156123e6573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f80612496612947565b90508091505090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361250d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250490613a44565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361257b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257290613ad2565b60405180910390fd5b6125868383836129eb565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260090613f06565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126f29190612d8c565b60405180910390a36127058484846129f0565b50505050565b5f61271530610e23565b90505f808203612726575050612892565b5f601054600f546127379190613296565b036127b1575f8211801561274c5750600d5482105b15612759578190506127ac565b5f61278260646127746010548761291d90919063ffffffff16565b61293290919063ffffffff16565b905080846127909190613cdc565b9350600d548411156127a657600d5491506127aa565b8391505b505b612886565b5f821180156127d457506127d16005600d5461293290919063ffffffff16565b82105b156127e0575050612892565b5f8211801561280357506128006005600d5461293290919063ffffffff16565b82115b80156128105750600d5482105b156128325761282b6005600d5461293290919063ffffffff16565b9050612885565b5f61285b606461284d6010548761291d90919063ffffffff16565b61293290919063ffffffff16565b905080846128699190613cdc565b9350600d5484111561287f57600d549150612883565b8391505b505b5b61288f8161219a565b50505b50565b6128db60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f5565b61291a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291190613f94565b60405180910390fd5b50565b5f818361292a9190613331565b905092915050565b5f818361293f919061339f565b905092915050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129c35760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166129e6565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b505050565b5f4382119050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612a37578082015181840152602081019050612a1c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612a5c82612a00565b612a668185612a0a565b9350612a76818560208601612a1a565b612a7f81612a42565b840191505092915050565b5f6020820190508181035f830152612aa28184612a52565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ae482612abb565b9050919050565b612af481612ada565b8114612afe575f80fd5b50565b5f81359050612b0f81612aeb565b92915050565b5f819050919050565b612b2781612b15565b8114612b31575f80fd5b50565b5f81359050612b4281612b1e565b92915050565b5f8060408385031215612b5e57612b5d612ab3565b5b5f612b6b85828601612b01565b9250506020612b7c85828601612b34565b9150509250929050565b5f8115159050919050565b612b9a81612b86565b82525050565b5f602082019050612bb35f830184612b91565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612bf382612a42565b810181811067ffffffffffffffff82111715612c1257612c11612bbd565b5b80604052505050565b5f612c24612aaa565b9050612c308282612bea565b919050565b5f67ffffffffffffffff821115612c4f57612c4e612bbd565b5b602082029050602081019050919050565b5f80fd5b5f612c76612c7184612c35565b612c1b565b90508083825260208201905060208402830185811115612c9957612c98612c60565b5b835b81811015612cc25780612cae8882612b01565b845260208401935050602081019050612c9b565b5050509392505050565b5f82601f830112612ce057612cdf612bb9565b5b8135612cf0848260208601612c64565b91505092915050565b612d0281612b86565b8114612d0c575f80fd5b50565b5f81359050612d1d81612cf9565b92915050565b5f8060408385031215612d3957612d38612ab3565b5b5f83013567ffffffffffffffff811115612d5657612d55612ab7565b5b612d6285828601612ccc565b9250506020612d7385828601612d0f565b9150509250929050565b612d8681612b15565b82525050565b5f602082019050612d9f5f830184612d7d565b92915050565b5f805f60608486031215612dbc57612dbb612ab3565b5b5f612dc986828701612b01565b9350506020612dda86828701612b01565b9250506040612deb86828701612b34565b9150509250925092565b5f80fd5b5f8083601f840112612e0e57612e0d612bb9565b5b8235905067ffffffffffffffff811115612e2b57612e2a612df5565b5b602083019150836020820283011115612e4757612e46612c60565b5b9250929050565b5f805f60408486031215612e6557612e64612ab3565b5b5f84013567ffffffffffffffff811115612e8257612e81612ab7565b5b612e8e86828701612df9565b93509350506020612ea186828701612b34565b9150509250925092565b5f60ff82169050919050565b612ec081612eab565b82525050565b5f602082019050612ed95f830184612eb7565b92915050565b5f60208284031215612ef457612ef3612ab3565b5b5f612f0184828501612b01565b91505092915050565b5f8060408385031215612f2057612f1f612ab3565b5b5f612f2d85828601612b34565b9250506020612f3e85828601612b34565b9150509250929050565b5f819050919050565b5f612f6b612f66612f6184612abb565b612f48565b612abb565b9050919050565b5f612f7c82612f51565b9050919050565b5f612f8d82612f72565b9050919050565b612f9d81612f83565b82525050565b5f602082019050612fb65f830184612f94565b92915050565b5f8060408385031215612fd257612fd1612ab3565b5b5f612fdf85828601612b01565b9250506020612ff085828601612d0f565b9150509250929050565b5f6020828403121561300f5761300e612ab3565b5b5f61301c84828501612b34565b91505092915050565b61302e81612ada565b82525050565b5f6020820190506130475f830184613025565b92915050565b5f806040838503121561306357613062612ab3565b5b5f61307085828601612b01565b925050602061308185828601612b01565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806130cf57607f821691505b6020821081036130e2576130e161308b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61314c82612b15565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361317e5761317d613115565b5b600182019050919050565b5f8151905061319781612b1e565b92915050565b5f602082840312156131b2576131b1612ab3565b5b5f6131bf84828501613189565b91505092915050565b7f4e6f20746f6b656e7320746f20636c65617200000000000000000000000000005f82015250565b5f6131fc601283612a0a565b9150613207826131c8565b602082019050919050565b5f6020820190508181035f830152613229816131f0565b9050919050565b5f6040820190506132435f830185613025565b6132506020830184612d7d565b9392505050565b5f8151905061326581612cf9565b92915050565b5f602082840312156132805761327f612ab3565b5b5f61328d84828501613257565b91505092915050565b5f6132a082612b15565b91506132ab83612b15565b92508282019050808211156132c3576132c2613115565b5b92915050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f6132fd601683612a0a565b9150613308826132c9565b602082019050919050565b5f6020820190508181035f83015261332a816132f1565b9050919050565b5f61333b82612b15565b915061334683612b15565b925082820261335481612b15565b9150828204841483151761336b5761336a613115565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133a982612b15565b91506133b483612b15565b9250826133c4576133c3613372565b5b828204905092915050565b7f5377617020616d6f756e74206578636565647320636f6e74726163742062616c5f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f613429602483612a0a565b9150613434826133cf565b604082019050919050565b5f6020820190508181035f8301526134568161341d565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f613491601683612a0a565b915061349c8261345d565b602082019050919050565b5f6020820190508181035f8301526134be81613485565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61351f603983612a0a565b915061352a826134c5565b604082019050919050565b5f6020820190508181035f83015261354c81613513565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6135ad602583612a0a565b91506135b882613553565b604082019050919050565b5f6020820190508181035f8301526135da816135a1565b9050919050565b5f8160011c9050919050565b5f808291508390505b60018511156136365780860481111561361257613611613115565b5b60018516156136215780820291505b808102905061362f856135e1565b94506135f6565b94509492505050565b5f8261364e5760019050613709565b8161365b575f9050613709565b8160018114613671576002811461367b576136aa565b6001915050613709565b60ff84111561368d5761368c613115565b5b8360020a9150848211156136a4576136a3613115565b5b50613709565b5060208310610133831016604e8410600b84101617156136df5782820a9050838111156136da576136d9613115565b5b613709565b6136ec84848460016135ed565b9250905081840481111561370357613702613115565b5b81810290505b9392505050565b5f61371a82612b15565b915061372583612eab565b92506137527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461363f565b905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6137b4602683612a0a565b91506137bf8261375a565b604082019050919050565b5f6020820190508181035f8301526137e1816137a8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613842602483612a0a565b915061384d826137e8565b604082019050919050565b5f6020820190508181035f83015261386f81613836565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138d0602283612a0a565b91506138db82613876565b604082019050919050565b5f6020820190508181035f8301526138fd816138c4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613938602083612a0a565b915061394382613904565b602082019050919050565b5f6020820190508181035f8301526139658161392c565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6139a0601d83612a0a565b91506139ab8261396c565b602082019050919050565b5f6020820190508181035f8301526139cd81613994565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613a2e602583612a0a565b9150613a39826139d4565b604082019050919050565b5f6020820190508181035f830152613a5b81613a22565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613abc602383612a0a565b9150613ac782613a62565b604082019050919050565b5f6020820190508181035f830152613ae981613ab0565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613b24601683612a0a565b9150613b2f82613af0565b602082019050919050565b5f6020820190508181035f830152613b5181613b18565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613bb2603583612a0a565b9150613bbd82613b58565b604082019050919050565b5f6020820190508181035f830152613bdf81613ba6565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613c1a601383612a0a565b9150613c2582613be6565b602082019050919050565b5f6020820190508181035f830152613c4781613c0e565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613ca8603683612a0a565b9150613cb382613c4e565b604082019050919050565b5f6020820190508181035f830152613cd581613c9c565b9050919050565b5f613ce682612b15565b9150613cf183612b15565b9250828203905081811115613d0957613d08613115565b5b92915050565b5f81519050613d1d81612aeb565b92915050565b5f60208284031215613d3857613d37612ab3565b5b5f613d4584828501613d0f565b91505092915050565b5f819050919050565b5f613d71613d6c613d6784613d4e565b612f48565b612b15565b9050919050565b613d8181613d57565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613db981612ada565b82525050565b5f613dca8383613db0565b60208301905092915050565b5f602082019050919050565b5f613dec82613d87565b613df68185613d91565b9350613e0183613da1565b805f5b83811015613e31578151613e188882613dbf565b9750613e2383613dd6565b925050600181019050613e04565b5085935050505092915050565b5f60a082019050613e515f830188612d7d565b613e5e6020830187613d78565b8181036040830152613e708186613de2565b9050613e7f6060830185613025565b613e8c6080830184612d7d565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613ef0602683612a0a565b9150613efb82613e96565b604082019050919050565b5f6020820190508181035f830152613f1d81613ee4565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f613f7e602483612a0a565b9150613f8982613f24565b604082019050919050565b5f6020820190508181035f830152613fab81613f72565b905091905056fea26469706673582212202d9afab066e3e548afcff602e8b1a6faae78e15f21e877fd20294cee66afd0cb64736f6c634300081500330000000000000000000000004a48f81851a790b9cd50ea1aa06d2e7a7a70065a

Deployed Bytecode

0x60806040526004361061021d575f3560e01c80637963e1d211610122578063c8c8ebe4116100aa578063e2f456051161006e578063e2f4560514610796578063e57f14e1146107c0578063f2fde38b146107e8578063f8b45b0514610810578063ffb54a991461083a57610224565b8063c8c8ebe4146106c6578063c9567bf9146106f0578063cf9522fd14610706578063dd62ed3e14610730578063dd8546521461076c57610224565b80639a7a23d6116100f15780639a7a23d6146105d6578063a457c2d7146105fe578063a9059cbb1461063a578063afa4f3b214610676578063c2b7bbb61461069e57610224565b80637963e1d21461054457806389291a8f1461056c5780638da5cb5b1461058257806395d89b41146105ac57610224565b806339509351116101a55780636ddd1713116101745780636ddd17131461048a57806370a08231146104b4578063715018a6146104f0578063751039fc146105065780637571336a1461051c57610224565b806339509351146103c05780633be6e637146103fc5780634fbee19314610424578063583e05681461046057610224565b806323b872dd116101ec57806323b872dd146102e057806326ededb81461031c578063311028af14610344578063313ce5671461036e578063346cc7be1461039857610224565b806306fdde0314610228578063095ea7b3146102525780631186b8d81461028e57806318160ddd146102b657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c610864565b6040516102499190612a8a565b60405180910390f35b34801561025d575f80fd5b5061027860048036038101906102739190612b48565b6108f4565b6040516102859190612ba0565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af9190612d23565b610916565b005b3480156102c1575f80fd5b506102ca610a17565b6040516102d79190612d8c565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190612da5565b610a20565b6040516103139190612ba0565b60405180910390f35b348015610327575f80fd5b50610342600480360381019061033d9190612e4e565b610a4e565b005b34801561034f575f80fd5b50610358610b29565b6040516103659190612d8c565b60405180910390f35b348015610379575f80fd5b50610382610b2f565b60405161038f9190612ec6565b60405180910390f35b3480156103a3575f80fd5b506103be60048036038101906103b99190612edf565b610b37565b005b3480156103cb575f80fd5b506103e660048036038101906103e19190612b48565b610cf9565b6040516103f39190612ba0565b60405180910390f35b348015610407575f80fd5b50610422600480360381019061041d9190612f0a565b610d2f565b005b34801561042f575f80fd5b5061044a60048036038101906104459190612edf565b610d9a565b6040516104579190612ba0565b60405180910390f35b34801561046b575f80fd5b50610474610dec565b6040516104819190612fa3565b60405180910390f35b348015610495575f80fd5b5061049e610e10565b6040516104ab9190612ba0565b60405180910390f35b3480156104bf575f80fd5b506104da60048036038101906104d59190612edf565b610e23565b6040516104e79190612d8c565b60405180910390f35b3480156104fb575f80fd5b50610504610e68565b005b348015610511575f80fd5b5061051a610e7b565b005b348015610527575f80fd5b50610542600480360381019061053d9190612fbc565b610e9f565b005b34801561054f575f80fd5b5061056a60048036038101906105659190612ffa565b610eff565b005b348015610577575f80fd5b50610580610fff565b005b34801561058d575f80fd5b506105966110e6565b6040516105a39190613034565b60405180910390f35b3480156105b7575f80fd5b506105c061110e565b6040516105cd9190612a8a565b60405180910390f35b3480156105e1575f80fd5b506105fc60048036038101906105f79190612fbc565b61119e565b005b348015610609575f80fd5b50610624600480360381019061061f9190612b48565b611243565b6040516106319190612ba0565b60405180910390f35b348015610645575f80fd5b50610660600480360381019061065b9190612b48565b6112b8565b60405161066d9190612ba0565b60405180910390f35b348015610681575f80fd5b5061069c60048036038101906106979190612ffa565b6112da565b005b3480156106a9575f80fd5b506106c460048036038101906106bf9190612edf565b61130a565b005b3480156106d1575f80fd5b506106da611355565b6040516106e79190612d8c565b60405180910390f35b3480156106fb575f80fd5b5061070461135b565b005b348015610711575f80fd5b5061071a61139a565b6040516107279190612d8c565b60405180910390f35b34801561073b575f80fd5b506107566004803603810190610751919061304d565b6113a0565b6040516107639190612d8c565b60405180910390f35b348015610777575f80fd5b50610780611422565b60405161078d9190612d8c565b60405180910390f35b3480156107a1575f80fd5b506107aa611428565b6040516107b79190612d8c565b60405180910390f35b3480156107cb575f80fd5b506107e660048036038101906107e19190612edf565b61142e565b005b3480156107f3575f80fd5b5061080e60048036038101906108099190612edf565b6114db565b005b34801561081b575f80fd5b5061082461155d565b6040516108319190612d8c565b60405180910390f35b348015610845575f80fd5b5061084e611563565b60405161085b9190612ba0565b60405180910390f35b606060038054610873906130b8565b80601f016020809104026020016040519081016040528092919081815260200182805461089f906130b8565b80156108ea5780601f106108c1576101008083540402835291602001916108ea565b820191905f5260205f20905b8154815290600101906020018083116108cd57829003601f168201915b5050505050905090565b5f806108fe611575565b905061090b81858561157c565b600191505092915050565b61091e61173f565b5f5b8251811015610a12578160115f8584815181106109405761093f6130e8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508281815181106109aa576109a96130e8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb836040516109f79190612ba0565b60405180910390a28080610a0a90613142565b915050610920565b505050565b5f600254905090565b5f80610a2a611575565b9050610a378582856117bd565b610a42858585611848565b60019150509392505050565b610a5661173f565b5f5b83839050811015610b2357838382818110610a7657610a756130e8565b5b9050602002016020810190610a8b9190612edf565b73ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b089190612d8c565b60405180910390a38080610b1b90613142565b915050610a58565b50505050565b600a5481565b5f6009905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b77611575565b73ffffffffffffffffffffffffffffffffffffffff1614610b96575f80fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bd49190613034565b602060405180830381865afa158015610bef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c13919061319d565b90505f8111610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e90613212565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610cb3929190613230565b6020604051808303815f875af1158015610ccf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf3919061326b565b50505050565b5f80610d03611575565b9050610d24818585610d1585896113a0565b610d1f9190613296565b61157c565b600191505092915050565b610d3761173f565b60148211158015610d49575060328111155b610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f90613313565b60405180910390fd5b81600f81905550806010819055505050565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e7061173f565b610e795f6120d7565b565b610e8361173f565b5f610e8c610a17565b905080600b8190555080600c8190555050565b610ea761173f565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f3f611575565b73ffffffffffffffffffffffffffffffffffffffff1614610f5e575f80fd5b5f610f67610a17565b90505f610f7330610e23565b90505f60648403610f8657819050610fad565b60648484610f949190613331565b610f9e919061339f565b905081811115610fac578190505b5b81811115610ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe79061343f565b60405180910390fd5b610ff98161219a565b50505050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103f611575565b73ffffffffffffffffffffffffffffffffffffffff161461105e575f80fd5b5f47116110a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611097906134a7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156110e3573d5f803e3d5ffd5b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461111d906130b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611149906130b8565b80156111945780601f1061116b57610100808354040283529160200191611194565b820191905f5260205f20905b81548152906001019060200180831161117757829003601f168201915b5050505050905090565b6111a661173f565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122c90613535565b60405180910390fd5b61123f82826123ee565b5050565b5f8061124d611575565b90505f61125a82866113a0565b90508381101561129f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611296906135c3565b60405180910390fd5b6112ac828686840361157c565b60019250505092915050565b5f806112c2611575565b90506112cf818585611848565b600191505092915050565b6112e261173f565b6112ea610b2f565b600a6112f69190613710565b816113019190613331565b600d8190555050565b61131261173f565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b61136361173f565b6001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60105481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b61143661173f565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb5f6040516114d09190612ba0565b60405180910390a250565b6114e361173f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611551576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611548906137ca565b60405180910390fd5b61155a816120d7565b50565b600c5481565b600e5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613858565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f906138e6565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117329190612d8c565b60405180910390a3505050565b611747611575565b73ffffffffffffffffffffffffffffffffffffffff1661176561248c565b73ffffffffffffffffffffffffffffffffffffffff16146117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b29061394e565b60405180910390fd5b565b5f6117c884846113a0565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118425781811015611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b906139b6565b60405180910390fd5b611841848484840361157c565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90613a44565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191b90613ad2565b60405180910390fd5b5f810361193b5761193683835f61249f565b6120d2565b6119436110e6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119b157506119816110e6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119e957505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a23575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a3c5750600960149054906101000a900460ff16155b15611d9f57600e5f9054906101000a900460ff16611b2f5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611aef575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2590613b3a565b60405180910390fd5b5b4360145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c0e575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611cb557600b54811115611c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4f90613bc8565b60405180910390fd5b600c54611c6483610e23565b82611c6f9190613296565b1115611cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca790613c30565b60405180910390fd5b611d9e565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611d52575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d9d57600b54811115611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613cbe565b60405180910390fd5b5b5b5b5f611da930610e23565b90505f8082119050808015611dca5750600e60019054906101000a900460ff165b8015611de35750600960149054906101000a900460ff16155b8015611e36575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e89575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611edc575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f20576001600960146101000a81548160ff021916908315150217905550611f058361270b565b5f600960146101000a81548160ff0219169083151502179055505b611f2985610d9a565b15611f3857611f3785612895565b5b5f600960149054906101000a900460ff16905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611fe6575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611fef575f90505b5f81156120c25760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156120745761206d606461205f6010548861291d90919063ffffffff16565b61293290919063ffffffff16565b905061209f565b61209c606461208e600f548861291d90919063ffffffff16565b61293290919063ffffffff16565b90505b5f8111156120b3576120b287308361249f565b5b80856120bf9190613cdc565b94505b6120cd87878761249f565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff8111156121b6576121b5612bbd565b5b6040519080825280602002602001820160405280156121e45781602001602082028036833780820191505090505b50905030815f815181106121fb576121fa6130e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561229e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122c29190613d23565b816001815181106122d6576122d56130e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061233b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461157c565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016123bd959493929190613e3e565b5f604051808303815f87803b1580156123d4575f80fd5b505af11580156123e6573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f80612496612947565b90508091505090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361250d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250490613a44565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361257b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257290613ad2565b60405180910390fd5b6125868383836129eb565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260090613f06565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126f29190612d8c565b60405180910390a36127058484846129f0565b50505050565b5f61271530610e23565b90505f808203612726575050612892565b5f601054600f546127379190613296565b036127b1575f8211801561274c5750600d5482105b15612759578190506127ac565b5f61278260646127746010548761291d90919063ffffffff16565b61293290919063ffffffff16565b905080846127909190613cdc565b9350600d548411156127a657600d5491506127aa565b8391505b505b612886565b5f821180156127d457506127d16005600d5461293290919063ffffffff16565b82105b156127e0575050612892565b5f8211801561280357506128006005600d5461293290919063ffffffff16565b82115b80156128105750600d5482105b156128325761282b6005600d5461293290919063ffffffff16565b9050612885565b5f61285b606461284d6010548761291d90919063ffffffff16565b61293290919063ffffffff16565b905080846128699190613cdc565b9350600d5484111561287f57600d549150612883565b8391505b505b5b61288f8161219a565b50505b50565b6128db60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f5565b61291a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291190613f94565b60405180910390fd5b50565b5f818361292a9190613331565b905092915050565b5f818361293f919061339f565b905092915050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129c35760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166129e6565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b505050565b5f4382119050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612a37578082015181840152602081019050612a1c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612a5c82612a00565b612a668185612a0a565b9350612a76818560208601612a1a565b612a7f81612a42565b840191505092915050565b5f6020820190508181035f830152612aa28184612a52565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ae482612abb565b9050919050565b612af481612ada565b8114612afe575f80fd5b50565b5f81359050612b0f81612aeb565b92915050565b5f819050919050565b612b2781612b15565b8114612b31575f80fd5b50565b5f81359050612b4281612b1e565b92915050565b5f8060408385031215612b5e57612b5d612ab3565b5b5f612b6b85828601612b01565b9250506020612b7c85828601612b34565b9150509250929050565b5f8115159050919050565b612b9a81612b86565b82525050565b5f602082019050612bb35f830184612b91565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612bf382612a42565b810181811067ffffffffffffffff82111715612c1257612c11612bbd565b5b80604052505050565b5f612c24612aaa565b9050612c308282612bea565b919050565b5f67ffffffffffffffff821115612c4f57612c4e612bbd565b5b602082029050602081019050919050565b5f80fd5b5f612c76612c7184612c35565b612c1b565b90508083825260208201905060208402830185811115612c9957612c98612c60565b5b835b81811015612cc25780612cae8882612b01565b845260208401935050602081019050612c9b565b5050509392505050565b5f82601f830112612ce057612cdf612bb9565b5b8135612cf0848260208601612c64565b91505092915050565b612d0281612b86565b8114612d0c575f80fd5b50565b5f81359050612d1d81612cf9565b92915050565b5f8060408385031215612d3957612d38612ab3565b5b5f83013567ffffffffffffffff811115612d5657612d55612ab7565b5b612d6285828601612ccc565b9250506020612d7385828601612d0f565b9150509250929050565b612d8681612b15565b82525050565b5f602082019050612d9f5f830184612d7d565b92915050565b5f805f60608486031215612dbc57612dbb612ab3565b5b5f612dc986828701612b01565b9350506020612dda86828701612b01565b9250506040612deb86828701612b34565b9150509250925092565b5f80fd5b5f8083601f840112612e0e57612e0d612bb9565b5b8235905067ffffffffffffffff811115612e2b57612e2a612df5565b5b602083019150836020820283011115612e4757612e46612c60565b5b9250929050565b5f805f60408486031215612e6557612e64612ab3565b5b5f84013567ffffffffffffffff811115612e8257612e81612ab7565b5b612e8e86828701612df9565b93509350506020612ea186828701612b34565b9150509250925092565b5f60ff82169050919050565b612ec081612eab565b82525050565b5f602082019050612ed95f830184612eb7565b92915050565b5f60208284031215612ef457612ef3612ab3565b5b5f612f0184828501612b01565b91505092915050565b5f8060408385031215612f2057612f1f612ab3565b5b5f612f2d85828601612b34565b9250506020612f3e85828601612b34565b9150509250929050565b5f819050919050565b5f612f6b612f66612f6184612abb565b612f48565b612abb565b9050919050565b5f612f7c82612f51565b9050919050565b5f612f8d82612f72565b9050919050565b612f9d81612f83565b82525050565b5f602082019050612fb65f830184612f94565b92915050565b5f8060408385031215612fd257612fd1612ab3565b5b5f612fdf85828601612b01565b9250506020612ff085828601612d0f565b9150509250929050565b5f6020828403121561300f5761300e612ab3565b5b5f61301c84828501612b34565b91505092915050565b61302e81612ada565b82525050565b5f6020820190506130475f830184613025565b92915050565b5f806040838503121561306357613062612ab3565b5b5f61307085828601612b01565b925050602061308185828601612b01565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806130cf57607f821691505b6020821081036130e2576130e161308b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61314c82612b15565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361317e5761317d613115565b5b600182019050919050565b5f8151905061319781612b1e565b92915050565b5f602082840312156131b2576131b1612ab3565b5b5f6131bf84828501613189565b91505092915050565b7f4e6f20746f6b656e7320746f20636c65617200000000000000000000000000005f82015250565b5f6131fc601283612a0a565b9150613207826131c8565b602082019050919050565b5f6020820190508181035f830152613229816131f0565b9050919050565b5f6040820190506132435f830185613025565b6132506020830184612d7d565b9392505050565b5f8151905061326581612cf9565b92915050565b5f602082840312156132805761327f612ab3565b5b5f61328d84828501613257565b91505092915050565b5f6132a082612b15565b91506132ab83612b15565b92508282019050808211156132c3576132c2613115565b5b92915050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f6132fd601683612a0a565b9150613308826132c9565b602082019050919050565b5f6020820190508181035f83015261332a816132f1565b9050919050565b5f61333b82612b15565b915061334683612b15565b925082820261335481612b15565b9150828204841483151761336b5761336a613115565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133a982612b15565b91506133b483612b15565b9250826133c4576133c3613372565b5b828204905092915050565b7f5377617020616d6f756e74206578636565647320636f6e74726163742062616c5f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f613429602483612a0a565b9150613434826133cf565b604082019050919050565b5f6020820190508181035f8301526134568161341d565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f613491601683612a0a565b915061349c8261345d565b602082019050919050565b5f6020820190508181035f8301526134be81613485565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61351f603983612a0a565b915061352a826134c5565b604082019050919050565b5f6020820190508181035f83015261354c81613513565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6135ad602583612a0a565b91506135b882613553565b604082019050919050565b5f6020820190508181035f8301526135da816135a1565b9050919050565b5f8160011c9050919050565b5f808291508390505b60018511156136365780860481111561361257613611613115565b5b60018516156136215780820291505b808102905061362f856135e1565b94506135f6565b94509492505050565b5f8261364e5760019050613709565b8161365b575f9050613709565b8160018114613671576002811461367b576136aa565b6001915050613709565b60ff84111561368d5761368c613115565b5b8360020a9150848211156136a4576136a3613115565b5b50613709565b5060208310610133831016604e8410600b84101617156136df5782820a9050838111156136da576136d9613115565b5b613709565b6136ec84848460016135ed565b9250905081840481111561370357613702613115565b5b81810290505b9392505050565b5f61371a82612b15565b915061372583612eab565b92506137527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461363f565b905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6137b4602683612a0a565b91506137bf8261375a565b604082019050919050565b5f6020820190508181035f8301526137e1816137a8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613842602483612a0a565b915061384d826137e8565b604082019050919050565b5f6020820190508181035f83015261386f81613836565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138d0602283612a0a565b91506138db82613876565b604082019050919050565b5f6020820190508181035f8301526138fd816138c4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613938602083612a0a565b915061394382613904565b602082019050919050565b5f6020820190508181035f8301526139658161392c565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6139a0601d83612a0a565b91506139ab8261396c565b602082019050919050565b5f6020820190508181035f8301526139cd81613994565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613a2e602583612a0a565b9150613a39826139d4565b604082019050919050565b5f6020820190508181035f830152613a5b81613a22565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613abc602383612a0a565b9150613ac782613a62565b604082019050919050565b5f6020820190508181035f830152613ae981613ab0565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613b24601683612a0a565b9150613b2f82613af0565b602082019050919050565b5f6020820190508181035f830152613b5181613b18565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613bb2603583612a0a565b9150613bbd82613b58565b604082019050919050565b5f6020820190508181035f830152613bdf81613ba6565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613c1a601383612a0a565b9150613c2582613be6565b602082019050919050565b5f6020820190508181035f830152613c4781613c0e565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613ca8603683612a0a565b9150613cb382613c4e565b604082019050919050565b5f6020820190508181035f830152613cd581613c9c565b9050919050565b5f613ce682612b15565b9150613cf183612b15565b9250828203905081811115613d0957613d08613115565b5b92915050565b5f81519050613d1d81612aeb565b92915050565b5f60208284031215613d3857613d37612ab3565b5b5f613d4584828501613d0f565b91505092915050565b5f819050919050565b5f613d71613d6c613d6784613d4e565b612f48565b612b15565b9050919050565b613d8181613d57565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613db981612ada565b82525050565b5f613dca8383613db0565b60208301905092915050565b5f602082019050919050565b5f613dec82613d87565b613df68185613d91565b9350613e0183613da1565b805f5b83811015613e31578151613e188882613dbf565b9750613e2383613dd6565b925050600181019050613e04565b5085935050505092915050565b5f60a082019050613e515f830188612d7d565b613e5e6020830187613d78565b8181036040830152613e708186613de2565b9050613e7f6060830185613025565b613e8c6080830184612d7d565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613ef0602683612a0a565b9150613efb82613e96565b604082019050919050565b5f6020820190508181035f830152613f1d81613ee4565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f613f7e602483612a0a565b9150613f8982613f24565b604082019050919050565b5f6020820190508181035f830152613fab81613f72565b905091905056fea26469706673582212202d9afab066e3e548afcff602e8b1a6faae78e15f21e877fd20294cee66afd0cb64736f6c63430008150033

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

0000000000000000000000004a48f81851a790b9cd50ea1aa06d2e7a7a70065a

-----Decoded View---------------
Arg [0] : wallet (address): 0x4A48f81851a790B9cd50eA1aa06D2e7A7a70065a

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004a48f81851a790b9cd50ea1aa06d2e7a7a70065a


Deployed Bytecode Sourcemap

9460:10082:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4485:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5416:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12067:273;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4805:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5625:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12792:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9906:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4705:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16638:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5928:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17105:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13022:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9542:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10241:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4921:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3297:103;;;;;;;;;;;;;:::i;:::-;;16020:193;;;;;;;;;;;;;:::i;:::-;;11745:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17468:668;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16405:225;;;;;;;;;;;;;:::i;:::-;;3067:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4593:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12348:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6174:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5056:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17325:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11530:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9980:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11627:110;;;;;;;;;;;;;:::i;:::-;;10313:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5257:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10281:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10125:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11897:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3545:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10058:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10203:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4485:100;4539:13;4572:5;4565:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4485:100;:::o;5416:201::-;5499:4;5516:13;5532:12;:10;:12::i;:::-;5516:28;;5555:32;5564:5;5571:7;5580:6;5555:8;:32::i;:::-;5605:4;5598:11;;;5416:201;;;;:::o;12067:273::-;3026:13;:11;:13::i;:::-;12163:9:::1;12158:175;12182:8;:15;12178:1;:19;12158:175;;;12254:8;12219:19;:32;12239:8;12248:1;12239:11;;;;;;;;:::i;:::-;;;;;;;;12219:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;12299:8;12308:1;12299:11;;;;;;;;:::i;:::-;;;;;;;;12282:39;;;12312:8;12282:39;;;;;;:::i;:::-;;;;;;;;12199:3;;;;;:::i;:::-;;;;12158:175;;;;12067:273:::0;;:::o;4805:108::-;4866:7;4893:12;;4886:19;;4805:108;:::o;5625:295::-;5756:4;5773:15;5791:12;:10;:12::i;:::-;5773:30;;5814:38;5830:4;5836:7;5845:6;5814:15;:38::i;:::-;5863:27;5873:4;5879:2;5883:6;5863:9;:27::i;:::-;5908:4;5901:11;;;5625:295;;;;;:::o;12792:222::-;3026:13;:11;:13::i;:::-;12888:9:::1;12883:124;12907:10;;:17;;12903:1;:21;12883:124;;;12975:10;;12986:1;12975:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12951:44;;12960:13;;;;;;;;;;;12951:44;;;12990:4;12951:44;;;;;;:::i;:::-;;;;;;;;12926:3;;;;;:::i;:::-;;;;12883:124;;;;12792:222:::0;;;:::o;9906:67::-;;;;:::o;4705:92::-;4763:5;4788:1;4781:8;;4705:92;:::o;16638:347::-;16730:14;;;;;;;;;;;16714:30;;:12;:10;:12::i;:::-;:30;;;16706:39;;;;;;16756:20;16786:12;16756:43;;16810:15;16828:13;:23;;;16860:4;16828:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16810:56;;16895:1;16885:7;:11;16877:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;16930:13;:22;;;16953:14;;;;;;;;;;;16969:7;16930:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16695:290;;16638:347;:::o;5928:238::-;6016:4;6033:13;6049:12;:10;:12::i;:::-;6033:28;;6072:64;6081:5;6088:7;6125:10;6097:25;6107:5;6114:7;6097:9;:25::i;:::-;:38;;;;:::i;:::-;6072:8;:64::i;:::-;6154:4;6147:11;;;5928:238;;;;:::o;17105:212::-;3026:13;:11;:13::i;:::-;17206:2:::1;17195:7;:13;;:31;;;;;17224:2;17212:8;:14;;17195:31;17187:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;17273:7;17264:6;:16;;;;17301:8;17291:7;:18;;;;17105:212:::0;;:::o;13022:126::-;13088:4;13112:19;:28;13132:7;13112:28;;;;;;;;;;;;;;;;;;;;;;;;;13105:35;;13022:126;;;:::o;9542:52::-;;;:::o;10241:31::-;;;;;;;;;;;;;:::o;4921:127::-;4995:7;5022:9;:18;5032:7;5022:18;;;;;;;;;;;;;;;;5015:25;;4921:127;;;:::o;3297:103::-;3026:13;:11;:13::i;:::-;3362:30:::1;3389:1;3362:18;:30::i;:::-;3297:103::o:0;16020:193::-;3026:13;:11;:13::i;:::-;16073:25:::1;16101:13;:11;:13::i;:::-;16073:41;;16148:17;16125:20;:40;;;;16188:17;16176:9;:29;;;;16062:151;16020:193::o:0;11745:144::-;3026:13;:11;:13::i;:::-;11877:4:::1;11835:31;:39;11867:6;11835:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11745:144:::0;;:::o;17468:668::-;17550:14;;;;;;;;;;;17534:30;;:12;:10;:12::i;:::-;:30;;;17526:39;;;;;;17576:25;17604:13;:11;:13::i;:::-;17576:41;;17628:23;17654:24;17672:4;17654:9;:24::i;:::-;17628:50;;17689:20;17737:3;17726:7;:14;17722:273;;17772:15;17757:30;;17722:273;;;17865:3;17855:7;17835:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;17820:48;;17902:15;17887:12;:30;17883:101;;;17953:15;17938:30;;17883:101;17722:273;18031:15;18015:12;:31;;18007:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;18098:30;18115:12;18098:16;:30::i;:::-;17515:621;;;17468:668;:::o;16405:225::-;16474:14;;;;;;;;;;;16458:30;;:12;:10;:12::i;:::-;:30;;;16450:39;;;;;;16532:1;16508:21;:25;16500:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16579:10;16571:28;;:51;16600:21;16571:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16405:225::o;3067:87::-;3113:7;3140:6;;;;;;;;;;;3133:13;;3067:87;:::o;4593:104::-;4649:13;4682:7;4675:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4593:104;:::o;12348:242::-;3026:13;:11;:13::i;:::-;12455::::1;;;;;;;;;;;12447:21;;:4;:21;;::::0;12439:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12541:41;12570:4;12576:5;12541:28;:41::i;:::-;12348:242:::0;;:::o;6174:436::-;6267:4;6284:13;6300:12;:10;:12::i;:::-;6284:28;;6323:24;6350:25;6360:5;6367:7;6350:9;:25::i;:::-;6323:52;;6414:15;6394:16;:35;;6386:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6507:60;6516:5;6523:7;6551:15;6532:16;:34;6507:8;:60::i;:::-;6598:4;6591:11;;;;6174:436;;;;:::o;5056:193::-;5135:4;5152:13;5168:12;:10;:12::i;:::-;5152:28;;5191;5201:5;5208:2;5212:6;5191:9;:28::i;:::-;5237:4;5230:11;;;5056:193;;;;:::o;17325:135::-;3026:13;:11;:13::i;:::-;17441:10:::1;:8;:10::i;:::-;17435:2;:16;;;;:::i;:::-;17424:7;:28;;;;:::i;:::-;17403:18;:49;;;;17325:135:::0;:::o;11530:89::-;3026:13;:11;:13::i;:::-;11606:5:::1;11590:13;;:21;;;;;;;;;;;;;;;;;;11530:89:::0;:::o;9980:71::-;;;;:::o;11627:110::-;3026:13;:11;:13::i;:::-;11696:4:::1;11682:11;;:18;;;;;;;;;;;;;;;;;;11725:4;11711:11;;:18;;;;;;;;;;;;;;;;;;11627:110::o:0;10313:26::-;;;;:::o;5257:151::-;5346:7;5373:11;:18;5385:5;5373:18;;;;;;;;;;;;;;;:27;5392:7;5373:27;;;;;;;;;;;;;;;;5366:34;;5257:151;;;;:::o;10281:25::-;;;;:::o;10125:69::-;;;;:::o;11897:162::-;3026:13;:11;:13::i;:::-;11998:5:::1;11967:19;:28;11987:7;11967:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;12036:7;12019:32;;;12045:5;12019:32;;;;;;:::i;:::-;;;;;;;;11897:162:::0;:::o;3545:201::-;3026:13;:11;:13::i;:::-;3654:1:::1;3634:22;;:8;:22;;::::0;3626:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3710:28;3729:8;3710:18;:28::i;:::-;3545:201:::0;:::o;10058:60::-;;;;:::o;10203:31::-;;;;;;;;;;;;;:::o;146:98::-;199:7;226:10;219:17;;146:98;:::o;8347:380::-;8500:1;8483:19;;:5;:19;;;8475:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8581:1;8562:21;;:7;:21;;;8554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8665:6;8635:11;:18;8647:5;8635:18;;;;;;;;;;;;;;;:27;8654:7;8635:27;;;;;;;;;;;;;;;:36;;;;8703:7;8687:32;;8696:5;8687:32;;;8712:6;8687:32;;;;;;:::i;:::-;;;;;;;;8347:380;;;:::o;3162:127::-;3232:12;:10;:12::i;:::-;3221:23;;:7;:5;:7::i;:::-;:23;;;3213:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3162:127::o;8735:453::-;8870:24;8897:25;8907:5;8914:7;8897:9;:25::i;:::-;8870:52;;8957:17;8937:16;:37;8933:248;;9019:6;8999:16;:26;;8991:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9103:51;9112:5;9119:7;9147:6;9128:16;:25;9103:8;:51::i;:::-;8933:248;8859:329;8735:453;;;:::o;13156:2366::-;13272:1;13256:18;;:4;:18;;;13248:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13349:1;13335:16;;:2;:16;;;13327:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13418:1;13408:6;:11;13404:93;;13436:28;13452:4;13458:2;13462:1;13436:15;:28::i;:::-;13479:7;;13404:93;13527:7;:5;:7::i;:::-;13519:15;;:4;:15;;;;:32;;;;;13544:7;:5;:7::i;:::-;13538:13;;:2;:13;;;;13519:32;:52;;;;;13569:1;13555:16;;:2;:16;;;;13519:52;:77;;;;;13589:6;13575:21;;:2;:21;;;;13519:77;:90;;;;;13601:8;;;;;;;;;;;13600:9;13519:90;13515:949;;;13637:11;;;;;;;;;;;13632:148;;13681:19;:25;13701:4;13681:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;13710:19;:23;13730:2;13710:23;;;;;;;;;;;;;;;;;;;;;;;;;13681:52;13673:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;13632:148;13829:12;13798:22;:28;13821:4;13798:28;;;;;;;;;;;;;;;:43;;;;13864:25;:31;13890:4;13864:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;13900:31;:35;13932:2;13900:35;;;;;;;;;;;;;;;;;;;;;;;;;13899:36;13864:71;13860:588;;;13996:20;;13986:6;:30;;13978:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;14131:9;;14114:13;14124:2;14114:9;:13::i;:::-;14105:6;:22;;;;:::i;:::-;:35;;14097:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13860:588;;;14213:25;:29;14239:2;14213:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14247:31;:37;14279:4;14247:37;;;;;;;;;;;;;;;;;;;;;;;;;14246:38;14213:71;14209:239;;;14349:20;;14339:6;:30;;14331:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;14209:239;13860:588;13515:949;14476:28;14507:24;14525:4;14507:9;:24::i;:::-;14476:55;;14544:12;14582:1;14559:20;:24;14544:39;;14600:7;:22;;;;;14611:11;;;;;;;;;;;14600:22;:35;;;;;14627:8;;;;;;;;;;;14626:9;14600:35;:71;;;;;14640:25;:31;14666:4;14640:31;;;;;;;;;;;;;;;;;;;;;;;;;14639:32;14600:71;:101;;;;;14676:19;:25;14696:4;14676:25;;;;;;;;;;;;;;;;;;;;;;;;;14675:26;14600:101;:129;;;;;14706:19;:23;14726:2;14706:23;;;;;;;;;;;;;;;;;;;;;;;;;14705:24;14600:129;14596:239;;;14757:4;14746:8;;:15;;;;;;;;;;;;;;;;;;14776:16;14785:6;14776:8;:16::i;:::-;14818:5;14807:8;;:16;;;;;;;;;;;;;;;;;;14596:239;14848:24;14867:4;14848:18;:24::i;:::-;14845:93;;;14892:30;14917:4;14892:24;:30::i;:::-;14845:93;14948:12;14963:8;;;;;;;;;;;14948:23;;14986:19;:25;15006:4;14986:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;15015:19;:23;15035:2;15015:23;;;;;;;;;;;;;;;;;;;;;;;;;14986:52;14982:100;;;15065:5;15055:15;;14982:100;15094:12;15127:7;15123:348;;;15155:25;:29;15181:2;15155:29;;;;;;;;;;;;;;;;;;;;;;;;;15151:193;;;15212:28;15236:3;15212:19;15223:7;;15212:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15205:35;;15151:193;;;15301:27;15324:3;15301:18;15312:6;;15301;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;15294:34;;15151:193;15367:1;15360:4;:8;15356:83;;;15385:42;15401:4;15415;15422;15385:15;:42::i;:::-;15356:83;15459:4;15449:14;;;;;:::i;:::-;;;15123:348;15481:33;15497:4;15503:2;15507:6;15481:15;:33::i;:::-;13235:2287;;;;13156:2366;;;;:::o;3754:191::-;3828:16;3847:6;;;;;;;;;;;3828:25;;3873:8;3864:6;;:17;;;;;;;;;;;;;;;;;;3928:8;3897:40;;3918:8;3897:40;;;;;;;;;;;;3817:128;3754:191;:::o;15530:482::-;15598:21;15636:1;15622:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15598:40;;15667:4;15649;15654:1;15649:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15693:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15683:4;15688:1;15683:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;15729:63;15746:4;15761:16;15780:11;15729:8;:63::i;:::-;15805:16;:67;;;15887:11;15913:1;15929:4;15948:15;;;;;;;;;;;15978;15805:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15585:427;15530:482;:::o;12598:186::-;12715:5;12681:25;:31;12707:4;12681:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12770:5;12736:40;;12764:4;12736:40;;;;;;;;;;;;12598:186;;:::o;3412:125::-;3455:7;3475:14;3492:13;:11;:13::i;:::-;3475:30;;3523:6;3516:13;;;3412:125;:::o;6618:675::-;6765:1;6749:18;;:4;:18;;;6741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6842:1;6828:16;;:2;:16;;;6820:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6897:38;6918:4;6924:2;6928:6;6897:20;:38::i;:::-;6948:19;6970:9;:15;6980:4;6970:15;;;;;;;;;;;;;;;;6948:37;;7019:6;7004:11;:21;;6996:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7136:6;7122:11;:20;7104:9;:15;7114:4;7104:15;;;;;;;;;;;;;;;:38;;;;7174:6;7157:9;:13;7167:2;7157:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;7224:2;7209:26;;7218:4;7209:26;;;7228:6;7209:26;;;;;;:::i;:::-;;;;;;;;7248:37;7268:4;7274:2;7278:6;7248:19;:37::i;:::-;6730:563;6618:675;;;:::o;18146:1393::-;18199:23;18225:24;18243:4;18225:9;:24::i;:::-;18199:50;;18260:20;18317:1;18298:15;:20;18294:59;;18335:7;;;;18294:59;18385:1;18373:7;;18366:6;;:14;;;;:::i;:::-;18365:21;18361:1130;;18422:1;18404:15;:19;:59;;;;;18445:18;;18427:15;:36;18404:59;18401:443;;;18495:15;18480:30;;18401:443;;;18552:21;18576:28;18600:3;18576:19;18587:7;;18576:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18552:52;;18629:13;18619:23;;;;;:::i;:::-;;;18670:18;;18661:6;:27;18657:176;;;18724:18;;18709:33;;18657:176;;;18811:6;18796:21;;18657:176;18537:307;18401:443;18361:1130;;;18898:1;18880:15;:19;:66;;;;;18921:25;18944:1;18921:18;;:22;;:25;;;;:::i;:::-;18903:15;:43;18880:66;18877:607;;;18963:7;;;;18877:607;19018:1;19000:15;:19;:66;;;;;19041:25;19064:1;19041:18;;:22;;:25;;;;:::i;:::-;19023:15;:43;19000:66;:106;;;;;19088:18;;19070:15;:36;19000:106;18996:488;;;19138:25;19161:1;19138:18;;:22;;:25;;;;:::i;:::-;19123:40;;18996:488;;;19205:21;19229:28;19253:3;19229:19;19240:7;;19229:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;19205:52;;19282:13;19272:23;;;;;:::i;:::-;;;19323:18;;19314:6;:27;19310:163;;;19377:18;;19362:33;;19310:163;;;19451:6;19436:21;;19310:163;19190:294;18996:488;18361:1130;19501:30;19518:12;19501:16;:30::i;:::-;18188:1351;;18146:1393;;:::o;16225:172::-;16307:41;16317:22;:30;16340:6;16317:30;;;;;;;;;;;;;;;;16307:9;:41::i;:::-;16299:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16225:172;:::o;1716:98::-;1774:7;1805:1;1801;:5;;;;:::i;:::-;1794:12;;1716:98;;;;:::o;1822:::-;1880:7;1911:1;1907;:5;;;;:::i;:::-;1900:12;;1822:98;;;;:::o;3953:119::-;3998:7;4040:1;4024:18;;:6;;;;;;;;;;;:18;;;:40;;4058:6;;;;;;;;;;;4024:40;;;4045:10;;;;;;;;;;;4024:40;4017:47;;3953:119;:::o;9196:125::-;;;;:::o;9329:124::-;;;;:::o;16993:104::-;17047:4;17077:12;17070:4;:19;17063:26;;16993:104;;;:::o;7:99:3:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3569:180;3617:77;3614:1;3607:88;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3755:281;3838:27;3860:4;3838:27;:::i;:::-;3830:6;3826:40;3968:6;3956:10;3953:22;3932:18;3920:10;3917:34;3914:62;3911:88;;;3979:18;;:::i;:::-;3911:88;4019:10;4015:2;4008:22;3798:238;3755:281;;:::o;4042:129::-;4076:6;4103:20;;:::i;:::-;4093:30;;4132:33;4160:4;4152:6;4132:33;:::i;:::-;4042:129;;;:::o;4177:311::-;4254:4;4344:18;4336:6;4333:30;4330:56;;;4366:18;;:::i;:::-;4330:56;4416:4;4408:6;4404:17;4396:25;;4476:4;4470;4466:15;4458:23;;4177:311;;;:::o;4494:117::-;4603:1;4600;4593:12;4634:710;4730:5;4755:81;4771:64;4828:6;4771:64;:::i;:::-;4755:81;:::i;:::-;4746:90;;4856:5;4885:6;4878:5;4871:21;4919:4;4912:5;4908:16;4901:23;;4972:4;4964:6;4960:17;4952:6;4948:30;5001:3;4993:6;4990:15;4987:122;;;5020:79;;:::i;:::-;4987:122;5135:6;5118:220;5152:6;5147:3;5144:15;5118:220;;;5227:3;5256:37;5289:3;5277:10;5256:37;:::i;:::-;5251:3;5244:50;5323:4;5318:3;5314:14;5307:21;;5194:144;5178:4;5173:3;5169:14;5162:21;;5118:220;;;5122:21;4736:608;;4634:710;;;;;:::o;5367:370::-;5438:5;5487:3;5480:4;5472:6;5468:17;5464:27;5454:122;;5495:79;;:::i;:::-;5454:122;5612:6;5599:20;5637:94;5727:3;5719:6;5712:4;5704:6;5700:17;5637:94;:::i;:::-;5628:103;;5444:293;5367:370;;;;:::o;5743:116::-;5813:21;5828:5;5813:21;:::i;:::-;5806:5;5803:32;5793:60;;5849:1;5846;5839:12;5793:60;5743:116;:::o;5865:133::-;5908:5;5946:6;5933:20;5924:29;;5962:30;5986:5;5962:30;:::i;:::-;5865:133;;;;:::o;6004:678::-;6094:6;6102;6151:2;6139:9;6130:7;6126:23;6122:32;6119:119;;;6157:79;;:::i;:::-;6119:119;6305:1;6294:9;6290:17;6277:31;6335:18;6327:6;6324:30;6321:117;;;6357:79;;:::i;:::-;6321:117;6462:78;6532:7;6523:6;6512:9;6508:22;6462:78;:::i;:::-;6452:88;;6248:302;6589:2;6615:50;6657:7;6648:6;6637:9;6633:22;6615:50;:::i;:::-;6605:60;;6560:115;6004:678;;;;;:::o;6688:118::-;6775:24;6793:5;6775:24;:::i;:::-;6770:3;6763:37;6688:118;;:::o;6812:222::-;6905:4;6943:2;6932:9;6928:18;6920:26;;6956:71;7024:1;7013:9;7009:17;7000:6;6956:71;:::i;:::-;6812:222;;;;:::o;7040:619::-;7117:6;7125;7133;7182:2;7170:9;7161:7;7157:23;7153:32;7150:119;;;7188:79;;:::i;:::-;7150:119;7308:1;7333:53;7378:7;7369:6;7358:9;7354:22;7333:53;:::i;:::-;7323:63;;7279:117;7435:2;7461:53;7506:7;7497:6;7486:9;7482:22;7461:53;:::i;:::-;7451:63;;7406:118;7563:2;7589:53;7634:7;7625:6;7614:9;7610:22;7589:53;:::i;:::-;7579:63;;7534:118;7040:619;;;;;:::o;7665:117::-;7774:1;7771;7764:12;7805:568;7878:8;7888:6;7938:3;7931:4;7923:6;7919:17;7915:27;7905:122;;7946:79;;:::i;:::-;7905:122;8059:6;8046:20;8036:30;;8089:18;8081:6;8078:30;8075:117;;;8111:79;;:::i;:::-;8075:117;8225:4;8217:6;8213:17;8201:29;;8279:3;8271:4;8263:6;8259:17;8249:8;8245:32;8242:41;8239:128;;;8286:79;;:::i;:::-;8239:128;7805:568;;;;;:::o;8379:704::-;8474:6;8482;8490;8539:2;8527:9;8518:7;8514:23;8510:32;8507:119;;;8545:79;;:::i;:::-;8507:119;8693:1;8682:9;8678:17;8665:31;8723:18;8715:6;8712:30;8709:117;;;8745:79;;:::i;:::-;8709:117;8858:80;8930:7;8921:6;8910:9;8906:22;8858:80;:::i;:::-;8840:98;;;;8636:312;8987:2;9013:53;9058:7;9049:6;9038:9;9034:22;9013:53;:::i;:::-;9003:63;;8958:118;8379:704;;;;;:::o;9089:86::-;9124:7;9164:4;9157:5;9153:16;9142:27;;9089:86;;;:::o;9181:112::-;9264:22;9280:5;9264:22;:::i;:::-;9259:3;9252:35;9181:112;;:::o;9299:214::-;9388:4;9426:2;9415:9;9411:18;9403:26;;9439:67;9503:1;9492:9;9488:17;9479:6;9439:67;:::i;:::-;9299:214;;;;:::o;9519:329::-;9578:6;9627:2;9615:9;9606:7;9602:23;9598:32;9595:119;;;9633:79;;:::i;:::-;9595:119;9753:1;9778:53;9823:7;9814:6;9803:9;9799:22;9778:53;:::i;:::-;9768:63;;9724:117;9519:329;;;;:::o;9854:474::-;9922:6;9930;9979:2;9967:9;9958:7;9954:23;9950:32;9947:119;;;9985:79;;:::i;:::-;9947:119;10105:1;10130:53;10175:7;10166:6;10155:9;10151:22;10130:53;:::i;:::-;10120:63;;10076:117;10232:2;10258:53;10303:7;10294:6;10283:9;10279:22;10258:53;:::i;:::-;10248:63;;10203:118;9854:474;;;;;:::o;10334:60::-;10362:3;10383:5;10376:12;;10334:60;;;:::o;10400:142::-;10450:9;10483:53;10501:34;10510:24;10528:5;10510:24;:::i;:::-;10501:34;:::i;:::-;10483:53;:::i;:::-;10470:66;;10400:142;;;:::o;10548:126::-;10598:9;10631:37;10662:5;10631:37;:::i;:::-;10618:50;;10548:126;;;:::o;10680:153::-;10757:9;10790:37;10821:5;10790:37;:::i;:::-;10777:50;;10680:153;;;:::o;10839:185::-;10953:64;11011:5;10953:64;:::i;:::-;10948:3;10941:77;10839:185;;:::o;11030:276::-;11150:4;11188:2;11177:9;11173:18;11165:26;;11201:98;11296:1;11285:9;11281:17;11272:6;11201:98;:::i;:::-;11030:276;;;;:::o;11312:468::-;11377:6;11385;11434:2;11422:9;11413:7;11409:23;11405:32;11402:119;;;11440:79;;:::i;:::-;11402:119;11560:1;11585:53;11630:7;11621:6;11610:9;11606:22;11585:53;:::i;:::-;11575:63;;11531:117;11687:2;11713:50;11755:7;11746:6;11735:9;11731:22;11713:50;:::i;:::-;11703:60;;11658:115;11312:468;;;;;:::o;11786:329::-;11845:6;11894:2;11882:9;11873:7;11869:23;11865:32;11862:119;;;11900:79;;:::i;:::-;11862:119;12020:1;12045:53;12090:7;12081:6;12070:9;12066:22;12045:53;:::i;:::-;12035:63;;11991:117;11786:329;;;;:::o;12121:118::-;12208:24;12226:5;12208:24;:::i;:::-;12203:3;12196:37;12121:118;;:::o;12245:222::-;12338:4;12376:2;12365:9;12361:18;12353:26;;12389:71;12457:1;12446:9;12442:17;12433:6;12389:71;:::i;:::-;12245:222;;;;:::o;12473:474::-;12541:6;12549;12598:2;12586:9;12577:7;12573:23;12569:32;12566:119;;;12604:79;;:::i;:::-;12566:119;12724:1;12749:53;12794:7;12785:6;12774:9;12770:22;12749:53;:::i;:::-;12739:63;;12695:117;12851:2;12877:53;12922:7;12913:6;12902:9;12898:22;12877:53;:::i;:::-;12867:63;;12822:118;12473:474;;;;;:::o;12953:180::-;13001:77;12998:1;12991:88;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13139:320;13183:6;13220:1;13214:4;13210:12;13200:22;;13267:1;13261:4;13257:12;13288:18;13278:81;;13344:4;13336:6;13332:17;13322:27;;13278:81;13406:2;13398:6;13395:14;13375:18;13372:38;13369:84;;13425:18;;:::i;:::-;13369:84;13190:269;13139:320;;;:::o;13465:180::-;13513:77;13510:1;13503:88;13610:4;13607:1;13600:15;13634:4;13631:1;13624:15;13651:180;13699:77;13696:1;13689:88;13796:4;13793:1;13786:15;13820:4;13817:1;13810:15;13837:233;13876:3;13899:24;13917:5;13899:24;:::i;:::-;13890:33;;13945:66;13938:5;13935:77;13932:103;;14015:18;;:::i;:::-;13932:103;14062:1;14055:5;14051:13;14044:20;;13837:233;;;:::o;14076:143::-;14133:5;14164:6;14158:13;14149:22;;14180:33;14207:5;14180:33;:::i;:::-;14076:143;;;;:::o;14225:351::-;14295:6;14344:2;14332:9;14323:7;14319:23;14315:32;14312:119;;;14350:79;;:::i;:::-;14312:119;14470:1;14495:64;14551:7;14542:6;14531:9;14527:22;14495:64;:::i;:::-;14485:74;;14441:128;14225:351;;;;:::o;14582:168::-;14722:20;14718:1;14710:6;14706:14;14699:44;14582:168;:::o;14756:366::-;14898:3;14919:67;14983:2;14978:3;14919:67;:::i;:::-;14912:74;;14995:93;15084:3;14995:93;:::i;:::-;15113:2;15108:3;15104:12;15097:19;;14756:366;;;:::o;15128:419::-;15294:4;15332:2;15321:9;15317:18;15309:26;;15381:9;15375:4;15371:20;15367:1;15356:9;15352:17;15345:47;15409:131;15535:4;15409:131;:::i;:::-;15401:139;;15128:419;;;:::o;15553:332::-;15674:4;15712:2;15701:9;15697:18;15689:26;;15725:71;15793:1;15782:9;15778:17;15769:6;15725:71;:::i;:::-;15806:72;15874:2;15863:9;15859:18;15850:6;15806:72;:::i;:::-;15553:332;;;;;:::o;15891:137::-;15945:5;15976:6;15970:13;15961:22;;15992:30;16016:5;15992:30;:::i;:::-;15891:137;;;;:::o;16034:345::-;16101:6;16150:2;16138:9;16129:7;16125:23;16121:32;16118:119;;;16156:79;;:::i;:::-;16118:119;16276:1;16301:61;16354:7;16345:6;16334:9;16330:22;16301:61;:::i;:::-;16291:71;;16247:125;16034:345;;;;:::o;16385:191::-;16425:3;16444:20;16462:1;16444:20;:::i;:::-;16439:25;;16478:20;16496:1;16478:20;:::i;:::-;16473:25;;16521:1;16518;16514:9;16507:16;;16542:3;16539:1;16536:10;16533:36;;;16549:18;;:::i;:::-;16533:36;16385:191;;;;:::o;16582:172::-;16722:24;16718:1;16710:6;16706:14;16699:48;16582:172;:::o;16760:366::-;16902:3;16923:67;16987:2;16982:3;16923:67;:::i;:::-;16916:74;;16999:93;17088:3;16999:93;:::i;:::-;17117:2;17112:3;17108:12;17101:19;;16760:366;;;:::o;17132:419::-;17298:4;17336:2;17325:9;17321:18;17313:26;;17385:9;17379:4;17375:20;17371:1;17360:9;17356:17;17349:47;17413:131;17539:4;17413:131;:::i;:::-;17405:139;;17132:419;;;:::o;17557:410::-;17597:7;17620:20;17638:1;17620:20;:::i;:::-;17615:25;;17654:20;17672:1;17654:20;:::i;:::-;17649:25;;17709:1;17706;17702:9;17731:30;17749:11;17731:30;:::i;:::-;17720:41;;17910:1;17901:7;17897:15;17894:1;17891:22;17871:1;17864:9;17844:83;17821:139;;17940:18;;:::i;:::-;17821:139;17605:362;17557:410;;;;:::o;17973:180::-;18021:77;18018:1;18011:88;18118:4;18115:1;18108:15;18142:4;18139:1;18132:15;18159:185;18199:1;18216:20;18234:1;18216:20;:::i;:::-;18211:25;;18250:20;18268:1;18250:20;:::i;:::-;18245:25;;18289:1;18279:35;;18294:18;;:::i;:::-;18279:35;18336:1;18333;18329:9;18324:14;;18159:185;;;;:::o;18350:223::-;18490:34;18486:1;18478:6;18474:14;18467:58;18559:6;18554:2;18546:6;18542:15;18535:31;18350:223;:::o;18579:366::-;18721:3;18742:67;18806:2;18801:3;18742:67;:::i;:::-;18735:74;;18818:93;18907:3;18818:93;:::i;:::-;18936:2;18931:3;18927:12;18920:19;;18579:366;;;:::o;18951:419::-;19117:4;19155:2;19144:9;19140:18;19132:26;;19204:9;19198:4;19194:20;19190:1;19179:9;19175:17;19168:47;19232:131;19358:4;19232:131;:::i;:::-;19224:139;;18951:419;;;:::o;19376:172::-;19516:24;19512:1;19504:6;19500:14;19493:48;19376:172;:::o;19554:366::-;19696:3;19717:67;19781:2;19776:3;19717:67;:::i;:::-;19710:74;;19793:93;19882:3;19793:93;:::i;:::-;19911:2;19906:3;19902:12;19895:19;;19554:366;;;:::o;19926:419::-;20092:4;20130:2;20119:9;20115:18;20107:26;;20179:9;20173:4;20169:20;20165:1;20154:9;20150:17;20143:47;20207:131;20333:4;20207:131;:::i;:::-;20199:139;;19926:419;;;:::o;20351:244::-;20491:34;20487:1;20479:6;20475:14;20468:58;20560:27;20555:2;20547:6;20543:15;20536:52;20351:244;:::o;20601:366::-;20743:3;20764:67;20828:2;20823:3;20764:67;:::i;:::-;20757:74;;20840:93;20929:3;20840:93;:::i;:::-;20958:2;20953:3;20949:12;20942:19;;20601:366;;;:::o;20973:419::-;21139:4;21177:2;21166:9;21162:18;21154:26;;21226:9;21220:4;21216:20;21212:1;21201:9;21197:17;21190:47;21254:131;21380:4;21254:131;:::i;:::-;21246:139;;20973:419;;;:::o;21398:224::-;21538:34;21534:1;21526:6;21522:14;21515:58;21607:7;21602:2;21594:6;21590:15;21583:32;21398:224;:::o;21628:366::-;21770:3;21791:67;21855:2;21850:3;21791:67;:::i;:::-;21784:74;;21867:93;21956:3;21867:93;:::i;:::-;21985:2;21980:3;21976:12;21969:19;;21628:366;;;:::o;22000:419::-;22166:4;22204:2;22193:9;22189:18;22181:26;;22253:9;22247:4;22243:20;22239:1;22228:9;22224:17;22217:47;22281:131;22407:4;22281:131;:::i;:::-;22273:139;;22000:419;;;:::o;22425:102::-;22467:8;22514:5;22511:1;22507:13;22486:34;;22425:102;;;:::o;22533:848::-;22594:5;22601:4;22625:6;22616:15;;22649:5;22640:14;;22663:712;22684:1;22674:8;22671:15;22663:712;;;22779:4;22774:3;22770:14;22764:4;22761:24;22758:50;;;22788:18;;:::i;:::-;22758:50;22838:1;22828:8;22824:16;22821:451;;;23253:4;23246:5;23242:16;23233:25;;22821:451;23303:4;23297;23293:15;23285:23;;23333:32;23356:8;23333:32;:::i;:::-;23321:44;;22663:712;;;22533:848;;;;;;;:::o;23387:1073::-;23441:5;23632:8;23622:40;;23653:1;23644:10;;23655:5;;23622:40;23681:4;23671:36;;23698:1;23689:10;;23700:5;;23671:36;23767:4;23815:1;23810:27;;;;23851:1;23846:191;;;;23760:277;;23810:27;23828:1;23819:10;;23830:5;;;23846:191;23891:3;23881:8;23878:17;23875:43;;;23898:18;;:::i;:::-;23875:43;23947:8;23944:1;23940:16;23931:25;;23982:3;23975:5;23972:14;23969:40;;;23989:18;;:::i;:::-;23969:40;24022:5;;;23760:277;;24146:2;24136:8;24133:16;24127:3;24121:4;24118:13;24114:36;24096:2;24086:8;24083:16;24078:2;24072:4;24069:12;24065:35;24049:111;24046:246;;;24202:8;24196:4;24192:19;24183:28;;24237:3;24230:5;24227:14;24224:40;;;24244:18;;:::i;:::-;24224:40;24277:5;;24046:246;24317:42;24355:3;24345:8;24339:4;24336:1;24317:42;:::i;:::-;24302:57;;;;24391:4;24386:3;24382:14;24375:5;24372:25;24369:51;;;24400:18;;:::i;:::-;24369:51;24449:4;24442:5;24438:16;24429:25;;23387:1073;;;;;;:::o;24466:281::-;24524:5;24548:23;24566:4;24548:23;:::i;:::-;24540:31;;24592:25;24608:8;24592:25;:::i;:::-;24580:37;;24636:104;24673:66;24663:8;24657:4;24636:104;:::i;:::-;24627:113;;24466:281;;;;:::o;24753:225::-;24893:34;24889:1;24881:6;24877:14;24870:58;24962:8;24957:2;24949:6;24945:15;24938:33;24753:225;:::o;24984:366::-;25126:3;25147:67;25211:2;25206:3;25147:67;:::i;:::-;25140:74;;25223:93;25312:3;25223:93;:::i;:::-;25341:2;25336:3;25332:12;25325:19;;24984:366;;;:::o;25356:419::-;25522:4;25560:2;25549:9;25545:18;25537:26;;25609:9;25603:4;25599:20;25595:1;25584:9;25580:17;25573:47;25637:131;25763:4;25637:131;:::i;:::-;25629:139;;25356:419;;;:::o;25781:223::-;25921:34;25917:1;25909:6;25905:14;25898:58;25990:6;25985:2;25977:6;25973:15;25966:31;25781:223;:::o;26010:366::-;26152:3;26173:67;26237:2;26232:3;26173:67;:::i;:::-;26166:74;;26249:93;26338:3;26249:93;:::i;:::-;26367:2;26362:3;26358:12;26351:19;;26010:366;;;:::o;26382:419::-;26548:4;26586:2;26575:9;26571:18;26563:26;;26635:9;26629:4;26625:20;26621:1;26610:9;26606:17;26599:47;26663:131;26789:4;26663:131;:::i;:::-;26655:139;;26382:419;;;:::o;26807:221::-;26947:34;26943:1;26935:6;26931:14;26924:58;27016:4;27011:2;27003:6;26999:15;26992:29;26807:221;:::o;27034:366::-;27176:3;27197:67;27261:2;27256:3;27197:67;:::i;:::-;27190:74;;27273:93;27362:3;27273:93;:::i;:::-;27391:2;27386:3;27382:12;27375:19;;27034:366;;;:::o;27406:419::-;27572:4;27610:2;27599:9;27595:18;27587:26;;27659:9;27653:4;27649:20;27645:1;27634:9;27630:17;27623:47;27687:131;27813:4;27687:131;:::i;:::-;27679:139;;27406:419;;;:::o;27831:182::-;27971:34;27967:1;27959:6;27955:14;27948:58;27831:182;:::o;28019:366::-;28161:3;28182:67;28246:2;28241:3;28182:67;:::i;:::-;28175:74;;28258:93;28347:3;28258:93;:::i;:::-;28376:2;28371:3;28367:12;28360:19;;28019:366;;;:::o;28391:419::-;28557:4;28595:2;28584:9;28580:18;28572:26;;28644:9;28638:4;28634:20;28630:1;28619:9;28615:17;28608:47;28672:131;28798:4;28672:131;:::i;:::-;28664:139;;28391:419;;;:::o;28816:179::-;28956:31;28952:1;28944:6;28940:14;28933:55;28816:179;:::o;29001:366::-;29143:3;29164:67;29228:2;29223:3;29164:67;:::i;:::-;29157:74;;29240:93;29329:3;29240:93;:::i;:::-;29358:2;29353:3;29349:12;29342:19;;29001:366;;;:::o;29373:419::-;29539:4;29577:2;29566:9;29562:18;29554:26;;29626:9;29620:4;29616:20;29612:1;29601:9;29597:17;29590:47;29654:131;29780:4;29654:131;:::i;:::-;29646:139;;29373:419;;;:::o;29798:224::-;29938:34;29934:1;29926:6;29922:14;29915:58;30007:7;30002:2;29994:6;29990:15;29983:32;29798:224;:::o;30028:366::-;30170:3;30191:67;30255:2;30250:3;30191:67;:::i;:::-;30184:74;;30267:93;30356:3;30267:93;:::i;:::-;30385:2;30380:3;30376:12;30369:19;;30028:366;;;:::o;30400:419::-;30566:4;30604:2;30593:9;30589:18;30581:26;;30653:9;30647:4;30643:20;30639:1;30628:9;30624:17;30617:47;30681:131;30807:4;30681:131;:::i;:::-;30673:139;;30400:419;;;:::o;30825:222::-;30965:34;30961:1;30953:6;30949:14;30942:58;31034:5;31029:2;31021:6;31017:15;31010:30;30825:222;:::o;31053:366::-;31195:3;31216:67;31280:2;31275:3;31216:67;:::i;:::-;31209:74;;31292:93;31381:3;31292:93;:::i;:::-;31410:2;31405:3;31401:12;31394:19;;31053:366;;;:::o;31425:419::-;31591:4;31629:2;31618:9;31614:18;31606:26;;31678:9;31672:4;31668:20;31664:1;31653:9;31649:17;31642:47;31706:131;31832:4;31706:131;:::i;:::-;31698:139;;31425:419;;;:::o;31850:172::-;31990:24;31986:1;31978:6;31974:14;31967:48;31850:172;:::o;32028:366::-;32170:3;32191:67;32255:2;32250:3;32191:67;:::i;:::-;32184:74;;32267:93;32356:3;32267:93;:::i;:::-;32385:2;32380:3;32376:12;32369:19;;32028:366;;;:::o;32400:419::-;32566:4;32604:2;32593:9;32589:18;32581:26;;32653:9;32647:4;32643:20;32639:1;32628:9;32624:17;32617:47;32681:131;32807:4;32681:131;:::i;:::-;32673:139;;32400:419;;;:::o;32825:240::-;32965:34;32961:1;32953:6;32949:14;32942:58;33034:23;33029:2;33021:6;33017:15;33010:48;32825:240;:::o;33071:366::-;33213:3;33234:67;33298:2;33293:3;33234:67;:::i;:::-;33227:74;;33310:93;33399:3;33310:93;:::i;:::-;33428:2;33423:3;33419:12;33412:19;;33071:366;;;:::o;33443:419::-;33609:4;33647:2;33636:9;33632:18;33624:26;;33696:9;33690:4;33686:20;33682:1;33671:9;33667:17;33660:47;33724:131;33850:4;33724:131;:::i;:::-;33716:139;;33443:419;;;:::o;33868:169::-;34008:21;34004:1;33996:6;33992:14;33985:45;33868:169;:::o;34043:366::-;34185:3;34206:67;34270:2;34265:3;34206:67;:::i;:::-;34199:74;;34282:93;34371:3;34282:93;:::i;:::-;34400:2;34395:3;34391:12;34384:19;;34043:366;;;:::o;34415:419::-;34581:4;34619:2;34608:9;34604:18;34596:26;;34668:9;34662:4;34658:20;34654:1;34643:9;34639:17;34632:47;34696:131;34822:4;34696:131;:::i;:::-;34688:139;;34415:419;;;:::o;34840:241::-;34980:34;34976:1;34968:6;34964:14;34957:58;35049:24;35044:2;35036:6;35032:15;35025:49;34840:241;:::o;35087:366::-;35229:3;35250:67;35314:2;35309:3;35250:67;:::i;:::-;35243:74;;35326:93;35415:3;35326:93;:::i;:::-;35444:2;35439:3;35435:12;35428:19;;35087:366;;;:::o;35459:419::-;35625:4;35663:2;35652:9;35648:18;35640:26;;35712:9;35706:4;35702:20;35698:1;35687:9;35683:17;35676:47;35740:131;35866:4;35740:131;:::i;:::-;35732:139;;35459:419;;;:::o;35884:194::-;35924:4;35944:20;35962:1;35944:20;:::i;:::-;35939:25;;35978:20;35996:1;35978:20;:::i;:::-;35973:25;;36022:1;36019;36015:9;36007:17;;36046:1;36040:4;36037:11;36034:37;;;36051:18;;:::i;:::-;36034:37;35884:194;;;;:::o;36084:143::-;36141:5;36172:6;36166:13;36157:22;;36188:33;36215:5;36188:33;:::i;:::-;36084:143;;;;:::o;36233:351::-;36303:6;36352:2;36340:9;36331:7;36327:23;36323:32;36320:119;;;36358:79;;:::i;:::-;36320:119;36478:1;36503:64;36559:7;36550:6;36539:9;36535:22;36503:64;:::i;:::-;36493:74;;36449:128;36233:351;;;;:::o;36590:85::-;36635:7;36664:5;36653:16;;36590:85;;;:::o;36681:158::-;36739:9;36772:61;36790:42;36799:32;36825:5;36799:32;:::i;:::-;36790:42;:::i;:::-;36772:61;:::i;:::-;36759:74;;36681:158;;;:::o;36845:147::-;36940:45;36979:5;36940:45;:::i;:::-;36935:3;36928:58;36845:147;;:::o;36998:114::-;37065:6;37099:5;37093:12;37083:22;;36998:114;;;:::o;37118:184::-;37217:11;37251:6;37246:3;37239:19;37291:4;37286:3;37282:14;37267:29;;37118:184;;;;:::o;37308:132::-;37375:4;37398:3;37390:11;;37428:4;37423:3;37419:14;37411:22;;37308:132;;;:::o;37446:108::-;37523:24;37541:5;37523:24;:::i;:::-;37518:3;37511:37;37446:108;;:::o;37560:179::-;37629:10;37650:46;37692:3;37684:6;37650:46;:::i;:::-;37728:4;37723:3;37719:14;37705:28;;37560:179;;;;:::o;37745:113::-;37815:4;37847;37842:3;37838:14;37830:22;;37745:113;;;:::o;37894:732::-;38013:3;38042:54;38090:5;38042:54;:::i;:::-;38112:86;38191:6;38186:3;38112:86;:::i;:::-;38105:93;;38222:56;38272:5;38222:56;:::i;:::-;38301:7;38332:1;38317:284;38342:6;38339:1;38336:13;38317:284;;;38418:6;38412:13;38445:63;38504:3;38489:13;38445:63;:::i;:::-;38438:70;;38531:60;38584:6;38531:60;:::i;:::-;38521:70;;38377:224;38364:1;38361;38357:9;38352:14;;38317:284;;;38321:14;38617:3;38610:10;;38018:608;;;37894:732;;;;:::o;38632:831::-;38895:4;38933:3;38922:9;38918:19;38910:27;;38947:71;39015:1;39004:9;39000:17;38991:6;38947:71;:::i;:::-;39028:80;39104:2;39093:9;39089:18;39080:6;39028:80;:::i;:::-;39155:9;39149:4;39145:20;39140:2;39129:9;39125:18;39118:48;39183:108;39286:4;39277:6;39183:108;:::i;:::-;39175:116;;39301:72;39369:2;39358:9;39354:18;39345:6;39301:72;:::i;:::-;39383:73;39451:3;39440:9;39436:19;39427:6;39383:73;:::i;:::-;38632:831;;;;;;;;:::o;39469:225::-;39609:34;39605:1;39597:6;39593:14;39586:58;39678:8;39673:2;39665:6;39661:15;39654:33;39469:225;:::o;39700:366::-;39842:3;39863:67;39927:2;39922:3;39863:67;:::i;:::-;39856:74;;39939:93;40028:3;39939:93;:::i;:::-;40057:2;40052:3;40048:12;40041:19;;39700:366;;;:::o;40072:419::-;40238:4;40276:2;40265:9;40261:18;40253:26;;40325:9;40319:4;40315:20;40311:1;40300:9;40296:17;40289:47;40353:131;40479:4;40353:131;:::i;:::-;40345:139;;40072:419;;;:::o;40497:223::-;40637:34;40633:1;40625:6;40621:14;40614:58;40706:6;40701:2;40693:6;40689:15;40682:31;40497:223;:::o;40726:366::-;40868:3;40889:67;40953:2;40948:3;40889:67;:::i;:::-;40882:74;;40965:93;41054:3;40965:93;:::i;:::-;41083:2;41078:3;41074:12;41067:19;;40726:366;;;:::o;41098:419::-;41264:4;41302:2;41291:9;41287:18;41279:26;;41351:9;41345:4;41341:20;41337:1;41326:9;41322:17;41315:47;41379:131;41505:4;41379:131;:::i;:::-;41371:139;;41098:419;;;:::o

Swarm Source

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