/*******************************************************************************
 * Copyright (c) 2000, 2014 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation.
 *     Atsuhiko Yamanaka, JCraft,Inc. - Bug 170883
 *******************************************************************************/
package org.eclipse.jsch.internal.ui;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS{
  private static final String BUNDLE_NAME="org.eclipse.jsch.internal.ui.messages";//$NON-NLS-1$

  static{
    // load message values from bundle file
    NLS.initializeMessages(BUNDLE_NAME, Messages.class);
  }

  public static String CVSSSH2ServerConnection_open;
  public static String CVSSSH2PreferencePage_18;
  public static String CVSSSH2PreferencePage_19;
  public static String CVSSSH2PreferencePage_2;
  public static String CVSSSH2PreferencePage_20;
  public static String CVSSSH2PreferencePage_21;
  public static String CVSSSH2PreferencePage_23;
  public static String CVSSSH2PreferencePage_24;
  public static String CVSSSH2PreferencePage_25;
  public static String CVSSSH2PreferencePage_26;
  public static String CVSSSH2PreferencePage_27;
  public static String CVSSSH2PreferencePage_3;
  public static String CVSSSH2PreferencePage_30;
  public static String CVSSSH2PreferencePage_31;
  public static String CVSSSH2PreferencePage_32;
  public static String CVSSSH2PreferencePage_33;
  public static String CVSSSH2PreferencePage_34;
  public static String CVSSSH2PreferencePage_35;
  public static String CVSSSH2PreferencePage_36;
  public static String CVSSSH2PreferencePage_39;
  public static String CVSSSH2PreferencePage_4;
  public static String CVSSSH2PreferencePage_41;
  public static String CVSSSH2PreferencePage_42;
  public static String CVSSSH2PreferencePage_43;
  public static String CVSSSH2PreferencePage_44;
  public static String CVSSSH2PreferencePage_45;
  public static String CVSSSH2PreferencePage_47;
  public static String CVSSSH2PreferencePage_48;
  public static String CVSSSH2PreferencePage_49;
  public static String CVSSSH2PreferencePage_5;
  public static String CVSSSH2PreferencePage_50;
  public static String CVSSSH2PreferencePage_53;
  public static String CVSSSH2PreferencePage_55;
  public static String CVSSSH2PreferencePage_57;
  public static String CVSSSH2PreferencePage_59;
  public static String CVSSSH2PreferencePage_99;
  public static String CVSSSH2PreferencePage_100;
  public static String CVSSSH2PreferencePage_104;
  public static String CVSSSH2PreferencePage_105;
  public static String CVSSSH2PreferencePage_106;
  public static String CVSSSH2PreferencePage_107;
  public static String CVSSSH2PreferencePage_108;
  public static String CVSSSH2PreferencePage_109;
  public static String CVSSSH2PreferencePage_110;
  public static String CVSSSH2PreferencePage_111;
  public static String CVSSSH2ServerConnection_3;
  public static String CVSSSH2ServerConnection_0;
  public static String CVSSSH2ServerConnection_1;
  public static String CVSSSH2PreferencePage_information;
  public static String CVSSSH2PreferencePage_error;
  public static String CVSSSH2PreferencePage_confirmation;
  public static String CVSSSH2PreferencePage_question;
  public static String CVSSSH2PreferencePage_125;
  public static String CVSSSH2PreferencePage_126;
  public static String CVSSSH2PreferencePage_127;
  public static String CVSSSH2PreferencePage_128;
  public static String CVSSSH2PreferencePage_129;
  public static String CVSSSH2PreferencePage_130;
  public static String CVSSSH2PreferencePage_131;
  public static String CVSSSH2PreferencePage_132;
  public static String CVSSSH2PreferencePage_133;
  public static String CVSSSH2PreferencePage_134;
  public static String CVSSSH2PreferencePage_135;
  public static String CVSSSH2PreferencePage_136;
  public static String CVSSSH2PreferencePage_137;
  public static String CVSSSH2PreferencePage_138;
  public static String CVSSSH2PreferencePage_139;
  public static String CVSSSH2PreferencePage_140;
  public static String CVSSSH2PreferencePage_141;
  public static String CVSSSH2PreferencePage_142;
  public static String CVSSSH2PreferencePage_143;
  public static String CVSSSH2PreferencePage_144;
  public static String CVSSSH2PreferencePage_145;
  public static String CVSSSH2PreferencePage_146;
  public static String CVSSSH2PreferencePage_147;
  public static String KeyboardInteractiveDialog_0;
  public static String KeyboardInteractiveDialog_1;
  public static String KeyboardInteractiveDialog_2;
  public static String KeyboardInteractiveDialog_3;
  public static String KeyboardInteractiveDialog_4;
  public static String KeyboardInteractiveDialog_6;
  public static String KeyboradInteractiveDialog_message;
  public static String KeyboardInteractiveDialog_labelRepository;

  public static String PreferencePage_0;
  public static String PreferencePage_1;
  public static String UserInfoPrompter_0;
  public static String UserInfoPrompter_1;
  public static String UserValidationDialog_0;
  public static String UserValidationDialog_1;
  public static String UserValidationDialog_2;
  public static String UserValidationDialog_4;
  public static String UserValidationDialog_5;
  public static String UserValidationDialog_6;

  public static String UserValidationDialog_required;
  public static String UserValidationDialog_labelUser;
  public static String UserValidationDialog_labelPassword;
  public static String UserValidationDialog_password;
  public static String UserValidationDialog_user;


  public static String WorkbenchUserAuthenticator_cancelled;
  public static String WorkbenchUserAuthenticator_1;
  public static String WorkbenchUserAuthenticator_2;
  public static String WorkbenchUserAuthenticator_The_operation_was_canceled_by_the_user_1;
}
