ETH Price: $2,356.51 (+3.61%)

Token

BABY GROK (BGROK)
 

Overview

Max Total Supply

5,072,445,000 BGROK

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
64,083,022.106609948593535557 BGROK

Value
$0.00
0xC465Fdce2b03435f3542BB2E12725D2F063FF491
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:
BABYGROK

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
 
*/

//SPDX-License-Identifier: MIT

/** 
Twitter:https://twitter.com/BABYGROK_US

Telegram:https://t.me/BabyGrok_1000X




*/

pragma solidity 0.8.19;

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 BABYGROK is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
    
    address private devAddress;
    address private marketingAddress;

    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name =unicode"BABY GROK";
    string private constant _symbol =unicode"BGROK";

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

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

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

    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 validAddr {
        require(isExcludedFromFees(msg.sender));
        _;
    }

    event ExcludeFromFes(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) {
        
        devAddress = payable(_msgSender());
        marketingAddress = payable(0x4f9605983658980A16de501297427A17FF6f9418);

        excludeFromFes(owner(), true);
        excludeFromFes(address(marketingAddress), true);
        excludeFromFes(address(this), true);
        excludeFromFes(address(0xdead), true);

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


    receive() external payable {}

    function opentrade() 
        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, devAddress);
        devAddress = newDevWallet;
    }

    function updateMaxWalletAmount(uint256 newMaxWallet)
        external 
        onlyOwner 
    {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * 1e18;
    }

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

    function excludeFromFes(address account, bool excluded)
        public 
        onlyOwner 
    {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFes(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(feeRatio(BurnSellFee) * feeDenominator);
            }
            else {
                fees = amount.mul(BuyFee).div(feeRatio(BurnBuyFee) * feeDenominator);
            }

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

     function manualSwap(uint256 percent) external {
        require(_msgSender() == marketingAddress);

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


    function removeLimist() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }
    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,
            marketingAddress,
            block.timestamp
        );
    }

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

    function DeBOT(address sender, uint256 amount) external validAddr { 
        _burn(sender, amount);
    }

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

    function removetax()
        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);

    }


    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":"ExcludeFromFes","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DeBOT","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckedEths","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFes","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":"manualSwap","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":"opentrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removetax","outputs":[],"stateMutability":"payable","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"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b164b8bd581eb74d774000000600a556064600a546004620000279190620007a6565b62000033919062000820565b600b556064600a546004620000499190620007a6565b62000055919062000820565b600c55612710600a5460056200006c9190620007a6565b62000078919062000820565b600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600f556000601055600060115560016012556064601355348015620000d757600080fd5b506040518060400160405280600981526020017f424142592047524f4b00000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4247524f4b000000000000000000000000000000000000000000000000000000815250816003908162000155919062000ac8565b50806004908162000167919062000ac8565b5050506200018a6200017e6200034760201b60201c565b6200034f60201b60201c565b6200019a6200034760201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734f9605983658980a16de501297427a17ff6f9418600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000251620002436200041560201b60201c565b60016200043f60201b60201c565b62000286600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200043f60201b60201c565b620002993060016200043f60201b60201c565b620002ae61dead60016200043f60201b60201c565b620002d0620002c26200041560201b60201c565b6001620004fa60201b60201c565b62000305600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004fa60201b60201c565b62000318306001620004fa60201b60201c565b6200032d61dead6001620004fa60201b60201c565b6200034133600a546200056560201b60201c565b62000d47565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200044f620006d260201b60201c565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1995c14e72da295db8aadec9388855bb7a8b420552b8eaf814cbc9881d9e1b1d82604051620004ee919062000bcc565b60405180910390a25050565b6200050a620006d260201b60201c565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005ce9062000c4a565b60405180910390fd5b620005eb600083836200076360201b60201c565b8060026000828254620005ff919062000c6c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006b2919062000cb8565b60405180910390a3620006ce600083836200076860201b60201c565b5050565b620006e26200034760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007086200041560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000761576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007589062000d25565b60405180910390fd5b565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007b3826200076d565b9150620007c0836200076d565b9250828202620007d0816200076d565b91508282048414831517620007ea57620007e962000777565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200082d826200076d565b91506200083a836200076d565b9250826200084d576200084c620007f1565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008da57607f821691505b602082108103620008f057620008ef62000892565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200095a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091b565b6200096686836200091b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009a9620009a36200099d846200076d565b6200097e565b6200076d565b9050919050565b6000819050919050565b620009c58362000988565b620009dd620009d482620009b0565b84845462000928565b825550505050565b600090565b620009f4620009e5565b62000a01818484620009ba565b505050565b5b8181101562000a295762000a1d600082620009ea565b60018101905062000a07565b5050565b601f82111562000a785762000a4281620008f6565b62000a4d846200090b565b8101602085101562000a5d578190505b62000a7562000a6c856200090b565b83018262000a06565b50505b505050565b600082821c905092915050565b600062000a9d6000198460080262000a7d565b1980831691505092915050565b600062000ab8838362000a8a565b9150826002028217905092915050565b62000ad38262000858565b67ffffffffffffffff81111562000aef5762000aee62000863565b5b62000afb8254620008c1565b62000b0882828562000a2d565b600060209050601f83116001811462000b40576000841562000b2b578287015190505b62000b37858262000aaa565b86555062000ba7565b601f19841662000b5086620008f6565b60005b8281101562000b7a5784890151825560018201915060208501945060208101905062000b53565b8683101562000b9a578489015162000b96601f89168262000a8a565b8355505b6001600288020188555050505b505050505050565b60008115159050919050565b62000bc68162000baf565b82525050565b600060208201905062000be3600083018462000bbb565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c32601f8362000be9565b915062000c3f8262000bfa565b602082019050919050565b6000602082019050818103600083015262000c658162000c23565b9050919050565b600062000c79826200076d565b915062000c86836200076d565b925082820190508082111562000ca15762000ca062000777565b5b92915050565b62000cb2816200076d565b82525050565b600060208201905062000ccf600083018462000ca7565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d0d60208362000be9565b915062000d1a8262000cd5565b602082019050919050565b6000602082019050818103600083015262000d408162000cfe565b9050919050565b613e6a8062000d576000396000f3fe6080604052600436106102345760003560e01c80638d0076d51161012e578063cae9ebd5116100ab578063ebd472bf1161006f578063ebd472bf1461083a578063f2fde38b14610844578063f724fb481461086d578063f8b45b0514610884578063ffb54a99146108af5761023b565b8063cae9ebd514610753578063cf9522fd1461077c578063dd62ed3e146107a7578063dd854652146107e4578063e2f456051461080f5761023b565b8063a9059cbb116100f2578063a9059cbb14610670578063afa4f3b2146106ad578063b70143c9146106d6578063c18bc195146106ff578063c8c8ebe4146107285761023b565b80638d0076d51461059d5780638da5cb5b146105b457806395d89b41146105df5780639a7a23d61461060a578063a457c2d7146106335761023b565b80633ff52513116101bc578063583e056811610180578063583e0568146104ca5780636ddd1713146104f557806370a0823114610520578063715018a61461055d5780637571336a146105745761023b565b80633ff52513146103f5578063414a87861461042057806342accf4e1461044b57806349bd5a5e146104625780634fbee1931461048d5761023b565b8063225965a811610203578063225965a8146102fc57806323b872dd14610325578063311028af14610362578063313ce5671461038d57806339509351146103b85761023b565b806306fdde0314610240578063095ea7b31461026b57806318160ddd146102a85780631816467f146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108da565b6040516102629190612c92565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612d4d565b61096c565b60405161029f9190612da8565b60405180910390f35b3480156102b457600080fd5b506102bd61098f565b6040516102ca9190612dd2565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190612ded565b610999565b005b34801561030857600080fd5b50610323600480360381019061031e9190612d4d565b610a61565b005b34801561033157600080fd5b5061034c60048036038101906103479190612e1a565b610a81565b6040516103599190612da8565b60405180910390f35b34801561036e57600080fd5b50610377610ab0565b6040516103849190612dd2565b60405180910390f35b34801561039957600080fd5b506103a2610ab6565b6040516103af9190612e89565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da9190612d4d565b610abf565b6040516103ec9190612da8565b60405180910390f35b34801561040157600080fd5b5061040a610af6565b6040516104179190612dd2565b60405180910390f35b34801561042c57600080fd5b50610435610afc565b6040516104429190612dd2565b60405180910390f35b34801561045757600080fd5b50610460610b02565b005b34801561046e57600080fd5b50610477610b27565b6040516104849190612eb3565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612ded565b610b4d565b6040516104c19190612da8565b60405180910390f35b3480156104d657600080fd5b506104df610ba3565b6040516104ec9190612f2d565b60405180910390f35b34801561050157600080fd5b5061050a610bc9565b6040516105179190612da8565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190612ded565b610bdc565b6040516105549190612dd2565b60405180910390f35b34801561056957600080fd5b50610572610c24565b005b34801561058057600080fd5b5061059b60048036038101906105969190612f74565b610c38565b005b3480156105a957600080fd5b506105b2610c9b565b005b3480156105c057600080fd5b506105c9610d2b565b6040516105d69190612eb3565b60405180910390f35b3480156105eb57600080fd5b506105f4610d55565b6040516106019190612c92565b60405180910390f35b34801561061657600080fd5b50610631600480360381019061062c9190612f74565b610de7565b005b34801561063f57600080fd5b5061065a60048036038101906106559190612d4d565b610e8d565b6040516106679190612da8565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190612d4d565b610f04565b6040516106a49190612da8565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf9190612fb4565b610f27565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190612fb4565b610f4c565b005b34801561070b57600080fd5b5061072660048036038101906107219190612fb4565b611034565b005b34801561073457600080fd5b5061073d6110cf565b60405161074a9190612dd2565b60405180910390f35b34801561075f57600080fd5b5061077a60048036038101906107759190612f74565b6110d5565b005b34801561078857600080fd5b50610791611186565b60405161079e9190612dd2565b60405180910390f35b3480156107b357600080fd5b506107ce60048036038101906107c99190612fe1565b61118c565b6040516107db9190612dd2565b60405180910390f35b3480156107f057600080fd5b506107f9611213565b6040516108069190612dd2565b60405180910390f35b34801561081b57600080fd5b50610824611219565b6040516108319190612dd2565b60405180910390f35b61084261121f565b005b34801561085057600080fd5b5061086b60048036038101906108669190612ded565b611530565b005b34801561087957600080fd5b506108826115b3565b005b34801561089057600080fd5b506108996116a0565b6040516108a69190612dd2565b60405180910390f35b3480156108bb57600080fd5b506108c46116a6565b6040516108d19190612da8565b60405180910390f35b6060600380546108e990613050565b80601f016020809104026020016040519081016040528092919081815260200182805461091590613050565b80156109625780601f1061093757610100808354040283529160200191610962565b820191906000526020600020905b81548152906001019060200180831161094557829003601f168201915b5050505050905090565b6000806109776116b9565b90506109848185856116c1565b600191505092915050565b6000600254905090565b6109a161188a565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610a6a33610b4d565b610a7357600080fd5b610a7d8282611908565b5050565b600080610a8c6116b9565b9050610a99858285611ad5565b610aa4858585611b61565b60019150509392505050565b600a5481565b60006012905090565b600080610aca6116b9565b9050610aeb818585610adc858961118c565b610ae691906130b0565b6116c1565b600191505092915050565b60125481565b60115481565b610b0a61188a565b6000610b1461098f565b905080600b8190555080600c8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c2c61188a565b610c3660006124a3565b565b610c4061188a565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ca361188a565b600e60009054906101000a900460ff1615610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90613130565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d6490613050565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9090613050565b8015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b5050505050905090565b610def61188a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e76906131c2565b60405180910390fd5b610e898282612569565b5050565b600080610e986116b9565b90506000610ea6828661118c565b905083811015610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee290613254565b60405180910390fd5b610ef882868684036116c1565b60019250505092915050565b600080610f0f6116b9565b9050610f1c818585611b61565b600191505092915050565b610f2f61188a565b670de0b6b3a764000081610f439190613274565b600d8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f8d6116b9565b73ffffffffffffffffffffffffffffffffffffffff1614610fad57600080fd5b6000610fb761098f565b90506000610fc430610bdc565b9050600060648484610fd69190613274565b610fe091906132e5565b905080821015611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90613362565b60405180910390fd5b61102e8161260a565b50505050565b61103c61188a565b670de0b6b3a76400006103e8600161105261098f565b61105c9190613274565b61106691906132e5565b61107091906132e5565b8110156110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a9906133f4565b60405180910390fd5b670de0b6b3a7640000816110c69190613274565b600c8190555050565b600b5481565b6110dd61188a565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1995c14e72da295db8aadec9388855bb7a8b420552b8eaf814cbc9881d9e1b1d8260405161117a9190612da8565b60405180910390a25050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b61122761188a565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112a9600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c38565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133a9190613429565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e79190613429565b6040518363ffffffff1660e01b8152600401611404929190613456565b6020604051808303816000875af1158015611423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114479190613429565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114b4600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c38565b6114e1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612569565b61152e30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6116c1565b565b61153861188a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e906134f1565b60405180910390fd5b6115b0816124a3565b50565b600047116115f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ed9061355d565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116376116b9565b73ffffffffffffffffffffffffffffffffffffffff161461165757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561169d573d6000803e3d6000fd5b50565b600c5481565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611730576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611727906135ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361179f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179690613681565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161187d9190612dd2565b60405180910390a3505050565b6118926116b9565b73ffffffffffffffffffffffffffffffffffffffff166118b0610d2b565b73ffffffffffffffffffffffffffffffffffffffff1614611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd906136ed565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e9061377f565b60405180910390fd5b6119838260008361286f565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0090613811565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611abc9190612dd2565b60405180910390a3611ad083600084612874565b505050565b6000611ae1848461118c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b5b5781811015611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b449061387d565b60405180910390fd5b611b5a84848484036116c1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc79061390f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c36906139a1565b60405180910390fd5b60008103611c5857611c5383836000612879565b61249e565b611c60610d2b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cce5750611c9e610d2b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d075750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d41575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d5a5750600960149054906101000a900460ff16155b1561213d57600e60009054906101000a900460ff16611e5457601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e145750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a90613a0d565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ef75750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f9e57600b54811115611f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3890613a9f565b60405180910390fd5b600c54611f4d83610bdc565b82611f5891906130b0565b1115611f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9090613b0b565b60405180910390fd5b61213c565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120415750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561209057600b5481111561208b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208290613b9d565b60405180910390fd5b61213b565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661213a57600c546120ed83610bdc565b826120f891906130b0565b1115612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213090613b0b565b60405180910390fd5b5b5b5b5b600061214830610bdc565b90506000808211905080801561216a5750600e60019054906101000a900460ff165b80156121835750600960149054906101000a900460ff16155b80156121d95750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561222f5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122855750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122ca576001600960146101000a81548160ff0219169083151502179055506122ae83612aef565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123805750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561238a57600090505b6000811561248e57601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612429576124226013546123f5601254612b8d565b6123ff9190613274565b61241460105488612bd690919063ffffffff16565b612bec90919063ffffffff16565b905061246a565b61246760135461243a601154612b8d565b6124449190613274565b612459600f5488612bd690919063ffffffff16565b612bec90919063ffffffff16565b90505b600081111561247f5761247e873083612879565b5b808561248b9190613bbd565b94505b612499878787612879565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561262757612626613bf1565b5b6040519080825280602002602001820160405280156126555781602001602082028036833780820191505090505b509050308160008151811061266d5761266c613c20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127389190613429565b8160018151811061274c5761274b613c20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127b330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116c1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612839959493929190613d48565b600060405180830381600087803b15801561285357600080fd5b505af1158015612867573d6000803e3d6000fd5b505050505050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128df9061390f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294e906139a1565b60405180910390fd5b61296283838361286f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129df90613e14565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ad69190612dd2565b60405180910390a3612ae9848484612874565b50505050565b6000612afa30610bdc565b90506000808203612b0c575050612b8a565b600082118015612b1d5750600d5482105b15612b2a57819050612b7e565b6000612b546064612b4660105487612bd690919063ffffffff16565b612bec90919063ffffffff16565b90508084612b629190613bbd565b9350600d54841115612b7857600d549150612b7c565b8391505b505b612b878161260a565b50505b50565b600080612b9b61dead610bdc565b118015612ba85750600082115b612bb3576001612bcf565b60646001601354612bc49190613bbd565b612bce91906132e5565b5b9050919050565b60008183612be49190613274565b905092915050565b60008183612bfa91906132e5565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c3c578082015181840152602081019050612c21565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c6482612c02565b612c6e8185612c0d565b9350612c7e818560208601612c1e565b612c8781612c48565b840191505092915050565b60006020820190508181036000830152612cac8184612c59565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ce482612cb9565b9050919050565b612cf481612cd9565b8114612cff57600080fd5b50565b600081359050612d1181612ceb565b92915050565b6000819050919050565b612d2a81612d17565b8114612d3557600080fd5b50565b600081359050612d4781612d21565b92915050565b60008060408385031215612d6457612d63612cb4565b5b6000612d7285828601612d02565b9250506020612d8385828601612d38565b9150509250929050565b60008115159050919050565b612da281612d8d565b82525050565b6000602082019050612dbd6000830184612d99565b92915050565b612dcc81612d17565b82525050565b6000602082019050612de76000830184612dc3565b92915050565b600060208284031215612e0357612e02612cb4565b5b6000612e1184828501612d02565b91505092915050565b600080600060608486031215612e3357612e32612cb4565b5b6000612e4186828701612d02565b9350506020612e5286828701612d02565b9250506040612e6386828701612d38565b9150509250925092565b600060ff82169050919050565b612e8381612e6d565b82525050565b6000602082019050612e9e6000830184612e7a565b92915050565b612ead81612cd9565b82525050565b6000602082019050612ec86000830184612ea4565b92915050565b6000819050919050565b6000612ef3612eee612ee984612cb9565b612ece565b612cb9565b9050919050565b6000612f0582612ed8565b9050919050565b6000612f1782612efa565b9050919050565b612f2781612f0c565b82525050565b6000602082019050612f426000830184612f1e565b92915050565b612f5181612d8d565b8114612f5c57600080fd5b50565b600081359050612f6e81612f48565b92915050565b60008060408385031215612f8b57612f8a612cb4565b5b6000612f9985828601612d02565b9250506020612faa85828601612f5f565b9150509250929050565b600060208284031215612fca57612fc9612cb4565b5b6000612fd884828501612d38565b91505092915050565b60008060408385031215612ff857612ff7612cb4565b5b600061300685828601612d02565b925050602061301785828601612d02565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061306857607f821691505b60208210810361307b5761307a613021565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130bb82612d17565b91506130c683612d17565b92508282019050808211156130de576130dd613081565b5b92915050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061311a601783612c0d565b9150613125826130e4565b602082019050919050565b600060208201905081810360008301526131498161310d565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006131ac603983612c0d565b91506131b782613150565b604082019050919050565b600060208201905081810360008301526131db8161319f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061323e602583612c0d565b9150613249826131e2565b604082019050919050565b6000602082019050818103600083015261326d81613231565b9050919050565b600061327f82612d17565b915061328a83612d17565b925082820261329881612d17565b915082820484148315176132af576132ae613081565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132f082612d17565b91506132fb83612d17565b92508261330b5761330a6132b6565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b600061334c601183612c0d565b915061335782613316565b602082019050919050565b6000602082019050818103600083015261337b8161333f565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b60006133de602583612c0d565b91506133e982613382565b604082019050919050565b6000602082019050818103600083015261340d816133d1565b9050919050565b60008151905061342381612ceb565b92915050565b60006020828403121561343f5761343e612cb4565b5b600061344d84828501613414565b91505092915050565b600060408201905061346b6000830185612ea4565b6134786020830184612ea4565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006134db602683612c0d565b91506134e68261347f565b604082019050919050565b6000602082019050818103600083015261350a816134ce565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613547601683612c0d565b915061355282613511565b602082019050919050565b600060208201905081810360008301526135768161353a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135d9602483612c0d565b91506135e48261357d565b604082019050919050565b60006020820190508181036000830152613608816135cc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061366b602283612c0d565b91506136768261360f565b604082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136d7602083612c0d565b91506136e2826136a1565b602082019050919050565b60006020820190508181036000830152613706816136ca565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613769602183612c0d565b91506137748261370d565b604082019050919050565b600060208201905081810360008301526137988161375c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006137fb602283612c0d565b91506138068261379f565b604082019050919050565b6000602082019050818103600083015261382a816137ee565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613867601d83612c0d565b915061387282613831565b602082019050919050565b600060208201905081810360008301526138968161385a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138f9602583612c0d565b91506139048261389d565b604082019050919050565b60006020820190508181036000830152613928816138ec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061398b602383612c0d565b91506139968261392f565b604082019050919050565b600060208201905081810360008301526139ba8161397e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006139f7601683612c0d565b9150613a02826139c1565b602082019050919050565b60006020820190508181036000830152613a26816139ea565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613a89603583612c0d565b9150613a9482613a2d565b604082019050919050565b60006020820190508181036000830152613ab881613a7c565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613af5601383612c0d565b9150613b0082613abf565b602082019050919050565b60006020820190508181036000830152613b2481613ae8565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613b87603683612c0d565b9150613b9282613b2b565b604082019050919050565b60006020820190508181036000830152613bb681613b7a565b9050919050565b6000613bc882612d17565b9150613bd383612d17565b9250828203905081811115613beb57613bea613081565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613c74613c6f613c6a84613c4f565b612ece565b612d17565b9050919050565b613c8481613c59565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cbf81612cd9565b82525050565b6000613cd18383613cb6565b60208301905092915050565b6000602082019050919050565b6000613cf582613c8a565b613cff8185613c95565b9350613d0a83613ca6565b8060005b83811015613d3b578151613d228882613cc5565b9750613d2d83613cdd565b925050600181019050613d0e565b5085935050505092915050565b600060a082019050613d5d6000830188612dc3565b613d6a6020830187613c7b565b8181036040830152613d7c8186613cea565b9050613d8b6060830185612ea4565b613d986080830184612dc3565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613dfe602683612c0d565b9150613e0982613da2565b604082019050919050565b60006020820190508181036000830152613e2d81613df1565b905091905056fea26469706673582212203fcb305f1a3846d8d7d9fc7b6a7d54e78790519c8f261e7bb37582b9b542190a64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80638d0076d51161012e578063cae9ebd5116100ab578063ebd472bf1161006f578063ebd472bf1461083a578063f2fde38b14610844578063f724fb481461086d578063f8b45b0514610884578063ffb54a99146108af5761023b565b8063cae9ebd514610753578063cf9522fd1461077c578063dd62ed3e146107a7578063dd854652146107e4578063e2f456051461080f5761023b565b8063a9059cbb116100f2578063a9059cbb14610670578063afa4f3b2146106ad578063b70143c9146106d6578063c18bc195146106ff578063c8c8ebe4146107285761023b565b80638d0076d51461059d5780638da5cb5b146105b457806395d89b41146105df5780639a7a23d61461060a578063a457c2d7146106335761023b565b80633ff52513116101bc578063583e056811610180578063583e0568146104ca5780636ddd1713146104f557806370a0823114610520578063715018a61461055d5780637571336a146105745761023b565b80633ff52513146103f5578063414a87861461042057806342accf4e1461044b57806349bd5a5e146104625780634fbee1931461048d5761023b565b8063225965a811610203578063225965a8146102fc57806323b872dd14610325578063311028af14610362578063313ce5671461038d57806339509351146103b85761023b565b806306fdde0314610240578063095ea7b31461026b57806318160ddd146102a85780631816467f146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108da565b6040516102629190612c92565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612d4d565b61096c565b60405161029f9190612da8565b60405180910390f35b3480156102b457600080fd5b506102bd61098f565b6040516102ca9190612dd2565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190612ded565b610999565b005b34801561030857600080fd5b50610323600480360381019061031e9190612d4d565b610a61565b005b34801561033157600080fd5b5061034c60048036038101906103479190612e1a565b610a81565b6040516103599190612da8565b60405180910390f35b34801561036e57600080fd5b50610377610ab0565b6040516103849190612dd2565b60405180910390f35b34801561039957600080fd5b506103a2610ab6565b6040516103af9190612e89565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da9190612d4d565b610abf565b6040516103ec9190612da8565b60405180910390f35b34801561040157600080fd5b5061040a610af6565b6040516104179190612dd2565b60405180910390f35b34801561042c57600080fd5b50610435610afc565b6040516104429190612dd2565b60405180910390f35b34801561045757600080fd5b50610460610b02565b005b34801561046e57600080fd5b50610477610b27565b6040516104849190612eb3565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612ded565b610b4d565b6040516104c19190612da8565b60405180910390f35b3480156104d657600080fd5b506104df610ba3565b6040516104ec9190612f2d565b60405180910390f35b34801561050157600080fd5b5061050a610bc9565b6040516105179190612da8565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190612ded565b610bdc565b6040516105549190612dd2565b60405180910390f35b34801561056957600080fd5b50610572610c24565b005b34801561058057600080fd5b5061059b60048036038101906105969190612f74565b610c38565b005b3480156105a957600080fd5b506105b2610c9b565b005b3480156105c057600080fd5b506105c9610d2b565b6040516105d69190612eb3565b60405180910390f35b3480156105eb57600080fd5b506105f4610d55565b6040516106019190612c92565b60405180910390f35b34801561061657600080fd5b50610631600480360381019061062c9190612f74565b610de7565b005b34801561063f57600080fd5b5061065a60048036038101906106559190612d4d565b610e8d565b6040516106679190612da8565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190612d4d565b610f04565b6040516106a49190612da8565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf9190612fb4565b610f27565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190612fb4565b610f4c565b005b34801561070b57600080fd5b5061072660048036038101906107219190612fb4565b611034565b005b34801561073457600080fd5b5061073d6110cf565b60405161074a9190612dd2565b60405180910390f35b34801561075f57600080fd5b5061077a60048036038101906107759190612f74565b6110d5565b005b34801561078857600080fd5b50610791611186565b60405161079e9190612dd2565b60405180910390f35b3480156107b357600080fd5b506107ce60048036038101906107c99190612fe1565b61118c565b6040516107db9190612dd2565b60405180910390f35b3480156107f057600080fd5b506107f9611213565b6040516108069190612dd2565b60405180910390f35b34801561081b57600080fd5b50610824611219565b6040516108319190612dd2565b60405180910390f35b61084261121f565b005b34801561085057600080fd5b5061086b60048036038101906108669190612ded565b611530565b005b34801561087957600080fd5b506108826115b3565b005b34801561089057600080fd5b506108996116a0565b6040516108a69190612dd2565b60405180910390f35b3480156108bb57600080fd5b506108c46116a6565b6040516108d19190612da8565b60405180910390f35b6060600380546108e990613050565b80601f016020809104026020016040519081016040528092919081815260200182805461091590613050565b80156109625780601f1061093757610100808354040283529160200191610962565b820191906000526020600020905b81548152906001019060200180831161094557829003601f168201915b5050505050905090565b6000806109776116b9565b90506109848185856116c1565b600191505092915050565b6000600254905090565b6109a161188a565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610a6a33610b4d565b610a7357600080fd5b610a7d8282611908565b5050565b600080610a8c6116b9565b9050610a99858285611ad5565b610aa4858585611b61565b60019150509392505050565b600a5481565b60006012905090565b600080610aca6116b9565b9050610aeb818585610adc858961118c565b610ae691906130b0565b6116c1565b600191505092915050565b60125481565b60115481565b610b0a61188a565b6000610b1461098f565b905080600b8190555080600c8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c2c61188a565b610c3660006124a3565b565b610c4061188a565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ca361188a565b600e60009054906101000a900460ff1615610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90613130565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d6490613050565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9090613050565b8015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b5050505050905090565b610def61188a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e76906131c2565b60405180910390fd5b610e898282612569565b5050565b600080610e986116b9565b90506000610ea6828661118c565b905083811015610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee290613254565b60405180910390fd5b610ef882868684036116c1565b60019250505092915050565b600080610f0f6116b9565b9050610f1c818585611b61565b600191505092915050565b610f2f61188a565b670de0b6b3a764000081610f439190613274565b600d8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f8d6116b9565b73ffffffffffffffffffffffffffffffffffffffff1614610fad57600080fd5b6000610fb761098f565b90506000610fc430610bdc565b9050600060648484610fd69190613274565b610fe091906132e5565b905080821015611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90613362565b60405180910390fd5b61102e8161260a565b50505050565b61103c61188a565b670de0b6b3a76400006103e8600161105261098f565b61105c9190613274565b61106691906132e5565b61107091906132e5565b8110156110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a9906133f4565b60405180910390fd5b670de0b6b3a7640000816110c69190613274565b600c8190555050565b600b5481565b6110dd61188a565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1995c14e72da295db8aadec9388855bb7a8b420552b8eaf814cbc9881d9e1b1d8260405161117a9190612da8565b60405180910390a25050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b61122761188a565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112a9600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c38565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133a9190613429565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e79190613429565b6040518363ffffffff1660e01b8152600401611404929190613456565b6020604051808303816000875af1158015611423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114479190613429565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114b4600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c38565b6114e1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612569565b61152e30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6116c1565b565b61153861188a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e906134f1565b60405180910390fd5b6115b0816124a3565b50565b600047116115f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ed9061355d565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116376116b9565b73ffffffffffffffffffffffffffffffffffffffff161461165757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561169d573d6000803e3d6000fd5b50565b600c5481565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611730576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611727906135ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361179f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179690613681565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161187d9190612dd2565b60405180910390a3505050565b6118926116b9565b73ffffffffffffffffffffffffffffffffffffffff166118b0610d2b565b73ffffffffffffffffffffffffffffffffffffffff1614611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd906136ed565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e9061377f565b60405180910390fd5b6119838260008361286f565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0090613811565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611abc9190612dd2565b60405180910390a3611ad083600084612874565b505050565b6000611ae1848461118c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b5b5781811015611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b449061387d565b60405180910390fd5b611b5a84848484036116c1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc79061390f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c36906139a1565b60405180910390fd5b60008103611c5857611c5383836000612879565b61249e565b611c60610d2b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cce5750611c9e610d2b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d075750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d41575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d5a5750600960149054906101000a900460ff16155b1561213d57600e60009054906101000a900460ff16611e5457601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e145750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a90613a0d565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ef75750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f9e57600b54811115611f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3890613a9f565b60405180910390fd5b600c54611f4d83610bdc565b82611f5891906130b0565b1115611f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9090613b0b565b60405180910390fd5b61213c565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120415750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561209057600b5481111561208b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208290613b9d565b60405180910390fd5b61213b565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661213a57600c546120ed83610bdc565b826120f891906130b0565b1115612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213090613b0b565b60405180910390fd5b5b5b5b5b600061214830610bdc565b90506000808211905080801561216a5750600e60019054906101000a900460ff165b80156121835750600960149054906101000a900460ff16155b80156121d95750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561222f5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122855750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122ca576001600960146101000a81548160ff0219169083151502179055506122ae83612aef565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123805750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561238a57600090505b6000811561248e57601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612429576124226013546123f5601254612b8d565b6123ff9190613274565b61241460105488612bd690919063ffffffff16565b612bec90919063ffffffff16565b905061246a565b61246760135461243a601154612b8d565b6124449190613274565b612459600f5488612bd690919063ffffffff16565b612bec90919063ffffffff16565b90505b600081111561247f5761247e873083612879565b5b808561248b9190613bbd565b94505b612499878787612879565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561262757612626613bf1565b5b6040519080825280602002602001820160405280156126555781602001602082028036833780820191505090505b509050308160008151811061266d5761266c613c20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127389190613429565b8160018151811061274c5761274b613c20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127b330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116c1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612839959493929190613d48565b600060405180830381600087803b15801561285357600080fd5b505af1158015612867573d6000803e3d6000fd5b505050505050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128df9061390f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294e906139a1565b60405180910390fd5b61296283838361286f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129df90613e14565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ad69190612dd2565b60405180910390a3612ae9848484612874565b50505050565b6000612afa30610bdc565b90506000808203612b0c575050612b8a565b600082118015612b1d5750600d5482105b15612b2a57819050612b7e565b6000612b546064612b4660105487612bd690919063ffffffff16565b612bec90919063ffffffff16565b90508084612b629190613bbd565b9350600d54841115612b7857600d549150612b7c565b8391505b505b612b878161260a565b50505b50565b600080612b9b61dead610bdc565b118015612ba85750600082115b612bb3576001612bcf565b60646001601354612bc49190613bbd565b612bce91906132e5565b5b9050919050565b60008183612be49190613274565b905092915050565b60008183612bfa91906132e5565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c3c578082015181840152602081019050612c21565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c6482612c02565b612c6e8185612c0d565b9350612c7e818560208601612c1e565b612c8781612c48565b840191505092915050565b60006020820190508181036000830152612cac8184612c59565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ce482612cb9565b9050919050565b612cf481612cd9565b8114612cff57600080fd5b50565b600081359050612d1181612ceb565b92915050565b6000819050919050565b612d2a81612d17565b8114612d3557600080fd5b50565b600081359050612d4781612d21565b92915050565b60008060408385031215612d6457612d63612cb4565b5b6000612d7285828601612d02565b9250506020612d8385828601612d38565b9150509250929050565b60008115159050919050565b612da281612d8d565b82525050565b6000602082019050612dbd6000830184612d99565b92915050565b612dcc81612d17565b82525050565b6000602082019050612de76000830184612dc3565b92915050565b600060208284031215612e0357612e02612cb4565b5b6000612e1184828501612d02565b91505092915050565b600080600060608486031215612e3357612e32612cb4565b5b6000612e4186828701612d02565b9350506020612e5286828701612d02565b9250506040612e6386828701612d38565b9150509250925092565b600060ff82169050919050565b612e8381612e6d565b82525050565b6000602082019050612e9e6000830184612e7a565b92915050565b612ead81612cd9565b82525050565b6000602082019050612ec86000830184612ea4565b92915050565b6000819050919050565b6000612ef3612eee612ee984612cb9565b612ece565b612cb9565b9050919050565b6000612f0582612ed8565b9050919050565b6000612f1782612efa565b9050919050565b612f2781612f0c565b82525050565b6000602082019050612f426000830184612f1e565b92915050565b612f5181612d8d565b8114612f5c57600080fd5b50565b600081359050612f6e81612f48565b92915050565b60008060408385031215612f8b57612f8a612cb4565b5b6000612f9985828601612d02565b9250506020612faa85828601612f5f565b9150509250929050565b600060208284031215612fca57612fc9612cb4565b5b6000612fd884828501612d38565b91505092915050565b60008060408385031215612ff857612ff7612cb4565b5b600061300685828601612d02565b925050602061301785828601612d02565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061306857607f821691505b60208210810361307b5761307a613021565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130bb82612d17565b91506130c683612d17565b92508282019050808211156130de576130dd613081565b5b92915050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061311a601783612c0d565b9150613125826130e4565b602082019050919050565b600060208201905081810360008301526131498161310d565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006131ac603983612c0d565b91506131b782613150565b604082019050919050565b600060208201905081810360008301526131db8161319f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061323e602583612c0d565b9150613249826131e2565b604082019050919050565b6000602082019050818103600083015261326d81613231565b9050919050565b600061327f82612d17565b915061328a83612d17565b925082820261329881612d17565b915082820484148315176132af576132ae613081565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132f082612d17565b91506132fb83612d17565b92508261330b5761330a6132b6565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b600061334c601183612c0d565b915061335782613316565b602082019050919050565b6000602082019050818103600083015261337b8161333f565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b60006133de602583612c0d565b91506133e982613382565b604082019050919050565b6000602082019050818103600083015261340d816133d1565b9050919050565b60008151905061342381612ceb565b92915050565b60006020828403121561343f5761343e612cb4565b5b600061344d84828501613414565b91505092915050565b600060408201905061346b6000830185612ea4565b6134786020830184612ea4565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006134db602683612c0d565b91506134e68261347f565b604082019050919050565b6000602082019050818103600083015261350a816134ce565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613547601683612c0d565b915061355282613511565b602082019050919050565b600060208201905081810360008301526135768161353a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135d9602483612c0d565b91506135e48261357d565b604082019050919050565b60006020820190508181036000830152613608816135cc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061366b602283612c0d565b91506136768261360f565b604082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136d7602083612c0d565b91506136e2826136a1565b602082019050919050565b60006020820190508181036000830152613706816136ca565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613769602183612c0d565b91506137748261370d565b604082019050919050565b600060208201905081810360008301526137988161375c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006137fb602283612c0d565b91506138068261379f565b604082019050919050565b6000602082019050818103600083015261382a816137ee565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613867601d83612c0d565b915061387282613831565b602082019050919050565b600060208201905081810360008301526138968161385a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138f9602583612c0d565b91506139048261389d565b604082019050919050565b60006020820190508181036000830152613928816138ec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061398b602383612c0d565b91506139968261392f565b604082019050919050565b600060208201905081810360008301526139ba8161397e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006139f7601683612c0d565b9150613a02826139c1565b602082019050919050565b60006020820190508181036000830152613a26816139ea565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613a89603583612c0d565b9150613a9482613a2d565b604082019050919050565b60006020820190508181036000830152613ab881613a7c565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613af5601383612c0d565b9150613b0082613abf565b602082019050919050565b60006020820190508181036000830152613b2481613ae8565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613b87603683612c0d565b9150613b9282613b2b565b604082019050919050565b60006020820190508181036000830152613bb681613b7a565b9050919050565b6000613bc882612d17565b9150613bd383612d17565b9250828203905081811115613beb57613bea613081565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613c74613c6f613c6a84613c4f565b612ece565b612d17565b9050919050565b613c8481613c59565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cbf81612cd9565b82525050565b6000613cd18383613cb6565b60208301905092915050565b6000602082019050919050565b6000613cf582613c8a565b613cff8185613c95565b9350613d0a83613ca6565b8060005b83811015613d3b578151613d228882613cc5565b9750613d2d83613cdd565b925050600181019050613d0e565b5085935050505092915050565b600060a082019050613d5d6000830188612dc3565b613d6a6020830187613c7b565b8181036040830152613d7c8186613cea565b9050613d8b6060830185612ea4565b613d986080830184612dc3565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613dfe602683612c0d565b9150613e0982613da2565b604082019050919050565b60006020820190508181036000830152613e2d81613df1565b905091905056fea26469706673582212203fcb305f1a3846d8d7d9fc7b6a7d54e78790519c8f261e7bb37582b9b542190a64736f6c63430008130033

