###############################################################################
#  Copyright (c) 2000, 2009 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
###############################################################################

Breakpoint_no_associated_marker=Breakpoint does not have an associated marker.
BreakpointManager_Missing_breakpoint_definition=Missing breakpoint definition for marker type {0}
BreakpointManager_Missing_model_identifier=Breakpoint missing debug model identifier
DebugEvent_illegal_detail=detail is not one of the allowed constants, see IDebugEventConstants
DebugEvent_illegal_kind=kind is not one of the allowed constants, see IDebugEventConstants
DebugPlugin_Eclipse_runtime_does_not_support_working_directory_2=Eclipse runtime does not support working directory
DebugPlugin_1=Debug Event Dispatch
DebugPlugin_0=Exception occurred executing command line.
DebugPlugin_2=Internal message logged from Debug Core: {0}
DebugPlugin_3=Error logged from Debug Core: 
DebugPlugin_4=Invalid process factory extension contributed by {0}; id: {1}
DebugPlugin_5=Invalid status handler extension: {0}
DebugPlugin_6=An exception occurred in asynchronous runnable.
DebugPlugin_7=An exception occurred while filtering debug events.
DebugPlugin_8=An exception occurred while dispatching debug events.
EnvironmentVariableResolver_0=Environment variable not specified
SystemPropertyResolver_0=System property not specified
InputStreamMonitor_label=Input Stream Monitor
Launch_terminate_failed=Terminate failed
LaunchConfiguration_Failed_to_delete_launch_configuration__1=Failed to delete launch configuration.
LaunchConfiguration_9=Preparing launch delegate...
LaunchConfiguration_8=Performing pre-launch check...
LaunchConfiguration_7=Build before launch - 
LaunchConfiguration_6=Performing required build...
LaunchConfiguration_5=Performing incremental workspace build...
LaunchConfiguration_4=Performing final launch validation...
LaunchConfiguration_3=Initializing source locator...
LaunchConfiguration_2=Launching delegate...
LaunchConfiguration_0=Launch configuration has corrupt resource mapping attributes
LaunchConfiguration_11=No launch delegate found - launch canceled
LaunchConfiguration_13=Duplicate launcher detected - launch canceled
LaunchConfiguration_14=Incompatible launch mode: expecting {0} instead of {1}
LaunchConfiguration_16=Exception occurred creating launch configuration memento
LaunchConfiguration_17=Exception occurred parsing memento
LaunchConfiguration_18=Invalid launch configuration memento: missing path attribute
LaunchConfiguration_19=Invalid launch configuration memento: missing local attribute
LaunchConfigurationDelegate_6=Searching for errors
LaunchConfigurationDelegate_7=Searching for errors in {0}
LaunchConfigurationDelegate_scoped_incremental_build=Scoped incremental build before launch...
LaunchConfigurationInfo_Attribute__0__is_not_of_type_boolean__3=Attribute {0} is not of type boolean.
LaunchConfigurationInfo_Attribute__0__is_not_of_type_int__2=Attribute {0} is not of type int.
LaunchConfigurationInfo_Attribute__0__is_not_of_type_java_lang_String__1=Attribute {0} is not of type java.lang.String.
LaunchConfigurationInfo_Attribute__0__is_not_of_type_java_util_List__1=Attribute {0} is not of type java.util.List.
LaunchConfigurationInfo_Attribute__0__is_not_of_type_java_util_Map__1=Attribute {0} is not of type java.util.Map.
LaunchConfigurationInfo_Invalid_launch_configuration_XML__10=Invalid launch configuration XML.
LaunchConfigurationInfo_missing_type=Launch configuration type id \"{0}\" does not exist.\nPossible causes:\n\tMissing specification of a launch type (missing plug-in)\n\tIncorrect launch configuration XML
LaunchConfigurationInfo_36=A null key has been specified for an attribute in this launch configuration
LaunchConfigurationInfo_35=Attribute {0} is not of type java.util.Set.
LaunchConfigurationWorkingCopy__0__occurred_generating_launch_configuration_XML__1={0} occurred generating launch configuration XML.
LaunchConfigurationWorkingCopy_Specified_container_for_launch_configuration_does_not_exist_2=Specified container for launch configuration does not exist
LaunchConfigurationWorkingCopy_5=Unable to save launch configuration.
LaunchConfigurationWorkingCopy_0=Saving launch configuration [{0}]:
LaunchConfigurationWorkingCopy_1=Writing local file
LaunchConfigurationWorkingCopy_2=Creating new file {0}.launch in workspace
LaunchConfigurationWorkingCopy_3=Setting contents of {0}.launch
LaunchConfigurationWorkingCopy_4=Unable to obtain storage to write launch configuration
LaunchManager__0__occurred_while_reading_launch_configuration_file__1___1={0} occurred while reading launch configuration file: {1}.
LaunchManager_Invalid_launch_configuration_index__18=Invalid launch configuration index.
LaunchManager_does_not_exist=Launch configuration {0} at {1} does not exist.
LaunchManager_does_not_exist_no_store_found=Launch configuration {0} does not exist
LaunchManager_Source_locator_does_not_exist___0__13=Source locator does not exist: {0}
LaunchManager_26=Import failed
LaunchManager_27=Failed to import {0}.
LaunchManager_28=Importing {0}
LaunchManager_29=Importing launch configurations

# This describes the name of a single launch configuration
# {0} is the base name of the configuration
# {1} is the numerical modifier for the name
# For example if we have a config named 'test' and we created a new one from test
# we would get 'test (1)', where test is the basename, and 1 is the numerical modifier
LaunchManager_31={0} ({1})
LaunchDelegate_0=No description provided.
LaunchDelegate_1={0} Launcher
LaunchDelegate_2={0} launcher
LaunchDelegate_3=Launch delegate for {0} does not implement required interface ILaunchConfigurationDelegate.
LaunchMode_0={0} As
LaunchMode_1=Required attribute {0} missing for launchMode extension.
LogicalStructureType_0=<Missing Description>
LogicalStructureType_1=Required attribute {0} missing for logicalStructureType extension.
LogicalStructureProvider_0=Required attribute modelIdentifier missing for logicalStructureType extension.
LogicalStructureProvider_1=Required attribute class missing for logicalStructureType extension.
OutputStreamMonitor_label=Output Stream Monitor
ProcessMonitorJob_0=Process monitor
RuntimeProcess_terminate_failed=Terminate failed
RuntimeProcess_Exit_value_not_available_until_process_terminates__1=Exit value not available until process terminates.
LaunchConfigurationType_7=Launch mode not supported: {0}
WatchExpression_0=(Watch expressions not supported)
NullStreamsProxy_0=Null Stream Monitor
