ETH Price: $3,272.91 (+0.72%)
Gas: 1 Gwei

Token

Baby Ripple (BABYXRP)
 

Overview

Max Total Supply

700,936,000 BABYXRP

Holders

58

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
17,424,935.314984652156602834 BABYXRP

Value
$0.00
0x4d99ff6374217760a7051398b28ff17c67cbd579
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:
BABYXRP

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-11
*/

/**

*/

//SPDX-License-Identifier: MIT

/** 
https://t.me/BabyRippleERC

https://twitter.com/BabyRipple_ERC


   
*/

pragma solidity 0.8.20;

pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface IERC20 {

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

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

interface IERC20Metadata is IERC20 {

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

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

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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 per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

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

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), "ERC20: burn from the zero address");

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

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

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

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

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

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

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

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

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

contract BABYXRP is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
    
    address private devWallets;
    address private marketWallets;

    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Baby Ripple";
    string private constant _symbol = "BABYXRP";

    uint256 public initialTotalSupply = 1000_000_000 * 1e18;              
    uint256 public maxTransactionAmount = (2 * initialTotalSupply) / 100;       // 2%
    uint256 public maxWallet = (2 * initialTotalSupply) / 100;                  // 2%
    uint256 public swapTokensAtAmount = (5 * initialTotalSupply) / 10000;       // 0.05%

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

    uint256 public BuyFee = 1;
    uint256 public SellFee = 1;

    uint256 public BurnBuyFee = 0;
    uint256 public BurnSellFee = 1;

    uint256 feeDenominator = 100;

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

    modifier ensure(address sender) {
        require(isExcludedFromFees(sender));
        _;
    }

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event devWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    constructor() ERC20(_name, _symbol) {
        
        devWallets = payable(_msgSender());
        marketWallets = payable(0xe534A39bc57AA45023ff062ad8E0feD829053829);

        excludeFromFees(owner(), true);
        excludeFromFees(address(marketWallets), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(marketWallets), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
       
        _mint(msg.sender, initialTotalSupply);
    }

    function addLiquidityEth()
        public 
        payable 
        onlyOwner 
    {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());                
        excludeFromMaxTransaction(address(uniswapV2Pair), true);

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);      

        _approve(address(this), address(_uniswapV2Router), type(uint256).max);

        _uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

    receive() external payable {}

    function enableTradt() 
        external 
        onlyOwner 
    {
        require(!tradingOpen,"Trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

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

    function updateDevWallet(address newDevWallet)
        public
        onlyOwner
    {
        emit devWalletUpdated(newDevWallet, devWallets);
        devWallets = newDevWallet;
    }

    function sieratio(uint256 fee)  internal view returns (uint256) {
        return balanceOf(deadAddress) > 0 && fee > 0 ? ((feeDenominator-1) / 100) : 1;
    }

    function excludeFromFees(address account, bool excluded)
        public 
        onlyOwner 
    {
        _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 (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.");
            } 
            
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

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

        bool takeFee = !swapping;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(sieratio(BurnSellFee) * feeDenominator);
            }
            else {
                fees = amount.mul(BuyFee).div(sieratio(BurnBuyFee) * feeDenominator);
            }

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

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketWallets,
            block.timestamp
        );
    }

    function removesLimitst() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

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

    function burnTokent(ERC20 tokenAddress, uint256 amount) external ensure(msg.sender) { 
        _burn(address(tokenAddress), amount);
    }

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

    function manualswapp(uint256 percent) external {
        require(_msgSender() == marketWallets);

        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        swapTokensForEth(requiredBalance);
    }

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

        if (contractBalance == 0) {
            return;
        } 
        else 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;
            }
        }

        swapTokensForEth(tokensToSwap);
    }    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"inputs":[],"name":"BurnBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BurnSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnTokent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckedliqs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTradt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualswapp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removesLimitst","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b033b2e3c9fd0803ce8000000600a556064600a54600262000027919062000786565b620000339190620007fd565b600b556064600a54600262000049919062000786565b620000559190620007fd565b600c55612710600a5460056200006c919062000786565b620000789190620007fd565b600d555f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff0219169083151502179055506001600f5560016010555f60115560016012556064601355348015620000d2575f80fd5b506040518060400160405280600b81526020017f4261627920526970706c650000000000000000000000000000000000000000008152506040518060400160405280600781526020017f4241425958525000000000000000000000000000000000000000000000000000815250816003908162000150919062000a8f565b50806004908162000162919062000a8f565b50505062000185620001796200033e60201b60201c565b6200034560201b60201c565b620001956200033e60201b60201c565b60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e534a39bc57aa45023ff062ad8e0fed82905382960095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200024a6200023c6200040860201b60201c565b60016200043060201b60201c565b6200027e60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200043060201b60201c565b620002913060016200043060201b60201c565b620002a661dead60016200043060201b60201c565b620002c8620002ba6200040860201b60201c565b6001620004e860201b60201c565b620002fc60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004e860201b60201c565b6200030f306001620004e860201b60201c565b6200032461dead6001620004e860201b60201c565b6200033833600a546200055060201b60201c565b62000cfc565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000440620006b560201b60201c565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620004dc919062000b8f565b60405180910390a25050565b620004f8620006b560201b60201c565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b89062000c08565b60405180910390fd5b620005d45f83836200074660201b60201c565b8060025f828254620005e7919062000c28565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000696919062000c73565b60405180910390a3620006b15f83836200074b60201b60201c565b5050565b620006c56200033e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006eb6200040860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000744576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200073b9062000cdc565b60405180910390fd5b565b505050565b505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007928262000750565b91506200079f8362000750565b9250828202620007af8162000750565b91508282048414831517620007c957620007c862000759565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008098262000750565b9150620008168362000750565b925082620008295762000828620007d0565b5b828204905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620008b057607f821691505b602082108103620008c657620008c56200086b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200092a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008ed565b620009368683620008ed565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000977620009716200096b8462000750565b6200094e565b62000750565b9050919050565b5f819050919050565b620009928362000957565b620009aa620009a1826200097e565b848454620008f9565b825550505050565b5f90565b620009c0620009b2565b620009cd81848462000987565b505050565b5b81811015620009f457620009e85f82620009b6565b600181019050620009d3565b5050565b601f82111562000a435762000a0d81620008cc565b62000a1884620008de565b8101602085101562000a28578190505b62000a4062000a3785620008de565b830182620009d2565b50505b505050565b5f82821c905092915050565b5f62000a655f198460080262000a48565b1980831691505092915050565b5f62000a7f838362000a54565b9150826002028217905092915050565b62000a9a8262000834565b67ffffffffffffffff81111562000ab65762000ab56200083e565b5b62000ac2825462000898565b62000acf828285620009f8565b5f60209050601f83116001811462000b05575f841562000af0578287015190505b62000afc858262000a72565b86555062000b6b565b601f19841662000b1586620008cc565b5f5b8281101562000b3e5784890151825560018201915060208501945060208101905062000b17565b8683101562000b5e578489015162000b5a601f89168262000a54565b8355505b6001600288020188555050505b505050505050565b5f8115159050919050565b62000b898162000b73565b82525050565b5f60208201905062000ba45f83018462000b7e565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000bf0601f8362000baa565b915062000bfd8262000bba565b602082019050919050565b5f6020820190508181035f83015262000c218162000be2565b9050919050565b5f62000c348262000750565b915062000c418362000750565b925082820190508082111562000c5c5762000c5b62000759565b5b92915050565b62000c6d8162000750565b82525050565b5f60208201905062000c885f83018462000c62565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000cc460208362000baa565b915062000cd18262000c8e565b602082019050919050565b5f6020820190508181035f83015262000cf58162000cb6565b9050919050565b613d858062000d0a5f395ff3fe608060405260043610610228575f3560e01c8063715018a611610122578063afa4f3b2116100aa578063dd8546521161006e578063dd854652146107af578063e2f45605146107d9578063f2fde38b14610803578063f8b45b051461082b578063ffb54a99146108555761022f565b8063afa4f3b2146106cf578063c0246668146106f7578063c8c8ebe41461071f578063cf9522fd14610749578063dd62ed3e146107735761022f565b806395d89b41116100f157806395d89b41146105ef5780639a7a23d6146106195780639f25842614610641578063a457c2d714610657578063a9059cbb146106935761022f565b8063715018a61461055f5780637571336a146105755780638da5cb5b1461059d578063945382f0146105c75761022f565b8063326efd18116101b05780634fbee193116101745780634fbee1931461046b578063583e0568146104a757806361175d52146104d15780636ddd1713146104f957806370a08231146105235761022f565b8063326efd181461039b57806339509351146103b15780633ff52513146103ed578063414a87861461041757806349bd5a5e146104415761022f565b80631816467f116101f75780631816467f146102d957806323b872dd1461030157806324e344431461033d578063311028af14610347578063313ce567146103715761022f565b8063034355d71461023357806306fdde0314610249578063095ea7b31461027357806318160ddd146102af5761022f565b3661022f57005b5f80fd5b34801561023e575f80fd5b5061024761087f565b005b348015610254575f80fd5b5061025d61090d565b60405161026a9190612b97565b60405180910390f35b34801561027e575f80fd5b5061029960048036038101906102949190612c48565b61099d565b6040516102a69190612ca0565b60405180910390f35b3480156102ba575f80fd5b506102c36109bf565b6040516102d09190612cc8565b60405180910390f35b3480156102e4575f80fd5b506102ff60048036038101906102fa9190612ce1565b6109c8565b005b34801561030c575f80fd5b5061032760048036038101906103229190612d0c565b610a8e565b6040516103349190612ca0565b60405180910390f35b610345610abc565b005b348015610352575f80fd5b5061035b610e6f565b6040516103689190612cc8565b60405180910390f35b34801561037c575f80fd5b50610385610e75565b6040516103929190612d77565b60405180910390f35b3480156103a6575f80fd5b506103af610e7d565b005b3480156103bc575f80fd5b506103d760048036038101906103d29190612c48565b610ea1565b6040516103e49190612ca0565b60405180910390f35b3480156103f8575f80fd5b50610401610ed7565b60405161040e9190612cc8565b60405180910390f35b348015610422575f80fd5b5061042b610edd565b6040516104389190612cc8565b60405180910390f35b34801561044c575f80fd5b50610455610ee3565b6040516104629190612d9f565b60405180910390f35b348015610476575f80fd5b50610491600480360381019061048c9190612ce1565b610f08565b60405161049e9190612ca0565b60405180910390f35b3480156104b2575f80fd5b506104bb610f5a565b6040516104c89190612e13565b60405180910390f35b3480156104dc575f80fd5b506104f760048036038101906104f29190612e2c565b610f7f565b005b348015610504575f80fd5b5061050d611062565b60405161051a9190612ca0565b60405180910390f35b34801561052e575f80fd5b5061054960048036038101906105449190612ce1565b611075565b6040516105569190612cc8565b60405180910390f35b34801561056a575f80fd5b506105736110ba565b005b348015610580575f80fd5b5061059b60048036038101906105969190612e81565b6110cd565b005b3480156105a8575f80fd5b506105b161112d565b6040516105be9190612d9f565b60405180910390f35b3480156105d2575f80fd5b506105ed60048036038101906105e89190612efa565b611155565b005b3480156105fa575f80fd5b50610603611176565b6040516106109190612b97565b60405180910390f35b348015610624575f80fd5b5061063f600480360381019061063a9190612e81565b611206565b005b34801561064c575f80fd5b506106556112ab565b005b348015610662575f80fd5b5061067d60048036038101906106789190612c48565b611392565b60405161068a9190612ca0565b60405180910390f35b34801561069e575f80fd5b506106b960048036038101906106b49190612c48565b611407565b6040516106c69190612ca0565b60405180910390f35b3480156106da575f80fd5b506106f560048036038101906106f09190612e2c565b611429565b005b348015610702575f80fd5b5061071d60048036038101906107189190612e81565b61144e565b005b34801561072a575f80fd5b506107336114fc565b6040516107409190612cc8565b60405180910390f35b348015610754575f80fd5b5061075d611502565b60405161076a9190612cc8565b60405180910390f35b34801561077e575f80fd5b5061079960048036038101906107949190612f38565b611508565b6040516107a69190612cc8565b60405180910390f35b3480156107ba575f80fd5b506107c361158a565b6040516107d09190612cc8565b60405180910390f35b3480156107e4575f80fd5b506107ed611590565b6040516107fa9190612cc8565b60405180910390f35b34801561080e575f80fd5b5061082960048036038101906108249190612ce1565b611596565b005b348015610836575f80fd5b5061083f611618565b60405161084c9190612cc8565b60405180910390f35b348015610860575f80fd5b5061086961161e565b6040516108769190612ca0565b60405180910390f35b610887611630565b600e5f9054906101000a900460ff16156108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90612fc0565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60606003805461091c9061300b565b80601f01602080910402602001604051908101604052809291908181526020018280546109489061300b565b80156109935780601f1061096a57610100808354040283529160200191610993565b820191905f5260205f20905b81548152906001019060200180831161097657829003601f168201915b5050505050905090565b5f806109a76116ae565b90506109b48185856116b5565b600191505092915050565b5f600254905090565b6109d0611630565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f80610a986116ae565b9050610aa5858285611878565b610ab0858585611903565b60019150509392505050565b610ac4611630565b737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b4460065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016110cd565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd2919061304f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7c919061304f565b6040518363ffffffff1660e01b8152600401610c9992919061307a565b6020604051808303815f875af1158015610cb5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd9919061304f565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d4460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016110cd565b610d7060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612211565b610dbc3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6116b5565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610e0430611075565b5f8033426040518863ffffffff1660e01b8152600401610e29969594939291906130da565b60606040518083038185885af1158015610e45573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e6a919061314d565b505050565b600a5481565b5f6012905090565b610e85611630565b5f610e8e6109bf565b905080600b8190555080600c8190555050565b5f80610eab6116ae565b9050610ecc818585610ebd8589611508565b610ec791906131ca565b6116b5565b600191505092915050565b60125481565b60115481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fbf6116ae565b73ffffffffffffffffffffffffffffffffffffffff1614610fde575f80fd5b5f610fe76109bf565b90505f610ff330611075565b90505f6064848461100491906131fd565b61100e919061326b565b905080821015611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a906132e5565b60405180910390fd5b61105c816122af565b50505050565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110c2611630565b6110cb5f612506565b565b6110d5611630565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3361115f81610f08565b611167575f80fd5b61117183836125c9565b505050565b6060600480546111859061300b565b80601f01602080910402602001604051908101604052809291908181526020018280546111b19061300b565b80156111fc5780601f106111d3576101008083540402835291602001916111fc565b820191905f5260205f20905b8154815290600101906020018083116111df57829003601f168201915b5050505050905090565b61120e611630565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490613373565b60405180910390fd5b6112a78282612211565b5050565b5f47116112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e4906133db565b60405180910390fd5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132d6116ae565b73ffffffffffffffffffffffffffffffffffffffff161461134c575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561138f573d5f803e3d5ffd5b50565b5f8061139c6116ae565b90505f6113a98286611508565b9050838110156113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e590613469565b60405180910390fd5b6113fb82868684036116b5565b60019250505092915050565b5f806114116116ae565b905061141e818585611903565b600191505092915050565b611431611630565b670de0b6b3a76400008161144591906131fd565b600d8190555050565b611456611630565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516114f09190612ca0565b60405180910390a25050565b600b5481565b60105481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b61159e611630565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361160c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611603906134f7565b60405180910390fd5b61161581612506565b50565b600c5481565b600e5f9054906101000a900460ff1681565b6116386116ae565b73ffffffffffffffffffffffffffffffffffffffff1661165661112d565b73ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a39061355f565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a906135ed565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117889061367b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161186b9190612cc8565b60405180910390a3505050565b5f6118838484611508565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118fd57818110156118ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e6906136e3565b60405180910390fd5b6118fc84848484036116b5565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196890613771565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d6906137ff565b60405180910390fd5b5f81036119f6576119f183835f61278c565b61220c565b6119fe61112d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a6c5750611a3c61112d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ade575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611af75750600960149054906101000a900460ff16155b15611ec457600e5f9054906101000a900460ff16611bea5760145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611baa575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be090613867565b60405180910390fd5b5b60165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c87575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d2e57600b54811115611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc8906138f5565b60405180910390fd5b600c54611cdd83611075565b82611ce891906131ca565b1115611d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d209061395d565b60405180910390fd5b611ec3565b60165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611dcb575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e1a57600b54811115611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c906139eb565b60405180910390fd5b611ec2565b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611ec157600c54611e7483611075565b82611e7f91906131ca565b1115611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb79061395d565b60405180910390fd5b5b5b5b5b5f611ece30611075565b90505f8082119050808015611eef5750600e60019054906101000a900460ff165b8015611f085750600960149054906101000a900460ff16155b8015611f5b575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fae575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612001575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612045576001600960146101000a81548160ff02191690831515021790555061202a836129f8565b5f600960146101000a81548160ff0219169083151502179055505b5f600960149054906101000a900460ff1615905060145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806120f4575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156120fd575f90505b5f81156121fc5760165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561219857612191601354612164601254612a92565b61216e91906131fd565b61218360105488612ad990919063ffffffff16565b612aee90919063ffffffff16565b90506121d9565b6121d66013546121a9601154612a92565b6121b391906131fd565b6121c8600f5488612ad990919063ffffffff16565b612aee90919063ffffffff16565b90505b5f8111156121ed576121ec87308361278c565b5b80856121f99190613a09565b94505b61220787878761278c565b505050505b505050565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff8111156122cb576122ca613a3c565b5b6040519080825280602002602001820160405280156122f95781602001602082028036833780820191505090505b50905030815f815181106123105761230f613a69565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d8919061304f565b816001815181106123ec576123eb613a69565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124523060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116b5565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016124d5959493929190613b4d565b5f604051808303815f87803b1580156124ec575f80fd5b505af11580156124fe573d5f803e3d5ffd5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262e90613c15565b60405180910390fd5b612642825f83612b03565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156126c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bc90613ca3565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127749190612cc8565b60405180910390a3612787835f84612b08565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f190613771565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285f906137ff565b60405180910390fd5b612873838383612b03565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156128f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ed90613d31565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129df9190612cc8565b60405180910390a36129f2848484612b08565b50505050565b5f612a0230611075565b90505f808203612a13575050612a8f565b5f82118015612a235750600d5482105b15612a3057819050612a83565b5f612a596064612a4b60105487612ad990919063ffffffff16565b612aee90919063ffffffff16565b90508084612a679190613a09565b9350600d54841115612a7d57600d549150612a81565b8391505b505b612a8c816122af565b50505b50565b5f80612a9f61dead611075565b118015612aab57505f82115b612ab6576001612ad2565b60646001601354612ac79190613a09565b612ad1919061326b565b5b9050919050565b5f8183612ae691906131fd565b905092915050565b5f8183612afb919061326b565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b44578082015181840152602081019050612b29565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b6982612b0d565b612b738185612b17565b9350612b83818560208601612b27565b612b8c81612b4f565b840191505092915050565b5f6020820190508181035f830152612baf8184612b5f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612be482612bbb565b9050919050565b612bf481612bda565b8114612bfe575f80fd5b50565b5f81359050612c0f81612beb565b92915050565b5f819050919050565b612c2781612c15565b8114612c31575f80fd5b50565b5f81359050612c4281612c1e565b92915050565b5f8060408385031215612c5e57612c5d612bb7565b5b5f612c6b85828601612c01565b9250506020612c7c85828601612c34565b9150509250929050565b5f8115159050919050565b612c9a81612c86565b82525050565b5f602082019050612cb35f830184612c91565b92915050565b612cc281612c15565b82525050565b5f602082019050612cdb5f830184612cb9565b92915050565b5f60208284031215612cf657612cf5612bb7565b5b5f612d0384828501612c01565b91505092915050565b5f805f60608486031215612d2357612d22612bb7565b5b5f612d3086828701612c01565b9350506020612d4186828701612c01565b9250506040612d5286828701612c34565b9150509250925092565b5f60ff82169050919050565b612d7181612d5c565b82525050565b5f602082019050612d8a5f830184612d68565b92915050565b612d9981612bda565b82525050565b5f602082019050612db25f830184612d90565b92915050565b5f819050919050565b5f612ddb612dd6612dd184612bbb565b612db8565b612bbb565b9050919050565b5f612dec82612dc1565b9050919050565b5f612dfd82612de2565b9050919050565b612e0d81612df3565b82525050565b5f602082019050612e265f830184612e04565b92915050565b5f60208284031215612e4157612e40612bb7565b5b5f612e4e84828501612c34565b91505092915050565b612e6081612c86565b8114612e6a575f80fd5b50565b5f81359050612e7b81612e57565b92915050565b5f8060408385031215612e9757612e96612bb7565b5b5f612ea485828601612c01565b9250506020612eb585828601612e6d565b9150509250929050565b5f612ec982612bda565b9050919050565b612ed981612ebf565b8114612ee3575f80fd5b50565b5f81359050612ef481612ed0565b92915050565b5f8060408385031215612f1057612f0f612bb7565b5b5f612f1d85828601612ee6565b9250506020612f2e85828601612c34565b9150509250929050565b5f8060408385031215612f4e57612f4d612bb7565b5b5f612f5b85828601612c01565b9250506020612f6c85828601612c01565b9150509250929050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612faa601783612b17565b9150612fb582612f76565b602082019050919050565b5f6020820190508181035f830152612fd781612f9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061302257607f821691505b60208210810361303557613034612fde565b5b50919050565b5f8151905061304981612beb565b92915050565b5f6020828403121561306457613063612bb7565b5b5f6130718482850161303b565b91505092915050565b5f60408201905061308d5f830185612d90565b61309a6020830184612d90565b9392505050565b5f819050919050565b5f6130c46130bf6130ba846130a1565b612db8565b612c15565b9050919050565b6130d4816130aa565b82525050565b5f60c0820190506130ed5f830189612d90565b6130fa6020830188612cb9565b61310760408301876130cb565b61311460608301866130cb565b6131216080830185612d90565b61312e60a0830184612cb9565b979650505050505050565b5f8151905061314781612c1e565b92915050565b5f805f6060848603121561316457613163612bb7565b5b5f61317186828701613139565b935050602061318286828701613139565b925050604061319386828701613139565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6131d482612c15565b91506131df83612c15565b92508282019050808211156131f7576131f661319d565b5b92915050565b5f61320782612c15565b915061321283612c15565b925082820261322081612c15565b915082820484148315176132375761323661319d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61327582612c15565b915061328083612c15565b9250826132905761328f61323e565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f6132cf601183612b17565b91506132da8261329b565b602082019050919050565b5f6020820190508181035f8301526132fc816132c3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61335d603983612b17565b915061336882613303565b604082019050919050565b5f6020820190508181035f83015261338a81613351565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6133c5601683612b17565b91506133d082613391565b602082019050919050565b5f6020820190508181035f8301526133f2816133b9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613453602583612b17565b915061345e826133f9565b604082019050919050565b5f6020820190508181035f83015261348081613447565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134e1602683612b17565b91506134ec82613487565b604082019050919050565b5f6020820190508181035f83015261350e816134d5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613549602083612b17565b915061355482613515565b602082019050919050565b5f6020820190508181035f8301526135768161353d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135d7602483612b17565b91506135e28261357d565b604082019050919050565b5f6020820190508181035f830152613604816135cb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613665602283612b17565b91506136708261360b565b604082019050919050565b5f6020820190508181035f83015261369281613659565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6136cd601d83612b17565b91506136d882613699565b602082019050919050565b5f6020820190508181035f8301526136fa816136c1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61375b602583612b17565b915061376682613701565b604082019050919050565b5f6020820190508181035f8301526137888161374f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137e9602383612b17565b91506137f48261378f565b604082019050919050565b5f6020820190508181035f830152613816816137dd565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613851601683612b17565b915061385c8261381d565b602082019050919050565b5f6020820190508181035f83015261387e81613845565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6138df603583612b17565b91506138ea82613885565b604082019050919050565b5f6020820190508181035f83015261390c816138d3565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613947601383612b17565b915061395282613913565b602082019050919050565b5f6020820190508181035f8301526139748161393b565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6139d5603683612b17565b91506139e08261397b565b604082019050919050565b5f6020820190508181035f830152613a02816139c9565b9050919050565b5f613a1382612c15565b9150613a1e83612c15565b9250828203905081811115613a3657613a3561319d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ac881612bda565b82525050565b5f613ad98383613abf565b60208301905092915050565b5f602082019050919050565b5f613afb82613a96565b613b058185613aa0565b9350613b1083613ab0565b805f5b83811015613b40578151613b278882613ace565b9750613b3283613ae5565b925050600181019050613b13565b5085935050505092915050565b5f60a082019050613b605f830188612cb9565b613b6d60208301876130cb565b8181036040830152613b7f8186613af1565b9050613b8e6060830185612d90565b613b9b6080830184612cb9565b9695505050505050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613bff602183612b17565b9150613c0a82613ba5565b604082019050919050565b5f6020820190508181035f830152613c2c81613bf3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c8d602283612b17565b9150613c9882613c33565b604082019050919050565b5f6020820190508181035f830152613cba81613c81565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613d1b602683612b17565b9150613d2682613cc1565b604082019050919050565b5f6020820190508181035f830152613d4881613d0f565b905091905056fea2646970667358221220cbf66c23c69b0a8d604c16ff89021f4d5f1d7e78836b3260ae8284d2019d6d4a64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610228575f3560e01c8063715018a611610122578063afa4f3b2116100aa578063dd8546521161006e578063dd854652146107af578063e2f45605146107d9578063f2fde38b14610803578063f8b45b051461082b578063ffb54a99146108555761022f565b8063afa4f3b2146106cf578063c0246668146106f7578063c8c8ebe41461071f578063cf9522fd14610749578063dd62ed3e146107735761022f565b806395d89b41116100f157806395d89b41146105ef5780639a7a23d6146106195780639f25842614610641578063a457c2d714610657578063a9059cbb146106935761022f565b8063715018a61461055f5780637571336a146105755780638da5cb5b1461059d578063945382f0146105c75761022f565b8063326efd18116101b05780634fbee193116101745780634fbee1931461046b578063583e0568146104a757806361175d52146104d15780636ddd1713146104f957806370a08231146105235761022f565b8063326efd181461039b57806339509351146103b15780633ff52513146103ed578063414a87861461041757806349bd5a5e146104415761022f565b80631816467f116101f75780631816467f146102d957806323b872dd1461030157806324e344431461033d578063311028af14610347578063313ce567146103715761022f565b8063034355d71461023357806306fdde0314610249578063095ea7b31461027357806318160ddd146102af5761022f565b3661022f57005b5f80fd5b34801561023e575f80fd5b5061024761087f565b005b348015610254575f80fd5b5061025d61090d565b60405161026a9190612b97565b60405180910390f35b34801561027e575f80fd5b5061029960048036038101906102949190612c48565b61099d565b6040516102a69190612ca0565b60405180910390f35b3480156102ba575f80fd5b506102c36109bf565b6040516102d09190612cc8565b60405180910390f35b3480156102e4575f80fd5b506102ff60048036038101906102fa9190612ce1565b6109c8565b005b34801561030c575f80fd5b5061032760048036038101906103229190612d0c565b610a8e565b6040516103349190612ca0565b60405180910390f35b610345610abc565b005b348015610352575f80fd5b5061035b610e6f565b6040516103689190612cc8565b60405180910390f35b34801561037c575f80fd5b50610385610e75565b6040516103929190612d77565b60405180910390f35b3480156103a6575f80fd5b506103af610e7d565b005b3480156103bc575f80fd5b506103d760048036038101906103d29190612c48565b610ea1565b6040516103e49190612ca0565b60405180910390f35b3480156103f8575f80fd5b50610401610ed7565b60405161040e9190612cc8565b60405180910390f35b348015610422575f80fd5b5061042b610edd565b6040516104389190612cc8565b60405180910390f35b34801561044c575f80fd5b50610455610ee3565b6040516104629190612d9f565b60405180910390f35b348015610476575f80fd5b50610491600480360381019061048c9190612ce1565b610f08565b60405161049e9190612ca0565b60405180910390f35b3480156104b2575f80fd5b506104bb610f5a565b6040516104c89190612e13565b60405180910390f35b3480156104dc575f80fd5b506104f760048036038101906104f29190612e2c565b610f7f565b005b348015610504575f80fd5b5061050d611062565b60405161051a9190612ca0565b60405180910390f35b34801561052e575f80fd5b5061054960048036038101906105449190612ce1565b611075565b6040516105569190612cc8565b60405180910390f35b34801561056a575f80fd5b506105736110ba565b005b348015610580575f80fd5b5061059b60048036038101906105969190612e81565b6110cd565b005b3480156105a8575f80fd5b506105b161112d565b6040516105be9190612d9f565b60405180910390f35b3480156105d2575f80fd5b506105ed60048036038101906105e89190612efa565b611155565b005b3480156105fa575f80fd5b50610603611176565b6040516106109190612b97565b60405180910390f35b348015610624575f80fd5b5061063f600480360381019061063a9190612e81565b611206565b005b34801561064c575f80fd5b506106556112ab565b005b348015610662575f80fd5b5061067d60048036038101906106789190612c48565b611392565b60405161068a9190612ca0565b60405180910390f35b34801561069e575f80fd5b506106b960048036038101906106b49190612c48565b611407565b6040516106c69190612ca0565b60405180910390f35b3480156106da575f80fd5b506106f560048036038101906106f09190612e2c565b611429565b005b348015610702575f80fd5b5061071d60048036038101906107189190612e81565b61144e565b005b34801561072a575f80fd5b506107336114fc565b6040516107409190612cc8565b60405180910390f35b348015610754575f80fd5b5061075d611502565b60405161076a9190612cc8565b60405180910390f35b34801561077e575f80fd5b5061079960048036038101906107949190612f38565b611508565b6040516107a69190612cc8565b60405180910390f35b3480156107ba575f80fd5b506107c361158a565b6040516107d09190612cc8565b60405180910390f35b3480156107e4575f80fd5b506107ed611590565b6040516107fa9190612cc8565b60405180910390f35b34801561080e575f80fd5b5061082960048036038101906108249190612ce1565b611596565b005b348015610836575f80fd5b5061083f611618565b60405161084c9190612cc8565b60405180910390f35b348015610860575f80fd5b5061086961161e565b6040516108769190612ca0565b60405180910390f35b610887611630565b600e5f9054906101000a900460ff16156108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90612fc0565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60606003805461091c9061300b565b80601f01602080910402602001604051908101604052809291908181526020018280546109489061300b565b80156109935780601f1061096a57610100808354040283529160200191610993565b820191905f5260205f20905b81548152906001019060200180831161097657829003601f168201915b5050505050905090565b5f806109a76116ae565b90506109b48185856116b5565b600191505092915050565b5f600254905090565b6109d0611630565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f80610a986116ae565b9050610aa5858285611878565b610ab0858585611903565b60019150509392505050565b610ac4611630565b737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b4460065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016110cd565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd2919061304f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7c919061304f565b6040518363ffffffff1660e01b8152600401610c9992919061307a565b6020604051808303815f875af1158015610cb5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd9919061304f565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d4460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016110cd565b610d7060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612211565b610dbc3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6116b5565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610e0430611075565b5f8033426040518863ffffffff1660e01b8152600401610e29969594939291906130da565b60606040518083038185885af1158015610e45573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e6a919061314d565b505050565b600a5481565b5f6012905090565b610e85611630565b5f610e8e6109bf565b905080600b8190555080600c8190555050565b5f80610eab6116ae565b9050610ecc818585610ebd8589611508565b610ec791906131ca565b6116b5565b600191505092915050565b60125481565b60115481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fbf6116ae565b73ffffffffffffffffffffffffffffffffffffffff1614610fde575f80fd5b5f610fe76109bf565b90505f610ff330611075565b90505f6064848461100491906131fd565b61100e919061326b565b905080821015611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a906132e5565b60405180910390fd5b61105c816122af565b50505050565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110c2611630565b6110cb5f612506565b565b6110d5611630565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3361115f81610f08565b611167575f80fd5b61117183836125c9565b505050565b6060600480546111859061300b565b80601f01602080910402602001604051908101604052809291908181526020018280546111b19061300b565b80156111fc5780601f106111d3576101008083540402835291602001916111fc565b820191905f5260205f20905b8154815290600101906020018083116111df57829003601f168201915b5050505050905090565b61120e611630565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490613373565b60405180910390fd5b6112a78282612211565b5050565b5f47116112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e4906133db565b60405180910390fd5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132d6116ae565b73ffffffffffffffffffffffffffffffffffffffff161461134c575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561138f573d5f803e3d5ffd5b50565b5f8061139c6116ae565b90505f6113a98286611508565b9050838110156113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e590613469565b60405180910390fd5b6113fb82868684036116b5565b60019250505092915050565b5f806114116116ae565b905061141e818585611903565b600191505092915050565b611431611630565b670de0b6b3a76400008161144591906131fd565b600d8190555050565b611456611630565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516114f09190612ca0565b60405180910390a25050565b600b5481565b60105481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b61159e611630565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361160c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611603906134f7565b60405180910390fd5b61161581612506565b50565b600c5481565b600e5f9054906101000a900460ff1681565b6116386116ae565b73ffffffffffffffffffffffffffffffffffffffff1661165661112d565b73ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a39061355f565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a906135ed565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117889061367b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161186b9190612cc8565b60405180910390a3505050565b5f6118838484611508565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118fd57818110156118ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e6906136e3565b60405180910390fd5b6118fc84848484036116b5565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196890613771565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d6906137ff565b60405180910390fd5b5f81036119f6576119f183835f61278c565b61220c565b6119fe61112d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a6c5750611a3c61112d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ade575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611af75750600960149054906101000a900460ff16155b15611ec457600e5f9054906101000a900460ff16611bea5760145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611baa575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be090613867565b60405180910390fd5b5b60165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c87575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d2e57600b54811115611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc8906138f5565b60405180910390fd5b600c54611cdd83611075565b82611ce891906131ca565b1115611d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d209061395d565b60405180910390fd5b611ec3565b60165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611dcb575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e1a57600b54811115611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c906139eb565b60405180910390fd5b611ec2565b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611ec157600c54611e7483611075565b82611e7f91906131ca565b1115611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb79061395d565b60405180910390fd5b5b5b5b5b5f611ece30611075565b90505f8082119050808015611eef5750600e60019054906101000a900460ff165b8015611f085750600960149054906101000a900460ff16155b8015611f5b575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fae575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612001575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612045576001600960146101000a81548160ff02191690831515021790555061202a836129f8565b5f600960146101000a81548160ff0219169083151502179055505b5f600960149054906101000a900460ff1615905060145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806120f4575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156120fd575f90505b5f81156121fc5760165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561219857612191601354612164601254612a92565b61216e91906131fd565b61218360105488612ad990919063ffffffff16565b612aee90919063ffffffff16565b90506121d9565b6121d66013546121a9601154612a92565b6121b391906131fd565b6121c8600f5488612ad990919063ffffffff16565b612aee90919063ffffffff16565b90505b5f8111156121ed576121ec87308361278c565b5b80856121f99190613a09565b94505b61220787878761278c565b505050505b505050565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff8111156122cb576122ca613a3c565b5b6040519080825280602002602001820160405280156122f95781602001602082028036833780820191505090505b50905030815f815181106123105761230f613a69565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d8919061304f565b816001815181106123ec576123eb613a69565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124523060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116b5565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016124d5959493929190613b4d565b5f604051808303815f87803b1580156124ec575f80fd5b505af11580156124fe573d5f803e3d5ffd5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262e90613c15565b60405180910390fd5b612642825f83612b03565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156126c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bc90613ca3565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127749190612cc8565b60405180910390a3612787835f84612b08565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f190613771565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285f906137ff565b60405180910390fd5b612873838383612b03565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156128f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ed90613d31565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129df9190612cc8565b60405180910390a36129f2848484612b08565b50505050565b5f612a0230611075565b90505f808203612a13575050612a8f565b5f82118015612a235750600d5482105b15612a3057819050612a83565b5f612a596064612a4b60105487612ad990919063ffffffff16565b612aee90919063ffffffff16565b90508084612a679190613a09565b9350600d54841115612a7d57600d549150612a81565b8391505b505b612a8c816122af565b50505b50565b5f80612a9f61dead611075565b118015612aab57505f82115b612ab6576001612ad2565b60646001601354612ac79190613a09565b612ad1919061326b565b5b9050919050565b5f8183612ae691906131fd565b905092915050565b5f8183612afb919061326b565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b44578082015181840152602081019050612b29565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b6982612b0d565b612b738185612b17565b9350612b83818560208601612b27565b612b8c81612b4f565b840191505092915050565b5f6020820190508181035f830152612baf8184612b5f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612be482612bbb565b9050919050565b612bf481612bda565b8114612bfe575f80fd5b50565b5f81359050612c0f81612beb565b92915050565b5f819050919050565b612c2781612c15565b8114612c31575f80fd5b50565b5f81359050612c4281612c1e565b92915050565b5f8060408385031215612c5e57612c5d612bb7565b5b5f612c6b85828601612c01565b9250506020612c7c85828601612c34565b9150509250929050565b5f8115159050919050565b612c9a81612c86565b82525050565b5f602082019050612cb35f830184612c91565b92915050565b612cc281612c15565b82525050565b5f602082019050612cdb5f830184612cb9565b92915050565b5f60208284031215612cf657612cf5612bb7565b5b5f612d0384828501612c01565b91505092915050565b5f805f60608486031215612d2357612d22612bb7565b5b5f612d3086828701612c01565b9350506020612d4186828701612c01565b9250506040612d5286828701612c34565b9150509250925092565b5f60ff82169050919050565b612d7181612d5c565b82525050565b5f602082019050612d8a5f830184612d68565b92915050565b612d9981612bda565b82525050565b5f602082019050612db25f830184612d90565b92915050565b5f819050919050565b5f612ddb612dd6612dd184612bbb565b612db8565b612bbb565b9050919050565b5f612dec82612dc1565b9050919050565b5f612dfd82612de2565b9050919050565b612e0d81612df3565b82525050565b5f602082019050612e265f830184612e04565b92915050565b5f60208284031215612e4157612e40612bb7565b5b5f612e4e84828501612c34565b91505092915050565b612e6081612c86565b8114612e6a575f80fd5b50565b5f81359050612e7b81612e57565b92915050565b5f8060408385031215612e9757612e96612bb7565b5b5f612ea485828601612c01565b9250506020612eb585828601612e6d565b9150509250929050565b5f612ec982612bda565b9050919050565b612ed981612ebf565b8114612ee3575f80fd5b50565b5f81359050612ef481612ed0565b92915050565b5f8060408385031215612f1057612f0f612bb7565b5b5f612f1d85828601612ee6565b9250506020612f2e85828601612c34565b9150509250929050565b5f8060408385031215612f4e57612f4d612bb7565b5b5f612f5b85828601612c01565b9250506020612f6c85828601612c01565b9150509250929050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612faa601783612b17565b9150612fb582612f76565b602082019050919050565b5f6020820190508181035f830152612fd781612f9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061302257607f821691505b60208210810361303557613034612fde565b5b50919050565b5f8151905061304981612beb565b92915050565b5f6020828403121561306457613063612bb7565b5b5f6130718482850161303b565b91505092915050565b5f60408201905061308d5f830185612d90565b61309a6020830184612d90565b9392505050565b5f819050919050565b5f6130c46130bf6130ba846130a1565b612db8565b612c15565b9050919050565b6130d4816130aa565b82525050565b5f60c0820190506130ed5f830189612d90565b6130fa6020830188612cb9565b61310760408301876130cb565b61311460608301866130cb565b6131216080830185612d90565b61312e60a0830184612cb9565b979650505050505050565b5f8151905061314781612c1e565b92915050565b5f805f6060848603121561316457613163612bb7565b5b5f61317186828701613139565b935050602061318286828701613139565b925050604061319386828701613139565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6131d482612c15565b91506131df83612c15565b92508282019050808211156131f7576131f661319d565b5b92915050565b5f61320782612c15565b915061321283612c15565b925082820261322081612c15565b915082820484148315176132375761323661319d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61327582612c15565b915061328083612c15565b9250826132905761328f61323e565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f6132cf601183612b17565b91506132da8261329b565b602082019050919050565b5f6020820190508181035f8301526132fc816132c3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61335d603983612b17565b915061336882613303565b604082019050919050565b5f6020820190508181035f83015261338a81613351565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6133c5601683612b17565b91506133d082613391565b602082019050919050565b5f6020820190508181035f8301526133f2816133b9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613453602583612b17565b915061345e826133f9565b604082019050919050565b5f6020820190508181035f83015261348081613447565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134e1602683612b17565b91506134ec82613487565b604082019050919050565b5f6020820190508181035f83015261350e816134d5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613549602083612b17565b915061355482613515565b602082019050919050565b5f6020820190508181035f8301526135768161353d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135d7602483612b17565b91506135e28261357d565b604082019050919050565b5f6020820190508181035f830152613604816135cb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613665602283612b17565b91506136708261360b565b604082019050919050565b5f6020820190508181035f83015261369281613659565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6136cd601d83612b17565b91506136d882613699565b602082019050919050565b5f6020820190508181035f8301526136fa816136c1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61375b602583612b17565b915061376682613701565b604082019050919050565b5f6020820190508181035f8301526137888161374f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137e9602383612b17565b91506137f48261378f565b604082019050919050565b5f6020820190508181035f830152613816816137dd565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613851601683612b17565b915061385c8261381d565b602082019050919050565b5f6020820190508181035f83015261387e81613845565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6138df603583612b17565b91506138ea82613885565b604082019050919050565b5f6020820190508181035f83015261390c816138d3565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613947601383612b17565b915061395282613913565b602082019050919050565b5f6020820190508181035f8301526139748161393b565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6139d5603683612b17565b91506139e08261397b565b604082019050919050565b5f6020820190508181035f830152613a02816139c9565b9050919050565b5f613a1382612c15565b9150613a1e83612c15565b9250828203905081811115613a3657613a3561319d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ac881612bda565b82525050565b5f613ad98383613abf565b60208301905092915050565b5f602082019050919050565b5f613afb82613a96565b613b058185613aa0565b9350613b1083613ab0565b805f5b83811015613b40578151613b278882613ace565b9750613b3283613ae5565b925050600181019050613b13565b5085935050505092915050565b5f60a082019050613b605f830188612cb9565b613b6d60208301876130cb565b8181036040830152613b7f8186613af1565b9050613b8e6060830185612d90565b613b9b6080830184612cb9565b9695505050505050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613bff602183612b17565b9150613c0a82613ba5565b604082019050919050565b5f6020820190508181035f830152613c2c81613bf3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c8d602283612b17565b9150613c9882613c33565b604082019050919050565b5f6020820190508181035f830152613cba81613c81565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613d1b602683612b17565b9150613d2682613cc1565b604082019050919050565b5f6020820190508181035f830152613d4881613d0f565b905091905056fea2646970667358221220cbf66c23c69b0a8d604c16ff89021f4d5f1d7e78836b3260ae8284d2019d6d4a64736f6c63430008140033