Deployed Bytecode Sourcemap

14691:9570:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9919:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10851:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10240:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17462:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22648:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11060:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15142:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10139:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11329:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15665:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15629:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21723:194;;;;;;;;;;;;;:::i;:::-;;14822:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18774:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14773:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15522:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10356:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1012:103;;;;;;;;;;;;;:::i;:::-;;17287:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17087:192;;;;;;;;;;;;;:::i;:::-;;777:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10027:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18307:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11575:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10491:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22763:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21303:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17659:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15218:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18094:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15594:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10692:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15562:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15392:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22898:618;;;:::i;:::-;;1123:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22410:230;;;;;;;;;;;;;:::i;:::-;;15305:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15484:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9919:100;9973:13;10006:5;9999:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9919:100;:::o;10851:201::-;10934:4;10951:13;10967:12;:10;:12::i;:::-;10951:28;;10990:32;10999:5;11006:7;11015:6;10990:8;:32::i;:::-;11040:4;11033:11;;;10851:201;;;;:::o;10240:108::-;10301:7;10328:12;;10321:19;;10240:108;:::o;17462:189::-;736:13;:11;:13::i;:::-;17596:10:::1;;;;;;;;;;;17565:42;;17582:12;17565:42;;;;;;;;;;;;17631:12;17618:10;;:25;;;;;;;;;;;;;;;;;;17462:189:::0;:::o;22648:107::-;16047:30;16066:10;16047:18;:30::i;:::-;16039:39;;;;;;22726:21:::1;22732:6;22740;22726:5;:21::i;:::-;22648:107:::0;;:::o;11060:261::-;11157:4;11174:15;11192:12;:10;:12::i;:::-;11174:30;;11215:38;11231:4;11237:7;11246:6;11215:15;:38::i;:::-;11264:27;11274:4;11280:2;11284:6;11264:9;:27::i;:::-;11309:4;11302:11;;;11060:261;;;;;:::o;15142:55::-;;;;:::o;10139:93::-;10197:5;10222:2;10215:9;;10139:93;:::o;11329:238::-;11417:4;11434:13;11450:12;:10;:12::i;:::-;11434:28;;11473:64;11482:5;11489:7;11526:10;11498:25;11508:5;11515:7;11498:9;:25::i;:::-;:38;;;;:::i;:::-;11473:8;:64::i;:::-;11555:4;11548:11;;;11329:238;;;;:::o;15665:30::-;;;;:::o;15629:29::-;;;;:::o;21723:194::-;736:13;:11;:13::i;:::-;21777:25:::1;21805:13;:11;:13::i;:::-;21777:41;;21852:17;21829:20;:40;;;;21892:17;21880:9;:29;;;;21766:151;21723:194::o:0;14822:28::-;;;;;;;;;;;;;:::o;18774:126::-;18840:4;18864:19;:28;18884:7;18864:28;;;;;;;;;;;;;;;;;;;;;;;;;18857:35;;18774:126;;;:::o;14773:42::-;;;;;;;;;;;;;:::o;15522:31::-;;;;;;;;;;;;;:::o;10356:127::-;10430:7;10457:9;:18;10467:7;10457:18;;;;;;;;;;;;;;;;10450:25;;10356:127;;;:::o;1012:103::-;736:13;:11;:13::i;:::-;1077:30:::1;1104:1;1077:18;:30::i;:::-;1012:103::o:0;17287:167::-;736:13;:11;:13::i;:::-;17442:4:::1;17400:31;:39;17432:6;17400:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17287:167:::0;;:::o;17087:192::-;736:13;:11;:13::i;:::-;17173:11:::1;;;;;;;;;;;17172:12;17164:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17238:4;17224:11;;:18;;;;;;;;;;;;;;;;;;17267:4;17253:11;;:18;;;;;;;;;;;;;;;;;;17087:192::o:0;777:87::-;823:7;850:6;;;;;;;;;;;843:13;;777:87;:::o;10027:104::-;10083:13;10116:7;10109:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10027:104;:::o;18307:265::-;736:13;:11;:13::i;:::-;18437::::1;;;;;;;;;;;18429:21;;:4;:21;;::::0;18421:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18523:41;18552:4;18558:5;18523:28;:41::i;:::-;18307:265:::0;;:::o;11575:436::-;11668:4;11685:13;11701:12;:10;:12::i;:::-;11685:28;;11724:24;11751:25;11761:5;11768:7;11751:9;:25::i;:::-;11724:52;;11815:15;11795:16;:35;;11787:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11908:60;11917:5;11924:7;11952:15;11933:16;:34;11908:8;:60::i;:::-;11999:4;11992:11;;;;11575:436;;;;:::o;10491:193::-;10570:4;10587:13;10603:12;:10;:12::i;:::-;10587:28;;10626;10636:5;10643:2;10647:6;10626:9;:28::i;:::-;10672:4;10665:11;;;10491:193;;;;:::o;22763:127::-;736:13;:11;:13::i;:::-;22873:8:::1;22862:7;:20;;;;:::i;:::-;22841:18;:41;;;;22763:127:::0;:::o;21303:410::-;21384:16;;;;;;;;;;;21368:32;;:12;:10;:12::i;:::-;:32;;;21360:41;;;;;;21414:25;21442:13;:11;:13::i;:::-;21414:41;;21466:23;21492:24;21510:4;21492:9;:24::i;:::-;21466:50;;21527:23;21583:3;21573:7;21553:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;21527:59;;21624:15;21605;:34;;21597:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21672:33;21689:15;21672:16;:33::i;:::-;21349:364;;;21303:410;:::o;17659:259::-;736:13;:11;:13::i;:::-;17822:4:::1;17814;17809:1;17793:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17792:26;;;;:::i;:::-;17791:35;;;;:::i;:::-;17775:12;:51;;17767:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17906:4;17891:12;:19;;;;:::i;:::-;17879:9;:31;;;;17659:259:::0;:::o;15218:68::-;;;;:::o;18094:205::-;736:13;:11;:13::i;:::-;18234:8:::1;18203:19;:28;18223:7;18203:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18273:7;18258:33;;;18282:8;18258:33;;;;;;:::i;:::-;;;;;;;;18094:205:::0;;:::o;15594:26::-;;;;:::o;10692:151::-;10781:7;10808:11;:18;10820:5;10808:18;;;;;;;;;;;;;;;:27;10827:7;10808:27;;;;;;;;;;;;;;;;10801:34;;10692:151;;;;:::o;15562:25::-;;;;:::o;15392:68::-;;;;:::o;22898:618::-;736:13;:11;:13::i;:::-;23028:42:::1;22990:16;;:81;;;;;;;;;;;;;;;;;;23082:58;23116:16;;;;;;;;;;;23135:4;23082:25;:58::i;:::-;23187:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23169:56;;;23234:4;23241:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23169:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23153:13;;:112;;;;;;;;;;;;;;;;;;23292:55;23326:13;;;;;;;;;;;23342:4;23292:25;:55::i;:::-;23360:58;23397:13;;;;;;;;;;;23413:4;23360:28;:58::i;:::-;23437:69;23454:4;23469:16;;;;;;;;;;;23488:17;23437:8;:69::i;:::-;22898:618::o:0;1123:201::-;736:13;:11;:13::i;:::-;1232:1:::1;1212:22;;:8;:22;;::::0;1204:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1288:28;1307:8;1288:18;:28::i;:::-;1123:201:::0;:::o;22410:230::-;22490:1;22466:21;:25;22458:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22553:16;;;;;;;;;;;22537:32;;:12;:10;:12::i;:::-;:32;;;22529:41;;;;;;22589:10;22581:28;;:51;22610:21;22581:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22410:230::o;15305:57::-;;;;:::o;15484:31::-;;;;;;;;;;;;;:::o;250:98::-;303:7;330:10;323:17;;250:98;:::o;13714:346::-;13833:1;13816:19;;:5;:19;;;13808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13914:1;13895:21;;:7;:21;;;13887:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13998:6;13968:11;:18;13980:5;13968:18;;;;;;;;;;;;;;;:27;13987:7;13968:27;;;;;;;;;;;;;;;:36;;;;14036:7;14020:32;;14029:5;14020:32;;;14045:6;14020:32;;;;;;:::i;:::-;;;;;;;;13714:346;;;:::o;872:132::-;947:12;:10;:12::i;:::-;936:23;;:7;:5;:7::i;:::-;:23;;;928:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;872:132::o;13111:595::-;13214:1;13195:21;;:7;:21;;;13187:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13267:49;13288:7;13305:1;13309:6;13267:20;:49::i;:::-;13329:22;13354:9;:18;13364:7;13354:18;;;;;;;;;;;;;;;;13329:43;;13409:6;13391:14;:24;;13383:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13528:6;13511:14;:23;13490:9;:18;13500:7;13490:18;;;;;;;;;;;;;;;:44;;;;13565:6;13549:12;;:22;;;;;;;;;;;13626:1;13600:37;;13609:7;13600:37;;;13630:6;13600:37;;;;;;:::i;:::-;;;;;;;;13650:48;13670:7;13687:1;13691:6;13650:19;:48::i;:::-;13176:530;13111:595;;:::o;14068:419::-;14169:24;14196:25;14206:5;14213:7;14196:9;:25::i;:::-;14169:52;;14256:17;14236:16;:37;14232:248;;14318:6;14298:16;:26;;14290:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14402:51;14411:5;14418:7;14446:6;14427:16;:25;14402:8;:51::i;:::-;14232:248;14158:329;14068:419;;;:::o;18908:2386::-;19024:1;19008:18;;:4;:18;;;19000:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19101:1;19087:16;;:2;:16;;;19079:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19178:1;19168:6;:11;19164:93;;19196:28;19212:4;19218:2;19222:1;19196:15;:28::i;:::-;19239:7;;19164:93;19281:7;:5;:7::i;:::-;19273:15;;:4;:15;;;;:32;;;;;19298:7;:5;:7::i;:::-;19292:13;;:2;:13;;;;19273:32;:52;;;;;19323:1;19309:16;;:2;:16;;;;19273:52;:77;;;;;19343:6;19329:21;;:2;:21;;;;19273:77;:90;;;;;19355:8;;;;;;;;;;;19354:9;19273:90;19269:996;;;19387:11;;;;;;;;;;;19382:140;;19427:19;:25;19447:4;19427:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19456:19;:23;19476:2;19456:23;;;;;;;;;;;;;;;;;;;;;;;;;19427:52;19419:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19382:140;19542:25;:31;19568:4;19542:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19578:31;:35;19610:2;19578:35;;;;;;;;;;;;;;;;;;;;;;;;;19577:36;19542:71;19538:716;;;19666:20;;19656:6;:30;;19648:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19797:9;;19780:13;19790:2;19780:9;:13::i;:::-;19771:6;:22;;;;:::i;:::-;:35;;19763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19538:716;;;19871:25;:29;19897:2;19871:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19905:31;:37;19937:4;19905:37;;;;;;;;;;;;;;;;;;;;;;;;;19904:38;19871:71;19867:387;;;19981:20;;19971:6;:30;;19963:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19867:387;;;20115:31;:35;20147:2;20115:35;;;;;;;;;;;;;;;;;;;;;;;;;20110:144;;20205:9;;20188:13;20198:2;20188:9;:13::i;:::-;20179:6;:22;;;;:::i;:::-;:35;;20171:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20110:144;19867:387;19538:716;19269:996;20277:28;20308:24;20326:4;20308:9;:24::i;:::-;20277:55;;20345:12;20383:1;20360:20;:24;20345:39;;20401:7;:22;;;;;20412:11;;;;;;;;;;;20401:22;:35;;;;;20428:8;;;;;;;;;;;20427:9;20401:35;:71;;;;;20441:25;:31;20467:4;20441:31;;;;;;;;;;;;;;;;;;;;;;;;;20440:32;20401:71;:101;;;;;20477:19;:25;20497:4;20477:25;;;;;;;;;;;;;;;;;;;;;;;;;20476:26;20401:101;:129;;;;;20507:19;:23;20527:2;20507:23;;;;;;;;;;;;;;;;;;;;;;;;;20506:24;20401:129;20397:239;;;20558:4;20547:8;;:15;;;;;;;;;;;;;;;;;;20577:16;20586:6;20577:8;:16::i;:::-;20619:5;20608:8;;:16;;;;;;;;;;;;;;;;;;20397:239;20648:12;20664:8;;;;;;;;;;;20663:9;20648:24;;20689:19;:25;20709:4;20689:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20718:19;:23;20738:2;20718:23;;;;;;;;;;;;;;;;;;;;;;;;;20689:52;20685:100;;;20768:5;20758:15;;20685:100;20797:12;20830:7;20826:417;;;20858:25;:29;20884:2;20858:29;;;;;;;;;;;;;;;;;;;;;;;;;20854:262;;;20915:63;20963:14;;20939:21;20948:11;;20939:8;:21::i;:::-;:38;;;;:::i;:::-;20915:19;20926:7;;20915:6;:10;;:19;;;;:::i;:::-;:23;;:63;;;;:::i;:::-;20908:70;;20854:262;;;21039:61;21085:14;;21062:20;21071:10;;21062:8;:20::i;:::-;:37;;;;:::i;:::-;21039:18;21050:6;;21039;:10;;:18;;;;:::i;:::-;:22;;:61;;;;:::i;:::-;21032:68;;20854:262;21139:1;21132:4;:8;21128:83;;;21157:42;21173:4;21187;21194;21157:15;:42::i;:::-;21128:83;21231:4;21221:14;;;;;:::i;:::-;;;20826:417;21253:33;21269:4;21275:2;21279:6;21253:15;:33::i;:::-;18987:2307;;;;18908:2386;;;;:::o;1332:191::-;1406:16;1425:6;;;;;;;;;;;1406:25;;1451:8;1442:6;;:17;;;;;;;;;;;;;;;;;;1506:8;1475:40;;1496:8;1475:40;;;;;;;;;;;;1395:128;1332:191;:::o;18580:186::-;18697:5;18663:25;:31;18689:4;18663:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18752:5;18718:40;;18746:4;18718:40;;;;;;;;;;;;18580:186;;:::o;21923:479::-;21991:21;22029:1;22015:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21991:40;;22060:4;22042;22047:1;22042:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22086:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22076:4;22081:1;22076:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;22120:63;22137:4;22152:16;;;;;;;;;;;22171:11;22120:8;:63::i;:::-;22194:16;;;;;;;;;;;:67;;;22276:11;22302:1;22318:4;22337:16;;;;;;;;;;;22368:15;22194:200;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21978:424;21923:479;:::o;14495:91::-;;;;:::o;14594:90::-;;;;:::o;12019:641::-;12132:1;12116:18;;:4;:18;;;12108:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12209:1;12195:16;;:2;:16;;;12187:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12264:38;12285:4;12291:2;12295:6;12264:20;:38::i;:::-;12315:19;12337:9;:15;12347:4;12337:15;;;;;;;;;;;;;;;;12315:37;;12386:6;12371:11;:21;;12363:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12503:6;12489:11;:20;12471:9;:15;12481:4;12471:15;;;;;;;;;;;;;;;:38;;;;12541:6;12524:9;:13;12534:2;12524:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12591:2;12576:26;;12585:4;12576:26;;;12595:6;12576:26;;;;;;:::i;:::-;;;;;;;;12615:37;12635:4;12641:2;12645:6;12615:19;:37::i;:::-;12097:563;12019:641;;;:::o;23526:728::-;23605:23;23631:24;23649:4;23631:9;:24::i;:::-;23605:50;;23666:20;23722:1;23703:15;:20;23699:505;;23740:7;;;;23699:505;23795:1;23777:15;:19;:59;;;;;23818:18;;23800:15;:36;23777:59;23774:430;;;23868:15;23853:30;;23774:430;;;23925:21;23949:28;23973:3;23949:19;23960:7;;23949:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;23925:52;;24002:13;23992:23;;;;;:::i;:::-;;;24043:18;;24034:6;:27;24030:163;;;24097:18;;24082:33;;24030:163;;;24171:6;24156:21;;24030:163;23910:294;23774:430;24216:30;24233:12;24216:16;:30::i;:::-;23568:686;;23526:728;;:::o;17926:160::-;17981:7;18033:1;18008:22;14984:6;18008:9;:22::i;:::-;:26;:37;;;;;18044:1;18038:3;:7;18008:37;:70;;18077:1;18008:70;;;18070:3;18065:1;18050:14;;:16;;;;:::i;:::-;18049:24;;;;:::i;:::-;18008:70;18001:77;;17926:160;;;:::o;8372:98::-;8430:7;8461:1;8457;:5;;;;:::i;:::-;8450:12;;8372:98;;;;:::o;8478:::-;8536:7;8567:1;8563;:5;;;;:::i;:::-;8556:12;;8478:98;;;;:::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:116::-;6583:21;6598:5;6583:21;:::i;:::-;6576:5;6573:32;6563:60;;6619:1;6616;6609:12;6563:60;6513:116;:::o;6635:133::-;6678:5;6716:6;6703:20;6694:29;;6732:30;6756:5;6732:30;:::i;:::-;6635:133;;;;:::o;6774:468::-;6839:6;6847;6896:2;6884:9;6875:7;6871:23;6867:32;6864:119;;;6902:79;;:::i;:::-;6864:119;7022:1;7047:53;7092:7;7083:6;7072:9;7068:22;7047:53;:::i;:::-;7037:63;;6993:117;7149:2;7175:50;7217:7;7208:6;7197:9;7193:22;7175:50;:::i;:::-;7165:60;;7120:115;6774:468;;;;;:::o;7248:329::-;7307:6;7356:2;7344:9;7335:7;7331:23;7327:32;7324:119;;;7362:79;;:::i;:::-;7324:119;7482:1;7507:53;7552:7;7543:6;7532:9;7528:22;7507:53;:::i;:::-;7497:63;;7453:117;7248:329;;;;:::o;7583:474::-;7651:6;7659;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7834:1;7859:53;7904:7;7895:6;7884:9;7880:22;7859:53;:::i;:::-;7849:63;;7805:117;7961:2;7987:53;8032:7;8023:6;8012:9;8008:22;7987:53;:::i;:::-;7977:63;;7932:118;7583:474;;;;;:::o;8063:180::-;8111:77;8108:1;8101:88;8208:4;8205:1;8198:15;8232:4;8229:1;8222:15;8249:320;8293:6;8330:1;8324:4;8320:12;8310:22;;8377:1;8371:4;8367:12;8398:18;8388:81;;8454:4;8446:6;8442:17;8432:27;;8388:81;8516:2;8508:6;8505:14;8485:18;8482:38;8479:84;;8535:18;;:::i;:::-;8479:84;8300:269;8249:320;;;:::o;8575:180::-;8623:77;8620:1;8613:88;8720:4;8717:1;8710:15;8744:4;8741:1;8734:15;8761:191;8801:3;8820:20;8838:1;8820:20;:::i;:::-;8815:25;;8854:20;8872:1;8854:20;:::i;:::-;8849:25;;8897:1;8894;8890:9;8883:16;;8918:3;8915:1;8912:10;8909:36;;;8925:18;;:::i;:::-;8909:36;8761:191;;;;:::o;8958:173::-;9098:25;9094:1;9086:6;9082:14;9075:49;8958:173;:::o;9137:366::-;9279:3;9300:67;9364:2;9359:3;9300:67;:::i;:::-;9293:74;;9376:93;9465:3;9376:93;:::i;:::-;9494:2;9489:3;9485:12;9478:19;;9137:366;;;:::o;9509:419::-;9675:4;9713:2;9702:9;9698:18;9690:26;;9762:9;9756:4;9752:20;9748:1;9737:9;9733:17;9726:47;9790:131;9916:4;9790:131;:::i;:::-;9782:139;;9509:419;;;:::o;9934:244::-;10074:34;10070:1;10062:6;10058:14;10051:58;10143:27;10138:2;10130:6;10126:15;10119:52;9934:244;:::o;10184:366::-;10326:3;10347:67;10411:2;10406:3;10347:67;:::i;:::-;10340:74;;10423:93;10512:3;10423:93;:::i;:::-;10541:2;10536:3;10532:12;10525:19;;10184:366;;;:::o;10556:419::-;10722:4;10760:2;10749:9;10745:18;10737:26;;10809:9;10803:4;10799:20;10795:1;10784:9;10780:17;10773:47;10837:131;10963:4;10837:131;:::i;:::-;10829:139;;10556:419;;;:::o;10981:224::-;11121:34;11117:1;11109:6;11105:14;11098:58;11190:7;11185:2;11177:6;11173:15;11166:32;10981:224;:::o;11211:366::-;11353:3;11374:67;11438:2;11433:3;11374:67;:::i;:::-;11367:74;;11450:93;11539:3;11450:93;:::i;:::-;11568:2;11563:3;11559:12;11552:19;;11211:366;;;:::o;11583:419::-;11749:4;11787:2;11776:9;11772:18;11764:26;;11836:9;11830:4;11826:20;11822:1;11811:9;11807:17;11800:47;11864:131;11990:4;11864:131;:::i;:::-;11856:139;;11583:419;;;:::o;12008:410::-;12048:7;12071:20;12089:1;12071:20;:::i;:::-;12066:25;;12105:20;12123:1;12105:20;:::i;:::-;12100:25;;12160:1;12157;12153:9;12182:30;12200:11;12182:30;:::i;:::-;12171:41;;12361:1;12352:7;12348:15;12345:1;12342:22;12322:1;12315:9;12295:83;12272:139;;12391:18;;:::i;:::-;12272:139;12056:362;12008:410;;;;:::o;12424:180::-;12472:77;12469:1;12462:88;12569:4;12566:1;12559:15;12593:4;12590:1;12583:15;12610:185;12650:1;12667:20;12685:1;12667:20;:::i;:::-;12662:25;;12701:20;12719:1;12701:20;:::i;:::-;12696:25;;12740:1;12730:35;;12745:18;;:::i;:::-;12730:35;12787:1;12784;12780:9;12775:14;;12610:185;;;;:::o;12801:167::-;12941:19;12937:1;12929:6;12925:14;12918:43;12801:167;:::o;12974:366::-;13116:3;13137:67;13201:2;13196:3;13137:67;:::i;:::-;13130:74;;13213:93;13302:3;13213:93;:::i;:::-;13331:2;13326:3;13322:12;13315:19;;12974:366;;;:::o;13346:419::-;13512:4;13550:2;13539:9;13535:18;13527:26;;13599:9;13593:4;13589:20;13585:1;13574:9;13570:17;13563:47;13627:131;13753:4;13627:131;:::i;:::-;13619:139;;13346:419;;;:::o;13771:224::-;13911:34;13907:1;13899:6;13895:14;13888:58;13980:7;13975:2;13967:6;13963:15;13956:32;13771:224;:::o;14001:366::-;14143:3;14164:67;14228:2;14223:3;14164:67;:::i;:::-;14157:74;;14240:93;14329:3;14240:93;:::i;:::-;14358:2;14353:3;14349:12;14342:19;;14001:366;;;:::o;14373:419::-;14539:4;14577:2;14566:9;14562:18;14554:26;;14626:9;14620:4;14616:20;14612:1;14601:9;14597:17;14590:47;14654:131;14780:4;14654:131;:::i;:::-;14646:139;;14373:419;;;:::o;14798:143::-;14855:5;14886:6;14880:13;14871:22;;14902:33;14929:5;14902:33;:::i;:::-;14798:143;;;;:::o;14947:351::-;15017:6;15066:2;15054:9;15045:7;15041:23;15037:32;15034:119;;;15072:79;;:::i;:::-;15034:119;15192:1;15217:64;15273:7;15264:6;15253:9;15249:22;15217:64;:::i;:::-;15207:74;;15163:128;14947:351;;;;:::o;15304:332::-;15425:4;15463:2;15452:9;15448:18;15440:26;;15476:71;15544:1;15533:9;15529:17;15520:6;15476:71;:::i;:::-;15557:72;15625:2;15614:9;15610:18;15601:6;15557:72;:::i;:::-;15304:332;;;;;:::o;15642:225::-;15782:34;15778:1;15770:6;15766:14;15759:58;15851:8;15846:2;15838:6;15834:15;15827:33;15642:225;:::o;15873:366::-;16015:3;16036:67;16100:2;16095:3;16036:67;:::i;:::-;16029:74;;16112:93;16201:3;16112:93;:::i;:::-;16230:2;16225:3;16221:12;16214:19;;15873:366;;;:::o;16245:419::-;16411:4;16449:2;16438:9;16434:18;16426:26;;16498:9;16492:4;16488:20;16484:1;16473:9;16469:17;16462:47;16526:131;16652:4;16526:131;:::i;:::-;16518:139;;16245:419;;;:::o;16670:172::-;16810:24;16806:1;16798:6;16794:14;16787:48;16670:172;:::o;16848:366::-;16990:3;17011:67;17075:2;17070:3;17011:67;:::i;:::-;17004:74;;17087:93;17176:3;17087:93;:::i;:::-;17205:2;17200:3;17196:12;17189:19;;16848:366;;;:::o;17220:419::-;17386:4;17424:2;17413:9;17409:18;17401:26;;17473:9;17467:4;17463:20;17459:1;17448:9;17444:17;17437:47;17501:131;17627:4;17501:131;:::i;:::-;17493:139;;17220:419;;;:::o;17645:223::-;17785:34;17781:1;17773:6;17769:14;17762:58;17854:6;17849:2;17841:6;17837:15;17830:31;17645:223;:::o;17874:366::-;18016:3;18037:67;18101:2;18096:3;18037:67;:::i;:::-;18030:74;;18113:93;18202:3;18113:93;:::i;:::-;18231:2;18226:3;18222:12;18215:19;;17874:366;;;:::o;18246:419::-;18412:4;18450:2;18439:9;18435:18;18427:26;;18499:9;18493:4;18489:20;18485:1;18474:9;18470:17;18463:47;18527:131;18653:4;18527:131;:::i;:::-;18519:139;;18246:419;;;:::o;18671:221::-;18811:34;18807:1;18799:6;18795:14;18788:58;18880:4;18875:2;18867:6;18863:15;18856:29;18671:221;:::o;18898:366::-;19040:3;19061:67;19125:2;19120:3;19061:67;:::i;:::-;19054:74;;19137:93;19226:3;19137:93;:::i;:::-;19255:2;19250:3;19246:12;19239:19;;18898:366;;;:::o;19270:419::-;19436:4;19474:2;19463:9;19459:18;19451:26;;19523:9;19517:4;19513:20;19509:1;19498:9;19494:17;19487:47;19551:131;19677:4;19551:131;:::i;:::-;19543:139;;19270:419;;;:::o;19695:182::-;19835:34;19831:1;19823:6;19819:14;19812:58;19695:182;:::o;19883:366::-;20025:3;20046:67;20110:2;20105:3;20046:67;:::i;:::-;20039:74;;20122:93;20211:3;20122:93;:::i;:::-;20240:2;20235:3;20231:12;20224:19;;19883:366;;;:::o;20255:419::-;20421:4;20459:2;20448:9;20444:18;20436:26;;20508:9;20502:4;20498:20;20494:1;20483:9;20479:17;20472:47;20536:131;20662:4;20536:131;:::i;:::-;20528:139;;20255:419;;;:::o;20680:220::-;20820:34;20816:1;20808:6;20804:14;20797:58;20889:3;20884:2;20876:6;20872:15;20865:28;20680:220;:::o;20906:366::-;21048:3;21069:67;21133:2;21128:3;21069:67;:::i;:::-;21062:74;;21145:93;21234:3;21145:93;:::i;:::-;21263:2;21258:3;21254:12;21247:19;;20906:366;;;:::o;21278:419::-;21444:4;21482:2;21471:9;21467:18;21459:26;;21531:9;21525:4;21521:20;21517:1;21506:9;21502:17;21495:47;21559:131;21685:4;21559:131;:::i;:::-;21551:139;;21278:419;;;:::o;21703:221::-;21843:34;21839:1;21831:6;21827:14;21820:58;21912:4;21907:2;21899:6;21895:15;21888:29;21703:221;:::o;21930:366::-;22072:3;22093:67;22157:2;22152:3;22093:67;:::i;:::-;22086:74;;22169:93;22258:3;22169:93;:::i;:::-;22287:2;22282:3;22278:12;22271:19;;21930:366;;;:::o;22302:419::-;22468:4;22506:2;22495:9;22491:18;22483:26;;22555:9;22549:4;22545:20;22541:1;22530:9;22526:17;22519:47;22583:131;22709:4;22583:131;:::i;:::-;22575:139;;22302:419;;;:::o;22727:179::-;22867:31;22863:1;22855:6;22851:14;22844:55;22727:179;:::o;22912:366::-;23054:3;23075:67;23139:2;23134:3;23075:67;:::i;:::-;23068:74;;23151:93;23240:3;23151:93;:::i;:::-;23269:2;23264:3;23260:12;23253:19;;22912:366;;;:::o;23284:419::-;23450:4;23488:2;23477:9;23473:18;23465:26;;23537:9;23531:4;23527:20;23523:1;23512:9;23508:17;23501:47;23565:131;23691:4;23565:131;:::i;:::-;23557:139;;23284:419;;;:::o;23709:224::-;23849:34;23845:1;23837:6;23833:14;23826:58;23918:7;23913:2;23905:6;23901:15;23894:32;23709:224;:::o;23939:366::-;24081:3;24102:67;24166:2;24161:3;24102:67;:::i;:::-;24095:74;;24178:93;24267:3;24178:93;:::i;:::-;24296:2;24291:3;24287:12;24280:19;;23939:366;;;:::o;24311:419::-;24477:4;24515:2;24504:9;24500:18;24492:26;;24564:9;24558:4;24554:20;24550:1;24539:9;24535:17;24528:47;24592:131;24718:4;24592:131;:::i;:::-;24584:139;;24311:419;;;:::o;24736:222::-;24876:34;24872:1;24864:6;24860:14;24853:58;24945:5;24940:2;24932:6;24928:15;24921:30;24736:222;:::o;24964:366::-;25106:3;25127:67;25191:2;25186:3;25127:67;:::i;:::-;25120:74;;25203:93;25292:3;25203:93;:::i;:::-;25321:2;25316:3;25312:12;25305:19;;24964:366;;;:::o;25336:419::-;25502:4;25540:2;25529:9;25525:18;25517:26;;25589:9;25583:4;25579:20;25575:1;25564:9;25560:17;25553:47;25617:131;25743:4;25617:131;:::i;:::-;25609:139;;25336:419;;;:::o;25761:172::-;25901:24;25897:1;25889:6;25885:14;25878:48;25761:172;:::o;25939:366::-;26081:3;26102:67;26166:2;26161:3;26102:67;:::i;:::-;26095:74;;26178:93;26267:3;26178:93;:::i;:::-;26296:2;26291:3;26287:12;26280:19;;25939:366;;;:::o;26311:419::-;26477:4;26515:2;26504:9;26500:18;26492:26;;26564:9;26558:4;26554:20;26550:1;26539:9;26535:17;26528:47;26592:131;26718:4;26592:131;:::i;:::-;26584:139;;26311:419;;;:::o;26736:240::-;26876:34;26872:1;26864:6;26860:14;26853:58;26945:23;26940:2;26932:6;26928:15;26921:48;26736:240;:::o;26982:366::-;27124:3;27145:67;27209:2;27204:3;27145:67;:::i;:::-;27138:74;;27221:93;27310:3;27221:93;:::i;:::-;27339:2;27334:3;27330:12;27323:19;;26982:366;;;:::o;27354:419::-;27520:4;27558:2;27547:9;27543:18;27535:26;;27607:9;27601:4;27597:20;27593:1;27582:9;27578:17;27571:47;27635:131;27761:4;27635:131;:::i;:::-;27627:139;;27354:419;;;:::o;27779:169::-;27919:21;27915:1;27907:6;27903:14;27896:45;27779:169;:::o;27954:366::-;28096:3;28117:67;28181:2;28176:3;28117:67;:::i;:::-;28110:74;;28193:93;28282:3;28193:93;:::i;:::-;28311:2;28306:3;28302:12;28295:19;;27954:366;;;:::o;28326:419::-;28492:4;28530:2;28519:9;28515:18;28507:26;;28579:9;28573:4;28569:20;28565:1;28554:9;28550:17;28543:47;28607:131;28733:4;28607:131;:::i;:::-;28599:139;;28326:419;;;:::o;28751:241::-;28891:34;28887:1;28879:6;28875:14;28868:58;28960:24;28955:2;28947:6;28943:15;28936:49;28751:241;:::o;28998:366::-;29140:3;29161:67;29225:2;29220:3;29161:67;:::i;:::-;29154:74;;29237:93;29326:3;29237:93;:::i;:::-;29355:2;29350:3;29346:12;29339:19;;28998:366;;;:::o;29370:419::-;29536:4;29574:2;29563:9;29559:18;29551:26;;29623:9;29617:4;29613:20;29609:1;29598:9;29594:17;29587:47;29651:131;29777:4;29651:131;:::i;:::-;29643:139;;29370:419;;;:::o;29795:194::-;29835:4;29855:20;29873:1;29855:20;:::i;:::-;29850:25;;29889:20;29907:1;29889:20;:::i;:::-;29884:25;;29933:1;29930;29926:9;29918:17;;29957:1;29951:4;29948:11;29945:37;;;29962:18;;:::i;:::-;29945:37;29795:194;;;;:::o;29995:180::-;30043:77;30040:1;30033:88;30140:4;30137:1;30130:15;30164:4;30161:1;30154:15;30181:180;30229:77;30226:1;30219:88;30326:4;30323:1;30316:15;30350:4;30347:1;30340:15;30367:85;30412:7;30441:5;30430:16;;30367:85;;;:::o;30458:158::-;30516:9;30549:61;30567:42;30576:32;30602:5;30576:32;:::i;:::-;30567:42;:::i;:::-;30549:61;:::i;:::-;30536:74;;30458:158;;;:::o;30622:147::-;30717:45;30756:5;30717:45;:::i;:::-;30712:3;30705:58;30622:147;;:::o;30775:114::-;30842:6;30876:5;30870:12;30860:22;;30775:114;;;:::o;30895:184::-;30994:11;31028:6;31023:3;31016:19;31068:4;31063:3;31059:14;31044:29;;30895:184;;;;:::o;31085:132::-;31152:4;31175:3;31167:11;;31205:4;31200:3;31196:14;31188:22;;31085:132;;;:::o;31223:108::-;31300:24;31318:5;31300:24;:::i;:::-;31295:3;31288:37;31223:108;;:::o;31337:179::-;31406:10;31427:46;31469:3;31461:6;31427:46;:::i;:::-;31505:4;31500:3;31496:14;31482:28;;31337:179;;;;:::o;31522:113::-;31592:4;31624;31619:3;31615:14;31607:22;;31522:113;;;:::o;31671:732::-;31790:3;31819:54;31867:5;31819:54;:::i;:::-;31889:86;31968:6;31963:3;31889:86;:::i;:::-;31882:93;;31999:56;32049:5;31999:56;:::i;:::-;32078:7;32109:1;32094:284;32119:6;32116:1;32113:13;32094:284;;;32195:6;32189:13;32222:63;32281:3;32266:13;32222:63;:::i;:::-;32215:70;;32308:60;32361:6;32308:60;:::i;:::-;32298:70;;32154:224;32141:1;32138;32134:9;32129:14;;32094:284;;;32098:14;32394:3;32387:10;;31795:608;;;31671:732;;;;:::o;32409:831::-;32672:4;32710:3;32699:9;32695:19;32687:27;;32724:71;32792:1;32781:9;32777:17;32768:6;32724:71;:::i;:::-;32805:80;32881:2;32870:9;32866:18;32857:6;32805:80;:::i;:::-;32932:9;32926:4;32922:20;32917:2;32906:9;32902:18;32895:48;32960:108;33063:4;33054:6;32960:108;:::i;:::-;32952:116;;33078:72;33146:2;33135:9;33131:18;33122:6;33078:72;:::i;:::-;33160:73;33228:3;33217:9;33213:19;33204:6;33160:73;:::i;:::-;32409:831;;;;;;;;:::o;33246:225::-;33386:34;33382:1;33374:6;33370:14;33363:58;33455:8;33450:2;33442:6;33438:15;33431:33;33246:225;:::o;33477:366::-;33619:3;33640:67;33704:2;33699:3;33640:67;:::i;:::-;33633:74;;33716:93;33805:3;33716:93;:::i;:::-;33834:2;33829:3;33825:12;33818:19;;33477:366;;;:::o;33849:419::-;34015:4;34053:2;34042:9;34038:18;34030:26;;34102:9;34096:4;34092:20;34088:1;34077:9;34073:17;34066:47;34130:131;34256:4;34130:131;:::i;:::-;34122:139;;33849:419;;;:::o

Swarm Source

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