###############################################################################
# Copyright (c) 2000, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

ArrayReferenceImpl.Invalid_index_of_array_reference_given_1=Invalid index of array reference given
ArrayReferenceImpl.Invalid_ArrayReference_Value_tag_encountered___2=Invalid ArrayReference Value tag encountered: 
ArrayReferenceImpl.Attempted_to_set_more_values_in_array_than_length_of_array_3=Attempted to set more values in array than length of array
ArrayReferenceImpl.Attempted_to_set_more_values_in_array_than_given_4=Attempted to set more values in array than given
ArrayReferenceImpl.(Garbage_Collected)_ArrayReference_5=(Garbage Collected) ArrayReference
ArrayTypeImpl.getValues_not_allowed_on_array_1=getValues not allowed on array
ArrayTypeImpl.No_source_name_for_Arrays_1=No source name for Arrays
ClassTypeImpl.Class_does_not_contain_given_method_1=Class does not contain given method
ClassTypeImpl.Number_of_arguments_doesn__t_match_2=Number of arguments does not match
ClassTypeImpl.Method_is_constructor_or_intitializer_3=Method is constructor or initializer
ClassTypeImpl.Class_does_not_contain_given_method_4=Class does not contain given method
ClassTypeImpl.Number_of_arguments_doesn__t_match_5=Number of arguments does not match
ClassTypeImpl.Method_is_not_a_constructor_6=Method is not a constructor
FieldImpl.Can__t_compare_field_to_given_object_1=Cannot compare field to given object
FieldImpl.Got_FieldID_of_ReferenceType_that_is_not_a_member_of_the_ReferenceType_2=Got FieldID of ReferenceType that is not a member of the ReferenceType
LocalVariableImpl.Can__t_compare_local_variable_to_given_object_1=Cannot compare local variable to given object
LocalVariableImpl.Code_indexes_are_assumed_to_be_always_positive_2=Code indexes are assumed to be always positive
LocalVariableImpl.The_stack_frame__s_method_does_not_match_this_variable__s_method_3=The stack frame\'s method does not match this variable\'s method
LocalVariableImpl.Code_indexes_are_assumed_to_be_always_positive_4=Code indexes are assumed to be always positive
LocationImpl.Can__t_compare_location_to_given_object_1=Cannot compare location to given object
LocationImpl.Code_indexes_are_assumed_to_be_always_positive_2=Code indexes are assumed to be always positive
LocationImpl.sourcename__{0},_line__{1}_3=sourcename: {0}, line: {1}
MethodImpl.Got_empty_line_number_table_for_this_method_1=Got empty line number table for this method
MethodImpl.No_line_number_information_available_2=No line number information available
MethodImpl.Got_empty_line_number_table_for_this_method_3=Got empty line number table for this method
MethodImpl.Invalid_code_index_of_a_location_given_4=Invalid code index of a location given
MethodImpl.Can__t_compare_method_to_given_object_6=Cannot compare method to given object
MethodImpl.No_local_variable_information_available_9=No local variable information available
MethodImpl.Got_MethodID_of_ReferenceType_that_is_not_a_member_of_the_ReferenceType_10=Got MethodID of ReferenceType that is not a member of the ReferenceType
MethodImpl.No_valid_location_at_the_specified_code_index_{0}_2=No valid location at the specified code index {0}

