paq8p archiver, released by Andreas Morphis(andreasmorphis@yahoo.com), Aug. 22, 2008.

Copyright (C) 2008 Matt Mahoney, Serge Osnach, Alexander Ratushnyak,
Bill Pettis, Przemyslaw Skibinski, Matthew Fite, wowtiger, Andrew Paterson,
Jan Ondrus, Andreas Morphis, Pavel L. Holoborodko, KZ, Dark Shikari.

    LICENSE

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
    published by the Free Software Foundation; either version 2 of
    the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    General Public License for more details at
    Visit <http://www.gnu.org/copyleft/gpl.html>.

See http://cs.fit.edu/~mmahoney/compression/ for the latest PAQ version.

Contents:

  readme.txt - This file.
  paq8p.exe - Win32 executable (Intel compile for Pentium-MMX or higher)
  paq8p.cpp - C++ source code.
  paq7asm.asm - NASM source code for 32 bit x86 (Pentium-MMX or higher).
  paq7asm-x86_64.asm - YASM source code for x86-64.
  paq7asmsse.asm - NASM/YASM for Pentium 4 (SSE2) or higher in 32 bit mode.

Added Jan. 9, 2009:

  paq7asmsse2.asm - above, but optimized by Dark Shikari.
  paq8p_sse2.exe - 32 bit Windows g++ compile with above for Pentium 4+.

paq8p 
added wav Model
minor improvements to bmp Model

See paq8p.cpp source comments for usage and compiling instructions.
