@Override
	public void mergeConflicts(ListingMergePanel listingPanel, Address addr,
			int mergeConflictOption, TaskMonitor monitor) throws CancelledException,
			MemoryAccessException {
		if (!hasConflict(addr)) {
			return;
		}
		monitor.setMessage("Resolving User Defined Property conflicts.");
		for (int i = 0; i < propNames.length; i++) {
			propertyIndex = i;
			propertyName = propNames[i];
			if (conflictSets[i].contains(addr)) {
				if (sameOption[propertyIndex] == ASK_USER && mergeConflictOption != ASK_USER) {
					sameOption[propertyIndex] = mergeConflictOption;
				}
				if (sameOption[propertyIndex] == ASK_USER && mergeManager != null) {
					showMergePanel(listingPanel, propertyName, addr);
					monitor.checkCancelled();
				}
				else {
					merge(propertyName, addr, sameOption[propertyIndex]);
				}
			}
		}
	}
Creates a conflict panel and adds it to the indicated listing panel.

@param listingPanel the merge listing panel
@param propertyName the name of the property in conflict.
@param addr the address where the property is in conflict.
@param changeListener the changeListener that will process the user's selection
when it is made on the conflict panel.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/UserDefinedPropertyMerger.java