<?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/swing/plaf/resources/vista_folder.png</file>
        <file>src/org/netbeans/swing/plaf/resources/osx-folder.png</file>
        <file>src/org/netbeans/swing/plaf/resources/nimbus_expander.png</file>
        <file>src/org/netbeans/swing/plaf/resources/win-explorer-opened-folder.gif</file>
        <file>src/org/netbeans/swing/plaf/resources/xp-explorer-folder.gif</file>
        <file>src/org/netbeans/swing/plaf/resources/vista_mini_close_over.png</file>
        <file>src/org/netbeans/swing/plaf/resources/cancel_task_win_xp.png</file>
        <file>src/org/netbeans/swing/plaf/resources/vista_mini_close_enabled.png</file>
        <file>src/org/netbeans/swing/plaf/resources/vista_mini_close_pressed.png</file>
        <file>src/org/netbeans/swing/plaf/resources/cancel_task_win_classic.png</file>
        <file>src/org/netbeans/swing/plaf/resources/win-explorer-folder.gif</file>
        <file>src/org/netbeans/swing/plaf/resources/cancel_task_linux_mac.png</file>
        <file>src/org/netbeans/swing/plaf/resources/hidpi-folder-closed.png</file>
        <file>src/org/netbeans/swing/plaf/resources/hidpi-folder-open.png</file>
        <file>src/org/netbeans/swing/plaf/aqua/border_top_left.png</file>
        <file>src/org/netbeans/swing/plaf/aqua/border_bottom.png</file>
        <file>src/org/netbeans/swing/plaf/aqua/border_top.png</file>
        <file>src/org/netbeans/swing/plaf/aqua/border_left.png</file>
        <file>src/org/netbeans/swing/plaf/aqua/border_right.png</file>
        <file>src/org/netbeans/swing/plaf/aqua/border_bottom_right.png</file>
        <file>src/org/netbeans/swing/plaf/aqua/border_top_right.png</file>
        <file>src/org/netbeans/swing/plaf/aqua/border_bottom_left.png</file>
        <license ref="Apache-2.0-ASF" />
        <comment type="COMMENT_UNSUPPORTED" />
    </fileset>
    <fileset>
        <file>src/org/netbeans/swing/plaf/util/SmoothScrollPaneUI.java</file>
        <license ref="Apache-2.0" />
        <!-- Complete contents of the NOTICE.txt file as retrieved on 2018-09-17 from
             https://github.com/JetBrains/intellij-community/blob/34b9dfd0585937c3731e06a89554d1dc86f7f235/NOTICE.txt -->
        <notice>
This software includes code from IntelliJ IDEA Community Edition
Copyright (C) JetBrains s.r.o.
https://www.jetbrains.com/idea/
</notice>
    </fileset>
</licenseinfo>
