ETH Price: $3,295.56 (-2.76%)

Token

0xNumber (OxN)
 

Overview

Max Total Supply

10,000,000 OxN

Holders

5,884

Market

Price

$0.02 @ 0.000006 ETH (-6.68%)

Onchain Market Cap

$197,433.01

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap: Universal Router
Balance
0.000000000000000001 OxN

Value
$0.00 ( ~0 Eth) [0.0000%]
0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad
Loading...
Loading
Loading...
Loading
Loading...
Loading

Market

Volume (24H):$2,221.38
Market Capitalization:$0.00
Circulating Supply:0.00 OxN
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
Uniswap V2 (Ethereum)
0X9012744B7A564623B6C3E40B144FC196BDEDF1A9-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.0193
0.0000059 Eth
$2,187.91
110,940.269 0X9012744B7A564623B6C3E40B144FC196BDEDF1A9
100.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
OxNumber

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-19
*/

/*

 $$$$$$\            $$\   $$\                         $$\                           
$$$ __$$\           $$$\  $$ |                        $$ |                          
$$$$\ $$ |$$\   $$\ $$$$\ $$ |$$\   $$\ $$$$$$\$$$$\  $$$$$$$\   $$$$$$\   $$$$$$\  
$$\$$\$$ |\$$\ $$  |$$ $$\$$ |$$ |  $$ |$$  _$$  _$$\ $$  __$$\ $$  __$$\ $$  __$$\ 
$$ \$$$$ | \$$$$  / $$ \$$$$ |$$ |  $$ |$$ / $$ / $$ |$$ |  $$ |$$$$$$$$ |$$ |  \__|
$$ |\$$$ | $$  $$<  $$ |\$$$ |$$ |  $$ |$$ | $$ | $$ |$$ |  $$ |$$   ____|$$ |      
\$$$$$$  /$$  /\$$\ $$ | \$$ |\$$$$$$  |$$ | $$ | $$ |$$$$$$$  |\$$$$$$$\ $$ |      
 \______/ \__/  \__|\__|  \__| \______/ \__| \__| \__|\_______/  \_______|\__|      
                                                                                   

Telegram Bot: https://t.me/OxNumber_bot
Telegram: https://t.me/OxNumber
Twitter: https://twitter.com/0xNumberEth
Website: https://0xnumber.io

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;


interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

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

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



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 IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address UNISWAP_V2_PAIR);
}

contract OxNumber is IERC20, Ownable {
    event Reflect(uint256 amountReflected, uint256 newTotalProportion);


    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    IUniswapV2Router02 public constant UNISWAP_V2_ROUTER =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable UNISWAP_V2_PAIR;

    struct Fee {
        uint8 reflection;
        uint8 dev;
        uint128 total;
    }

    string _name = "0xNumber";
    string _symbol = "OxN"; 

    uint256 _totalSupply = 10000000 * 10 ** 18;
    address private marketingWallet;

    uint256 public _maxTxAmount = (_totalSupply * 2) / 100;
    uint256 public _maxWalletSize =  (_totalSupply * 2) / 100; 
    mapping(address => uint256) public _rOwned;
    uint256 public _totalProportion = _totalSupply;

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

    bool public limitsEnabled = true;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;

    Fee public initialBuyFee = Fee({ reflection: 0, dev: 33, total: 33});
    Fee public initialSellFee = Fee({ reflection: 0, dev: 33, total: 33});
    Fee public finalBuyFee = Fee({ reflection: 1, dev: 4, total: 5});
    Fee public finalSellFee =  Fee({ reflection: 1, dev: 4, total: 5});
    Fee public buyFee;
    Fee public sellFee;
    address private devWallet;

    bool public claimingFees = true;
    uint256 public swapThreshold = (_totalSupply * 5) / 10000; // 0.05%
    uint256 public customMultiplier = 20;
    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }


    constructor(address _devWallet, address _marketingWallet) {
        buyFee = initialBuyFee;
        sellFee = initialSellFee;
        address _uniswapPair =
            IUniswapV2Factory(UNISWAP_V2_ROUTER.factory()).createPair(address(this), UNISWAP_V2_ROUTER.WETH());
        UNISWAP_V2_PAIR = _uniswapPair;
      
        _allowances[address(this)][address(UNISWAP_V2_ROUTER)] = type(uint256).max;
        _allowances[address(this)][tx.origin] = type(uint256).max;

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(UNISWAP_V2_ROUTER)] = true;
        isTxLimitExempt[_uniswapPair] = true;
        isTxLimitExempt[tx.origin] = true;
        isFeeExempt[tx.origin] = true;
        isFeeExempt[address(this)] = true;
        marketingWallet = _marketingWallet;

        isFeeExempt[marketingWallet] = true;
        isTxLimitExempt[marketingWallet] = true;

        devWallet = _devWallet;
    uint256 marketingWalletSupply = _totalSupply / 3; // 3% of total supply
    _rOwned[marketingWallet] = marketingWalletSupply;

    // Allocate the remaining supply to the tx.origin
    _rOwned[tx.origin] = _totalSupply - marketingWalletSupply;

    // Emit transfer events
    emit Transfer(address(0), marketingWallet, marketingWalletSupply);
    emit Transfer(address(0), tx.origin, _rOwned[tx.origin]);
}

    receive() external payable {}

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }
    function setFees(uint8 buyReflection, uint8 buyDev, uint8 sellReflection, uint8 sellDev) public onlyOwner {
        buyFee = Fee({reflection: buyReflection, dev: buyDev, total: uint128(buyReflection) + uint128(buyDev)});
        sellFee = Fee({reflection: sellReflection, dev: sellDev, total: uint128(sellReflection) + uint128(sellDev)});
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            require(_allowances[sender][msg.sender] >= amount, "ERC20: insufficient allowance");
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }


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

    function decimals() external pure returns (uint8) {
        return 18;
    }

    function name() external view returns (string memory) {
        return _name;
    }

    function symbol() external view returns (string memory) {
        return _symbol;
    }

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

    function allowance(address holder, address spender) external view override returns (uint256) {
        return _allowances[holder][spender];
    }

    function tokensToProportion(uint256 tokens) public view returns (uint256) {
        return tokens * _totalProportion / _totalSupply;
    }

    function tokenFromReflection(uint256 proportion) public view returns (uint256) {
        return proportion * _totalSupply / _totalProportion;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }


    function clearStuckBalance() external onlyOwner {
        (bool success,) = payable(msg.sender).call{value: address(this).balance}("");
        require(success);
    }

    function clearStuckToken() external onlyOwner {
        _transferFrom(address(this), msg.sender, balanceOf(address(this)));
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        claimingFees = _enabled;
        swapThreshold =  (_totalSupply * _amount) / 10000;
    }

  function setCustomMultiplier(uint256 _customMultiplier) public onlyOwner {
        customMultiplier = _customMultiplier;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFeeReceivers(address m_) external onlyOwner {
        devWallet = m_;
    }

    function setMaxTxBasisPoint(uint256 p_) external onlyOwner {
        _maxTxAmount = _totalSupply * p_ / 10000;
    }

    function removeLimits() external onlyOwner {
        limitsEnabled = false;
        buyFee = finalBuyFee;
        sellFee = finalSellFee;
    }

    
   function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
    if (inSwap) {
        return _basicTransfer(sender, recipient, amount);
    }


    if (limitsEnabled && sender == UNISWAP_V2_PAIR && !isTxLimitExempt[recipient]) {
        require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            require(balanceOf(recipient) + amount <= _maxWalletSize, "Exceeds maxWalletSize.");
        }
    if (_shouldSwapBack()) {
        _swapBack();
    }

    uint256 proportionAmount = tokensToProportion(amount);
    require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
    _rOwned[sender] = _rOwned[sender] - proportionAmount;


    uint256 proportionReceived = _shouldTakeFee(sender, recipient)
        ? _takeFeeInProportions(sender == UNISWAP_V2_PAIR ? true : false, sender, proportionAmount)
        : proportionAmount;
    _rOwned[recipient] = _rOwned[recipient] + proportionReceived;

    emit Transfer(sender, recipient, tokenFromReflection(proportionReceived));
    return true;
    }
 
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 proportionAmount = tokensToProportion(amount);
        require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
        _rOwned[sender] = _rOwned[sender] - proportionAmount;
        _rOwned[recipient] = _rOwned[recipient] + proportionAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    
    function _takeFeeInProportions(bool buying, address sender, uint256 proportionAmount) internal returns (uint256) {
        Fee memory __buyFee = buyFee;
        Fee memory __sellFee = sellFee;

        uint256 proportionFeeAmount =
            buying == true ? proportionAmount * __buyFee.total / 100 : proportionAmount * __sellFee.total / 100;


        uint256 proportionReflected = buying == true
            ? proportionFeeAmount * __buyFee.reflection / __buyFee.total
            : proportionFeeAmount * __sellFee.reflection / __sellFee.total;

        _totalProportion = _totalProportion - proportionReflected;

       
        uint256 _proportionToContract = proportionFeeAmount - proportionReflected;
        if (_proportionToContract > 0) {
            _rOwned[address(this)] = _rOwned[address(this)] + _proportionToContract;

            emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract));
        }
        emit Reflect(proportionReflected, _totalProportion);
        return proportionAmount - proportionFeeAmount;
    }

    function _shouldSwapBack() internal view returns (bool) {
        return msg.sender != UNISWAP_V2_PAIR && !inSwap && claimingFees && balanceOf(address(this)) >= swapThreshold;
    }

    function _swapBack() internal swapping {
        Fee memory __sellFee = sellFee;
        uint256 contractBalance = balanceOf(address(this));
        uint256 __swapThreshold = swapThreshold;
        uint256 amountToSwap = __swapThreshold;

        if (contractBalance == 0 || amountToSwap == 0) {
            return;
        }

        if (contractBalance > swapThreshold * customMultiplier) {
            contractBalance = swapThreshold * customMultiplier;
        }
        approve(address(UNISWAP_V2_ROUTER), contractBalance);


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

        UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractBalance, 0, path, address(this), block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalSwapFee = __sellFee.total - __sellFee.reflection;
        uint256 devcash = amountETH * __sellFee.dev / totalSwapFee;


     (bool tmpSuccess,) = payable(devWallet).call{value: devcash}("");
    require(tmpSuccess, "Transfer failed.");

    }

    function _shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"UNISWAP_V2_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAP_V2_ROUTER","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"buyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"dev","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"customMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"finalBuyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"dev","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalSellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"dev","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialBuyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"dev","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialSellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"dev","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"dev","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_customMultiplier","type":"uint256"}],"name":"setCustomMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"m_","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyReflection","type":"uint8"},{"internalType":"uint8","name":"buyDev","type":"uint8"},{"internalType":"uint8","name":"sellReflection","type":"uint8"},{"internalType":"uint8","name":"sellDev","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"p_","type":"uint256"}],"name":"setMaxTxBasisPoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600881526020017f30784e756d626572000000000000000000000000000000000000000000000000815250600190816200004a91906200118e565b506040518060400160405280600381526020017f4f784e0000000000000000000000000000000000000000000000000000000000815250600290816200009191906200118e565b506a084595161401484a00000060035560646002600354620000b491906200129f565b620000c0919062001316565b60055560646002600354620000d691906200129f565b620000e2919062001316565b6006556003546008556001600a5f6101000a81548160ff02191690831515021790555060405180606001604052805f60ff168152602001602160ff16815260200160216fffffffffffffffffffffffffffffffff16815250600d5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505060405180606001604052805f60ff168152602001602160ff16815260200160216fffffffffffffffffffffffffffffffff16815250600e5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506040518060600160405280600160ff168152602001600460ff16815260200160056fffffffffffffffffffffffffffffffff16815250600f5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506040518060600160405280600160ff168152602001600460ff16815260200160056fffffffffffffffffffffffffffffffff1681525060105f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506001601360146101000a81548160ff02191690831515021790555061271060056003546200040a91906200129f565b62000416919062001316565b60145560146015553480156200042a575f80fd5b5060405162004a7238038062004a728339818101604052810190620004509190620013b2565b620004706200046462000e6260201b60201c565b62000e6960201b60201c565b600d60115f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050600e60125f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050505f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200063b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006619190620013f7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006db573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007019190620013f7565b6040518363ffffffff1660e01b81526004016200072092919062001438565b6020604051808303815f875af11580156200073d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007639190620013f7565b90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508260135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6003805462000c76919062001316565b90508060075f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060035462000ceb919062001463565b60075f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000dac9190620014ae565b60405180910390a33273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405162000e509190620014ae565b60405180910390a350505050620014c9565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000fa657607f821691505b60208210810362000fbc5762000fbb62000f61565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620010207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000fe3565b6200102c868362000fe3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62001076620010706200106a8462001044565b6200104d565b62001044565b9050919050565b5f819050919050565b620010918362001056565b620010a9620010a0826200107d565b84845462000fef565b825550505050565b5f90565b620010bf620010b1565b620010cc81848462001086565b505050565b5b81811015620010f357620010e75f82620010b5565b600181019050620010d2565b5050565b601f82111562001142576200110c8162000fc2565b620011178462000fd4565b8101602085101562001127578190505b6200113f620011368562000fd4565b830182620010d1565b50505b505050565b5f82821c905092915050565b5f620011645f198460080262001147565b1980831691505092915050565b5f6200117e838362001153565b9150826002028217905092915050565b620011998262000f2a565b67ffffffffffffffff811115620011b557620011b462000f34565b5b620011c1825462000f8e565b620011ce828285620010f7565b5f60209050601f83116001811462001204575f8415620011ef578287015190505b620011fb858262001171565b8655506200126a565b601f198416620012148662000fc2565b5f5b828110156200123d5784890151825560018201915060208501945060208101905062001216565b868310156200125d578489015162001259601f89168262001153565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620012ab8262001044565b9150620012b88362001044565b9250828202620012c88162001044565b91508282048414831517620012e257620012e162001272565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620013228262001044565b91506200132f8362001044565b925082620013425762001341620012e9565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200137c8262001351565b9050919050565b6200138e8162001370565b811462001399575f80fd5b50565b5f81519050620013ac8162001383565b92915050565b5f8060408385031215620013cb57620013ca6200134d565b5b5f620013da858286016200139c565b9250506020620013ed858286016200139c565b9150509250929050565b5f602082840312156200140f576200140e6200134d565b5b5f6200141e848285016200139c565b91505092915050565b620014328162001370565b82525050565b5f6040820190506200144d5f83018562001427565b6200145c602083018462001427565b9392505050565b5f6200146f8262001044565b91506200147c8362001044565b925082820390508181111562001497576200149662001272565b5b92915050565b620014a88162001044565b82525050565b5f602082019050620014c35f8301846200149d565b92915050565b60805161357b620014f75f395f81816117870152818161184801528181611ad20152611f8f015261357b5ff3fe608060405260043610610254575f3560e01c8063751039fc11610138578063b0f7ec38116100b5578063e186ec7411610079578063e186ec7414610897578063e6990a90146108bf578063e6d40d60146108eb578063f2fde38b14610917578063f40acc3d1461093f578063f84ba65d146109695761025b565b8063b0f7ec38146107cb578063d85a2828146107f5578063dd62ed3e1461080b578063df20fd4914610847578063e01bb6881461086f5761025b565b80638f9a55c0116100fc5780638f9a55c0146106e957806395d89b41146107135780639faa7cfd1461073d578063a82ed9ec14610765578063a9059cbb1461078f5761025b565b8063751039fc1461062d57806378de607b146106435780637d1db4a51461066d578063875fa085146106975780638da5cb5b146106bf5761025b565b80632d838119116101d157806345ce53651161019557806345ce53651461050f578063470624021461054b578063571ac8b014610577578063658d4b7f146105b357806370a08231146105db578063715018a6146106175761025b565b80632d8381191461043d578063313ce5671461047957806331e02e0b146104a35780633582ad23146104cf578063364333f4146104f95761025b565b806318160ddd1161021857806318160ddd1461035557806323b872dd1461037f5780632b112e49146103bb5780632b14ca56146103e55780632b36a6d2146104115761025b565b80630445b6671461025f57806306fdde0314610289578063095ea7b3146102b35780630cfc15f9146102ef578063178002871461032b5761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b50610273610991565b60405161028091906128c1565b60405180910390f35b348015610294575f80fd5b5061029d610997565b6040516102aa9190612964565b60405180910390f35b3480156102be575f80fd5b506102d960048036038101906102d49190612a0c565b610a27565b6040516102e69190612a64565b60405180910390f35b3480156102fa575f80fd5b5061031560048036038101906103109190612a7d565b610b14565b60405161032291906128c1565b60405180910390f35b348015610336575f80fd5b5061033f610b29565b60405161034c91906128c1565b60405180910390f35b348015610360575f80fd5b50610369610b2f565b60405161037691906128c1565b60405180910390f35b34801561038a575f80fd5b506103a560048036038101906103a09190612aa8565b610b38565b6040516103b29190612a64565b60405180910390f35b3480156103c6575f80fd5b506103cf610da8565b6040516103dc91906128c1565b60405180910390f35b3480156103f0575f80fd5b506103f9610dd9565b60405161040893929190612b3d565b60405180910390f35b34801561041c575f80fd5b50610425610e23565b60405161043493929190612b3d565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190612b72565b610e6d565b60405161047091906128c1565b60405180910390f35b348015610484575f80fd5b5061048d610e90565b60405161049a9190612b9d565b60405180910390f35b3480156104ae575f80fd5b506104b7610e98565b6040516104c693929190612b3d565b60405180910390f35b3480156104da575f80fd5b506104e3610ee2565b6040516104f09190612a64565b60405180910390f35b348015610504575f80fd5b5061050d610ef4565b005b34801561051a575f80fd5b5061053560048036038101906105309190612b72565b610f70565b60405161054291906128c1565b60405180910390f35b348015610556575f80fd5b5061055f610f93565b60405161056e93929190612b3d565b60405180910390f35b348015610582575f80fd5b5061059d60048036038101906105989190612a7d565b610fdd565b6040516105aa9190612a64565b60405180910390f35b3480156105be575f80fd5b506105d960048036038101906105d49190612be0565b61100f565b005b3480156105e6575f80fd5b5061060160048036038101906105fc9190612a7d565b61106f565b60405161060e91906128c1565b60405180910390f35b348015610622575f80fd5b5061062b6110bd565b005b348015610638575f80fd5b506106416110d0565b005b34801561064e575f80fd5b5061065761125f565b60405161066491906128c1565b60405180910390f35b348015610678575f80fd5b50610681611265565b60405161068e91906128c1565b60405180910390f35b3480156106a2575f80fd5b506106bd60048036038101906106b89190612b72565b61126b565b005b3480156106ca575f80fd5b506106d361127d565b6040516106e09190612c2d565b60405180910390f35b3480156106f4575f80fd5b506106fd6112a4565b60405161070a91906128c1565b60405180910390f35b34801561071e575f80fd5b506107276112aa565b6040516107349190612964565b60405180910390f35b348015610748575f80fd5b50610763600480360381019061075e9190612c70565b61133a565b005b348015610770575f80fd5b506107796114d2565b6040516107869190612d2f565b60405180910390f35b34801561079a575f80fd5b506107b560048036038101906107b09190612a0c565b6114ea565b6040516107c29190612a64565b60405180910390f35b3480156107d6575f80fd5b506107df6114fe565b6040516107ec9190612a64565b60405180910390f35b348015610800575f80fd5b50610809611511565b005b348015610816575f80fd5b50610831600480360381019061082c9190612d48565b61152f565b60405161083e91906128c1565b60405180910390f35b348015610852575f80fd5b5061086d60048036038101906108689190612d86565b6115b1565b005b34801561087a575f80fd5b5061089560048036038101906108909190612a7d565b6115f8565b005b3480156108a2575f80fd5b506108bd60048036038101906108b89190612b72565b611643565b005b3480156108ca575f80fd5b506108d361166f565b6040516108e293929190612b3d565b60405180910390f35b3480156108f6575f80fd5b506108ff6116b9565b60405161090e93929190612b3d565b60405180910390f35b348015610922575f80fd5b5061093d60048036038101906109389190612a7d565b611703565b005b34801561094a575f80fd5b50610953611785565b6040516109609190612c2d565b60405180910390f35b348015610974575f80fd5b5061098f600480360381019061098a9190612be0565b6117a9565b005b60145481565b6060600180546109a690612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546109d290612df1565b8015610a1d5780601f106109f457610100808354040283529160200191610a1d565b820191905f5260205f20905b815481529060010190602001808311610a0057829003601f168201915b5050505050905090565b5f8160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b0291906128c1565b60405180910390a36001905092915050565b6007602052805f5260405f205f915090505481565b60085481565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610d94578160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90612e6b565b60405180910390fd5b8160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d179190612eb6565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610d9f848484611809565b90509392505050565b5f610db25f61106f565b610dbd61dead61106f565b600354610dca9190612eb6565b610dd49190612eb6565b905090565b6012805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600e805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b5f60085460035483610e7f9190612ee9565b610e899190612f57565b9050919050565b5f6012905090565b600d805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600a5f9054906101000a900460ff1681565b610efc611c3b565b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610f2190612fb4565b5f6040518083038185875af1925050503d805f8114610f5b576040519150601f19603f3d011682016040523d82523d5f602084013e610f60565b606091505b5050905080610f6d575f80fd5b50565b5f60035460085483610f829190612ee9565b610f8c9190612f57565b9050919050565b6011805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b5f611008827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a27565b9050919050565b611017611c3b565b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6110b660075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e6d565b9050919050565b6110c5611c3b565b6110ce5f611cb9565b565b6110d8611c3b565b5f600a5f6101000a81548160ff021916908315150217905550600f60115f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050601060125f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050565b60155481565b60055481565b611273611c3b565b8060158190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b6060600280546112b990612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546112e590612df1565b80156113305780601f1061130757610100808354040283529160200191611330565b820191905f5260205f20905b81548152906001019060200180831161131357829003601f168201915b5050505050905090565b611342611c3b565b60405180606001604052808560ff1681526020018460ff1681526020018460ff168660ff166113719190612fc8565b6fffffffffffffffffffffffffffffffff1681525060115f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180606001604052808360ff1681526020018260ff1681526020018260ff168460ff166114369190612fc8565b6fffffffffffffffffffffffffffffffff1681525060125f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505050505050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f6114f6338484611809565b905092915050565b601360149054906101000a900460ff1681565b611519611c3b565b61152c30336115273061106f565b611809565b50565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6115b9611c3b565b81601360146101000a81548160ff021916908315150217905550612710816003546115e49190612ee9565b6115ee9190612f57565b6014819055505050565b611600611c3b565b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61164b611c3b565b6127108160035461165c9190612ee9565b6116669190612f57565b60058190555050565b6010805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600f805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b61170b611c3b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611779576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117709061307b565b60405180910390fd5b61178281611cb9565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6117b1611c3b565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60165f9054906101000a900460ff161561183057611829848484611d7a565b9050611c34565b600a5f9054906101000a900460ff16801561189657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118e95750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561198c57600554821115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90613109565b60405180910390fd5b600654826119408561106f565b61194a9190613127565b111561198b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611982906131a4565b60405180910390fd5b5b611994611f8c565b156119a2576119a1612028565b5b5f6119ac83610f70565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a259061320c565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a779190612eb6565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611ac38686612476565b611acd5781611b34565b611b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611b29575f611b2c565b60015b878461251d565b5b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7f9190613127565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c1884610e6d565b604051611c2591906128c1565b60405180910390a36001925050505b9392505050565b611c436128a2565b73ffffffffffffffffffffffffffffffffffffffff16611c6161127d565b73ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae90613274565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80611d8583610f70565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfe9061320c565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e509190612eb6565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eda9190613127565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f7891906128c1565b60405180910390a360019150509392505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611ff5575060165f9054906101000a900460ff16155b801561200d5750601360149054906101000a900460ff165b801561202357506014546120203061106f565b10155b905090565b600160165f6101000a81548160ff0219169083151502179055505f60126040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f6120dc3061106f565b90505f60145490505f8190505f8314806120f557505f81145b15612103575050505061245b565b6015546014546121139190612ee9565b83111561212d5760155460145461212a9190612ee9565b92505b61214b737a250d5630b4cf539739df2c5dacb4c659f2488d84610a27565b505f600267ffffffffffffffff81111561216857612167613292565b5b6040519080825280602002602001820160405280156121965781602001602082028036833780820191505090505b50905030815f815181106121ad576121ac6132bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612244573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122689190613300565b8160018151811061227c5761227b6132bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8430426040518663ffffffff1660e01b815260040161230b95949392919061341b565b5f604051808303815f87803b158015612322575f80fd5b505af1158015612334573d5f803e3d5ffd5b505050505f4790505f865f015160ff1687604001516123539190613473565b6fffffffffffffffffffffffffffffffff1690505f81886020015160ff168461237c9190612ee9565b6123869190612f57565b90505f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516123ce90612fb4565b5f6040518083038185875af1925050503d805f8114612408576040519150601f19603f3d011682016040523d82523d5f602084013e61240d565b606091505b5050905080612451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244890613500565b60405180910390fd5b5050505050505050505b5f60165f6101000a81548160ff021916908315150217905550565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156125155750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f8060116040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f60126040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f600115158715151461267e57606482604001516fffffffffffffffffffffffffffffffff168661266f9190612ee9565b6126799190612f57565b6126ad565b606483604001516fffffffffffffffffffffffffffffffff16866126a29190612ee9565b6126ac9190612f57565b5b90505f60011515881515146126f45782604001516fffffffffffffffffffffffffffffffff16835f015160ff16836126e59190612ee9565b6126ef9190612f57565b612728565b83604001516fffffffffffffffffffffffffffffffff16845f015160ff168361271d9190612ee9565b6127279190612f57565b5b9050806008546127389190612eb6565b6008819055505f818361274b9190612eb6565b90505f81111561284d578060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461279e9190613127565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61283784610e6d565b60405161284491906128c1565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac8260085460405161288092919061351e565b60405180910390a182876128949190612eb6565b955050505050509392505050565b5f33905090565b5f819050919050565b6128bb816128a9565b82525050565b5f6020820190506128d45f8301846128b2565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129115780820151818401526020810190506128f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612936826128da565b61294081856128e4565b93506129508185602086016128f4565b6129598161291c565b840191505092915050565b5f6020820190508181035f83015261297c818461292c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129b182612988565b9050919050565b6129c1816129a7565b81146129cb575f80fd5b50565b5f813590506129dc816129b8565b92915050565b6129eb816128a9565b81146129f5575f80fd5b50565b5f81359050612a06816129e2565b92915050565b5f8060408385031215612a2257612a21612984565b5b5f612a2f858286016129ce565b9250506020612a40858286016129f8565b9150509250929050565b5f8115159050919050565b612a5e81612a4a565b82525050565b5f602082019050612a775f830184612a55565b92915050565b5f60208284031215612a9257612a91612984565b5b5f612a9f848285016129ce565b91505092915050565b5f805f60608486031215612abf57612abe612984565b5b5f612acc868287016129ce565b9350506020612add868287016129ce565b9250506040612aee868287016129f8565b9150509250925092565b5f60ff82169050919050565b612b0d81612af8565b82525050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b612b3781612b13565b82525050565b5f606082019050612b505f830186612b04565b612b5d6020830185612b04565b612b6a6040830184612b2e565b949350505050565b5f60208284031215612b8757612b86612984565b5b5f612b94848285016129f8565b91505092915050565b5f602082019050612bb05f830184612b04565b92915050565b612bbf81612a4a565b8114612bc9575f80fd5b50565b5f81359050612bda81612bb6565b92915050565b5f8060408385031215612bf657612bf5612984565b5b5f612c03858286016129ce565b9250506020612c1485828601612bcc565b9150509250929050565b612c27816129a7565b82525050565b5f602082019050612c405f830184612c1e565b92915050565b612c4f81612af8565b8114612c59575f80fd5b50565b5f81359050612c6a81612c46565b92915050565b5f805f8060808587031215612c8857612c87612984565b5b5f612c9587828801612c5c565b9450506020612ca687828801612c5c565b9350506040612cb787828801612c5c565b9250506060612cc887828801612c5c565b91505092959194509250565b5f819050919050565b5f612cf7612cf2612ced84612988565b612cd4565b612988565b9050919050565b5f612d0882612cdd565b9050919050565b5f612d1982612cfe565b9050919050565b612d2981612d0f565b82525050565b5f602082019050612d425f830184612d20565b92915050565b5f8060408385031215612d5e57612d5d612984565b5b5f612d6b858286016129ce565b9250506020612d7c858286016129ce565b9150509250929050565b5f8060408385031215612d9c57612d9b612984565b5b5f612da985828601612bcc565b9250506020612dba858286016129f8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612e0857607f821691505b602082108103612e1b57612e1a612dc4565b5b50919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612e55601d836128e4565b9150612e6082612e21565b602082019050919050565b5f6020820190508181035f830152612e8281612e49565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612ec0826128a9565b9150612ecb836128a9565b9250828203905081811115612ee357612ee2612e89565b5b92915050565b5f612ef3826128a9565b9150612efe836128a9565b9250828202612f0c816128a9565b91508282048414831517612f2357612f22612e89565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f61826128a9565b9150612f6c836128a9565b925082612f7c57612f7b612f2a565b5b828204905092915050565b5f81905092915050565b50565b5f612f9f5f83612f87565b9150612faa82612f91565b5f82019050919050565b5f612fbe82612f94565b9150819050919050565b5f612fd282612b13565b9150612fdd83612b13565b925082820190506fffffffffffffffffffffffffffffffff81111561300557613004612e89565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130656026836128e4565b91506130708261300b565b604082019050919050565b5f6020820190508181035f83015261309281613059565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f6130f36028836128e4565b91506130fe82613099565b604082019050919050565b5f6020820190508181035f830152613120816130e7565b9050919050565b5f613131826128a9565b915061313c836128a9565b925082820190508082111561315457613153612e89565b5b92915050565b7f45786365656473206d617857616c6c657453697a652e000000000000000000005f82015250565b5f61318e6016836128e4565b91506131998261315a565b602082019050919050565b5f6020820190508181035f8301526131bb81613182565b9050919050565b7f496e73756666696369656e742042616c616e63650000000000000000000000005f82015250565b5f6131f66014836128e4565b9150613201826131c2565b602082019050919050565b5f6020820190508181035f830152613223816131ea565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61325e6020836128e4565b91506132698261322a565b602082019050919050565b5f6020820190508181035f83015261328b81613252565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506132fa816129b8565b92915050565b5f6020828403121561331557613314612984565b5b5f613322848285016132ec565b91505092915050565b5f819050919050565b5f61334e6133496133448461332b565b612cd4565b6128a9565b9050919050565b61335e81613334565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613396816129a7565b82525050565b5f6133a7838361338d565b60208301905092915050565b5f602082019050919050565b5f6133c982613364565b6133d3818561336e565b93506133de8361337e565b805f5b8381101561340e5781516133f5888261339c565b9750613400836133b3565b9250506001810190506133e1565b5085935050505092915050565b5f60a08201905061342e5f8301886128b2565b61343b6020830187613355565b818103604083015261344d81866133bf565b905061345c6060830185612c1e565b61346960808301846128b2565b9695505050505050565b5f61347d82612b13565b915061348883612b13565b925082820390506fffffffffffffffffffffffffffffffff8111156134b0576134af612e89565b5b92915050565b7f5472616e73666572206661696c65642e000000000000000000000000000000005f82015250565b5f6134ea6010836128e4565b91506134f5826134b6565b602082019050919050565b5f6020820190508181035f830152613517816134de565b9050919050565b5f6040820190506135315f8301856128b2565b61353e60208301846128b2565b939250505056fea26469706673582212202de26d8a3140f3ca527a57d55300f18f385e2cb3d34254a47a01ea87d7f4820464736f6c634300081400330000000000000000000000009b06962f91b2d7460ae5fdbbcebccd6e7a6747f3000000000000000000000000f161927684fec8b26afbadee23353cfe9d505154

Deployed Bytecode

0x608060405260043610610254575f3560e01c8063751039fc11610138578063b0f7ec38116100b5578063e186ec7411610079578063e186ec7414610897578063e6990a90146108bf578063e6d40d60146108eb578063f2fde38b14610917578063f40acc3d1461093f578063f84ba65d146109695761025b565b8063b0f7ec38146107cb578063d85a2828146107f5578063dd62ed3e1461080b578063df20fd4914610847578063e01bb6881461086f5761025b565b80638f9a55c0116100fc5780638f9a55c0146106e957806395d89b41146107135780639faa7cfd1461073d578063a82ed9ec14610765578063a9059cbb1461078f5761025b565b8063751039fc1461062d57806378de607b146106435780637d1db4a51461066d578063875fa085146106975780638da5cb5b146106bf5761025b565b80632d838119116101d157806345ce53651161019557806345ce53651461050f578063470624021461054b578063571ac8b014610577578063658d4b7f146105b357806370a08231146105db578063715018a6146106175761025b565b80632d8381191461043d578063313ce5671461047957806331e02e0b146104a35780633582ad23146104cf578063364333f4146104f95761025b565b806318160ddd1161021857806318160ddd1461035557806323b872dd1461037f5780632b112e49146103bb5780632b14ca56146103e55780632b36a6d2146104115761025b565b80630445b6671461025f57806306fdde0314610289578063095ea7b3146102b35780630cfc15f9146102ef578063178002871461032b5761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b50610273610991565b60405161028091906128c1565b60405180910390f35b348015610294575f80fd5b5061029d610997565b6040516102aa9190612964565b60405180910390f35b3480156102be575f80fd5b506102d960048036038101906102d49190612a0c565b610a27565b6040516102e69190612a64565b60405180910390f35b3480156102fa575f80fd5b5061031560048036038101906103109190612a7d565b610b14565b60405161032291906128c1565b60405180910390f35b348015610336575f80fd5b5061033f610b29565b60405161034c91906128c1565b60405180910390f35b348015610360575f80fd5b50610369610b2f565b60405161037691906128c1565b60405180910390f35b34801561038a575f80fd5b506103a560048036038101906103a09190612aa8565b610b38565b6040516103b29190612a64565b60405180910390f35b3480156103c6575f80fd5b506103cf610da8565b6040516103dc91906128c1565b60405180910390f35b3480156103f0575f80fd5b506103f9610dd9565b60405161040893929190612b3d565b60405180910390f35b34801561041c575f80fd5b50610425610e23565b60405161043493929190612b3d565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190612b72565b610e6d565b60405161047091906128c1565b60405180910390f35b348015610484575f80fd5b5061048d610e90565b60405161049a9190612b9d565b60405180910390f35b3480156104ae575f80fd5b506104b7610e98565b6040516104c693929190612b3d565b60405180910390f35b3480156104da575f80fd5b506104e3610ee2565b6040516104f09190612a64565b60405180910390f35b348015610504575f80fd5b5061050d610ef4565b005b34801561051a575f80fd5b5061053560048036038101906105309190612b72565b610f70565b60405161054291906128c1565b60405180910390f35b348015610556575f80fd5b5061055f610f93565b60405161056e93929190612b3d565b60405180910390f35b348015610582575f80fd5b5061059d60048036038101906105989190612a7d565b610fdd565b6040516105aa9190612a64565b60405180910390f35b3480156105be575f80fd5b506105d960048036038101906105d49190612be0565b61100f565b005b3480156105e6575f80fd5b5061060160048036038101906105fc9190612a7d565b61106f565b60405161060e91906128c1565b60405180910390f35b348015610622575f80fd5b5061062b6110bd565b005b348015610638575f80fd5b506106416110d0565b005b34801561064e575f80fd5b5061065761125f565b60405161066491906128c1565b60405180910390f35b348015610678575f80fd5b50610681611265565b60405161068e91906128c1565b60405180910390f35b3480156106a2575f80fd5b506106bd60048036038101906106b89190612b72565b61126b565b005b3480156106ca575f80fd5b506106d361127d565b6040516106e09190612c2d565b60405180910390f35b3480156106f4575f80fd5b506106fd6112a4565b60405161070a91906128c1565b60405180910390f35b34801561071e575f80fd5b506107276112aa565b6040516107349190612964565b60405180910390f35b348015610748575f80fd5b50610763600480360381019061075e9190612c70565b61133a565b005b348015610770575f80fd5b506107796114d2565b6040516107869190612d2f565b60405180910390f35b34801561079a575f80fd5b506107b560048036038101906107b09190612a0c565b6114ea565b6040516107c29190612a64565b60405180910390f35b3480156107d6575f80fd5b506107df6114fe565b6040516107ec9190612a64565b60405180910390f35b348015610800575f80fd5b50610809611511565b005b348015610816575f80fd5b50610831600480360381019061082c9190612d48565b61152f565b60405161083e91906128c1565b60405180910390f35b348015610852575f80fd5b5061086d60048036038101906108689190612d86565b6115b1565b005b34801561087a575f80fd5b5061089560048036038101906108909190612a7d565b6115f8565b005b3480156108a2575f80fd5b506108bd60048036038101906108b89190612b72565b611643565b005b3480156108ca575f80fd5b506108d361166f565b6040516108e293929190612b3d565b60405180910390f35b3480156108f6575f80fd5b506108ff6116b9565b60405161090e93929190612b3d565b60405180910390f35b348015610922575f80fd5b5061093d60048036038101906109389190612a7d565b611703565b005b34801561094a575f80fd5b50610953611785565b6040516109609190612c2d565b60405180910390f35b348015610974575f80fd5b5061098f600480360381019061098a9190612be0565b6117a9565b005b60145481565b6060600180546109a690612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546109d290612df1565b8015610a1d5780601f106109f457610100808354040283529160200191610a1d565b820191905f5260205f20905b815481529060010190602001808311610a0057829003601f168201915b5050505050905090565b5f8160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b0291906128c1565b60405180910390a36001905092915050565b6007602052805f5260405f205f915090505481565b60085481565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610d94578160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90612e6b565b60405180910390fd5b8160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d179190612eb6565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610d9f848484611809565b90509392505050565b5f610db25f61106f565b610dbd61dead61106f565b600354610dca9190612eb6565b610dd49190612eb6565b905090565b6012805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600e805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b5f60085460035483610e7f9190612ee9565b610e899190612f57565b9050919050565b5f6012905090565b600d805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600a5f9054906101000a900460ff1681565b610efc611c3b565b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610f2190612fb4565b5f6040518083038185875af1925050503d805f8114610f5b576040519150601f19603f3d011682016040523d82523d5f602084013e610f60565b606091505b5050905080610f6d575f80fd5b50565b5f60035460085483610f829190612ee9565b610f8c9190612f57565b9050919050565b6011805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b5f611008827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a27565b9050919050565b611017611c3b565b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6110b660075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e6d565b9050919050565b6110c5611c3b565b6110ce5f611cb9565b565b6110d8611c3b565b5f600a5f6101000a81548160ff021916908315150217905550600f60115f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050601060125f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050565b60155481565b60055481565b611273611c3b565b8060158190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b6060600280546112b990612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546112e590612df1565b80156113305780601f1061130757610100808354040283529160200191611330565b820191905f5260205f20905b81548152906001019060200180831161131357829003601f168201915b5050505050905090565b611342611c3b565b60405180606001604052808560ff1681526020018460ff1681526020018460ff168660ff166113719190612fc8565b6fffffffffffffffffffffffffffffffff1681525060115f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180606001604052808360ff1681526020018260ff1681526020018260ff168460ff166114369190612fc8565b6fffffffffffffffffffffffffffffffff1681525060125f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505050505050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f6114f6338484611809565b905092915050565b601360149054906101000a900460ff1681565b611519611c3b565b61152c30336115273061106f565b611809565b50565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6115b9611c3b565b81601360146101000a81548160ff021916908315150217905550612710816003546115e49190612ee9565b6115ee9190612f57565b6014819055505050565b611600611c3b565b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61164b611c3b565b6127108160035461165c9190612ee9565b6116669190612f57565b60058190555050565b6010805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600f805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b61170b611c3b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611779576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117709061307b565b60405180910390fd5b61178281611cb9565b50565b7f00000000000000000000000099c59000f5a76c54c4fd7d82720c045bdcf1450d81565b6117b1611c3b565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60165f9054906101000a900460ff161561183057611829848484611d7a565b9050611c34565b600a5f9054906101000a900460ff16801561189657507f00000000000000000000000099c59000f5a76c54c4fd7d82720c045bdcf1450d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118e95750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561198c57600554821115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90613109565b60405180910390fd5b600654826119408561106f565b61194a9190613127565b111561198b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611982906131a4565b60405180910390fd5b5b611994611f8c565b156119a2576119a1612028565b5b5f6119ac83610f70565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a259061320c565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a779190612eb6565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611ac38686612476565b611acd5781611b34565b611b337f00000000000000000000000099c59000f5a76c54c4fd7d82720c045bdcf1450d73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611b29575f611b2c565b60015b878461251d565b5b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7f9190613127565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c1884610e6d565b604051611c2591906128c1565b60405180910390a36001925050505b9392505050565b611c436128a2565b73ffffffffffffffffffffffffffffffffffffffff16611c6161127d565b73ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae90613274565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80611d8583610f70565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfe9061320c565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e509190612eb6565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eda9190613127565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f7891906128c1565b60405180910390a360019150509392505050565b5f7f00000000000000000000000099c59000f5a76c54c4fd7d82720c045bdcf1450d73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611ff5575060165f9054906101000a900460ff16155b801561200d5750601360149054906101000a900460ff165b801561202357506014546120203061106f565b10155b905090565b600160165f6101000a81548160ff0219169083151502179055505f60126040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f6120dc3061106f565b90505f60145490505f8190505f8314806120f557505f81145b15612103575050505061245b565b6015546014546121139190612ee9565b83111561212d5760155460145461212a9190612ee9565b92505b61214b737a250d5630b4cf539739df2c5dacb4c659f2488d84610a27565b505f600267ffffffffffffffff81111561216857612167613292565b5b6040519080825280602002602001820160405280156121965781602001602082028036833780820191505090505b50905030815f815181106121ad576121ac6132bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612244573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122689190613300565b8160018151811061227c5761227b6132bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8430426040518663ffffffff1660e01b815260040161230b95949392919061341b565b5f604051808303815f87803b158015612322575f80fd5b505af1158015612334573d5f803e3d5ffd5b505050505f4790505f865f015160ff1687604001516123539190613473565b6fffffffffffffffffffffffffffffffff1690505f81886020015160ff168461237c9190612ee9565b6123869190612f57565b90505f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516123ce90612fb4565b5f6040518083038185875af1925050503d805f8114612408576040519150601f19603f3d011682016040523d82523d5f602084013e61240d565b606091505b5050905080612451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244890613500565b60405180910390fd5b5050505050505050505b5f60165f6101000a81548160ff021916908315150217905550565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156125155750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f8060116040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f60126040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f600115158715151461267e57606482604001516fffffffffffffffffffffffffffffffff168661266f9190612ee9565b6126799190612f57565b6126ad565b606483604001516fffffffffffffffffffffffffffffffff16866126a29190612ee9565b6126ac9190612f57565b5b90505f60011515881515146126f45782604001516fffffffffffffffffffffffffffffffff16835f015160ff16836126e59190612ee9565b6126ef9190612f57565b612728565b83604001516fffffffffffffffffffffffffffffffff16845f015160ff168361271d9190612ee9565b6127279190612f57565b5b9050806008546127389190612eb6565b6008819055505f818361274b9190612eb6565b90505f81111561284d578060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461279e9190613127565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61283784610e6d565b60405161284491906128c1565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac8260085460405161288092919061351e565b60405180910390a182876128949190612eb6565b955050505050509392505050565b5f33905090565b5f819050919050565b6128bb816128a9565b82525050565b5f6020820190506128d45f8301846128b2565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129115780820151818401526020810190506128f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612936826128da565b61294081856128e4565b93506129508185602086016128f4565b6129598161291c565b840191505092915050565b5f6020820190508181035f83015261297c818461292c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129b182612988565b9050919050565b6129c1816129a7565b81146129cb575f80fd5b50565b5f813590506129dc816129b8565b92915050565b6129eb816128a9565b81146129f5575f80fd5b50565b5f81359050612a06816129e2565b92915050565b5f8060408385031215612a2257612a21612984565b5b5f612a2f858286016129ce565b9250506020612a40858286016129f8565b9150509250929050565b5f8115159050919050565b612a5e81612a4a565b82525050565b5f602082019050612a775f830184612a55565b92915050565b5f60208284031215612a9257612a91612984565b5b5f612a9f848285016129ce565b91505092915050565b5f805f60608486031215612abf57612abe612984565b5b5f612acc868287016129ce565b9350506020612add868287016129ce565b9250506040612aee868287016129f8565b9150509250925092565b5f60ff82169050919050565b612b0d81612af8565b82525050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b612b3781612b13565b82525050565b5f606082019050612b505f830186612b04565b612b5d6020830185612b04565b612b6a6040830184612b2e565b949350505050565b5f60208284031215612b8757612b86612984565b5b5f612b94848285016129f8565b91505092915050565b5f602082019050612bb05f830184612b04565b92915050565b612bbf81612a4a565b8114612bc9575f80fd5b50565b5f81359050612bda81612bb6565b92915050565b5f8060408385031215612bf657612bf5612984565b5b5f612c03858286016129ce565b9250506020612c1485828601612bcc565b9150509250929050565b612c27816129a7565b82525050565b5f602082019050612c405f830184612c1e565b92915050565b612c4f81612af8565b8114612c59575f80fd5b50565b5f81359050612c6a81612c46565b92915050565b5f805f8060808587031215612c8857612c87612984565b5b5f612c9587828801612c5c565b9450506020612ca687828801612c5c565b9350506040612cb787828801612c5c565b9250506060612cc887828801612c5c565b91505092959194509250565b5f819050919050565b5f612cf7612cf2612ced84612988565b612cd4565b612988565b9050919050565b5f612d0882612cdd565b9050919050565b5f612d1982612cfe565b9050919050565b612d2981612d0f565b82525050565b5f602082019050612d425f830184612d20565b92915050565b5f8060408385031215612d5e57612d5d612984565b5b5f612d6b858286016129ce565b9250506020612d7c858286016129ce565b9150509250929050565b5f8060408385031215612d9c57612d9b612984565b5b5f612da985828601612bcc565b9250506020612dba858286016129f8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612e0857607f821691505b602082108103612e1b57612e1a612dc4565b5b50919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612e55601d836128e4565b9150612e6082612e21565b602082019050919050565b5f6020820190508181035f830152612e8281612e49565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612ec0826128a9565b9150612ecb836128a9565b9250828203905081811115612ee357612ee2612e89565b5b92915050565b5f612ef3826128a9565b9150612efe836128a9565b9250828202612f0c816128a9565b91508282048414831517612f2357612f22612e89565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f61826128a9565b9150612f6c836128a9565b925082612f7c57612f7b612f2a565b5b828204905092915050565b5f81905092915050565b50565b5f612f9f5f83612f87565b9150612faa82612f91565b5f82019050919050565b5f612fbe82612f94565b9150819050919050565b5f612fd282612b13565b9150612fdd83612b13565b925082820190506fffffffffffffffffffffffffffffffff81111561300557613004612e89565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130656026836128e4565b91506130708261300b565b604082019050919050565b5f6020820190508181035f83015261309281613059565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f6130f36028836128e4565b91506130fe82613099565b604082019050919050565b5f6020820190508181035f830152613120816130e7565b9050919050565b5f613131826128a9565b915061313c836128a9565b925082820190508082111561315457613153612e89565b5b92915050565b7f45786365656473206d617857616c6c657453697a652e000000000000000000005f82015250565b5f61318e6016836128e4565b91506131998261315a565b602082019050919050565b5f6020820190508181035f8301526131bb81613182565b9050919050565b7f496e73756666696369656e742042616c616e63650000000000000000000000005f82015250565b5f6131f66014836128e4565b9150613201826131c2565b602082019050919050565b5f6020820190508181035f830152613223816131ea565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61325e6020836128e4565b91506132698261322a565b602082019050919050565b5f6020820190508181035f83015261328b81613252565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506132fa816129b8565b92915050565b5f6020828403121561331557613314612984565b5b5f613322848285016132ec565b91505092915050565b5f819050919050565b5f61334e6133496133448461332b565b612cd4565b6128a9565b9050919050565b61335e81613334565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613396816129a7565b82525050565b5f6133a7838361338d565b60208301905092915050565b5f602082019050919050565b5f6133c982613364565b6133d3818561336e565b93506133de8361337e565b805f5b8381101561340e5781516133f5888261339c565b9750613400836133b3565b9250506001810190506133e1565b5085935050505092915050565b5f60a08201905061342e5f8301886128b2565b61343b6020830187613355565b818103604083015261344d81866133bf565b905061345c6060830185612c1e565b61346960808301846128b2565b9695505050505050565b5f61347d82612b13565b915061348883612b13565b925082820390506fffffffffffffffffffffffffffffffff8111156134b0576134af612e89565b5b92915050565b7f5472616e73666572206661696c65642e000000000000000000000000000000005f82015250565b5f6134ea6010836128e4565b91506134f5826134b6565b602082019050919050565b5f6020820190508181035f830152613517816134de565b9050919050565b5f6040820190506135315f8301856128b2565b61353e60208301846128b2565b939250505056fea26469706673582212202de26d8a3140f3ca527a57d55300f18f385e2cb3d34254a47a01ea87d7f4820464736f6c63430008140033

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

0000000000000000000000009b06962f91b2d7460ae5fdbbcebccd6e7a6747f3000000000000000000000000f161927684fec8b26afbadee23353cfe9d505154

-----Decoded View---------------
Arg [0] : _devWallet (address): 0x9b06962f91B2D7460AE5fdbBCeBCcD6e7a6747F3
Arg [1] : _marketingWallet (address): 0xf161927684feC8b26AfBAdEE23353Cfe9D505154

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000009b06962f91b2d7460ae5fdbbcebccd6e7a6747f3
Arg [1] : 000000000000000000000000f161927684fec8b26afbadee23353cfe9d505154


Deployed Bytecode Sourcemap

8948:11131:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10495:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13653:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12135:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9776:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9825:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13457:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13006:441;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14449:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10398:18;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;10154:69;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14292:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13567:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10079:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;9948:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14595:170;;;;;;;;;;;;;:::i;:::-;;14144:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10374:17;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12359:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15236:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13843:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7918:103;;;;;;;;;;;;;:::i;:::-;;15721:147;;;;;;;;;;;;;:::i;:::-;;10568:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9650:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15100:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7678:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9711:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13746:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12651:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9217:126;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12489:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10457:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14773:131;;;;;;;;;;;;;:::i;:::-;;13989:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14912:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15498:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15595:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10301:66;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;10230:64;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;8029:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9350:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15363:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10495:57;;;;:::o;13653:85::-;13692:13;13725:5;13718:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13653:85;:::o;12135:216::-;12210:4;12262:6;12227:11;:23;12239:10;12227:23;;;;;;;;;;;;;;;:32;12251:7;12227:32;;;;;;;;;;;;;;;:41;;;;12305:7;12284:37;;12293:10;12284:37;;;12314:6;12284:37;;;;;;:::i;:::-;;;;;;;;12339:4;12332:11;;12135:216;;;;:::o;9776:42::-;;;;;;;;;;;;;;;;;:::o;9825:46::-;;;;:::o;13457:102::-;13512:7;13539:12;;13532:19;;13457:102;:::o;13006:441::-;13106:4;13162:17;13127:11;:19;13139:6;13127:19;;;;;;;;;;;;;;;:31;13147:10;13127:31;;;;;;;;;;;;;;;;:52;13123:257;;13239:6;13204:11;:19;13216:6;13204:19;;;;;;;;;;;;;;;:31;13224:10;13204:31;;;;;;;;;;;;;;;;:41;;13196:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;13362:6;13328:11;:19;13340:6;13328:19;;;;;;;;;;;;;;;:31;13348:10;13328:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;13294:11;:19;13306:6;13294:19;;;;;;;;;;;;;;;:31;13314:10;13294:31;;;;;;;;;;;;;;;:74;;;;13123:257;13399:40;13413:6;13421:9;13432:6;13399:13;:40::i;:::-;13392:47;;13006:441;;;;;:::o;14449:136::-;14502:7;14562:15;9166:42;14562:9;:15::i;:::-;14544;9093:42;14544:9;:15::i;:::-;14529:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;14522:55;;14449:136;:::o;10398:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10154:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14292:149::-;14362:7;14417:16;;14402:12;;14389:10;:25;;;;:::i;:::-;:44;;;;:::i;:::-;14382:51;;14292:149;;;:::o;13567:78::-;13610:5;13635:2;13628:9;;13567:78;:::o;10079:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9948:32::-;;;;;;;;;;;;;:::o;14595:170::-;7633:13;:11;:13::i;:::-;14655:12:::1;14680:10;14672:24;;14704:21;14672:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14654:76;;;14749:7;14741:16;;;::::0;::::1;;14643:122;14595:170::o:0;14144:140::-;14209:7;14264:12;;14245:16;;14236:6;:25;;;;:::i;:::-;:40;;;;:::i;:::-;14229:47;;14144:140;;;:::o;10374:17::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12359:122::-;12414:4;12438:35;12446:7;12455:17;12438:7;:35::i;:::-;12431:42;;12359:122;;;:::o;15236:119::-;7633:13;:11;:13::i;:::-;15341:6:::1;15319:11;:19;15331:6;15319:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15236:119:::0;;:::o;13843:138::-;13909:7;13936:37;13956:7;:16;13964:7;13956:16;;;;;;;;;;;;;;;;13936:19;:37::i;:::-;13929:44;;13843:138;;;:::o;7918:103::-;7633:13;:11;:13::i;:::-;7983:30:::1;8010:1;7983:18;:30::i;:::-;7918:103::o:0;15721:147::-;7633:13;:11;:13::i;:::-;15791:5:::1;15775:13;;:21;;;;;;;;;;;;;;;;;;15816:11;15807:6;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15848:12;15838:7;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15721:147::o:0;10568:36::-;;;;:::o;9650:54::-;;;;:::o;15100:128::-;7633:13;:11;:13::i;:::-;15203:17:::1;15184:16;:36;;;;15100:128:::0;:::o;7678:87::-;7724:7;7751:6;;;;;;;;;;;7744:13;;7678:87;:::o;9711:57::-;;;;:::o;13746:89::-;13787:13;13820:7;13813:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13746:89;:::o;12651:347::-;7633:13;:11;:13::i;:::-;12777:94:::1;;;;;;;;12794:13;12777:94;;;;;;12814:6;12777:94;;;;;;12862:6;12854:15;;12837:13;12829:22;;:40;;;;:::i;:::-;12777:94;;;;::::0;12768:6:::1;:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12892:98;;;;;;;;12909:14;12892:98;;;;;;12930:7;12892:98;;;;;;12980:7;12972:16;;12954:14;12946:23;;:42;;;;:::i;:::-;12892:98;;;;::::0;12882:7:::1;:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12651:347:::0;;;;:::o;9217:126::-;9300:42;9217:126;:::o;12489:156::-;12569:4;12593:44;12607:10;12619:9;12630:6;12593:13;:44::i;:::-;12586:51;;12489:156;;;;:::o;10457:31::-;;;;;;;;;;;;;:::o;14773:131::-;7633:13;:11;:13::i;:::-;14830:66:::1;14852:4;14859:10;14871:24;14889:4;14871:9;:24::i;:::-;14830:13;:66::i;:::-;;14773:131::o:0;13989:147::-;14073:7;14100:11;:19;14112:6;14100:19;;;;;;;;;;;;;;;:28;14120:7;14100:28;;;;;;;;;;;;;;;;14093:35;;13989:147;;;;:::o;14912:182::-;7633:13;:11;:13::i;:::-;15018:8:::1;15003:12;;:23;;;;;;;;;;;;;;;;;;15081:5;15070:7;15055:12;;:22;;;;:::i;:::-;15054:32;;;;:::i;:::-;15037:13;:49;;;;14912:182:::0;;:::o;15498:89::-;7633:13;:11;:13::i;:::-;15577:2:::1;15565:9;;:14;;;;;;;;;;;;;;;;;;15498:89:::0;:::o;15595:118::-;7633:13;:11;:13::i;:::-;15700:5:::1;15695:2;15680:12;;:17;;;;:::i;:::-;:25;;;;:::i;:::-;15665:12;:40;;;;15595:118:::0;:::o;10301:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10230:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8029:201::-;7633:13;:11;:13::i;:::-;8138:1:::1;8118:22;;:8;:22;;::::0;8110:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8194:28;8213:8;8194:18;:28::i;:::-;8029:201:::0;:::o;9350:40::-;;;:::o;15363:127::-;7633:13;:11;:13::i;:::-;15476:6:::1;15450:15;:23;15466:6;15450:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15363:127:::0;;:::o;15881:1099::-;15973:4;15990:6;;;;;;;;;;;15986:79;;;16016:41;16031:6;16039:9;16050:6;16016:14;:41::i;:::-;16009:48;;;;15986:79;16079:13;;;;;;;;;;;:42;;;;;16106:15;16096:25;;:6;:25;;;16079:42;:73;;;;;16126:15;:26;16142:9;16126:26;;;;;;;;;;;;;;;;;;;;;;;;;16125:27;16079:73;16075:274;;;16183:12;;16173:6;:22;;16165:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16296:14;;16286:6;16263:20;16273:9;16263;:20::i;:::-;:29;;;;:::i;:::-;:47;;16255:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;16075:274;16359:17;:15;:17::i;:::-;16355:53;;;16389:11;:9;:11::i;:::-;16355:53;16416:24;16443:26;16462:6;16443:18;:26::i;:::-;16416:53;;16503:16;16484:7;:15;16492:6;16484:15;;;;;;;;;;;;;;;;:35;;16476:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16587:16;16569:7;:15;16577:6;16569:15;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;16551:7;:15;16559:6;16551:15;;;;;;;;;;;;;;;:52;;;;16614:26;16643:33;16658:6;16666:9;16643:14;:33::i;:::-;:162;;16789:16;16643:162;;;16688:89;16720:15;16710:25;;:6;:25;;;:40;;16745:5;16710:40;;;16738:4;16710:40;16752:6;16760:16;16688:21;:89::i;:::-;16643:162;16614:191;;16854:18;16833:7;:18;16841:9;16833:18;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;16812:7;:18;16820:9;16812:18;;;;;;;;;;;;;;;:60;;;;16903:9;16886:68;;16895:6;16886:68;;;16914:39;16934:18;16914:19;:39::i;:::-;16886:68;;;;;;:::i;:::-;;;;;;;;16968:4;16961:11;;;;15881:1099;;;;;;:::o;7775:132::-;7850:12;:10;:12::i;:::-;7839:23;;:7;:5;:7::i;:::-;:23;;;7831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7775:132::o;8243:191::-;8317:16;8336:6;;;;;;;;;;;8317:25;;8362:8;8353:6;;:17;;;;;;;;;;;;;;;;;;8417:8;8386:40;;8407:8;8386:40;;;;;;;;;;;;8306:128;8243:191;:::o;16989:455::-;17082:4;17099:24;17126:26;17145:6;17126:18;:26::i;:::-;17099:53;;17190:16;17171:7;:15;17179:6;17171:15;;;;;;;;;;;;;;;;:35;;17163:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17278:16;17260:7;:15;17268:6;17260:15;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;17242:7;:15;17250:6;17242:15;;;;;;;;;;;;;;;:52;;;;17347:16;17326:7;:18;17334:9;17326:18;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;17305:7;:18;17313:9;17305:18;;;;;;;;;;;;;;;:58;;;;17396:9;17379:35;;17388:6;17379:35;;;17407:6;17379:35;;;;;;:::i;:::-;;;;;;;;17432:4;17425:11;;;16989:455;;;;;:::o;18550:183::-;18600:4;18638:15;18624:29;;:10;:29;;;;:40;;;;;18658:6;;;;;;;;;;;18657:7;18624:40;:56;;;;;18668:12;;;;;;;;;;;18624:56;:101;;;;;18712:13;;18684:24;18702:4;18684:9;:24::i;:::-;:41;;18624:101;18617:108;;18550:183;:::o;18741:1166::-;10671:4;10662:6;;:13;;;;;;;;;;;;;;;;;;18791:20:::1;18814:7;18791:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;18832:23;18858:24;18876:4;18858:9;:24::i;:::-;18832:50;;18893:23;18919:13;;18893:39;;18943:20;18966:15;18943:38;;19017:1;18998:15;:20;:41;;;;19038:1;19022:12;:17;18998:41;18994:80;;;19056:7;;;;;;18994:80;19124:16;;19108:13;;:32;;;;:::i;:::-;19090:15;:50;19086:133;;;19191:16;;19175:13;;:32;;;;:::i;:::-;19157:50;;19086:133;19229:52;9300:42;19265:15;19229:7;:52::i;:::-;;19296:21;19334:1;19320:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19296:40;;19365:4;19347;19352:1;19347:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9300:42;19391:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19381:4;19386:1;19381:7;;;;;;;;:::i;:::-;;;;;;;:34;;;;;;;;;::::0;::::1;9300:42;19428:68;;;19511:15;19528:1;19531:4;19545;19552:15;19428:150;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19591:17;19611:21;19591:41;;19645:20;19686:9;:20;;;19668:38;;:9;:15;;;:38;;;;:::i;:::-;19645:61;;;;19717:15;19763:12;19747:9;:13;;;19735:25;;:9;:25;;;;:::i;:::-;:40;;;;:::i;:::-;19717:58;;19788:15;19816:9;;;;;;;;;;;19808:23;;19839:7;19808:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19787:64;;;19866:10;19858:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18780:1127;;;;;;;;;10686:1;10707:5:::0;10698:6;;:14;;;;;;;;;;;;;;;;;;18741:1166::o;19915:161::-;19997:4;20022:11;:19;20034:6;20022:19;;;;;;;;;;;;;;;;;;;;;;;;;20021:20;:47;;;;;20046:11;:22;20058:9;20046:22;;;;;;;;;;;;;;;;;;;;;;;;;20045:23;20021:47;20014:54;;19915:161;;;;:::o;17458:1084::-;17562:7;17582:19;17604:6;17582:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17621:20;17644:7;17621:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17664:27;17717:4;17707:14;;:6;:14;;;:99;;17803:3;17785:9;:15;;;17766:34;;:16;:34;;;;:::i;:::-;:40;;;;:::i;:::-;17707:99;;;17760:3;17743:8;:14;;;17724:33;;:16;:33;;;;:::i;:::-;:39;;;;:::i;:::-;17707:99;17664:142;;17821:27;17861:4;17851:14;;:6;:14;;;:164;;18000:9;:15;;;17955:60;;17977:9;:20;;;17955:42;;:19;:42;;;;:::i;:::-;:60;;;;:::i;:::-;17851:164;;;17925:8;:14;;;17881:58;;17903:8;:19;;;17881:41;;:19;:41;;;;:::i;:::-;:58;;;;:::i;:::-;17851:164;17821:194;;18066:19;18047:16;;:38;;;;:::i;:::-;18028:16;:57;;;;18107:29;18161:19;18139;:41;;;;:::i;:::-;18107:73;;18219:1;18195:21;:25;18191:226;;;18287:21;18262:7;:22;18278:4;18262:22;;;;;;;;;;;;;;;;:46;;;;:::i;:::-;18237:7;:22;18253:4;18237:22;;;;;;;;;;;;;;;:71;;;;18355:4;18330:75;;18339:6;18330:75;;;18362:42;18382:21;18362:19;:42::i;:::-;18330:75;;;;;;:::i;:::-;;;;;;;;18191:226;18432:46;18440:19;18461:16;;18432:46;;;;;;;:::i;:::-;;;;;;;;18515:19;18496:16;:38;;;;:::i;:::-;18489:45;;;;;;;17458:1084;;;;;:::o;1911:98::-;1964:7;1991:10;1984:17;;1911:98;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::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:118::-;5005:7;5045:34;5038:5;5034:46;5023:57;;4968:118;;;:::o;5092:::-;5179:24;5197:5;5179:24;:::i;:::-;5174:3;5167:37;5092:118;;:::o;5216:426::-;5357:4;5395:2;5384:9;5380:18;5372:26;;5408:67;5472:1;5461:9;5457:17;5448:6;5408:67;:::i;:::-;5485:68;5549:2;5538:9;5534:18;5525:6;5485:68;:::i;:::-;5563:72;5631:2;5620:9;5616:18;5607:6;5563:72;:::i;:::-;5216:426;;;;;;:::o;5648:329::-;5707:6;5756:2;5744:9;5735:7;5731:23;5727:32;5724:119;;;5762:79;;:::i;:::-;5724:119;5882:1;5907:53;5952:7;5943:6;5932:9;5928:22;5907:53;:::i;:::-;5897:63;;5853:117;5648:329;;;;:::o;5983:214::-;6072:4;6110:2;6099:9;6095:18;6087:26;;6123:67;6187:1;6176:9;6172:17;6163:6;6123:67;:::i;:::-;5983:214;;;;:::o;6203:116::-;6273:21;6288:5;6273:21;:::i;:::-;6266:5;6263:32;6253:60;;6309:1;6306;6299:12;6253:60;6203:116;:::o;6325:133::-;6368:5;6406:6;6393:20;6384:29;;6422:30;6446:5;6422:30;:::i;:::-;6325:133;;;;:::o;6464:468::-;6529:6;6537;6586:2;6574:9;6565:7;6561:23;6557:32;6554:119;;;6592:79;;:::i;:::-;6554:119;6712:1;6737:53;6782:7;6773:6;6762:9;6758:22;6737:53;:::i;:::-;6727:63;;6683:117;6839:2;6865:50;6907:7;6898:6;6887:9;6883:22;6865:50;:::i;:::-;6855:60;;6810:115;6464:468;;;;;:::o;6938:118::-;7025:24;7043:5;7025:24;:::i;:::-;7020:3;7013:37;6938:118;;:::o;7062:222::-;7155:4;7193:2;7182:9;7178:18;7170:26;;7206:71;7274:1;7263:9;7259:17;7250:6;7206:71;:::i;:::-;7062:222;;;;:::o;7290:118::-;7361:22;7377:5;7361:22;:::i;:::-;7354:5;7351:33;7341:61;;7398:1;7395;7388:12;7341:61;7290:118;:::o;7414:135::-;7458:5;7496:6;7483:20;7474:29;;7512:31;7537:5;7512:31;:::i;:::-;7414:135;;;;:::o;7555:749::-;7633:6;7641;7649;7657;7706:3;7694:9;7685:7;7681:23;7677:33;7674:120;;;7713:79;;:::i;:::-;7674:120;7833:1;7858:51;7901:7;7892:6;7881:9;7877:22;7858:51;:::i;:::-;7848:61;;7804:115;7958:2;7984:51;8027:7;8018:6;8007:9;8003:22;7984:51;:::i;:::-;7974:61;;7929:116;8084:2;8110:51;8153:7;8144:6;8133:9;8129:22;8110:51;:::i;:::-;8100:61;;8055:116;8210:2;8236:51;8279:7;8270:6;8259:9;8255:22;8236:51;:::i;:::-;8226:61;;8181:116;7555:749;;;;;;;:::o;8310:60::-;8338:3;8359:5;8352:12;;8310:60;;;:::o;8376:142::-;8426:9;8459:53;8477:34;8486:24;8504:5;8486:24;:::i;:::-;8477:34;:::i;:::-;8459:53;:::i;:::-;8446:66;;8376:142;;;:::o;8524:126::-;8574:9;8607:37;8638:5;8607:37;:::i;:::-;8594:50;;8524:126;;;:::o;8656:152::-;8732:9;8765:37;8796:5;8765:37;:::i;:::-;8752:50;;8656:152;;;:::o;8814:183::-;8927:63;8984:5;8927:63;:::i;:::-;8922:3;8915:76;8814:183;;:::o;9003:274::-;9122:4;9160:2;9149:9;9145:18;9137:26;;9173:97;9267:1;9256:9;9252:17;9243:6;9173:97;:::i;:::-;9003:274;;;;:::o;9283:474::-;9351:6;9359;9408:2;9396:9;9387:7;9383:23;9379:32;9376:119;;;9414:79;;:::i;:::-;9376:119;9534:1;9559:53;9604:7;9595:6;9584:9;9580:22;9559:53;:::i;:::-;9549:63;;9505:117;9661:2;9687:53;9732:7;9723:6;9712:9;9708:22;9687:53;:::i;:::-;9677:63;;9632:118;9283:474;;;;;:::o;9763:468::-;9828:6;9836;9885:2;9873:9;9864:7;9860:23;9856:32;9853:119;;;9891:79;;:::i;:::-;9853:119;10011:1;10036:50;10078:7;10069:6;10058:9;10054:22;10036:50;:::i;:::-;10026:60;;9982:114;10135:2;10161:53;10206:7;10197:6;10186:9;10182:22;10161:53;:::i;:::-;10151:63;;10106:118;9763:468;;;;;:::o;10237:180::-;10285:77;10282:1;10275:88;10382:4;10379:1;10372:15;10406:4;10403:1;10396:15;10423:320;10467:6;10504:1;10498:4;10494:12;10484:22;;10551:1;10545:4;10541:12;10572:18;10562:81;;10628:4;10620:6;10616:17;10606:27;;10562:81;10690:2;10682:6;10679:14;10659:18;10656:38;10653:84;;10709:18;;:::i;:::-;10653:84;10474:269;10423:320;;;:::o;10749:179::-;10889:31;10885:1;10877:6;10873:14;10866:55;10749:179;:::o;10934:366::-;11076:3;11097:67;11161:2;11156:3;11097:67;:::i;:::-;11090:74;;11173:93;11262:3;11173:93;:::i;:::-;11291:2;11286:3;11282:12;11275:19;;10934:366;;;:::o;11306:419::-;11472:4;11510:2;11499:9;11495:18;11487:26;;11559:9;11553:4;11549:20;11545:1;11534:9;11530:17;11523:47;11587:131;11713:4;11587:131;:::i;:::-;11579:139;;11306:419;;;:::o;11731:180::-;11779:77;11776:1;11769:88;11876:4;11873:1;11866:15;11900:4;11897:1;11890:15;11917:194;11957:4;11977:20;11995:1;11977:20;:::i;:::-;11972:25;;12011:20;12029:1;12011:20;:::i;:::-;12006:25;;12055:1;12052;12048:9;12040:17;;12079:1;12073:4;12070:11;12067:37;;;12084:18;;:::i;:::-;12067:37;11917:194;;;;:::o;12117:410::-;12157:7;12180:20;12198:1;12180:20;:::i;:::-;12175:25;;12214:20;12232:1;12214:20;:::i;:::-;12209:25;;12269:1;12266;12262:9;12291:30;12309:11;12291:30;:::i;:::-;12280:41;;12470:1;12461:7;12457:15;12454:1;12451:22;12431:1;12424:9;12404:83;12381:139;;12500:18;;:::i;:::-;12381:139;12165:362;12117:410;;;;:::o;12533:180::-;12581:77;12578:1;12571:88;12678:4;12675:1;12668:15;12702:4;12699:1;12692:15;12719:185;12759:1;12776:20;12794:1;12776:20;:::i;:::-;12771:25;;12810:20;12828:1;12810:20;:::i;:::-;12805:25;;12849:1;12839:35;;12854:18;;:::i;:::-;12839:35;12896:1;12893;12889:9;12884:14;;12719:185;;;;:::o;12910:147::-;13011:11;13048:3;13033:18;;12910:147;;;;:::o;13063:114::-;;:::o;13183:398::-;13342:3;13363:83;13444:1;13439:3;13363:83;:::i;:::-;13356:90;;13455:93;13544:3;13455:93;:::i;:::-;13573:1;13568:3;13564:11;13557:18;;13183:398;;;:::o;13587:379::-;13771:3;13793:147;13936:3;13793:147;:::i;:::-;13786:154;;13957:3;13950:10;;13587:379;;;:::o;13972:224::-;14012:3;14031:20;14049:1;14031:20;:::i;:::-;14026:25;;14065:20;14083:1;14065:20;:::i;:::-;14060:25;;14108:1;14105;14101:9;14094:16;;14131:34;14126:3;14123:43;14120:69;;;14169:18;;:::i;:::-;14120:69;13972:224;;;;:::o;14202:225::-;14342:34;14338:1;14330:6;14326:14;14319:58;14411:8;14406:2;14398:6;14394:15;14387:33;14202:225;:::o;14433:366::-;14575:3;14596:67;14660:2;14655:3;14596:67;:::i;:::-;14589:74;;14672:93;14761:3;14672:93;:::i;:::-;14790:2;14785:3;14781:12;14774:19;;14433:366;;;:::o;14805:419::-;14971:4;15009:2;14998:9;14994:18;14986:26;;15058:9;15052:4;15048:20;15044:1;15033:9;15029:17;15022:47;15086:131;15212:4;15086:131;:::i;:::-;15078:139;;14805:419;;;:::o;15230:227::-;15370:34;15366:1;15358:6;15354:14;15347:58;15439:10;15434:2;15426:6;15422:15;15415:35;15230:227;:::o;15463:366::-;15605:3;15626:67;15690:2;15685:3;15626:67;:::i;:::-;15619:74;;15702:93;15791:3;15702:93;:::i;:::-;15820:2;15815:3;15811:12;15804:19;;15463:366;;;:::o;15835:419::-;16001:4;16039:2;16028:9;16024:18;16016:26;;16088:9;16082:4;16078:20;16074:1;16063:9;16059:17;16052:47;16116:131;16242:4;16116:131;:::i;:::-;16108:139;;15835:419;;;:::o;16260:191::-;16300:3;16319:20;16337:1;16319:20;:::i;:::-;16314:25;;16353:20;16371:1;16353:20;:::i;:::-;16348:25;;16396:1;16393;16389:9;16382:16;;16417:3;16414:1;16411:10;16408:36;;;16424:18;;:::i;:::-;16408:36;16260:191;;;;:::o;16457:172::-;16597:24;16593:1;16585:6;16581:14;16574:48;16457:172;:::o;16635:366::-;16777:3;16798:67;16862:2;16857:3;16798:67;:::i;:::-;16791:74;;16874:93;16963:3;16874:93;:::i;:::-;16992:2;16987:3;16983:12;16976:19;;16635:366;;;:::o;17007:419::-;17173:4;17211:2;17200:9;17196:18;17188:26;;17260:9;17254:4;17250:20;17246:1;17235:9;17231:17;17224:47;17288:131;17414:4;17288:131;:::i;:::-;17280:139;;17007:419;;;:::o;17432:170::-;17572:22;17568:1;17560:6;17556:14;17549:46;17432:170;:::o;17608:366::-;17750:3;17771:67;17835:2;17830:3;17771:67;:::i;:::-;17764:74;;17847:93;17936:3;17847:93;:::i;:::-;17965:2;17960:3;17956:12;17949:19;;17608:366;;;:::o;17980:419::-;18146:4;18184:2;18173:9;18169:18;18161:26;;18233:9;18227:4;18223:20;18219:1;18208:9;18204:17;18197:47;18261:131;18387:4;18261:131;:::i;:::-;18253:139;;17980:419;;;:::o;18405:182::-;18545:34;18541:1;18533:6;18529:14;18522:58;18405:182;:::o;18593:366::-;18735:3;18756:67;18820:2;18815:3;18756:67;:::i;:::-;18749:74;;18832:93;18921:3;18832:93;:::i;:::-;18950:2;18945:3;18941:12;18934:19;;18593:366;;;:::o;18965:419::-;19131:4;19169:2;19158:9;19154:18;19146:26;;19218:9;19212:4;19208:20;19204:1;19193:9;19189:17;19182:47;19246:131;19372:4;19246:131;:::i;:::-;19238:139;;18965:419;;;:::o;19390:180::-;19438:77;19435:1;19428:88;19535:4;19532:1;19525:15;19559:4;19556:1;19549:15;19576:180;19624:77;19621:1;19614:88;19721:4;19718:1;19711:15;19745:4;19742:1;19735:15;19762:143;19819:5;19850:6;19844:13;19835:22;;19866:33;19893:5;19866:33;:::i;:::-;19762:143;;;;:::o;19911:351::-;19981:6;20030:2;20018:9;20009:7;20005:23;20001:32;19998:119;;;20036:79;;:::i;:::-;19998:119;20156:1;20181:64;20237:7;20228:6;20217:9;20213:22;20181:64;:::i;:::-;20171:74;;20127:128;19911:351;;;;:::o;20268:85::-;20313:7;20342:5;20331:16;;20268:85;;;:::o;20359:158::-;20417:9;20450:61;20468:42;20477:32;20503:5;20477:32;:::i;:::-;20468:42;:::i;:::-;20450:61;:::i;:::-;20437:74;;20359:158;;;:::o;20523:147::-;20618:45;20657:5;20618:45;:::i;:::-;20613:3;20606:58;20523:147;;:::o;20676:114::-;20743:6;20777:5;20771:12;20761:22;;20676:114;;;:::o;20796:184::-;20895:11;20929:6;20924:3;20917:19;20969:4;20964:3;20960:14;20945:29;;20796:184;;;;:::o;20986:132::-;21053:4;21076:3;21068:11;;21106:4;21101:3;21097:14;21089:22;;20986:132;;;:::o;21124:108::-;21201:24;21219:5;21201:24;:::i;:::-;21196:3;21189:37;21124:108;;:::o;21238:179::-;21307:10;21328:46;21370:3;21362:6;21328:46;:::i;:::-;21406:4;21401:3;21397:14;21383:28;;21238:179;;;;:::o;21423:113::-;21493:4;21525;21520:3;21516:14;21508:22;;21423:113;;;:::o;21572:732::-;21691:3;21720:54;21768:5;21720:54;:::i;:::-;21790:86;21869:6;21864:3;21790:86;:::i;:::-;21783:93;;21900:56;21950:5;21900:56;:::i;:::-;21979:7;22010:1;21995:284;22020:6;22017:1;22014:13;21995:284;;;22096:6;22090:13;22123:63;22182:3;22167:13;22123:63;:::i;:::-;22116:70;;22209:60;22262:6;22209:60;:::i;:::-;22199:70;;22055:224;22042:1;22039;22035:9;22030:14;;21995:284;;;21999:14;22295:3;22288:10;;21696:608;;;21572:732;;;;:::o;22310:831::-;22573:4;22611:3;22600:9;22596:19;22588:27;;22625:71;22693:1;22682:9;22678:17;22669:6;22625:71;:::i;:::-;22706:80;22782:2;22771:9;22767:18;22758:6;22706:80;:::i;:::-;22833:9;22827:4;22823:20;22818:2;22807:9;22803:18;22796:48;22861:108;22964:4;22955:6;22861:108;:::i;:::-;22853:116;;22979:72;23047:2;23036:9;23032:18;23023:6;22979:72;:::i;:::-;23061:73;23129:3;23118:9;23114:19;23105:6;23061:73;:::i;:::-;22310:831;;;;;;;;:::o;23147:227::-;23187:4;23207:20;23225:1;23207:20;:::i;:::-;23202:25;;23241:20;23259:1;23241:20;:::i;:::-;23236:25;;23285:1;23282;23278:9;23270:17;;23309:34;23303:4;23300:44;23297:70;;;23347:18;;:::i;:::-;23297:70;23147:227;;;;:::o;23380:166::-;23520:18;23516:1;23508:6;23504:14;23497:42;23380:166;:::o;23552:366::-;23694:3;23715:67;23779:2;23774:3;23715:67;:::i;:::-;23708:74;;23791:93;23880:3;23791:93;:::i;:::-;23909:2;23904:3;23900:12;23893:19;;23552:366;;;:::o;23924:419::-;24090:4;24128:2;24117:9;24113:18;24105:26;;24177:9;24171:4;24167:20;24163:1;24152:9;24148:17;24141:47;24205:131;24331:4;24205:131;:::i;:::-;24197:139;;23924:419;;;:::o;24349:332::-;24470:4;24508:2;24497:9;24493:18;24485:26;;24521:71;24589:1;24578:9;24574:17;24565:6;24521:71;:::i;:::-;24602:72;24670:2;24659:9;24655:18;24646:6;24602:72;:::i;:::-;24349:332;;;;;:::o

Swarm Source

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