private Highlight[] getByteDiffHighlights(String text, CodeUnit codeUnit,
			int cursorTextOffset) {
		Address minAddress = codeUnit.getMinAddress();
		AddressSetView unmatchedDiffs = listingDiff.getUnmatchedCode(side);
		if (unmatchedDiffs.contains(minAddress)) {
			return NO_HIGHLIGHTS;
		}
		Color byteDiffsBackgroundColor = comparisonOptions.getByteDiffsBackgroundColor();
		AddressSetView byteDiffs = listingDiff.getByteDiffs(side);
		// Get intersection of Byte Diff addresses and this code unit's addresses
		AddressSet diffSet = new AddressSet(codeUnit.getMinAddress(), codeUnit.getMaxAddress());
		diffSet = diffSet.intersect(byteDiffs);
		if (!diffSet.isEmpty()) {
			ArrayList<Highlight> highlights = new ArrayList<>();
			// Get Highlight for each byte that differs.
			for (AddressRange addressRange : diffSet) {
				Address rangeMinAddress = addressRange.getMinAddress();
				long minByteIndex = rangeMinAddress.subtract(minAddress);
				int startIndex = (int) minByteIndex * NUM_CHARACTERS_PER_BYTE;
				Address rangeMaxAddress = addressRange.getMaxAddress();
				long maxByteIndex = rangeMaxAddress.subtract(minAddress);
				int endIndex = (int) (maxByteIndex * NUM_CHARACTERS_PER_BYTE) + 1;
				highlights.add(new Highlight(startIndex, endIndex, byteDiffsBackgroundColor));
			}
			return highlights.toArray(new Highlight[highlights.size()]);
		}
		return NO_HIGHLIGHTS;
	}
Constructor for this highlight provider.
@param listingDiff the ListingDiff to use to determine where there are differences that 
need highlighting.
@param side LEFT or RIGHT
false means the highlights are for the second listing.
@param comparisonOptions the tool options that indicate the current 
background colors for the Listing code comparison panel.
Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDiffHighlightProvider.java