Gitblit
Copyright 2011 gitblit.com

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This is an aggregated NOTICE file for the projects included
in this distribution or linked to by this distribution.

---------------------------------------------------------------------------
Bootstrap
---------------------------------------------------------------------------
   Bootstrap, released under the
   Apache Software License, Version 2.0.

   http://twitter.github.com/bootstrap

---------------------------------------------------------------------------
google-code-prettify
---------------------------------------------------------------------------
   google-code-prettify, released under the
   Apache Software License, Version 2.0.

   http://code.google.com/p/google-code-prettify

---------------------------------------------------------------------------
Commons Daemon
---------------------------------------------------------------------------
   Commons Daemon, released under the
   Apache Software License, Version 2.0.

   http://commons.apache.org/daemon
   
---------------------------------------------------------------------------
JGit
---------------------------------------------------------------------------
   JGit, released under the
   Eclipse Distribution License 1.0.

   http://eclipse.org/jgit
   
---------------------------------------------------------------------------
Apache Wicket
---------------------------------------------------------------------------
   Apache Wicket, released under the
   Apache Software License, Version 2.0.

   http://wicket.apache.org
   
---------------------------------------------------------------------------
WicketStuff GoogleCharts
---------------------------------------------------------------------------
   WicketStuff GoogleCharts, released under the
   Apache Software License, Version 2.0.

   https://github.com/wicketstuff/core/wiki/GoogleCharts   
   
---------------------------------------------------------------------------
Jetty
---------------------------------------------------------------------------
   Jetty, released under the
   Apache Software License, Version 2.0.

   http://eclipse.org/jetty

---------------------------------------------------------------------------
Apache Lucene
---------------------------------------------------------------------------
   Apache Lucene, released under the
   Apache Software License, Version 2.0.

   http://lucene.apache.org

---------------------------------------------------------------------------
Groovy
---------------------------------------------------------------------------
   Groovy, released under the
   Apache Software License, Version 2.0.

   http://groovy.codehaus.org

---------------------------------------------------------------------------
SLF4J
---------------------------------------------------------------------------
   SLF4J, released under the
   MIT/X11 License.

   http://www.slf4j.org
   
---------------------------------------------------------------------------
Log4j
---------------------------------------------------------------------------
   Log4j, released under the
   Apache Software License, Version 2.0.

   http://logging.apache.org/log4j   
 
---------------------------------------------------------------------------
BouncyCastle
---------------------------------------------------------------------------
   BouncyCastle, released under the
   MIT/X11 License.

   http://www.bouncycastle.org
   
---------------------------------------------------------------------------
JSch
---------------------------------------------------------------------------
   JSch - Java Secure Channel, released under the
   BSD License.

   http://www.jcraft.com/jsch

---------------------------------------------------------------------------
Rome
---------------------------------------------------------------------------
   Rome RSS and Atom Java Utilities, released under the
   Apache Software License, Version 1.1.

   http://rome.dev.java.net

---------------------------------------------------------------------------
jdom
---------------------------------------------------------------------------
   jdom xml library, released under the
   Apache-style Software License.

   http://www.jdom.org

---------------------------------------------------------------------------
google-gson
---------------------------------------------------------------------------
   google-gson, released under the
   Apache-style Software License.

   http://code.google.com/p/google-gson

---------------------------------------------------------------------------
javamail
---------------------------------------------------------------------------
   javamail, released under multiple licenses
   CDDL-1.0, BSD, GPL-2.0, GNU-Classpath.

   http://kenai.com/projects/javamail

---------------------------------------------------------------------------
JUnit
---------------------------------------------------------------------------
   JUnit, released under the
   Common Public License.

   http://junit.org

---------------------------------------------------------------------------
ant-googlecode
---------------------------------------------------------------------------
   ant-googlecode, released under the
   New BSD License
   
   http://code.google.com/p/ant-googlecode

---------------------------------------------------------------------------
GenJar
---------------------------------------------------------------------------
   GenJar, released under the
   Apache Software License, Version 1.1.
   
   http://genjar.sourceforge.net
   
