<!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>February 24, 2014</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, you should look to the Redistributor's
license for terms and conditions of use.</p>

<h4>Apache Source</h4>
<p>This plugin incudes code based on software developed by The Apache Software Foundation</p>

<p>Your use of the code from Apache Software foundation is subject to the terms and
 conditions of the Apache License, Version 2.0. A copy of the license is contained in the file
 <a href="LICENSE-APACHE-2.0.txt">LICENSE-APACHE-2.0</a> and is also available at <a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>.</p>

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

<p>Source code and further information about Apache Software is available at <a href="http://apache.org/">http://apache.org/</a></p>

<h4>Google Guava</h4>
<p>This plugin inculdes code based on software developed by The Guava Authors.</p>
<p>Your use of the code from Apache Software foundation is subject to the terms and
 conditions of the Apache License, Version 2.0. A copy of the license is contained in the file
 <a href="LICENSE-APACHE-2.0.txt">LICENSE-APACHE-2.0</a> and is also available at <a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>.</p>

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

<p>Source code and further information about Guava Software is available at <a href="https://code.google.com/p/guava-libraries/">https://code.google.com/p/guava-libraries/</a></p>

<h4>JUnit</h4>
<p>This plugin includes code based on softwared developed by JUnit Team.</p>
<p>Your use of the code from JUnit team 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>.</p>

<p>Source code and further information about JUnit is available at <a href="http://junit.org/">http://junit.org/</a>.</p>
  
</body>
</html>
