Pony Mail
Joint copyright 2015 The Apache Software Foundation.
Joint copyright 2015-2016 Quenda.

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

This product includes software developed at
Quenda (http://www.quenda.co/)

This product includes code (stylesheets/javascript) developed 
by Twitter, inc. (BootStrap), Licensed under MIT license

This product includes code (JS regex def) developed 
by Diego Perini, licensed under the MIT license

This product includes code developed by the jQuery
Foundation, licensed under the MIT license.

This produce includes code (quokka.js) developed
by Daniel Gruno, licensed under the Apache License v/2.0