---------------------------------------------------------------------------
Fancybox image viewer
---------------------------------------------------------------------------
   Fancybox image viewer, released under the
   MIT and GPL Licenses.

   http://fancybox.net
   
---------------------------------------------------------------------------
FatCow Icons
---------------------------------------------------------------------------
   FatCow Icons, released under the
   Creative Commons CC-BY License.

   http://www.fatcow.com/free-icons

---------------------------------------------------------------------------
Git logo
---------------------------------------------------------------------------
   Git logo, released under the
   Creative Commons CC-BY License.

   http://henrik.nyh.se/2007/06/alternative-git-logo-and-favicon

---------------------------------------------------------------------------
Git logo
---------------------------------------------------------------------------
   Git logo, released under the
   Creative Commons Attribution 3.0 Unported License.

   http://git-scm.com/downloads/logos
   
---------------------------------------------------------------------------
magnifying glass search icon
---------------------------------------------------------------------------
   magnifying glass search icon, released under the
   Creative Commons CC-BY License.

   http://gnome.org

---------------------------------------------------------------------------
GLYHPICONS
---------------------------------------------------------------------------
   GLPYHICONS, released under the
   Creative Commons CC-BY License.

   http://glyphicons.com
      
---------------------------------------------------------------------------
UnboundID
---------------------------------------------------------------------------
   UnboundID, released under the
   GNU LESSER GENERAL PUBLIC LICENSE. (http://www.unboundid.com/products/ldap-sdk/docs/LICENSE-LGPLv2.1.txt)

   http://www.unboundid.com

---------------------------------------------------------------------------
JCalendar
---------------------------------------------------------------------------
   JCalendar, released under the
   GNU LESSER GENERAL PUBLIC LICENSE. (http://www.unboundid.com/products/ldap-sdk/docs/LICENSE-LGPLv2.1.txt)

   http://www.toedter.com/en/jcalendar
   
---------------------------------------------------------------------------
Commons-Compress
---------------------------------------------------------------------------
   Commons-Compress, released under the
   Apache Software License, Version 2.0.

   http://commons.apache.org/compress

---------------------------------------------------------------------------
XZ for Java
---------------------------------------------------------------------------
   XZ for Java, released under the
   Public Domain

   http://tukaani.org/xz/java.html

---------------------------------------------------------------------------
Iconic
---------------------------------------------------------------------------
   Iconic, release under the
   Creative Commons Share Alike 3.0 License.
   
   http://somerandomdude.com/work/iconic
   
---------------------------------------------------------------------------
AngularJS
---------------------------------------------------------------------------
   AngularJS, release under the
   MIT License.
   
   http://angularjs.org/   
   
---------------------------------------------------------------------------
FreeMarker
---------------------------------------------------------------------------
   FreeMarker, release under a
   modified BSD License. (http://www.freemarker.org/docs/app_license.html)
   
   http://www.freemarker.org/

---------------------------------------------------------------------------
Waffle
---------------------------------------------------------------------------
   Waffle, release under the
   Eclipse Public License, version 1.0
   
   http://dblock.github.io/waffle

---------------------------------------------------------------------------
JNA
---------------------------------------------------------------------------
   JNA, release under the
   Lesser GNU Public License, version 2.1
   
   https://github.com/twall/jna
   
---------------------------------------------------------------------------
Guava
---------------------------------------------------------------------------
   Guava, release under the
   Apache License 2.0.
   
   https://code.google.com/p/guava-libraries

---------------------------------------------------------------------------
libpam4j
---------------------------------------------------------------------------
   libpam4j, release under the
   MIT license.
   
   https://github.com/kohsuke/libpam4j

---------------------------------------------------------------------------
commons-codec
---------------------------------------------------------------------------
   commons-codec, release under the
   Apache License 2.0.
   
   http://commons.apache.org/proper/commons-codec

---------------------------------------------------------------------------
pegdown
---------------------------------------------------------------------------
   pegdown, release under the
   Apache License 2.0.
   
   https://github.com/sirthias/pegdown
        