MTA v0.5 LICENSE AGREEMENT
Copyright © 2002-2005 MTA Team, www.multitheftauto.com

PLEASE READ THIS DOCUMENT CAREFULLY BEFORE INSTALLING THE SOFTWARE. BY
INSTALLING AND USING THE SOFTWARE, YOU AGREE TO BE BOUND BY THE TERMS
OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THE TERMS OF THE AGREEMENT,
DO NOT INSTALL OR USE THE SOFTWARE.

The MTA Team (author of this product) provides you this license to use
this software. This free software is licensed and for use only under
the terms of this Agreement.

This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

This software is protected by copyright laws and international
copyright treaties, as well as other intellectual property laws and
treaties.

You may distribute this software on on-line services, bulletin boards,
or other electronic media provided that it is not modified and the
original package remains intact with all accompanying files included,
and provided that no fee is charged. This software may not be
distributed on cd-rom, dvd-rom, disk, or other physical media for a
fee without the permission of the author.

Altering and/or changing the executables and/or other binaries
included within this installation package in ANY possible way is
forbidden.

Decompiling, disassembling or otherwise reverse engineering of ANY of
the included executables and binaries is forbidden. You may not
modify, rent, or resell for profit this software, or create derivative
works based upon this software.

The origin of this software must not be misrepresented; you must not
claim that you wrote the original software.

This license will terminate automatically and the software may not be
used if you fail to comply with any of the above terms and conditions.

The author keeps the right to change the license at any time and
without notice.

This license may not be removed or altered from any distribution.
