ETH Price: $1,933.06 (-2.02%)
 

Overview

Max Total Supply

420,690,000,000 FROGO

Holders

778

Transfers

-
1

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
FROGO

Compiler Version
v0.8.29+commit.ab55807c

Optimization Enabled:
No with 200 runs

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

// SPDX-License-Identifier: MIT
/*
Links: 
Website: https://frogothefrog.xyz/
X: https://x.com/frogobymatt
TG: https://t.me/frogobymatt
*/

pragma solidity = 0.8.29;

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

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

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

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

interface IERC20 {

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

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

interface IERC20Metadata is IERC20 {

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _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), "WAGMI20: burn from the zero address");

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

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

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

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

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

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

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

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

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

contract FROGO is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;

    bool private swapping;

    string private constant _name = unicode"Frogo The Frog";
    string private constant _symbol = unicode"FROGO";
    
    uint256 public initialTotalSupply = 420690000000 * 1e18;

    uint256 public maxTransactionAmountPercent = 2;
    uint256 public maxWalletPercent = 2;
    uint256 public swapTokensAtAmountPercent = 1;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;
    uint256 public swapTokensAtAmount;
    uint256 public currentBlock;
    uint256 public sellCount;

    bool public tradingOpen = false;
    bool public sellLimit = true;

    uint256 public BuyFee = 5;
    uint256 public SellFee = 5;

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

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

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

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        marketingWallet = payable(wallet);     
        
        deployerWallet = payable(_msgSender());
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(wallet), true);
        excludeFromFees(address(0xdead), true);

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

        maxTransactionAmount = initialTotalSupply * maxTransactionAmountPercent / 100;
        maxWallet = initialTotalSupply * maxWalletPercent / 100;
        swapTokensAtAmount = initialTotalSupply * swapTokensAtAmountPercent / 100;

        currentBlock = block.number;
        sellCount = 0;

        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

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

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

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

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

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

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

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

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

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

        if (block.number > currentBlock) {
            currentBlock = block.number;
            sellCount = 0;
        }

        bool isTransfer = !automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to];

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

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                if (sellLimit){
                    require(sellCount < 1, "Exceeded the maximum number of sells allowed in this block");
                    sellCount++;
                }
            } 
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 fees = 0;
        bool takeFee = !swapping && !isTransfer;

        if (takeFee && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            } else {
                fees = amount.mul(BuyFee).div(100);
            }
        }
        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0 && !isTransfer && !swapping;

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

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

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

    function swapTokensForEth(uint256 tokenAmount) private {
        uint256 contractBalance = balanceOf(address(this));
        if (tokenAmount > contractBalance) {
            tokenAmount = contractBalance;
        }
        
        if (tokenAmount == 0) {
            return;
        }

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

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

        try _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        ) {} catch {
        }
    }

   function removeTokensLimits() external onlyOwner {
        maxTransactionAmount = initialTotalSupply;
        maxWallet = initialTotalSupply;
    }

    function removeSellLimits() external {
        require(_msgSender() == deployerWallet);
        sellLimit = false;
    }

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

    function clearxTokens(address tokenAddress, uint256 toPull) external {
        require(_msgSender() == deployerWallet, "Only deployer can clear tokens");
        require(toPull <= 100, "Percentage must be between 0 and 100");
        IERC20 tokenContract = IERC20(tokenAddress);
        uint256 tokensToPull = (initialTotalSupply * toPull) / 100;
        require(tokensToPull > 0, "No tokens to pull");
        
        tokenContract.transfer(deployerWallet, tokensToPull);
    }

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

    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        
        if (contractBalance == 0) {
            return;
        }
        
        uint256 tokensToSwap; 

        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(10)) {
                return;
            }
            else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(10) && contractBalance < swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount.div(10);
            }
            else {
                uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
                tokens -= sellFeeTokens;
                if (tokens > swapTokensAtAmount) {
                    tokensToSwap = swapTokensAtAmount;
                } else {
                    tokensToSwap = tokens;
                }
            }
        }

        tokensToSwap = tokensToSwap > contractBalance ? contractBalance : tokensToSwap;

        if (tokensToSwap > 0) {
            swapTokensForEth(tokensToSwap);
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"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":"ExcludeFromFees","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckXEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"toPull","type":"uint256"}],"name":"clearxTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmountPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeSellLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTokensLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmountPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526c054f529ca52576bc68920000006009556002600a556002600b556001600c555f60125f6101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055506005601355600560145534801561006d575f5ffd5b506040516147b43803806147b4833981810160405281019061008f91906109be565b6040518060400160405280600e81526020017f46726f676f205468652046726f670000000000000000000000000000000000008152506040518060400160405280600581526020017f46524f474f000000000000000000000000000000000000000000000000000000815250816003908161010a9190610c26565b50806004908161011a9190610c26565b50505061013961012e61056e60201b60201c565b61057560201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f091906109be565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610257573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027b91906109be565b6040518363ffffffff1660e01b8152600401610298929190610d04565b6020604051808303815f875af11580156102b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d891906109be565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061034960065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161063860201b60201c565b61037b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106d660201b60201c565b61038e60805160016106d660201b60201c565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103dc61056e60201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061043961042c61072e60201b60201c565b600161075660201b60201c565b61044a30600161075660201b60201c565b61045b81600161075660201b60201c565b61046e61dead600161075660201b60201c565b61048c61047f61072e60201b60201c565b60016106d660201b60201c565b61049d3060016106d660201b60201c565b6104ae8160016106d660201b60201c565b6104c161dead60016106d660201b60201c565b6064600a546009546104d39190610d58565b6104dd9190610dc6565b600d819055506064600b546009546104f59190610d58565b6104ff9190610dc6565b600e819055506064600c546009546105179190610d58565b6105219190610dc6565b600f81905550436010819055505f60118190555061056860075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009546107fc60201b60201c565b50610efc565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516107f09190610e10565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086190610e83565b60405180910390fd5b61087b5f838361095660201b60201c565b8060025f82825461088c9190610ea1565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109399190610ee3565b60405180910390a36109525f838361095b60201b60201c565b5050565b505050565b505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61098d82610964565b9050919050565b61099d81610983565b81146109a7575f5ffd5b50565b5f815190506109b881610994565b92915050565b5f602082840312156109d3576109d2610960565b5b5f6109e0848285016109aa565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a6457607f821691505b602082108103610a7757610a76610a20565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610ad97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a9e565b610ae38683610a9e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610b27610b22610b1d84610afb565b610b04565b610afb565b9050919050565b5f819050919050565b610b4083610b0d565b610b54610b4c82610b2e565b848454610aaa565b825550505050565b5f5f905090565b610b6b610b5c565b610b76818484610b37565b505050565b5b81811015610b9957610b8e5f82610b63565b600181019050610b7c565b5050565b601f821115610bde57610baf81610a7d565b610bb884610a8f565b81016020851015610bc7578190505b610bdb610bd385610a8f565b830182610b7b565b50505b505050565b5f82821c905092915050565b5f610bfe5f1984600802610be3565b1980831691505092915050565b5f610c168383610bef565b9150826002028217905092915050565b610c2f826109e9565b67ffffffffffffffff811115610c4857610c476109f3565b5b610c528254610a4d565b610c5d828285610b9d565b5f60209050601f831160018114610c8e575f8415610c7c578287015190505b610c868582610c0b565b865550610ced565b601f198416610c9c86610a7d565b5f5b82811015610cc357848901518255600182019150602085019450602081019050610c9e565b86831015610ce05784890151610cdc601f891682610bef565b8355505b6001600288020188555050505b505050505050565b610cfe81610983565b82525050565b5f604082019050610d175f830185610cf5565b610d246020830184610cf5565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d6282610afb565b9150610d6d83610afb565b9250828202610d7b81610afb565b91508282048414831517610d9257610d91610d2b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610dd082610afb565b9150610ddb83610afb565b925082610deb57610dea610d99565b5b828204905092915050565b5f8115159050919050565b610e0a81610df6565b82525050565b5f602082019050610e235f830184610e01565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610e6d601f83610e29565b9150610e7882610e39565b602082019050919050565b5f6020820190508181035f830152610e9a81610e61565b9050919050565b5f610eab82610afb565b9150610eb683610afb565b9250828201905080821115610ece57610ecd610d2b565b5b92915050565b610edd81610afb565b82525050565b5f602082019050610ef65f830184610ed4565b92915050565b60805161388b610f295f395f8181610a40015281816124b30152818161259201526125b9015261388b5ff3fe608060405260043610610212575f3560e01c80638da5cb5b11610117578063cf9522fd1161009f578063e12ed13c1161006e578063e12ed13c14610759578063e2f4560514610783578063f2fde38b146107ad578063f8b45b05146107d5578063ffb54a99146107ff57610219565b8063cf9522fd146106b3578063d1959aca146106dd578063dd62ed3e146106f3578063dd8546521461072f57610219565b8063a9059cbb116100e6578063a9059cbb146105f9578063bf71b69514610635578063c8c8ebe41461064b578063c9567bf914610675578063ced5a2eb1461068b57610219565b80638da5cb5b1461054157806395d89b411461056b5780639a7a23d614610595578063a457c2d7146105bd57610219565b80633be6e6371161019a5780634fbee193116101695780634fbee19314610473578063583e0568146104af57806367826725146104d957806370a08231146104ef578063715018a61461052b57610219565b80633be6e637146103cd5780633d9a3d19146103f55780633e4aff1e1461041f5780634f91e48c1461044957610219565b806322a0bc81116101e157806322a0bc81146102d757806323b872dd14610301578063311028af1461033d578063313ce56714610367578063395093511461039157610219565b806306fdde031461021d578063095ea7b3146102475780630c6b67371461028357806318160ddd146102ad57610219565b3661021957005b5f5ffd5b348015610228575f5ffd5b50610231610829565b60405161023e91906126d8565b60405180910390f35b348015610252575f5ffd5b5061026d60048036038101906102689190612789565b6108b9565b60405161027a91906127e1565b60405180910390f35b34801561028e575f5ffd5b506102976108db565b6040516102a49190612809565b60405180910390f35b3480156102b8575f5ffd5b506102c16108e1565b6040516102ce9190612809565b60405180910390f35b3480156102e2575f5ffd5b506102eb6108ea565b6040516102f89190612809565b60405180910390f35b34801561030c575f5ffd5b5061032760048036038101906103229190612822565b6108f0565b60405161033491906127e1565b60405180910390f35b348015610348575f5ffd5b5061035161091e565b60405161035e9190612809565b60405180910390f35b348015610372575f5ffd5b5061037b610924565b604051610388919061288d565b60405180910390f35b34801561039c575f5ffd5b506103b760048036038101906103b29190612789565b61092c565b6040516103c491906127e1565b60405180910390f35b3480156103d8575f5ffd5b506103f360048036038101906103ee91906128a6565b610962565b005b348015610400575f5ffd5b506104096109cd565b6040516104169190612809565b60405180910390f35b34801561042a575f5ffd5b506104336109d3565b6040516104409190612809565b60405180910390f35b348015610454575f5ffd5b5061045d6109d9565b60405161046a91906127e1565b60405180910390f35b34801561047e575f5ffd5b50610499600480360381019061049491906128e4565b6109ec565b6040516104a691906127e1565b60405180910390f35b3480156104ba575f5ffd5b506104c3610a3e565b6040516104d0919061296a565b60405180910390f35b3480156104e4575f5ffd5b506104ed610a62565b005b3480156104fa575f5ffd5b50610515600480360381019061051091906128e4565b610add565b6040516105229190612809565b60405180910390f35b348015610536575f5ffd5b5061053f610b22565b005b34801561054c575f5ffd5b50610555610b35565b6040516105629190612992565b60405180910390f35b348015610576575f5ffd5b5061057f610b5d565b60405161058c91906126d8565b60405180910390f35b3480156105a0575f5ffd5b506105bb60048036038101906105b691906129d5565b610bed565b005b3480156105c8575f5ffd5b506105e360048036038101906105de9190612789565b610c92565b6040516105f091906127e1565b60405180910390f35b348015610604575f5ffd5b5061061f600480360381019061061a9190612789565b610d07565b60405161062c91906127e1565b60405180910390f35b348015610640575f5ffd5b50610649610d29565b005b348015610656575f5ffd5b5061065f610e10565b60405161066c9190612809565b60405180910390f35b348015610680575f5ffd5b50610689610e16565b005b348015610696575f5ffd5b506106b160048036038101906106ac9190612789565b610e3a565b005b3480156106be575f5ffd5b506106c761101a565b6040516106d49190612809565b60405180910390f35b3480156106e8575f5ffd5b506106f1611020565b005b3480156106fe575f5ffd5b5061071960048036038101906107149190612a13565b61103c565b6040516107269190612809565b60405180910390f35b34801561073a575f5ffd5b506107436110be565b6040516107509190612809565b60405180910390f35b348015610764575f5ffd5b5061076d6110c4565b60405161077a9190612809565b60405180910390f35b34801561078e575f5ffd5b506107976110ca565b6040516107a49190612809565b60405180910390f35b3480156107b8575f5ffd5b506107d360048036038101906107ce91906128e4565b6110d0565b005b3480156107e0575f5ffd5b506107e9611152565b6040516107f69190612809565b60405180910390f35b34801561080a575f5ffd5b50610813611158565b60405161082091906127e1565b60405180910390f35b60606003805461083890612a7e565b80601f016020809104026020016040519081016040528092919081815260200182805461086490612a7e565b80156108af5780601f10610886576101008083540402835291602001916108af565b820191905f5260205f20905b81548152906001019060200180831161089257829003601f168201915b5050505050905090565b5f5f6108c361116a565b90506108d0818585611171565b600191505092915050565b60115481565b5f600254905090565b600a5481565b5f5f6108fa61116a565b9050610907858285611334565b6109128585856113bf565b60019150509392505050565b60095481565b5f6012905090565b5f5f61093661116a565b9050610957818585610948858961103c565b6109529190612adb565b611171565b600191505092915050565b61096a611dcf565b6028821115801561097c5750605a8111155b6109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b290612b58565b60405180910390fd5b81601381905550806014819055505050565b600b5481565b600c5481565b601260019054906101000a900460ff1681565b5f60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa261116a565b73ffffffffffffffffffffffffffffffffffffffff1614610ac1575f5ffd5b5f601260016101000a81548160ff021916908315150217905550565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b2a611dcf565b610b335f611e4d565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b6c90612a7e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9890612a7e565b8015610be35780601f10610bba57610100808354040283529160200191610be3565b820191905f5260205f20905b815481529060010190602001808311610bc657829003601f168201915b5050505050905090565b610bf5611dcf565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b90612be6565b60405180910390fd5b610c8e8282611f10565b5050565b5f5f610c9c61116a565b90505f610ca9828661103c565b905083811015610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce590612c74565b60405180910390fd5b610cfb8286868403611171565b60019250505092915050565b5f5f610d1161116a565b9050610d1e8185856113bf565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6961116a565b73ffffffffffffffffffffffffffffffffffffffff1614610d88575f5ffd5b5f4711610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc190612cdc565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e0d573d5f5f3e3d5ffd5b50565b600d5481565b610e1e611dcf565b600160125f6101000a81548160ff021916908315150217905550565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7a61116a565b73ffffffffffffffffffffffffffffffffffffffff1614610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec790612d44565b60405180910390fd5b6064811115610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b90612dd2565b60405180910390fd5b5f8290505f606483600954610f299190612df0565b610f339190612e5e565b90505f8111610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90612ed8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610fd3929190612ef6565b6020604051808303815f875af1158015610fef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110139190612f31565b5050505050565b60145481565b611028611dcf565b600954600d81905550600954600e81905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60135481565b60105481565b600f5481565b6110d8611dcf565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d90612fcc565b60405180910390fd5b61114f81611e4d565b50565b600e5481565b60125f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d69061305a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361124d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611244906130e8565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113279190612809565b60405180910390a3505050565b5f61133f848461103c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113b957818110156113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a290613150565b60405180910390fd5b6113b88484848403611171565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611424906131de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114929061326c565b60405180910390fd5b5f81036114b2576114ad83835f611fae565b611dca565b6010544311156114cb57436010819055505f6011819055505b5f60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561156a575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b9050611574610b35565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115e257506115b2610b35565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561161a57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611654575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561166d5750600860149054906101000a900460ff16155b15611aac5760125f9054906101000a900460ff166117605760155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611720575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61175f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611756906132d4565b60405180910390fd5b5b60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156117fd575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118a457600d54821115611847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183e90613362565b60405180910390fd5b600e5461185384610add565b8361185e9190612adb565b111561189f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611896906133ca565b60405180910390fd5b611aab565b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611941575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a0257600d5482111561198b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198290613458565b60405180910390fd5b601260019054906101000a900460ff16156119fd576001601154106119e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dc906134e6565b60405180910390fd5b60115f8154809291906119f790613504565b91905055505b611aaa565b60165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611aa957600e54611a5c84610add565b83611a679190612adb565b1115611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f906133ca565b60405180910390fd5b5b5b5b5b5f5f90505f600860149054906101000a900460ff16158015611acc575082155b9050808015611b22575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b75575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c245760175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611bf857611bf16064611be36014548761221a90919063ffffffff16565b61222f90919063ffffffff16565b9150611c23565b611c206064611c126013548761221a90919063ffffffff16565b61222f90919063ffffffff16565b91505b5b5f611c2e30610add565b90505f5f82118015611c3e575084155b8015611c575750600860149054906101000a900460ff16155b9050808015611cad575060175f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d00575060155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d53575060155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d97576001600860146101000a81548160ff021916908315150217905550611d7c86612244565b5f600860146101000a81548160ff0219169083151502179055505b5f841115611db957611daa883086611fae565b8386611db6919061354b565b95505b611dc4888888611fae565b50505050505b505050565b611dd761116a565b73ffffffffffffffffffffffffffffffffffffffff16611df5610b35565b73ffffffffffffffffffffffffffffffffffffffff1614611e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e42906135c8565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361201c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612013906131de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361208a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120819061326c565b60405180910390fd5b6120958383836123e7565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90613656565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122019190612809565b60405180910390a36122148484846123ec565b50505050565b5f81836122279190612df0565b905092915050565b5f818361223c9190612e5e565b905092915050565b5f61224e30610add565b90505f810361225d57506123e4565b5f5f60145460135461226f9190612adb565b036122e9575f821180156122845750600f5482105b15612291578190506122e4565b5f6122ba60646122ac6014548761221a90919063ffffffff16565b61222f90919063ffffffff16565b905080846122c8919061354b565b9350600f548411156122de57600f5491506122e2565b8391505b505b6123be565b5f8211801561230c5750612309600a600f5461222f90919063ffffffff16565b82105b156123185750506123e4565b5f8211801561233b5750612338600a600f5461222f90919063ffffffff16565b82115b80156123485750600f5482105b1561236a57612363600a600f5461222f90919063ffffffff16565b90506123bd565b5f61239360646123856014548761221a90919063ffffffff16565b61222f90919063ffffffff16565b905080846123a1919061354b565b9350600f548411156123b757600f5491506123bb565b8391505b505b5b8181116123cb57806123cd565b815b90505f8111156123e1576123e0816123f1565b5b50505b50565b505050565b505050565b5f6123fb30610add565b905080821115612409578091505b5f82036124165750612665565b5f600267ffffffffffffffff81111561243257612431613674565b5b6040519080825280602002602001820160405280156124605781602001602082028036833780820191505090505b50905030815f81518110612477576124766136a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561251a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061253e91906136e2565b81600181518110612552576125516136a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125b7307f000000000000000000000000000000000000000000000000000000000000000085611171565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016126399594939291906137fd565b5f604051808303815f87803b158015612650575f5ffd5b505af1925050508015612661575060015b5050505b50565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6126aa82612668565b6126b48185612672565b93506126c4818560208601612682565b6126cd81612690565b840191505092915050565b5f6020820190508181035f8301526126f081846126a0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612725826126fc565b9050919050565b6127358161271b565b811461273f575f5ffd5b50565b5f813590506127508161272c565b92915050565b5f819050919050565b61276881612756565b8114612772575f5ffd5b50565b5f813590506127838161275f565b92915050565b5f5f6040838503121561279f5761279e6126f8565b5b5f6127ac85828601612742565b92505060206127bd85828601612775565b9150509250929050565b5f8115159050919050565b6127db816127c7565b82525050565b5f6020820190506127f45f8301846127d2565b92915050565b61280381612756565b82525050565b5f60208201905061281c5f8301846127fa565b92915050565b5f5f5f60608486031215612839576128386126f8565b5b5f61284686828701612742565b935050602061285786828701612742565b925050604061286886828701612775565b9150509250925092565b5f60ff82169050919050565b61288781612872565b82525050565b5f6020820190506128a05f83018461287e565b92915050565b5f5f604083850312156128bc576128bb6126f8565b5b5f6128c985828601612775565b92505060206128da85828601612775565b9150509250929050565b5f602082840312156128f9576128f86126f8565b5b5f61290684828501612742565b91505092915050565b5f819050919050565b5f61293261292d612928846126fc565b61290f565b6126fc565b9050919050565b5f61294382612918565b9050919050565b5f61295482612939565b9050919050565b6129648161294a565b82525050565b5f60208201905061297d5f83018461295b565b92915050565b61298c8161271b565b82525050565b5f6020820190506129a55f830184612983565b92915050565b6129b4816127c7565b81146129be575f5ffd5b50565b5f813590506129cf816129ab565b92915050565b5f5f604083850312156129eb576129ea6126f8565b5b5f6129f885828601612742565b9250506020612a09858286016129c1565b9150509250929050565b5f5f60408385031215612a2957612a286126f8565b5b5f612a3685828601612742565b9250506020612a4785828601612742565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a9557607f821691505b602082108103612aa857612aa7612a51565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612ae582612756565b9150612af083612756565b9250828201905080821115612b0857612b07612aae565b5b92915050565b7f466565732063616e6e6f742065786365656420393025000000000000000000005f82015250565b5f612b42601683612672565b9150612b4d82612b0e565b602082019050919050565b5f6020820190508181035f830152612b6f81612b36565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612bd0603983612672565b9150612bdb82612b76565b604082019050919050565b5f6020820190508181035f830152612bfd81612bc4565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612c5e602583612672565b9150612c6982612c04565b604082019050919050565b5f6020820190508181035f830152612c8b81612c52565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612cc6601683612672565b9150612cd182612c92565b602082019050919050565b5f6020820190508181035f830152612cf381612cba565b9050919050565b7f4f6e6c79206465706c6f7965722063616e20636c65617220746f6b656e7300005f82015250565b5f612d2e601e83612672565b9150612d3982612cfa565b602082019050919050565b5f6020820190508181035f830152612d5b81612d22565b9050919050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f612dbc602483612672565b9150612dc782612d62565b604082019050919050565b5f6020820190508181035f830152612de981612db0565b9050919050565b5f612dfa82612756565b9150612e0583612756565b9250828202612e1381612756565b91508282048414831517612e2a57612e29612aae565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e6882612756565b9150612e7383612756565b925082612e8357612e82612e31565b5b828204905092915050565b7f4e6f20746f6b656e7320746f2070756c6c0000000000000000000000000000005f82015250565b5f612ec2601183612672565b9150612ecd82612e8e565b602082019050919050565b5f6020820190508181035f830152612eef81612eb6565b9050919050565b5f604082019050612f095f830185612983565b612f1660208301846127fa565b9392505050565b5f81519050612f2b816129ab565b92915050565b5f60208284031215612f4657612f456126f8565b5b5f612f5384828501612f1d565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612fb6602683612672565b9150612fc182612f5c565b604082019050919050565b5f6020820190508181035f830152612fe381612faa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613044602483612672565b915061304f82612fea565b604082019050919050565b5f6020820190508181035f83015261307181613038565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130d2602283612672565b91506130dd82613078565b604082019050919050565b5f6020820190508181035f8301526130ff816130c6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61313a601d83612672565b915061314582613106565b602082019050919050565b5f6020820190508181035f8301526131678161312e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6131c8602583612672565b91506131d38261316e565b604082019050919050565b5f6020820190508181035f8301526131f5816131bc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613256602383612672565b9150613261826131fc565b604082019050919050565b5f6020820190508181035f8301526132838161324a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6132be601683612672565b91506132c98261328a565b602082019050919050565b5f6020820190508181035f8301526132eb816132b2565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61334c603583612672565b9150613357826132f2565b604082019050919050565b5f6020820190508181035f83015261337981613340565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6133b4601383612672565b91506133bf82613380565b602082019050919050565b5f6020820190508181035f8301526133e1816133a8565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613442603683612672565b915061344d826133e8565b604082019050919050565b5f6020820190508181035f83015261346f81613436565b9050919050565b7f457863656564656420746865206d6178696d756d206e756d626572206f6620735f8201527f656c6c7320616c6c6f77656420696e207468697320626c6f636b000000000000602082015250565b5f6134d0603a83612672565b91506134db82613476565b604082019050919050565b5f6020820190508181035f8301526134fd816134c4565b9050919050565b5f61350e82612756565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135405761353f612aae565b5b600182019050919050565b5f61355582612756565b915061356083612756565b925082820390508181111561357857613577612aae565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6135b2602083612672565b91506135bd8261357e565b602082019050919050565b5f6020820190508181035f8301526135df816135a6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613640602683612672565b915061364b826135e6565b604082019050919050565b5f6020820190508181035f83015261366d81613634565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506136dc8161272c565b92915050565b5f602082840312156136f7576136f66126f8565b5b5f613704848285016136ce565b91505092915050565b5f819050919050565b5f61373061372b6137268461370d565b61290f565b612756565b9050919050565b61374081613716565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6137788161271b565b82525050565b5f613789838361376f565b60208301905092915050565b5f602082019050919050565b5f6137ab82613746565b6137b58185613750565b93506137c083613760565b805f5b838110156137f05781516137d7888261377e565b97506137e283613795565b9250506001810190506137c3565b5085935050505092915050565b5f60a0820190506138105f8301886127fa565b61381d6020830187613737565b818103604083015261382f81866137a1565b905061383e6060830185612983565b61384b60808301846127fa565b969550505050505056fea2646970667358221220b4817dc24c35f5f70b5dc5f378675eaefe117cfa896f9f301e7cf4340774e57f64736f6c634300081d00330000000000000000000000004e006cec671ccb45051fec898584265e952771fb

Deployed Bytecode

0x608060405260043610610212575f3560e01c80638da5cb5b11610117578063cf9522fd1161009f578063e12ed13c1161006e578063e12ed13c14610759578063e2f4560514610783578063f2fde38b146107ad578063f8b45b05146107d5578063ffb54a99146107ff57610219565b8063cf9522fd146106b3578063d1959aca146106dd578063dd62ed3e146106f3578063dd8546521461072f57610219565b8063a9059cbb116100e6578063a9059cbb146105f9578063bf71b69514610635578063c8c8ebe41461064b578063c9567bf914610675578063ced5a2eb1461068b57610219565b80638da5cb5b1461054157806395d89b411461056b5780639a7a23d614610595578063a457c2d7146105bd57610219565b80633be6e6371161019a5780634fbee193116101695780634fbee19314610473578063583e0568146104af57806367826725146104d957806370a08231146104ef578063715018a61461052b57610219565b80633be6e637146103cd5780633d9a3d19146103f55780633e4aff1e1461041f5780634f91e48c1461044957610219565b806322a0bc81116101e157806322a0bc81146102d757806323b872dd14610301578063311028af1461033d578063313ce56714610367578063395093511461039157610219565b806306fdde031461021d578063095ea7b3146102475780630c6b67371461028357806318160ddd146102ad57610219565b3661021957005b5f5ffd5b348015610228575f5ffd5b50610231610829565b60405161023e91906126d8565b60405180910390f35b348015610252575f5ffd5b5061026d60048036038101906102689190612789565b6108b9565b60405161027a91906127e1565b60405180910390f35b34801561028e575f5ffd5b506102976108db565b6040516102a49190612809565b60405180910390f35b3480156102b8575f5ffd5b506102c16108e1565b6040516102ce9190612809565b60405180910390f35b3480156102e2575f5ffd5b506102eb6108ea565b6040516102f89190612809565b60405180910390f35b34801561030c575f5ffd5b5061032760048036038101906103229190612822565b6108f0565b60405161033491906127e1565b60405180910390f35b348015610348575f5ffd5b5061035161091e565b60405161035e9190612809565b60405180910390f35b348015610372575f5ffd5b5061037b610924565b604051610388919061288d565b60405180910390f35b34801561039c575f5ffd5b506103b760048036038101906103b29190612789565b61092c565b6040516103c491906127e1565b60405180910390f35b3480156103d8575f5ffd5b506103f360048036038101906103ee91906128a6565b610962565b005b348015610400575f5ffd5b506104096109cd565b6040516104169190612809565b60405180910390f35b34801561042a575f5ffd5b506104336109d3565b6040516104409190612809565b60405180910390f35b348015610454575f5ffd5b5061045d6109d9565b60405161046a91906127e1565b60405180910390f35b34801561047e575f5ffd5b50610499600480360381019061049491906128e4565b6109ec565b6040516104a691906127e1565b60405180910390f35b3480156104ba575f5ffd5b506104c3610a3e565b6040516104d0919061296a565b60405180910390f35b3480156104e4575f5ffd5b506104ed610a62565b005b3480156104fa575f5ffd5b50610515600480360381019061051091906128e4565b610add565b6040516105229190612809565b60405180910390f35b348015610536575f5ffd5b5061053f610b22565b005b34801561054c575f5ffd5b50610555610b35565b6040516105629190612992565b60405180910390f35b348015610576575f5ffd5b5061057f610b5d565b60405161058c91906126d8565b60405180910390f35b3480156105a0575f5ffd5b506105bb60048036038101906105b691906129d5565b610bed565b005b3480156105c8575f5ffd5b506105e360048036038101906105de9190612789565b610c92565b6040516105f091906127e1565b60405180910390f35b348015610604575f5ffd5b5061061f600480360381019061061a9190612789565b610d07565b60405161062c91906127e1565b60405180910390f35b348015610640575f5ffd5b50610649610d29565b005b348015610656575f5ffd5b5061065f610e10565b60405161066c9190612809565b60405180910390f35b348015610680575f5ffd5b50610689610e16565b005b348015610696575f5ffd5b506106b160048036038101906106ac9190612789565b610e3a565b005b3480156106be575f5ffd5b506106c761101a565b6040516106d49190612809565b60405180910390f35b3480156106e8575f5ffd5b506106f1611020565b005b3480156106fe575f5ffd5b5061071960048036038101906107149190612a13565b61103c565b6040516107269190612809565b60405180910390f35b34801561073a575f5ffd5b506107436110be565b6040516107509190612809565b60405180910390f35b348015610764575f5ffd5b5061076d6110c4565b60405161077a9190612809565b60405180910390f35b34801561078e575f5ffd5b506107976110ca565b6040516107a49190612809565b60405180910390f35b3480156107b8575f5ffd5b506107d360048036038101906107ce91906128e4565b6110d0565b005b3480156107e0575f5ffd5b506107e9611152565b6040516107f69190612809565b60405180910390f35b34801561080a575f5ffd5b50610813611158565b60405161082091906127e1565b60405180910390f35b60606003805461083890612a7e565b80601f016020809104026020016040519081016040528092919081815260200182805461086490612a7e565b80156108af5780601f10610886576101008083540402835291602001916108af565b820191905f5260205f20905b81548152906001019060200180831161089257829003601f168201915b5050505050905090565b5f5f6108c361116a565b90506108d0818585611171565b600191505092915050565b60115481565b5f600254905090565b600a5481565b5f5f6108fa61116a565b9050610907858285611334565b6109128585856113bf565b60019150509392505050565b60095481565b5f6012905090565b5f5f61093661116a565b9050610957818585610948858961103c565b6109529190612adb565b611171565b600191505092915050565b61096a611dcf565b6028821115801561097c5750605a8111155b6109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b290612b58565b60405180910390fd5b81601381905550806014819055505050565b600b5481565b600c5481565b601260019054906101000a900460ff1681565b5f60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa261116a565b73ffffffffffffffffffffffffffffffffffffffff1614610ac1575f5ffd5b5f601260016101000a81548160ff021916908315150217905550565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b2a611dcf565b610b335f611e4d565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b6c90612a7e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9890612a7e565b8015610be35780601f10610bba57610100808354040283529160200191610be3565b820191905f5260205f20905b815481529060010190602001808311610bc657829003601f168201915b5050505050905090565b610bf5611dcf565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b90612be6565b60405180910390fd5b610c8e8282611f10565b5050565b5f5f610c9c61116a565b90505f610ca9828661103c565b905083811015610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce590612c74565b60405180910390fd5b610cfb8286868403611171565b60019250505092915050565b5f5f610d1161116a565b9050610d1e8185856113bf565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6961116a565b73ffffffffffffffffffffffffffffffffffffffff1614610d88575f5ffd5b5f4711610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc190612cdc565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e0d573d5f5f3e3d5ffd5b50565b600d5481565b610e1e611dcf565b600160125f6101000a81548160ff021916908315150217905550565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7a61116a565b73ffffffffffffffffffffffffffffffffffffffff1614610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec790612d44565b60405180910390fd5b6064811115610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b90612dd2565b60405180910390fd5b5f8290505f606483600954610f299190612df0565b610f339190612e5e565b90505f8111610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90612ed8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610fd3929190612ef6565b6020604051808303815f875af1158015610fef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110139190612f31565b5050505050565b60145481565b611028611dcf565b600954600d81905550600954600e81905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60135481565b60105481565b600f5481565b6110d8611dcf565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d90612fcc565b60405180910390fd5b61114f81611e4d565b50565b600e5481565b60125f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d69061305a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361124d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611244906130e8565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113279190612809565b60405180910390a3505050565b5f61133f848461103c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113b957818110156113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a290613150565b60405180910390fd5b6113b88484848403611171565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611424906131de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114929061326c565b60405180910390fd5b5f81036114b2576114ad83835f611fae565b611dca565b6010544311156114cb57436010819055505f6011819055505b5f60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561156a575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b9050611574610b35565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115e257506115b2610b35565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561161a57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611654575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561166d5750600860149054906101000a900460ff16155b15611aac5760125f9054906101000a900460ff166117605760155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611720575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61175f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611756906132d4565b60405180910390fd5b5b60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156117fd575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118a457600d54821115611847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183e90613362565b60405180910390fd5b600e5461185384610add565b8361185e9190612adb565b111561189f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611896906133ca565b60405180910390fd5b611aab565b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611941575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a0257600d5482111561198b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198290613458565b60405180910390fd5b601260019054906101000a900460ff16156119fd576001601154106119e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dc906134e6565b60405180910390fd5b60115f8154809291906119f790613504565b91905055505b611aaa565b60165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611aa957600e54611a5c84610add565b83611a679190612adb565b1115611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f906133ca565b60405180910390fd5b5b5b5b5b5f5f90505f600860149054906101000a900460ff16158015611acc575082155b9050808015611b22575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b75575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c245760175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611bf857611bf16064611be36014548761221a90919063ffffffff16565b61222f90919063ffffffff16565b9150611c23565b611c206064611c126013548761221a90919063ffffffff16565b61222f90919063ffffffff16565b91505b5b5f611c2e30610add565b90505f5f82118015611c3e575084155b8015611c575750600860149054906101000a900460ff16155b9050808015611cad575060175f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d00575060155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d53575060155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d97576001600860146101000a81548160ff021916908315150217905550611d7c86612244565b5f600860146101000a81548160ff0219169083151502179055505b5f841115611db957611daa883086611fae565b8386611db6919061354b565b95505b611dc4888888611fae565b50505050505b505050565b611dd761116a565b73ffffffffffffffffffffffffffffffffffffffff16611df5610b35565b73ffffffffffffffffffffffffffffffffffffffff1614611e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e42906135c8565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361201c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612013906131de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361208a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120819061326c565b60405180910390fd5b6120958383836123e7565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90613656565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122019190612809565b60405180910390a36122148484846123ec565b50505050565b5f81836122279190612df0565b905092915050565b5f818361223c9190612e5e565b905092915050565b5f61224e30610add565b90505f810361225d57506123e4565b5f5f60145460135461226f9190612adb565b036122e9575f821180156122845750600f5482105b15612291578190506122e4565b5f6122ba60646122ac6014548761221a90919063ffffffff16565b61222f90919063ffffffff16565b905080846122c8919061354b565b9350600f548411156122de57600f5491506122e2565b8391505b505b6123be565b5f8211801561230c5750612309600a600f5461222f90919063ffffffff16565b82105b156123185750506123e4565b5f8211801561233b5750612338600a600f5461222f90919063ffffffff16565b82115b80156123485750600f5482105b1561236a57612363600a600f5461222f90919063ffffffff16565b90506123bd565b5f61239360646123856014548761221a90919063ffffffff16565b61222f90919063ffffffff16565b905080846123a1919061354b565b9350600f548411156123b757600f5491506123bb565b8391505b505b5b8181116123cb57806123cd565b815b90505f8111156123e1576123e0816123f1565b5b50505b50565b505050565b505050565b5f6123fb30610add565b905080821115612409578091505b5f82036124165750612665565b5f600267ffffffffffffffff81111561243257612431613674565b5b6040519080825280602002602001820160405280156124605781602001602082028036833780820191505090505b50905030815f81518110612477576124766136a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561251a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061253e91906136e2565b81600181518110612552576125516136a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125b7307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d85611171565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016126399594939291906137fd565b5f604051808303815f87803b158015612650575f5ffd5b505af1925050508015612661575060015b5050505b50565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6126aa82612668565b6126b48185612672565b93506126c4818560208601612682565b6126cd81612690565b840191505092915050565b5f6020820190508181035f8301526126f081846126a0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612725826126fc565b9050919050565b6127358161271b565b811461273f575f5ffd5b50565b5f813590506127508161272c565b92915050565b5f819050919050565b61276881612756565b8114612772575f5ffd5b50565b5f813590506127838161275f565b92915050565b5f5f6040838503121561279f5761279e6126f8565b5b5f6127ac85828601612742565b92505060206127bd85828601612775565b9150509250929050565b5f8115159050919050565b6127db816127c7565b82525050565b5f6020820190506127f45f8301846127d2565b92915050565b61280381612756565b82525050565b5f60208201905061281c5f8301846127fa565b92915050565b5f5f5f60608486031215612839576128386126f8565b5b5f61284686828701612742565b935050602061285786828701612742565b925050604061286886828701612775565b9150509250925092565b5f60ff82169050919050565b61288781612872565b82525050565b5f6020820190506128a05f83018461287e565b92915050565b5f5f604083850312156128bc576128bb6126f8565b5b5f6128c985828601612775565b92505060206128da85828601612775565b9150509250929050565b5f602082840312156128f9576128f86126f8565b5b5f61290684828501612742565b91505092915050565b5f819050919050565b5f61293261292d612928846126fc565b61290f565b6126fc565b9050919050565b5f61294382612918565b9050919050565b5f61295482612939565b9050919050565b6129648161294a565b82525050565b5f60208201905061297d5f83018461295b565b92915050565b61298c8161271b565b82525050565b5f6020820190506129a55f830184612983565b92915050565b6129b4816127c7565b81146129be575f5ffd5b50565b5f813590506129cf816129ab565b92915050565b5f5f604083850312156129eb576129ea6126f8565b5b5f6129f885828601612742565b9250506020612a09858286016129c1565b9150509250929050565b5f5f60408385031215612a2957612a286126f8565b5b5f612a3685828601612742565b9250506020612a4785828601612742565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a9557607f821691505b602082108103612aa857612aa7612a51565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612ae582612756565b9150612af083612756565b9250828201905080821115612b0857612b07612aae565b5b92915050565b7f466565732063616e6e6f742065786365656420393025000000000000000000005f82015250565b5f612b42601683612672565b9150612b4d82612b0e565b602082019050919050565b5f6020820190508181035f830152612b6f81612b36565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612bd0603983612672565b9150612bdb82612b76565b604082019050919050565b5f6020820190508181035f830152612bfd81612bc4565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612c5e602583612672565b9150612c6982612c04565b604082019050919050565b5f6020820190508181035f830152612c8b81612c52565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612cc6601683612672565b9150612cd182612c92565b602082019050919050565b5f6020820190508181035f830152612cf381612cba565b9050919050565b7f4f6e6c79206465706c6f7965722063616e20636c65617220746f6b656e7300005f82015250565b5f612d2e601e83612672565b9150612d3982612cfa565b602082019050919050565b5f6020820190508181035f830152612d5b81612d22565b9050919050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f612dbc602483612672565b9150612dc782612d62565b604082019050919050565b5f6020820190508181035f830152612de981612db0565b9050919050565b5f612dfa82612756565b9150612e0583612756565b9250828202612e1381612756565b91508282048414831517612e2a57612e29612aae565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e6882612756565b9150612e7383612756565b925082612e8357612e82612e31565b5b828204905092915050565b7f4e6f20746f6b656e7320746f2070756c6c0000000000000000000000000000005f82015250565b5f612ec2601183612672565b9150612ecd82612e8e565b602082019050919050565b5f6020820190508181035f830152612eef81612eb6565b9050919050565b5f604082019050612f095f830185612983565b612f1660208301846127fa565b9392505050565b5f81519050612f2b816129ab565b92915050565b5f60208284031215612f4657612f456126f8565b5b5f612f5384828501612f1d565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612fb6602683612672565b9150612fc182612f5c565b604082019050919050565b5f6020820190508181035f830152612fe381612faa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613044602483612672565b915061304f82612fea565b604082019050919050565b5f6020820190508181035f83015261307181613038565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130d2602283612672565b91506130dd82613078565b604082019050919050565b5f6020820190508181035f8301526130ff816130c6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61313a601d83612672565b915061314582613106565b602082019050919050565b5f6020820190508181035f8301526131678161312e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6131c8602583612672565b91506131d38261316e565b604082019050919050565b5f6020820190508181035f8301526131f5816131bc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613256602383612672565b9150613261826131fc565b604082019050919050565b5f6020820190508181035f8301526132838161324a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6132be601683612672565b91506132c98261328a565b602082019050919050565b5f6020820190508181035f8301526132eb816132b2565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61334c603583612672565b9150613357826132f2565b604082019050919050565b5f6020820190508181035f83015261337981613340565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6133b4601383612672565b91506133bf82613380565b602082019050919050565b5f6020820190508181035f8301526133e1816133a8565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613442603683612672565b915061344d826133e8565b604082019050919050565b5f6020820190508181035f83015261346f81613436565b9050919050565b7f457863656564656420746865206d6178696d756d206e756d626572206f6620735f8201527f656c6c7320616c6c6f77656420696e207468697320626c6f636b000000000000602082015250565b5f6134d0603a83612672565b91506134db82613476565b604082019050919050565b5f6020820190508181035f8301526134fd816134c4565b9050919050565b5f61350e82612756565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135405761353f612aae565b5b600182019050919050565b5f61355582612756565b915061356083612756565b925082820390508181111561357857613577612aae565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6135b2602083612672565b91506135bd8261357e565b602082019050919050565b5f6020820190508181035f8301526135df816135a6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613640602683612672565b915061364b826135e6565b604082019050919050565b5f6020820190508181035f83015261366d81613634565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506136dc8161272c565b92915050565b5f602082840312156136f7576136f66126f8565b5b5f613704848285016136ce565b91505092915050565b5f819050919050565b5f61373061372b6137268461370d565b61290f565b612756565b9050919050565b61374081613716565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6137788161271b565b82525050565b5f613789838361376f565b60208301905092915050565b5f602082019050919050565b5f6137ab82613746565b6137b58185613750565b93506137c083613760565b805f5b838110156137f05781516137d7888261377e565b97506137e283613795565b9250506001810190506137c3565b5085935050505092915050565b5f60a0820190506138105f8301886127fa565b61381d6020830187613737565b818103604083015261382f81866137a1565b905061383e6060830185612983565b61384b60808301846127fa565b969550505050505056fea2646970667358221220b4817dc24c35f5f70b5dc5f378675eaefe117cfa896f9f301e7cf4340774e57f64736f6c634300081d0033

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

0000000000000000000000004e006cec671ccb45051fec898584265e952771fb

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

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


Deployed Bytecode Sourcemap

14703:10006:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9725:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10657:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15466:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10046:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15171:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10866:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15107:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9945:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11169:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22814:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15224:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15266:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15537:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18253:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14782:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21954:123;;;;;;;;;;;;;:::i;:::-;;10162:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8801:103;;;;;;;;;;;;;:::i;:::-;;8566:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9833:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17809:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11415:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10297:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22085:226;;;;;;;;;;;;;:::i;:::-;;15319:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17396:81;;;;;;;;;;;;;:::i;:::-;;22319:487;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15606:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21796:150;;;;;;;;;;;;;:::i;:::-;;10498:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15574:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15432:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15392:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8912:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15361:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15499:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9725:100;9779:13;9812:5;9805:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9725:100;:::o;10657:201::-;10740:4;10757:13;10773:12;:10;:12::i;:::-;10757:28;;10796:32;10805:5;10812:7;10821:6;10796:8;:32::i;:::-;10846:4;10839:11;;;10657:201;;;;:::o;15466:24::-;;;;:::o;10046:108::-;10107:7;10134:12;;10127:19;;10046:108;:::o;15171:46::-;;;;:::o;10866:295::-;10997:4;11014:15;11032:12;:10;:12::i;:::-;11014:30;;11055:38;11071:4;11077:7;11086:6;11055:15;:38::i;:::-;11104:27;11114:4;11120:2;11124:6;11104:9;:27::i;:::-;11149:4;11142:11;;;10866:295;;;;;:::o;15107:55::-;;;;:::o;9945:93::-;10003:5;10028:2;10021:9;;9945:93;:::o;11169:238::-;11257:4;11274:13;11290:12;:10;:12::i;:::-;11274:28;;11313:64;11322:5;11329:7;11366:10;11338:25;11348:5;11355:7;11338:9;:25::i;:::-;:38;;;;:::i;:::-;11313:8;:64::i;:::-;11395:4;11388:11;;;11169:238;;;;:::o;22814:212::-;8525:13;:11;:13::i;:::-;22915:2:::1;22904:7;:13;;:31;;;;;22933:2;22921:8;:14;;22904:31;22896:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;22982:7;22973:6;:16;;;;23010:8;23000:7;:18;;;;22814:212:::0;;:::o;15224:35::-;;;;:::o;15266:44::-;;;;:::o;15537:28::-;;;;;;;;;;;;;:::o;18253:126::-;18319:4;18343:19;:28;18363:7;18343:28;;;;;;;;;;;;;;;;;;;;;;;;;18336:35;;18253:126;;;:::o;14782:52::-;;;:::o;21954:123::-;22026:14;;;;;;;;;;;22010:30;;:12;:10;:12::i;:::-;:30;;;22002:39;;;;;;22064:5;22052:9;;:17;;;;;;;;;;;;;;;;;;21954:123::o;10162:127::-;10236:7;10263:9;:18;10273:7;10263:18;;;;;;;;;;;;;;;;10256:25;;10162:127;;;:::o;8801:103::-;8525:13;:11;:13::i;:::-;8866:30:::1;8893:1;8866:18;:30::i;:::-;8801:103::o:0;8566:87::-;8612:7;8639:6;;;;;;;;;;;8632:13;;8566:87;:::o;9833:104::-;9889:13;9922:7;9915:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9833:104;:::o;17809:242::-;8525:13;:11;:13::i;:::-;17916::::1;;;;;;;;;;;17908:21;;:4;:21;;::::0;17900:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18002:41;18031:4;18037:5;18002:28;:41::i;:::-;17809:242:::0;;:::o;11415:436::-;11508:4;11525:13;11541:12;:10;:12::i;:::-;11525:28;;11564:24;11591:25;11601:5;11608:7;11591:9;:25::i;:::-;11564:52;;11655:15;11635:16;:35;;11627:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11748:60;11757:5;11764:7;11792:15;11773:16;:34;11748:8;:60::i;:::-;11839:4;11832:11;;;;11415:436;;;;:::o;10297:193::-;10376:4;10393:13;10409:12;:10;:12::i;:::-;10393:28;;10432;10442:5;10449:2;10453:6;10432:9;:28::i;:::-;10478:4;10471:11;;;10297:193;;;;:::o;22085:226::-;22155:14;;;;;;;;;;;22139:30;;:12;:10;:12::i;:::-;:30;;;22131:39;;;;;;22213:1;22189:21;:25;22181:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22260:10;22252:28;;:51;22281:21;22252:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22085:226::o;15319:35::-;;;;:::o;17396:81::-;8525:13;:11;:13::i;:::-;17465:4:::1;17451:11;;:18;;;;;;;;;;;;;;;;;;17396:81::o:0;22319:487::-;22423:14;;;;;;;;;;;22407:30;;:12;:10;:12::i;:::-;:30;;;22399:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;22501:3;22491:6;:13;;22483:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;22556:20;22586:12;22556:43;;22610:20;22665:3;22655:6;22634:18;;:27;;;;:::i;:::-;22633:35;;;;:::i;:::-;22610:58;;22702:1;22687:12;:16;22679:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;22746:13;:22;;;22769:14;;;;;;;;;;;22785:12;22746:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22388:418;;22319:487;;:::o;15606:26::-;;;;:::o;21796:150::-;8525:13;:11;:13::i;:::-;21879:18:::1;;21856:20;:41;;;;21920:18;;21908:9;:30;;;;21796:150::o:0;10498:151::-;10587:7;10614:11;:18;10626:5;10614:18;;;;;;;;;;;;;;;:27;10633:7;10614:27;;;;;;;;;;;;;;;;10607:34;;10498:151;;;;:::o;15574:25::-;;;;:::o;15432:27::-;;;;:::o;15392:33::-;;;;:::o;8912:201::-;8525:13;:11;:13::i;:::-;9021:1:::1;9001:22;;:8;:22;;::::0;8993:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9077:28;9096:8;9077:18;:28::i;:::-;8912:201:::0;:::o;15361:24::-;;;;:::o;15499:31::-;;;;;;;;;;;;;:::o;210:98::-;263:7;290:10;283:17;;210:98;:::o;13590:380::-;13743:1;13726:19;;:5;:19;;;13718:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13824:1;13805:21;;:7;:21;;;13797:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13908:6;13878:11;:18;13890:5;13878:18;;;;;;;;;;;;;;;:27;13897:7;13878:27;;;;;;;;;;;;;;;:36;;;;13946:7;13930:32;;13939:5;13930:32;;;13955:6;13930:32;;;;;;:::i;:::-;;;;;;;;13590:380;;;:::o;13978:453::-;14113:24;14140:25;14150:5;14157:7;14140:9;:25::i;:::-;14113:52;;14200:17;14180:16;:37;14176:248;;14262:6;14242:16;:26;;14234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14346:51;14355:5;14362:7;14390:6;14371:16;:25;14346:8;:51::i;:::-;14176:248;14102:329;13978:453;;;:::o;18387:2650::-;18503:1;18487:18;;:4;:18;;;18479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18580:1;18566:16;;:2;:16;;;18558:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18649:1;18639:6;:11;18635:93;;18667:28;18683:4;18689:2;18693:1;18667:15;:28::i;:::-;18710:7;;18635:93;18759:12;;18744;:27;18740:115;;;18803:12;18788;:27;;;;18842:1;18830:9;:13;;;;18740:115;18867:15;18886:25;:31;18912:4;18886:31;;;;;;;;;;;;;;;;;;;;;;;;;18885:32;:66;;;;;18922:25;:29;18948:2;18922:29;;;;;;;;;;;;;;;;;;;;;;;;;18921:30;18885:66;18867:84;;18976:7;:5;:7::i;:::-;18968:15;;:4;:15;;;;:32;;;;;18993:7;:5;:7::i;:::-;18987:13;;:2;:13;;;;18968:32;:52;;;;;19018:1;19004:16;;:2;:16;;;;18968:52;:77;;;;;19038:6;19024:21;;:2;:21;;;;18968:77;:90;;;;;19050:8;;;;;;;;;;;19049:9;18968:90;18964:1159;;;19082:11;;;;;;;;;;;19077:140;;19122:19;:25;19142:4;19122:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19151:19;:23;19171:2;19151:23;;;;;;;;;;;;;;;;;;;;;;;;;19122:52;19114:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19077:140;19237:25;:31;19263:4;19237:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19273:31;:35;19305:2;19273:35;;;;;;;;;;;;;;;;;;;;;;;;;19272:36;19237:71;19233:879;;;19347:20;;19337:6;:30;;19329:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19478:9;;19461:13;19471:2;19461:9;:13::i;:::-;19452:6;:22;;;;:::i;:::-;:35;;19444:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19233:879;;;19550:25;:29;19576:2;19550:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19584:31;:37;19616:4;19584:37;;;;;;;;;;;;;;;;;;;;;;;;;19583:38;19550:71;19546:566;;;19660:20;;19650:6;:30;;19642:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19762:9;;;;;;;;;;;19758:175;;;19815:1;19803:9;;:13;19795:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;19902:9;;:11;;;;;;;;;:::i;:::-;;;;;;19758:175;19546:566;;;19973:31;:35;20005:2;19973:35;;;;;;;;;;;;;;;;;;;;;;;;;19968:144;;20063:9;;20046:13;20056:2;20046:9;:13::i;:::-;20037:6;:22;;;;:::i;:::-;:35;;20029:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19968:144;19546:566;19233:879;18964:1159;20135:12;20150:1;20135:16;;20162:12;20178:8;;;;;;;;;;;20177:9;:24;;;;;20191:10;20190:11;20177:24;20162:39;;20218:7;:37;;;;;20230:19;:25;20250:4;20230:25;;;;;;;;;;;;;;;;;;;;;;;;;20229:26;20218:37;:65;;;;;20260:19;:23;20280:2;20260:23;;;;;;;;;;;;;;;;;;;;;;;;;20259:24;20218:65;20214:277;;;20304:25;:29;20330:2;20304:29;;;;;;;;;;;;;;;;;;;;;;;;;20300:180;;;20361:28;20385:3;20361:19;20372:7;;20361:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;20354:35;;20300:180;;;20437:27;20460:3;20437:18;20448:6;;20437;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;20430:34;;20300:180;20214:277;20501:28;20532:24;20550:4;20532:9;:24::i;:::-;20501:55;;20569:12;20607:1;20584:20;:24;:39;;;;;20613:10;20612:11;20584:39;:52;;;;;20628:8;;;;;;;;;;;20627:9;20584:52;20569:67;;20653:7;:43;;;;;20665:25;:31;20691:4;20665:31;;;;;;;;;;;;;;;;;;;;;;;;;20664:32;20653:43;:73;;;;;20701:19;:25;20721:4;20701:25;;;;;;;;;;;;;;;;;;;;;;;;;20700:26;20653:73;:101;;;;;20731:19;:23;20751:2;20731:23;;;;;;;;;;;;;;;;;;;;;;;;;20730:24;20653:101;20649:211;;;20782:4;20771:8;;:15;;;;;;;;;;;;;;;;;;20801:16;20810:6;20801:8;:16::i;:::-;20843:5;20832:8;;:16;;;;;;;;;;;;;;;;;;20649:211;20883:1;20876:4;:8;20872:112;;;20901:42;20917:4;20931;20938;20901:15;:42::i;:::-;20968:4;20958:14;;;;;:::i;:::-;;;20872:112;20996:33;21012:4;21018:2;21022:6;20996:15;:33::i;:::-;18466:2571;;;;;18387:2650;;;;:::o;8661:132::-;8736:12;:10;:12::i;:::-;8725:23;;:7;:5;:7::i;:::-;:23;;;8717:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8661:132::o;9121:191::-;9195:16;9214:6;;;;;;;;;;;9195:25;;9240:8;9231:6;;:17;;;;;;;;;;;;;;;;;;9295:8;9264:40;;9285:8;9264:40;;;;;;;;;;;;9184:128;9121:191;:::o;18059:186::-;18176:5;18142:25;:31;18168:4;18142:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18231:5;18197:40;;18225:4;18197:40;;;;;;;;;;;;18059:186;;:::o;11859:675::-;12006:1;11990:18;;:4;:18;;;11982:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12083:1;12069:16;;:2;:16;;;12061:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12138:38;12159:4;12165:2;12169:6;12138:20;:38::i;:::-;12189:19;12211:9;:15;12221:4;12211:15;;;;;;;;;;;;;;;;12189:37;;12260:6;12245:11;:21;;12237:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12377:6;12363:11;:20;12345:9;:15;12355:4;12345:15;;;;;;;;;;;;;;;:38;;;;12415:6;12398:9;:13;12408:2;12398:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12465:2;12450:26;;12459:4;12450:26;;;12469:6;12450:26;;;;;;:::i;:::-;;;;;;;;12489:37;12509:4;12515:2;12519:6;12489:19;:37::i;:::-;11971:563;11859:675;;;:::o;6362:98::-;6420:7;6451:1;6447;:5;;;;:::i;:::-;6440:12;;6362:98;;;;:::o;6468:::-;6526:7;6557:1;6553;:5;;;;:::i;:::-;6546:12;;6468:98;;;;:::o;23034:1672::-;23087:23;23113:24;23131:4;23113:9;:24::i;:::-;23087:50;;23181:1;23162:15;:20;23158:59;;23199:7;;;23158:59;23237:20;23297:1;23285:7;;23276:6;;:16;;;;:::i;:::-;23275:23;23271:1246;;23337:1;23319:15;:19;:59;;;;;23360:18;;23342:15;:36;23319:59;23315:492;;;23414:15;23399:30;;23315:492;;;23483:21;23507:28;23531:3;23507:19;23518:7;;23507:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;23483:52;;23564:13;23554:23;;;;;:::i;:::-;;;23609:18;;23600:6;:27;23596:196;;;23667:18;;23652:33;;23596:196;;;23766:6;23751:21;;23596:196;23464:343;23315:492;23271:1246;;;23861:1;23843:15;:19;:67;;;;;23884:26;23907:2;23884:18;;:22;;:26;;;;:::i;:::-;23866:15;:44;23843:67;23839:667;;;23931:7;;;;23839:667;23994:1;23976:15;:19;:67;;;;;24017:26;24040:2;24017:18;;:22;;:26;;;;:::i;:::-;23999:15;:44;23976:67;:107;;;;;24065:18;;24047:15;:36;23976:107;23972:534;;;24119:26;24142:2;24119:18;;:22;;:26;;;;:::i;:::-;24104:41;;23972:534;;;24199:21;24223:28;24247:3;24223:19;24234:7;;24223:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24199:52;;24280:13;24270:23;;;;;:::i;:::-;;;24325:18;;24316:6;:27;24312:179;;;24383:18;;24368:33;;24312:179;;;24465:6;24450:21;;24312:179;24180:326;23972:534;23271:1246;24559:15;24544:12;:30;:63;;24595:12;24544:63;;;24577:15;24544:63;24529:78;;24639:1;24624:12;:16;24620:79;;;24657:30;24674:12;24657:16;:30::i;:::-;24620:79;23076:1630;;23034:1672;;:::o;14439:125::-;;;;:::o;14572:124::-;;;;:::o;21045:744::-;21111:23;21137:24;21155:4;21137:9;:24::i;:::-;21111:50;;21190:15;21176:11;:29;21172:91;;;21236:15;21222:29;;21172:91;21302:1;21287:11;:16;21283:55;;21320:7;;;21283:55;21350:21;21388:1;21374:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21350:40;;21419:4;21401;21406:1;21401:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21445:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21435:4;21440:1;21435:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21481:63;21498:4;21513:16;21532:11;21481:8;:63::i;:::-;21561:16;:67;;;21643:11;21669:1;21685:4;21704:15;;;;;;;;;;;21734;21561:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21557:225;21100:689;;21045:744;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:474::-;4814:6;4822;4871:2;4859:9;4850:7;4846:23;4842:32;4839:119;;;4877:79;;:::i;:::-;4839:119;4997:1;5022:53;5067:7;5058:6;5047:9;5043:22;5022:53;:::i;:::-;5012:63;;4968:117;5124:2;5150:53;5195:7;5186:6;5175:9;5171:22;5150:53;:::i;:::-;5140:63;;5095:118;4746:474;;;;;:::o;5226:329::-;5285:6;5334:2;5322:9;5313:7;5309:23;5305:32;5302:119;;;5340:79;;:::i;:::-;5302:119;5460:1;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5431:117;5226:329;;;;:::o;5561:60::-;5589:3;5610:5;5603:12;;5561:60;;;:::o;5627:142::-;5677:9;5710:53;5728:34;5737:24;5755:5;5737:24;:::i;:::-;5728:34;:::i;:::-;5710:53;:::i;:::-;5697:66;;5627:142;;;:::o;5775:126::-;5825:9;5858:37;5889:5;5858:37;:::i;:::-;5845:50;;5775:126;;;:::o;5907:151::-;5982:9;6015:37;6046:5;6015:37;:::i;:::-;6002:50;;5907:151;;;:::o;6064:181::-;6176:62;6232:5;6176:62;:::i;:::-;6171:3;6164:75;6064:181;;:::o;6251:272::-;6369:4;6407:2;6396:9;6392:18;6384:26;;6420:96;6513:1;6502:9;6498:17;6489:6;6420:96;:::i;:::-;6251:272;;;;:::o;6529:118::-;6616:24;6634:5;6616:24;:::i;:::-;6611:3;6604:37;6529:118;;:::o;6653:222::-;6746:4;6784:2;6773:9;6769:18;6761:26;;6797:71;6865:1;6854:9;6850:17;6841:6;6797:71;:::i;:::-;6653:222;;;;:::o;6881:116::-;6951:21;6966:5;6951:21;:::i;:::-;6944:5;6941:32;6931:60;;6987:1;6984;6977:12;6931:60;6881:116;:::o;7003:133::-;7046:5;7084:6;7071:20;7062:29;;7100:30;7124:5;7100:30;:::i;:::-;7003:133;;;;:::o;7142:468::-;7207:6;7215;7264:2;7252:9;7243:7;7239:23;7235:32;7232:119;;;7270:79;;:::i;:::-;7232:119;7390:1;7415:53;7460:7;7451:6;7440:9;7436:22;7415:53;:::i;:::-;7405:63;;7361:117;7517:2;7543:50;7585:7;7576:6;7565:9;7561:22;7543:50;:::i;:::-;7533:60;;7488:115;7142:468;;;;;:::o;7616:474::-;7684:6;7692;7741:2;7729:9;7720:7;7716:23;7712:32;7709:119;;;7747:79;;:::i;:::-;7709:119;7867:1;7892:53;7937:7;7928:6;7917:9;7913:22;7892:53;:::i;:::-;7882:63;;7838:117;7994:2;8020:53;8065:7;8056:6;8045:9;8041:22;8020:53;:::i;:::-;8010:63;;7965:118;7616:474;;;;;:::o;8096:180::-;8144:77;8141:1;8134:88;8241:4;8238:1;8231:15;8265:4;8262:1;8255:15;8282:320;8326:6;8363:1;8357:4;8353:12;8343:22;;8410:1;8404:4;8400:12;8431:18;8421:81;;8487:4;8479:6;8475:17;8465:27;;8421:81;8549:2;8541:6;8538:14;8518:18;8515:38;8512:84;;8568:18;;:::i;:::-;8512:84;8333:269;8282:320;;;:::o;8608:180::-;8656:77;8653:1;8646:88;8753:4;8750:1;8743:15;8777:4;8774:1;8767:15;8794:191;8834:3;8853:20;8871:1;8853:20;:::i;:::-;8848:25;;8887:20;8905:1;8887:20;:::i;:::-;8882:25;;8930:1;8927;8923:9;8916:16;;8951:3;8948:1;8945:10;8942:36;;;8958:18;;:::i;:::-;8942:36;8794:191;;;;:::o;8991:172::-;9131:24;9127:1;9119:6;9115:14;9108:48;8991:172;:::o;9169:366::-;9311:3;9332:67;9396:2;9391:3;9332:67;:::i;:::-;9325:74;;9408:93;9497:3;9408:93;:::i;:::-;9526:2;9521:3;9517:12;9510:19;;9169:366;;;:::o;9541:419::-;9707:4;9745:2;9734:9;9730:18;9722:26;;9794:9;9788:4;9784:20;9780:1;9769:9;9765:17;9758:47;9822:131;9948:4;9822:131;:::i;:::-;9814:139;;9541:419;;;:::o;9966:244::-;10106:34;10102:1;10094:6;10090:14;10083:58;10175:27;10170:2;10162:6;10158:15;10151:52;9966:244;:::o;10216:366::-;10358:3;10379:67;10443:2;10438:3;10379:67;:::i;:::-;10372:74;;10455:93;10544:3;10455:93;:::i;:::-;10573:2;10568:3;10564:12;10557:19;;10216:366;;;:::o;10588:419::-;10754:4;10792:2;10781:9;10777:18;10769:26;;10841:9;10835:4;10831:20;10827:1;10816:9;10812:17;10805:47;10869:131;10995:4;10869:131;:::i;:::-;10861:139;;10588:419;;;:::o;11013:224::-;11153:34;11149:1;11141:6;11137:14;11130:58;11222:7;11217:2;11209:6;11205:15;11198:32;11013:224;:::o;11243:366::-;11385:3;11406:67;11470:2;11465:3;11406:67;:::i;:::-;11399:74;;11482:93;11571:3;11482:93;:::i;:::-;11600:2;11595:3;11591:12;11584:19;;11243:366;;;:::o;11615:419::-;11781:4;11819:2;11808:9;11804:18;11796:26;;11868:9;11862:4;11858:20;11854:1;11843:9;11839:17;11832:47;11896:131;12022:4;11896:131;:::i;:::-;11888:139;;11615:419;;;:::o;12040:172::-;12180:24;12176:1;12168:6;12164:14;12157:48;12040:172;:::o;12218:366::-;12360:3;12381:67;12445:2;12440:3;12381:67;:::i;:::-;12374:74;;12457:93;12546:3;12457:93;:::i;:::-;12575:2;12570:3;12566:12;12559:19;;12218:366;;;:::o;12590:419::-;12756:4;12794:2;12783:9;12779:18;12771:26;;12843:9;12837:4;12833:20;12829:1;12818:9;12814:17;12807:47;12871:131;12997:4;12871:131;:::i;:::-;12863:139;;12590:419;;;:::o;13015:180::-;13155:32;13151:1;13143:6;13139:14;13132:56;13015:180;:::o;13201:366::-;13343:3;13364:67;13428:2;13423:3;13364:67;:::i;:::-;13357:74;;13440:93;13529:3;13440:93;:::i;:::-;13558:2;13553:3;13549:12;13542:19;;13201:366;;;:::o;13573:419::-;13739:4;13777:2;13766:9;13762:18;13754:26;;13826:9;13820:4;13816:20;13812:1;13801:9;13797:17;13790:47;13854:131;13980:4;13854:131;:::i;:::-;13846:139;;13573:419;;;:::o;13998:223::-;14138:34;14134:1;14126:6;14122:14;14115:58;14207:6;14202:2;14194:6;14190:15;14183:31;13998:223;:::o;14227:366::-;14369:3;14390:67;14454:2;14449:3;14390:67;:::i;:::-;14383:74;;14466:93;14555:3;14466:93;:::i;:::-;14584:2;14579:3;14575:12;14568:19;;14227:366;;;:::o;14599:419::-;14765:4;14803:2;14792:9;14788:18;14780:26;;14852:9;14846:4;14842:20;14838:1;14827:9;14823:17;14816:47;14880:131;15006:4;14880:131;:::i;:::-;14872:139;;14599:419;;;:::o;15024:410::-;15064:7;15087:20;15105:1;15087:20;:::i;:::-;15082:25;;15121:20;15139:1;15121:20;:::i;:::-;15116:25;;15176:1;15173;15169:9;15198:30;15216:11;15198:30;:::i;:::-;15187:41;;15377:1;15368:7;15364:15;15361:1;15358:22;15338:1;15331:9;15311:83;15288:139;;15407:18;;:::i;:::-;15288:139;15072:362;15024:410;;;;:::o;15440:180::-;15488:77;15485:1;15478:88;15585:4;15582:1;15575:15;15609:4;15606:1;15599:15;15626:185;15666:1;15683:20;15701:1;15683:20;:::i;:::-;15678:25;;15717:20;15735:1;15717:20;:::i;:::-;15712:25;;15756:1;15746:35;;15761:18;;:::i;:::-;15746:35;15803:1;15800;15796:9;15791:14;;15626:185;;;;:::o;15817:167::-;15957:19;15953:1;15945:6;15941:14;15934:43;15817:167;:::o;15990:366::-;16132:3;16153:67;16217:2;16212:3;16153:67;:::i;:::-;16146:74;;16229:93;16318:3;16229:93;:::i;:::-;16347:2;16342:3;16338:12;16331:19;;15990:366;;;:::o;16362:419::-;16528:4;16566:2;16555:9;16551:18;16543:26;;16615:9;16609:4;16605:20;16601:1;16590:9;16586:17;16579:47;16643:131;16769:4;16643:131;:::i;:::-;16635:139;;16362:419;;;:::o;16787:332::-;16908:4;16946:2;16935:9;16931:18;16923:26;;16959:71;17027:1;17016:9;17012:17;17003:6;16959:71;:::i;:::-;17040:72;17108:2;17097:9;17093:18;17084:6;17040:72;:::i;:::-;16787:332;;;;;:::o;17125:137::-;17179:5;17210:6;17204:13;17195:22;;17226:30;17250:5;17226:30;:::i;:::-;17125:137;;;;:::o;17268:345::-;17335:6;17384:2;17372:9;17363:7;17359:23;17355:32;17352:119;;;17390:79;;:::i;:::-;17352:119;17510:1;17535:61;17588:7;17579:6;17568:9;17564:22;17535:61;:::i;:::-;17525:71;;17481:125;17268:345;;;;:::o;17619:225::-;17759:34;17755:1;17747:6;17743:14;17736:58;17828:8;17823:2;17815:6;17811:15;17804:33;17619:225;:::o;17850:366::-;17992:3;18013:67;18077:2;18072:3;18013:67;:::i;:::-;18006:74;;18089:93;18178:3;18089:93;:::i;:::-;18207:2;18202:3;18198:12;18191:19;;17850:366;;;:::o;18222:419::-;18388:4;18426:2;18415:9;18411:18;18403:26;;18475:9;18469:4;18465:20;18461:1;18450:9;18446:17;18439:47;18503:131;18629:4;18503:131;:::i;:::-;18495:139;;18222:419;;;:::o;18647:223::-;18787:34;18783:1;18775:6;18771:14;18764:58;18856:6;18851:2;18843:6;18839:15;18832:31;18647:223;:::o;18876:366::-;19018:3;19039:67;19103:2;19098:3;19039:67;:::i;:::-;19032:74;;19115:93;19204:3;19115:93;:::i;:::-;19233:2;19228:3;19224:12;19217:19;;18876:366;;;:::o;19248:419::-;19414:4;19452:2;19441:9;19437:18;19429:26;;19501:9;19495:4;19491:20;19487:1;19476:9;19472:17;19465:47;19529:131;19655:4;19529:131;:::i;:::-;19521:139;;19248:419;;;:::o;19673:221::-;19813:34;19809:1;19801:6;19797:14;19790:58;19882:4;19877:2;19869:6;19865:15;19858:29;19673:221;:::o;19900:366::-;20042:3;20063:67;20127:2;20122:3;20063:67;:::i;:::-;20056:74;;20139:93;20228:3;20139:93;:::i;:::-;20257:2;20252:3;20248:12;20241:19;;19900:366;;;:::o;20272:419::-;20438:4;20476:2;20465:9;20461:18;20453:26;;20525:9;20519:4;20515:20;20511:1;20500:9;20496:17;20489:47;20553:131;20679:4;20553:131;:::i;:::-;20545:139;;20272:419;;;:::o;20697:179::-;20837:31;20833:1;20825:6;20821:14;20814:55;20697:179;:::o;20882:366::-;21024:3;21045:67;21109:2;21104:3;21045:67;:::i;:::-;21038:74;;21121:93;21210:3;21121:93;:::i;:::-;21239:2;21234:3;21230:12;21223:19;;20882:366;;;:::o;21254:419::-;21420:4;21458:2;21447:9;21443:18;21435:26;;21507:9;21501:4;21497:20;21493:1;21482:9;21478:17;21471:47;21535:131;21661:4;21535:131;:::i;:::-;21527:139;;21254:419;;;:::o;21679:224::-;21819:34;21815:1;21807:6;21803:14;21796:58;21888:7;21883:2;21875:6;21871:15;21864:32;21679:224;:::o;21909:366::-;22051:3;22072:67;22136:2;22131:3;22072:67;:::i;:::-;22065:74;;22148:93;22237:3;22148:93;:::i;:::-;22266:2;22261:3;22257:12;22250:19;;21909:366;;;:::o;22281:419::-;22447:4;22485:2;22474:9;22470:18;22462:26;;22534:9;22528:4;22524:20;22520:1;22509:9;22505:17;22498:47;22562:131;22688:4;22562:131;:::i;:::-;22554:139;;22281:419;;;:::o;22706:222::-;22846:34;22842:1;22834:6;22830:14;22823:58;22915:5;22910:2;22902:6;22898:15;22891:30;22706:222;:::o;22934:366::-;23076:3;23097:67;23161:2;23156:3;23097:67;:::i;:::-;23090:74;;23173:93;23262:3;23173:93;:::i;:::-;23291:2;23286:3;23282:12;23275:19;;22934:366;;;:::o;23306:419::-;23472:4;23510:2;23499:9;23495:18;23487:26;;23559:9;23553:4;23549:20;23545:1;23534:9;23530:17;23523:47;23587:131;23713:4;23587:131;:::i;:::-;23579:139;;23306:419;;;:::o;23731:172::-;23871:24;23867:1;23859:6;23855:14;23848:48;23731:172;:::o;23909:366::-;24051:3;24072:67;24136:2;24131:3;24072:67;:::i;:::-;24065:74;;24148:93;24237:3;24148:93;:::i;:::-;24266:2;24261:3;24257:12;24250:19;;23909:366;;;:::o;24281:419::-;24447:4;24485:2;24474:9;24470:18;24462:26;;24534:9;24528:4;24524:20;24520:1;24509:9;24505:17;24498:47;24562:131;24688:4;24562:131;:::i;:::-;24554:139;;24281:419;;;:::o;24706:240::-;24846:34;24842:1;24834:6;24830:14;24823:58;24915:23;24910:2;24902:6;24898:15;24891:48;24706:240;:::o;24952:366::-;25094:3;25115:67;25179:2;25174:3;25115:67;:::i;:::-;25108:74;;25191:93;25280:3;25191:93;:::i;:::-;25309:2;25304:3;25300:12;25293:19;;24952:366;;;:::o;25324:419::-;25490:4;25528:2;25517:9;25513:18;25505:26;;25577:9;25571:4;25567:20;25563:1;25552:9;25548:17;25541:47;25605:131;25731:4;25605:131;:::i;:::-;25597:139;;25324:419;;;:::o;25749:169::-;25889:21;25885:1;25877:6;25873:14;25866:45;25749:169;:::o;25924:366::-;26066:3;26087:67;26151:2;26146:3;26087:67;:::i;:::-;26080:74;;26163:93;26252:3;26163:93;:::i;:::-;26281:2;26276:3;26272:12;26265:19;;25924:366;;;:::o;26296:419::-;26462:4;26500:2;26489:9;26485:18;26477:26;;26549:9;26543:4;26539:20;26535:1;26524:9;26520:17;26513:47;26577:131;26703:4;26577:131;:::i;:::-;26569:139;;26296:419;;;:::o;26721:241::-;26861:34;26857:1;26849:6;26845:14;26838:58;26930:24;26925:2;26917:6;26913:15;26906:49;26721:241;:::o;26968:366::-;27110:3;27131:67;27195:2;27190:3;27131:67;:::i;:::-;27124:74;;27207:93;27296:3;27207:93;:::i;:::-;27325:2;27320:3;27316:12;27309:19;;26968:366;;;:::o;27340:419::-;27506:4;27544:2;27533:9;27529:18;27521:26;;27593:9;27587:4;27583:20;27579:1;27568:9;27564:17;27557:47;27621:131;27747:4;27621:131;:::i;:::-;27613:139;;27340:419;;;:::o;27765:245::-;27905:34;27901:1;27893:6;27889:14;27882:58;27974:28;27969:2;27961:6;27957:15;27950:53;27765:245;:::o;28016:366::-;28158:3;28179:67;28243:2;28238:3;28179:67;:::i;:::-;28172:74;;28255:93;28344:3;28255:93;:::i;:::-;28373:2;28368:3;28364:12;28357:19;;28016:366;;;:::o;28388:419::-;28554:4;28592:2;28581:9;28577:18;28569:26;;28641:9;28635:4;28631:20;28627:1;28616:9;28612:17;28605:47;28669:131;28795:4;28669:131;:::i;:::-;28661:139;;28388:419;;;:::o;28813:233::-;28852:3;28875:24;28893:5;28875:24;:::i;:::-;28866:33;;28921:66;28914:5;28911:77;28908:103;;28991:18;;:::i;:::-;28908:103;29038:1;29031:5;29027:13;29020:20;;28813:233;;;:::o;29052:194::-;29092:4;29112:20;29130:1;29112:20;:::i;:::-;29107:25;;29146:20;29164:1;29146:20;:::i;:::-;29141:25;;29190:1;29187;29183:9;29175:17;;29214:1;29208:4;29205:11;29202:37;;;29219:18;;:::i;:::-;29202:37;29052:194;;;;:::o;29252:182::-;29392:34;29388:1;29380:6;29376:14;29369:58;29252:182;:::o;29440:366::-;29582:3;29603:67;29667:2;29662:3;29603:67;:::i;:::-;29596:74;;29679:93;29768:3;29679:93;:::i;:::-;29797:2;29792:3;29788:12;29781:19;;29440:366;;;:::o;29812:419::-;29978:4;30016:2;30005:9;30001:18;29993:26;;30065:9;30059:4;30055:20;30051:1;30040:9;30036:17;30029:47;30093:131;30219:4;30093:131;:::i;:::-;30085:139;;29812:419;;;:::o;30237:225::-;30377:34;30373:1;30365:6;30361:14;30354:58;30446:8;30441:2;30433:6;30429:15;30422:33;30237:225;:::o;30468:366::-;30610:3;30631:67;30695:2;30690:3;30631:67;:::i;:::-;30624:74;;30707:93;30796:3;30707:93;:::i;:::-;30825:2;30820:3;30816:12;30809:19;;30468:366;;;:::o;30840:419::-;31006:4;31044:2;31033:9;31029:18;31021:26;;31093:9;31087:4;31083:20;31079:1;31068:9;31064:17;31057:47;31121:131;31247:4;31121:131;:::i;:::-;31113:139;;30840:419;;;:::o;31265:180::-;31313:77;31310:1;31303:88;31410:4;31407:1;31400:15;31434:4;31431:1;31424:15;31451:180;31499:77;31496:1;31489:88;31596:4;31593:1;31586:15;31620:4;31617:1;31610:15;31637:143;31694:5;31725:6;31719:13;31710:22;;31741:33;31768:5;31741:33;:::i;:::-;31637:143;;;;:::o;31786:351::-;31856:6;31905:2;31893:9;31884:7;31880:23;31876:32;31873:119;;;31911:79;;:::i;:::-;31873:119;32031:1;32056:64;32112:7;32103:6;32092:9;32088:22;32056:64;:::i;:::-;32046:74;;32002:128;31786:351;;;;:::o;32143:85::-;32188:7;32217:5;32206:16;;32143:85;;;:::o;32234:158::-;32292:9;32325:61;32343:42;32352:32;32378:5;32352:32;:::i;:::-;32343:42;:::i;:::-;32325:61;:::i;:::-;32312:74;;32234:158;;;:::o;32398:147::-;32493:45;32532:5;32493:45;:::i;:::-;32488:3;32481:58;32398:147;;:::o;32551:114::-;32618:6;32652:5;32646:12;32636:22;;32551:114;;;:::o;32671:184::-;32770:11;32804:6;32799:3;32792:19;32844:4;32839:3;32835:14;32820:29;;32671:184;;;;:::o;32861:132::-;32928:4;32951:3;32943:11;;32981:4;32976:3;32972:14;32964:22;;32861:132;;;:::o;32999:108::-;33076:24;33094:5;33076:24;:::i;:::-;33071:3;33064:37;32999:108;;:::o;33113:179::-;33182:10;33203:46;33245:3;33237:6;33203:46;:::i;:::-;33281:4;33276:3;33272:14;33258:28;;33113:179;;;;:::o;33298:113::-;33368:4;33400;33395:3;33391:14;33383:22;;33298:113;;;:::o;33447:732::-;33566:3;33595:54;33643:5;33595:54;:::i;:::-;33665:86;33744:6;33739:3;33665:86;:::i;:::-;33658:93;;33775:56;33825:5;33775:56;:::i;:::-;33854:7;33885:1;33870:284;33895:6;33892:1;33889:13;33870:284;;;33971:6;33965:13;33998:63;34057:3;34042:13;33998:63;:::i;:::-;33991:70;;34084:60;34137:6;34084:60;:::i;:::-;34074:70;;33930:224;33917:1;33914;33910:9;33905:14;;33870:284;;;33874:14;34170:3;34163:10;;33571:608;;;33447:732;;;;:::o;34185:831::-;34448:4;34486:3;34475:9;34471:19;34463:27;;34500:71;34568:1;34557:9;34553:17;34544:6;34500:71;:::i;:::-;34581:80;34657:2;34646:9;34642:18;34633:6;34581:80;:::i;:::-;34708:9;34702:4;34698:20;34693:2;34682:9;34678:18;34671:48;34736:108;34839:4;34830:6;34736:108;:::i;:::-;34728:116;;34854:72;34922:2;34911:9;34907:18;34898:6;34854:72;:::i;:::-;34936:73;35004:3;34993:9;34989:19;34980:6;34936:73;:::i;:::-;34185:831;;;;;;;;:::o

Swarm Source

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