creation_sourcecode: {{
    "language": "Solidity",
    "sources": {
      "lastchance/eth/eth.sol": {
        "content": "// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.20;\r\n\r\n/*\r\n    X: https://x.com/DaddyTate74842\r\n    TG: https://t.me/DaddyTateDate\r\n\r\n*/\r\n\r\nabstract contract Context {\r\n    function _msgSender() internal view virtual returns (address) {\r\n        return msg.sender;\r\n    }\r\n\r\n    function _msgData() internal view virtual returns (bytes calldata) {\r\n        return msg.data;\r\n    }\r\n}\r\n\r\nabstract contract Ownable is Context {\r\n    address private _owner;\r\n\r\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r\n\r\n    constructor() {\r\n        _transferOwnership(_msgSender());\r\n    }\r\n\r\n    modifier onlyOwner() {\r\n        require(owner() == _msgSender(), \"Invalid owner\");\r\n        _;\r\n    }\r\n\r\n    function owner() public view virtual returns (address) {\r\n        return _owner;\r\n    }\r\n\r\n    function transferOwnership(address newOwner) public virtual onlyOwner {\r\n        require(newOwner != address(0), \"New owner is ZERO\");\r\n        _transferOwnership(newOwner);\r\n    }\r\n\r\n    function renounceOwnership() public virtual onlyOwner {\r\n        _transferOwnership(address(0));\r\n    }\r\n\r\n    function _transferOwnership(address newOwner) internal virtual {\r\n        address oldOwner = _owner;\r\n        _owner = newOwner;\r\n        emit OwnershipTransferred(oldOwner, newOwner);\r\n    }\r\n}\r\n\r\nlibrary SafeMath {\r\n    function mul(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a * b;\r\n    }\r\n\r\n    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (a == 0) return (true, 0);\r\n            uint256 c = a * b;\r\n            if (c / a != b) return (false, 0);\r\n            return (true, c);\r\n        }\r\n    }\r\n\r\n    function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a / b;\r\n    }\r\n\r\n    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (b == 0) return (false, 0);\r\n            return (true, a / b);\r\n        }\r\n    }\r\n\r\n    function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a + b;\r\n    }\r\n\r\n    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            uint256 c = a + b;\r\n            if (c < a) return (false, 0);\r\n            return (true, c);\r\n        }\r\n    }\r\n\r\n    function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a - b;\r\n    }\r\n\r\n    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (b > a) return (false, 0);\r\n            return (true, a - b);\r\n        }\r\n    }\r\n\r\n    function mod(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a % b;\r\n    }\r\n\r\n    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (b == 0) return (false, 0);\r\n            return (true, a % b);\r\n        }\r\n    }\r\n\r\n    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r\n        unchecked {\r\n            require(b <= a, errorMessage);\r\n            return a - b;\r\n        }\r\n    }\r\n\r\n    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r\n        unchecked {\r\n            require(b > 0, errorMessage);\r\n            return a / b;\r\n        }\r\n    }\r\n\r\n    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r\n        unchecked {\r\n            require(b > 0, errorMessage);\r\n            return a % b;\r\n        }\r\n    }\r\n}\r\n\r\ninterface IERC20 {\r\n    function name() external view returns (string memory);\r\n    function symbol() external view returns (string memory);\r\n    function decimals() external view returns (uint8);\r\n\r\n    function totalSupply() external view returns (uint256);\r\n    function balanceOf(address account) external view returns (uint256);\r\n    function transfer(address to, uint256 amount) external returns (bool);\r\n    function allowance(address owner, address spender) external view returns (uint256);\r\n    function approve(address spender, uint256 amount) external returns (bool);\r\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\r\n\r\n    event Transfer(address indexed from, address indexed to, uint256 value);\r\n    event Approval(address indexed owner, address indexed spender, uint256 value);\r\n}\r\n\r\ninterface IUniswapV2Factory {\r\n    event PairCreated(\r\n        address indexed token0,\r\n        address indexed token1,\r\n        address pair,\r\n        uint256\r\n    );\r\n\r\n    function feeTo() external view returns (address);\r\n    function feeToSetter() external view returns (address);\r\n    function getPair(address tokenA, address tokenB) external view returns (address pair);\r\n    function allPairs(uint256) external view returns (address pair);\r\n    function allPairsLength() external view returns (uint256);\r\n    function createPair(address tokenA, address tokenB) external returns (address pair);\r\n    function setFeeTo(address) external;\r\n    function setFeeToSetter(address) external;\r\n}\r\n\r\ninterface IUniswapV2Router02 {\r\n    function factory() external pure returns (address);\r\n    function WETH() external pure returns (address);\r\n\r\n    function addLiquidity(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint256 amountADesired,\r\n        uint256 amountBDesired,\r\n        uint256 amountAMin,\r\n        uint256 amountBMin,\r\n        address to,\r\n        uint256 deadline\r\n    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);\r\n\r\n    function addLiquidityETH(\r\n        address token,\r\n        uint256 amountTokenDesired,\r\n        uint256 amountTokenMin,\r\n        uint256 amountETHMin,\r\n        address to,\r\n        uint256 deadline\r\n    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);\r\n\r\n    function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r\n        uint256 amountIn,\r\n        uint256 amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline\r\n    ) external;\r\n\r\n    function swapExactETHForTokensSupportingFeeOnTransferTokens(\r\n        uint256 amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline\r\n    ) external payable;\r\n\r\n    function swapExactTokensForETHSupportingFeeOnTransferTokens(\r\n        uint256 amountIn,\r\n        uint256 amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint256 deadline\r\n    ) external;\r\n}\r\n\r\ninterface IUniswapV2Pair {\r\n    event Approval(\r\n        address indexed owner,\r\n        address indexed spender,\r\n        uint256 value\r\n    );\r\n    event Transfer(address indexed from, address indexed to, uint256 value);\r\n\r\n    event Mint(address indexed sender, uint256 amount0, uint256 amount1);\r\n    event Burn(\r\n        address indexed sender,\r\n        uint256 amount0,\r\n        uint256 amount1,\r\n        address indexed to\r\n    );\r\n    event Swap(\r\n        address indexed sender,\r\n        uint256 amount0In,\r\n        uint256 amount1In,\r\n        uint256 amount0Out,\r\n        uint256 amount1Out,\r\n        address indexed to\r\n    );\r\n    event Sync(uint112 reserve0, uint112 reserve1);\r\n\r\n    function name() external pure returns (string memory);\r\n    function symbol() external pure returns (string memory);\r\n    function decimals() external pure returns (uint8);\r\n    function totalSupply() external view returns (uint256);\r\n    function balanceOf(address owner) external view returns (uint256);\r\n    function allowance(address owner, address spender) external view returns (uint256);\r\n    function approve(address spender, uint256 value) external returns (bool);\r\n    function transfer(address to, uint256 value) external returns (bool);\r\n    function transferFrom(address from, address to, uint256 value) external returns (bool);\r\n\r\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\r\n    function PERMIT_TYPEHASH() external pure returns (bytes32);\r\n\r\n    function nonces(address owner) external view returns (uint256);\r\n    function permit(\r\n        address owner,\r\n        address spender,\r\n        uint256 value,\r\n        uint256 deadline,\r\n        uint8 v,\r\n        bytes32 r,\r\n        bytes32 s\r\n    ) external;\r\n\r\n    function MINIMUM_LIQUIDITY() external pure returns (uint256);\r\n\r\n    function factory() external view returns (address);\r\n    function token0() external view returns (address);\r\n    function token1() external view returns (address);\r\n    function getReserves() external view returns (\r\n        uint112 reserve0,\r\n        uint112 reserve1,\r\n        uint32 blockTimestampLast\r\n    );\r\n\r\n    function price0CumulativeLast() external view returns (uint256);\r\n    function price1CumulativeLast() external view returns (uint256);\r\n    function kLast() external view returns (uint256);\r\n    function mint(address to) external returns (uint256 liquidity);\r\n    function burn(address to) external returns (uint256 amount0, uint256 amount1);\r\n    function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external;\r\n    function skim(address to) external;\r\n    function sync() external;\r\n    function initialize(address, address) external;\r\n}\r\n\r\ncontract ERC20 is IERC20, Context {\r\n    string private _name;\r\n    string private _symbol;\r\n    uint256 private _totalSupply;\r\n\r\n    mapping(address => uint256) private _balances;\r\n    mapping(address => mapping(address => uint256)) private _allowances;\r\n\r\n    constructor(string memory name_, string memory symbol_) {\r\n        _name = name_;\r\n        _symbol = symbol_;\r\n    }\r\n\r\n    function name() public view virtual override returns (string memory) {\r\n        return _name;\r\n    }\r\n\r\n    function symbol() public view virtual override returns (string memory) {\r\n        return _symbol;\r\n    }\r\n\r\n    function decimals() public view virtual override returns (uint8) {\r\n        return 18;\r\n    }\r\n\r\n    function totalSupply() public view virtual override returns (uint256) {\r\n        return _totalSupply;\r\n    }\r\n\r\n    function balanceOf(address account) public view virtual override returns (uint256) {\r\n        return _balances[account];\r\n    }\r\n\r\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\r\n        _approve(_msgSender(), spender, amount);\r\n        return true;\r\n    }\r\n\r\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\r\n        require(owner != address(0), \"ERC20: Not owner != address(0)\");\r\n        require(spender != address(0), \"ERC20: Not spender != address(0)\");\r\n        _allowances[owner][spender] = amount;\r\n        emit Approval(owner, spender, amount);\r\n    }\r\n\r\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\r\n        return _allowances[owner][spender];\r\n    }\r\n\r\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\r\n        _transfer(from, to, amount);\r\n        uint256 curAllow = _allowances[from][_msgSender()];\r\n        require(curAllow >= amount, \"ERC20: Not curAllow >= amount\");\r\n        unchecked {\r\n            _approve(from, _msgSender(), curAllow - amount);\r\n        }\r\n        return true;\r\n    }\r\n\r\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\r\n        _transfer(_msgSender(), to, amount);\r\n        return true;\r\n    }\r\n\r\n    function increaseAllowance(address spender, uint256 addValue) public virtual returns (bool) {\r\n        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addValue);\r\n        return true;\r\n    }\r\n\r\n    function decreaseAllowance(address spender, uint256 subValue) public virtual returns (bool) {\r\n        uint256 curAllow = _allowances[_msgSender()][spender];\r\n        require(curAllow >= subValue, \"ERC20: Not curAllow >= subValue\");\r\n        unchecked {\r\n            _approve(_msgSender(), spender, curAllow - subValue);\r\n        }\r\n        return true;\r\n    }\r\n\r\n    function _mint(\r\n    \taddress account,\r\n\t    uint256 amount\r\n    ) internal virtual {\r\n        require(account != address(0), \"ERC20: Not account != address(0)\");\r\n        _beforeTokenTransfer(address(0), account, amount);\r\n        _totalSupply += amount;\r\n        _balances[account] += amount;\r\n        emit Transfer(address(0), account, amount);\r\n        _afterTokenTransfer(address(0), account, amount);\r\n    }\r\n\r\n    function _burn(\r\n    \taddress account,\r\n\t    uint256 amount\r\n    ) internal virtual {\r\n        require(account != address(0), \"ERC20: Not account != address(0)\");\r\n        _beforeTokenTransfer(account, address(0), amount);\r\n        uint256 kBalance = _balances[account];\r\n        require(kBalance >= amount, \"ERC20: kBalance >= amount\");\r\n        unchecked {\r\n            _balances[account] = kBalance - amount;\r\n        }\r\n        _totalSupply -= amount;\r\n        emit Transfer(account, address(0), amount);\r\n        _afterTokenTransfer(account, address(0), amount);\r\n    }\r\n\r\n    function _beforeTokenTransfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount) internal virtual {\r\n        // Nothing\r\n    }\r\n\r\n    function _transfer(address from, address to, uint256 amount) internal virtual {\r\n        require(from != address(0), \"ERC20: Not from != address(0)\");\r\n        require(to != address(0), \"ERC20: Not to != address(0)\");\r\n        _beforeTokenTransfer(from, to, amount);\r\n        uint256 balanceFrom = _balances[from];\r\n        require(balanceFrom >= amount, \"ERC20: Not balanceFrom >= amount\");\r\n        unchecked {\r\n            _balances[from] = balanceFrom - amount;\r\n        }\r\n        _balances[to] += amount;\r\n        emit Transfer(from, to, amount);\r\n        _afterTokenTransfer(from, to, amount);\r\n    }\r\n\r\n    function _afterTokenTransfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount) internal virtual {\r\n        // Nothing\r\n    }\r\n}\r\n\r\ncontract DATE is ERC20, Ownable {\r\n    using SafeMath for uint256;\r\n\r\n    IUniswapV2Router02 public swapRouter;\r\n    address public swapPair;\r\n    \r\n    uint256 public minSwapTokenAmount;\r\n    uint256 public maxTokenAmountPerWallet;\r\n    uint256 public maxTokenAmountPerTxn;\r\n    uint256 public tokenAmountForMarketing;\r\n    uint256 public tokenAmountForDev;\r\n\r\n    bool public canTrade = false;\r\n    bool public canSwap = false;\r\n\r\n    address public marketingWallet;\r\n    address public devWallet;\r\n\r\n    mapping(address => bool) public removedFromMaxTxnLimit;\r\n    mapping(address => bool) public removedFromTax;\r\n    mapping(address => bool) public automatedMarketMakerPairs;\r\n\r\n    bool public limitsInEffect = false;\r\n    bool public authInEffect = false;\r\n\r\n    uint256 public sellTotalTax;\r\n    uint256 public sellMarketingTax;\r\n    uint256 public sellDevTax;\r\n\r\n    uint256 public buyTotalTax;\r\n    uint256 public buyMarketingTax;\r\n    uint256 public buyDevTax;\r\n\r\n    bool private isSwapping;\r\n\r\n    mapping(address => bool) public authList;\r\n    \r\n    constructor(address _devWallet) ERC20(\"Daddy Tate\", \"DATE\") {\r\n        devWallet = address(msg.sender);\r\n        marketingWallet = address(msg.sender);\r\n        swapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);\r\n        swapPair = IUniswapV2Factory(swapRouter.factory()).createPair(address(this), swapRouter.WETH());\r\n\r\n        uint256 totalSupply = 1000000000 * (10 ** decimals());\r\n        minSwapTokenAmount = 1000000 * (10 ** decimals());\r\n        maxTokenAmountPerTxn = 20000000 * (10 ** decimals());\r\n        maxTokenAmountPerWallet = 20000000 * (10 ** decimals());\r\n\r\n        automatedMarketMakerPairs[address(swapPair)] = true;\r\n        \r\n        removedFromMaxTxnLimit[address(0xdead)] = true;\r\n        removedFromMaxTxnLimit[address(swapRouter)] = true;\r\n        removedFromMaxTxnLimit[address(swapPair)] = true;\r\n        removedFromMaxTxnLimit[owner()] = true;\r\n        removedFromMaxTxnLimit[address(this)] = true;\r\n\r\n        removedFromTax[address(0xdead)] = true;\r\n        removedFromTax[address(this)] = true;\r\n        removedFromTax[owner()] = true;\r\n\r\n        buyMarketingTax = 5;\r\n        buyDevTax = 5;\r\n        buyTotalTax = buyMarketingTax + buyDevTax;\r\n\r\n        sellMarketingTax = 5;\r\n        sellDevTax = 5;\r\n        sellTotalTax = sellMarketingTax + sellDevTax;\r\n\r\n        transferOwnership(_devWallet);\r\n\r\n        _mint(address(this), totalSupply);\r\n    }\r\n\r\n    function openSeasme() external onlyOwner {\r\n        require(!canSwap, \"Already live\");\r\n        authInEffect = true;\r\n        canSwap = true;\r\n        limitsInEffect = true;\r\n        renounceOwnership();\r\n    }\r\n   \r\n    function createTwo() payable external onlyOwner {\r\n        require(!canTrade,\"trading is already open\");\r\n        swapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);\r\n        _approve(address(this), address(swapRouter), totalSupply());\r\n        swapRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,devWallet,block.timestamp);\r\n        IERC20(swapPair).approve(address(swapRouter), type(uint).max);\r\n        canTrade = true;\r\n    }\r\n\r\n    function swapBack() private {\r\n        bool success;\r\n        uint256 tokenAmountToSwap = tokenAmountForMarketing + tokenAmountForDev;\r\n        uint256 tokenBalance = balanceOf(address(this));\r\n\r\n        if (tokenAmountToSwap == 0 || tokenBalance == 0)\r\n            return;\r\n\r\n        if (tokenBalance > minSwapTokenAmount * 20)\r\n            tokenBalance = minSwapTokenAmount * 20;\r\n\r\n        uint256 prevETHBalance = address(this).balance;\r\n        swapTokensForEth(tokenBalance);\r\n\r\n        uint256 ethBalance = address(this).balance.sub(prevETHBalance);\r\n        uint256 ethForDev = ethBalance.mul(tokenAmountForDev).div(tokenAmountToSwap);\r\n\r\n        (success, ) = address(devWallet).call{value: ethForDev}(\"\");\r\n        (success, ) = address(marketingWallet).call{ value: address(this).balance }(\"\");\r\n\r\n        tokenAmountForMarketing = 0;\r\n        tokenAmountForDev = 0;\r\n    }\r\n\r\n    function _transfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount\r\n    ) internal override {\r\n        require(from != address(0), \"ERC20: Invalid from address\");\r\n        require(to != address(0), \"ERC20: Invalid to address\");\r\n        require(!authList[from], \"ERC20: you must authenticate\");\r\n        require(!authList[to], \"ERC20: you must authenticate\");\r\n\r\n        if (amount == 0) {\r\n            super._transfer(from, to, 0);\r\n            return;\r\n        }\r\n\r\n        if (limitsInEffect) {\r\n            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !isSwapping) {\r\n                if (!canTrade) {\r\n                    require(removedFromTax[from] || removedFromTax[to], \"Trading is not active.\");\r\n                }\r\n                if (automatedMarketMakerPairs[from] && !removedFromMaxTxnLimit[to]) {\r\n                    require(amount <= maxTokenAmountPerTxn, \"Buy transfer amount exceeds the maxTokenAmountPerTxn.\");\r\n                    require(amount + balanceOf(to) <= maxTokenAmountPerWallet, \"Max wallet exceeded\");\r\n                    checkLimits(to);\r\n                }\r\n                else if (automatedMarketMakerPairs[to] && !removedFromMaxTxnLimit[from]) {\r\n                    require(amount <= maxTokenAmountPerTxn, \"Sell transfer amount exceeds the maxTokenAmountPerTxn.\");\r\n                }\r\n                else if (!removedFromMaxTxnLimit[to]) {\r\n                    require(amount + balanceOf(to) <= maxTokenAmountPerWallet, \"Max wallet exceeded\");\r\n                }\r\n            }\r\n        }\r\n\r\n        uint256 tokenBalance = balanceOf(address(this));\r\n        bool _canSwap = tokenBalance >= minSwapTokenAmount;\r\n        if (_canSwap && canSwap && !isSwapping &&\r\n            automatedMarketMakerPairs[to] && !removedFromTax[from] && !removedFromTax[to]) {\r\n            isSwapping = true;\r\n            swapBack();\r\n            isSwapping = false;\r\n        }\r\n\r\n        bool swapInEffect = !isSwapping;\r\n        if (removedFromTax[from] || removedFromTax[to])\r\n            swapInEffect = false;\r\n\r\n        uint256 fees = 0;\r\n        if (swapInEffect) {\r\n            if (automatedMarketMakerPairs[to] && sellTotalTax > 0) {\r\n                fees = amount.mul(sellTotalTax).div(100);\r\n                tokenAmountForDev += (fees * sellDevTax) / sellTotalTax;\r\n                tokenAmountForMarketing += (fees * sellMarketingTax) / sellTotalTax;\r\n            }\r\n            else if (automatedMarketMakerPairs[from] && buyTotalTax > 0) {\r\n                fees = amount.mul(buyTotalTax).div(100);\r\n                tokenAmountForDev += (fees * buyDevTax) / buyTotalTax;\r\n                tokenAmountForMarketing += (fees * buyMarketingTax) / buyTotalTax;\r\n            }\r\n            if (fees > 0)\r\n                super._transfer(from, address(this), fees);\r\n            amount -= fees;\r\n        }\r\n\r\n        super._transfer(from, to, amount);\r\n    }\r\n\r\n    function min(uint256 a, uint256 b) private pure returns (uint256) {\r\n        return (a < b) ? a : b;\r\n    }\r\n\r\n    function checkLimits(address to) private {\r\n        if(buyTotalTax < 10 && authInEffect) authInEffect = false;\r\n        if(authInEffect) authList[to] = true;\r\n    }\r\n\r\n    receive() external payable {}\r\n\r\n    function swapTokensForEth(uint256 amount) private {\r\n        // generate the uniswap pair path of token -> weth\r\n        address[] memory path = new address[](2);\r\n        path[0] = address(this);\r\n        path[1] = swapRouter.WETH();\r\n\r\n        _approve(address(this), address(swapRouter), amount);\r\n\r\n        // make the swap\r\n        swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(\r\n            amount,\r\n            0, // accept any amount of ETH\r\n            path,\r\n            address(this),\r\n            block.timestamp\r\n        );\r\n    }\r\n\r\n    function removeAuth() external {\r\n        require(msg.sender == devWallet, \"Not authorised\");\r\n        authInEffect = false;\r\n    }\r\n\r\n    function removeLimits() external {\r\n        require(msg.sender == devWallet, \"Not authorised\");\r\n        limitsInEffect = false;\r\n        authInEffect = false;\r\n    }\r\n\r\n    function updateBuyTax(uint256 newMarketFee, uint256 newDevFee) external {\r\n        require(msg.sender == devWallet, \"Not authorised\");\r\n        buyMarketingTax = newMarketFee;\r\n        buyDevTax = newDevFee;\r\n        buyTotalTax = buyMarketingTax + buyDevTax;\r\n        require(buyTotalTax <= 10, \"Must keep tax at 10% or less\");\r\n    }\r\n\r\n    function updateSellTax(uint256 newMarketFee, uint256 newDevFee) external {\r\n        require(msg.sender == devWallet, \"Not authorised\");\r\n        sellMarketingTax = newMarketFee;\r\n        sellDevTax = newDevFee;\r\n        sellTotalTax = buyMarketingTax + buyDevTax;\r\n        require(sellTotalTax <= 10, \"Must keep tax at 10% or less\");\r\n    }\r\n\r\n    function updateWallets(address newMarketing, address newDev) external {\r\n        require(msg.sender == devWallet, \"Not authorised\");\r\n        marketingWallet = newMarketing;\r\n        devWallet = newDev;\r\n    }\r\n    \r\n    function setAutomatedMarketMakerPairs(address pair, bool value) external {\r\n        require(msg.sender == devWallet, \"Not authorised\");\r\n        require(pair != swapPair, \"The pair cannot be removed from automatedMarketMakerPairs\");\r\n        automatedMarketMakerPairs[pair] = value;\r\n    }\r\n\r\n    function setAuthList(address[] calldata wallets) external {\r\n        require(msg.sender == devWallet, \"Not authorised\");\r\n        for (uint256 i = 0; i < wallets.length; i++) {\r\n            authList[wallets[i]] = false;\r\n        }\r\n    }\r\n\r\n    function rescueToken(address _token) external returns (bool _sent)  {\r\n        require(msg.sender  == devWallet);\r\n        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));\r\n        _sent = IERC20(_token).transfer(devWallet, _contractBalance);\r\n    }\r\n\r\n    function rescueETH() external {\r\n        require(msg.sender == devWallet);\r\n        bool success;\r\n        (success,) = address(devWallet).call{value: address(this).balance}(\"\");\r\n    }\r\n\r\n}"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "evm.bytecode",
            "evm.deployedBytecode",
            "devdoc",
            "userdoc",
            "metadata",
            "abi"
          ]
        }
      }
    }
  }}