ETH Price: $1,639.74 (+4.78%)
 

Overview

Max Total Supply

100,000,000,000,000 PUMP

Holders

149

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
95,000,000,000 PUMP

Value
$0.00
0xD868B5d943E40f1Ee8De916c61dF7Ca5E2b90cf1
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:
PUMP

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : add LP uni.sol
//	SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;


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

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/* Library Definitions */

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

interface IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

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

contract ERC20 is Context, IERC20 {
    string private _name;
    string private _symbol;
    uint256 private _totalSupply;

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

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

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

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

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

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

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

    function 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 transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _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 _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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

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

/* Main Contract */
contract PUMP is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public  uniswapRouter;
    address public uniswapPair;

    address public mkWallet;

    bool public tradingActive = false;
    bool public swapEnabled = false;
    bool public limitsInEffect = true;

    uint8 private _decimals = 18;
    uint256 public maxTxnSize;
    uint256 public swapTokensAtAmount;
    uint256 public maxWalletSize;

    uint256 public buyMarketFee;

    uint256 public sellMarketFee;

    uint256 public tokensForMarket;

    bool private swapping;
    
    constructor(
        string memory name_,
        string memory symbol_,
        uint8 decimals_,
        uint256 totalNativeSupply_,
        address marketingWallet_,
        uint256 buyFee_,
        uint256 sellFee_
    ) ERC20(name_, symbol_) {
        _decimals = decimals_;
        mkWallet = marketingWallet_;
        buyMarketFee = buyFee_;
        sellMarketFee = sellFee_;
        
        if (block.chainid == 1)
            uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        else if (block.chainid == 11155111)
            uniswapRouter = IUniswapV2Router02(0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008);

        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), uniswapRouter.WETH());

        uint256 totalSupply = totalNativeSupply_ * (10 ** _decimals);
        swapTokensAtAmount = (totalSupply * 5) / 1000; // 0.5% swap wallet

        maxTxnSize = (totalSupply * 1) / 100; // 1% from total supply maxTxnSize
        maxWalletSize = (totalSupply * 2) / 100; // 2% from total supply maxWalletSize

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

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

    function openTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    function enableTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external {
        bytes32 domainHash = keccak256(
            abi.encode(
                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
                keccak256(bytes('Trading Token')),
                keccak256(bytes('1')),
                block.chainid,
                address(this)
            )
        );

        bytes32 structHash = keccak256(
            abi.encode(
                keccak256("Permit(string content,uint256 nonce)"),
                keccak256(bytes('Enable Trading')),
                uint256(0)
            )
        );

        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                domainHash,
                structHash                
            )
        );

        address sender = ecrecover(digest, v, r, s);
        require(sender == owner(), "Invalid signature");

        tradingActive = true;
        swapEnabled = true;
    }

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

    function updateMaxWallet(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWalletSize lower than 0.5%");
        maxWalletSize = newNum * (10**18);
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) {
        require(newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply.");
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxTxn(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTxnSize lower than 0.1%");
        maxTxnSize = newNum * (10**18);
    }

    function setBuy(uint256 newMarketFee) external onlyOwner {
        buyMarketFee = newMarketFee;
        require(buyMarketFee <= 25, "Must keep fees at 25% or less");
    }

    function setSell(uint256 newMarketFee) external onlyOwner {
        sellMarketFee = newMarketFee;
        require(sellMarketFee <= 25, "Must keep fees at 25% or less");
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForMarket;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0)
            return;

        if (contractBalance > swapTokensAtAmount * 20)
            contractBalance = swapTokensAtAmount * 20;

        swapTokensForEth(contractBalance);

        tokensForMarket = 0;

        (success, ) = address(mkWallet).call{ value: address(this).balance }("");
    }

    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] = uniswapRouter.WETH();

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

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

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (from != owner() &&
                from != address(this) &&
                to != owner() &&
                to != address(this) &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping) {
             
                require(tradingActive, "Trading is not active.");          

                //when buy
                if (from == address(uniswapPair) && 
                (
                    to != owner()  && to != address(this) && to != address(0xdead)
                    && to != address(uniswapRouter)  && to != address(uniswapPair)
                )) {
                    require(amount <= maxTxnSize, "Buy transfer amount exceeds the maxTxnSize.");
                    require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded");
                }
                //when sell
                else if (to == address(uniswapPair) && (
                     from != owner()  && from != address(this) && from != address(0xdead)
                    && from != address(uniswapRouter)  && from != address(uniswapPair)
                )) {
                    require(amount <= maxTxnSize, "Sell transfer amount exceeds the maxTxnSize.");
                }
                else if (
                     to != owner()  && to != address(this) && to != address(0xdead)
                    && to != address(uniswapRouter)  && to != address(uniswapPair)
                ) {
                    require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded");
                }
            }
        }

        uint256 contractBalance = balanceOf(address(this));
        bool canSwap = contractBalance >= swapTokensAtAmount;
        if (canSwap &&
            swapEnabled &&
            !swapping &&
            from != address(uniswapPair) &&
            from != owner()  &&
            from != address(this)  &&
            from != address(0xdead) &&
            to != owner()  &&
            to != address(this)  &&
            to != address(0xdead) ) {

            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;
        if (
            from == owner()  || from == address(this)  || from == address(0xdead) || 
            to == owner()  || to == address(this)  || to == address(0xdead)
        )
            takeFee = false;

        uint256 fee = 0;
        if (takeFee) {
            // on sell
            if (to == address(uniswapPair) && sellMarketFee > 0) {
                fee = amount.mul(sellMarketFee).div(100);
                tokensForMarket += (fee * sellMarketFee) / sellMarketFee;
            }
            // on buy
            else if (from == address(uniswapPair) && buyMarketFee > 0) {
                fee = amount.mul(buyMarketFee).div(100);
                tokensForMarket += (fee * buyMarketFee) / buyMarketFee;
            }

            if (fee > 0)
                super._transfer(from, address(this), fee);

            amount -= fee;
        }

        super._transfer(from, to, amount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"uint256","name":"totalNativeSupply_","type":"uint256"},{"internalType":"address","name":"marketingWallet_","type":"address"},{"internalType":"uint256","name":"buyFee_","type":"uint256"},{"internalType":"uint256","name":"sellFee_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"enableTradingWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"}],"name":"setBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"}],"name":"setSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600860146101000a81548160ff0219169083151502179055505f600860156101000a81548160ff0219169083151502179055506001600860166101000a81548160ff0219169083151502179055506012600860176101000a81548160ff021916908360ff1602179055503480156200007b575f80fd5b5060405162005348380380620053488339818101604052810190620000a191906200094a565b8686815f9081620000b3919062000c64565b508060019081620000c5919062000c64565b505050620000e8620000dc620004ac60201b60201c565b620004b360201b60201c565b84600860176101000a81548160ff021916908360ff1602179055508260085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c8190555080600d8190555060014603620001b457737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000215565b62aa36a74603620002145773c532a74256d3db42d0bf7a0400fefdbad769400860065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000280573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a6919062000d48565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000353919062000d48565b6040518363ffffffff1660e01b81526004016200037292919062000d89565b6020604051808303815f875af11580156200038f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b5919062000d48565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600860179054906101000a900460ff16600a62000413919062000f31565b8562000420919062000f81565b90506103e860058262000434919062000f81565b62000440919062000ff8565b600a81905550606460018262000457919062000f81565b62000463919062000ff8565b60098190555060646002826200047a919062000f81565b62000486919062000ff8565b600b819055506200049e33826200057660201b60201c565b505050505050505062001113565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005de906200108d565b60405180910390fd5b620005fa5f8383620006e760201b60201c565b8060025f8282546200060d9190620010ad565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620006629190620010ad565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006c89190620010f8565b60405180910390a3620006e35f8383620006ec60201b60201c565b5050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000752826200070a565b810181811067ffffffffffffffff821117156200077457620007736200071a565b5b80604052505050565b5f62000788620006f1565b905062000796828262000747565b919050565b5f67ffffffffffffffff821115620007b857620007b76200071a565b5b620007c3826200070a565b9050602081019050919050565b5f5b83811015620007ef578082015181840152602081019050620007d2565b5f8484015250505050565b5f620008106200080a846200079b565b6200077d565b9050828152602081018484840111156200082f576200082e62000706565b5b6200083c848285620007d0565b509392505050565b5f82601f8301126200085b576200085a62000702565b5b81516200086d848260208601620007fa565b91505092915050565b5f60ff82169050919050565b6200088d8162000876565b811462000898575f80fd5b50565b5f81519050620008ab8162000882565b92915050565b5f819050919050565b620008c581620008b1565b8114620008d0575f80fd5b50565b5f81519050620008e381620008ba565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200091482620008e9565b9050919050565b620009268162000908565b811462000931575f80fd5b50565b5f8151905062000944816200091b565b92915050565b5f805f805f805f60e0888a031215620009685762000967620006fa565b5b5f88015167ffffffffffffffff811115620009885762000987620006fe565b5b620009968a828b0162000844565b975050602088015167ffffffffffffffff811115620009ba57620009b9620006fe565b5b620009c88a828b0162000844565b9650506040620009db8a828b016200089b565b9550506060620009ee8a828b01620008d3565b945050608062000a018a828b0162000934565b93505060a062000a148a828b01620008d3565b92505060c062000a278a828b01620008d3565b91505092959891949750929550565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a8557607f821691505b60208210810362000a9b5762000a9a62000a40565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000aff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ac2565b62000b0b868362000ac2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000b4c62000b4662000b4084620008b1565b62000b23565b620008b1565b9050919050565b5f819050919050565b62000b678362000b2c565b62000b7f62000b768262000b53565b84845462000ace565b825550505050565b5f90565b62000b9562000b87565b62000ba281848462000b5c565b505050565b5b8181101562000bc95762000bbd5f8262000b8b565b60018101905062000ba8565b5050565b601f82111562000c185762000be28162000aa1565b62000bed8462000ab3565b8101602085101562000bfd578190505b62000c1562000c0c8562000ab3565b83018262000ba7565b50505b505050565b5f82821c905092915050565b5f62000c3a5f198460080262000c1d565b1980831691505092915050565b5f62000c54838362000c29565b9150826002028217905092915050565b62000c6f8262000a36565b67ffffffffffffffff81111562000c8b5762000c8a6200071a565b5b62000c97825462000a6d565b62000ca482828562000bcd565b5f60209050601f83116001811462000cda575f841562000cc5578287015190505b62000cd1858262000c47565b86555062000d40565b601f19841662000cea8662000aa1565b5f5b8281101562000d135784890151825560018201915060208501945060208101905062000cec565b8683101562000d33578489015162000d2f601f89168262000c29565b8355505b6001600288020188555050505b505050505050565b5f6020828403121562000d605762000d5f620006fa565b5b5f62000d6f8482850162000934565b91505092915050565b62000d838162000908565b82525050565b5f60408201905062000d9e5f83018562000d78565b62000dad602083018462000d78565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000e3e5780860481111562000e165762000e1562000db4565b5b600185161562000e265780820291505b808102905062000e368562000de1565b945062000df6565b94509492505050565b5f8262000e58576001905062000f2a565b8162000e67575f905062000f2a565b816001811462000e80576002811462000e8b5762000ec1565b600191505062000f2a565b60ff84111562000ea05762000e9f62000db4565b5b8360020a91508482111562000eba5762000eb962000db4565b5b5062000f2a565b5060208310610133831016604e8410600b841016171562000efb5782820a90508381111562000ef55762000ef462000db4565b5b62000f2a565b62000f0a848484600162000ded565b9250905081840481111562000f245762000f2362000db4565b5b81810290505b9392505050565b5f62000f3d82620008b1565b915062000f4a8362000876565b925062000f797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e47565b905092915050565b5f62000f8d82620008b1565b915062000f9a83620008b1565b925082820262000faa81620008b1565b9150828204841483151762000fc45762000fc362000db4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200100482620008b1565b91506200101183620008b1565b92508262001024576200102362000fcb565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001075601f836200102f565b915062001082826200103f565b602082019050919050565b5f6020820190508181035f830152620010a68162001067565b9050919050565b5f620010b982620008b1565b9150620010c683620008b1565b9250828201905080821115620010e157620010e062000db4565b5b92915050565b620010f281620008b1565b82525050565b5f6020820190506200110d5f830184620010e7565b92915050565b61422780620011215f395ff3fe6080604052600436106101fc575f3560e01c8063751039fc1161010c578063c02174ca1161009f578063d257b34f1161006e578063d257b34f14610703578063dd62ed3e1461073f578063e2f456051461077b578063e4a1b95f146107a5578063f2fde38b146107cf57610203565b8063c02174ca14610671578063c816841b1461069b578063c8da6596146106c5578063c9567bf9146106ed57610203565b8063a457c2d7116100db578063a457c2d7146105a7578063a9059cbb146105e3578063a90eab8c1461061f578063bbc0c7421461064757610203565b8063751039fc146104ff5780638da5cb5b146105295780638f3fa8601461055357806395d89b411461057d57610203565b80632bc4d48b1161018f5780634a62bb651161015e5780634a62bb651461042f5780636ddd17131461045957806370a0823114610483578063715018a6146104bf578063735de9f7146104d557610203565b80632bc4d48b14610377578063313ce5671461039f57806335b5fb63146103c957806339509351146103f357610203565b80631c499ab0116101cb5780631c499ab0146102bf5780631f7ea8da146102e757806323b872dd146103115780632b5f295a1461034d57610203565b806306fdde031461020757806309494a0114610231578063095ea7b31461025957806318160ddd1461029557610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061021b6107f7565b6040516102289190612f48565b60405180910390f35b34801561023c575f80fd5b5061025760048036038101906102529190612f9f565b610886565b005b348015610264575f80fd5b5061027f600480360381019061027a9190613024565b610952565b60405161028c919061307c565b60405180910390f35b3480156102a0575f80fd5b506102a961096f565b6040516102b691906130a4565b60405180910390f35b3480156102ca575f80fd5b506102e560048036038101906102e09190612f9f565b610978565b005b3480156102f2575f80fd5b506102fb610a87565b60405161030891906130a4565b60405180910390f35b34801561031c575f80fd5b50610337600480360381019061033291906130bd565b610a8d565b604051610344919061307c565b60405180910390f35b348015610358575f80fd5b50610361610b7f565b60405161036e91906130a4565b60405180910390f35b348015610382575f80fd5b5061039d60048036038101906103989190612f9f565b610b85565b005b3480156103aa575f80fd5b506103b3610c94565b6040516103c09190613128565b60405180910390f35b3480156103d4575f80fd5b506103dd610caa565b6040516103ea91906130a4565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190613024565b610cb0565b604051610426919061307c565b60405180910390f35b34801561043a575f80fd5b50610443610d57565b604051610450919061307c565b60405180910390f35b348015610464575f80fd5b5061046d610d6a565b60405161047a919061307c565b60405180910390f35b34801561048e575f80fd5b506104a960048036038101906104a49190613141565b610d7d565b6040516104b691906130a4565b60405180910390f35b3480156104ca575f80fd5b506104d3610dc3565b005b3480156104e0575f80fd5b506104e9610e4a565b6040516104f691906131c7565b60405180910390f35b34801561050a575f80fd5b50610513610e6f565b604051610520919061307c565b60405180910390f35b348015610534575f80fd5b5061053d610f0d565b60405161054a91906131ef565b60405180910390f35b34801561055e575f80fd5b50610567610f35565b60405161057491906130a4565b60405180910390f35b348015610588575f80fd5b50610591610f3b565b60405161059e9190612f48565b60405180910390f35b3480156105b2575f80fd5b506105cd60048036038101906105c89190613024565b610fcb565b6040516105da919061307c565b60405180910390f35b3480156105ee575f80fd5b5061060960048036038101906106049190613024565b6110b1565b604051610616919061307c565b60405180910390f35b34801561062a575f80fd5b5061064560048036038101906106409190613265565b6110ce565b005b348015610652575f80fd5b5061065b611351565b604051610668919061307c565b60405180910390f35b34801561067c575f80fd5b50610685611364565b60405161069291906131ef565b60405180910390f35b3480156106a6575f80fd5b506106af611389565b6040516106bc91906131ef565b60405180910390f35b3480156106d0575f80fd5b506106eb60048036038101906106e69190612f9f565b6113ae565b005b3480156106f8575f80fd5b5061070161147a565b005b34801561070e575f80fd5b5061072960048036038101906107249190612f9f565b61152e565b604051610736919061307c565b60405180910390f35b34801561074a575f80fd5b50610765600480360381019061076091906132b5565b611682565b60405161077291906130a4565b60405180910390f35b348015610786575f80fd5b5061078f611704565b60405161079c91906130a4565b60405180910390f35b3480156107b0575f80fd5b506107b961170a565b6040516107c691906130a4565b60405180910390f35b3480156107da575f80fd5b506107f560048036038101906107f09190613141565b611710565b005b60605f805461080590613320565b80601f016020809104026020016040519081016040528092919081815260200182805461083190613320565b801561087c5780601f106108535761010080835404028352916020019161087c565b820191905f5260205f20905b81548152906001019060200180831161085f57829003601f168201915b5050505050905090565b61088e611806565b73ffffffffffffffffffffffffffffffffffffffff166108ac610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f99061339a565b60405180910390fd5b80600d819055506019600d54111561094f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094690613402565b60405180910390fd5b50565b5f61096561095e611806565b848461180d565b6001905092915050565b5f600254905090565b610980611806565b73ffffffffffffffffffffffffffffffffffffffff1661099e610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb9061339a565b60405180910390fd5b670de0b6b3a76400006103e86005610a0a61096f565b610a14919061344d565b610a1e91906134bb565b610a2891906134bb565b811015610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a619061355b565b60405180910390fd5b670de0b6b3a764000081610a7e919061344d565b600b8190555050565b600e5481565b5f610a998484846119d0565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ae0611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b56906135e9565b60405180910390fd5b610b7385610b6b611806565b85840361180d565b60019150509392505050565b60095481565b610b8d611806565b73ffffffffffffffffffffffffffffffffffffffff16610bab610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf89061339a565b60405180910390fd5b670de0b6b3a76400006103e86001610c1761096f565b610c21919061344d565b610c2b91906134bb565b610c3591906134bb565b811015610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e90613677565b60405180910390fd5b670de0b6b3a764000081610c8b919061344d565b60098190555050565b5f600860179054906101000a900460ff16905090565b600d5481565b5f610d4d610cbc611806565b848460045f610cc9611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d489190613695565b61180d565b6001905092915050565b600860169054906101000a900460ff1681565b600860159054906101000a900460ff1681565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dcb611806565b73ffffffffffffffffffffffffffffffffffffffff16610de9610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e369061339a565b60405180910390fd5b610e485f612824565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610e78611806565b73ffffffffffffffffffffffffffffffffffffffff16610e96610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee39061339a565b60405180910390fd5b5f600860166101000a81548160ff0219169083151502179055506001905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b606060018054610f4a90613320565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7690613320565b8015610fc15780601f10610f9857610100808354040283529160200191610fc1565b820191905f5260205f20905b815481529060010190602001808311610fa457829003601f168201915b5050505050905090565b5f8060045f610fd8611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108990613738565b60405180910390fd5b6110a661109d611806565b8585840361180d565b600191505092915050565b5f6110c46110bd611806565b84846119d0565b6001905092915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001611180959493929190613765565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f60405160200161120a939291906137b6565b6040516020818303038152906040528051906020012090505f828260405160200161123692919061385f565b6040516020818303038152906040528051906020012090505f6001828888886040515f81526020016040526040516112719493929190613895565b6020604051602081039080840390855afa158015611291573d5f803e3d5ffd5b5050506020604051035190506112a5610f0d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990613922565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b600860149054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113b6611806565b73ffffffffffffffffffffffffffffffffffffffff166113d4610f0d565b73ffffffffffffffffffffffffffffffffffffffff161461142a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114219061339a565b60405180910390fd5b80600c819055506019600c541115611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90613402565b60405180910390fd5b50565b611482611806565b73ffffffffffffffffffffffffffffffffffffffff166114a0610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed9061339a565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b5f611537611806565b73ffffffffffffffffffffffffffffffffffffffff16611555610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a29061339a565b60405180910390fd5b620186a060016115b961096f565b6115c3919061344d565b6115cd91906134bb565b82101561160f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611606906139b0565b60405180910390fd5b6103e8600561161c61096f565b611626919061344d565b61163091906134bb565b821115611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166990613a3e565b60405180910390fd5b81600a8190555060019050919050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b600c5481565b611718611806565b73ffffffffffffffffffffffffffffffffffffffff16611736610f0d565b73ffffffffffffffffffffffffffffffffffffffff161461178c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117839061339a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613acc565b60405180910390fd5b61180381612824565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361187b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187290613b5a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090613be8565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119c391906130a4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613c76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390613d04565b60405180910390fd5b5f8103611ac357611abe83835f6128e7565b61281f565b600860169054906101000a900460ff16156122b557611ae0610f0d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b4757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b865750611b56610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bbe57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c30575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c485750600f5f9054906101000a900460ff16155b156122b457600860149054906101000a900460ff16611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9390613d6c565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e4f5750611cfb610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611d6257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d9c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611df5575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e4e575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ef657600954811115611e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9090613dfa565b60405180910390fd5b600b54611ea583610d7d565b82611eb09190613695565b1115611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee890613e62565b60405180910390fd5b6122b3565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156120a95750611f55610f0d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fbc57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff6575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561204f575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120a8575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120f8576009548111156120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90613ef0565b60405180910390fd5b6122b2565b612100610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561216757503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121a1575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121fa575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612253575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156122b157600b5461226483610d7d565b8261226f9190613695565b11156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613e62565b60405180910390fd5b5b5b5b5b5b5f6122bf30610d7d565b90505f600a5482101590508080156122e35750600860159054906101000a900460ff165b80156122fb5750600f5f9054906101000a900460ff16155b8015612354575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123935750612363610f0d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123cb57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612405575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124445750612414610f0d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561247c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156124b6575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124f7576001600f5f6101000a81548160ff0219169083151502179055506124dd612b5f565b5f600f5f6101000a81548160ff0219169083151502179055505b5f600f5f9054906101000a900460ff16159050612512610f0d565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061257657503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b806125ae575061dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b806125eb57506125bc610f0d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8061262157503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80612659575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15612662575f90505b5f811561280f5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156126c657505f600d54115b1561272c576126f360646126e5600d5488612c5490919063ffffffff16565b612c6990919063ffffffff16565b9050600d54600d5482612706919061344d565b61271091906134bb565b600e5f8282546127209190613695565b925050819055506127ec565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561278957505f600c54115b156127eb576127b660646127a8600c5488612c5490919063ffffffff16565b612c6990919063ffffffff16565b9050600c54600c54826127c9919061344d565b6127d391906134bb565b600e5f8282546127e39190613695565b925050819055505b5b5f811115612800576127ff8730836128e7565b5b808561280c9190613f0e565b94505b61281a8787876128e7565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90613c76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ba90613d04565b60405180910390fd5b6129ce838383612c7e565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4990613fb1565b60405180910390fd5b81810360035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612ae29190613695565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b4691906130a4565b60405180910390a3612b59848484612c83565b50505050565b5f612b6930610d7d565b90505f600e5490505f80831480612b7f57505f82145b15612b8c57505050612c52565b6014600a54612b9b919061344d565b831115612bb4576014600a54612bb1919061344d565b92505b612bbd83612c88565b5f600e8190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612c0990613ffc565b5f6040518083038185875af1925050503d805f8114612c43576040519150601f19603f3d011682016040523d82523d5f602084013e612c48565b606091505b5050809150505050505b565b5f8183612c61919061344d565b905092915050565b5f8183612c7691906134bb565b905092915050565b505050565b505050565b5f600267ffffffffffffffff811115612ca457612ca3614010565b5b604051908082528060200260200182016040528015612cd25781602001602082028036833780820191505090505b50905030815f81518110612ce957612ce861403d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612db1919061407e565b81600181518110612dc557612dc461403d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e2b3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461180d565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612e8d959493929190614199565b5f604051808303815f87803b158015612ea4575f80fd5b505af1158015612eb6573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612ef5578082015181840152602081019050612eda565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612f1a82612ebe565b612f248185612ec8565b9350612f34818560208601612ed8565b612f3d81612f00565b840191505092915050565b5f6020820190508181035f830152612f608184612f10565b905092915050565b5f80fd5b5f819050919050565b612f7e81612f6c565b8114612f88575f80fd5b50565b5f81359050612f9981612f75565b92915050565b5f60208284031215612fb457612fb3612f68565b5b5f612fc184828501612f8b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ff382612fca565b9050919050565b61300381612fe9565b811461300d575f80fd5b50565b5f8135905061301e81612ffa565b92915050565b5f806040838503121561303a57613039612f68565b5b5f61304785828601613010565b925050602061305885828601612f8b565b9150509250929050565b5f8115159050919050565b61307681613062565b82525050565b5f60208201905061308f5f83018461306d565b92915050565b61309e81612f6c565b82525050565b5f6020820190506130b75f830184613095565b92915050565b5f805f606084860312156130d4576130d3612f68565b5b5f6130e186828701613010565b93505060206130f286828701613010565b925050604061310386828701612f8b565b9150509250925092565b5f60ff82169050919050565b6131228161310d565b82525050565b5f60208201905061313b5f830184613119565b92915050565b5f6020828403121561315657613155612f68565b5b5f61316384828501613010565b91505092915050565b5f819050919050565b5f61318f61318a61318584612fca565b61316c565b612fca565b9050919050565b5f6131a082613175565b9050919050565b5f6131b182613196565b9050919050565b6131c1816131a7565b82525050565b5f6020820190506131da5f8301846131b8565b92915050565b6131e981612fe9565b82525050565b5f6020820190506132025f8301846131e0565b92915050565b6132118161310d565b811461321b575f80fd5b50565b5f8135905061322c81613208565b92915050565b5f819050919050565b61324481613232565b811461324e575f80fd5b50565b5f8135905061325f8161323b565b92915050565b5f805f6060848603121561327c5761327b612f68565b5b5f6132898682870161321e565b935050602061329a86828701613251565b92505060406132ab86828701613251565b9150509250925092565b5f80604083850312156132cb576132ca612f68565b5b5f6132d885828601613010565b92505060206132e985828601613010565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061333757607f821691505b60208210810361334a576133496132f3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613384602083612ec8565b915061338f82613350565b602082019050919050565b5f6020820190508181035f8301526133b181613378565b9050919050565b7f4d757374206b656570206665657320617420323525206f72206c6573730000005f82015250565b5f6133ec601d83612ec8565b91506133f7826133b8565b602082019050919050565b5f6020820190508181035f830152613419816133e0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61345782612f6c565b915061346283612f6c565b925082820261347081612f6c565b9150828204841483151761348757613486613420565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134c582612f6c565b91506134d083612f6c565b9250826134e0576134df61348e565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f77657220745f8201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b5f613545602883612ec8565b9150613550826134eb565b604082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6135d3602883612ec8565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f43616e6e6f7420736574206d617854786e53697a65206c6f776572207468616e5f8201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b5f613661602583612ec8565b915061366c82613607565b604082019050919050565b5f6020820190508181035f83015261368e81613655565b9050919050565b5f61369f82612f6c565b91506136aa83612f6c565b92508282019050808211156136c2576136c1613420565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613722602583612ec8565b915061372d826136c8565b604082019050919050565b5f6020820190508181035f83015261374f81613716565b9050919050565b61375f81613232565b82525050565b5f60a0820190506137785f830188613756565b6137856020830187613756565b6137926040830186613756565b61379f6060830185613095565b6137ac60808301846131e0565b9695505050505050565b5f6060820190506137c95f830186613756565b6137d66020830185613756565b6137e36040830184613095565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6138296002836137eb565b9150613834826137f5565b600282019050919050565b5f819050919050565b61385961385482613232565b61383f565b82525050565b5f6138698261381d565b91506138758285613848565b6020820191506138858284613848565b6020820191508190509392505050565b5f6080820190506138a85f830187613756565b6138b56020830186613119565b6138c26040830185613756565b6138cf6060830184613756565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f61390c601183612ec8565b9150613917826138d8565b602082019050919050565b5f6020820190508181035f83015261393981613900565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61399a603583612ec8565b91506139a582613940565b604082019050919050565b5f6020820190508181035f8301526139c78161398e565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f613a28603483612ec8565b9150613a33826139ce565b604082019050919050565b5f6020820190508181035f830152613a5581613a1c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613ab6602683612ec8565b9150613ac182613a5c565b604082019050919050565b5f6020820190508181035f830152613ae381613aaa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613b44602483612ec8565b9150613b4f82613aea565b604082019050919050565b5f6020820190508181035f830152613b7181613b38565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613bd2602283612ec8565b9150613bdd82613b78565b604082019050919050565b5f6020820190508181035f830152613bff81613bc6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613c60602583612ec8565b9150613c6b82613c06565b604082019050919050565b5f6020820190508181035f830152613c8d81613c54565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613cee602383612ec8565b9150613cf982613c94565b604082019050919050565b5f6020820190508181035f830152613d1b81613ce2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613d56601683612ec8565b9150613d6182613d22565b602082019050919050565b5f6020820190508181035f830152613d8381613d4a565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854786e53697a652e000000000000000000000000000000000000000000602082015250565b5f613de4602b83612ec8565b9150613def82613d8a565b604082019050919050565b5f6020820190508181035f830152613e1181613dd8565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613e4c601383612ec8565b9150613e5782613e18565b602082019050919050565b5f6020820190508181035f830152613e7981613e40565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854786e53697a652e0000000000000000000000000000000000000000602082015250565b5f613eda602c83612ec8565b9150613ee582613e80565b604082019050919050565b5f6020820190508181035f830152613f0781613ece565b9050919050565b5f613f1882612f6c565b9150613f2383612f6c565b9250828203905081811115613f3b57613f3a613420565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613f9b602683612ec8565b9150613fa682613f41565b604082019050919050565b5f6020820190508181035f830152613fc881613f8f565b9050919050565b5f81905092915050565b50565b5f613fe75f83613fcf565b9150613ff282613fd9565b5f82019050919050565b5f61400682613fdc565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061407881612ffa565b92915050565b5f6020828403121561409357614092612f68565b5b5f6140a08482850161406a565b91505092915050565b5f819050919050565b5f6140cc6140c76140c2846140a9565b61316c565b612f6c565b9050919050565b6140dc816140b2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61411481612fe9565b82525050565b5f614125838361410b565b60208301905092915050565b5f602082019050919050565b5f614147826140e2565b61415181856140ec565b935061415c836140fc565b805f5b8381101561418c578151614173888261411a565b975061417e83614131565b92505060018101905061415f565b5085935050505092915050565b5f60a0820190506141ac5f830188613095565b6141b960208301876140d3565b81810360408301526141cb818661413d565b90506141da60608301856131e0565b6141e76080830184613095565b969550505050505056fea2646970667358221220cb3ad8bcfcc554366bbaafa415a0ef3d832272678a6ad2ca90434be9107562ca64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000e5eff9f564d32f7e05d875cd3158aa48107f7a4800000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000750554d5020495400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000450554d5000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101fc575f3560e01c8063751039fc1161010c578063c02174ca1161009f578063d257b34f1161006e578063d257b34f14610703578063dd62ed3e1461073f578063e2f456051461077b578063e4a1b95f146107a5578063f2fde38b146107cf57610203565b8063c02174ca14610671578063c816841b1461069b578063c8da6596146106c5578063c9567bf9146106ed57610203565b8063a457c2d7116100db578063a457c2d7146105a7578063a9059cbb146105e3578063a90eab8c1461061f578063bbc0c7421461064757610203565b8063751039fc146104ff5780638da5cb5b146105295780638f3fa8601461055357806395d89b411461057d57610203565b80632bc4d48b1161018f5780634a62bb651161015e5780634a62bb651461042f5780636ddd17131461045957806370a0823114610483578063715018a6146104bf578063735de9f7146104d557610203565b80632bc4d48b14610377578063313ce5671461039f57806335b5fb63146103c957806339509351146103f357610203565b80631c499ab0116101cb5780631c499ab0146102bf5780631f7ea8da146102e757806323b872dd146103115780632b5f295a1461034d57610203565b806306fdde031461020757806309494a0114610231578063095ea7b31461025957806318160ddd1461029557610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061021b6107f7565b6040516102289190612f48565b60405180910390f35b34801561023c575f80fd5b5061025760048036038101906102529190612f9f565b610886565b005b348015610264575f80fd5b5061027f600480360381019061027a9190613024565b610952565b60405161028c919061307c565b60405180910390f35b3480156102a0575f80fd5b506102a961096f565b6040516102b691906130a4565b60405180910390f35b3480156102ca575f80fd5b506102e560048036038101906102e09190612f9f565b610978565b005b3480156102f2575f80fd5b506102fb610a87565b60405161030891906130a4565b60405180910390f35b34801561031c575f80fd5b50610337600480360381019061033291906130bd565b610a8d565b604051610344919061307c565b60405180910390f35b348015610358575f80fd5b50610361610b7f565b60405161036e91906130a4565b60405180910390f35b348015610382575f80fd5b5061039d60048036038101906103989190612f9f565b610b85565b005b3480156103aa575f80fd5b506103b3610c94565b6040516103c09190613128565b60405180910390f35b3480156103d4575f80fd5b506103dd610caa565b6040516103ea91906130a4565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190613024565b610cb0565b604051610426919061307c565b60405180910390f35b34801561043a575f80fd5b50610443610d57565b604051610450919061307c565b60405180910390f35b348015610464575f80fd5b5061046d610d6a565b60405161047a919061307c565b60405180910390f35b34801561048e575f80fd5b506104a960048036038101906104a49190613141565b610d7d565b6040516104b691906130a4565b60405180910390f35b3480156104ca575f80fd5b506104d3610dc3565b005b3480156104e0575f80fd5b506104e9610e4a565b6040516104f691906131c7565b60405180910390f35b34801561050a575f80fd5b50610513610e6f565b604051610520919061307c565b60405180910390f35b348015610534575f80fd5b5061053d610f0d565b60405161054a91906131ef565b60405180910390f35b34801561055e575f80fd5b50610567610f35565b60405161057491906130a4565b60405180910390f35b348015610588575f80fd5b50610591610f3b565b60405161059e9190612f48565b60405180910390f35b3480156105b2575f80fd5b506105cd60048036038101906105c89190613024565b610fcb565b6040516105da919061307c565b60405180910390f35b3480156105ee575f80fd5b5061060960048036038101906106049190613024565b6110b1565b604051610616919061307c565b60405180910390f35b34801561062a575f80fd5b5061064560048036038101906106409190613265565b6110ce565b005b348015610652575f80fd5b5061065b611351565b604051610668919061307c565b60405180910390f35b34801561067c575f80fd5b50610685611364565b60405161069291906131ef565b60405180910390f35b3480156106a6575f80fd5b506106af611389565b6040516106bc91906131ef565b60405180910390f35b3480156106d0575f80fd5b506106eb60048036038101906106e69190612f9f565b6113ae565b005b3480156106f8575f80fd5b5061070161147a565b005b34801561070e575f80fd5b5061072960048036038101906107249190612f9f565b61152e565b604051610736919061307c565b60405180910390f35b34801561074a575f80fd5b50610765600480360381019061076091906132b5565b611682565b60405161077291906130a4565b60405180910390f35b348015610786575f80fd5b5061078f611704565b60405161079c91906130a4565b60405180910390f35b3480156107b0575f80fd5b506107b961170a565b6040516107c691906130a4565b60405180910390f35b3480156107da575f80fd5b506107f560048036038101906107f09190613141565b611710565b005b60605f805461080590613320565b80601f016020809104026020016040519081016040528092919081815260200182805461083190613320565b801561087c5780601f106108535761010080835404028352916020019161087c565b820191905f5260205f20905b81548152906001019060200180831161085f57829003601f168201915b5050505050905090565b61088e611806565b73ffffffffffffffffffffffffffffffffffffffff166108ac610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f99061339a565b60405180910390fd5b80600d819055506019600d54111561094f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094690613402565b60405180910390fd5b50565b5f61096561095e611806565b848461180d565b6001905092915050565b5f600254905090565b610980611806565b73ffffffffffffffffffffffffffffffffffffffff1661099e610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb9061339a565b60405180910390fd5b670de0b6b3a76400006103e86005610a0a61096f565b610a14919061344d565b610a1e91906134bb565b610a2891906134bb565b811015610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a619061355b565b60405180910390fd5b670de0b6b3a764000081610a7e919061344d565b600b8190555050565b600e5481565b5f610a998484846119d0565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ae0611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b56906135e9565b60405180910390fd5b610b7385610b6b611806565b85840361180d565b60019150509392505050565b60095481565b610b8d611806565b73ffffffffffffffffffffffffffffffffffffffff16610bab610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf89061339a565b60405180910390fd5b670de0b6b3a76400006103e86001610c1761096f565b610c21919061344d565b610c2b91906134bb565b610c3591906134bb565b811015610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e90613677565b60405180910390fd5b670de0b6b3a764000081610c8b919061344d565b60098190555050565b5f600860179054906101000a900460ff16905090565b600d5481565b5f610d4d610cbc611806565b848460045f610cc9611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d489190613695565b61180d565b6001905092915050565b600860169054906101000a900460ff1681565b600860159054906101000a900460ff1681565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dcb611806565b73ffffffffffffffffffffffffffffffffffffffff16610de9610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e369061339a565b60405180910390fd5b610e485f612824565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610e78611806565b73ffffffffffffffffffffffffffffffffffffffff16610e96610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee39061339a565b60405180910390fd5b5f600860166101000a81548160ff0219169083151502179055506001905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b606060018054610f4a90613320565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7690613320565b8015610fc15780601f10610f9857610100808354040283529160200191610fc1565b820191905f5260205f20905b815481529060010190602001808311610fa457829003601f168201915b5050505050905090565b5f8060045f610fd8611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108990613738565b60405180910390fd5b6110a661109d611806565b8585840361180d565b600191505092915050565b5f6110c46110bd611806565b84846119d0565b6001905092915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001611180959493929190613765565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f60405160200161120a939291906137b6565b6040516020818303038152906040528051906020012090505f828260405160200161123692919061385f565b6040516020818303038152906040528051906020012090505f6001828888886040515f81526020016040526040516112719493929190613895565b6020604051602081039080840390855afa158015611291573d5f803e3d5ffd5b5050506020604051035190506112a5610f0d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990613922565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b600860149054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113b6611806565b73ffffffffffffffffffffffffffffffffffffffff166113d4610f0d565b73ffffffffffffffffffffffffffffffffffffffff161461142a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114219061339a565b60405180910390fd5b80600c819055506019600c541115611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90613402565b60405180910390fd5b50565b611482611806565b73ffffffffffffffffffffffffffffffffffffffff166114a0610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed9061339a565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b5f611537611806565b73ffffffffffffffffffffffffffffffffffffffff16611555610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a29061339a565b60405180910390fd5b620186a060016115b961096f565b6115c3919061344d565b6115cd91906134bb565b82101561160f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611606906139b0565b60405180910390fd5b6103e8600561161c61096f565b611626919061344d565b61163091906134bb565b821115611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166990613a3e565b60405180910390fd5b81600a8190555060019050919050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b600c5481565b611718611806565b73ffffffffffffffffffffffffffffffffffffffff16611736610f0d565b73ffffffffffffffffffffffffffffffffffffffff161461178c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117839061339a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613acc565b60405180910390fd5b61180381612824565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361187b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187290613b5a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090613be8565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119c391906130a4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613c76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390613d04565b60405180910390fd5b5f8103611ac357611abe83835f6128e7565b61281f565b600860169054906101000a900460ff16156122b557611ae0610f0d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b4757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b865750611b56610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bbe57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c30575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c485750600f5f9054906101000a900460ff16155b156122b457600860149054906101000a900460ff16611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9390613d6c565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e4f5750611cfb610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611d6257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d9c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611df5575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e4e575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ef657600954811115611e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9090613dfa565b60405180910390fd5b600b54611ea583610d7d565b82611eb09190613695565b1115611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee890613e62565b60405180910390fd5b6122b3565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156120a95750611f55610f0d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fbc57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff6575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561204f575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120a8575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120f8576009548111156120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90613ef0565b60405180910390fd5b6122b2565b612100610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561216757503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121a1575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121fa575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612253575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156122b157600b5461226483610d7d565b8261226f9190613695565b11156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613e62565b60405180910390fd5b5b5b5b5b5b5f6122bf30610d7d565b90505f600a5482101590508080156122e35750600860159054906101000a900460ff165b80156122fb5750600f5f9054906101000a900460ff16155b8015612354575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123935750612363610f0d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123cb57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612405575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124445750612414610f0d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561247c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156124b6575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124f7576001600f5f6101000a81548160ff0219169083151502179055506124dd612b5f565b5f600f5f6101000a81548160ff0219169083151502179055505b5f600f5f9054906101000a900460ff16159050612512610f0d565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061257657503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b806125ae575061dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b806125eb57506125bc610f0d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8061262157503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80612659575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15612662575f90505b5f811561280f5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156126c657505f600d54115b1561272c576126f360646126e5600d5488612c5490919063ffffffff16565b612c6990919063ffffffff16565b9050600d54600d5482612706919061344d565b61271091906134bb565b600e5f8282546127209190613695565b925050819055506127ec565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561278957505f600c54115b156127eb576127b660646127a8600c5488612c5490919063ffffffff16565b612c6990919063ffffffff16565b9050600c54600c54826127c9919061344d565b6127d391906134bb565b600e5f8282546127e39190613695565b925050819055505b5b5f811115612800576127ff8730836128e7565b5b808561280c9190613f0e565b94505b61281a8787876128e7565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90613c76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ba90613d04565b60405180910390fd5b6129ce838383612c7e565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4990613fb1565b60405180910390fd5b81810360035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612ae29190613695565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b4691906130a4565b60405180910390a3612b59848484612c83565b50505050565b5f612b6930610d7d565b90505f600e5490505f80831480612b7f57505f82145b15612b8c57505050612c52565b6014600a54612b9b919061344d565b831115612bb4576014600a54612bb1919061344d565b92505b612bbd83612c88565b5f600e8190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612c0990613ffc565b5f6040518083038185875af1925050503d805f8114612c43576040519150601f19603f3d011682016040523d82523d5f602084013e612c48565b606091505b5050809150505050505b565b5f8183612c61919061344d565b905092915050565b5f8183612c7691906134bb565b905092915050565b505050565b505050565b5f600267ffffffffffffffff811115612ca457612ca3614010565b5b604051908082528060200260200182016040528015612cd25781602001602082028036833780820191505090505b50905030815f81518110612ce957612ce861403d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612db1919061407e565b81600181518110612dc557612dc461403d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e2b3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461180d565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612e8d959493929190614199565b5f604051808303815f87803b158015612ea4575f80fd5b505af1158015612eb6573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612ef5578082015181840152602081019050612eda565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612f1a82612ebe565b612f248185612ec8565b9350612f34818560208601612ed8565b612f3d81612f00565b840191505092915050565b5f6020820190508181035f830152612f608184612f10565b905092915050565b5f80fd5b5f819050919050565b612f7e81612f6c565b8114612f88575f80fd5b50565b5f81359050612f9981612f75565b92915050565b5f60208284031215612fb457612fb3612f68565b5b5f612fc184828501612f8b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ff382612fca565b9050919050565b61300381612fe9565b811461300d575f80fd5b50565b5f8135905061301e81612ffa565b92915050565b5f806040838503121561303a57613039612f68565b5b5f61304785828601613010565b925050602061305885828601612f8b565b9150509250929050565b5f8115159050919050565b61307681613062565b82525050565b5f60208201905061308f5f83018461306d565b92915050565b61309e81612f6c565b82525050565b5f6020820190506130b75f830184613095565b92915050565b5f805f606084860312156130d4576130d3612f68565b5b5f6130e186828701613010565b93505060206130f286828701613010565b925050604061310386828701612f8b565b9150509250925092565b5f60ff82169050919050565b6131228161310d565b82525050565b5f60208201905061313b5f830184613119565b92915050565b5f6020828403121561315657613155612f68565b5b5f61316384828501613010565b91505092915050565b5f819050919050565b5f61318f61318a61318584612fca565b61316c565b612fca565b9050919050565b5f6131a082613175565b9050919050565b5f6131b182613196565b9050919050565b6131c1816131a7565b82525050565b5f6020820190506131da5f8301846131b8565b92915050565b6131e981612fe9565b82525050565b5f6020820190506132025f8301846131e0565b92915050565b6132118161310d565b811461321b575f80fd5b50565b5f8135905061322c81613208565b92915050565b5f819050919050565b61324481613232565b811461324e575f80fd5b50565b5f8135905061325f8161323b565b92915050565b5f805f6060848603121561327c5761327b612f68565b5b5f6132898682870161321e565b935050602061329a86828701613251565b92505060406132ab86828701613251565b9150509250925092565b5f80604083850312156132cb576132ca612f68565b5b5f6132d885828601613010565b92505060206132e985828601613010565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061333757607f821691505b60208210810361334a576133496132f3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613384602083612ec8565b915061338f82613350565b602082019050919050565b5f6020820190508181035f8301526133b181613378565b9050919050565b7f4d757374206b656570206665657320617420323525206f72206c6573730000005f82015250565b5f6133ec601d83612ec8565b91506133f7826133b8565b602082019050919050565b5f6020820190508181035f830152613419816133e0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61345782612f6c565b915061346283612f6c565b925082820261347081612f6c565b9150828204841483151761348757613486613420565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134c582612f6c565b91506134d083612f6c565b9250826134e0576134df61348e565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f77657220745f8201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b5f613545602883612ec8565b9150613550826134eb565b604082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6135d3602883612ec8565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f43616e6e6f7420736574206d617854786e53697a65206c6f776572207468616e5f8201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b5f613661602583612ec8565b915061366c82613607565b604082019050919050565b5f6020820190508181035f83015261368e81613655565b9050919050565b5f61369f82612f6c565b91506136aa83612f6c565b92508282019050808211156136c2576136c1613420565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613722602583612ec8565b915061372d826136c8565b604082019050919050565b5f6020820190508181035f83015261374f81613716565b9050919050565b61375f81613232565b82525050565b5f60a0820190506137785f830188613756565b6137856020830187613756565b6137926040830186613756565b61379f6060830185613095565b6137ac60808301846131e0565b9695505050505050565b5f6060820190506137c95f830186613756565b6137d66020830185613756565b6137e36040830184613095565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6138296002836137eb565b9150613834826137f5565b600282019050919050565b5f819050919050565b61385961385482613232565b61383f565b82525050565b5f6138698261381d565b91506138758285613848565b6020820191506138858284613848565b6020820191508190509392505050565b5f6080820190506138a85f830187613756565b6138b56020830186613119565b6138c26040830185613756565b6138cf6060830184613756565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f61390c601183612ec8565b9150613917826138d8565b602082019050919050565b5f6020820190508181035f83015261393981613900565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61399a603583612ec8565b91506139a582613940565b604082019050919050565b5f6020820190508181035f8301526139c78161398e565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f613a28603483612ec8565b9150613a33826139ce565b604082019050919050565b5f6020820190508181035f830152613a5581613a1c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613ab6602683612ec8565b9150613ac182613a5c565b604082019050919050565b5f6020820190508181035f830152613ae381613aaa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613b44602483612ec8565b9150613b4f82613aea565b604082019050919050565b5f6020820190508181035f830152613b7181613b38565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613bd2602283612ec8565b9150613bdd82613b78565b604082019050919050565b5f6020820190508181035f830152613bff81613bc6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613c60602583612ec8565b9150613c6b82613c06565b604082019050919050565b5f6020820190508181035f830152613c8d81613c54565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613cee602383612ec8565b9150613cf982613c94565b604082019050919050565b5f6020820190508181035f830152613d1b81613ce2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613d56601683612ec8565b9150613d6182613d22565b602082019050919050565b5f6020820190508181035f830152613d8381613d4a565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854786e53697a652e000000000000000000000000000000000000000000602082015250565b5f613de4602b83612ec8565b9150613def82613d8a565b604082019050919050565b5f6020820190508181035f830152613e1181613dd8565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613e4c601383612ec8565b9150613e5782613e18565b602082019050919050565b5f6020820190508181035f830152613e7981613e40565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854786e53697a652e0000000000000000000000000000000000000000602082015250565b5f613eda602c83612ec8565b9150613ee582613e80565b604082019050919050565b5f6020820190508181035f830152613f0781613ece565b9050919050565b5f613f1882612f6c565b9150613f2383612f6c565b9250828203905081811115613f3b57613f3a613420565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613f9b602683612ec8565b9150613fa682613f41565b604082019050919050565b5f6020820190508181035f830152613fc881613f8f565b9050919050565b5f81905092915050565b50565b5f613fe75f83613fcf565b9150613ff282613fd9565b5f82019050919050565b5f61400682613fdc565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061407881612ffa565b92915050565b5f6020828403121561409357614092612f68565b5b5f6140a08482850161406a565b91505092915050565b5f819050919050565b5f6140cc6140c76140c2846140a9565b61316c565b612f6c565b9050919050565b6140dc816140b2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61411481612fe9565b82525050565b5f614125838361410b565b60208301905092915050565b5f602082019050919050565b5f614147826140e2565b61415181856140ec565b935061415c836140fc565b805f5b8381101561418c578151614173888261411a565b975061417e83614131565b92505060018101905061415f565b5085935050505092915050565b5f60a0820190506141ac5f830188613095565b6141b960208301876140d3565b81810360408301526141cb818661413d565b90506141da60608301856131e0565b6141e76080830184613095565b969550505050505056fea2646970667358221220cb3ad8bcfcc554366bbaafa415a0ef3d832272678a6ad2ca90434be9107562ca64736f6c63430008170033

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

00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000e5eff9f564d32f7e05d875cd3158aa48107f7a4800000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000750554d5020495400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000450554d5000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): PUMP IT
Arg [1] : symbol_ (string): PUMP
Arg [2] : decimals_ (uint8): 9
Arg [3] : totalNativeSupply_ (uint256): 100000000000000
Arg [4] : marketingWallet_ (address): 0xe5eff9F564D32F7e05d875cD3158aa48107f7A48
Arg [5] : buyFee_ (uint256): 5
Arg [6] : sellFee_ (uint256): 5

-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [3] : 00000000000000000000000000000000000000000000000000005af3107a4000
Arg [4] : 000000000000000000000000e5eff9f564d32f7e05d875cd3158aa48107f7a48
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [8] : 50554d5020495400000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [10] : 50554d5000000000000000000000000000000000000000000000000000000000


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.