###############################################################################
# Copyright (c) 2004, 2005 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
###############################################################################

AntDebugTarget_0=Ant Build

AntDebugModelPresentation_0=<not available>
AntDebugModelPresentation_1=\ line: {0}
AntDebugModelPresentation_2=(breakpoint at line {0} in {1})
AntDebugModelPresentation_3=\ (Suspended {0})
AntDebugModelPresentation_4=\ (Suspended)
AntDebugModelPresentation_5=(run to line {0} in {1})

AntLineBreakpoint_0=Ant breakpoint [line: {0}]
AntThread_0=User Properties
AntThread_1=System Properties
AntThread_2=Runtime Properties
