ETH Price: $2,653.04 (+1.83%)

Token

A Hunters Bless (FLOCK)
 

Overview

Max Total Supply

100,000,000 FLOCK

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,551,748.317910964184370042 FLOCK

Value
$0.00
0x89E364598BDa1f96B6618EBE5D9879F070066358
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
AHuntersBless

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.8.13;

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

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
}

interface IUniswapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapRouter01 {
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
    external
    returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getamountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getamountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getamountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getamountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapRouter02 is IUniswapRouter01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract Ownable {
    address private _owner;

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

    
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

library Address {
    
    function isContract(address account) internal view returns (bool) {
            uint256 size;
           assembly { size := extcodesize(account) }
        return size > 0;
    }

    
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

           (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

           (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

           (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

           (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
                   if (returndata.length > 0) {
                                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

library EnumerableSet {

    struct Set {
           bytes32[] _values;

              mapping (bytes32 => uint256) _indexes;
    }

    
    function _add(Set storage set, bytes32 value) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
                          set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }

    
    function _remove(Set storage set, bytes32 value) private returns (bool) {
           uint256 valueIndex = set._indexes[value];

        if (valueIndex != 0) { 
                            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;

                     bytes32 lastvalue = set._values[lastIndex];

                   set._values[toDeleteIndex] = lastvalue;
                   set._indexes[lastvalue] = valueIndex; 

                   set._values.pop();

                   delete set._indexes[value];

            return true;
        } else {
            return false;
        }
    }

    
    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }

    
    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }

    
    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        require(set._values.length > index, "EnumerableSet: index out of bounds");
        return set._values[index];
    }

    

    struct Bytes32Set {
        Set _inner;
    }

    
    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _add(set._inner, value);
    }

    
    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _remove(set._inner, value);
    }

    
    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {
        return _contains(set._inner, value);
    }

    
    function length(Bytes32Set storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    
    function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {
        return _at(set._inner, index);
    }

    

    struct AddressSet {
        Set _inner;
    }

    
    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(uint160(value))));
    }

    
    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(uint160(value))));
    }

    
    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(uint160(value))));
    }

    
    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    
    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint160(uint256(_at(set._inner, index))));
    }

    

    struct UintSet {
        Set _inner;
    }

    
    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(value));
    }

    
    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(value));
    }

    
    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(value));
    }

    
    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    
    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return uint256(_at(set._inner, index));
    }
}