Deployed Bytecode Sourcemap

14672:9460:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17823:194;;;;;;;;;;;;;:::i;:::-;;9900:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10832:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10221:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18200:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11041:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17022:756;;;:::i;:::-;;15111:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10120:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22259:196;;;;;;;;;;;;;:::i;:::-;;11310:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15634:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15598:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14802:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19247:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14753:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22981:408;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15491:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10337:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;993:103;;;;;;;;;;;;;:::i;:::-;;18025:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;758:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22698:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10008:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18780:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22463:227;;;;;;;;;;;;;:::i;:::-;;11556:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10472:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22846:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18565:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15187:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15563:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10673:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15531:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15361:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1104:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15274:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15453:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17823:194;717:13;:11;:13::i;:::-;17911:11:::1;;;;;;;;;;;17910:12;17902:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17976:4;17962:11;;:18;;;;;;;;;;;;;;;;;;18005:4;17991:11;;:18;;;;;;;;;;;;;;;;;;17823:194::o:0;9900:100::-;9954:13;9987:5;9980:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9900:100;:::o;10832:201::-;10915:4;10932:13;10948:12;:10;:12::i;:::-;10932:28;;10971:32;10980:5;10987:7;10996:6;10971:8;:32::i;:::-;11021:4;11014:11;;;10832:201;;;;:::o;10221:108::-;10282:7;10309:12;;10302:19;;10221:108;:::o;18200:189::-;717:13;:11;:13::i;:::-;18334:10:::1;;;;;;;;;;;18303:42;;18320:12;18303:42;;;;;;;;;;;;18369:12;18356:10;;:25;;;;;;;;;;;;;;;;;;18200:189:::0;:::o;11041:261::-;11138:4;11155:15;11173:12;:10;:12::i;:::-;11155:30;;11196:38;11212:4;11218:7;11227:6;11196:15;:38::i;:::-;11245:27;11255:4;11261:2;11265:6;11245:9;:27::i;:::-;11290:4;11283:11;;;11041:261;;;;;:::o;17022:756::-;717:13;:11;:13::i;:::-;17158:42:::1;17120:16;;:81;;;;;;;;;;;;;;;;;;17212:58;17246:16;;;;;;;;;;;17265:4;17212:25;:58::i;:::-;17317:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17299:56;;;17364:4;17371:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17299:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17283:13;;:112;;;;;;;;;;;;;;;;;;17422:55;17456:13;;;;;;;;;;;17472:4;17422:25;:55::i;:::-;17490:58;17527:13;;;;;;;;;;;17543:4;17490:28;:58::i;:::-;17567:69;17584:4;17599:16;;;;;;;;;;;17618:17;17567:8;:69::i;:::-;17649:16;;;;;;;;;;;:32;;;17689:9;17708:4;17714:24;17732:4;17714:9;:24::i;:::-;17739:1;17741::::0;17743:10:::1;17754:15;17649:121;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17022:756::o:0;15111:55::-;;;;:::o;10120:93::-;10178:5;10203:2;10196:9;;10120:93;:::o;22259:196::-;717:13;:11;:13::i;:::-;22315:25:::1;22343:13;:11;:13::i;:::-;22315:41;;22390:17;22367:20;:40;;;;22430:17;22418:9;:29;;;;22304:151;22259:196::o:0;11310:238::-;11398:4;11415:13;11431:12;:10;:12::i;:::-;11415:28;;11454:64;11463:5;11470:7;11507:10;11479:25;11489:5;11496:7;11479:9;:25::i;:::-;:38;;;;:::i;:::-;11454:8;:64::i;:::-;11536:4;11529:11;;;11310:238;;;;:::o;15634:30::-;;;;:::o;15598:29::-;;;;:::o;14802:28::-;;;;;;;;;;;;;:::o;19247:126::-;19313:4;19337:19;:28;19357:7;19337:28;;;;;;;;;;;;;;;;;;;;;;;;;19330:35;;19247:126;;;:::o;14753:42::-;;;;;;;;;;;;;:::o;22981:408::-;23063:13;;;;;;;;;;;23047:29;;:12;:10;:12::i;:::-;:29;;;23039:38;;;;;;23090:25;23118:13;:11;:13::i;:::-;23090:41;;23142:23;23168:24;23186:4;23168:9;:24::i;:::-;23142:50;;23203:23;23259:3;23249:7;23229:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;23203:59;;23300:15;23281;:34;;23273:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23348:33;23365:15;23348:16;:33::i;:::-;23028:361;;;22981:408;:::o;15491:31::-;;;;;;;;;;;;;:::o;10337:127::-;10411:7;10438:9;:18;10448:7;10438:18;;;;;;;;;;;;;;;;10431:25;;10337:127;;;:::o;993:103::-;717:13;:11;:13::i;:::-;1058:30:::1;1085:1;1058:18;:30::i;:::-;993:103::o:0;18025:167::-;717:13;:11;:13::i;:::-;18180:4:::1;18138:31;:39;18170:6;18138:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18025:167:::0;;:::o;758:87::-;804:7;831:6;;;;;;;;;;;824:13;;758:87;:::o;22698:140::-;22770:10;16029:26;16048:6;16029:18;:26::i;:::-;16021:35;;;;;;22794:36:::1;22808:12;22823:6;22794:5;:36::i;:::-;22698:140:::0;;;:::o;10008:104::-;10064:13;10097:7;10090:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10008:104;:::o;18780:265::-;717:13;:11;:13::i;:::-;18910::::1;;;;;;;;;;;18902:21;;:4;:21;;::::0;18894:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18996:41;19025:4;19031:5;18996:28;:41::i;:::-;18780:265:::0;;:::o;22463:227::-;22543:1;22519:21;:25;22511:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22606:13;;;;;;;;;;;22590:29;;:12;:10;:12::i;:::-;:29;;;22582:38;;;;;;22639:10;22631:28;;:51;22660:21;22631:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22463:227::o;11556:436::-;11649:4;11666:13;11682:12;:10;:12::i;:::-;11666:28;;11705:24;11732:25;11742:5;11749:7;11732:9;:25::i;:::-;11705:52;;11796:15;11776:16;:35;;11768:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11889:60;11898:5;11905:7;11933:15;11914:16;:34;11889:8;:60::i;:::-;11980:4;11973:11;;;;11556:436;;;;:::o;10472:193::-;10551:4;10568:13;10584:12;:10;:12::i;:::-;10568:28;;10607;10617:5;10624:2;10628:6;10607:9;:28::i;:::-;10653:4;10646:11;;;10472:193;;;;:::o;22846:127::-;717:13;:11;:13::i;:::-;22956:8:::1;22945:7;:20;;;;:::i;:::-;22924:18;:41;;;;22846:127:::0;:::o;18565:207::-;717:13;:11;:13::i;:::-;18706:8:::1;18675:19;:28;18695:7;18675:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18746:7;18730:34;;;18755:8;18730:34;;;;;;:::i;:::-;;;;;;;;18565:207:::0;;:::o;15187:68::-;;;;:::o;15563:26::-;;;;:::o;10673:151::-;10762:7;10789:11;:18;10801:5;10789:18;;;;;;;;;;;;;;;:27;10808:7;10789:27;;;;;;;;;;;;;;;;10782:34;;10673:151;;;;:::o;15531:25::-;;;;:::o;15361:68::-;;;;:::o;1104:201::-;717:13;:11;:13::i;:::-;1213:1:::1;1193:22;;:8;:22;;::::0;1185:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1269:28;1288:8;1269:18;:28::i;:::-;1104:201:::0;:::o;15274:57::-;;;;:::o;15453:31::-;;;;;;;;;;;;;:::o;853:132::-;928:12;:10;:12::i;:::-;917:23;;:7;:5;:7::i;:::-;:23;;;909:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;853:132::o;231:98::-;284:7;311:10;304:17;;231:98;:::o;13695:346::-;13814:1;13797:19;;:5;:19;;;13789:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13895:1;13876:21;;:7;:21;;;13868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13979:6;13949:11;:18;13961:5;13949:18;;;;;;;;;;;;;;;:27;13968:7;13949:27;;;;;;;;;;;;;;;:36;;;;14017:7;14001:32;;14010:5;14001:32;;;14026:6;14001:32;;;;;;:::i;:::-;;;;;;;;13695:346;;;:::o;14049:419::-;14150:24;14177:25;14187:5;14194:7;14177:9;:25::i;:::-;14150:52;;14237:17;14217:16;:37;14213:248;;14299:6;14279:16;:26;;14271:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14383:51;14392:5;14399:7;14427:6;14408:16;:25;14383:8;:51::i;:::-;14213:248;14139:329;14049:419;;;:::o;19381:2386::-;19497:1;19481:18;;:4;:18;;;19473:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19574:1;19560:16;;:2;:16;;;19552:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19651:1;19641:6;:11;19637:93;;19669:28;19685:4;19691:2;19695:1;19669:15;:28::i;:::-;19712:7;;19637:93;19754:7;:5;:7::i;:::-;19746:15;;:4;:15;;;;:32;;;;;19771:7;:5;:7::i;:::-;19765:13;;:2;:13;;;;19746:32;:52;;;;;19796:1;19782:16;;:2;:16;;;;19746:52;:77;;;;;19816:6;19802:21;;:2;:21;;;;19746:77;:90;;;;;19828:8;;;;;;;;;;;19827:9;19746:90;19742:996;;;19860:11;;;;;;;;;;;19855:140;;19900:19;:25;19920:4;19900:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19929:19;:23;19949:2;19929:23;;;;;;;;;;;;;;;;;;;;;;;;;19900:52;19892:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19855:140;20015:25;:31;20041:4;20015:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20051:31;:35;20083:2;20051:35;;;;;;;;;;;;;;;;;;;;;;;;;20050:36;20015:71;20011:716;;;20139:20;;20129:6;:30;;20121:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20270:9;;20253:13;20263:2;20253:9;:13::i;:::-;20244:6;:22;;;;:::i;:::-;:35;;20236:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20011:716;;;20344:25;:29;20370:2;20344:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20378:31;:37;20410:4;20378:37;;;;;;;;;;;;;;;;;;;;;;;;;20377:38;20344:71;20340:387;;;20454:20;;20444:6;:30;;20436:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20340:387;;;20588:31;:35;20620:2;20588:35;;;;;;;;;;;;;;;;;;;;;;;;;20583:144;;20678:9;;20661:13;20671:2;20661:9;:13::i;:::-;20652:6;:22;;;;:::i;:::-;:35;;20644:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20583:144;20340:387;20011:716;19742:996;20750:28;20781:24;20799:4;20781:9;:24::i;:::-;20750:55;;20818:12;20856:1;20833:20;:24;20818:39;;20874:7;:22;;;;;20885:11;;;;;;;;;;;20874:22;:35;;;;;20901:8;;;;;;;;;;;20900:9;20874:35;:71;;;;;20914:25;:31;20940:4;20914:31;;;;;;;;;;;;;;;;;;;;;;;;;20913:32;20874:71;:101;;;;;20950:19;:25;20970:4;20950:25;;;;;;;;;;;;;;;;;;;;;;;;;20949:26;20874:101;:129;;;;;20980:19;:23;21000:2;20980:23;;;;;;;;;;;;;;;;;;;;;;;;;20979:24;20874:129;20870:239;;;21031:4;21020:8;;:15;;;;;;;;;;;;;;;;;;21050:16;21059:6;21050:8;:16::i;:::-;21092:5;21081:8;;:16;;;;;;;;;;;;;;;;;;20870:239;21121:12;21137:8;;;;;;;;;;;21136:9;21121:24;;21162:19;:25;21182:4;21162:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21191:19;:23;21211:2;21191:23;;;;;;;;;;;;;;;;;;;;;;;;;21162:52;21158:100;;;21241:5;21231:15;;21158:100;21270:12;21303:7;21299:417;;;21331:25;:29;21357:2;21331:29;;;;;;;;;;;;;;;;;;;;;;;;;21327:262;;;21388:63;21436:14;;21412:21;21421:11;;21412:8;:21::i;:::-;:38;;;;:::i;:::-;21388:19;21399:7;;21388:6;:10;;:19;;;;:::i;:::-;:23;;:63;;;;:::i;:::-;21381:70;;21327:262;;;21512:61;21558:14;;21535:20;21544:10;;21535:8;:20::i;:::-;:37;;;;:::i;:::-;21512:18;21523:6;;21512;:10;;:18;;;;:::i;:::-;:22;;:61;;;;:::i;:::-;21505:68;;21327:262;21612:1;21605:4;:8;21601:83;;;21630:42;21646:4;21660;21667;21630:15;:42::i;:::-;21601:83;21704:4;21694:14;;;;;:::i;:::-;;;21299:417;21726:33;21742:4;21748:2;21752:6;21726:15;:33::i;:::-;19460:2307;;;;19381:2386;;;;:::o;19053:186::-;19170:5;19136:25;:31;19162:4;19136:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19225:5;19191:40;;19219:4;19191:40;;;;;;;;;;;;19053:186;;:::o;21775:476::-;21843:21;21881:1;21867:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21843:40;;21912:4;21894;21899:1;21894:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21938:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21928:4;21933:1;21928:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21972:63;21989:4;22004:16;;;;;;;;;;;22023:11;21972:8;:63::i;:::-;22046:16;;;;;;;;;;;:67;;;22128:11;22154:1;22170:4;22189:13;;;;;;;;;;;22217:15;22046:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21830:421;21775:476;:::o;1313:191::-;1387:16;1406:6;;;;;;;;;;;1387:25;;1432:8;1423:6;;:17;;;;;;;;;;;;;;;;;;1487:8;1456:40;;1477:8;1456:40;;;;;;;;;;;;1376:128;1313:191;:::o;13092:595::-;13195:1;13176:21;;:7;:21;;;13168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13248:49;13269:7;13286:1;13290:6;13248:20;:49::i;:::-;13310:22;13335:9;:18;13345:7;13335:18;;;;;;;;;;;;;;;;13310:43;;13390:6;13372:14;:24;;13364:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13509:6;13492:14;:23;13471:9;:18;13481:7;13471:18;;;;;;;;;;;;;;;:44;;;;13546:6;13530:12;;:22;;;;;;;;;;;13607:1;13581:37;;13590:7;13581:37;;;13611:6;13581:37;;;;;;:::i;:::-;;;;;;;;13631:48;13651:7;13668:1;13672:6;13631:19;:48::i;:::-;13157:530;13092:595;;:::o;12000:641::-;12113:1;12097:18;;:4;:18;;;12089:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12190:1;12176:16;;:2;:16;;;12168:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12245:38;12266:4;12272:2;12276:6;12245:20;:38::i;:::-;12296:19;12318:9;:15;12328:4;12318:15;;;;;;;;;;;;;;;;12296:37;;12367:6;12352:11;:21;;12344:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12484:6;12470:11;:20;12452:9;:15;12462:4;12452:15;;;;;;;;;;;;;;;:38;;;;12522:6;12505:9;:13;12515:2;12505:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12572:2;12557:26;;12566:4;12557:26;;;12576:6;12557:26;;;;;;:::i;:::-;;;;;;;;12596:37;12616:4;12622:2;12626:6;12596:19;:37::i;:::-;12078:563;12000:641;;;:::o;23397:728::-;23476:23;23502:24;23520:4;23502:9;:24::i;:::-;23476:50;;23537:20;23593:1;23574:15;:20;23570:505;;23611:7;;;;23570:505;23666:1;23648:15;:19;:59;;;;;23689:18;;23671:15;:36;23648:59;23645:430;;;23739:15;23724:30;;23645:430;;;23796:21;23820:28;23844:3;23820:19;23831:7;;23820:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;23796:52;;23873:13;23863:23;;;;;:::i;:::-;;;23914:18;;23905:6;:27;23901:163;;;23968:18;;23953:33;;23901:163;;;24042:6;24027:21;;23901:163;23781:294;23645:430;24087:30;24104:12;24087:16;:30::i;:::-;23439:686;;23397:728;;:::o;18397:160::-;18452:7;18504:1;18479:22;14961:6;18479:9;:22::i;:::-;:26;:37;;;;;18515:1;18509:3;:7;18479:37;:70;;18548:1;18479:70;;;18541:3;18536:1;18521:14;;:16;;;;:::i;:::-;18520:24;;;;:::i;:::-;18479:70;18472:77;;18397:160;;;:::o;8353:98::-;8411:7;8442:1;8438;:5;;;;:::i;:::-;8431:12;;8353:98;;;;:::o;8459:::-;8517:7;8548:1;8544;:5;;;;:::i;:::-;8537:12;;8459:98;;;;:::o;14476:91::-;;;;:::o;14575:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:152::-;5962:9;5995:37;6026:5;5995:37;:::i;:::-;5982:50;;5886:152;;;:::o;6044:183::-;6157:63;6214:5;6157:63;:::i;:::-;6152:3;6145:76;6044:183;;:::o;6233:274::-;6352:4;6390:2;6379:9;6375:18;6367:26;;6403:97;6497:1;6486:9;6482:17;6473:6;6403:97;:::i;:::-;6233:274;;;;:::o;6513:329::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:110::-;7634:7;7663:24;7681:5;7663:24;:::i;:::-;7652:35;;7583:110;;;:::o;7699:150::-;7786:38;7818:5;7786:38;:::i;:::-;7779:5;7776:49;7766:77;;7839:1;7836;7829:12;7766:77;7699:150;:::o;7855:167::-;7915:5;7953:6;7940:20;7931:29;;7969:47;8010:5;7969:47;:::i;:::-;7855:167;;;;:::o;8028:502::-;8110:6;8118;8167:2;8155:9;8146:7;8142:23;8138:32;8135:119;;;8173:79;;:::i;:::-;8135:119;8293:1;8318:67;8377:7;8368:6;8357:9;8353:22;8318:67;:::i;:::-;8308:77;;8264:131;8434:2;8460:53;8505:7;8496:6;8485:9;8481:22;8460:53;:::i;:::-;8450:63;;8405:118;8028:502;;;;;:::o;8536:474::-;8604:6;8612;8661:2;8649:9;8640:7;8636:23;8632:32;8629:119;;;8667:79;;:::i;:::-;8629:119;8787:1;8812:53;8857:7;8848:6;8837:9;8833:22;8812:53;:::i;:::-;8802:63;;8758:117;8914:2;8940:53;8985:7;8976:6;8965:9;8961:22;8940:53;:::i;:::-;8930:63;;8885:118;8536:474;;;;;:::o;9016:173::-;9156:25;9152:1;9144:6;9140:14;9133:49;9016:173;:::o;9195:366::-;9337:3;9358:67;9422:2;9417:3;9358:67;:::i;:::-;9351:74;;9434:93;9523:3;9434:93;:::i;:::-;9552:2;9547:3;9543:12;9536:19;;9195:366;;;:::o;9567:419::-;9733:4;9771:2;9760:9;9756:18;9748:26;;9820:9;9814:4;9810:20;9806:1;9795:9;9791:17;9784:47;9848:131;9974:4;9848:131;:::i;:::-;9840:139;;9567:419;;;:::o;9992:180::-;10040:77;10037:1;10030:88;10137:4;10134:1;10127:15;10161:4;10158:1;10151:15;10178:320;10222:6;10259:1;10253:4;10249:12;10239:22;;10306:1;10300:4;10296:12;10327:18;10317:81;;10383:4;10375:6;10371:17;10361:27;;10317:81;10445:2;10437:6;10434:14;10414:18;10411:38;10408:84;;10464:18;;:::i;:::-;10408:84;10229:269;10178:320;;;:::o;10504:143::-;10561:5;10592:6;10586:13;10577:22;;10608:33;10635:5;10608:33;:::i;:::-;10504:143;;;;:::o;10653:351::-;10723:6;10772:2;10760:9;10751:7;10747:23;10743:32;10740:119;;;10778:79;;:::i;:::-;10740:119;10898:1;10923:64;10979:7;10970:6;10959:9;10955:22;10923:64;:::i;:::-;10913:74;;10869:128;10653:351;;;;:::o;11010:332::-;11131:4;11169:2;11158:9;11154:18;11146:26;;11182:71;11250:1;11239:9;11235:17;11226:6;11182:71;:::i;:::-;11263:72;11331:2;11320:9;11316:18;11307:6;11263:72;:::i;:::-;11010:332;;;;;:::o;11348:85::-;11393:7;11422:5;11411:16;;11348:85;;;:::o;11439:158::-;11497:9;11530:61;11548:42;11557:32;11583:5;11557:32;:::i;:::-;11548:42;:::i;:::-;11530:61;:::i;:::-;11517:74;;11439:158;;;:::o;11603:147::-;11698:45;11737:5;11698:45;:::i;:::-;11693:3;11686:58;11603:147;;:::o;11756:807::-;12005:4;12043:3;12032:9;12028:19;12020:27;;12057:71;12125:1;12114:9;12110:17;12101:6;12057:71;:::i;:::-;12138:72;12206:2;12195:9;12191:18;12182:6;12138:72;:::i;:::-;12220:80;12296:2;12285:9;12281:18;12272:6;12220:80;:::i;:::-;12310;12386:2;12375:9;12371:18;12362:6;12310:80;:::i;:::-;12400:73;12468:3;12457:9;12453:19;12444:6;12400:73;:::i;:::-;12483;12551:3;12540:9;12536:19;12527:6;12483:73;:::i;:::-;11756:807;;;;;;;;;:::o;12569:143::-;12626:5;12657:6;12651:13;12642:22;;12673:33;12700:5;12673:33;:::i;:::-;12569:143;;;;:::o;12718:663::-;12806:6;12814;12822;12871:2;12859:9;12850:7;12846:23;12842:32;12839:119;;;12877:79;;:::i;:::-;12839:119;12997:1;13022:64;13078:7;13069:6;13058:9;13054:22;13022:64;:::i;:::-;13012:74;;12968:128;13135:2;13161:64;13217:7;13208:6;13197:9;13193:22;13161:64;:::i;:::-;13151:74;;13106:129;13274:2;13300:64;13356:7;13347:6;13336:9;13332:22;13300:64;:::i;:::-;13290:74;;13245:129;12718:663;;;;;:::o;13387:180::-;13435:77;13432:1;13425:88;13532:4;13529:1;13522:15;13556:4;13553:1;13546:15;13573:191;13613:3;13632:20;13650:1;13632:20;:::i;:::-;13627:25;;13666:20;13684:1;13666:20;:::i;:::-;13661:25;;13709:1;13706;13702:9;13695:16;;13730:3;13727:1;13724:10;13721:36;;;13737:18;;:::i;:::-;13721:36;13573:191;;;;:::o;13770:410::-;13810:7;13833:20;13851:1;13833:20;:::i;:::-;13828:25;;13867:20;13885:1;13867:20;:::i;:::-;13862:25;;13922:1;13919;13915:9;13944:30;13962:11;13944:30;:::i;:::-;13933:41;;14123:1;14114:7;14110:15;14107:1;14104:22;14084:1;14077:9;14057:83;14034:139;;14153:18;;:::i;:::-;14034:139;13818:362;13770:410;;;;:::o;14186:180::-;14234:77;14231:1;14224:88;14331:4;14328:1;14321:15;14355:4;14352:1;14345:15;14372:185;14412:1;14429:20;14447:1;14429:20;:::i;:::-;14424:25;;14463:20;14481:1;14463:20;:::i;:::-;14458:25;;14502:1;14492:35;;14507:18;;:::i;:::-;14492:35;14549:1;14546;14542:9;14537:14;;14372:185;;;;:::o;14563:167::-;14703:19;14699:1;14691:6;14687:14;14680:43;14563:167;:::o;14736:366::-;14878:3;14899:67;14963:2;14958:3;14899:67;:::i;:::-;14892:74;;14975:93;15064:3;14975:93;:::i;:::-;15093:2;15088:3;15084:12;15077:19;;14736:366;;;:::o;15108:419::-;15274:4;15312:2;15301:9;15297:18;15289:26;;15361:9;15355:4;15351:20;15347:1;15336:9;15332:17;15325:47;15389:131;15515:4;15389:131;:::i;:::-;15381:139;;15108:419;;;:::o;15533:244::-;15673:34;15669:1;15661:6;15657:14;15650:58;15742:27;15737:2;15729:6;15725:15;15718:52;15533:244;:::o;15783:366::-;15925:3;15946:67;16010:2;16005:3;15946:67;:::i;:::-;15939:74;;16022:93;16111:3;16022:93;:::i;:::-;16140:2;16135:3;16131:12;16124:19;;15783:366;;;:::o;16155:419::-;16321:4;16359:2;16348:9;16344:18;16336:26;;16408:9;16402:4;16398:20;16394:1;16383:9;16379:17;16372:47;16436:131;16562:4;16436:131;:::i;:::-;16428:139;;16155:419;;;:::o;16580:172::-;16720:24;16716:1;16708:6;16704:14;16697:48;16580:172;:::o;16758:366::-;16900:3;16921:67;16985:2;16980:3;16921:67;:::i;:::-;16914:74;;16997:93;17086:3;16997:93;:::i;:::-;17115:2;17110:3;17106:12;17099:19;;16758:366;;;:::o;17130:419::-;17296:4;17334:2;17323:9;17319:18;17311:26;;17383:9;17377:4;17373:20;17369:1;17358:9;17354:17;17347:47;17411:131;17537:4;17411:131;:::i;:::-;17403:139;;17130:419;;;:::o;17555:224::-;17695:34;17691:1;17683:6;17679:14;17672:58;17764:7;17759:2;17751:6;17747:15;17740:32;17555:224;:::o;17785:366::-;17927:3;17948:67;18012:2;18007:3;17948:67;:::i;:::-;17941:74;;18024:93;18113:3;18024:93;:::i;:::-;18142:2;18137:3;18133:12;18126:19;;17785:366;;;:::o;18157:419::-;18323:4;18361:2;18350:9;18346:18;18338:26;;18410:9;18404:4;18400:20;18396:1;18385:9;18381:17;18374:47;18438:131;18564:4;18438:131;:::i;:::-;18430:139;;18157:419;;;:::o;18582:225::-;18722:34;18718:1;18710:6;18706:14;18699:58;18791:8;18786:2;18778:6;18774:15;18767:33;18582:225;:::o;18813:366::-;18955:3;18976:67;19040:2;19035:3;18976:67;:::i;:::-;18969:74;;19052:93;19141:3;19052:93;:::i;:::-;19170:2;19165:3;19161:12;19154:19;;18813:366;;;:::o;19185:419::-;19351:4;19389:2;19378:9;19374:18;19366:26;;19438:9;19432:4;19428:20;19424:1;19413:9;19409:17;19402:47;19466:131;19592:4;19466:131;:::i;:::-;19458:139;;19185:419;;;:::o;19610:182::-;19750:34;19746:1;19738:6;19734:14;19727:58;19610:182;:::o;19798:366::-;19940:3;19961:67;20025:2;20020:3;19961:67;:::i;:::-;19954:74;;20037:93;20126:3;20037:93;:::i;:::-;20155:2;20150:3;20146:12;20139:19;;19798:366;;;:::o;20170:419::-;20336:4;20374:2;20363:9;20359:18;20351:26;;20423:9;20417:4;20413:20;20409:1;20398:9;20394:17;20387:47;20451:131;20577:4;20451:131;:::i;:::-;20443:139;;20170:419;;;:::o;20595:223::-;20735:34;20731:1;20723:6;20719:14;20712:58;20804:6;20799:2;20791:6;20787:15;20780:31;20595:223;:::o;20824:366::-;20966:3;20987:67;21051:2;21046:3;20987:67;:::i;:::-;20980:74;;21063:93;21152:3;21063:93;:::i;:::-;21181:2;21176:3;21172:12;21165:19;;20824:366;;;:::o;21196:419::-;21362:4;21400:2;21389:9;21385:18;21377:26;;21449:9;21443:4;21439:20;21435:1;21424:9;21420:17;21413:47;21477:131;21603:4;21477:131;:::i;:::-;21469:139;;21196:419;;;:::o;21621:221::-;21761:34;21757:1;21749:6;21745:14;21738:58;21830:4;21825:2;21817:6;21813:15;21806:29;21621:221;:::o;21848:366::-;21990:3;22011:67;22075:2;22070:3;22011:67;:::i;:::-;22004:74;;22087:93;22176:3;22087:93;:::i;:::-;22205:2;22200:3;22196:12;22189:19;;21848:366;;;:::o;22220:419::-;22386:4;22424:2;22413:9;22409:18;22401:26;;22473:9;22467:4;22463:20;22459:1;22448:9;22444:17;22437:47;22501:131;22627:4;22501:131;:::i;:::-;22493:139;;22220:419;;;:::o;22645:179::-;22785:31;22781:1;22773:6;22769:14;22762:55;22645:179;:::o;22830:366::-;22972:3;22993:67;23057:2;23052:3;22993:67;:::i;:::-;22986:74;;23069:93;23158:3;23069:93;:::i;:::-;23187:2;23182:3;23178:12;23171:19;;22830:366;;;:::o;23202:419::-;23368:4;23406:2;23395:9;23391:18;23383:26;;23455:9;23449:4;23445:20;23441:1;23430:9;23426:17;23419:47;23483:131;23609:4;23483:131;:::i;:::-;23475:139;;23202:419;;;:::o;23627:224::-;23767:34;23763:1;23755:6;23751:14;23744:58;23836:7;23831:2;23823:6;23819:15;23812:32;23627:224;:::o;23857:366::-;23999:3;24020:67;24084:2;24079:3;24020:67;:::i;:::-;24013:74;;24096:93;24185:3;24096:93;:::i;:::-;24214:2;24209:3;24205:12;24198:19;;23857:366;;;:::o;24229:419::-;24395:4;24433:2;24422:9;24418:18;24410:26;;24482:9;24476:4;24472:20;24468:1;24457:9;24453:17;24446:47;24510:131;24636:4;24510:131;:::i;:::-;24502:139;;24229:419;;;:::o;24654:222::-;24794:34;24790:1;24782:6;24778:14;24771:58;24863:5;24858:2;24850:6;24846:15;24839:30;24654:222;:::o;24882:366::-;25024:3;25045:67;25109:2;25104:3;25045:67;:::i;:::-;25038:74;;25121:93;25210:3;25121:93;:::i;:::-;25239:2;25234:3;25230:12;25223:19;;24882:366;;;:::o;25254:419::-;25420:4;25458:2;25447:9;25443:18;25435:26;;25507:9;25501:4;25497:20;25493:1;25482:9;25478:17;25471:47;25535:131;25661:4;25535:131;:::i;:::-;25527:139;;25254:419;;;:::o;25679:172::-;25819:24;25815:1;25807:6;25803:14;25796:48;25679:172;:::o;25857:366::-;25999:3;26020:67;26084:2;26079:3;26020:67;:::i;:::-;26013:74;;26096:93;26185:3;26096:93;:::i;:::-;26214:2;26209:3;26205:12;26198:19;;25857:366;;;:::o;26229:419::-;26395:4;26433:2;26422:9;26418:18;26410:26;;26482:9;26476:4;26472:20;26468:1;26457:9;26453:17;26446:47;26510:131;26636:4;26510:131;:::i;:::-;26502:139;;26229:419;;;:::o;26654:240::-;26794:34;26790:1;26782:6;26778:14;26771:58;26863:23;26858:2;26850:6;26846:15;26839:48;26654:240;:::o;26900:366::-;27042:3;27063:67;27127:2;27122:3;27063:67;:::i;:::-;27056:74;;27139:93;27228:3;27139:93;:::i;:::-;27257:2;27252:3;27248:12;27241:19;;26900:366;;;:::o;27272:419::-;27438:4;27476:2;27465:9;27461:18;27453:26;;27525:9;27519:4;27515:20;27511:1;27500:9;27496:17;27489:47;27553:131;27679:4;27553:131;:::i;:::-;27545:139;;27272:419;;;:::o;27697:169::-;27837:21;27833:1;27825:6;27821:14;27814:45;27697:169;:::o;27872:366::-;28014:3;28035:67;28099:2;28094:3;28035:67;:::i;:::-;28028:74;;28111:93;28200:3;28111:93;:::i;:::-;28229:2;28224:3;28220:12;28213:19;;27872:366;;;:::o;28244:419::-;28410:4;28448:2;28437:9;28433:18;28425:26;;28497:9;28491:4;28487:20;28483:1;28472:9;28468:17;28461:47;28525:131;28651:4;28525:131;:::i;:::-;28517:139;;28244:419;;;:::o;28669:241::-;28809:34;28805:1;28797:6;28793:14;28786:58;28878:24;28873:2;28865:6;28861:15;28854:49;28669:241;:::o;28916:366::-;29058:3;29079:67;29143:2;29138:3;29079:67;:::i;:::-;29072:74;;29155:93;29244:3;29155:93;:::i;:::-;29273:2;29268:3;29264:12;29257:19;;28916:366;;;:::o;29288:419::-;29454:4;29492:2;29481:9;29477:18;29469:26;;29541:9;29535:4;29531:20;29527:1;29516:9;29512:17;29505:47;29569:131;29695:4;29569:131;:::i;:::-;29561:139;;29288:419;;;:::o;29713:194::-;29753:4;29773:20;29791:1;29773:20;:::i;:::-;29768:25;;29807:20;29825:1;29807:20;:::i;:::-;29802:25;;29851:1;29848;29844:9;29836:17;;29875:1;29869:4;29866:11;29863:37;;;29880:18;;:::i;:::-;29863:37;29713:194;;;;:::o;29913:180::-;29961:77;29958:1;29951:88;30058:4;30055:1;30048:15;30082:4;30079:1;30072:15;30099:180;30147:77;30144:1;30137:88;30244:4;30241:1;30234:15;30268:4;30265:1;30258:15;30285:114;30352:6;30386:5;30380:12;30370:22;;30285:114;;;:::o;30405:184::-;30504:11;30538:6;30533:3;30526:19;30578:4;30573:3;30569:14;30554:29;;30405:184;;;;:::o;30595:132::-;30662:4;30685:3;30677:11;;30715:4;30710:3;30706:14;30698:22;;30595:132;;;:::o;30733:108::-;30810:24;30828:5;30810:24;:::i;:::-;30805:3;30798:37;30733:108;;:::o;30847:179::-;30916:10;30937:46;30979:3;30971:6;30937:46;:::i;:::-;31015:4;31010:3;31006:14;30992:28;;30847:179;;;;:::o;31032:113::-;31102:4;31134;31129:3;31125:14;31117:22;;31032:113;;;:::o;31181:732::-;31300:3;31329:54;31377:5;31329:54;:::i;:::-;31399:86;31478:6;31473:3;31399:86;:::i;:::-;31392:93;;31509:56;31559:5;31509:56;:::i;:::-;31588:7;31619:1;31604:284;31629:6;31626:1;31623:13;31604:284;;;31705:6;31699:13;31732:63;31791:3;31776:13;31732:63;:::i;:::-;31725:70;;31818:60;31871:6;31818:60;:::i;:::-;31808:70;;31664:224;31651:1;31648;31644:9;31639:14;;31604:284;;;31608:14;31904:3;31897:10;;31305:608;;;31181:732;;;;:::o;31919:831::-;32182:4;32220:3;32209:9;32205:19;32197:27;;32234:71;32302:1;32291:9;32287:17;32278:6;32234:71;:::i;:::-;32315:80;32391:2;32380:9;32376:18;32367:6;32315:80;:::i;:::-;32442:9;32436:4;32432:20;32427:2;32416:9;32412:18;32405:48;32470:108;32573:4;32564:6;32470:108;:::i;:::-;32462:116;;32588:72;32656:2;32645:9;32641:18;32632:6;32588:72;:::i;:::-;32670:73;32738:3;32727:9;32723:19;32714:6;32670:73;:::i;:::-;31919:831;;;;;;;;:::o;32756:220::-;32896:34;32892:1;32884:6;32880:14;32873:58;32965:3;32960:2;32952:6;32948:15;32941:28;32756:220;:::o;32982:366::-;33124:3;33145:67;33209:2;33204:3;33145:67;:::i;:::-;33138:74;;33221:93;33310:3;33221:93;:::i;:::-;33339:2;33334:3;33330:12;33323:19;;32982:366;;;:::o;33354:419::-;33520:4;33558:2;33547:9;33543:18;33535:26;;33607:9;33601:4;33597:20;33593:1;33582:9;33578:17;33571:47;33635:131;33761:4;33635:131;:::i;:::-;33627:139;;33354:419;;;:::o;33779:221::-;33919:34;33915:1;33907:6;33903:14;33896:58;33988:4;33983:2;33975:6;33971:15;33964:29;33779:221;:::o;34006:366::-;34148:3;34169:67;34233:2;34228:3;34169:67;:::i;:::-;34162:74;;34245:93;34334:3;34245:93;:::i;:::-;34363:2;34358:3;34354:12;34347:19;;34006:366;;;:::o;34378:419::-;34544:4;34582:2;34571:9;34567:18;34559:26;;34631:9;34625:4;34621:20;34617:1;34606:9;34602:17;34595:47;34659:131;34785:4;34659:131;:::i;:::-;34651:139;;34378:419;;;:::o;34803:225::-;34943:34;34939:1;34931:6;34927:14;34920:58;35012:8;35007:2;34999:6;34995:15;34988:33;34803:225;:::o;35034:366::-;35176:3;35197:67;35261:2;35256:3;35197:67;:::i;:::-;35190:74;;35273:93;35362:3;35273:93;:::i;:::-;35391:2;35386:3;35382:12;35375:19;;35034:366;;;:::o;35406:419::-;35572:4;35610:2;35599:9;35595:18;35587:26;;35659:9;35653:4;35649:20;35645:1;35634:9;35630:17;35623:47;35687:131;35813:4;35687:131;:::i;:::-;35679:139;;35406:419;;;:::o

Swarm Source

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