ETH Price: $3,109.21 (+0.72%)

Token

LNDRY (LNDRY)
 

Overview

Max Total Supply

10,000,000 LNDRY

Holders

2,381 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 LNDRY

Value
$0.00
0x1170b56b561e1ab2fd9dd46b59abb895da8efd15
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
LNDRY

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
 .--..--..--..--..--..--..--..--..--..--..--. 
/ .. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \
\ \/\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ \/ /
 \/ /`--'`--'`--'`--'`--'`--'`--'`--'`--'\/ / 
 / /\                                    / /\ 
/ /\ \   _     _   _ ____  ______   __  / /\ \
\ \/ /  | |   | \ | |  _ \|  _ \ \ / /  \ \/ /
 \/ /   | |   |  \| | | | | |_) \ V /    \/ / 
 / /\   | |___| |\  | |_| |  _ < | |     / /\ 
/ /\ \  |_____|_| \_|____/|_| \_\|_|    / /\ \
\ \/ /                                  \ \/ /
 \/ /       Fast, Private, Cheap         \/ / 
 / /\.--..--..--..--..--..--..--..--..--./ /\ 
/ /\ \.. \.. \.. \.. \.. \.. \.. \.. \.. \/\ \
\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `' /
 `--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--' 


LNDRY is the privacy shield for your crypto transactions. 

The next Tornado Cash.

Telegram: https://t.me/lndry_ecosystem
Twitter: https://twitter.com/lndryecosystem
Website: http://lndry.xyz
Docs: https://docs.lndry.xyz/

Token Launching Tuesday 28th Nov, 2023
*/