contract AHuntersBless is IERC20, Ownable {
    using Address for address;
    using EnumerableSet for EnumerableSet.AddressSet;

    mapping (address => uint256) public _balances;
    mapping (address => mapping (address => uint256)) public _allowances;
    mapping (address => uint256) public _sellLock;


    EnumerableSet.AddressSet private _excluded;
    EnumerableSet.AddressSet private _excludedFromSellLock;

    mapping (address => bool) public _blacklist;
    bool isBlacklist = true;
    
    string public constant _name = "A Hunters Bless";
    string public constant _symbol = "FLOCK";
    uint8 public constant _decimals = 18;
    uint256 public constant InitialSupply= 1e8 * 10**_decimals;

    uint256 swapLimit = 1e4 * 10**_decimals; 
    bool isSwapPegged = true;

    uint16 public  BuyLimitDivider = 50; // 2%
    uint8 public   BalanceLimitDivider = 50; // 2%
    uint16 public  SellLimitDivider = 125; // 0.75%
    uint16 public  MaxSellLockTime = 10 seconds;
    
    mapping (address => bool) isAuth;
    address public constant UniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public constant Dead = 0x000000000000000000000000000000000000dEaD;
    
    uint256 public _circulatingSupply =InitialSupply;
    uint256 public  balanceLimit = _circulatingSupply;
    uint256 public  sellLimit = _circulatingSupply;
    uint256 public  buyLimit = _circulatingSupply;

    
    uint8 public _buyTax;
    uint8 public _sellTax;
    uint8 public _transferTax;
    uint8 public _liquidityTax;
    uint8 public _buyburnTax;

    bool isTokenSwapManual = false;
    bool public bot_killer = true;
    bool public gasSaver = true;

    address public claimAddress;
    address public target_token = 0xf3b9569F82B18aEf890De263B84189bd33EBe452;
    address public community_token;
    address payable private unclog;
    bool public community_enabled;
    address public _UniswapPairAddress;
    IUniswapRouter02 public  _UniswapRouter;

    modifier onlyAuth() {
        require(_isAuth(msg.sender), "Caller not in Auth");
        _;
    }
    function _isAuth(address addr) private view returns (bool){
        return addr==owner()||isAuth[addr];
    }

    constructor (address unclg) {
        uint256 deployerBalance=_circulatingSupply*95/100;
        _balances[msg.sender] = deployerBalance;
        emit Transfer(address(0), msg.sender, deployerBalance);
        uint256 injectBalance=_circulatingSupply-deployerBalance;
        _balances[address(this)]=injectBalance;
        emit Transfer(address(0), address(this),injectBalance);
        _UniswapRouter = IUniswapRouter02(UniswapRouter);

        _UniswapPairAddress = IUniswapFactory(_UniswapRouter.factory()).createPair(address(this), _UniswapRouter.WETH());

        balanceLimit=InitialSupply/BalanceLimitDivider;
        sellLimit=InitialSupply/SellLimitDivider;
        buyLimit=InitialSupply/BuyLimitDivider;
        
        sellLockTime=2 seconds;

        _buyTax=5;
        _sellTax=5;
        _transferTax=5;
        _liquidityTax=70;
        _buyburnTax=30;
        unclog = payable(unclg);
        _excluded.add(msg.sender);
        _excluded.add(unclog);
        _excludedFromSellLock.add(UniswapRouter);
        _excludedFromSellLock.add(_UniswapPairAddress);
        _excludedFromSellLock.add(address(this));
        _excludedFromSellLock.add(unclog);
    } 

    
    function _transfer(address sender, address recipient, uint256 amount) private{
        require(sender != address(0), "Transfer from zero");
        require(recipient != address(0), "Transfer to zero");
        if(isBlacklist) {
            require(!_blacklist[sender] && !_blacklist[recipient], "Blacklisted!");
        }

        bool isClaim = sender==claimAddress;

        bool isExcluded = (_excluded.contains(sender) || _excluded.contains(recipient) || isAuth[sender] || isAuth[recipient]);

        bool isContractTransfer=(sender==address(this) || recipient==address(this));

        bool isLiquidityTransfer = ((sender == _UniswapPairAddress && recipient == UniswapRouter)
        || (recipient == _UniswapPairAddress && sender == UniswapRouter));


        if(isContractTransfer || isLiquidityTransfer || isExcluded || isClaim){
            _feelessTransfer(sender, recipient, amount);
        }
        else{
            if (!tradingEnabled) {
                if (sender != owner() && recipient != owner()) {
                    if (bot_killer) {
                        emit Transfer(sender,recipient,0);
                        return;
                    }
                    else {
                        require(tradingEnabled,"trading not yet enabled");
                    }
                }
            }
                
            bool isBuy=sender==_UniswapPairAddress|| sender == UniswapRouter;
            bool isSell=recipient==_UniswapPairAddress|| recipient == UniswapRouter;
            _taxedTransfer(sender,recipient,amount,isBuy,isSell);

            if(gasSaver) {
                delete isBuy;
                delete isSell;
                delete isClaim;
                delete isContractTransfer;
                delete isExcluded;
                delete isLiquidityTransfer;
            }

        }
    }
    function _taxedTransfer(address sender, address recipient, uint256 amount,bool isBuy,bool isSell) private{
        uint256 recipientBalance = _balances[recipient];
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");


        swapLimit = sellLimit/2;

        uint8 tax;
        if(isSell){
            if(!_excludedFromSellLock.contains(sender)){
                           require(_sellLock[sender]<=block.timestamp||sellLockDisabled,"Seller in sellLock");
                           _sellLock[sender]=block.timestamp+sellLockTime;
            }
            
            require(amount<=sellLimit,"Dump protection");
            tax=_sellTax;

        } else if(isBuy){
                   require(recipientBalance+amount<=balanceLimit,"whale protection");
            require(amount<=buyLimit, "whale protection");
            tax=_buyTax;

        } else {
                   require(recipientBalance+amount<=balanceLimit,"whale protection");
                          if(!_excludedFromSellLock.contains(sender))
                require(_sellLock[sender]<=block.timestamp||sellLockDisabled,"Sender in Lock");
            tax=_transferTax;

        }
                 if((sender!=_UniswapPairAddress)&&(!manualConversion)&&(!_isSwappingContractModifier))
            _swapContractToken(amount);
           uint256 contractToken=_calculateFee(amount, tax, _liquidityTax+_buyburnTax);
           uint256 taxedAmount=amount-(contractToken);

           _removeToken(sender,amount);

           _balances[address(this)] += contractToken;

           _addToken(recipient, taxedAmount);

        emit Transfer(sender,recipient,taxedAmount);



    }
    
    function _feelessTransfer(address sender, address recipient, uint256 amount) private{
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
           _removeToken(sender,amount);
           _addToken(recipient, amount);

        emit Transfer(sender,recipient,amount);

    }
    
    function _calculateFee(uint256 amount, uint8 tax, uint8 taxPercent) private pure returns (uint256) {
        return (amount*tax*taxPercent) / 10000;
    }
    function _addToken(address addr, uint256 amount) private {
           uint256 newAmount=_balances[addr]+amount;
        _balances[addr]=newAmount;

    }


    
    function _removeToken(address addr, uint256 amount) private {
           uint256 newAmount=_balances[addr]-amount;
        _balances[addr]=newAmount;
    }

    
    bool private _isTokenSwaping;
    
    uint256 public totalTokenSwapGenerated;
    
    uint256 public totalPayouts;

    
    uint8 public buyburnShare=100;
    
    uint256 public buyburnBalance;

    
    function _distributeFeesETH(uint256 ETHamount) private {
        uint256 buyburnSplit = (ETHamount * buyburnShare)/100;
        buyburnBalance+=buyburnSplit;
        if(buyburnBalance > 1000000000000000000) {
            swapForChoosenToken();
        }
    }

    function swapForChoosenToken() private {
        uint toswap;
        toswap = buyburnBalance;
        uint toswap_token_1;
        uint toswap_token_2;
        if(community_enabled) {
            toswap_token_1 = toswap / 2;
            toswap_token_2 = toswap - toswap_token_1;
        } else {
            toswap_token_1 = toswap;
        }

        address[] memory path = new address[](2);
        path[0] = _UniswapRouter.WETH();
        path[1] = target_token;

        _UniswapRouter.swapExactETHForTokensSupportingFeeOnTransferTokens {value: toswap_token_1}(
            0,
            path,
            Dead,
            block.timestamp
        );

        buyburnBalance -= toswap_token_1;

        if(community_enabled) {

            address[] memory path_2 = new address[](2);
        
            path[0] = _UniswapRouter.WETH();
            path[1] = community_token;

            _UniswapRouter.swapExactETHForTokensSupportingFeeOnTransferTokens {value: toswap_token_2}(
                0,
                path_2,
                Dead,
                block.timestamp
            );
            buyburnBalance -= toswap_token_2;
        }
    }
    
    uint256 public totalLPETH;
    
    bool private _isSwappingContractModifier;
    modifier lockTheSwap {
        _isSwappingContractModifier = true;
        _;
        _isSwappingContractModifier = false;
    }

    function _swapContractToken(uint256 totalMax) private lockTheSwap{
        uint256 contractBalance=_balances[address(this)];
        uint16 totalTax=_liquidityTax;
        uint256 tokenToSwap=swapLimit;
        if(tokenToSwap > totalMax) {
            if(isSwapPegged) {
                tokenToSwap = totalMax;
            }
        }
           if(contractBalance<tokenToSwap||totalTax==0){
            return;
        }
        uint256 tokenForLiquidity=(tokenToSwap*_liquidityTax)/totalTax;
        uint256 tokenForbuyburn= (tokenToSwap*_buyburnTax)/totalTax;

        uint256 liqToken=tokenForLiquidity/2;
        uint256 liqETHToken=tokenForLiquidity-liqToken;

           uint256 swapToken=liqETHToken+tokenForbuyburn;
           uint256 initialETHBalance = address(this).balance;
        _swapTokenForETH(swapToken);
        uint256 newETH=(address(this).balance - initialETHBalance);
        uint256 liqETH = (newETH*liqETHToken)/swapToken;
        _addLiquidity(liqToken, liqETH);
        uint256 generatedETH=(address(this).balance - initialETHBalance);
        _distributeFeesETH(generatedETH);
    }
    
    function _swapTokenForETH(uint256 amount) private {
        _approve(address(this), address(_UniswapRouter), amount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _UniswapRouter.WETH();

        _UniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    
    function _addLiquidity(uint256 tokenamount, uint256 ETHamount) private {
        totalLPETH+=ETHamount;
        _approve(address(this), address(_UniswapRouter), tokenamount);
        _UniswapRouter.addLiquidityETH{value: ETHamount}(
            address(this),
            tokenamount,
            0,
            0,
            address(this),
            block.timestamp
        );
    }
    
    function sendETHToFee(uint256 amount) private {
        unclog.transfer(amount);
    }

    /// @notice Utilities

    function UTILITY_destroy(uint256 amount) public onlyAuth {
        require(_balances[address(this)] >= amount);
        _balances[address(this)] -= amount;
        _circulatingSupply -= amount;
        emit Transfer(address(this), Dead, amount);
    }    

    function UTILITY_getLimits() public view returns(uint256 balance, uint256 sell){
        return(balanceLimit/10**_decimals, sellLimit/10**_decimals);
    }

    function UTILITY_getTaxes() public view returns(uint256 buyburnTax,uint256 liquidityTax, uint256 buyTax, uint256 sellTax, uint256 transferTax){
        return (_buyburnTax,_liquidityTax,_buyTax,_sellTax,_transferTax);
    }
    
    function UTILITY_getAddressSellLockTimeInSeconds(address AddressToCheck) public view returns (uint256){
        uint256 lockTime=_sellLock[AddressToCheck];
        if(lockTime<=block.timestamp)
        {
            return 0;
        }
        return lockTime-block.timestamp;
    }
    function UTILITY_getSellLockTimeInSeconds() public view returns(uint256){
        return sellLockTime;
    }

    bool public sellLockDisabled;
    uint256 public sellLockTime;
    bool public manualConversion;


    function UTILITY_SetPeggedSwap(bool isPegged) public onlyAuth {
        isSwapPegged = isPegged;
    }

    function UTILITY_SetMaxSwap(uint256 max) public onlyAuth {
        swapLimit = max;
    }

    function UTILITY_SetMaxLockTime(uint16 max) public onlyAuth {
     MaxSellLockTime = max;
    }

    function UTILITY_set_Target_one(address addy) public onlyAuth {
        target_token = addy;
    }

    function UTILITY_set_Target_two(address addy) public onlyAuth {
        community_token = addy;
    }

    function UTILITY_enable_target_two(bool booly) public onlyAuth {
        community_enabled = booly;
    }
    /// @notice ACL Functions

    function ACL_SetClaimer(address addy) public onlyAuth {
        claimAddress = addy;
    }

    function ACL_BlackListAddress(address addy, bool booly) public onlyAuth {
        _blacklist[addy] = booly;
    }

    function ACL_SetAuth(address addy, bool booly) public onlyAuth {
        isAuth[addy] = booly;
    }

    function ACL_ExcludeAccountFromFees(address account) public onlyAuth {
        _excluded.add(account);
    }
    function ACL_IncludeAccountToFees(address account) public onlyAuth {
        _excluded.remove(account);
    }
    
    function ACL_ExcludeAccountFromSellLock(address account) public onlyAuth {
        _excludedFromSellLock.add(account);
    }
    function ACL_IncludeAccountToSellLock(address account) public onlyAuth {
        _excludedFromSellLock.remove(account);
    }

    function Auth_WithdrawExcess() public onlyAuth{
        uint256 amount=(address(this).balance-buyburnBalance-10000000);
        address sender = msg.sender;
        (bool sent,) =sender.call{value: (amount)}("");
        require(sent,"withdraw failed");
    }

    function Auth_WithdrawbuyburnETH() public onlyAuth{
        uint256 amount=buyburnBalance;
        buyburnBalance=0;
        address sender = msg.sender;
        (bool sent,) =sender.call{value: (amount)}("");
        require(sent,"withdraw failed");
    }

    function UTILITY_ActivateGasSaver(bool booly) public onlyAuth {
        gasSaver = booly;
    }
    
    function UTILITY_SwitchManualETHConversion(bool manual) public onlyAuth{
        manualConversion=manual;
    }
    
    function UTILITY_DisableSellLock(bool disabled) public onlyAuth{
        sellLockDisabled=disabled;
    }
    
    function UTILIY_SetSellLockTime(uint256 sellLockSeconds)public onlyAuth{
        sellLockTime=sellLockSeconds;
    }
    
    function UTILITY_SetTaxes(uint8 buyburnTaxes, uint8 liquidityTaxes, uint8 buyTax, uint8 sellTax, uint8 transferTax) public onlyAuth{
        uint8 totalTax=buyburnTaxes +liquidityTaxes;
        require(totalTax==100, "burn+liq needs to equal 100%");
        _buyburnTax = buyburnTaxes;
        _liquidityTax=liquidityTaxes;

        _buyTax=buyTax;
        _sellTax=sellTax;
        _transferTax=transferTax;
    }
    
    function UTILITY_ChangebuyburnShare(uint8 newShare) public onlyAuth{
        buyburnShare=newShare;
    }

    function UTILITY_ManualGenerateTokenSwapBalance(uint256 _qty) public onlyAuth{
        _swapContractToken(_qty * 10**9);
    }
    
    function UTILITY_UpdateLimits(uint256 newBalanceLimit, uint256 newSellLimit) public onlyAuth{
        newBalanceLimit=newBalanceLimit*10**_decimals;
        newSellLimit=newSellLimit*10**_decimals;
        balanceLimit = newBalanceLimit;
        sellLimit = newSellLimit;
    }

   function UTILITY_manualBuyBack() public onlyAuth {
        swapForChoosenToken();
    }
    
    bool public tradingEnabled;
    address private _liquidityTokenAddress;

    
    function SETTINGS_EnableTrading(bool booly) public onlyAuth{
        tradingEnabled = booly;
    }
    
    function SETTINGS_LiquidityTokenAddress(address liquidityTokenAddress) public onlyAuth{
        _liquidityTokenAddress=liquidityTokenAddress;
    }

    function UTILITY_RescueTokens(address tknAddress) public onlyAuth {
        IERC20 token = IERC20(tknAddress);
        uint256 ourBalance = token.balanceOf(address(this));
        require(ourBalance>0, "No tokens in our balance");
        token.transfer(msg.sender, ourBalance);
    }

    function UTILITY_setBlacklistEnabled(bool isBlacklistEnabled) public onlyAuth {
        isBlacklist = isBlacklistEnabled;
    }

    function UTILITY_setContractTokenSwapManual(bool manual) public onlyAuth {
        isTokenSwapManual = manual;
    }

    function UTILITY_setBlacklistedAddress(address toBlacklist) public onlyAuth {
        _blacklist[toBlacklist] = true;
    }

    function UTILITY_removeBlacklistedAddress(address toRemove) public onlyAuth {
        _blacklist[toRemove] = false;
    }


    function UTILITY_AvoidLocks() public onlyAuth{
        (bool sent,) =msg.sender.call{value: (address(this).balance)}("");
        require(sent);
    }

    function manualswap() external {
        require(msg.sender == unclog);
        uint256 contractBalance = balanceOf(address(this));
        _swapTokenForETH(contractBalance);
    }
    
    function manualsend() external {
        require(msg.sender == unclog);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    receive() external payable {}
    fallback() external payable {}
    

    function getOwner() external view override returns (address) {
        return owner();
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function _approve(address _owner, address spender, uint256 amount) private {
        require(_owner != address(0), "Approve from zero");
        require(spender != address(0), "Approve to zero");

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer > allowance");

        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "<0 allowance");

        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"unclg","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"ACL_BlackListAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ACL_ExcludeAccountFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ACL_ExcludeAccountFromSellLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ACL_IncludeAccountToFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ACL_IncludeAccountToSellLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"ACL_SetAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"ACL_SetClaimer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Auth_WithdrawExcess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Auth_WithdrawbuyburnETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"BalanceLimitDivider","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyLimitDivider","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxSellLockTime","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"SETTINGS_EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityTokenAddress","type":"address"}],"name":"SETTINGS_LiquidityTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SellLimitDivider","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"UTILITY_ActivateGasSaver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UTILITY_AvoidLocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newShare","type":"uint8"}],"name":"UTILITY_ChangebuyburnShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"disabled","type":"bool"}],"name":"UTILITY_DisableSellLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_qty","type":"uint256"}],"name":"UTILITY_ManualGenerateTokenSwapBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tknAddress","type":"address"}],"name":"UTILITY_RescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"max","type":"uint16"}],"name":"UTILITY_SetMaxLockTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"UTILITY_SetMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isPegged","type":"bool"}],"name":"UTILITY_SetPeggedSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyburnTaxes","type":"uint8"},{"internalType":"uint8","name":"liquidityTaxes","type":"uint8"},{"internalType":"uint8","name":"buyTax","type":"uint8"},{"internalType":"uint8","name":"sellTax","type":"uint8"},{"internalType":"uint8","name":"transferTax","type":"uint8"}],"name":"UTILITY_SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"UTILITY_SwitchManualETHConversion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBalanceLimit","type":"uint256"},{"internalType":"uint256","name":"newSellLimit","type":"uint256"}],"name":"UTILITY_UpdateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UTILITY_destroy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"UTILITY_enable_target_two","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"AddressToCheck","type":"address"}],"name":"UTILITY_getAddressSellLockTimeInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UTILITY_getLimits","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UTILITY_getSellLockTimeInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UTILITY_getTaxes","outputs":[{"internalType":"uint256","name":"buyburnTax","type":"uint256"},{"internalType":"uint256","name":"liquidityTax","type":"uint256"},{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"},{"internalType":"uint256","name":"transferTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UTILITY_manualBuyBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toRemove","type":"address"}],"name":"UTILITY_removeBlacklistedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isBlacklistEnabled","type":"bool"}],"name":"UTILITY_setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toBlacklist","type":"address"}],"name":"UTILITY_setBlacklistedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"UTILITY_setContractTokenSwapManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"UTILITY_set_Target_one","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"UTILITY_set_Target_two","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellLockSeconds","type":"uint256"}],"name":"UTILIY_SetSellLockTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UniswapRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_UniswapPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_UniswapRouter","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyburnTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_sellLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"balanceLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bot_killer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyburnBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyburnShare","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"community_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"community_token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gasSaver","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"manualConversion","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLockDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"target_token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLPETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalPayouts","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":"totalTokenSwapGenerated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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"},{"stateMutability":"payable","type":"receive"}]

