<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>About</title>
</head>
<body lang="EN-US">
<h2>About This Content</h2>
 
<p>June 27, 2012</p>
<h3>License</h3>

<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
indicated below, the Content is provided to you under the terms and conditions of the
Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
apply to your use of any object code in the Content.  Check the Redistributor's license that was 
provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
indicated below, the terms and conditions of the EPL still apply to any source code in the Content
and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>

<h3>Third Party Content</h3>
<p>The Content includes items that have been sourced from third parties as set out below. If you 
did not receive this Content directly from the Eclipse Foundation, the following is provided 
for informational purposes only, and you should look to the Redistributor's license for 
terms and conditions of use.</p>

<h4>Apache Commons Lang 2.1 (subset)</h4>

<p>The plug-in includes code from the Apache Commons Lang library, version 2.1 (&quot;Commons Lang&quot;)
developed by the Apache Software Foundation as part of the Apache Commons project.
Your use of this code is subject to the terms and conditions of the Apache License,
Version 2.0 (&quot;Apache License&quot;).
A copy of the Apache License can be found in
<a href="about_files/LICENSE-2.0.txt">about_files/LICENSE-2.0.txt</a>
and is also available at
<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.</p>

<p>The Apache attribution <a href="about_files/NOTICE">NOTICE</a> file is
included with the Content in accordance with 4d of the Apache License.</p>

<p>The code included in this plug-in incorporates only a small subset of the
original Commons Lang distribution, namely the classes Entities and IntHashMap
from the package org.apache.commons.lang.</p>

<p>Source code for Commons Lang is available at
<a href="http://commons.apache.org/lang/">http://commons.apache.org/lang/</a>.</p>

<p>The names &quot;Commons Lang&quot; and &quot;Apache Software Foundation&quot; must
not be used to endorse or promote products derived from this software without
prior written permission.
For written permission, please contact
<a href="mailto:apache@apache.org">apache@apache.org</a>.</p>

<h4>Batik SVG Toolkit 1.6 (subset)</h4>

<p>The plug-in includes a subset of Batik SVG Toolkit, version 1.6 (&quot;Batik&quot;)
developed by the Apache Software Foundation as part of the XML Graphics project.
Your use of Batik is subject to the terms and conditions of the Apache License,
Version 2.0 (&quot;Apache License&quot;).
A copy of the Apache License can be found in
<a href="about_files/LICENSE-2.0.txt">about_files/LICENSE-2.0.txt</a>
and is also available at
<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.</p>

<p>The Apache attribution <a href="about_files/NOTICE">NOTICE</a> file is
included with the Content in accordance with 4d of the Apache License.</p>

<p>The code included in this plug-in incorporates only a small subset of the
original Batik distribution, used for parsing CSS.</p>

<p>Source code for Batik is available at
<a href="http://xmlgraphics.apache.org/batik/">http://xmlgraphics.apache.org/batik/</a>.</p>

<p>The names &quot;Batik&quot; and &quot;Apache Software Foundation&quot; must
not be used to endorse or promote products derived from this software without
prior written permission.
For written permission, please contact
<a href="mailto:apache@apache.org">apache@apache.org</a>.</p>

<h4>CSS SAC 1.3 Java Binding</h4>

<p>The plug-in includes CSS SAC 1.3 Java Binding (&quot;CSS SAC&quot;) developed
by the World Wide Web Consortium (&quot;W3C&quot;).
Your use of CSS SAC is subject to the terms and conditions of the W3C software
license, dated December 31 2002 (&quot;W3C License&quot;).
A copy of the W3C License can be found in
<a href="about_files/LICENSE-W3C-20021231.html">about_files/LICENSE-W3C-20021231.html</a>
and is also available at
<a href="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231</a>.</p>

<p>Source code for CSS SAC is available at
<a href="http://www.w3.org/Style/CSS/SAC/">http://www.w3.org/Style/CSS/SAC/</a>.</p>

<h4>Rhino 1.6.6</h4>

<p>This plug-in is accompanied by Rhino, developed by Mozilla and is subject to the terms and conditions 
of the Mozilla Public License version 1.1.  A copy of the license is contained in the file <a href="about_files/MPL-1.1.txt">MPL-1.1.txt</a> 
and is also available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>.</p>

<p>Note, the code distributed here is a subset of the original
because it excludes some binary files with proprietary licenses.</p>

<p>The source for the bundle is available on the Mozilla Rhino website at
 <a href="http://www.mozilla.org/rhino/">http://www.mozilla.org/rhino/</a>.</p>

<h4>YUI Compressor 2.4.2</h4>

<p>The plug-in includes parts of the YUI Compressor 2.4.2, developed by Yahoo! and contributors, and
published under a BSD license.  A copy of the YUI license is contained in the file
 <a href="about_files/LICENSE-YUI.html">LICENSE-YUI.html</a> and is also available at
 <a href="http://developer.yahoo.com/yui/license.html">http://developer.yahoo.com/yui/license.html</a>.</p>

<h4>JSON Java API</h4>

<p>The plug-in uses the JSON Java API from JSON.org.
Your use of JSON Java API is subject to the terms and conditions of the JSON Java API license.
A copy of the JSON Java API License can be found in
<a href="about_files/LICENSE-JSON.txt">about_files/LICENSE-JSON.txt</a>
and is also available at
<a href="http://www.json.org/license.html">http://www.json.org/license.html</a>.</p>

<h4>qooxdoo 0.7.4 rev 16878 (subset)</h4>
<p>The plug-in includes a subset of qooxdoo 0.7.4 rev 16878 (&quot;qooxdoo&quot;)
developed by the The qooxdoo Project.
qooxdoo may be used under the terms of either the
<ul><li>Eclipse Public License (EPL)
    <a href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</a>
</li></ul>
or the
<ul><li>GNU Lesser General Public License (LGPL)
    <a href="http://www.gnu.org/licenses/lgpl.html">http://www.gnu.org/licenses/lgpl.html</a>
</li></ul>
</p>

<p>The Eclipse Foundation elects to include this software in this distribution 
under the EPL license.</p>  

<p>A copy of the license can be found in
<a href="about_files/LICENSE-QX.txt">about_files/LICENSE-QX.txt</a>
and is also available at
<a href="http://http://qooxdoo.org/license">http://qooxdoo.org/license</a>.</p>
</p>

<p>Source code for qooxdoo is available at
<a href="http://qooxdoo.org/download">http://qooxdoo.org/download</a>.</p>

</body>
</html>
