/*******************************************************************************
 * Copyright (c) 2000, 2012 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 * IBM Corporation - initial API and implementation
 * yyyymmdd bug      Email and other contact information
 * -------- -------- -----------------------------------------------------------
 * 20070201   154100 pmoogk@ca.ibm.com - Peter Moogk, Port internet code from WTP to Eclipse base.
 *******************************************************************************/
package org.eclipse.ui.internal.net;

import org.eclipse.osgi.util.NLS;

public final class NetUIMessages extends NLS {

	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.net.messages"; //$NON-NLS-1$

	private NetUIMessages() {
		// Do not instantiate
	}

	public static String ProxyPreferencePage_0;
	public static String ProxyPreferencePage_1;
	public static String ProxyPreferencePage_2;
	public static String ProxyPreferencePage_3;
	public static String ProxyPreferencePage_4;
	public static String ProxyPreferencePage_5;
	public static String ProxyPreferencePage_6;
	public static String ProxyPreferencePage_7;
	public static String ProxyPreferencePage_8;
	public static String ProxyPreferencePage_9;
	public static String ProxyPreferencePage_10;
	public static String ProxyPreferencePage_11;
	public static String ProxyPreferencePage_12;
	public static String ProxyPreferencePage_13;
	public static String ProxyPreferencePage_14;
	public static String ProxyPreferencePage_15;
	public static String ProxyPreferencePage_16;
	public static String ProxyPreferencePage_17;
	public static String ProxyPreferencePage_18;
	public static String ProxyPreferencePage_19;
	public static String ProxyPreferencePage_20;

	public static String ProxyEntryDialog_0;
	public static String ProxyEntryDialog_1;
	public static String ProxyEntryDialog_2;
	public static String ProxyEntryDialog_3;
	public static String ProxyEntryDialog_4;
	public static String ProxyEntryDialog_5;
	public static String ProxyEntryDialog_6;
	public static String ProxyEntryDialog_7;
	public static String ProxyEntryDialog_8;
	public static String ProxyEntryDialog_9;
	public static String ProxyEntryDialog_10;
	public static String ProxyEntryDialog_11;
	public static String ProxyEntryDialog_12;
	public static String ProxyEntryDialog_13;

	public static String ProxyBypassDialog_0;
	public static String ProxyBypassDialog_1;
	public static String ProxyBypassDialog_2;

	public static String UserValidationDialog_0;
	public static String UserValidationDialog_1;
	public static String UserValidationDialog_2;
	public static String UserValidationDialog_3;

	static {
		NLS.initializeMessages(BUNDLE_NAME, NetUIMessages.class);
	}

}