60806040526009805460ff191660011790556200001f6012600a620006e2565b6200002d90612710620006f3565b600a908155600b80546001600160401b031916660a007d320032011790556200005990601290620006e2565b62000069906305f5e100620006f3565b600d819055600e819055600f8190556010556011805467010100000000000062ffffff60281b19909116179055601280546001600160a01b03191673f3b9569f82b18aef890de263b84189bd33ebe4521790556019805460ff19166064179055348015620000d657600080fd5b506040516200415438038062004154833981016040819052620000f99162000715565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060006064600d54605f6200014f9190620006f3565b6200015b919062000747565b336000818152600160205260408082208490555192935090916000805160206200413483398151915290620001939085815260200190565b60405180910390a3600081600d54620001ad91906200076a565b306000818152600160205260408082208490555192935090916000805160206200413483398151915290620001e59085815260200190565b60405180910390a3601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000252573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000278919062000715565b6001600160a01b031663c9c6539630601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000301919062000715565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200034f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000375919062000715565b601580546001600160a01b0319166001600160a01b0392909216919091179055600b546301000000900460ff16620003b06012600a620006e2565b620003c0906305f5e100620006f3565b620003cc919062000747565b600e55600b54640100000000900461ffff16620003ec6012600a620006e2565b620003fc906305f5e100620006f3565b62000408919062000747565b600f55600b54610100900461ffff16620004256012600a620006e2565b62000435906305f5e100620006f3565b62000441919062000747565b6010556002601d556011805464ffffffffff1916641e46050505179055601480546001600160a01b0319166001600160a01b038516179055620004926004336200055d602090811b620020ae17901c565b50601454620004b9906004906001600160a01b03166200055d602090811b620020ae17901c565b50620004e9737a250d5630b4cf539739df2c5dacb4c659f2488d60066200055d60201b620020ae1790919060201c565b5060155462000510906006906001600160a01b03166200055d602090811b620020ae17901c565b506200052c3060066200055d60201b620020ae1790919060201c565b5060145462000553906006906001600160a01b03166200055d602090811b620020ae17901c565b5050505062000784565b600062000574836001600160a01b0384166200057d565b90505b92915050565b6000818152600183016020526040812054620005c65750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000577565b50600062000577565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006265781600019048211156200060a576200060a620005cf565b808516156200061857918102915b93841c9390800290620005ea565b509250929050565b6000826200063f5750600162000577565b816200064e5750600062000577565b8160018114620006675760028114620006725762000692565b600191505062000577565b60ff841115620006865762000686620005cf565b50506001821b62000577565b5060208310610133831016604e8410600b8410161715620006b7575081810a62000577565b620006c38383620005e5565b8060001904821115620006da57620006da620005cf565b029392505050565b60006200057460ff8416836200062e565b6000816000190483118215151615620007105762000710620005cf565b500290565b6000602082840312156200072857600080fd5b81516001600160a01b03811681146200074057600080fd5b9392505050565b6000826200076557634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156200077f576200077f620005cf565b500390565b6139a080620007946000396000f3fe6080604052600436106104e15760003560e01c80637a4325f91161027f578063b19a081911610159578063d65af4f2116100c6578063f2e0fcbb11610082578063f2e0fcbb14611060578063f2fde38b14611080578063f51f7496146110a0578063f88b0e46146110c0578063f918eb53146110d6578063fb272987146110f657005b8063d65af4f214610f6f578063dd62ed3e14610f90578063e134efbb14610fd6578063e1d21a5b14610ff6578063e9addd9b14611016578063ead3caf41461104057005b8063c7639d8011610115578063c7639d8014610e8d578063ca9ec19914610eb5578063d05f132414610ed4578063d28d885214610ef4578063d2aaceda14610f2f578063d34a9f3c14610f4f57005b8063b19a081914610dd8578063b41ea98d14610df8578063b792161714610e18578063b89bfd6514610e38578063b9f4207d14610e58578063c3c8cd8014610e7857005b806395d89b41116101f7578063a568016f116101b3578063a568016f14610d06578063a9059cbb14610d26578063a9aab6b914610d46578063ab0b364c14610d66578063ad463f3d14610d87578063b09f126614610da757005b806395d89b4114610c48578063a1481b7e14610c76578063a20623ce14610c8b578063a253c06e14610cbb578063a42650ab14610cd1578063a457c2d714610ce657005b806386d0ada81161024657806386d0ada814610bbc578063887c60fb14610bd6578063893d20e814610bf55780638ccb06a514610c135780638da5cb5b14610bf5578063954ea66514610c2857005b80637a4325f914610b305780637b614de614610b505780638116984d14610b7057806382c4767b14610b9057806386271f2e14610ba657005b8063382e329a116103bb57806356cf0111116103285780636f890a2f116102e45780636f890a2f14610a855780636fc3eaec14610aa557806370a0823114610aba578063715018a614610af057806372e166f614610b05578063762bb28214610b1a57005b806356cf0111146109cd578063589210d9146109ed5780635aa1805714610a035780635e1050e514610a1857806365001c6614610a385780636ebcf60714610a5857005b806344832cc61161037757806344832cc61461092257806348e907b7146109425780634ada218b146109585780634eca70f5146109775780634f91e48c14610997578063518c7cc0146109ad57005b8063382e329a1461087a578063385abc691461089b57806339509351146108bc5780633cc39b7a146108dc5780634089b170146108f257806342a110951461090857005b80631eb25d1311610459578063311a869711610415578063311a8697146107ce578063313ce567146107ef57806332424aa314610803578063325ea1aa146108185780633478154b1461083857806337ac7f081461085a57005b80631eb25d131461071f5780631f8b845e1461073457806323b872dd146107545780632514a197146107745780632a24e0641461078e5780632e6bc3b4146107ae57005b80630fd99e16116104a85780630fd99e1614610640578063141235321461067657806314ca24ed1461069657806315d77f03146106ca57806317391e49146106ea57806318160ddd1461070a57005b806301b8dc2e146104ea578063024c2ddd1461054a57806305691ec81461059057806306fdde03146105cf578063095ea7b31461061057005b366104e857005b005b3480156104f657600080fd5b506011546040805160ff6401000000008404811682526301000000840481166020830152808416928201929092526101008304821660608201526201000090920416608082015260a0015b60405180910390f35b34801561055657600080fd5b5061058261056536600461338e565b600260209081526000928352604080842090915290825290205481565b604051908152602001610541565b34801561059c57600080fd5b506011546105b790600160401b90046001600160a01b031681565b6040516001600160a01b039091168152602001610541565b3480156105db57600080fd5b5060408051808201909152600f81526e412048756e7465727320426c65737360881b60208201525b60405161054191906133c7565b34801561061c57600080fd5b5061063061062b36600461341c565b611123565b6040519015158152602001610541565b34801561064c57600080fd5b50600b5461066390640100000000900461ffff1681565b60405161ffff9091168152602001610541565b34801561068257600080fd5b506104e8610691366004613448565b61113a565b3480156106a257600080fd5b506011546106b890640100000000900460ff1681565b60405160ff9091168152602001610541565b3480156106d657600080fd5b506104e86106e536600461347b565b611177565b3480156106f657600080fd5b506011546106b89062010000900460ff1681565b34801561071657600080fd5b50600d54610582565b34801561072b57600080fd5b506105826111b2565b34801561074057600080fd5b50600b5461066390610100900461ffff1681565b34801561076057600080fd5b5061063061076f366004613496565b6111cf565b34801561078057600080fd5b506019546106b89060ff1681565b34801561079a57600080fd5b506015546105b7906001600160a01b031681565b3480156107ba57600080fd5b506104e86107c9366004613448565b611266565b3480156107da57600080fd5b50600b546106b8906301000000900460ff1681565b3480156107fb57600080fd5b5060126106b8565b34801561080f57600080fd5b506106b8601281565b34801561082457600080fd5b506104e86108333660046134d7565b6112ad565b34801561084457600080fd5b50600b5461066390600160301b900461ffff1681565b34801561086657600080fd5b506104e86108753660046134fe565b6112d7565b34801561088657600080fd5b506011546106b8906301000000900460ff1681565b3480156108a757600080fd5b5060145461063090600160a01b900460ff1681565b3480156108c857600080fd5b506106306108d736600461341c565b61131e565b3480156108e857600080fd5b50610582601b5481565b3480156108fe57600080fd5b5061058260185481565b34801561091457600080fd5b506011546106b89060ff1681565b34801561092e57600080fd5b5061058261093d366004613448565b611355565b34801561094e57600080fd5b5061058260175481565b34801561096457600080fd5b50601e5461063090610100900460ff1681565b34801561098357600080fd5b506104e8610992366004613448565b61138f565b3480156109a357600080fd5b50610582600f5481565b3480156109b957600080fd5b506104e86109c8366004613448565b6113de565b3480156109d957600080fd5b506104e86109e836600461351b565b611434565b3480156109f957600080fd5b5061058260105481565b348015610a0f57600080fd5b50601d54610582565b348015610a2457600080fd5b506104e8610a33366004613448565b611524565b348015610a4457600080fd5b506104e8610a53366004613448565b61156a565b348015610a6457600080fd5b50610582610a73366004613448565b60016020526000908152604090205481565b348015610a9157600080fd5b506104e8610aa03660046134d7565b6116c5565b348015610ab157600080fd5b506104e861176d565b348015610ac657600080fd5b50610582610ad5366004613448565b6001600160a01b031660009081526001602052604090205490565b348015610afc57600080fd5b506104e8611791565b348015610b1157600080fd5b506104e8611844565b348015610b2657600080fd5b50610582600e5481565b348015610b3c57600080fd5b506104e8610b4b366004613580565b611929565b348015610b5c57600080fd5b506104e8610b6b3660046134d7565b611979565b348015610b7c57600080fd5b506104e8610b8b3660046134fe565b6119b4565b348015610b9c57600080fd5b506105b761dead81565b348015610bb257600080fd5b50610582601a5481565b348015610bc857600080fd5b50601e546106309060ff1681565b348015610be257600080fd5b50601c5461063090610100900460ff1681565b348015610c0157600080fd5b506000546001600160a01b03166105b7565b348015610c1f57600080fd5b506104e86119f3565b348015610c3457600080fd5b506016546105b7906001600160a01b031681565b348015610c5457600080fd5b50604080518082019091526005815264464c4f434b60d81b6020820152610603565b348015610c8257600080fd5b506104e8611a32565b348015610c9757600080fd5b50610630610ca6366004613448565b60086020526000908152604090205460ff1681565b348015610cc757600080fd5b50610582600d5481565b348015610cdd57600080fd5b506104e8611aac565b348015610cf257600080fd5b50610630610d0136600461341c565b611adb565b348015610d1257600080fd5b506104e8610d213660046134fe565b611b57565b348015610d3257600080fd5b50610630610d4136600461341c565b611b8f565b348015610d5257600080fd5b506104e8610d613660046134d7565b611b9c565b348015610d7257600080fd5b5060115461063090600160381b900460ff1681565b348015610d9357600080fd5b506104e8610da23660046134fe565b611bc6565b348015610db357600080fd5b5061060360405180604001604052806005815260200164464c4f434b60d81b81525081565b348015610de457600080fd5b506104e8610df3366004613448565b611c0d565b348015610e0457600080fd5b506104e8610e133660046134fe565b611c56565b348015610e2457600080fd5b506104e8610e333660046134fe565b611c8e565b348015610e4457600080fd5b506104e8610e533660046134fe565b611cc6565b348015610e6457600080fd5b506104e8610e733660046134fe565b611d05565b348015610e8457600080fd5b506104e8611d48565b348015610e9957600080fd5b506105b7737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610ec157600080fd5b506011546106b890610100900460ff1681565b348015610ee057600080fd5b506104e8610eef366004613448565b611d78565b348015610f0057600080fd5b506106036040518060400160405280600f81526020016e412048756e7465727320426c65737360881b81525081565b348015610f3b57600080fd5b506104e8610f4a366004613448565b611dbf565b348015610f5b57600080fd5b506104e8610f6a366004613448565b611def565b348015610f7b57600080fd5b5060115461063090600160301b900460ff1681565b348015610f9c57600080fd5b50610582610fab36600461338e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610fe257600080fd5b506104e8610ff13660046135ae565b611e1f565b34801561100257600080fd5b506104e86110113660046135d0565b611e7e565b34801561102257600080fd5b5061102b611ec8565b60408051928352602083019190915201610541565b34801561104c57600080fd5b506104e861105b366004613580565b611f05565b34801561106c57600080fd5b506104e861107b366004613448565b611f55565b34801561108c57600080fd5b506104e861109b366004613448565b611f85565b3480156110ac57600080fd5b506012546105b7906001600160a01b031681565b3480156110cc57600080fd5b50610582601d5481565b3480156110e257600080fd5b506013546105b7906001600160a01b031681565b34801561110257600080fd5b50610582611111366004613448565b60036020526000908152604090205481565b60006111303384846120c3565b5060015b92915050565b611143336121b6565b6111685760405162461bcd60e51b815260040161115f906135f4565b60405180910390fd5b6111736004826120ae565b5050565b611180336121b6565b61119c5760405162461bcd60e51b815260040161115f906135f4565b6019805460ff191660ff92909216919091179055565b6111be6012600a61371a565b6111cc906305f5e100613729565b81565b60006111dc8484846121ed565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156112475760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b604482015260640161115f565b61125b85336112568685613748565b6120c3565b506001949350505050565b61126f336121b6565b61128b5760405162461bcd60e51b815260040161115f906135f4565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6112b6336121b6565b6112d25760405162461bcd60e51b815260040161115f906135f4565b600a55565b6112e0336121b6565b6112fc5760405162461bcd60e51b815260040161115f906135f4565b60118054911515600160381b0267ff0000000000000019909216919091179055565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161113091859061125690869061375f565b6001600160a01b03811660009081526003602052604081205442811161137e5750600092915050565b6113884282613748565b9392505050565b611398336121b6565b6113b45760405162461bcd60e51b815260040161115f906135f4565b601e80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6113e7336121b6565b6114035760405162461bcd60e51b815260040161115f906135f4565b601180546001600160a01b03909216600160401b0268010000000000000000600160e01b0319909216919091179055565b61143d336121b6565b6114595760405162461bcd60e51b815260040161115f906135f4565b60006114658587613777565b90508060ff166064146114ba5760405162461bcd60e51b815260206004820152601c60248201527f6275726e2b6c6971206e6565647320746f20657175616c203130302500000000604482015260640161115f565b506011805460ff928316620100000262ff0000199484166101000261ffff1997851663010000000263ff00000019998616640100000000029990991664ffff0000001990931692909217979097179590951693909116929092179290921791909116919091179055565b61152d336121b6565b6115495760405162461bcd60e51b815260040161115f906135f4565b6001600160a01b03166000908152600860205260409020805460ff19169055565b611573336121b6565b61158f5760405162461bcd60e51b815260040161115f906135f4565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc919061379c565b90506000811161164e5760405162461bcd60e51b815260206004820152601860248201527f4e6f20746f6b656e7320696e206f75722062616c616e63650000000000000000604482015260640161115f565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561169b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bf91906137b5565b50505050565b6116ce336121b6565b6116ea5760405162461bcd60e51b815260040161115f906135f4565b3060009081526001602052604090205481111561170657600080fd5b3060009081526001602052604081208054839290611725908490613748565b9250508190555080600d600082825461173e9190613748565b909155505060405181815261dead90309060008051602061394b8339815191529060200160405180910390a350565b6014546001600160a01b0316331461178457600080fd5b4761178e816125fd565b50565b336117a46000546001600160a01b031690565b6001600160a01b0316146117fa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161115f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61184d336121b6565b6118695760405162461bcd60e51b815260040161115f906135f4565b600062989680601a544761187d9190613748565b6118879190613748565b905060003390506000816001600160a01b0316836040515b60006040518083038185875af1925050503d80600081146118dc576040519150601f19603f3d011682016040523d82523d6000602084013e6118e1565b606091505b50509050806119245760405162461bcd60e51b815260206004820152600f60248201526e1dda5d1a191c985dc819985a5b1959608a1b604482015260640161115f565b505050565b611932336121b6565b61194e5760405162461bcd60e51b815260040161115f906135f4565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b611982336121b6565b61199e5760405162461bcd60e51b815260040161115f906135f4565b61178e6119af82633b9aca00613729565b612637565b6119bd336121b6565b6119d95760405162461bcd60e51b815260040161115f906135f4565b601c80549115156101000261ff0019909216919091179055565b6119fc336121b6565b611a185760405162461bcd60e51b815260040161115f906135f4565b601a8054600091829055604051909133918290849061189f565b611a3b336121b6565b611a575760405162461bcd60e51b815260040161115f906135f4565b604051600090339047908381818185875af1925050503d8060008114611a99576040519150601f19603f3d011682016040523d82523d6000602084013e611a9e565b606091505b505090508061178e57600080fd5b611ab5336121b6565b611ad15760405162461bcd60e51b815260040161115f906135f4565b611ad961278e565b565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015611b3e5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b604482015260640161115f565b611b4d33856112568685613748565b5060019392505050565b611b60336121b6565b611b7c5760405162461bcd60e51b815260040161115f906135f4565b6009805460ff1916911515919091179055565b60006111303384846121ed565b611ba5336121b6565b611bc15760405162461bcd60e51b815260040161115f906135f4565b601d55565b611bcf336121b6565b611beb5760405162461bcd60e51b815260040161115f906135f4565b60118054911515650100000000000265ff000000000019909216919091179055565b611c16336121b6565b611c325760405162461bcd60e51b815260040161115f906135f4565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b611c5f336121b6565b611c7b5760405162461bcd60e51b815260040161115f906135f4565b600b805460ff1916911515919091179055565b611c97336121b6565b611cb35760405162461bcd60e51b815260040161115f906135f4565b601e805460ff1916911515919091179055565b611ccf336121b6565b611ceb5760405162461bcd60e51b815260040161115f906135f4565b601e80549115156101000261ff0019909216919091179055565b611d0e336121b6565b611d2a5760405162461bcd60e51b815260040161115f906135f4565b60148054911515600160a01b0260ff60a01b19909216919091179055565b6014546001600160a01b03163314611d5f57600080fd5b3060009081526001602052604090205461178e81612aa9565b611d81336121b6565b611d9d5760405162461bcd60e51b815260040161115f906135f4565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b611dc8336121b6565b611de45760405162461bcd60e51b815260040161115f906135f4565b6111736006826120ae565b611df8336121b6565b611e145760405162461bcd60e51b815260040161115f906135f4565b611173600682612c02565b611e28336121b6565b611e445760405162461bcd60e51b815260040161115f906135f4565b611e506012600a61371a565b611e5a9083613729565b9150611e686012600a61371a565b611e729082613729565b600e9290925550600f55565b611e87336121b6565b611ea35760405162461bcd60e51b815260040161115f906135f4565b600b805461ffff909216600160301b0267ffff00000000000019909216919091179055565b600080611ed76012600a61371a565b600e54611ee491906137d2565b611ef06012600a61371a565b600f54611efd91906137d2565b915091509091565b611f0e336121b6565b611f2a5760405162461bcd60e51b815260040161115f906135f4565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b611f5e336121b6565b611f7a5760405162461bcd60e51b815260040161115f906135f4565b611173600482612c02565b33611f986000546001600160a01b031690565b6001600160a01b031614611fee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161115f565b6001600160a01b0381166120535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161115f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611388836001600160a01b038416612c17565b6001600160a01b03831661210d5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b604482015260640161115f565b6001600160a01b0382166121555760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b604482015260640161115f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080546001600160a01b03838116911614806111345750506001600160a01b03166000908152600c602052604090205460ff1690565b6001600160a01b0383166122385760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b604482015260640161115f565b6001600160a01b0382166122815760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b604482015260640161115f565b60095460ff1615612309576001600160a01b03831660009081526008602052604090205460ff161580156122ce57506001600160a01b03821660009081526008602052604090205460ff16155b6123095760405162461bcd60e51b815260206004820152600c60248201526b426c61636b6c69737465642160a01b604482015260640161115f565b6011546001600160a01b03848116600160401b9092041614600061232e600486612c66565b8061233f575061233f600485612c66565b8061236257506001600160a01b0385166000908152600c602052604090205460ff165b8061238557506001600160a01b0384166000908152600c602052604090205460ff165b905060006001600160a01b0386163014806123a857506001600160a01b03851630145b6015549091506000906001600160a01b0388811691161480156123e757506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d145b8061242657506015546001600160a01b03878116911614801561242657506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b905081806124315750805b806124395750825b806124415750835b1561245657612451878787612c88565b6125f4565b601e54610100900460ff16612544576000546001600160a01b0388811691161480159061249157506000546001600160a01b03878116911614155b1561254457601154600160301b900460ff16156124ed57856001600160a01b0316876001600160a01b031660008051602061394b83398151915260006040516124dc91815260200190565b60405180910390a350505050505050565b601e54610100900460ff166125445760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c6564000000000000000000604482015260640161115f565b6015546000906001600160a01b038981169116148061257f57506001600160a01b038816737a250d5630b4cf539739df2c5dacb4c659f2488d145b6015549091506000906001600160a01b03898116911614806125bd57506001600160a01b038816737a250d5630b4cf539739df2c5dacb4c659f2488d145b90506125cc8989898585612d41565b601154600160381b900460ff16156125f1575060009450849350839250829150819050805b50505b50505050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611173573d6000803e3d6000fd5b601c805460ff191660019081179091553060009081526020919091526040902054601154600a54630100000090910460ff16908381111561268057600b5460ff16156126805750825b80831080612690575061ffff8216155b1561269d57505050612781565b60115460009061ffff8416906126bd906301000000900460ff1684613729565b6126c791906137d2565b60115490915060009061ffff8516906126eb90640100000000900460ff1685613729565b6126f591906137d2565b905060006127046002846137d2565b905060006127128285613748565b90506000612720848361375f565b90504761272c82612aa9565b60006127388247613748565b90506000836127478684613729565b61275191906137d2565b905061275d86826130d4565b60006127698447613748565b90506127748161319c565b5050505050505050505050505b50601c805460ff19169055565b601a546014546000908190600160a01b900460ff16156127c6576127b36002846137d2565b91506127bf8284613748565b90506127ca565b8291505b6040805160028082526060820183526000926020830190803683375050601654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612834573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285891906137f4565b8160008151811061286b5761286b613811565b6001600160a01b03928316602091820292909201015260125482519116908290600190811061289c5761289c613811565b6001600160a01b03928316602091820292909201015260165460405163b6f9de9560e01b815291169063b6f9de959085906128e490600090869061dead90429060040161386b565b6000604051808303818588803b1580156128fd57600080fd5b505af1158015612911573d6000803e3d6000fd5b505050505082601a60008282546129289190613748565b9091555050601454600160a01b900460ff16156116bf576040805160028082526060820183526000926020830190803683375050601654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156129a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129cd91906137f4565b826000815181106129e0576129e0613811565b6001600160a01b039283166020918202929092010152601354835191169083906001908110612a1157612a11613811565b6001600160a01b03928316602091820292909201015260165460405163b6f9de9560e01b815291169063b6f9de95908590612a5990600090869061dead90429060040161386b565b6000604051808303818588803b158015612a7257600080fd5b505af1158015612a86573d6000803e3d6000fd5b505050505082601a6000828254612a9d9190613748565b90915550505050505050565b601654612ac19030906001600160a01b0316836120c3565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612af657612af6613811565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7391906137f4565b81600181518110612b8657612b86613811565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac94790612bcc9085906000908690309042906004016138a0565b600060405180830381600087803b158015612be657600080fd5b505af1158015612bfa573d6000803e3d6000fd5b505050505050565b6000611388836001600160a01b0384166131ef565b6000818152600183016020526040812054612c5e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611134565b506000611134565b6001600160a01b03811660009081526001830160205260408120541515611388565b6001600160a01b03831660009081526001602052604090205481811015612cec5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b604482015260640161115f565b612cf684836132dc565b612d008383613321565b826001600160a01b0316846001600160a01b031660008051602061394b83398151915284604051612d3391815260200190565b60405180910390a350505050565b6001600160a01b0380851660009081526001602052604080822054928816825290205484811015612daf5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b604482015260640161115f565b6002600f54612dbe91906137d2565b600a5560008315612ec357612dd4600689612c66565b612e6e576001600160a01b03881660009081526003602052604090205442101580612e065750601c54610100900460ff165b612e475760405162461bcd60e51b815260206004820152601260248201527153656c6c657220696e2073656c6c4c6f636b60701b604482015260640161115f565b601d54612e54904261375f565b6001600160a01b0389166000908152600360205260409020555b600f54861115612eb25760405162461bcd60e51b815260206004820152600f60248201526e223ab6b810383937ba32b1ba34b7b760891b604482015260640161115f565b50601154610100900460ff16612fd5565b8415612f2257600e54612ed6878561375f565b1115612ef45760405162461bcd60e51b815260040161115f906138dc565b601054861115612f165760405162461bcd60e51b815260040161115f906138dc565b5060115460ff16612fd5565b600e54612f2f878561375f565b1115612f4d5760405162461bcd60e51b815260040161115f906138dc565b612f58600689612c66565b612fc7576001600160a01b03881660009081526003602052604090205442101580612f8a5750601c54610100900460ff165b612fc75760405162461bcd60e51b815260206004820152600e60248201526d53656e64657220696e204c6f636b60901b604482015260640161115f565b5060115462010000900460ff165b6015546001600160a01b03898116911614801590612ff65750601e5460ff16155b80156130055750601c5460ff16155b156130135761301386612637565b601154600090613044908890849061303f9060ff64010000000082048116916301000000900416613777565b613345565b905060006130528289613748565b905061305e8a896132dc565b306000908152600160205260408120805484929061307d90849061375f565b9091555061308d90508982613321565b886001600160a01b03168a6001600160a01b031660008051602061394b833981519152836040516130c091815260200190565b60405180910390a350505050505050505050565b80601b60008282546130e6919061375f565b90915550506016546131039030906001600160a01b0316846120c3565b60165460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015613170573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131959190613906565b5050505050565b6019546000906064906131b29060ff1684613729565b6131bc91906137d2565b905080601a60008282546131d0919061375f565b9091555050601a54670de0b6b3a764000010156111735761117361278e565b600081815260018301602052604081205480156132d2576000613213600183613748565b855490915060009061322790600190613748565b9050600086600001828154811061324057613240613811565b906000526020600020015490508087600001848154811061326357613263613811565b60009182526020808320909101929092558281526001890190915260409020849055865487908061329657613296613934565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611134565b6000915050611134565b6001600160a01b038216600090815260016020526040812054613300908390613748565b6001600160a01b039093166000908152600160205260409020929092555050565b6001600160a01b03821660009081526001602052604081205461330090839061375f565b60006127108260ff168460ff168661335d9190613729565b6133679190613729565b61337191906137d2565b949350505050565b6001600160a01b038116811461178e57600080fd5b600080604083850312156133a157600080fd5b82356133ac81613379565b915060208301356133bc81613379565b809150509250929050565b600060208083528351808285015260005b818110156133f4578581018301518582016040015282016133d8565b81811115613406576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561342f57600080fd5b823561343a81613379565b946020939093013593505050565b60006020828403121561345a57600080fd5b813561138881613379565b803560ff8116811461347657600080fd5b919050565b60006020828403121561348d57600080fd5b61138882613465565b6000806000606084860312156134ab57600080fd5b83356134b681613379565b925060208401356134c681613379565b929592945050506040919091013590565b6000602082840312156134e957600080fd5b5035919050565b801515811461178e57600080fd5b60006020828403121561351057600080fd5b8135611388816134f0565b600080600080600060a0868803121561353357600080fd5b61353c86613465565b945061354a60208701613465565b935061355860408701613465565b925061356660608701613465565b915061357460808701613465565b90509295509295909350565b6000806040838503121561359357600080fd5b823561359e81613379565b915060208301356133bc816134f0565b600080604083850312156135c157600080fd5b50508035926020909101359150565b6000602082840312156135e257600080fd5b813561ffff8116811461138857600080fd5b602080825260129082015271086c2d8d8cae440dcdee840d2dc4082eae8d60731b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561367157816000190482111561365757613657613620565b8085161561366457918102915b93841c939080029061363b565b509250929050565b60008261368857506001611134565b8161369557506000611134565b81600181146136ab57600281146136b5576136d1565b6001915050611134565b60ff8411156136c6576136c6613620565b50506001821b611134565b5060208310610133831016604e8410600b84101617156136f4575081810a611134565b6136fe8383613636565b806000190482111561371257613712613620565b029392505050565b600061138860ff841683613679565b600081600019048311821515161561374357613743613620565b500290565b60008282101561375a5761375a613620565b500390565b6000821982111561377257613772613620565b500190565b600060ff821660ff84168060ff0382111561379457613794613620565b019392505050565b6000602082840312156137ae57600080fd5b5051919050565b6000602082840312156137c757600080fd5b8151611388816134f0565b6000826137ef57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561380657600080fd5b815161138881613379565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156138605781516001600160a01b03168752958201959082019060010161383b565b509495945050505050565b8481526080602082015260006138846080830186613827565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a0604082015260006138bf60a0830186613827565b6001600160a01b0394909416606083015250608001529392505050565b60208082526010908201526f3bb430b63290383937ba32b1ba34b7b760811b604082015260600190565b60008060006060848603121561391b57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4ae419f34da108779a066fd52655cf31a9dc50d49961915c84d2546891ff71364736f6c634300080d0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0000000000000000000000004b7945f27acec70c01fb96999b659ddf85875f1b

