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

AntTargetNode_2=\ [default]
AntImportNode_0=Security exception during import
AntTaskNode_0=Security problem configuring task
AntElementNode_9=\ [from {0}]

AntModel_1=\ line:
AntModel_43=Default target {0} does not exist in this project
AntModel_44=Target {0} does not exist in this project
AntProjectNodeProxy_0=Buildfile not found
AntProjectNodeProxy_1=No targets could be determined
AntDefiningTaskNode_0=Task could not be defined within the Ant Editor context
AntDefiningTaskNode_1=Security exception attempting to define type
AntProjectNode_0=<Unable to parse as an Ant buildfile>
AntPropertyNode_0=Property could not be set within the Ant Editor context
AntPropertyNode_1=Security exception attempting to set property
