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

JavaLogicalStructures_0=Required attribute type missing for javaLogicalStructure element.
JavaLogicalStructures_1=javaLogicalStructure element require an attribute value, or >0 variable element as children.
JavaLogicalStructures_2=Required attribute name missing for javaLogicalStructure/variable element.
JavaLogicalStructures_3=Required attribute value missing for javaLogicalStructure/variable element.
JavaLogicalStructures_4=Required attribute description missing for javaLogicalStructure element.
JavaStructureErrorValue_0=Errors
JavaStructureErrorValue_1=Error
JavaLogicalStructure_1=Java logical structure evaluation failed.
JavaLogicalStructure_2=Exception occurred: {0}.
JavaLogicalStructure_3=Internal error(s) occurred. See log for details.
JavaLogicalStructure_0=<logical structure unavailable - not supported by VM>
JDIAllInstancesValue_0=The specified index is outside the range of this array
JDIAllInstancesValue_1=The specified offset is outside the range of this collection
JDIAllInstancesValue_10=No instances
JDIAllInstancesValue_11={0}+
JDIAllInstancesValue_12={0} instance:\n
JDIAllInstancesValue_13={0} instances:\n
JDIAllInstancesValue_2=Display limited to {0} instances, see Heap Walking preference page.
JDIAllInstancesValue_4=...
JDIAllInstancesValue_5=[{0}]
JDIAllInstancesValue_7={0}+ instances
JDIAllInstancesValue_8={0} instance
JDIAllInstancesValue_9={0} instances