Deployed Bytecode

0x6080604052600436106104e15760003560e01c80637a4325f91161027f578063b19a081911610159578063d65af4f2116100c6578063f2e0fcbb11610082578063f2e0fcbb14611060578063f2fde38b14611080578063f51f7496146110a0578063f88b0e46146110c0578063f918eb53146110d6578063fb272987146110f657005b8063d65af4f214610f6f578063dd62ed3e14610f90578063e134efbb14610fd6578063e1d21a5b14610ff6578063e9addd9b14611016578063ead3caf41461104057005b8063c7639d8011610115578063c7639d8014610e8d578063ca9ec19914610eb5578063d05f132414610ed4578063d28d885214610ef4578063d2aaceda14610f2f578063d34a9f3c14610f4f57005b8063b19a081914610dd8578063b41ea98d14610df8578063b792161714610e18578063b89bfd6514610e38578063b9f4207d14610e58578063c3c8cd8014610e7857005b806395d89b41116101f7578063a568016f116101b3578063a568016f14610d06578063a9059cbb14610d26578063a9aab6b914610d46578063ab0b364c14610d66578063ad463f3d14610d87578063b09f126614610da757005b806395d89b4114610c48578063a1481b7e14610c76578063a20623ce14610c8b578063a253c06e14610cbb578063a42650ab14610cd1578063a457c2d714610ce657005b806386d0ada81161024657806386d0ada814610bbc578063887c60fb14610bd6578063893d20e814610bf55780638ccb06a514610c135780638da5cb5b14610bf5578063954ea66514610c2857005b80637a4325f914610b305780637b614de614610b505780638116984d14610b7057806382c4767b14610b9057806386271f2e14610ba657005b8063382e329a116103bb57806356cf0111116103285780636f890a2f116102e45780636f890a2f14610a855780636fc3eaec14610aa557806370a0823114610aba578063715018a614610af057806372e166f614610b05578063762bb28214610b1a57005b806356cf0111146109cd578063589210d9146109ed5780635aa1805714610a035780635e1050e514610a1857806365001c6614610a385780636ebcf60714610a5857005b806344832cc61161037757806344832cc61461092257806348e907b7146109425780634ada218b146109585780634eca70f5146109775780634f91e48c14610997578063518c7cc0146109ad57005b8063382e329a1461087a578063385abc691461089b57806339509351146108bc5780633cc39b7a146108dc5780634089b170146108f257806342a110951461090857005b80631eb25d1311610459578063311a869711610415578063311a8697146107ce578063313ce567146107ef57806332424aa314610803578063325ea1aa146108185780633478154b1461083857806337ac7f081461085a57005b80631eb25d131461071f5780631f8b845e1461073457806323b872dd146107545780632514a197146107745780632a24e0641461078e5780632e6bc3b4146107ae57005b80630fd99e16116104a85780630fd99e1614610640578063141235321461067657806314ca24ed1461069657806315d77f03146106ca57806317391e49146106ea57806318160ddd1461070a57005b806301b8dc2e146104ea578063024c2ddd1461054a57806305691ec81461059057806306fdde03146105cf578063095ea7b31461061057005b366104e857005b005b3480156104f657600080fd5b506011546040805160ff6401000000008404811682526301000000840481166020830152808416928201929092526101008304821660608201526201000090920416608082015260a0015b60405180910390f35b34801561055657600080fd5b5061058261056536600461338e565b600260209081526000928352604080842090915290825290205481565b604051908152602001610541565b34801561059c57600080fd5b506011546105b790600160401b90046001600160a01b031681565b6040516001600160a01b039091168152602001610541565b3480156105db57600080fd5b5060408051808201909152600f81526e412048756e7465727320426c65737360881b60208201525b60405161054191906133c7565b34801561061c57600080fd5b5061063061062b36600461341c565b611123565b6040519015158152602001610541565b34801561064c57600080fd5b50600b5461066390640100000000900461ffff1681565b60405161ffff9091168152602001610541565b34801561068257600080fd5b506104e8610691366004613448565b61113a565b3480156106a257600080fd5b506011546106b890640100000000900460ff1681565b60405160ff9091168152602001610541565b3480156106d657600080fd5b506104e86106e536600461347b565b611177565b3480156106f657600080fd5b506011546106b89062010000900460ff1681565b34801561071657600080fd5b50600d54610582565b34801561072b57600080fd5b506105826111b2565b34801561074057600080fd5b50600b5461066390610100900461ffff1681565b34801561076057600080fd5b5061063061076f366004613496565b6111cf565b34801561078057600080fd5b506019546106b89060ff1681565b34801561079a57600080fd5b506015546105b7906001600160a01b031681565b3480156107ba57600080fd5b506104e86107c9366004613448565b611266565b3480156107da57600080fd5b50600b546106b8906301000000900460ff1681565b3480156107fb57600080fd5b5060126106b8565b34801561080f57600080fd5b506106b8601281565b34801561082457600080fd5b506104e86108333660046134d7565b6112ad565b34801561084457600080fd5b50600b5461066390600160301b900461ffff1681565b34801561086657600080fd5b506104e86108753660046134fe565b6112d7565b34801561088657600080fd5b506011546106b8906301000000900460ff1681565b3480156108a757600080fd5b5060145461063090600160a01b900460ff1681565b3480156108c857600080fd5b506106306108d736600461341c565b61131e565b3480156108e857600080fd5b50610582601b5481565b3480156108fe57600080fd5b5061058260185481565b34801561091457600080fd5b506011546106b89060ff1681565b34801561092e57600080fd5b5061058261093d366004613448565b611355565b34801561094e57600080fd5b5061058260175481565b34801561096457600080fd5b50601e5461063090610100900460ff1681565b34801561098357600080fd5b506104e8610992366004613448565b61138f565b3480156109a357600080fd5b50610582600f5481565b3480156109b957600080fd5b506104e86109c8366004613448565b6113de565b3480156109d957600080fd5b506104e86109e836600461351b565b611434565b3480156109f957600080fd5b5061058260105481565b348015610a0f57600080fd5b50601d54610582565b348015610a2457600080fd5b506104e8610a33366004613448565b611524565b348015610a4457600080fd5b506104e8610a53366004613448565b61156a565b348015610a6457600080fd5b50610582610a73366004613448565b60016020526000908152604090205481565b348015610a9157600080fd5b506104e8610aa03660046134d7565b6116c5565b348015610ab157600080fd5b506104e861176d565b348015610ac657600080fd5b50610582610ad5366004613448565b6001600160a01b031660009081526001602052604090205490565b348015610afc57600080fd5b506104e8611791565b348015610b1157600080fd5b506104e8611844565b348015610b2657600080fd5b50610582600e5481565b348015610b3c57600080fd5b506104e8610b4b366004613580565b611929565b348015610b5c57600080fd5b506104e8610b6b3660046134d7565b611979565b348015610b7c57600080fd5b506104e8610b8b3660046134fe565b6119b4565b348015610b9c57600080fd5b506105b761dead81565b348015610bb257600080fd5b50610582601a5481565b348015610bc857600080fd5b50601e546106309060ff1681565b348015610be257600080fd5b50601c5461063090610100900460ff1681565b348015610c0157600080fd5b506000546001600160a01b03166105b7565b348015610c1f57600080fd5b506104e86119f3565b348015610c3457600080fd5b506016546105b7906001600160a01b031681565b348015610c5457600080fd5b50604080518082019091526005815264464c4f434b60d81b6020820152610603565b348015610c8257600080fd5b506104e8611a32565b348015610c9757600080fd5b50610630610ca6366004613448565b60086020526000908152604090205460ff1681565b348015610cc757600080fd5b50610582600d5481565b348015610cdd57600080fd5b506104e8611aac565b348015610cf257600080fd5b50610630610d0136600461341c565b611adb565b348015610d1257600080fd5b506104e8610d213660046134fe565b611b57565b348015610d3257600080fd5b50610630610d4136600461341c565b611b8f565b348015610d5257600080fd5b506104e8610d613660046134d7565b611b9c565b348015610d7257600080fd5b5060115461063090600160381b900460ff1681565b348015610d9357600080fd5b506104e8610da23660046134fe565b611bc6565b348015610db357600080fd5b5061060360405180604001604052806005815260200164464c4f434b60d81b81525081565b348015610de457600080fd5b506104e8610df3366004613448565b611c0d565b348015610e0457600080fd5b506104e8610e133660046134fe565b611c56565b348015610e2457600080fd5b506104e8610e333660046134fe565b611c8e565b348015610e4457600080fd5b506104e8610e533660046134fe565b611cc6565b348015610e6457600080fd5b506104e8610e733660046134fe565b611d05565b348015610e8457600080fd5b506104e8611d48565b348015610e9957600080fd5b506105b7737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610ec157600080fd5b506011546106b890610100900460ff1681565b348015610ee057600080fd5b506104e8610eef366004613448565b611d78565b348015610f0057600080fd5b506106036040518060400160405280600f81526020016e412048756e7465727320426c65737360881b81525081565b348015610f3b57600080fd5b506104e8610f4a366004613448565b611dbf565b348015610f5b57600080fd5b506104e8610f6a366004613448565b611def565b348015610f7b57600080fd5b5060115461063090600160301b900460ff1681565b348015610f9c57600080fd5b50610582610fab36600461338e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610fe257600080fd5b506104e8610ff13660046135ae565b611e1f565b34801561100257600080fd5b506104e86110113660046135d0565b611e7e565b34801561102257600080fd5b5061102b611ec8565b60408051928352602083019190915201610541565b34801561104c57600080fd5b506104e861105b366004613580565b611f05565b34801561106c57600080fd5b506104e861107b366004613448565b611f55565b34801561108c57600080fd5b506104e861109b366004613448565b611f85565b3480156110ac57600080fd5b506012546105b7906001600160a01b031681565b3480156110cc57600080fd5b50610582601d5481565b3480156110e257600080fd5b506013546105b7906001600160a01b031681565b34801561110257600080fd5b50610582611111366004613448565b60036020526000908152604090205481565b60006111303384846120c3565b5060015b92915050565b611143336121b6565b6111685760405162461bcd60e51b815260040161115f906135f4565b60405180910390fd5b6111736004826120ae565b5050565b611180336121b6565b61119c5760405162461bcd60e51b815260040161115f906135f4565b6019805460ff191660ff92909216919091179055565b6111be6012600a61371a565b6111cc906305f5e100613729565b81565b60006111dc8484846121ed565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156112475760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b604482015260640161115f565b61125b85336112568685613748565b6120c3565b506001949350505050565b61126f336121b6565b61128b5760405162461bcd60e51b815260040161115f906135f4565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6112b6336121b6565b6112d25760405162461bcd60e51b815260040161115f906135f4565b600a55565b6112e0336121b6565b6112fc5760405162461bcd60e51b815260040161115f906135f4565b60118054911515600160381b0267ff0000000000000019909216919091179055565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161113091859061125690869061375f565b6001600160a01b03811660009081526003602052604081205442811161137e5750600092915050565b6113884282613748565b9392505050565b611398336121b6565b6113b45760405162461bcd60e51b815260040161115f906135f4565b601e80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6113e7336121b6565b6114035760405162461bcd60e51b815260040161115f906135f4565b601180546001600160a01b03909216600160401b0268010000000000000000600160e01b0319909216919091179055565b61143d336121b6565b6114595760405162461bcd60e51b815260040161115f906135f4565b60006114658587613777565b90508060ff166064146114ba5760405162461bcd60e51b815260206004820152601c60248201527f6275726e2b6c6971206e6565647320746f20657175616c203130302500000000604482015260640161115f565b506011805460ff928316620100000262ff0000199484166101000261ffff1997851663010000000263ff00000019998616640100000000029990991664ffff0000001990931692909217979097179590951693909116929092179290921791909116919091179055565b61152d336121b6565b6115495760405162461bcd60e51b815260040161115f906135f4565b6001600160a01b03166000908152600860205260409020805460ff19169055565b611573336121b6565b61158f5760405162461bcd60e51b815260040161115f906135f4565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc919061379c565b90506000811161164e5760405162461bcd60e51b815260206004820152601860248201527f4e6f20746f6b656e7320696e206f75722062616c616e63650000000000000000604482015260640161115f565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561169b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bf91906137b5565b50505050565b6116ce336121b6565b6116ea5760405162461bcd60e51b815260040161115f906135f4565b3060009081526001602052604090205481111561170657600080fd5b3060009081526001602052604081208054839290611725908490613748565b9250508190555080600d600082825461173e9190613748565b909155505060405181815261dead90309060008051602061394b8339815191529060200160405180910390a350565b6014546001600160a01b0316331461178457600080fd5b4761178e816125fd565b50565b336117a46000546001600160a01b031690565b6001600160a01b0316146117fa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161115f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61184d336121b6565b6118695760405162461bcd60e51b815260040161115f906135f4565b600062989680601a544761187d9190613748565b6118879190613748565b905060003390506000816001600160a01b0316836040515b60006040518083038185875af1925050503d80600081146118dc576040519150601f19603f3d011682016040523d82523d6000602084013e6118e1565b606091505b50509050806119245760405162461bcd60e51b815260206004820152600f60248201526e1dda5d1a191c985dc819985a5b1959608a1b604482015260640161115f565b505050565b611932336121b6565b61194e5760405162461bcd60e51b815260040161115f906135f4565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b611982336121b6565b61199e5760405162461bcd60e51b815260040161115f906135f4565b61178e6119af82633b9aca00613729565b612637565b6119bd336121b6565b6119d95760405162461bcd60e51b815260040161115f906135f4565b601c80549115156101000261ff0019909216919091179055565b6119fc336121b6565b611a185760405162461bcd60e51b815260040161115f906135f4565b601a8054600091829055604051909133918290849061189f565b611a3b336121b6565b611a575760405162461bcd60e51b815260040161115f906135f4565b604051600090339047908381818185875af1925050503d8060008114611a99576040519150601f19603f3d011682016040523d82523d6000602084013e611a9e565b606091505b505090508061178e57600080fd5b611ab5336121b6565b611ad15760405162461bcd60e51b815260040161115f906135f4565b611ad961278e565b565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015611b3e5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b604482015260640161115f565b611b4d33856112568685613748565b5060019392505050565b611b60336121b6565b611b7c5760405162461bcd60e51b815260040161115f906135f4565b6009805460ff1916911515919091179055565b60006111303384846121ed565b611ba5336121b6565b611bc15760405162461bcd60e51b815260040161115f906135f4565b601d55565b611bcf336121b6565b611beb5760405162461bcd60e51b815260040161115f906135f4565b60118054911515650100000000000265ff000000000019909216919091179055565b611c16336121b6565b611c325760405162461bcd60e51b815260040161115f906135f4565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b611c5f336121b6565b611c7b5760405162461bcd60e51b815260040161115f906135f4565b600b805460ff1916911515919091179055565b611c97336121b6565b611cb35760405162461bcd60e51b815260040161115f906135f4565b601e805460ff1916911515919091179055565b611ccf336121b6565b611ceb5760405162461bcd60e51b815260040161115f906135f4565b601e80549115156101000261ff0019909216919091179055565b611d0e336121b6565b611d2a5760405162461bcd60e51b815260040161115f906135f4565b60148054911515600160a01b0260ff60a01b19909216919091179055565b6014546001600160a01b03163314611d5f57600080fd5b3060009081526001602052604090205461178e81612aa9565b611d81336121b6565b611d9d5760405162461bcd60e51b815260040161115f906135f4565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b611dc8336121b6565b611de45760405162461bcd60e51b815260040161115f906135f4565b6111736006826120ae565b611df8336121b6565b611e145760405162461bcd60e51b815260040161115f906135f4565b611173600682612c02565b611e28336121b6565b611e445760405162461bcd60e51b815260040161115f906135f4565b611e506012600a61371a565b611e5a9083613729565b9150611e686012600a61371a565b611e729082613729565b600e9290925550600f55565b611e87336121b6565b611ea35760405162461bcd60e51b815260040161115f906135f4565b600b805461ffff909216600160301b0267ffff00000000000019909216919091179055565b600080611ed76012600a61371a565b600e54611ee491906137d2565b611ef06012600a61371a565b600f54611efd91906137d2565b915091509091565b611f0e336121b6565b611f2a5760405162461bcd60e51b815260040161115f906135f4565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b611f5e336121b6565b611f7a5760405162461bcd60e51b815260040161115f906135f4565b611173600482612c02565b33611f986000546001600160a01b031690565b6001600160a01b031614611fee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161115f565b6001600160a01b0381166120535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161115f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611388836001600160a01b038416612c17565b6001600160a01b03831661210d5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b604482015260640161115f565b6001600160a01b0382166121555760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b604482015260640161115f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080546001600160a01b03838116911614806111345750506001600160a01b03166000908152600c602052604090205460ff1690565b6001600160a01b0383166122385760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b604482015260640161115f565b6001600160a01b0382166122815760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b604482015260640161115f565b60095460ff1615612309576001600160a01b03831660009081526008602052604090205460ff161580156122ce57506001600160a01b03821660009081526008602052604090205460ff16155b6123095760405162461bcd60e51b815260206004820152600c60248201526b426c61636b6c69737465642160a01b604482015260640161115f565b6011546001600160a01b03848116600160401b9092041614600061232e600486612c66565b8061233f575061233f600485612c66565b8061236257506001600160a01b0385166000908152600c602052604090205460ff165b8061238557506001600160a01b0384166000908152600c602052604090205460ff165b905060006001600160a01b0386163014806123a857506001600160a01b03851630145b6015549091506000906001600160a01b0388811691161480156123e757506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d145b8061242657506015546001600160a01b03878116911614801561242657506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b905081806124315750805b806124395750825b806124415750835b1561245657612451878787612c88565b6125f4565b601e54610100900460ff16612544576000546001600160a01b0388811691161480159061249157506000546001600160a01b03878116911614155b1561254457601154600160301b900460ff16156124ed57856001600160a01b0316876001600160a01b031660008051602061394b83398151915260006040516124dc91815260200190565b60405180910390a350505050505050565b601e54610100900460ff166125445760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c6564000000000000000000604482015260640161115f565b6015546000906001600160a01b038981169116148061257f57506001600160a01b038816737a250d5630b4cf539739df2c5dacb4c659f2488d145b6015549091506000906001600160a01b03898116911614806125bd57506001600160a01b038816737a250d5630b4cf539739df2c5dacb4c659f2488d145b90506125cc8989898585612d41565b601154600160381b900460ff16156125f1575060009450849350839250829150819050805b50505b50505050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611173573d6000803e3d6000fd5b601c805460ff191660019081179091553060009081526020919091526040902054601154600a54630100000090910460ff16908381111561268057600b5460ff16156126805750825b80831080612690575061ffff8216155b1561269d57505050612781565b60115460009061ffff8416906126bd906301000000900460ff1684613729565b6126c791906137d2565b60115490915060009061ffff8516906126eb90640100000000900460ff1685613729565b6126f591906137d2565b905060006127046002846137d2565b905060006127128285613748565b90506000612720848361375f565b90504761272c82612aa9565b60006127388247613748565b90506000836127478684613729565b61275191906137d2565b905061275d86826130d4565b60006127698447613748565b90506127748161319c565b5050505050505050505050505b50601c805460ff19169055565b601a546014546000908190600160a01b900460ff16156127c6576127b36002846137d2565b91506127bf8284613748565b90506127ca565b8291505b6040805160028082526060820183526000926020830190803683375050601654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612834573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285891906137f4565b8160008151811061286b5761286b613811565b6001600160a01b03928316602091820292909201015260125482519116908290600190811061289c5761289c613811565b6001600160a01b03928316602091820292909201015260165460405163b6f9de9560e01b815291169063b6f9de959085906128e490600090869061dead90429060040161386b565b6000604051808303818588803b1580156128fd57600080fd5b505af1158015612911573d6000803e3d6000fd5b505050505082601a60008282546129289190613748565b9091555050601454600160a01b900460ff16156116bf576040805160028082526060820183526000926020830190803683375050601654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156129a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129cd91906137f4565b826000815181106129e0576129e0613811565b6001600160a01b039283166020918202929092010152601354835191169083906001908110612a1157612a11613811565b6001600160a01b03928316602091820292909201015260165460405163b6f9de9560e01b815291169063b6f9de95908590612a5990600090869061dead90429060040161386b565b6000604051808303818588803b158015612a7257600080fd5b505af1158015612a86573d6000803e3d6000fd5b505050505082601a6000828254612a9d9190613748565b90915550505050505050565b601654612ac19030906001600160a01b0316836120c3565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612af657612af6613811565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7391906137f4565b81600181518110612b8657612b86613811565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac94790612bcc9085906000908690309042906004016138a0565b600060405180830381600087803b158015612be657600080fd5b505af1158015612bfa573d6000803e3d6000fd5b505050505050565b6000611388836001600160a01b0384166131ef565b6000818152600183016020526040812054612c5e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611134565b506000611134565b6001600160a01b03811660009081526001830160205260408120541515611388565b6001600160a01b03831660009081526001602052604090205481811015612cec5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b604482015260640161115f565b612cf684836132dc565b612d008383613321565b826001600160a01b0316846001600160a01b031660008051602061394b83398151915284604051612d3391815260200190565b60405180910390a350505050565b6001600160a01b0380851660009081526001602052604080822054928816825290205484811015612daf5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b604482015260640161115f565b6002600f54612dbe91906137d2565b600a5560008315612ec357612dd4600689612c66565b612e6e576001600160a01b03881660009081526003602052604090205442101580612e065750601c54610100900460ff165b612e475760405162461bcd60e51b815260206004820152601260248201527153656c6c657220696e2073656c6c4c6f636b60701b604482015260640161115f565b601d54612e54904261375f565b6001600160a01b0389166000908152600360205260409020555b600f54861115612eb25760405162461bcd60e51b815260206004820152600f60248201526e223ab6b810383937ba32b1ba34b7b760891b604482015260640161115f565b50601154610100900460ff16612fd5565b8415612f2257600e54612ed6878561375f565b1115612ef45760405162461bcd60e51b815260040161115f906138dc565b601054861115612f165760405162461bcd60e51b815260040161115f906138dc565b5060115460ff16612fd5565b600e54612f2f878561375f565b1115612f4d5760405162461bcd60e51b815260040161115f906138dc565b612f58600689612c66565b612fc7576001600160a01b03881660009081526003602052604090205442101580612f8a5750601c54610100900460ff165b612fc75760405162461bcd60e51b815260206004820152600e60248201526d53656e64657220696e204c6f636b60901b604482015260640161115f565b5060115462010000900460ff165b6015546001600160a01b03898116911614801590612ff65750601e5460ff16155b80156130055750601c5460ff16155b156130135761301386612637565b601154600090613044908890849061303f9060ff64010000000082048116916301000000900416613777565b613345565b905060006130528289613748565b905061305e8a896132dc565b306000908152600160205260408120805484929061307d90849061375f565b9091555061308d90508982613321565b886001600160a01b03168a6001600160a01b031660008051602061394b833981519152836040516130c091815260200190565b60405180910390a350505050505050505050565b80601b60008282546130e6919061375f565b90915550506016546131039030906001600160a01b0316846120c3565b60165460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015613170573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131959190613906565b5050505050565b6019546000906064906131b29060ff1684613729565b6131bc91906137d2565b905080601a60008282546131d0919061375f565b9091555050601a54670de0b6b3a764000010156111735761117361278e565b600081815260018301602052604081205480156132d2576000613213600183613748565b855490915060009061322790600190613748565b9050600086600001828154811061324057613240613811565b906000526020600020015490508087600001848154811061326357613263613811565b60009182526020808320909101929092558281526001890190915260409020849055865487908061329657613296613934565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611134565b6000915050611134565b6001600160a01b038216600090815260016020526040812054613300908390613748565b6001600160a01b039093166000908152600160205260409020929092555050565b6001600160a01b03821660009081526001602052604081205461330090839061375f565b60006127108260ff168460ff168661335d9190613729565b6133679190613729565b61337191906137d2565b949350505050565b6001600160a01b038116811461178e57600080fd5b600080604083850312156133a157600080fd5b82356133ac81613379565b915060208301356133bc81613379565b809150509250929050565b600060208083528351808285015260005b818110156133f4578581018301518582016040015282016133d8565b81811115613406576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561342f57600080fd5b823561343a81613379565b946020939093013593505050565b60006020828403121561345a57600080fd5b813561138881613379565b803560ff8116811461347657600080fd5b919050565b60006020828403121561348d57600080fd5b61138882613465565b6000806000606084860312156134ab57600080fd5b83356134b681613379565b925060208401356134c681613379565b929592945050506040919091013590565b6000602082840312156134e957600080fd5b5035919050565b801515811461178e57600080fd5b60006020828403121561351057600080fd5b8135611388816134f0565b600080600080600060a0868803121561353357600080fd5b61353c86613465565b945061354a60208701613465565b935061355860408701613465565b925061356660608701613465565b915061357460808701613465565b90509295509295909350565b6000806040838503121561359357600080fd5b823561359e81613379565b915060208301356133bc816134f0565b600080604083850312156135c157600080fd5b50508035926020909101359150565b6000602082840312156135e257600080fd5b813561ffff8116811461138857600080fd5b602080825260129082015271086c2d8d8cae440dcdee840d2dc4082eae8d60731b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561367157816000190482111561365757613657613620565b8085161561366457918102915b93841c939080029061363b565b509250929050565b60008261368857506001611134565b8161369557506000611134565b81600181146136ab57600281146136b5576136d1565b6001915050611134565b60ff8411156136c6576136c6613620565b50506001821b611134565b5060208310610133831016604e8410600b84101617156136f4575081810a611134565b6136fe8383613636565b806000190482111561371257613712613620565b029392505050565b600061138860ff841683613679565b600081600019048311821515161561374357613743613620565b500290565b60008282101561375a5761375a613620565b500390565b6000821982111561377257613772613620565b500190565b600060ff821660ff84168060ff0382111561379457613794613620565b019392505050565b6000602082840312156137ae57600080fd5b5051919050565b6000602082840312156137c757600080fd5b8151611388816134f0565b6000826137ef57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561380657600080fd5b815161138881613379565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156138605781516001600160a01b03168752958201959082019060010161383b565b509495945050505050565b8481526080602082015260006138846080830186613827565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a0604082015260006138bf60a0830186613827565b6001600160a01b0394909416606083015250608001529392505050565b60208082526010908201526f3bb430b63290383937ba32b1ba34b7b760811b604082015260600190565b60008060006060848603121561391b57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4ae419f34da108779a066fd52655cf31a9dc50d49961915c84d2546891ff71364736f6c634300080d0033

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

0000000000000000000000004b7945f27acec70c01fb96999b659ddf85875f1b

-----Decoded View---------------
Arg [0] : unclg (address): 0x4B7945f27acEC70C01FB96999b659Ddf85875F1B

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004b7945f27acec70c01fb96999b659ddf85875f1b


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.