                  Monkey's Audio Source Code License Agreement

   License Agreement

   1. The Monkey's Audio SDK and source code can be freely used to add APE
   format playback, encoding, or tagging support to any product, free or
   commercial.  Use of the code for proprietary efforts that don't support
   the official APE format require written consent of the author.

   2. Monkey's Audio source can be included in GPL and open-source software,
   although Monkey's Audio itself will not be subjected to external licensing
   requirements or other viral source restrictions.

   3. Code changes and improvements must be contributed back to the Monkey's
   Audio project free from restrictions or royalties for the sake of the
   common good, unless exempted by express written consent of the author.

   4. Any source code, ideas, or libraries used must be plainly acknowledged
   in the software using the code.

   5. Although the software has been tested thoroughly, the author is in no
   way responsible for damages due to bugs or misuse.

   6. If you do not completely agree with all of the previous stipulations,
   you must cease using this source code and remove it from your storage
   device.



   All rights not expressly granted here are reserved by Matthew T. Ashland.



 - All materials and programs copyrighted (c)2000-2006 by Matthew T. Ashland -

                            - All rights reserved. -
