<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<licenseinfo>
    <fileset>
        <file>src/org/netbeans/core/resources/actions/explorerView.gif</file>
        <file>src/org/netbeans/core/resources/actions/previousOutJump.gif</file>
        <file>src/org/netbeans/core/resources/actions/nextOutJump.gif</file>
        <file>src/org/netbeans/core/resources/actions/openExplorer.gif</file>
        <file>src/org/netbeans/core/resources/actions/new.gif</file>
        <file>src/org/netbeans/core/resources/actions/about.gif</file>
        <file>src/org/netbeans/core/resources/actions/configureShortcuts.gif</file>
        <file>src/org/netbeans/core/resources/actions/htmlView.gif</file>
        <file>src/org/netbeans/core/resources/error-glyph.gif</file>
        <file>src/org/netbeans/core/resources/session.gif</file>
        <file>src/org/netbeans/core/resources/topComponentDragMoveNo.gif</file>
        <file>src/org/netbeans/core/resources/sdi.gif</file>
        <file>src/org/netbeans/core/resources/webbrowsercateg.gif</file>
        <file>src/org/netbeans/core/resources/setting-defined.gif</file>
        <file>src/org/netbeans/core/resources/topComponentDragMove.gif</file>
        <file>src/org/netbeans/core/resources/breakpoint.gif</file>
        <file>src/org/netbeans/core/resources/objectTypes.gif</file>
        <file>src/org/netbeans/core/resources/copy.gif</file>
        <file>src/org/netbeans/core/resources/toolbarsOption.gif</file>
        <file>src/org/netbeans/core/resources/action.gif</file>
        <file>src/org/netbeans/core/resources/setting-inherited.gif</file>
        <file>src/org/netbeans/core/resources/topComponentDragCopy.gif</file>
        <file>src/org/netbeans/core/resources/toolbars.gif</file>
        <file>src/org/netbeans/core/resources/breakpoints.gif</file>
        <file>src/org/netbeans/core/resources/toolbars32.gif</file>
        <file>src/org/netbeans/core/resources/environment24.gif</file>
        <file>src/org/netbeans/core/resources/exception.gif</file>
        <file>src/org/netbeans/core/resources/frames/debugger.gif</file>
        <file>src/org/netbeans/core/resources/frames/webbrowser.gif</file>
        <file>src/org/netbeans/core/resources/frames/editor.gif</file>
        <file>src/org/netbeans/core/resources/frames/explorer.gif</file>
        <file>src/org/netbeans/core/resources/mdi.gif</file>
        <file>src/org/netbeans/core/resources/outputSettings.gif</file>
        <file>src/org/netbeans/core/resources/actions.gif</file>
        <file>src/org/netbeans/core/resources/setting-ignored.gif</file>
        <file>src/org/netbeans/core/resources/log-file.gif</file>
        <file>src/org/netbeans/core/resources/menu.gif</file>
        <file>src/org/netbeans/core/resources/topComponentDragCopyNo.gif</file>
        <file>test/unit/data/projects/sfs-attr-test/sfs_attr_test/badge.gif</file>
        <file>test/unit/data/projects/sfs-attr-test/sfs_attr_test/main.gif</file>
        <file>test/unit/data/projects/sfs-attr-test/sfs_attr_test/main-plus-badge.gif</file>
        <file>test/qa-functional/src/gui/propertyeditors/data/ColorPreview.gif</file>
        <license ref="Apache-2.0-ASF" />
        <comment type="COMMENT_UNSUPPORTED" />
    </fileset>
</licenseinfo>
