```\n function claim() external {\n        checkingEpoch();\n        require(\n            uint8(epoch) > 1 && !admin.blockClaim(address(this)),\n            "TokenSale: Not time or not allowed"\n        );\n\n        Staked storage s = stakes[msg.sender];\n        require(s.amount != 0, "TokenSale: No Deposit"); \n        require(!s.claimed, "TokenSale: Already Claimed");\n\n        uint256 left;\n        (s.share, left) = _claim(s);\n        require(left > 0, "TokenSale: Nothing to claim");  // @audit - problematic line \n        uint256 refundTaxAmount;\n        if (s.taxAmount > 0) {\n            uint256 tax = userTaxRate(s.amount, msg.sender);\n            uint256 taxFreeAllc = _maxTaxfreeAllocation(msg.sender) * PCT_BASE;\n            if (taxFreeAllc >= s.share) {\n                refundTaxAmount = s.taxAmount;\n            } else {\n                refundTaxAmount = (left * tax) / POINT_BASE; // tax refund is on the wrong amount \n            }\n            usdc.safeTransferFrom(marketingWallet, msg.sender, refundTaxAmount);\n        }\n        s.claimed = true;\n        usdc.safeTransfer(msg.sender, left);\n        emit Claim(msg.sender, left);\n    }\n```\n