/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */
package org.eclipse.compare.internal.patch;

import org.eclipse.jface.dialogs.MessageDialog;

import org.eclipse.compare.internal.ListDialog;

public class PatchErrorDialog {
	
	private PatchErrorDialog() {
		// no instance.
	}
	
}
