###############################################################################
# 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
###############################################################################

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=get values 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
InterfaceTypeImpl_Static_interface_methods_require_newer_JVM=Static interface method invocation requires newer JVM.
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_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_no_class_version_support24=VM does not support class file version information.
ReferenceTypeImpl_no_constant_pool_support=VM does not support constant pool information.
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_thread_not_suspended=Thread must be suspended to force early return.
ThreadReferenceImpl_thread_no_stackframes=Thread has no stack frames.
ThreadReferenceImpl_thread_object_invalid=The thread or object is invalid.
ThreadReferenceImpl_thread_or_value_unknown=The thread or value is an unknown ID.
ThreadReferenceImpl_incapatible_return_type=The specified return type is not compatible with the return type of the method.
ThreadReferenceImpl_Unknown_thread_status_received___6=Unknown thread status received:
ThreadReferenceImpl_no_force_early_return_on_threads=VM does not support forcing early return on threads.
ThreadReferenceImpl_thread_cannot_force_native_method=Cannot force return from a native method.
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_vm_read_only=The VM is read-only and cannot be modified.
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 convert method signature to tag:
TypeImpl_Invalid_signature____10=Invalid signature: "
TypeImpl___11="
TypeImpl_Can__t_convert_method_signature_to_name_2=Cannot convert method signature to name
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_count_less_than_zero=The count of refTypes cannot be less than zero.
VirtualMachineImpl_Invalid_result_flag_in_Classes_Have_Changed_response___3=Invalid result flag in Classes Have Changed response:
VirtualMachineImpl__4=
VirtualMachineImpl_0=Packet Receive Manager
VirtualMachineImpl_1=Packet Send Manager
VirtualMachineImpl_2=Reference type list cannot be null.
VirtualMachineImpl_3=Improper instance counts between VM and client.
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=Generated value ({0}) is not compatible with declared type ({1}).
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_27=Heap walking is not supported by this VM.
ReferenceTypeImpl_26=The maximum value cannot be less than zero.
ReferenceTypeImpl_30=No source names for this stratum.
ReferenceTypeImpl_31=Source Debug Extension not defined
ReferenceTypeImpl_32=source debug extension
ReferenceTypeImpl_34=No information for the specified sourceName.
SourceDebugExtensionParser_0=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_16=SMAP parsing: File name expected.
SourceDebugExtensionParser_17=SMAP parsing: File id expected.
SourceDebugExtensionParser_19=SMAP parsing: Absolute file name expected.
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.
StackFrameImpl_no_argument_values_available=The selected stack frame is no longer able to get argument values.
ObjectReferenceImpl_object_not_known=Object is not a known ID.
class_or_object_not_known=The class or object is not known or incorrect.
vm_dead=VM is not responding or disconnected.
