<?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>plugins/chrome/_locales/en/messages.json</file>
        <file>plugins/chrome/manifest.json</file>
        <file>plugins/chrome/img/netbeans128.png</file>
        <file>plugins/chrome/img/netbeans16.png</file>
        <file>plugins/chrome/img/netbeans48.png</file>
        <file>plugins/chrome/img/presets/DESKTOP.png</file>
        <file>plugins/chrome/img/presets/NETBOOK.png</file>
        <file>plugins/chrome/img/presets/SMARTPHONE_LANDSCAPE.png</file>
        <file>plugins/chrome/img/presets/SMARTPHONE_PORTRAIT.png</file>
        <file>plugins/chrome/img/presets/TABLET_LANDSCAPE.png</file>
        <file>plugins/chrome/img/presets/TABLET_PORTRAIT.png</file>
        <file>plugins/chrome/img/presets/WIDESCREEN.png</file>
        <file>plugins/chrome/img/presets/boxModel.png</file>
        <file>plugins/chrome/img/presets/customize.png</file>
        <file>plugins/chrome/img/presets/freezeJavaScript.png</file>
        <file>plugins/chrome/img/presets/menu.png</file>
        <file>plugins/chrome/img/presets/selectionMode.png</file>
        <file>plugins/chrome/img/presets/sizeToFit.png</file>
        <file>plugins/chrome/img/warnings/disconnectedDebugger.png</file>
        <file>plugins/chrome/img/warnings/icon.png</file>
        <file>plugins/chrome_web_store_resources/netbeans-cube-chrome.png</file>
        <file>plugins/chrome_web_store_resources/screenshot_1280x800.jpg</file>
        <file>src/org/netbeans/modules/extbrowser/chrome/resources/warning.png</file>
        <license ref="Apache-2.0-ASF" />
        <comment type="COMMENT_UNSUPPORTED" />
    </fileset>
</licenseinfo>
