ORACLE TECHNOLOGY NETWORK 
DEVELOPMENT LICENSE AGREEMENT

"We," "us," and "our" refers to Oracle Corporation.  "You" and "your" refers to the individual or entity that wishes to use the programs from Oracle.  "Programs" refers to the Oracle software product you wish to download and use and program documentation.  "License" refers to your right to use the programs under the terms of this agreement.  This agreement is governed by the substantive and procedural laws of California.  You and Oracle agree to submit to the exclusive jurisdiction of, and venue in, the courts of San Francisco, San Mateo, or Santa Clara counties in California in any dispute arising out of or relating to this agreement.

We are willing to license the programs to you only upon the condition that you accept all of the terms contained in this agreement.  Read the terms carefully and select the "Accept" button at the bottom of the page to confirm your acceptance.  If you are not willing to be bound by these terms, select the "Do Not Accept" button and the registration process will not continue.

License Rights
We grant you a nonexclusive, nontransferable limited license to use the programs only for the purpose of developing a single prototype of your application, and not for any other purpose.  If you use the application you develop under this license for any internal data processing or for any commercial or production purposes, or you want to use the programs for any purpose other than as permitted under this agreement, you must contact us, or an Oracle reseller, to obtain the appropriate license.  We may audit your use of the programs.  Program documentation may accessed online at /docs.


Ownership and Restrictions
We retain all ownership and intellectual property rights in the programs.  The programs may be installed on one computer only, and used by one person in the operating environment identified by us.  You may make one copy of the programs for backup purposes.

You may not:
use the programs for your own internal data processing or for any commercial or production purposes, or use the programs for any purpose except the development of a single prototype of your application;
use the application you develop with the programs for any internal data processing or commercial or production purposes without securing an appropriate license from us;
continue to develop your application after you have used it for any internal data processing, commercial or production purpose without securing an appropriate license from us, or an Oracle reseller;
remove or modify any program markings or any notice of our proprietary rights;
make the programs available in any manner to any third party;
use the programs to provide third party training;
assign this agreement or give or transfer the programs or an interest in them to another individual or entity;
cause or permit reverse engineering (unless required by law for interoperability), disassembly or decompilation of the programs;
disclose results of any program benchmark tests without our prior consent; or,

use any Oracle name, trademark or logo.

Export
You agree that U.S. export control laws and other applicable export and import laws govern your use of the programs, including technical data; additional information can be found on Oracle's Global Trade Compliance web site located at http://www.oracle.com/products/export/index.html.  You agree that neither the programs nor any direct product thereof will be exported, directly, or indirectly, in violation of these laws, or will be used for any purpose prohibited by these laws including, without limitation, nuclear, chemical, or biological weapons proliferation.

Disclaimer of Warranty and Exclusive Remedies

THE PROGRAMS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  WE FURTHER DISCLAIM ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.

IN NO EVENT SHALL WE BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE, DATA OR DATA USE, INCURRED BY YOU OR ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  OUR ENTIRE LIABILITY FOR DAMAGES HEREUNDER SHALL IN NO EVENT EXCEED ONE THOUSAND DOLLARS (U.S. $1,000).

Trial Programs Included With Orders
We may include additional programs with an order which may be used for trial purposes only.  You will have 30 days from the delivery date to evaluate these programs.  Any use of these programs after the 30 day trial period requires you to obtain the applicable license.  Programs licensed for trial purposes are provided "as is" and we do not provide technical support or any warranties for these programs.


No Technical Support
Our technical support organization will not provide technical support, phone support, or updates to you for the programs licensed under this agreement.

End of Agreement
You may terminate this agreement by destroying all copies of the programs.  We have the right to terminate your right to use the programs if you fail to comply with any of the terms of this agreement, in which case you shall destroy all copies of the programs.

Relationship Between the Parties
The relationship between you and us is that of licensee/licensor.  Neither party will represent that it has any authority to assume or create any obligation, express or implied, on behalf of the other party, nor to represent the other party as agent, employee, franchisee, or in any other capacity.  Nothing in this agreement shall be construed to limit either party's right to independently develop or distribute software that is functionally similar to the other party's products, so long as proprietary information of the other party is not included in such software.

Open Source
"Open Source" software - software available without charge for use, modification and distribution - is often licensed under terms that require the user to make the user's modifications to the Open Source software or any software that the user 'combines' with the Open Source software freely available in source code form.  If you use Open Source software in conjunction with the programs, you must ensure that your use does not:  (i) create, or purport to create, obligations of us with respect to the Oracle programs; or (ii) grant, or purport to grant, to any third party any rights to or immunities under our intellectual property or proprietary rights in the Oracle programs.  For example, you may not develop a software program using an Oracle program and an Open Source program where such use results in a program file(s) that contains code from both the Oracle program and the Open Source program (including without limitation libraries) if the Open Source program is licensed under a license that requires any "modifications" be made freely available.  You also may not combine the Oracle program with programs licensed under the GNU General Public License ("GPL") in any manner that could cause, or could be interpreted or asserted to cause, the Oracle program or any modifications thereto to become subject to the terms of the GPL.

Entire Agreement
You agree that this agreement is the complete agreement for the programs and licenses, and this agreement supersedes all prior or contemporaneous agreements or representations.  If any term of this agreement is found to be invalid or unenforceable, the remaining provisions will remain effective.


Last updated: 9/16/03
