Copyright (c) 2011 TapQuo Inc (Javier Jimenez Villar)

===============================================================================
===============================================================================

OPEN SOURCE LICENSE FOR LUNGOJS
Version 1.0.3

LungoJS is an avid supporter of open source software. This is the appropriate
option if you are creating an open source application with a license compatible
with the GNU GPL license v3 (http://www.gnu.org/copyleft/gpl.html). Although
the GPLv3 has many terms, the most important is that you must provide the
source code of your application to your users so they can be free to modify
your application for their own needs.

View the license terms: http://www.gnu.org/copyleft/gpl.html

THIS DOCUMENT IS A LEGAL AGREEMENT (the “License Agreement”) BETWEEN TAPQUO INC.
(“We,” “Us”) AND YOU OR THE ORGANIZATION ON WHOSE BEHALF YOU ARE UNDERTAKING
THE LICENSE DESCRIBED BELOW (“You”) IN RELATION TO THE LUNGOJS SOFTWARE
LIBRARY (THE “Software”), AND/OR ALL RELATED MATERIALS. BY DOWNLOADING,
INSTALLING, COPYING OR OTHERWISE USING THE SOFTWARE, YOU ACCEPT THE FOLLOWING
TERMS AND CONDITIONS. IF YOU DO NOT AGREE WITH ANY OF THE TERMS OR CONDITIONS
OF THIS LICENSE AGREEMENT, DO NOT PROCEED WITH THE DOWNLOADING, COPYING,
INSTALLATION OR ANY OTHER USE OF THE SOFTWARE OR ANY PORTION THEREOF. THE
SOFTWARE IS PROTECTED BY UNITED STATES COPYRIGHT LAWS AND INTERNATIONAL
COPYRIGHT LAWS, AS WELL AS OTHER INTELLECTUAL PROPERTY LAWS AND TREATIES.
THE SOFTWARE IS LICENSED, NOT SOLD.

===============================================================================
===============================================================================

OPEN SOURCE LICENSE FAQ
Version 1.0.3

This document is for guidance purposes only and is not a legal document and is
not legally binding. We encourage you to read the GPL v3 and the Quick Guide to
the GPLv3 in their entirety and consult legal counsel if you require additional
advice.

===============================================================================
===============================================================================

LUNGOJS AND THE GPL v3
Version 1.0.3

-------------------------------------------------------------------------------
What is the GPL v3?
-------------------------------------------------------------------------------
The GNU General Public License(GPL) is the most widely used free and open
source software (FOSS) license in the world. The GPL was created and sponsored
by the Free Software Foundation (FSF). Read the GPL v3 license

-------------------------------------------------------------------------------
What are the advantages of GPL v3?
-------------------------------------------------------------------------------
The GPL is the most widely used open source license in the world. Linux, MySQL,
Wordpress and other major open source projects are all licensed under the GPL.
The GPL is designed to ensure that you have the freedom to modify the software
you use as you see fit. In return, you are asked to ensure that any users of
software that you have built using GPL software receive the same freedom to
modify your software in turn. Licensing under GPLv3 ensures the highest amount
of availability in the open source community.

-------------------------------------------------------------------------------
What LungoJS products are available under the GPL v3?
-------------------------------------------------------------------------------
LungoJS Core, LungoJS Sugars and LungoJS Themes are all available under GPL v3.

===============================================================================
===============================================================================

The GPL v3

-------------------------------------------------------------------------------
What am I not allowed to do with code that is released under the GPL v3?
-------------------------------------------------------------------------------
You can download the code base, install it, and modify it as needed. If you
modify the code, we encourage you to contribute it back to the LungoJS community
by contributing your modifications under GPL v3 in the LungoJS forums. If you
convey your modifications (under the GPL definition of conveyance) then you
must make your modifications available in source form to the users to whom you
distributed your software. More information about what the GPL license allows
is available in the GPL license itself, the Quick Guide to the GPLv3 and the
official GPL FAQ.

-------------------------------------------------------------------------------
What is a modification?
-------------------------------------------------------------------------------
The simple rule to follow is if you modify any functionality or file in a Lungo
product for a purpose other than configuration, then you have created a
modification. All modifications of a GPLv3 licensed products are subject to the
GPL v3 license. Additional information is available in the official GPL FAQ.

The following are examples of modifications:
    Modify JavaScript, LESS or CSS source file
    Extend LungoJS class or override any LungoJS functions or methods
    Modifying an LungoJS API

The following are not modifications:
    Creating a new theme in a new CSS file
    Creating or applying a locale/language pack
    Overriding property defaults on class prototypes (configuration)

-------------------------------------------------------------------------------
What licenses are compatible with GPL v3?
-------------------------------------------------------------------------------
A list of compatible licenses is available on gnu.org. This compatiblity list
includes licenses that can be included in a GPL’ed work. The diagram below
shows the directions of compatibility for some common licenses:


-------------------------------------------------------------------------------
Where can I find additional information about the GPL v3?
-------------------------------------------------------------------------------
The best sources are the GPL license itself, the Quick Guide to the GPLv3” and
the official GPL FAQ.

-------------------------------------------------------------------------------
What is the LungoJS interpretation of “conveyance” under the GPL v3?
-------------------------------------------------------------------------------
The short answer to this question is that when a non-employee of the
organization that created the modifications to GPL v3, uses those modifications,
then the program has been “conveyed”.

The long answer to this question is unfortunately, quite complicated,due to the
complex wording of the GPL, the ambiguity of certain terms in copyright law and
the nature of JavaScript programs. Here is our interpretation of what
constitutes “conveyance” under the languages of the GPL v3.

Derived Works
When a software program calls code that is licensed under the GPLv3, then that
software program becomes a derived work of the GPL’d code and hence subject to
the GPLv3 copyright license. If the software program is then “conveyed” to a
user, the GPLv3 requires that the source code to that software program also be
“conveyed.” “Conveyance” for a web application is triggered when a user outside
the legal entity that created the application uses the application.

The Definition of a Software Program
Since the boundaries defining an individual software program can be hazy in
modern app architectures, we follow the rule “when determining what constitutes
the software program, follow the main principle of the GPL v3, which states
that users should be free to modify the entire software program that
incorporates GPL’d code for their own purposes”. For software programs built
using today’s web architectures that use remote network-based service
interfaces for internal communication instead of traditional static or dynamic
linking, the relevant software program is the totality of the application code,
including code executed on the server and code executed on the client, provided
that the server code is integral to the application. We exclude from the
definition of “software program”, software incorporated into the software
program via a service interface that provides functionality ancillary to the
main purpose of the program, functionality un-related to application logic, or
functionality that is used by a number of separate applications other than the
application in question. With this caveat, please remember that the use of any
specific technical approach in and of itself does not guarantee that
“derivation” will not be held to have occurred.

Example
For example: let’s take a mortgage processing software program. Let’s say that
the application has a front-end (that generates web pages linked to LungoJS
JavaScript) that communicates over JSON/HTTP with a backend service. This
backend service contains approval and validation logic for this application
alone. Even if only the front-end uses LungoJS code, you should consider that
the combination of front and back ends constitutes the application, and the
source code for both back and front end would need to be provided to the
application’s end users under GPLv3 if the application is used by an end-user
who is not part of the same legal entity that holds the GPLv3 license to the
LungoJS code.

Next, let’s assume that the mortgage application web-pages also offer
functionality that allows users to search current interest rates, and file a
customer support ticket (functionality ancillary to the purpose of the
application) and those functions are provided by separate server-side services.
We do not consider those programs to compose part of the software program for
the purposes of the GPLv3. For example, in all cases we would not consider a
database that provides data interfaces to the application over standard
interfaces to be part of the application.

Reasonableness Test
As mentioned above, in many cases, there can be ambiguity about the exact
boundaries of a software program. In these cases, we apply a “reasonableness”
test to establish application boundaries. Following the principles of the GPL
v3, we should ask “what would a user who is conveyed a copy of the application
reasonably expect to receive in source code form in order to modify the
application for his or her needs.”

Certain Technical Strategies
Our interpretation is that the use of technical strategies that store and
transmit LungoJS code as data (for example by storing JavaScript libraries as
data-files within a database which are then transmitted as data files to the
browser and only then converted into a program through the use of eval()) does
not change the above definition of software program under the GPLv3 definitions.

Definition of License Holder
Following GPL v3 guidelines, we consider the holder of the GPL v3 license to be
the legal entity that owns the rights to the work product of the developer who
writes the software code that calls LungoJS functions. For example, a developer
that downloads LungoJS and uses it to build an application that is copied to
multiple offices within their company and serves web pages to employees across
the country, has not triggered “conveyance” of the program since the containing
corporate entity is the licensee, not the individual developer. However if a
contractor, agent, employee of another subsidiary or other non-employee uses
that software, then conveyance has occurred.

In addition, if a copy of the software program is provided by the developer to
a person in another legal entity, then we consider that “conveyance”, as
defined by the GPLv3, has occurred, and that person must be provided with a
copy of the source for the software program. Further conveyance by the
recipient would only be permitted under the GPL v3.

Conveyance vs. Propagation
Since LungoJS are software programs that can run within the browser while
disconnected from the network or the rest of a server program; when a LungoJS
based interface is embedded in a web-page served to a user who does not have an
employee relationship with the original licensed entity, we consider that
“conveyance” rather than simple web page “propagation” as defined by the GPL v3
has occurred, and the source code of the whole application must be provided to
the user.  Users who are not entitled to use the software under the original
license grant to the recipient legal entity (whose developer downloaded and
wrote to the LungoJS libraries) include contractors, agents, and distributors
of the original legal entity, as well as employees of related corporate
subsidiaries or parents. In these cases, a user who is a contractor must be
provided with a copy of the source code of the application with further
conveyance by the contractor permitted only under the GPL v3. This also applies
to web development firms who create software programs under contract for a
client.

In the case of the GPLv3 licensed entities, our interpretation is that the
distribution of abstraction/intermediary libraries to contractors or users
outside the licensed legal entity for development purposes also falls under
the definition of “conveyance.”

-------------------------------------------------------------------------------
GPL v3 Is The Official License
-------------------------------------------------------------------------------
While this is our best attempt to characterize our interpretation of the GPL v3,
relatively little of this interpretation has been confirmed in law due to the
limited case law surrounding GPL v3. In all cases, the GPL v3 text itself
constitutes the actual legal agreement between LungoJS and our GPL v3 licensees.
This FAQ does not constitute legal advice, but reflects our position on the
responsibilities of users who use our software licensed under the GPLv3. We do
not provide legal advice to current or potential users of our GPLv3 licensed
programs, so we ask you to consult your own legal counsel if you have further
questions.