
Apache OpenEJB, Apache TomEE
Copyright 1999-2018 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This product includes schema files developed for the Glassfish Java EE
reference implementation (http://java.sun.com/xml/ns/j2ee/).
Apache OpenEJB elects to include this software in this distribution
under the CDDL license.  You can obtain a copy of the License at:
    https://glassfish.dev.java.net/public/CDDL+GPL.html

"Twitter Bootstrap" is licensed under Apache License v2.0.
You can obtain a copy of the License at: https://github.com/twitter/bootstrap/wiki/License

"less.js " is licensed under the Apache License.
You can obtain a copy of the License at: https://github.com/cloudhead/less.js/blob/master/LICENSE

"jquery" is licensed under the MIT License.
You can obtain a copy of the License at: https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt

"handlebars.js" is licensed under the MIT License.
You can obtain a copy of the License at: https://github.com/wycats/handlebars.js/blob/master/LICENSE

"codemirror" is licensed under the MIT License.
You can obtain a copy of the License at: http://codemirror.net/LICENSE

"require.js" is licensed under the MIT License.
You can obtain a copy of the License at: https://github.com/jrburke/requirejs/blob/master/LICENSE

"livereload.js" is licensed under the MIT License.
You can obtain a copy of the License at: https://github.com/livereload/livereload-js/blob/master/LICENSE