MirrorImpl.Got_error_code_in_reply___1=Got error code in reply: 
MirrorImpl.Got_invalid_data___2=Got invalid data: 
ObjectReferenceImpl.Retrieved_a_different_number_of_values_from_the_VM_than_requested_1=Retrieved a different number of values from the VM than requested
ObjectReferenceImpl.Class_does_not_contain_given_method_2=Class does not contain given method
ObjectReferenceImpl.Number_of_arguments_doesn__t_match_3=Number of arguments does not match
ObjectReferenceImpl.Method_is_constructor_or_intitializer_4=Method is constructor or initializer
ObjectReferenceImpl.Method_is_abstract_and_can_therefore_not_be_invoked_nonvirtual_5=Method is abstract and can therefore not be invoked nonvirtual
ObjectReferenceImpl.One_of_the_arguments_of_ObjectReference.invokeMethod()_6=One of the arguments of ObjectReference.invokeMethod()
ObjectReferenceImpl.(Garbage_Collected)_ObjectReference__8=(Garbage Collected) ObjectReference 
ObjectReferenceImpl.Invalid_ObjectID_tag_encountered___9=Invalid ObjectID tag encountered: 
PrimitiveTypeImpl.Invalid_primitive_signature____1=Invalid primitive signature: "
PrimitiveTypeImpl.__2="
PrimitiveTypeImpl.A_PrimitiveType_does_not_have_modifiers_3=A PrimitiveType does not have modifiers
PrimitiveValueImpl.Invalid_Primitive_Value_encountered_1=Invalid Primitive Value encountered
PrimitiveValueImpl.Invalid_Primitive_Value_tag_encountered___2=Invalid Primitive Value tag encountered: 
ReferenceTypeImpl.Obsolete_method_1=Obsolete method
ReferenceTypeImpl.Retrieved_a_different_number_of_values_from_the_VM_than_requested_3=Retrieved a different number of values from the VM than requested
ReferenceTypeImpl.Can__t_compare_reference_type_to_given_object_4=Cannot compare reference type to given object
ReferenceTypeImpl.Source_name_is_not_known_7=Source name is not known
ReferenceTypeImpl.Invalid_ReferenceTypeID_tag_encountered___8=Invalid ReferenceTypeID tag encountered: 
ReferenceTypeImpl.Type_has_not_been_loaded_10=Type has not been loaded
StackFrameImpl.Retrieved_a_different_number_of_values_from_the_VM_than_requested_1=Retrieved a different number of values from the VM than requested
StringReferenceImpl.(Garbage_Collected)_StringReference__3=(Garbage Collected) StringReference 
ThreadReferenceImpl.Thread_was_not_suspended_1=Thread was not suspended
ThreadReferenceImpl.Invalid_index_of_stack_frames_given_4=Invalid index of stack frames given
ThreadReferenceImpl.Thread_was_not_suspended_5=Thread was not suspended
ThreadReferenceImpl.Unknown_thread_status_received___6=Unknown thread status received: 
ThreadReferenceImpl.Stop_argument_not_an_instance_of_java.lang.Throwable_in_the_target_VM_7=Stop argument not an instance of java.lang.Throwable in the target VM
ThreadReferenceImpl.8={0} (name={1}, id={2})
ThreadReferenceImpl.(Garbage_Collected)_ThreadReference__9=(Garbage Collected) ThreadReference 
ThreadReferenceImpl.Unable_to_pop_the_requested_stack_frame_from_the_call_stack_(Reasons_include__The_frame_id_was_invalid;_The_thread_was_resumed)_10=Unable to pop the requested stack frame from the call stack (Reasons include: The frame id was invalid; The thread was resumed)
ThreadReferenceImpl.Unable_to_pop_the_requested_stack_frame._The_requested_stack_frame_is_not_suspended_11=Unable to pop the requested stack frame. The requested stack frame is not suspended
ThreadReferenceImpl.Unable_to_pop_the_requested_stack_frame_from_the_call_stack_(Reasons_include__The_requested_frame_was_the_last_frame_on_the_call_stack;_The_requested_frame_was_the_last_frame_above_a_native_frame)_12=Unable to pop the requested stack frame from the call stack (Reasons include: The requested frame was the last frame on the call stack; The requested frame was the last frame above a native frame)
TypeImpl.(Unloaded_Type)_1=(Unloaded Type)
TypeImpl.Can__t_covert_method_signature_to_tag___9=Cannot covert method signature to tag: 
TypeImpl.Invalid_signature____10=Invalid signature: "
TypeImpl.__11="
ValueImpl.Invalid_Value_tag_encountered___1=Invalid Value tag encountered: 
VirtualMachineImpl.Target_VM_{0}_does_not_support_Hot_Code_Replacement_1=Target VM {0} does not support Hot Code Replacement
VirtualMachineImpl.Failed_to_get_ID_sizes_2=Failed to get ID sizes
VirtualMachineImpl.Invalid_result_flag_in_Classes_Have_Changed_response___3=Invalid result flag in Classes Have Changed response: 
VirtualMachineImpl._4=
VirtualMachineManagerImpl.Could_not_open_verbose_file___1=Could not open verbose file "
VirtualMachineManagerImpl.____2=": 
VoidTypeImpl.A_VoidType_does_not_have_modifiers_1=A VoidType does not have modifiers
VirtualMachineImpl.Add_method_not_implemented_1=Add method not implemented
VirtualMachineImpl.Scheme_change_not_implemented_2=Scheme change not implemented
VirtualMachineImpl.Hierarchy_change_not_implemented_3=Hierarchy change not implemented
VirtualMachineImpl.Delete_method_not_implemented_4=Delete method not implemented
VirtualMachineImpl.Class_modifiers_change_not_implemented_5=Class modifiers change not implemented
VirtualMachineImpl.Method_modifiers_change_not_implemented_6=Method modifiers change not implemented
VerboseWriter._<unknown_value>_1=\ <unknown value>
VerboseWriter.<unknown_bit>_2=<unknown bit>
VerboseWriter.<none>_4=<none>
ArrayReferenceImpl.Invalid_index_1=Invalid index
ArrayReferenceImpl.Invalid_srcIndex_2=Invalid srcIndex
ArrayReferenceImpl.Invalid_number_of_value_to_set_in_array_3=Invalid number of value to set in array
ValueImpl.Type_of_the_value_not_compatible_with_the_expected_type._1=Type of the value not compatible with the expected type.
ArrayReferenceImpl.Invalid_number_of_value_to_get_from_array_1=Invalid number of value to get from array
ArrayReferenceImpl.Attempted_to_get_more_values_from_array_than_length_of_array_2=Attempted to get more values from array than length of array
ReferenceTypeImpl.28=SMAP parsing: {0} already used as file id in {1}
ReferenceTypeImpl.29=SMAP parsing: {0} is not a valid lineFileId.
ReferenceTypeImpl.30=No source names for this stratum.
ReferenceTypeImpl.31=Source Debug Extension not defined
ReferenceTypeImpl.32=source debug extension
ReferenceTypeImpl.33=Source Debug Extension not defined
ReferenceTypeImpl.34=No information for the specified sourceName.
ReferenceTypeImpl.35=No information for the specified sourceName.
SourceDebugExtensionParser.0=SMAP parsing: Unexpected end of file
SourceDebugExtensionParser.1=SMAP parsing: Unexpected end of file
SourceDebugExtensionParser.2=SMAP parsing: The default stratum is not defined in a stratum section.
SourceDebugExtensionParser.3=SMAP parsing: Invalid ID.
SourceDebugExtensionParser.4=SMAP parsing: Carriage return expected.
SourceDebugExtensionParser.5=SMAP parsing: Invalid output file name.
SourceDebugExtensionParser.6=SMAP parsing: Invalid default stratum id.
SourceDebugExtensionParser.7=SMAP parsing: Stratum section expected.
SourceDebugExtensionParser.8=SMAP parsing: Invalid stratum id.
SourceDebugExtensionParser.9=SMAP parsing: Stratum \'{0}\' already defined.
SourceDebugExtensionParser.10=SMAP parsing: File section already defined for stratum \'{0}\'.
SourceDebugExtensionParser.11=SMAP parsing: Line section already defined for stratum \'{0}\'.
SourceDebugExtensionParser.12=SMAP parsing: Unexpected token \'{0}\'.
SourceDebugExtensionParser.13=SMAP parsing: No file section defined for stratum \'{0}\'.
SourceDebugExtensionParser.14=SMAP parsing: No line section defined for stratum \'{0}\'.
SourceDebugExtensionParser.15=SMAP parsing: Unexpected token \'{0}\'.
SourceDebugExtensionParser.16=SMAP parsing: File name expected.
SourceDebugExtensionParser.17=SMAP parsing: File id expected.
SourceDebugExtensionParser.18=SMAP parsing: File name expected.
SourceDebugExtensionParser.19=SMAP parsing: Absolute file name expected.
SourceDebugExtensionParser.20=SMAP parsing: Unexpected token \'{0}\'.
SourceDebugExtensionParser.21=SMAP parsing: Unexpected token \'{0}\'.
SourceDebugExtensionParser.22=SMAP parsing: Input start line expected.
SourceDebugExtensionParser.23=SMAP parsing: Line file id expected.
SourceDebugExtensionParser.24=SMAP parsing: Repeat count expected.
SourceDebugExtensionParser.25=SMAP parsing: \':\' expected.
SourceDebugExtensionParser.26=SMAP parsing: Output start line expected.
SourceDebugExtensionParser.27=SMAP parsing: Output line increment expected.
SourceDebugExtensionParser.28=SMAP parsing: Carriage return expected.
SourceDebugExtensionParser.29=SMAP parsing: Unexpected token \'{0}\'.
SourceDebugExtensionParser.30=SMAP parsing: Unexpected token \'{0}\'.