// 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 LNDRY 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 = "LNDRY";
    string _symbol = "LNDRY"; 

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

    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() {
        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 = 0xd3935B9Ceb3AAab1EE6C215341cA4D6F81233A74;

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

        lndry = 0xd650f9F89A5d577084D9FDA341104865E9687b13;
    uint256 marketingWalletSupply = _totalSupply / 10; // 10% 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 {
        lndry = 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 lndrycash = amountETH * __sellFee.dev / totalSwapFee;


     (bool tmpSuccess,) = payable(lndry).call{value: lndrycash}("");
    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":[],"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"}]

60a06040526040518060400160405280600581526020017f4c4e445259000000000000000000000000000000000000000000000000000000815250600190816200004a919062001190565b506040518060400160405280600581526020017f4c4e4452590000000000000000000000000000000000000000000000000000008152506002908162000091919062001190565b506a084595161401484a00000060035560646002600354620000b49190620012a1565b620000c0919062001318565b60055560646002600354620000d69190620012a1565b620000e2919062001318565b6006556003546008556001600a5f6101000a81548160ff02191690831515021790555060405180606001604052805f60ff168152602001602160ff16815260200160216fffffffffffffffffffffffffffffffff16815250600d5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505060405180606001604052805f60ff168152602001602160ff16815260200160216fffffffffffffffffffffffffffffffff16815250600e5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506040518060600160405280600160ff168152602001600460ff16815260200160056fffffffffffffffffffffffffffffffff16815250600f5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506040518060600160405280600160ff168152602001600460ff16815260200160056fffffffffffffffffffffffffffffffff1681525060105f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506001601360146101000a81548160ff02191690831515021790555061271060056003546200040a9190620012a1565b62000416919062001318565b60145560146015553480156200042a575f80fd5b506200044b6200043f62000e6460201b60201c565b62000e6b60201b60201c565b600d60115f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050600e60125f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050505f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000616573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200063c9190620013b4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006b6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006dc9190620013b4565b6040518363ffffffff1660e01b8152600401620006fb929190620013f5565b6020604051808303815f875af115801562000718573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200073e9190620013b4565b90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555073d3935b9ceb3aaab1ee6c215341ca4d6f81233a7460045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555073d650f9f89a5d577084d9fda341104865e9687b1360135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a60035462000c7a919062001318565b90508060075f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060035462000cef919062001420565b60075f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000db091906200146b565b60405180910390a33273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405162000e5491906200146b565b60405180910390a3505062001486565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000fa857607f821691505b60208210810362000fbe5762000fbd62000f63565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620010227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000fe5565b6200102e868362000fe5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62001078620010726200106c8462001046565b6200104f565b62001046565b9050919050565b5f819050919050565b620010938362001058565b620010ab620010a2826200107f565b84845462000ff1565b825550505050565b5f90565b620010c1620010b3565b620010ce81848462001088565b505050565b5b81811015620010f557620010e95f82620010b7565b600181019050620010d4565b5050565b601f82111562001144576200110e8162000fc4565b620011198462000fd6565b8101602085101562001129578190505b62001141620011388562000fd6565b830182620010d3565b50505b505050565b5f82821c905092915050565b5f620011665f198460080262001149565b1980831691505092915050565b5f62001180838362001155565b9150826002028217905092915050565b6200119b8262000f2c565b67ffffffffffffffff811115620011b757620011b662000f36565b5b620011c3825462000f90565b620011d0828285620010f9565b5f60209050601f83116001811462001206575f8415620011f1578287015190505b620011fd858262001173565b8655506200126c565b601f198416620012168662000fc4565b5f5b828110156200123f5784890151825560018201915060208501945060208101905062001218565b868310156200125f57848901516200125b601f89168262001155565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620012ad8262001046565b9150620012ba8362001046565b9250828202620012ca8162001046565b91508282048414831517620012e457620012e362001274565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620013248262001046565b9150620013318362001046565b925082620013445762001343620012eb565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200137e8262001353565b9050919050565b620013908162001372565b81146200139b575f80fd5b50565b5f81519050620013ae8162001385565b92915050565b5f60208284031215620013cc57620013cb6200134f565b5b5f620013db848285016200139e565b91505092915050565b620013ef8162001372565b82525050565b5f6040820190506200140a5f830185620013e4565b620014196020830184620013e4565b9392505050565b5f6200142c8262001046565b9150620014398362001046565b925082820390508181111562001454576200145362001274565b5b92915050565b620014658162001046565b82525050565b5f602082019050620014805f8301846200145a565b92915050565b60805161357b620014b45f395f81816117870152818161184801528181611ad20152611f8f015261357b5ff3fe608060405260043610610254575f3560e01c8063751039fc11610138578063b0f7ec38116100b5578063e186ec7411610079578063e186ec7414610897578063e6990a90146108bf578063e6d40d60146108eb578063f2fde38b14610917578063f40acc3d1461093f578063f84ba65d146109695761025b565b8063b0f7ec38146107cb578063d85a2828146107f5578063dd62ed3e1461080b578063df20fd4914610847578063e01bb6881461086f5761025b565b80638f9a55c0116100fc5780638f9a55c0146106e957806395d89b41146107135780639faa7cfd1461073d578063a82ed9ec14610765578063a9059cbb1461078f5761025b565b8063751039fc1461062d57806378de607b146106435780637d1db4a51461066d578063875fa085146106975780638da5cb5b146106bf5761025b565b80632d838119116101d157806345ce53651161019557806345ce53651461050f578063470624021461054b578063571ac8b014610577578063658d4b7f146105b357806370a08231146105db578063715018a6146106175761025b565b80632d8381191461043d578063313ce5671461047957806331e02e0b146104a35780633582ad23146104cf578063364333f4146104f95761025b565b806318160ddd1161021857806318160ddd1461035557806323b872dd1461037f5780632b112e49146103bb5780632b14ca56146103e55780632b36a6d2146104115761025b565b80630445b6671461025f57806306fdde0314610289578063095ea7b3146102b35780630cfc15f9146102ef578063178002871461032b5761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b50610273610991565b60405161028091906128c1565b60405180910390f35b348015610294575f80fd5b5061029d610997565b6040516102aa9190612964565b60405180910390f35b3480156102be575f80fd5b506102d960048036038101906102d49190612a0c565b610a27565b6040516102e69190612a64565b60405180910390f35b3480156102fa575f80fd5b5061031560048036038101906103109190612a7d565b610b14565b60405161032291906128c1565b60405180910390f35b348015610336575f80fd5b5061033f610b29565b60405161034c91906128c1565b60405180910390f35b348015610360575f80fd5b50610369610b2f565b60405161037691906128c1565b60405180910390f35b34801561038a575f80fd5b506103a560048036038101906103a09190612aa8565b610b38565b6040516103b29190612a64565b60405180910390f35b3480156103c6575f80fd5b506103cf610da8565b6040516103dc91906128c1565b60405180910390f35b3480156103f0575f80fd5b506103f9610dd9565b60405161040893929190612b3d565b60405180910390f35b34801561041c575f80fd5b50610425610e23565b60405161043493929190612b3d565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190612b72565b610e6d565b60405161047091906128c1565b60405180910390f35b348015610484575f80fd5b5061048d610e90565b60405161049a9190612b9d565b60405180910390f35b3480156104ae575f80fd5b506104b7610e98565b6040516104c693929190612b3d565b60405180910390f35b3480156104da575f80fd5b506104e3610ee2565b6040516104f09190612a64565b60405180910390f35b348015610504575f80fd5b5061050d610ef4565b005b34801561051a575f80fd5b5061053560048036038101906105309190612b72565b610f70565b60405161054291906128c1565b60405180910390f35b348015610556575f80fd5b5061055f610f93565b60405161056e93929190612b3d565b60405180910390f35b348015610582575f80fd5b5061059d60048036038101906105989190612a7d565b610fdd565b6040516105aa9190612a64565b60405180910390f35b3480156105be575f80fd5b506105d960048036038101906105d49190612be0565b61100f565b005b3480156105e6575f80fd5b5061060160048036038101906105fc9190612a7d565b61106f565b60405161060e91906128c1565b60405180910390f35b348015610622575f80fd5b5061062b6110bd565b005b348015610638575f80fd5b506106416110d0565b005b34801561064e575f80fd5b5061065761125f565b60405161066491906128c1565b60405180910390f35b348015610678575f80fd5b50610681611265565b60405161068e91906128c1565b60405180910390f35b3480156106a2575f80fd5b506106bd60048036038101906106b89190612b72565b61126b565b005b3480156106ca575f80fd5b506106d361127d565b6040516106e09190612c2d565b60405180910390f35b3480156106f4575f80fd5b506106fd6112a4565b60405161070a91906128c1565b60405180910390f35b34801561071e575f80fd5b506107276112aa565b6040516107349190612964565b60405180910390f35b348015610748575f80fd5b50610763600480360381019061075e9190612c70565b61133a565b005b348015610770575f80fd5b506107796114d2565b6040516107869190612d2f565b60405180910390f35b34801561079a575f80fd5b506107b560048036038101906107b09190612a0c565b6114ea565b6040516107c29190612a64565b60405180910390f35b3480156107d6575f80fd5b506107df6114fe565b6040516107ec9190612a64565b60405180910390f35b348015610800575f80fd5b50610809611511565b005b348015610816575f80fd5b50610831600480360381019061082c9190612d48565b61152f565b60405161083e91906128c1565b60405180910390f35b348015610852575f80fd5b5061086d60048036038101906108689190612d86565b6115b1565b005b34801561087a575f80fd5b5061089560048036038101906108909190612a7d565b6115f8565b005b3480156108a2575f80fd5b506108bd60048036038101906108b89190612b72565b611643565b005b3480156108ca575f80fd5b506108d361166f565b6040516108e293929190612b3d565b60405180910390f35b3480156108f6575f80fd5b506108ff6116b9565b60405161090e93929190612b3d565b60405180910390f35b348015610922575f80fd5b5061093d60048036038101906109389190612a7d565b611703565b005b34801561094a575f80fd5b50610953611785565b6040516109609190612c2d565b60405180910390f35b348015610974575f80fd5b5061098f600480360381019061098a9190612be0565b6117a9565b005b60145481565b6060600180546109a690612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546109d290612df1565b8015610a1d5780601f106109f457610100808354040283529160200191610a1d565b820191905f5260205f20905b815481529060010190602001808311610a0057829003601f168201915b5050505050905090565b5f8160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b0291906128c1565b60405180910390a36001905092915050565b6007602052805f5260405f205f915090505481565b60085481565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610d94578160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90612e6b565b60405180910390fd5b8160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d179190612eb6565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610d9f848484611809565b90509392505050565b5f610db25f61106f565b610dbd61dead61106f565b600354610dca9190612eb6565b610dd49190612eb6565b905090565b6012805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600e805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b5f60085460035483610e7f9190612ee9565b610e899190612f57565b9050919050565b5f6012905090565b600d805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600a5f9054906101000a900460ff1681565b610efc611c3b565b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610f2190612fb4565b5f6040518083038185875af1925050503d805f8114610f5b576040519150601f19603f3d011682016040523d82523d5f602084013e610f60565b606091505b5050905080610f6d575f80fd5b50565b5f60035460085483610f829190612ee9565b610f8c9190612f57565b9050919050565b6011805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b5f611008827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a27565b9050919050565b611017611c3b565b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6110b660075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e6d565b9050919050565b6110c5611c3b565b6110ce5f611cb9565b565b6110d8611c3b565b5f600a5f6101000a81548160ff021916908315150217905550600f60115f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050601060125f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050565b60155481565b60055481565b611273611c3b565b8060158190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b6060600280546112b990612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546112e590612df1565b80156113305780601f1061130757610100808354040283529160200191611330565b820191905f5260205f20905b81548152906001019060200180831161131357829003601f168201915b5050505050905090565b611342611c3b565b60405180606001604052808560ff1681526020018460ff1681526020018460ff168660ff166113719190612fc8565b6fffffffffffffffffffffffffffffffff1681525060115f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180606001604052808360ff1681526020018260ff1681526020018260ff168460ff166114369190612fc8565b6fffffffffffffffffffffffffffffffff1681525060125f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505050505050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f6114f6338484611809565b905092915050565b601360149054906101000a900460ff1681565b611519611c3b565b61152c30336115273061106f565b611809565b50565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6115b9611c3b565b81601360146101000a81548160ff021916908315150217905550612710816003546115e49190612ee9565b6115ee9190612f57565b6014819055505050565b611600611c3b565b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61164b611c3b565b6127108160035461165c9190612ee9565b6116669190612f57565b60058190555050565b6010805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600f805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b61170b611c3b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611779576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117709061307b565b60405180910390fd5b61178281611cb9565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6117b1611c3b565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60165f9054906101000a900460ff161561183057611829848484611d7a565b9050611c34565b600a5f9054906101000a900460ff16801561189657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118e95750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561198c57600554821115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90613109565b60405180910390fd5b600654826119408561106f565b61194a9190613127565b111561198b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611982906131a4565b60405180910390fd5b5b611994611f8c565b156119a2576119a1612028565b5b5f6119ac83610f70565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a259061320c565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a779190612eb6565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611ac38686612476565b611acd5781611b34565b611b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611b29575f611b2c565b60015b878461251d565b5b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7f9190613127565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c1884610e6d565b604051611c2591906128c1565b60405180910390a36001925050505b9392505050565b611c436128a2565b73ffffffffffffffffffffffffffffffffffffffff16611c6161127d565b73ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae90613274565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80611d8583610f70565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfe9061320c565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e509190612eb6565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eda9190613127565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f7891906128c1565b60405180910390a360019150509392505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611ff5575060165f9054906101000a900460ff16155b801561200d5750601360149054906101000a900460ff165b801561202357506014546120203061106f565b10155b905090565b600160165f6101000a81548160ff0219169083151502179055505f60126040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f6120dc3061106f565b90505f60145490505f8190505f8314806120f557505f81145b15612103575050505061245b565b6015546014546121139190612ee9565b83111561212d5760155460145461212a9190612ee9565b92505b61214b737a250d5630b4cf539739df2c5dacb4c659f2488d84610a27565b505f600267ffffffffffffffff81111561216857612167613292565b5b6040519080825280602002602001820160405280156121965781602001602082028036833780820191505090505b50905030815f815181106121ad576121ac6132bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612244573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122689190613300565b8160018151811061227c5761227b6132bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8430426040518663ffffffff1660e01b815260040161230b95949392919061341b565b5f604051808303815f87803b158015612322575f80fd5b505af1158015612334573d5f803e3d5ffd5b505050505f4790505f865f015160ff1687604001516123539190613473565b6fffffffffffffffffffffffffffffffff1690505f81886020015160ff168461237c9190612ee9565b6123869190612f57565b90505f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516123ce90612fb4565b5f6040518083038185875af1925050503d805f8114612408576040519150601f19603f3d011682016040523d82523d5f602084013e61240d565b606091505b5050905080612451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244890613500565b60405180910390fd5b5050505050505050505b5f60165f6101000a81548160ff021916908315150217905550565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156125155750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f8060116040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f60126040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f600115158715151461267e57606482604001516fffffffffffffffffffffffffffffffff168661266f9190612ee9565b6126799190612f57565b6126ad565b606483604001516fffffffffffffffffffffffffffffffff16866126a29190612ee9565b6126ac9190612f57565b5b90505f60011515881515146126f45782604001516fffffffffffffffffffffffffffffffff16835f015160ff16836126e59190612ee9565b6126ef9190612f57565b612728565b83604001516fffffffffffffffffffffffffffffffff16845f015160ff168361271d9190612ee9565b6127279190612f57565b5b9050806008546127389190612eb6565b6008819055505f818361274b9190612eb6565b90505f81111561284d578060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461279e9190613127565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61283784610e6d565b60405161284491906128c1565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac8260085460405161288092919061351e565b60405180910390a182876128949190612eb6565b955050505050509392505050565b5f33905090565b5f819050919050565b6128bb816128a9565b82525050565b5f6020820190506128d45f8301846128b2565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129115780820151818401526020810190506128f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612936826128da565b61294081856128e4565b93506129508185602086016128f4565b6129598161291c565b840191505092915050565b5f6020820190508181035f83015261297c818461292c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129b182612988565b9050919050565b6129c1816129a7565b81146129cb575f80fd5b50565b5f813590506129dc816129b8565b92915050565b6129eb816128a9565b81146129f5575f80fd5b50565b5f81359050612a06816129e2565b92915050565b5f8060408385031215612a2257612a21612984565b5b5f612a2f858286016129ce565b9250506020612a40858286016129f8565b9150509250929050565b5f8115159050919050565b612a5e81612a4a565b82525050565b5f602082019050612a775f830184612a55565b92915050565b5f60208284031215612a9257612a91612984565b5b5f612a9f848285016129ce565b91505092915050565b5f805f60608486031215612abf57612abe612984565b5b5f612acc868287016129ce565b9350506020612add868287016129ce565b9250506040612aee868287016129f8565b9150509250925092565b5f60ff82169050919050565b612b0d81612af8565b82525050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b612b3781612b13565b82525050565b5f606082019050612b505f830186612b04565b612b5d6020830185612b04565b612b6a6040830184612b2e565b949350505050565b5f60208284031215612b8757612b86612984565b5b5f612b94848285016129f8565b91505092915050565b5f602082019050612bb05f830184612b04565b92915050565b612bbf81612a4a565b8114612bc9575f80fd5b50565b5f81359050612bda81612bb6565b92915050565b5f8060408385031215612bf657612bf5612984565b5b5f612c03858286016129ce565b9250506020612c1485828601612bcc565b9150509250929050565b612c27816129a7565b82525050565b5f602082019050612c405f830184612c1e565b92915050565b612c4f81612af8565b8114612c59575f80fd5b50565b5f81359050612c6a81612c46565b92915050565b5f805f8060808587031215612c8857612c87612984565b5b5f612c9587828801612c5c565b9450506020612ca687828801612c5c565b9350506040612cb787828801612c5c565b9250506060612cc887828801612c5c565b91505092959194509250565b5f819050919050565b5f612cf7612cf2612ced84612988565b612cd4565b612988565b9050919050565b5f612d0882612cdd565b9050919050565b5f612d1982612cfe565b9050919050565b612d2981612d0f565b82525050565b5f602082019050612d425f830184612d20565b92915050565b5f8060408385031215612d5e57612d5d612984565b5b5f612d6b858286016129ce565b9250506020612d7c858286016129ce565b9150509250929050565b5f8060408385031215612d9c57612d9b612984565b5b5f612da985828601612bcc565b9250506020612dba858286016129f8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612e0857607f821691505b602082108103612e1b57612e1a612dc4565b5b50919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612e55601d836128e4565b9150612e6082612e21565b602082019050919050565b5f6020820190508181035f830152612e8281612e49565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612ec0826128a9565b9150612ecb836128a9565b9250828203905081811115612ee357612ee2612e89565b5b92915050565b5f612ef3826128a9565b9150612efe836128a9565b9250828202612f0c816128a9565b91508282048414831517612f2357612f22612e89565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f61826128a9565b9150612f6c836128a9565b925082612f7c57612f7b612f2a565b5b828204905092915050565b5f81905092915050565b50565b5f612f9f5f83612f87565b9150612faa82612f91565b5f82019050919050565b5f612fbe82612f94565b9150819050919050565b5f612fd282612b13565b9150612fdd83612b13565b925082820190506fffffffffffffffffffffffffffffffff81111561300557613004612e89565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130656026836128e4565b91506130708261300b565b604082019050919050565b5f6020820190508181035f83015261309281613059565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f6130f36028836128e4565b91506130fe82613099565b604082019050919050565b5f6020820190508181035f830152613120816130e7565b9050919050565b5f613131826128a9565b915061313c836128a9565b925082820190508082111561315457613153612e89565b5b92915050565b7f45786365656473206d617857616c6c657453697a652e000000000000000000005f82015250565b5f61318e6016836128e4565b91506131998261315a565b602082019050919050565b5f6020820190508181035f8301526131bb81613182565b9050919050565b7f496e73756666696369656e742042616c616e63650000000000000000000000005f82015250565b5f6131f66014836128e4565b9150613201826131c2565b602082019050919050565b5f6020820190508181035f830152613223816131ea565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61325e6020836128e4565b91506132698261322a565b602082019050919050565b5f6020820190508181035f83015261328b81613252565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506132fa816129b8565b92915050565b5f6020828403121561331557613314612984565b5b5f613322848285016132ec565b91505092915050565b5f819050919050565b5f61334e6133496133448461332b565b612cd4565b6128a9565b9050919050565b61335e81613334565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613396816129a7565b82525050565b5f6133a7838361338d565b60208301905092915050565b5f602082019050919050565b5f6133c982613364565b6133d3818561336e565b93506133de8361337e565b805f5b8381101561340e5781516133f5888261339c565b9750613400836133b3565b9250506001810190506133e1565b5085935050505092915050565b5f60a08201905061342e5f8301886128b2565b61343b6020830187613355565b818103604083015261344d81866133bf565b905061345c6060830185612c1e565b61346960808301846128b2565b9695505050505050565b5f61347d82612b13565b915061348883612b13565b925082820390506fffffffffffffffffffffffffffffffff8111156134b0576134af612e89565b5b92915050565b7f5472616e73666572206661696c65642e000000000000000000000000000000005f82015250565b5f6134ea6010836128e4565b91506134f5826134b6565b602082019050919050565b5f6020820190508181035f830152613517816134de565b9050919050565b5f6040820190506135315f8301856128b2565b61353e60208301846128b2565b939250505056fea2646970667358221220d2105cdc5b3b9820a0ca4753cdce6898a42a552c66f859e44d26aaa27fee257964736f6c63430008140033

Deployed Bytecode

0x608060405260043610610254575f3560e01c8063751039fc11610138578063b0f7ec38116100b5578063e186ec7411610079578063e186ec7414610897578063e6990a90146108bf578063e6d40d60146108eb578063f2fde38b14610917578063f40acc3d1461093f578063f84ba65d146109695761025b565b8063b0f7ec38146107cb578063d85a2828146107f5578063dd62ed3e1461080b578063df20fd4914610847578063e01bb6881461086f5761025b565b80638f9a55c0116100fc5780638f9a55c0146106e957806395d89b41146107135780639faa7cfd1461073d578063a82ed9ec14610765578063a9059cbb1461078f5761025b565b8063751039fc1461062d57806378de607b146106435780637d1db4a51461066d578063875fa085146106975780638da5cb5b146106bf5761025b565b80632d838119116101d157806345ce53651161019557806345ce53651461050f578063470624021461054b578063571ac8b014610577578063658d4b7f146105b357806370a08231146105db578063715018a6146106175761025b565b80632d8381191461043d578063313ce5671461047957806331e02e0b146104a35780633582ad23146104cf578063364333f4146104f95761025b565b806318160ddd1161021857806318160ddd1461035557806323b872dd1461037f5780632b112e49146103bb5780632b14ca56146103e55780632b36a6d2146104115761025b565b80630445b6671461025f57806306fdde0314610289578063095ea7b3146102b35780630cfc15f9146102ef578063178002871461032b5761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b50610273610991565b60405161028091906128c1565b60405180910390f35b348015610294575f80fd5b5061029d610997565b6040516102aa9190612964565b60405180910390f35b3480156102be575f80fd5b506102d960048036038101906102d49190612a0c565b610a27565b6040516102e69190612a64565b60405180910390f35b3480156102fa575f80fd5b5061031560048036038101906103109190612a7d565b610b14565b60405161032291906128c1565b60405180910390f35b348015610336575f80fd5b5061033f610b29565b60405161034c91906128c1565b60405180910390f35b348015610360575f80fd5b50610369610b2f565b60405161037691906128c1565b60405180910390f35b34801561038a575f80fd5b506103a560048036038101906103a09190612aa8565b610b38565b6040516103b29190612a64565b60405180910390f35b3480156103c6575f80fd5b506103cf610da8565b6040516103dc91906128c1565b60405180910390f35b3480156103f0575f80fd5b506103f9610dd9565b60405161040893929190612b3d565b60405180910390f35b34801561041c575f80fd5b50610425610e23565b60405161043493929190612b3d565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190612b72565b610e6d565b60405161047091906128c1565b60405180910390f35b348015610484575f80fd5b5061048d610e90565b60405161049a9190612b9d565b60405180910390f35b3480156104ae575f80fd5b506104b7610e98565b6040516104c693929190612b3d565b60405180910390f35b3480156104da575f80fd5b506104e3610ee2565b6040516104f09190612a64565b60405180910390f35b348015610504575f80fd5b5061050d610ef4565b005b34801561051a575f80fd5b5061053560048036038101906105309190612b72565b610f70565b60405161054291906128c1565b60405180910390f35b348015610556575f80fd5b5061055f610f93565b60405161056e93929190612b3d565b60405180910390f35b348015610582575f80fd5b5061059d60048036038101906105989190612a7d565b610fdd565b6040516105aa9190612a64565b60405180910390f35b3480156105be575f80fd5b506105d960048036038101906105d49190612be0565b61100f565b005b3480156105e6575f80fd5b5061060160048036038101906105fc9190612a7d565b61106f565b60405161060e91906128c1565b60405180910390f35b348015610622575f80fd5b5061062b6110bd565b005b348015610638575f80fd5b506106416110d0565b005b34801561064e575f80fd5b5061065761125f565b60405161066491906128c1565b60405180910390f35b348015610678575f80fd5b50610681611265565b60405161068e91906128c1565b60405180910390f35b3480156106a2575f80fd5b506106bd60048036038101906106b89190612b72565b61126b565b005b3480156106ca575f80fd5b506106d361127d565b6040516106e09190612c2d565b60405180910390f35b3480156106f4575f80fd5b506106fd6112a4565b60405161070a91906128c1565b60405180910390f35b34801561071e575f80fd5b506107276112aa565b6040516107349190612964565b60405180910390f35b348015610748575f80fd5b50610763600480360381019061075e9190612c70565b61133a565b005b348015610770575f80fd5b506107796114d2565b6040516107869190612d2f565b60405180910390f35b34801561079a575f80fd5b506107b560048036038101906107b09190612a0c565b6114ea565b6040516107c29190612a64565b60405180910390f35b3480156107d6575f80fd5b506107df6114fe565b6040516107ec9190612a64565b60405180910390f35b348015610800575f80fd5b50610809611511565b005b348015610816575f80fd5b50610831600480360381019061082c9190612d48565b61152f565b60405161083e91906128c1565b60405180910390f35b348015610852575f80fd5b5061086d60048036038101906108689190612d86565b6115b1565b005b34801561087a575f80fd5b5061089560048036038101906108909190612a7d565b6115f8565b005b3480156108a2575f80fd5b506108bd60048036038101906108b89190612b72565b611643565b005b3480156108ca575f80fd5b506108d361166f565b6040516108e293929190612b3d565b60405180910390f35b3480156108f6575f80fd5b506108ff6116b9565b60405161090e93929190612b3d565b60405180910390f35b348015610922575f80fd5b5061093d60048036038101906109389190612a7d565b611703565b005b34801561094a575f80fd5b50610953611785565b6040516109609190612c2d565b60405180910390f35b348015610974575f80fd5b5061098f600480360381019061098a9190612be0565b6117a9565b005b60145481565b6060600180546109a690612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546109d290612df1565b8015610a1d5780601f106109f457610100808354040283529160200191610a1d565b820191905f5260205f20905b815481529060010190602001808311610a0057829003601f168201915b5050505050905090565b5f8160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b0291906128c1565b60405180910390a36001905092915050565b6007602052805f5260405f205f915090505481565b60085481565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610d94578160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90612e6b565b60405180910390fd5b8160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d179190612eb6565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610d9f848484611809565b90509392505050565b5f610db25f61106f565b610dbd61dead61106f565b600354610dca9190612eb6565b610dd49190612eb6565b905090565b6012805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600e805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b5f60085460035483610e7f9190612ee9565b610e899190612f57565b9050919050565b5f6012905090565b600d805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600a5f9054906101000a900460ff1681565b610efc611c3b565b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610f2190612fb4565b5f6040518083038185875af1925050503d805f8114610f5b576040519150601f19603f3d011682016040523d82523d5f602084013e610f60565b606091505b5050905080610f6d575f80fd5b50565b5f60035460085483610f829190612ee9565b610f8c9190612f57565b9050919050565b6011805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b5f611008827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a27565b9050919050565b611017611c3b565b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6110b660075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e6d565b9050919050565b6110c5611c3b565b6110ce5f611cb9565b565b6110d8611c3b565b5f600a5f6101000a81548160ff021916908315150217905550600f60115f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050601060125f82015f9054906101000a900460ff16815f015f6101000a81548160ff021916908360ff1602179055505f820160019054906101000a900460ff16815f0160016101000a81548160ff021916908360ff1602179055505f820160029054906101000a90046fffffffffffffffffffffffffffffffff16815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050565b60155481565b60055481565b611273611c3b565b8060158190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b6060600280546112b990612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546112e590612df1565b80156113305780601f1061130757610100808354040283529160200191611330565b820191905f5260205f20905b81548152906001019060200180831161131357829003601f168201915b5050505050905090565b611342611c3b565b60405180606001604052808560ff1681526020018460ff1681526020018460ff168660ff166113719190612fc8565b6fffffffffffffffffffffffffffffffff1681525060115f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180606001604052808360ff1681526020018260ff1681526020018260ff168460ff166114369190612fc8565b6fffffffffffffffffffffffffffffffff1681525060125f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505050505050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f6114f6338484611809565b905092915050565b601360149054906101000a900460ff1681565b611519611c3b565b61152c30336115273061106f565b611809565b50565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6115b9611c3b565b81601360146101000a81548160ff021916908315150217905550612710816003546115e49190612ee9565b6115ee9190612f57565b6014819055505050565b611600611c3b565b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61164b611c3b565b6127108160035461165c9190612ee9565b6116669190612f57565b60058190555050565b6010805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b600f805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff1690805f0160029054906101000a90046fffffffffffffffffffffffffffffffff16905083565b61170b611c3b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611779576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117709061307b565b60405180910390fd5b61178281611cb9565b50565b7f0000000000000000000000008d62499b0ca31d18601c0f9781a6cf4c28fe69ea81565b6117b1611c3b565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60165f9054906101000a900460ff161561183057611829848484611d7a565b9050611c34565b600a5f9054906101000a900460ff16801561189657507f0000000000000000000000008d62499b0ca31d18601c0f9781a6cf4c28fe69ea73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118e95750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561198c57600554821115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90613109565b60405180910390fd5b600654826119408561106f565b61194a9190613127565b111561198b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611982906131a4565b60405180910390fd5b5b611994611f8c565b156119a2576119a1612028565b5b5f6119ac83610f70565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a259061320c565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a779190612eb6565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611ac38686612476565b611acd5781611b34565b611b337f0000000000000000000000008d62499b0ca31d18601c0f9781a6cf4c28fe69ea73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611b29575f611b2c565b60015b878461251d565b5b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7f9190613127565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c1884610e6d565b604051611c2591906128c1565b60405180910390a36001925050505b9392505050565b611c436128a2565b73ffffffffffffffffffffffffffffffffffffffff16611c6161127d565b73ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae90613274565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80611d8583610f70565b90508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfe9061320c565b60405180910390fd5b8060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e509190612eb6565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eda9190613127565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f7891906128c1565b60405180910390a360019150509392505050565b5f7f0000000000000000000000008d62499b0ca31d18601c0f9781a6cf4c28fe69ea73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611ff5575060165f9054906101000a900460ff16155b801561200d5750601360149054906101000a900460ff165b801561202357506014546120203061106f565b10155b905090565b600160165f6101000a81548160ff0219169083151502179055505f60126040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f6120dc3061106f565b90505f60145490505f8190505f8314806120f557505f81145b15612103575050505061245b565b6015546014546121139190612ee9565b83111561212d5760155460145461212a9190612ee9565b92505b61214b737a250d5630b4cf539739df2c5dacb4c659f2488d84610a27565b505f600267ffffffffffffffff81111561216857612167613292565b5b6040519080825280602002602001820160405280156121965781602001602082028036833780820191505090505b50905030815f815181106121ad576121ac6132bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612244573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122689190613300565b8160018151811061227c5761227b6132bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8430426040518663ffffffff1660e01b815260040161230b95949392919061341b565b5f604051808303815f87803b158015612322575f80fd5b505af1158015612334573d5f803e3d5ffd5b505050505f4790505f865f015160ff1687604001516123539190613473565b6fffffffffffffffffffffffffffffffff1690505f81886020015160ff168461237c9190612ee9565b6123869190612f57565b90505f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516123ce90612fb4565b5f6040518083038185875af1925050503d805f8114612408576040519150601f19603f3d011682016040523d82523d5f602084013e61240d565b606091505b5050905080612451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244890613500565b60405180910390fd5b5050505050505050505b5f60165f6101000a81548160ff021916908315150217905550565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156125155750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f8060116040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f60126040518060600160405290815f82015f9054906101000a900460ff1660ff1660ff1681526020015f820160019054906101000a900460ff1660ff1660ff1681526020015f820160029054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090505f600115158715151461267e57606482604001516fffffffffffffffffffffffffffffffff168661266f9190612ee9565b6126799190612f57565b6126ad565b606483604001516fffffffffffffffffffffffffffffffff16866126a29190612ee9565b6126ac9190612f57565b5b90505f60011515881515146126f45782604001516fffffffffffffffffffffffffffffffff16835f015160ff16836126e59190612ee9565b6126ef9190612f57565b612728565b83604001516fffffffffffffffffffffffffffffffff16845f015160ff168361271d9190612ee9565b6127279190612f57565b5b9050806008546127389190612eb6565b6008819055505f818361274b9190612eb6565b90505f81111561284d578060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461279e9190613127565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61283784610e6d565b60405161284491906128c1565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac8260085460405161288092919061351e565b60405180910390a182876128949190612eb6565b955050505050509392505050565b5f33905090565b5f819050919050565b6128bb816128a9565b82525050565b5f6020820190506128d45f8301846128b2565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129115780820151818401526020810190506128f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612936826128da565b61294081856128e4565b93506129508185602086016128f4565b6129598161291c565b840191505092915050565b5f6020820190508181035f83015261297c818461292c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129b182612988565b9050919050565b6129c1816129a7565b81146129cb575f80fd5b50565b5f813590506129dc816129b8565b92915050565b6129eb816128a9565b81146129f5575f80fd5b50565b5f81359050612a06816129e2565b92915050565b5f8060408385031215612a2257612a21612984565b5b5f612a2f858286016129ce565b9250506020612a40858286016129f8565b9150509250929050565b5f8115159050919050565b612a5e81612a4a565b82525050565b5f602082019050612a775f830184612a55565b92915050565b5f60208284031215612a9257612a91612984565b5b5f612a9f848285016129ce565b91505092915050565b5f805f60608486031215612abf57612abe612984565b5b5f612acc868287016129ce565b9350506020612add868287016129ce565b9250506040612aee868287016129f8565b9150509250925092565b5f60ff82169050919050565b612b0d81612af8565b82525050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b612b3781612b13565b82525050565b5f606082019050612b505f830186612b04565b612b5d6020830185612b04565b612b6a6040830184612b2e565b949350505050565b5f60208284031215612b8757612b86612984565b5b5f612b94848285016129f8565b91505092915050565b5f602082019050612bb05f830184612b04565b92915050565b612bbf81612a4a565b8114612bc9575f80fd5b50565b5f81359050612bda81612bb6565b92915050565b5f8060408385031215612bf657612bf5612984565b5b5f612c03858286016129ce565b9250506020612c1485828601612bcc565b9150509250929050565b612c27816129a7565b82525050565b5f602082019050612c405f830184612c1e565b92915050565b612c4f81612af8565b8114612c59575f80fd5b50565b5f81359050612c6a81612c46565b92915050565b5f805f8060808587031215612c8857612c87612984565b5b5f612c9587828801612c5c565b9450506020612ca687828801612c5c565b9350506040612cb787828801612c5c565b9250506060612cc887828801612c5c565b91505092959194509250565b5f819050919050565b5f612cf7612cf2612ced84612988565b612cd4565b612988565b9050919050565b5f612d0882612cdd565b9050919050565b5f612d1982612cfe565b9050919050565b612d2981612d0f565b82525050565b5f602082019050612d425f830184612d20565b92915050565b5f8060408385031215612d5e57612d5d612984565b5b5f612d6b858286016129ce565b9250506020612d7c858286016129ce565b9150509250929050565b5f8060408385031215612d9c57612d9b612984565b5b5f612da985828601612bcc565b9250506020612dba858286016129f8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612e0857607f821691505b602082108103612e1b57612e1a612dc4565b5b50919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612e55601d836128e4565b9150612e6082612e21565b602082019050919050565b5f6020820190508181035f830152612e8281612e49565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612ec0826128a9565b9150612ecb836128a9565b9250828203905081811115612ee357612ee2612e89565b5b92915050565b5f612ef3826128a9565b9150612efe836128a9565b9250828202612f0c816128a9565b91508282048414831517612f2357612f22612e89565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f61826128a9565b9150612f6c836128a9565b925082612f7c57612f7b612f2a565b5b828204905092915050565b5f81905092915050565b50565b5f612f9f5f83612f87565b9150612faa82612f91565b5f82019050919050565b5f612fbe82612f94565b9150819050919050565b5f612fd282612b13565b9150612fdd83612b13565b925082820190506fffffffffffffffffffffffffffffffff81111561300557613004612e89565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130656026836128e4565b91506130708261300b565b604082019050919050565b5f6020820190508181035f83015261309281613059565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f6130f36028836128e4565b91506130fe82613099565b604082019050919050565b5f6020820190508181035f830152613120816130e7565b9050919050565b5f613131826128a9565b915061313c836128a9565b925082820190508082111561315457613153612e89565b5b92915050565b7f45786365656473206d617857616c6c657453697a652e000000000000000000005f82015250565b5f61318e6016836128e4565b91506131998261315a565b602082019050919050565b5f6020820190508181035f8301526131bb81613182565b9050919050565b7f496e73756666696369656e742042616c616e63650000000000000000000000005f82015250565b5f6131f66014836128e4565b9150613201826131c2565b602082019050919050565b5f6020820190508181035f830152613223816131ea565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61325e6020836128e4565b91506132698261322a565b602082019050919050565b5f6020820190508181035f83015261328b81613252565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506132fa816129b8565b92915050565b5f6020828403121561331557613314612984565b5b5f613322848285016132ec565b91505092915050565b5f819050919050565b5f61334e6133496133448461332b565b612cd4565b6128a9565b9050919050565b61335e81613334565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613396816129a7565b82525050565b5f6133a7838361338d565b60208301905092915050565b5f602082019050919050565b5f6133c982613364565b6133d3818561336e565b93506133de8361337e565b805f5b8381101561340e5781516133f5888261339c565b9750613400836133b3565b9250506001810190506133e1565b5085935050505092915050565b5f60a08201905061342e5f8301886128b2565b61343b6020830187613355565b818103604083015261344d81866133bf565b905061345c6060830185612c1e565b61346960808301846128b2565b9695505050505050565b5f61347d82612b13565b915061348883612b13565b925082820390506fffffffffffffffffffffffffffffffff8111156134b0576134af612e89565b5b92915050565b7f5472616e73666572206661696c65642e000000000000000000000000000000005f82015250565b5f6134ea6010836128e4565b91506134f5826134b6565b602082019050919050565b5f6020820190508181035f830152613517816134de565b9050919050565b5f6040820190506135315f8301856128b2565b61353e60208301846128b2565b939250505056fea2646970667358221220d2105cdc5b3b9820a0ca4753cdce6898a42a552c66f859e44d26aaa27fee257964736f6c63430008140033

Deployed Bytecode Sourcemap

9068:11131:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10607:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13777:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12259:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9892:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9941:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13581:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13130:441;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14573:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10514:18;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;10270:69;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14416:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13691:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10195:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;10064:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14719:170;;;;;;;;;;;;;:::i;:::-;;14268:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10490:17;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12483:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15360:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13967:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8038:103;;;;;;;;;;;;;:::i;:::-;;15841:147;;;;;;;;;;;;;:::i;:::-;;10680:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9766:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15224:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7798:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9827:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13870:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12775:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9334:126;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12613:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10569:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14897:131;;;;;;;;;;;;;:::i;:::-;;14113:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15036:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15622:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15715:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10417:66;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;10346:64;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;8149:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9467:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15487:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10607:57;;;;:::o;13777:85::-;13816:13;13849:5;13842:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13777:85;:::o;12259:216::-;12334:4;12386:6;12351:11;:23;12363:10;12351:23;;;;;;;;;;;;;;;:32;12375:7;12351:32;;;;;;;;;;;;;;;:41;;;;12429:7;12408:37;;12417:10;12408:37;;;12438:6;12408:37;;;;;;:::i;:::-;;;;;;;;12463:4;12456:11;;12259:216;;;;:::o;9892:42::-;;;;;;;;;;;;;;;;;:::o;9941:46::-;;;;:::o;13581:102::-;13636:7;13663:12;;13656:19;;13581:102;:::o;13130:441::-;13230:4;13286:17;13251:11;:19;13263:6;13251:19;;;;;;;;;;;;;;;:31;13271:10;13251:31;;;;;;;;;;;;;;;;:52;13247:257;;13363:6;13328:11;:19;13340:6;13328:19;;;;;;;;;;;;;;;:31;13348:10;13328:31;;;;;;;;;;;;;;;;:41;;13320:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;13486:6;13452:11;:19;13464:6;13452:19;;;;;;;;;;;;;;;:31;13472:10;13452:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;13418:11;:19;13430:6;13418:19;;;;;;;;;;;;;;;:31;13438:10;13418:31;;;;;;;;;;;;;;;:74;;;;13247:257;13523:40;13537:6;13545:9;13556:6;13523:13;:40::i;:::-;13516:47;;13130:441;;;;;:::o;14573:136::-;14626:7;14686:15;9283:42;14686:9;:15::i;:::-;14668;9210:42;14668:9;:15::i;:::-;14653:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;14646:55;;14573:136;:::o;10514:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10270:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14416:149::-;14486:7;14541:16;;14526:12;;14513:10;:25;;;;:::i;:::-;:44;;;;:::i;:::-;14506:51;;14416:149;;;:::o;13691:78::-;13734:5;13759:2;13752:9;;13691:78;:::o;10195:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10064:32::-;;;;;;;;;;;;;:::o;14719:170::-;7753:13;:11;:13::i;:::-;14779:12:::1;14804:10;14796:24;;14828:21;14796:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14778:76;;;14873:7;14865:16;;;::::0;::::1;;14767:122;14719:170::o:0;14268:140::-;14333:7;14388:12;;14369:16;;14360:6;:25;;;;:::i;:::-;:40;;;;:::i;:::-;14353:47;;14268:140;;;:::o;10490:17::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12483:122::-;12538:4;12562:35;12570:7;12579:17;12562:7;:35::i;:::-;12555:42;;12483:122;;;:::o;15360:119::-;7753:13;:11;:13::i;:::-;15465:6:::1;15443:11;:19;15455:6;15443:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15360:119:::0;;:::o;13967:138::-;14033:7;14060:37;14080:7;:16;14088:7;14080:16;;;;;;;;;;;;;;;;14060:19;:37::i;:::-;14053:44;;13967:138;;;:::o;8038:103::-;7753:13;:11;:13::i;:::-;8103:30:::1;8130:1;8103:18;:30::i;:::-;8038:103::o:0;15841:147::-;7753:13;:11;:13::i;:::-;15911:5:::1;15895:13;;:21;;;;;;;;;;;;;;;;;;15936:11;15927:6;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15968:12;15958:7;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15841:147::o:0;10680:36::-;;;;:::o;9766:54::-;;;;:::o;15224:128::-;7753:13;:11;:13::i;:::-;15327:17:::1;15308:16;:36;;;;15224:128:::0;:::o;7798:87::-;7844:7;7871:6;;;;;;;;;;;7864:13;;7798:87;:::o;9827:57::-;;;;:::o;13870:89::-;13911:13;13944:7;13937:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13870:89;:::o;12775:347::-;7753:13;:11;:13::i;:::-;12901:94:::1;;;;;;;;12918:13;12901:94;;;;;;12938:6;12901:94;;;;;;12986:6;12978:15;;12961:13;12953:22;;:40;;;;:::i;:::-;12901:94;;;;::::0;12892:6:::1;:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13016:98;;;;;;;;13033:14;13016:98;;;;;;13054:7;13016:98;;;;;;13104:7;13096:16;;13078:14;13070:23;;:42;;;;:::i;:::-;13016:98;;;;::::0;13006:7:::1;:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12775:347:::0;;;;:::o;9334:126::-;9417:42;9334:126;:::o;12613:156::-;12693:4;12717:44;12731:10;12743:9;12754:6;12717:13;:44::i;:::-;12710:51;;12613:156;;;;:::o;10569:31::-;;;;;;;;;;;;;:::o;14897:131::-;7753:13;:11;:13::i;:::-;14954:66:::1;14976:4;14983:10;14995:24;15013:4;14995:9;:24::i;:::-;14954:13;:66::i;:::-;;14897:131::o:0;14113:147::-;14197:7;14224:11;:19;14236:6;14224:19;;;;;;;;;;;;;;;:28;14244:7;14224:28;;;;;;;;;;;;;;;;14217:35;;14113:147;;;;:::o;15036:182::-;7753:13;:11;:13::i;:::-;15142:8:::1;15127:12;;:23;;;;;;;;;;;;;;;;;;15205:5;15194:7;15179:12;;:22;;;;:::i;:::-;15178:32;;;;:::i;:::-;15161:13;:49;;;;15036:182:::0;;:::o;15622:85::-;7753:13;:11;:13::i;:::-;15697:2:::1;15689:5;;:10;;;;;;;;;;;;;;;;;;15622:85:::0;:::o;15715:118::-;7753:13;:11;:13::i;:::-;15820:5:::1;15815:2;15800:12;;:17;;;;:::i;:::-;:25;;;;:::i;:::-;15785:12;:40;;;;15715:118:::0;:::o;10417:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10346:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8149:201::-;7753:13;:11;:13::i;:::-;8258:1:::1;8238:22;;:8;:22;;::::0;8230:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8314:28;8333:8;8314:18;:28::i;:::-;8149:201:::0;:::o;9467:40::-;;;:::o;15487:127::-;7753:13;:11;:13::i;:::-;15600:6:::1;15574:15;:23;15590:6;15574:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15487:127:::0;;:::o;16001:1099::-;16093:4;16110:6;;;;;;;;;;;16106:79;;;16136:41;16151:6;16159:9;16170:6;16136:14;:41::i;:::-;16129:48;;;;16106:79;16199:13;;;;;;;;;;;:42;;;;;16226:15;16216:25;;:6;:25;;;16199:42;:73;;;;;16246:15;:26;16262:9;16246:26;;;;;;;;;;;;;;;;;;;;;;;;;16245:27;16199:73;16195:274;;;16303:12;;16293:6;:22;;16285:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16416:14;;16406:6;16383:20;16393:9;16383;:20::i;:::-;:29;;;;:::i;:::-;:47;;16375:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;16195:274;16479:17;:15;:17::i;:::-;16475:53;;;16509:11;:9;:11::i;:::-;16475:53;16536:24;16563:26;16582:6;16563:18;:26::i;:::-;16536:53;;16623:16;16604:7;:15;16612:6;16604:15;;;;;;;;;;;;;;;;:35;;16596:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16707:16;16689:7;:15;16697:6;16689:15;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;16671:7;:15;16679:6;16671:15;;;;;;;;;;;;;;;:52;;;;16734:26;16763:33;16778:6;16786:9;16763:14;:33::i;:::-;:162;;16909:16;16763:162;;;16808:89;16840:15;16830:25;;:6;:25;;;:40;;16865:5;16830:40;;;16858:4;16830:40;16872:6;16880:16;16808:21;:89::i;:::-;16763:162;16734:191;;16974:18;16953:7;:18;16961:9;16953:18;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;16932:7;:18;16940:9;16932:18;;;;;;;;;;;;;;;:60;;;;17023:9;17006:68;;17015:6;17006:68;;;17034:39;17054:18;17034:19;:39::i;:::-;17006:68;;;;;;:::i;:::-;;;;;;;;17088:4;17081:11;;;;16001:1099;;;;;;:::o;7895:132::-;7970:12;:10;:12::i;:::-;7959:23;;:7;:5;:7::i;:::-;:23;;;7951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7895:132::o;8363:191::-;8437:16;8456:6;;;;;;;;;;;8437:25;;8482:8;8473:6;;:17;;;;;;;;;;;;;;;;;;8537:8;8506:40;;8527:8;8506:40;;;;;;;;;;;;8426:128;8363:191;:::o;17109:455::-;17202:4;17219:24;17246:26;17265:6;17246:18;:26::i;:::-;17219:53;;17310:16;17291:7;:15;17299:6;17291:15;;;;;;;;;;;;;;;;:35;;17283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17398:16;17380:7;:15;17388:6;17380:15;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;17362:7;:15;17370:6;17362:15;;;;;;;;;;;;;;;:52;;;;17467:16;17446:7;:18;17454:9;17446:18;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;17425:7;:18;17433:9;17425:18;;;;;;;;;;;;;;;:58;;;;17516:9;17499:35;;17508:6;17499:35;;;17527:6;17499:35;;;;;;:::i;:::-;;;;;;;;17552:4;17545:11;;;17109:455;;;;;:::o;18670:183::-;18720:4;18758:15;18744:29;;:10;:29;;;;:40;;;;;18778:6;;;;;;;;;;;18777:7;18744:40;:56;;;;;18788:12;;;;;;;;;;;18744:56;:101;;;;;18832:13;;18804:24;18822:4;18804:9;:24::i;:::-;:41;;18744:101;18737:108;;18670:183;:::o;18861:1166::-;10783:4;10774:6;;:13;;;;;;;;;;;;;;;;;;18911:20:::1;18934:7;18911:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;18952:23;18978:24;18996:4;18978:9;:24::i;:::-;18952:50;;19013:23;19039:13;;19013:39;;19063:20;19086:15;19063:38;;19137:1;19118:15;:20;:41;;;;19158:1;19142:12;:17;19118:41;19114:80;;;19176:7;;;;;;19114:80;19244:16;;19228:13;;:32;;;;:::i;:::-;19210:15;:50;19206:133;;;19311:16;;19295:13;;:32;;;;:::i;:::-;19277:50;;19206:133;19349:52;9417:42;19385:15;19349:7;:52::i;:::-;;19416:21;19454:1;19440:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19416:40;;19485:4;19467;19472:1;19467:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9417:42;19511:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19501:4;19506:1;19501:7;;;;;;;;:::i;:::-;;;;;;;:34;;;;;;;;;::::0;::::1;9417:42;19548:68;;;19631:15;19648:1;19651:4;19665;19672:15;19548:150;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19711:17;19731:21;19711:41;;19765:20;19806:9;:20;;;19788:38;;:9;:15;;;:38;;;;:::i;:::-;19765:61;;;;19837:17;19885:12;19869:9;:13;;;19857:25;;:9;:25;;;;:::i;:::-;:40;;;;:::i;:::-;19837:60;;19910:15;19938:5;;;;;;;;;;;19930:19;;19957:9;19930:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19909:62;;;19986:10;19978:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18900:1127;;;;;;;;;10798:1;10819:5:::0;10810:6;;:14;;;;;;;;;;;;;;;;;;18861:1166::o;20035:161::-;20117:4;20142:11;:19;20154:6;20142:19;;;;;;;;;;;;;;;;;;;;;;;;;20141:20;:47;;;;;20166:11;:22;20178:9;20166:22;;;;;;;;;;;;;;;;;;;;;;;;;20165:23;20141:47;20134:54;;20035:161;;;;:::o;17578:1084::-;17682:7;17702:19;17724:6;17702:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17741:20;17764:7;17741:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17784:27;17837:4;17827:14;;:6;:14;;;:99;;17923:3;17905:9;:15;;;17886:34;;:16;:34;;;;:::i;:::-;:40;;;;:::i;:::-;17827:99;;;17880:3;17863:8;:14;;;17844:33;;:16;:33;;;;:::i;:::-;:39;;;;:::i;:::-;17827:99;17784:142;;17941:27;17981:4;17971:14;;:6;:14;;;:164;;18120:9;:15;;;18075:60;;18097:9;:20;;;18075:42;;:19;:42;;;;:::i;:::-;:60;;;;:::i;:::-;17971:164;;;18045:8;:14;;;18001:58;;18023:8;:19;;;18001:41;;:19;:41;;;;:::i;:::-;:58;;;;:::i;:::-;17971:164;17941:194;;18186:19;18167:16;;:38;;;;:::i;:::-;18148:16;:57;;;;18227:29;18281:19;18259;:41;;;;:::i;:::-;18227:73;;18339:1;18315:21;:25;18311:226;;;18407:21;18382:7;:22;18398:4;18382:22;;;;;;;;;;;;;;;;:46;;;;:::i;:::-;18357:7;:22;18373:4;18357:22;;;;;;;;;;;;;;;:71;;;;18475:4;18450:75;;18459:6;18450:75;;;18482:42;18502:21;18482:19;:42::i;:::-;18450:75;;;;;;:::i;:::-;;;;;;;;18311:226;18552:46;18560:19;18581:16;;18552:46;;;;;;;:::i;:::-;;;;;;;;18635:19;18616:16;:38;;;;:::i;:::-;18609:45;;;;;;;17578:1084;;;;;:::o;2031:98::-;2084:7;2111:10;2104:17;;2031: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://d2105cdc5b3b9820a0ca4753cdce6898a42a552c66f859e44d26aaa27fee2579
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.