<!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>October 15, 2018</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 Mina SSHD :: OSGi</h4>

<p>The plug-in includes software developed by <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> as part of the Apache Mina SSHD project.</p>

<p>Apache Mina SSHD :: OSGi is provided to you under the terms and conditions of the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache 2.0 License</a> (<a href="about_files/APACHE_2.0_LICENSE.txt" target="_blank">APACHE_2.0_LICENSE.txt</a>).</p>

<p>Apache Mina SSHD :: OSGi including its source is available from <a href="https://mina.apache.org/sshd-project/" target="_blank">mina.apache.org/sshd-project/</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="https://issues.apache.org/jira/browse/SSHD" target="_blank">issues.apache.org/jira/browse/SSHD</a>. The following mailing lists can be used to communicate with the project communities: Users mailing list &lt;users@mina.apache.org&gt; (<a href="http://mail-archives.apache.org/mod_mbox/mina-users/" target="_blank">archive</a>), MINA Development mailing list &lt;dev@mina.apache.org&gt; (<a href="http://mail-archives.apache.org/mod_mbox/mina-dev/" target="_blank">archive</a>) or MINA Commit mailing list (<a href="http://mail-archives.apache.org/mod_mbox/mina-commits/" target="_blank">archive</a>).</p>

<p>
Apache Mina SSHD :: OSGi includes jbcrypt, a Java implementation of the FreeBSD bcrypt algorithm. Jbcrypt is licensed under the terms and conditions of the <a href="https://opensource.org/licenses/ISC" target="_blank">ISC License</a> (<a href="about_files/ISC_LICENSE.txt" target="_blank">ISC_LICENSE.txt</a>).
Jbcrypt is available stand-alone as maven artifact <code>org.connectbot.jbcrypt</code>. The original source is available from <a href="https://github.com/kruton/jbcrypt/" target="_blank">GitHub (Kenny Root)</a> based on earlier work by Damien Miller available at <a href="https://github.com/djmdjm/jBCrypt" target="_blank">GitHub (Damien Miller)</a>.
</p>

</body>
</html>