The *.png and README.original files in this directory are copied from
libpng.org, specifically contrib/pngsuite/* in libpng-1.2.40.tar.gz.
README.original gives the following license for those files:

	Permission to use, copy, and distribute these images for any purpose
	and without fee is hereby granted.


The files basn0g01-30.png, basn0g02-29.png and basn0g04-31.png are in fact
not part of pngsuite but were created from files in pngsuite. Their non-power-
of-two sizes makes them useful for testing bit-depths smaller than a byte.

The *.sng files in this directory were generated from the *.png files
by the sng command-line tool and some hand editing. The files
basn0g0{1,2,4}.sng were actually generated by first converting the PNG
to a bitdepth of 8 and then running sng on them. basn4a08.sng was generated
by from a 16-bit rgba version of basn4a08.png rather than the original
gray + alpha.
