From 6a0549acc1dafed1db66dbc3b280dcfa5c60e7a4 Mon Sep 17 00:00:00 2001 From: Lance Date: Wed, 8 Dec 2010 14:42:05 +0000 Subject: [PATCH] FTE_TARGET=win64 (thanks to MinGW64), 64bit MinGW64 static libs, and fix for undefined references to vsnprintf within qclib when using MinGW64 git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3688 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/Makefile | 96 + engine/libs/mingw64-libs/jconfig.h | 54 + engine/libs/mingw64-libs/jerror.h | 304 +++ engine/libs/mingw64-libs/jmorecfg.h | 371 ++++ engine/libs/mingw64-libs/jpeglib.h | 1158 ++++++++++++ engine/libs/mingw64-libs/jversion.h | 14 + engine/libs/mingw64-libs/libjpeg.a | Bin 0 -> 1242824 bytes engine/libs/mingw64-libs/libpng.a | Bin 0 -> 297496 bytes engine/libs/mingw64-libs/libz.a | Bin 0 -> 93354 bytes engine/libs/mingw64-libs/png.h | 2699 +++++++++++++++++++++++++++ engine/libs/mingw64-libs/pngconf.h | 1540 +++++++++++++++ engine/libs/mingw64-libs/pngpriv.h | 954 ++++++++++ engine/libs/mingw64-libs/zconf.h | 428 +++++ engine/libs/mingw64-libs/zlib.h | 1613 ++++++++++++++++ engine/libs/mingw64-libs/zutil.h | 274 +++ engine/qclib/pr_exec.c | 74 +- engine/qclib/qcc_cmdlib.c | 86 +- engine/qclib/qcc_pr_lex.c | 176 +- engine/qclib/qcdecomp.c | 60 +- 19 files changed, 9735 insertions(+), 166 deletions(-) create mode 100755 engine/libs/mingw64-libs/jconfig.h create mode 100755 engine/libs/mingw64-libs/jerror.h create mode 100755 engine/libs/mingw64-libs/jmorecfg.h create mode 100755 engine/libs/mingw64-libs/jpeglib.h create mode 100644 engine/libs/mingw64-libs/jversion.h create mode 100755 engine/libs/mingw64-libs/libjpeg.a create mode 100755 engine/libs/mingw64-libs/libpng.a create mode 100755 engine/libs/mingw64-libs/libz.a create mode 100755 engine/libs/mingw64-libs/png.h create mode 100755 engine/libs/mingw64-libs/pngconf.h create mode 100755 engine/libs/mingw64-libs/pngpriv.h create mode 100755 engine/libs/mingw64-libs/zconf.h create mode 100755 engine/libs/mingw64-libs/zlib.h create mode 100755 engine/libs/mingw64-libs/zutil.h diff --git a/engine/Makefile b/engine/Makefile index a32b27dbc..a4e92858a 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -33,6 +33,20 @@ ifeq ($(FTE_TARGET),win32) endif endif +#correct the gcc build when cross compiling +ifeq ($(FTE_TARGET),win64) + ifeq ($(shell $(CC) -v 2>&1 | grep mingw),) + #CC didn't state that it was mingw... so try fixing that up + ifneq ($(shell which amd64-mingw32msvc-gcc 2> /dev/null),) + #yup, the alternative exists (this matches the one debian has) + CC=amd64-mingw32msvc-gcc -m64 + WINDRES=amd64-mingw32msvc-windres + STRIP=amd64-mingw32msvc-strip +# BITS?=64 + endif + endif +endif + #correct the gcc build when cross compiling ifeq ($(FTE_TARGET),win32_SDL) ifeq ($(shell $(CC) -v 2>&1 | grep mingw),) @@ -183,6 +197,9 @@ endif ifeq ($(FTE_TARGET),win32) BASELDFLAGS=-lm endif +ifeq ($(FTE_TARGET),win64) + BASELDFLAGS=-lm +endif ifeq ($(FTE_TARGET),win32_SDL) BASELDFLAGS=-lm endif @@ -200,6 +217,9 @@ BASELDFLAGS ?= -lm -ldl -lpthread ifeq ($(FTE_TARGET),win32) IMAGELDFLAGS=$(LIBS_DIR)/mingw-libs/libpng.a $(LIBS_DIR)/mingw-libs/libz.a $(LIBS_DIR)/mingw-libs/libjpeg.a endif +ifeq ($(FTE_TARGET),win64) + IMAGELDFLAGS=$(LIBS_DIR)/mingw64-libs/libpng.a $(LIBS_DIR)/mingw64-libs/libz.a $(LIBS_DIR)/mingw64-libs/libjpeg.a +endif ifeq ($(FTE_TARGET),win32_SDL) IMAGELDFLAGS=./libs/mingw-libs/libpng.a ./libs/mingw-libs/libz.a ./libs/mingw-libs/libjpeg.a endif @@ -260,6 +280,11 @@ ifeq ($(FTE_TARGET),win32) #RELEASE_CFLAGS=-fno-strict-aliasing -ffast-math -fexpensive-optimizations $(CPUOPTIMIZATIONS) RELEASE_CFLAGS=$(CPUOPTIMIZATIONS) endif +ifeq ($(FTE_TARGET),win64) + # Let's make sure we're not chasing our tails with MinGW32 compiler bugs + #RELEASE_CFLAGS=-fno-strict-aliasing -ffast-math -fexpensive-optimizations $(CPUOPTIMIZATIONS) + RELEASE_CFLAGS=$(CPUOPTIMIZATIONS) +endif ifeq ($(FTE_TARGET),win32_SDL) # Let's make sure we're not chasing our tails with MinGW32 compiler bugs #RELEASE_CFLAGS=-fno-strict-aliasing -ffast-math -fexpensive-optimizations $(CPUOPTIMIZATIONS) -D_SDL @@ -273,6 +298,10 @@ ifneq ($(FTE_TARGET),win32) #RELEASE_CFLAGS=-O6 -fno-strict-aliasing -ffast-math -funroll-loops -fexpensive-optimizations $(CPUOPTIMIZATIONS) endif endif +ifneq ($(FTE_TARGET),win64) + RELEASE_CFLAGS ?= -O2 -fno-strict-aliasing $(CPUOPTIMIZATIONS) + #RELEASE_CFLAGS=-O6 -fno-strict-aliasing -ffast-math -funroll-loops -fexpensive-optimizations $(CPUOPTIMIZATIONS) +endif GLCFLAGS=-DGLQUAKE D3DCFLAGS=-DD3DQUAKE @@ -640,6 +669,73 @@ endif MINGL_EXE_NAME=../fteminglqw.exe MINGL_DIR=mingl_mgw endif + +ifeq ($(FTE_TARGET),win64) + # The extra object file called resources.o is specific for MinGW to link the icon in + + #cygwin's gcc requires an extra command to use mingw instead of cygwin (default paths, etc). + ifneq ($(shell $(CC) -v 2>&1 | grep cygwin),) + W32_CFLAGS=-mno-cygwin + endif + + SV_CFLAGS=$(SERVER_ONLY_CFLAGS) $(W32_CFLAGS) + + + LIBS_DIR = $(BASE_DIR)/libs + SV_EXE_NAME=../fteqwsv64.exe + SV_LDFLAGS=$(LIBS_DIR)/mingw64-libs/libz.a -lws2_32 -lwinmm + SV_DIR=sv_mingw64 + SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) $(WINDOWSSERVERONLY_OBJS) fs_win32.o resources.o + + +ifeq ($(USEASM),true) + GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) fs_win32.o gl_vidnt.o snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o sys_dosa.o resources.o +else + GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) fs_win32.o gl_vidnt.o snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o resources.o +endif + GL_EXE_NAME=../fteglqw64.exe + GLCL_EXE_NAME=../fteglqwcl64.exe + GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 + GL_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) + GLB_DIR=gl_mgw64 + GLCL_DIR=glcl_mgw64 + +ifeq ($(USEASM),true) + NPQTVCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) fs_win32.o gl_vidnt.o snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o sys_dosa.o npplug.o sys_npqtv.o sys_plugfte.o ../../ftequake/npapi.def +else + NPQTVCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) fs_win32.o gl_vidnt.o snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o npplug.o sys_npqtv.o sys_plugfte.o ../../ftequake/npapi.def +endif + NPQTV_DLL_NAME=../npqtv64.dll + NPQTVCL_DLL_NAME=../npqtvcl64.dll + NPQTV_LDFLAGS=--enable-stdcall-fixup $(GLLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -shared + NPQTV_CFLAGS=$(NPQTVCFLAGS) $(GLCFLAGS) $(W32_CFLAGS) + NPQTVB_DIR=npqtv_mgw64 + NPQTVCL_DIR=npqtvcl_mgw64 + +ifeq ($(USEASM),true) + MCL_OBJS=$(GLQUAKE_OBJS) $(SOFTWARE_OBJS) fs_win32.o gl_vidnt.o vid_ddraw.o vid_dib.o vid_win2.o snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o sys_dosa.o resources.o +else + MCL_OBJS=$(GLQUAKE_OBJS) $(SOFTWARE_OBJS) fs_win32.o gl_vidnt.o vid_ddraw.o vid_dib.o vid_win2.o snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o resources.o +endif + M_EXE_NAME=../fteqw64.exe + MCL_EXE_NAME=../fteqwcl64.exe + M_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 + M_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) + MB_DIR=m_mgw64 + MCL_DIR=mcl_mgw64 + + D3DCL_OBJS=$(D3DQUAKE_OBJS) snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o resources.o + D3D_EXE_NAME=../fted3dqw64.exe + D3DCL_EXE_NAME=../fted3dclqw64.exe + D3D_LDFLAGS= -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 + D3D_CFLAGS=$(D3DCFLAGS) $(W32_CFLAGS) -DMINIMAL + D3DB_DIR=d3d_mgw64 + D3DCL_DIR=d3dcl_mgw64 + + MINGL_EXE_NAME=../fteminglqw64.exe + MINGL_DIR=mingl_mgw64 +endif + ifeq ($(FTE_TARGET),bsd) #mostly uses the linux stuff. #oss, X, etc. diff --git a/engine/libs/mingw64-libs/jconfig.h b/engine/libs/mingw64-libs/jconfig.h new file mode 100755 index 000000000..966b1d514 --- /dev/null +++ b/engine/libs/mingw64-libs/jconfig.h @@ -0,0 +1,54 @@ +/* jconfig.h. Generated from jconfig.cfg by configure. */ +/* jconfig.cfg --- source file edited by configure script */ +/* see jconfig.txt for explanations */ + +#define HAVE_PROTOTYPES 1 +#define HAVE_UNSIGNED_CHAR 1 +#define HAVE_UNSIGNED_SHORT 1 +/* #undef void */ +/* #undef const */ +/* #undef CHAR_IS_UNSIGNED */ +#define HAVE_STDDEF_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_LOCALE_H 1 +/* #undef NEED_BSD_STRINGS */ +/* #undef NEED_SYS_TYPES_H */ +/* #undef NEED_FAR_POINTERS */ +/* #undef NEED_SHORT_EXTERNAL_NAMES */ +/* Define this if you get warnings about undefined structures. */ +/* #undef INCOMPLETE_TYPES_BROKEN */ + +/* Define "boolean" as unsigned char, not int, on Windows systems. */ +#ifdef _WIN32 +#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ +typedef unsigned char boolean; +#endif +#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ +#endif + +#ifdef JPEG_INTERNALS + +/* #undef RIGHT_SHIFT_IS_UNSIGNED */ +#define INLINE __inline__ +/* These are for configuring the JPEG memory manager. */ +/* #undef DEFAULT_MAX_MEM */ +/* #undef NO_MKTEMP */ + +#endif /* JPEG_INTERNALS */ + +#ifdef JPEG_CJPEG_DJPEG + +#define BMP_SUPPORTED /* BMP image file format */ +#define GIF_SUPPORTED /* GIF image file format */ +#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ +/* #undef RLE_SUPPORTED */ +#define TARGA_SUPPORTED /* Targa image file format */ + +/* #undef TWO_FILE_COMMANDLINE */ +/* #undef NEED_SIGNAL_CATCHER */ +/* #undef DONT_USE_B_MODE */ + +/* Define this if you want percent-done progress reports from cjpeg/djpeg. */ +/* #undef PROGRESS_REPORT */ + +#endif /* JPEG_CJPEG_DJPEG */ diff --git a/engine/libs/mingw64-libs/jerror.h b/engine/libs/mingw64-libs/jerror.h new file mode 100755 index 000000000..1cfb2b19d --- /dev/null +++ b/engine/libs/mingw64-libs/jerror.h @@ -0,0 +1,304 @@ +/* + * jerror.h + * + * Copyright (C) 1994-1997, Thomas G. Lane. + * Modified 1997-2009 by Guido Vollbeding. + * This file is part of the Independent JPEG Group's software. + * For conditions of distribution and use, see the accompanying README file. + * + * This file defines the error and message codes for the JPEG library. + * Edit this file to add new codes, or to translate the message strings to + * some other language. + * A set of error-reporting macros are defined too. Some applications using + * the JPEG library may wish to include this file to get the error codes + * and/or the macros. + */ + +/* + * To define the enum list of message codes, include this file without + * defining macro JMESSAGE. To create a message string table, include it + * again with a suitable JMESSAGE definition (see jerror.c for an example). + */ +#ifndef JMESSAGE +#ifndef JERROR_H +/* First time through, define the enum list */ +#define JMAKE_ENUM_LIST +#else +/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */ +#define JMESSAGE(code,string) +#endif /* JERROR_H */ +#endif /* JMESSAGE */ + +#ifdef JMAKE_ENUM_LIST + +typedef enum { + +#define JMESSAGE(code,string) code , + +#endif /* JMAKE_ENUM_LIST */ + +JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */ + +/* For maintenance convenience, list is alphabetical by message code name */ +JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix") +JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix") +JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode") +JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS") +JMESSAGE(JERR_BAD_CROP_SPEC, "Invalid crop request") +JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range") +JMESSAGE(JERR_BAD_DCTSIZE, "DCT scaled block size %dx%d not supported") +JMESSAGE(JERR_BAD_DROP_SAMPLING, + "Component index %d: mismatching sampling ratio %d:%d, %d:%d, %c") +JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition") +JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace") +JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace") +JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length") +JMESSAGE(JERR_BAD_LIB_VERSION, + "Wrong JPEG library version: library is %d, caller expects %d") +JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan") +JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code %d") +JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision %d") +JMESSAGE(JERR_BAD_PROGRESSION, + "Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d") +JMESSAGE(JERR_BAD_PROG_SCRIPT, + "Invalid progressive parameters at scan script entry %d") +JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors") +JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d") +JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state %d") +JMESSAGE(JERR_BAD_STRUCT_SIZE, + "JPEG parameter struct mismatch: library thinks size is %u, caller expects %u") +JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access") +JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small") +JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here") +JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet") +JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: %d, max %d") +JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request") +JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index %d") +JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x%x") +JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index %d") +JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index %d") +JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)") +JMESSAGE(JERR_EMS_READ, "Read from EMS failed") +JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed") +JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan") +JMESSAGE(JERR_FILE_READ, "Input file read error") +JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?") +JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet") +JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow") +JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry") +JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels") +JMESSAGE(JERR_INPUT_EMPTY, "Empty input file") +JMESSAGE(JERR_INPUT_EOF, "Premature end of input file") +JMESSAGE(JERR_MISMATCHED_QUANT_TABLE, + "Cannot transcode due to multiple use of quantization table %d") +JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data") +JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change") +JMESSAGE(JERR_NOTIMPL, "Not implemented yet") +JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time") +JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x%02x was not defined") +JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported") +JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined") +JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image") +JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined") +JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x") +JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)") +JMESSAGE(JERR_QUANT_COMPONENTS, + "Cannot quantize more than %d color components") +JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors") +JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors") +JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers") +JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker") +JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x") +JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers") +JMESSAGE(JERR_SOS_NO_SOF, "Invalid JPEG file structure: SOS before SOF") +JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file %s") +JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file") +JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file") +JMESSAGE(JERR_TFILE_WRITE, + "Write failed on temporary file --- out of disk space?") +JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines") +JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x") +JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up") +JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation") +JMESSAGE(JERR_XMS_READ, "Read from XMS failed") +JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed") +JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT) +JMESSAGE(JMSG_VERSION, JVERSION) +JMESSAGE(JTRC_16BIT_TABLES, + "Caution: quantization tables are too coarse for baseline JPEG") +JMESSAGE(JTRC_ADOBE, + "Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d") +JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u") +JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u") +JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x") +JMESSAGE(JTRC_DHT, "Define Huffman Table 0x%02x") +JMESSAGE(JTRC_DQT, "Define Quantization Table %d precision %d") +JMESSAGE(JTRC_DRI, "Define Restart Interval %u") +JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle %u") +JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle %u") +JMESSAGE(JTRC_EOI, "End Of Image") +JMESSAGE(JTRC_HUFFBITS, " %3d %3d %3d %3d %3d %3d %3d %3d") +JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d %d") +JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE, + "Warning: thumbnail image size does not match data length %u") +JMESSAGE(JTRC_JFIF_EXTENSION, + "JFIF extension marker: type 0x%02x, length %u") +JMESSAGE(JTRC_JFIF_THUMBNAIL, " with %d x %d thumbnail image") +JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u") +JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x") +JMESSAGE(JTRC_QUANTVALS, " %4u %4u %4u %4u %4u %4u %4u %4u") +JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors") +JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to %d colors") +JMESSAGE(JTRC_QUANT_SELECTED, "Selected %d colors for quantization") +JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d") +JMESSAGE(JTRC_RST, "RST%d") +JMESSAGE(JTRC_SMOOTH_NOTIMPL, + "Smoothing not supported with nonstandard sampling ratios") +JMESSAGE(JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d") +JMESSAGE(JTRC_SOF_COMPONENT, " Component %d: %dhx%dv q=%d") +JMESSAGE(JTRC_SOI, "Start of Image") +JMESSAGE(JTRC_SOS, "Start Of Scan: %d components") +JMESSAGE(JTRC_SOS_COMPONENT, " Component %d: dc=%d ac=%d") +JMESSAGE(JTRC_SOS_PARAMS, " Ss=%d, Se=%d, Ah=%d, Al=%d") +JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file %s") +JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file %s") +JMESSAGE(JTRC_THUMB_JPEG, + "JFIF extension marker: JPEG-compressed thumbnail image, length %u") +JMESSAGE(JTRC_THUMB_PALETTE, + "JFIF extension marker: palette thumbnail image, length %u") +JMESSAGE(JTRC_THUMB_RGB, + "JFIF extension marker: RGB thumbnail image, length %u") +JMESSAGE(JTRC_UNKNOWN_IDS, + "Unrecognized component IDs %d %d %d, assuming YCbCr") +JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u") +JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u") +JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d") +JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code") +JMESSAGE(JWRN_BOGUS_PROGRESSION, + "Inconsistent progression sequence for component %d coefficient %d") +JMESSAGE(JWRN_EXTRANEOUS_DATA, + "Corrupt JPEG data: %u extraneous bytes before marker 0x%02x") +JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment") +JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code") +JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d") +JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file") +JMESSAGE(JWRN_MUST_RESYNC, + "Corrupt JPEG data: found marker 0x%02x instead of RST%d") +JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG") +JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines") + +#ifdef JMAKE_ENUM_LIST + + JMSG_LASTMSGCODE +} J_MESSAGE_CODE; + +#undef JMAKE_ENUM_LIST +#endif /* JMAKE_ENUM_LIST */ + +/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */ +#undef JMESSAGE + + +#ifndef JERROR_H +#define JERROR_H + +/* Macros to simplify using the error and trace message stuff */ +/* The first parameter is either type of cinfo pointer */ + +/* Fatal errors (print message and exit) */ +#define ERREXIT(cinfo,code) \ + ((cinfo)->err->msg_code = (code), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT1(cinfo,code,p1) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT2(cinfo,code,p1,p2) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT3(cinfo,code,p1,p2,p3) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (cinfo)->err->msg_parm.i[2] = (p3), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT4(cinfo,code,p1,p2,p3,p4) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (cinfo)->err->msg_parm.i[2] = (p3), \ + (cinfo)->err->msg_parm.i[3] = (p4), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT6(cinfo,code,p1,p2,p3,p4,p5,p6) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (cinfo)->err->msg_parm.i[2] = (p3), \ + (cinfo)->err->msg_parm.i[3] = (p4), \ + (cinfo)->err->msg_parm.i[4] = (p5), \ + (cinfo)->err->msg_parm.i[5] = (p6), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXITS(cinfo,code,str) \ + ((cinfo)->err->msg_code = (code), \ + strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) + +#define MAKESTMT(stuff) do { stuff } while (0) + +/* Nonfatal errors (we can keep going, but the data is probably corrupt) */ +#define WARNMS(cinfo,code) \ + ((cinfo)->err->msg_code = (code), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) +#define WARNMS1(cinfo,code,p1) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) +#define WARNMS2(cinfo,code,p1,p2) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) + +/* Informational/debugging messages */ +#define TRACEMS(cinfo,lvl,code) \ + ((cinfo)->err->msg_code = (code), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) +#define TRACEMS1(cinfo,lvl,code,p1) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) +#define TRACEMS2(cinfo,lvl,code,p1,p2) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) +#define TRACEMS3(cinfo,lvl,code,p1,p2,p3) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ + _mp[4] = (p5); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ + _mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMSS(cinfo,lvl,code,str) \ + ((cinfo)->err->msg_code = (code), \ + strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) + +#endif /* JERROR_H */ diff --git a/engine/libs/mingw64-libs/jmorecfg.h b/engine/libs/mingw64-libs/jmorecfg.h new file mode 100755 index 000000000..928d052c8 --- /dev/null +++ b/engine/libs/mingw64-libs/jmorecfg.h @@ -0,0 +1,371 @@ +/* + * jmorecfg.h + * + * Copyright (C) 1991-1997, Thomas G. Lane. + * Modified 1997-2009 by Guido Vollbeding. + * This file is part of the Independent JPEG Group's software. + * For conditions of distribution and use, see the accompanying README file. + * + * This file contains additional configuration options that customize the + * JPEG software for special applications or support machine-dependent + * optimizations. Most users will not need to touch this file. + */ + + +/* + * Define BITS_IN_JSAMPLE as either + * 8 for 8-bit sample values (the usual setting) + * 12 for 12-bit sample values + * Only 8 and 12 are legal data precisions for lossy JPEG according to the + * JPEG standard, and the IJG code does not support anything else! + * We do not support run-time selection of data precision, sorry. + */ + +#define BITS_IN_JSAMPLE 8 /* use 8 or 12 */ + + +/* + * Maximum number of components (color channels) allowed in JPEG image. + * To meet the letter of the JPEG spec, set this to 255. However, darn + * few applications need more than 4 channels (maybe 5 for CMYK + alpha + * mask). We recommend 10 as a reasonable compromise; use 4 if you are + * really short on memory. (Each allowed component costs a hundred or so + * bytes of storage, whether actually used in an image or not.) + */ + +#define MAX_COMPONENTS 10 /* maximum number of image components */ + + +/* + * Basic data types. + * You may need to change these if you have a machine with unusual data + * type sizes; for example, "char" not 8 bits, "short" not 16 bits, + * or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits, + * but it had better be at least 16. + */ + +/* Representation of a single sample (pixel element value). + * We frequently allocate large arrays of these, so it's important to keep + * them small. But if you have memory to burn and access to char or short + * arrays is very slow on your hardware, you might want to change these. + */ + +#if BITS_IN_JSAMPLE == 8 +/* JSAMPLE should be the smallest type that will hold the values 0..255. + * You can use a signed char by having GETJSAMPLE mask it with 0xFF. + */ + +#ifdef HAVE_UNSIGNED_CHAR + +typedef unsigned char JSAMPLE; +#define GETJSAMPLE(value) ((int) (value)) + +#else /* not HAVE_UNSIGNED_CHAR */ + +typedef char JSAMPLE; +#ifdef CHAR_IS_UNSIGNED +#define GETJSAMPLE(value) ((int) (value)) +#else +#define GETJSAMPLE(value) ((int) (value) & 0xFF) +#endif /* CHAR_IS_UNSIGNED */ + +#endif /* HAVE_UNSIGNED_CHAR */ + +#define MAXJSAMPLE 255 +#define CENTERJSAMPLE 128 + +#endif /* BITS_IN_JSAMPLE == 8 */ + + +#if BITS_IN_JSAMPLE == 12 +/* JSAMPLE should be the smallest type that will hold the values 0..4095. + * On nearly all machines "short" will do nicely. + */ + +typedef short JSAMPLE; +#define GETJSAMPLE(value) ((int) (value)) + +#define MAXJSAMPLE 4095 +#define CENTERJSAMPLE 2048 + +#endif /* BITS_IN_JSAMPLE == 12 */ + + +/* Representation of a DCT frequency coefficient. + * This should be a signed value of at least 16 bits; "short" is usually OK. + * Again, we allocate large arrays of these, but you can change to int + * if you have memory to burn and "short" is really slow. + */ + +typedef short JCOEF; + + +/* Compressed datastreams are represented as arrays of JOCTET. + * These must be EXACTLY 8 bits wide, at least once they are written to + * external storage. Note that when using the stdio data source/destination + * managers, this is also the data type passed to fread/fwrite. + */ + +#ifdef HAVE_UNSIGNED_CHAR + +typedef unsigned char JOCTET; +#define GETJOCTET(value) (value) + +#else /* not HAVE_UNSIGNED_CHAR */ + +typedef char JOCTET; +#ifdef CHAR_IS_UNSIGNED +#define GETJOCTET(value) (value) +#else +#define GETJOCTET(value) ((value) & 0xFF) +#endif /* CHAR_IS_UNSIGNED */ + +#endif /* HAVE_UNSIGNED_CHAR */ + + +/* These typedefs are used for various table entries and so forth. + * They must be at least as wide as specified; but making them too big + * won't cost a huge amount of memory, so we don't provide special + * extraction code like we did for JSAMPLE. (In other words, these + * typedefs live at a different point on the speed/space tradeoff curve.) + */ + +/* UINT8 must hold at least the values 0..255. */ + +#ifdef HAVE_UNSIGNED_CHAR +typedef unsigned char UINT8; +#else /* not HAVE_UNSIGNED_CHAR */ +#ifdef CHAR_IS_UNSIGNED +typedef char UINT8; +#else /* not CHAR_IS_UNSIGNED */ +typedef short UINT8; +#endif /* CHAR_IS_UNSIGNED */ +#endif /* HAVE_UNSIGNED_CHAR */ + +/* UINT16 must hold at least the values 0..65535. */ + +#ifdef HAVE_UNSIGNED_SHORT +typedef unsigned short UINT16; +#else /* not HAVE_UNSIGNED_SHORT */ +typedef unsigned int UINT16; +#endif /* HAVE_UNSIGNED_SHORT */ + +/* INT16 must hold at least the values -32768..32767. */ + +#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ +typedef short INT16; +#endif + +/* INT32 must hold at least signed 32-bit values. */ + +#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ +#ifndef _BASETSD_H_ /* Microsoft defines it in basetsd.h */ +#ifndef _BASETSD_H /* MinGW is slightly different */ +#ifndef QGLOBAL_H /* Qt defines it in qglobal.h */ +typedef long INT32; +#endif +#endif +#endif +#endif + +/* Datatype used for image dimensions. The JPEG standard only supports + * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore + * "unsigned int" is sufficient on all machines. However, if you need to + * handle larger images and you don't mind deviating from the spec, you + * can change this datatype. + */ + +typedef unsigned int JDIMENSION; + +#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */ + + +/* These macros are used in all function definitions and extern declarations. + * You could modify them if you need to change function linkage conventions; + * in particular, you'll need to do that to make the library a Windows DLL. + * Another application is to make all functions global for use with debuggers + * or code profilers that require it. + */ + +/* a function called through method pointers: */ +#define METHODDEF(type) static type +/* a function used only in its module: */ +#define LOCAL(type) static type +/* a function referenced thru EXTERNs: */ +#define GLOBAL(type) type +/* a reference to a GLOBAL function: */ +#define EXTERN(type) extern type + + +/* This macro is used to declare a "method", that is, a function pointer. + * We want to supply prototype parameters if the compiler can cope. + * Note that the arglist parameter must be parenthesized! + * Again, you can customize this if you need special linkage keywords. + */ + +#ifdef HAVE_PROTOTYPES +#define JMETHOD(type,methodname,arglist) type (*methodname) arglist +#else +#define JMETHOD(type,methodname,arglist) type (*methodname) () +#endif + + +/* Here is the pseudo-keyword for declaring pointers that must be "far" + * on 80x86 machines. Most of the specialized coding for 80x86 is handled + * by just saying "FAR *" where such a pointer is needed. In a few places + * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol. + */ + +#ifndef FAR +#ifdef NEED_FAR_POINTERS +#define FAR far +#else +#define FAR +#endif +#endif + + +/* + * On a few systems, type boolean and/or its values FALSE, TRUE may appear + * in standard header files. Or you may have conflicts with application- + * specific header files that you want to include together with these files. + * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. + */ + +#ifndef HAVE_BOOLEAN +typedef int boolean; +#endif +#ifndef FALSE /* in case these macros already exist */ +#define FALSE 0 /* values of boolean */ +#endif +#ifndef TRUE +#define TRUE 1 +#endif + + +/* + * The remaining options affect code selection within the JPEG library, + * but they don't need to be visible to most applications using the library. + * To minimize application namespace pollution, the symbols won't be + * defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined. + */ + +#ifdef JPEG_INTERNALS +#define JPEG_INTERNAL_OPTIONS +#endif + +#ifdef JPEG_INTERNAL_OPTIONS + + +/* + * These defines indicate whether to include various optional functions. + * Undefining some of these symbols will produce a smaller but less capable + * library. Note that you can leave certain source files out of the + * compilation/linking process if you've #undef'd the corresponding symbols. + * (You may HAVE to do that if your compiler doesn't like null source files.) + */ + +/* Capability options common to encoder and decoder: */ + +#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */ +#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */ +#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */ + +/* Encoder capability options: */ + +#define C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ +#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ +#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ +#define DCT_SCALING_SUPPORTED /* Input rescaling via DCT? (Requires DCT_ISLOW)*/ +#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */ +/* Note: if you selected 12-bit data precision, it is dangerous to turn off + * ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit + * precision, so jchuff.c normally uses entropy optimization to compute + * usable tables for higher precision. If you don't want to do optimization, + * you'll have to supply different default Huffman tables. + * The exact same statements apply for progressive JPEG: the default tables + * don't work for progressive mode. (This may get fixed, however.) + */ +#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */ + +/* Decoder capability options: */ + +#define D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ +#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ +#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ +#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */ +#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */ +#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */ +#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */ +#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */ +#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */ +#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */ + +/* more capability options later, no doubt */ + + +/* + * Ordering of RGB data in scanlines passed to or from the application. + * If your application wants to deal with data in the order B,G,R, just + * change these macros. You can also deal with formats such as R,G,B,X + * (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing + * the offsets will also change the order in which colormap data is organized. + * RESTRICTIONS: + * 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats. + * 2. These macros only affect RGB<=>YCbCr color conversion, so they are not + * useful if you are using JPEG color spaces other than YCbCr or grayscale. + * 3. The color quantizer modules will not behave desirably if RGB_PIXELSIZE + * is not 3 (they don't understand about dummy color components!). So you + * can't use color quantization if you change that value. + */ + +#define RGB_RED 0 /* Offset of Red in an RGB scanline element */ +#define RGB_GREEN 1 /* Offset of Green */ +#define RGB_BLUE 2 /* Offset of Blue */ +#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */ + + +/* Definitions for speed-related optimizations. */ + + +/* If your compiler supports inline functions, define INLINE + * as the inline keyword; otherwise define it as empty. + */ + +#ifndef INLINE +#ifdef __GNUC__ /* for instance, GNU C knows about inline */ +#define INLINE __inline__ +#endif +#ifndef INLINE +#define INLINE /* default is to define it as empty */ +#endif +#endif + + +/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying + * two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER + * as short on such a machine. MULTIPLIER must be at least 16 bits wide. + */ + +#ifndef MULTIPLIER +#define MULTIPLIER int /* type for fastest integer multiply */ +#endif + + +/* FAST_FLOAT should be either float or double, whichever is done faster + * by your compiler. (Note that this type is only used in the floating point + * DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.) + * Typically, float is faster in ANSI C compilers, while double is faster in + * pre-ANSI compilers (because they insist on converting to double anyway). + * The code below therefore chooses float if we have ANSI-style prototypes. + */ + +#ifndef FAST_FLOAT +#ifdef HAVE_PROTOTYPES +#define FAST_FLOAT float +#else +#define FAST_FLOAT double +#endif +#endif + +#endif /* JPEG_INTERNAL_OPTIONS */ diff --git a/engine/libs/mingw64-libs/jpeglib.h b/engine/libs/mingw64-libs/jpeglib.h new file mode 100755 index 000000000..5039d4bf4 --- /dev/null +++ b/engine/libs/mingw64-libs/jpeglib.h @@ -0,0 +1,1158 @@ +/* + * jpeglib.h + * + * Copyright (C) 1991-1998, Thomas G. Lane. + * Modified 2002-2009 by Guido Vollbeding. + * This file is part of the Independent JPEG Group's software. + * For conditions of distribution and use, see the accompanying README file. + * + * This file defines the application interface for the JPEG library. + * Most applications using the library need only include this file, + * and perhaps jerror.h if they want to know the exact error codes. + */ + +#ifndef JPEGLIB_H +#define JPEGLIB_H + +/* + * First we include the configuration files that record how this + * installation of the JPEG library is set up. jconfig.h can be + * generated automatically for many systems. jmorecfg.h contains + * manual configuration options that most people need not worry about. + */ + +#ifndef JCONFIG_INCLUDED /* in case jinclude.h already did */ +#include "jconfig.h" /* widely used configuration options */ +#endif +#include "jmorecfg.h" /* seldom changed options */ + + +#ifdef __cplusplus +#ifndef DONT_USE_EXTERN_C +extern "C" { +#endif +#endif + +/* Version ID for the JPEG library. + * Might be useful for tests like "#if JPEG_LIB_VERSION >= 80". + */ + +#define JPEG_LIB_VERSION 80 /* Version 8.0 */ + + +/* Various constants determining the sizes of things. + * All of these are specified by the JPEG standard, so don't change them + * if you want to be compatible. + */ + +#define DCTSIZE 8 /* The basic DCT block is 8x8 samples */ +#define DCTSIZE2 64 /* DCTSIZE squared; # of elements in a block */ +#define NUM_QUANT_TBLS 4 /* Quantization tables are numbered 0..3 */ +#define NUM_HUFF_TBLS 4 /* Huffman tables are numbered 0..3 */ +#define NUM_ARITH_TBLS 16 /* Arith-coding tables are numbered 0..15 */ +#define MAX_COMPS_IN_SCAN 4 /* JPEG limit on # of components in one scan */ +#define MAX_SAMP_FACTOR 4 /* JPEG limit on sampling factors */ +/* Unfortunately, some bozo at Adobe saw no reason to be bound by the standard; + * the PostScript DCT filter can emit files with many more than 10 blocks/MCU. + * If you happen to run across such a file, you can up D_MAX_BLOCKS_IN_MCU + * to handle it. We even let you do this from the jconfig.h file. However, + * we strongly discourage changing C_MAX_BLOCKS_IN_MCU; just because Adobe + * sometimes emits noncompliant files doesn't mean you should too. + */ +#define C_MAX_BLOCKS_IN_MCU 10 /* compressor's limit on blocks per MCU */ +#ifndef D_MAX_BLOCKS_IN_MCU +#define D_MAX_BLOCKS_IN_MCU 10 /* decompressor's limit on blocks per MCU */ +#endif + + +/* Data structures for images (arrays of samples and of DCT coefficients). + * On 80x86 machines, the image arrays are too big for near pointers, + * but the pointer arrays can fit in near memory. + */ + +typedef JSAMPLE FAR *JSAMPROW; /* ptr to one image row of pixel samples. */ +typedef JSAMPROW *JSAMPARRAY; /* ptr to some rows (a 2-D sample array) */ +typedef JSAMPARRAY *JSAMPIMAGE; /* a 3-D sample array: top index is color */ + +typedef JCOEF JBLOCK[DCTSIZE2]; /* one block of coefficients */ +typedef JBLOCK FAR *JBLOCKROW; /* pointer to one row of coefficient blocks */ +typedef JBLOCKROW *JBLOCKARRAY; /* a 2-D array of coefficient blocks */ +typedef JBLOCKARRAY *JBLOCKIMAGE; /* a 3-D array of coefficient blocks */ + +typedef JCOEF FAR *JCOEFPTR; /* useful in a couple of places */ + + +/* Types for JPEG compression parameters and working tables. */ + + +/* DCT coefficient quantization tables. */ + +typedef struct { + /* This array gives the coefficient quantizers in natural array order + * (not the zigzag order in which they are stored in a JPEG DQT marker). + * CAUTION: IJG versions prior to v6a kept this array in zigzag order. + */ + UINT16 quantval[DCTSIZE2]; /* quantization step for each coefficient */ + /* This field is used only during compression. It's initialized FALSE when + * the table is created, and set TRUE when it's been output to the file. + * You could suppress output of a table by setting this to TRUE. + * (See jpeg_suppress_tables for an example.) + */ + boolean sent_table; /* TRUE when table has been output */ +} JQUANT_TBL; + + +/* Huffman coding tables. */ + +typedef struct { + /* These two fields directly represent the contents of a JPEG DHT marker */ + UINT8 bits[17]; /* bits[k] = # of symbols with codes of */ + /* length k bits; bits[0] is unused */ + UINT8 huffval[256]; /* The symbols, in order of incr code length */ + /* This field is used only during compression. It's initialized FALSE when + * the table is created, and set TRUE when it's been output to the file. + * You could suppress output of a table by setting this to TRUE. + * (See jpeg_suppress_tables for an example.) + */ + boolean sent_table; /* TRUE when table has been output */ +} JHUFF_TBL; + + +/* Basic info about one component (color channel). */ + +typedef struct { + /* These values are fixed over the whole image. */ + /* For compression, they must be supplied by parameter setup; */ + /* for decompression, they are read from the SOF marker. */ + int component_id; /* identifier for this component (0..255) */ + int component_index; /* its index in SOF or cinfo->comp_info[] */ + int h_samp_factor; /* horizontal sampling factor (1..4) */ + int v_samp_factor; /* vertical sampling factor (1..4) */ + int quant_tbl_no; /* quantization table selector (0..3) */ + /* These values may vary between scans. */ + /* For compression, they must be supplied by parameter setup; */ + /* for decompression, they are read from the SOS marker. */ + /* The decompressor output side may not use these variables. */ + int dc_tbl_no; /* DC entropy table selector (0..3) */ + int ac_tbl_no; /* AC entropy table selector (0..3) */ + + /* Remaining fields should be treated as private by applications. */ + + /* These values are computed during compression or decompression startup: */ + /* Component's size in DCT blocks. + * Any dummy blocks added to complete an MCU are not counted; therefore + * these values do not depend on whether a scan is interleaved or not. + */ + JDIMENSION width_in_blocks; + JDIMENSION height_in_blocks; + /* Size of a DCT block in samples, + * reflecting any scaling we choose to apply during the DCT step. + * Values from 1 to 16 are supported. + * Note that different components may receive different DCT scalings. + */ + int DCT_h_scaled_size; + int DCT_v_scaled_size; + /* The downsampled dimensions are the component's actual, unpadded number + * of samples at the main buffer (preprocessing/compression interface); + * DCT scaling is included, so + * downsampled_width = ceil(image_width * Hi/Hmax * DCT_h_scaled_size/DCTSIZE) + * and similarly for height. + */ + JDIMENSION downsampled_width; /* actual width in samples */ + JDIMENSION downsampled_height; /* actual height in samples */ + /* This flag is used only for decompression. In cases where some of the + * components will be ignored (eg grayscale output from YCbCr image), + * we can skip most computations for the unused components. + */ + boolean component_needed; /* do we need the value of this component? */ + + /* These values are computed before starting a scan of the component. */ + /* The decompressor output side may not use these variables. */ + int MCU_width; /* number of blocks per MCU, horizontally */ + int MCU_height; /* number of blocks per MCU, vertically */ + int MCU_blocks; /* MCU_width * MCU_height */ + int MCU_sample_width; /* MCU width in samples: MCU_width * DCT_h_scaled_size */ + int last_col_width; /* # of non-dummy blocks across in last MCU */ + int last_row_height; /* # of non-dummy blocks down in last MCU */ + + /* Saved quantization table for component; NULL if none yet saved. + * See jdinput.c comments about the need for this information. + * This field is currently used only for decompression. + */ + JQUANT_TBL * quant_table; + + /* Private per-component storage for DCT or IDCT subsystem. */ + void * dct_table; +} jpeg_component_info; + + +/* The script for encoding a multiple-scan file is an array of these: */ + +typedef struct { + int comps_in_scan; /* number of components encoded in this scan */ + int component_index[MAX_COMPS_IN_SCAN]; /* their SOF/comp_info[] indexes */ + int Ss, Se; /* progressive JPEG spectral selection parms */ + int Ah, Al; /* progressive JPEG successive approx. parms */ +} jpeg_scan_info; + +/* The decompressor can save APPn and COM markers in a list of these: */ + +typedef struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr; + +struct jpeg_marker_struct { + jpeg_saved_marker_ptr next; /* next in list, or NULL */ + UINT8 marker; /* marker code: JPEG_COM, or JPEG_APP0+n */ + unsigned int original_length; /* # bytes of data in the file */ + unsigned int data_length; /* # bytes of data saved at data[] */ + JOCTET FAR * data; /* the data contained in the marker */ + /* the marker length word is not counted in data_length or original_length */ +}; + +/* Known color spaces. */ + +typedef enum { + JCS_UNKNOWN, /* error/unspecified */ + JCS_GRAYSCALE, /* monochrome */ + JCS_RGB, /* red/green/blue */ + JCS_YCbCr, /* Y/Cb/Cr (also known as YUV) */ + JCS_CMYK, /* C/M/Y/K */ + JCS_YCCK /* Y/Cb/Cr/K */ +} J_COLOR_SPACE; + +/* DCT/IDCT algorithm options. */ + +typedef enum { + JDCT_ISLOW, /* slow but accurate integer algorithm */ + JDCT_IFAST, /* faster, less accurate integer method */ + JDCT_FLOAT /* floating-point: accurate, fast on fast HW */ +} J_DCT_METHOD; + +#ifndef JDCT_DEFAULT /* may be overridden in jconfig.h */ +#define JDCT_DEFAULT JDCT_ISLOW +#endif +#ifndef JDCT_FASTEST /* may be overridden in jconfig.h */ +#define JDCT_FASTEST JDCT_IFAST +#endif + +/* Dithering options for decompression. */ + +typedef enum { + JDITHER_NONE, /* no dithering */ + JDITHER_ORDERED, /* simple ordered dither */ + JDITHER_FS /* Floyd-Steinberg error diffusion dither */ +} J_DITHER_MODE; + + +/* Common fields between JPEG compression and decompression master structs. */ + +#define jpeg_common_fields \ + struct jpeg_error_mgr * err; /* Error handler module */\ + struct jpeg_memory_mgr * mem; /* Memory manager module */\ + struct jpeg_progress_mgr * progress; /* Progress monitor, or NULL if none */\ + void * client_data; /* Available for use by application */\ + boolean is_decompressor; /* So common code can tell which is which */\ + int global_state /* For checking call sequence validity */ + +/* Routines that are to be used by both halves of the library are declared + * to receive a pointer to this structure. There are no actual instances of + * jpeg_common_struct, only of jpeg_compress_struct and jpeg_decompress_struct. + */ +struct jpeg_common_struct { + jpeg_common_fields; /* Fields common to both master struct types */ + /* Additional fields follow in an actual jpeg_compress_struct or + * jpeg_decompress_struct. All three structs must agree on these + * initial fields! (This would be a lot cleaner in C++.) + */ +}; + +typedef struct jpeg_common_struct * j_common_ptr; +typedef struct jpeg_compress_struct * j_compress_ptr; +typedef struct jpeg_decompress_struct * j_decompress_ptr; + + +/* Master record for a compression instance */ + +struct jpeg_compress_struct { + jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */ + + /* Destination for compressed data */ + struct jpeg_destination_mgr * dest; + + /* Description of source image --- these fields must be filled in by + * outer application before starting compression. in_color_space must + * be correct before you can even call jpeg_set_defaults(). + */ + + JDIMENSION image_width; /* input image width */ + JDIMENSION image_height; /* input image height */ + int input_components; /* # of color components in input image */ + J_COLOR_SPACE in_color_space; /* colorspace of input image */ + + double input_gamma; /* image gamma of input image */ + + /* Compression parameters --- these fields must be set before calling + * jpeg_start_compress(). We recommend calling jpeg_set_defaults() to + * initialize everything to reasonable defaults, then changing anything + * the application specifically wants to change. That way you won't get + * burnt when new parameters are added. Also note that there are several + * helper routines to simplify changing parameters. + */ + + unsigned int scale_num, scale_denom; /* fraction by which to scale image */ + + JDIMENSION jpeg_width; /* scaled JPEG image width */ + JDIMENSION jpeg_height; /* scaled JPEG image height */ + /* Dimensions of actual JPEG image that will be written to file, + * derived from input dimensions by scaling factors above. + * These fields are computed by jpeg_start_compress(). + * You can also use jpeg_calc_jpeg_dimensions() to determine these values + * in advance of calling jpeg_start_compress(). + */ + + int data_precision; /* bits of precision in image data */ + + int num_components; /* # of color components in JPEG image */ + J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ + + jpeg_component_info * comp_info; + /* comp_info[i] describes component that appears i'th in SOF */ + + JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; + int q_scale_factor[NUM_QUANT_TBLS]; + /* ptrs to coefficient quantization tables, or NULL if not defined, + * and corresponding scale factors (percentage, initialized 100). + */ + + JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; + JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; + /* ptrs to Huffman coding tables, or NULL if not defined */ + + UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ + UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ + UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ + + int num_scans; /* # of entries in scan_info array */ + const jpeg_scan_info * scan_info; /* script for multi-scan file, or NULL */ + /* The default value of scan_info is NULL, which causes a single-scan + * sequential JPEG file to be emitted. To create a multi-scan file, + * set num_scans and scan_info to point to an array of scan definitions. + */ + + boolean raw_data_in; /* TRUE=caller supplies downsampled data */ + boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ + boolean optimize_coding; /* TRUE=optimize entropy encoding parms */ + boolean CCIR601_sampling; /* TRUE=first samples are cosited */ + boolean do_fancy_downsampling; /* TRUE=apply fancy downsampling */ + int smoothing_factor; /* 1..100, or 0 for no input smoothing */ + J_DCT_METHOD dct_method; /* DCT algorithm selector */ + + /* The restart interval can be specified in absolute MCUs by setting + * restart_interval, or in MCU rows by setting restart_in_rows + * (in which case the correct restart_interval will be figured + * for each scan). + */ + unsigned int restart_interval; /* MCUs per restart, or 0 for no restart */ + int restart_in_rows; /* if > 0, MCU rows per restart interval */ + + /* Parameters controlling emission of special markers. */ + + boolean write_JFIF_header; /* should a JFIF marker be written? */ + UINT8 JFIF_major_version; /* What to write for the JFIF version number */ + UINT8 JFIF_minor_version; + /* These three values are not used by the JPEG code, merely copied */ + /* into the JFIF APP0 marker. density_unit can be 0 for unknown, */ + /* 1 for dots/inch, or 2 for dots/cm. Note that the pixel aspect */ + /* ratio is defined by X_density/Y_density even when density_unit=0. */ + UINT8 density_unit; /* JFIF code for pixel size units */ + UINT16 X_density; /* Horizontal pixel density */ + UINT16 Y_density; /* Vertical pixel density */ + boolean write_Adobe_marker; /* should an Adobe marker be written? */ + + /* State variable: index of next scanline to be written to + * jpeg_write_scanlines(). Application may use this to control its + * processing loop, e.g., "while (next_scanline < image_height)". + */ + + JDIMENSION next_scanline; /* 0 .. image_height-1 */ + + /* Remaining fields are known throughout compressor, but generally + * should not be touched by a surrounding application. + */ + + /* + * These fields are computed during compression startup + */ + boolean progressive_mode; /* TRUE if scan script uses progressive mode */ + int max_h_samp_factor; /* largest h_samp_factor */ + int max_v_samp_factor; /* largest v_samp_factor */ + + int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */ + int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */ + + JDIMENSION total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */ + /* The coefficient controller receives data in units of MCU rows as defined + * for fully interleaved scans (whether the JPEG file is interleaved or not). + * There are v_samp_factor * DCTSIZE sample rows of each component in an + * "iMCU" (interleaved MCU) row. + */ + + /* + * These fields are valid during any one scan. + * They describe the components and MCUs actually appearing in the scan. + */ + int comps_in_scan; /* # of JPEG components in this scan */ + jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; + /* *cur_comp_info[i] describes component that appears i'th in SOS */ + + JDIMENSION MCUs_per_row; /* # of MCUs across the image */ + JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ + + int blocks_in_MCU; /* # of DCT blocks per MCU */ + int MCU_membership[C_MAX_BLOCKS_IN_MCU]; + /* MCU_membership[i] is index in cur_comp_info of component owning */ + /* i'th block in an MCU */ + + int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ + + int block_size; /* the basic DCT block size: 1..16 */ + const int * natural_order; /* natural-order position array */ + int lim_Se; /* min( Se, DCTSIZE2-1 ) */ + + /* + * Links to compression subobjects (methods and private variables of modules) + */ + struct jpeg_comp_master * master; + struct jpeg_c_main_controller * main; + struct jpeg_c_prep_controller * prep; + struct jpeg_c_coef_controller * coef; + struct jpeg_marker_writer * marker; + struct jpeg_color_converter * cconvert; + struct jpeg_downsampler * downsample; + struct jpeg_forward_dct * fdct; + struct jpeg_entropy_encoder * entropy; + jpeg_scan_info * script_space; /* workspace for jpeg_simple_progression */ + int script_space_size; +}; + + +/* Master record for a decompression instance */ + +struct jpeg_decompress_struct { + jpeg_common_fields; /* Fields shared with jpeg_compress_struct */ + + /* Source of compressed data */ + struct jpeg_source_mgr * src; + + /* Basic description of image --- filled in by jpeg_read_header(). */ + /* Application may inspect these values to decide how to process image. */ + + JDIMENSION image_width; /* nominal image width (from SOF marker) */ + JDIMENSION image_height; /* nominal image height */ + int num_components; /* # of color components in JPEG image */ + J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ + + /* Decompression processing parameters --- these fields must be set before + * calling jpeg_start_decompress(). Note that jpeg_read_header() initializes + * them to default values. + */ + + J_COLOR_SPACE out_color_space; /* colorspace for output */ + + unsigned int scale_num, scale_denom; /* fraction by which to scale image */ + + double output_gamma; /* image gamma wanted in output */ + + boolean buffered_image; /* TRUE=multiple output passes */ + boolean raw_data_out; /* TRUE=downsampled data wanted */ + + J_DCT_METHOD dct_method; /* IDCT algorithm selector */ + boolean do_fancy_upsampling; /* TRUE=apply fancy upsampling */ + boolean do_block_smoothing; /* TRUE=apply interblock smoothing */ + + boolean quantize_colors; /* TRUE=colormapped output wanted */ + /* the following are ignored if not quantize_colors: */ + J_DITHER_MODE dither_mode; /* type of color dithering to use */ + boolean two_pass_quantize; /* TRUE=use two-pass color quantization */ + int desired_number_of_colors; /* max # colors to use in created colormap */ + /* these are significant only in buffered-image mode: */ + boolean enable_1pass_quant; /* enable future use of 1-pass quantizer */ + boolean enable_external_quant;/* enable future use of external colormap */ + boolean enable_2pass_quant; /* enable future use of 2-pass quantizer */ + + /* Description of actual output image that will be returned to application. + * These fields are computed by jpeg_start_decompress(). + * You can also use jpeg_calc_output_dimensions() to determine these values + * in advance of calling jpeg_start_decompress(). + */ + + JDIMENSION output_width; /* scaled image width */ + JDIMENSION output_height; /* scaled image height */ + int out_color_components; /* # of color components in out_color_space */ + int output_components; /* # of color components returned */ + /* output_components is 1 (a colormap index) when quantizing colors; + * otherwise it equals out_color_components. + */ + int rec_outbuf_height; /* min recommended height of scanline buffer */ + /* If the buffer passed to jpeg_read_scanlines() is less than this many rows + * high, space and time will be wasted due to unnecessary data copying. + * Usually rec_outbuf_height will be 1 or 2, at most 4. + */ + + /* When quantizing colors, the output colormap is described by these fields. + * The application can supply a colormap by setting colormap non-NULL before + * calling jpeg_start_decompress; otherwise a colormap is created during + * jpeg_start_decompress or jpeg_start_output. + * The map has out_color_components rows and actual_number_of_colors columns. + */ + int actual_number_of_colors; /* number of entries in use */ + JSAMPARRAY colormap; /* The color map as a 2-D pixel array */ + + /* State variables: these variables indicate the progress of decompression. + * The application may examine these but must not modify them. + */ + + /* Row index of next scanline to be read from jpeg_read_scanlines(). + * Application may use this to control its processing loop, e.g., + * "while (output_scanline < output_height)". + */ + JDIMENSION output_scanline; /* 0 .. output_height-1 */ + + /* Current input scan number and number of iMCU rows completed in scan. + * These indicate the progress of the decompressor input side. + */ + int input_scan_number; /* Number of SOS markers seen so far */ + JDIMENSION input_iMCU_row; /* Number of iMCU rows completed */ + + /* The "output scan number" is the notional scan being displayed by the + * output side. The decompressor will not allow output scan/row number + * to get ahead of input scan/row, but it can fall arbitrarily far behind. + */ + int output_scan_number; /* Nominal scan number being displayed */ + JDIMENSION output_iMCU_row; /* Number of iMCU rows read */ + + /* Current progression status. coef_bits[c][i] indicates the precision + * with which component c's DCT coefficient i (in zigzag order) is known. + * It is -1 when no data has yet been received, otherwise it is the point + * transform (shift) value for the most recent scan of the coefficient + * (thus, 0 at completion of the progression). + * This pointer is NULL when reading a non-progressive file. + */ + int (*coef_bits)[DCTSIZE2]; /* -1 or current Al value for each coef */ + + /* Internal JPEG parameters --- the application usually need not look at + * these fields. Note that the decompressor output side may not use + * any parameters that can change between scans. + */ + + /* Quantization and Huffman tables are carried forward across input + * datastreams when processing abbreviated JPEG datastreams. + */ + + JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; + /* ptrs to coefficient quantization tables, or NULL if not defined */ + + JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; + JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; + /* ptrs to Huffman coding tables, or NULL if not defined */ + + /* These parameters are never carried across datastreams, since they + * are given in SOF/SOS markers or defined to be reset by SOI. + */ + + int data_precision; /* bits of precision in image data */ + + jpeg_component_info * comp_info; + /* comp_info[i] describes component that appears i'th in SOF */ + + boolean is_baseline; /* TRUE if Baseline SOF0 encountered */ + boolean progressive_mode; /* TRUE if SOFn specifies progressive mode */ + boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ + + UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ + UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ + UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ + + unsigned int restart_interval; /* MCUs per restart interval, or 0 for no restart */ + + /* These fields record data obtained from optional markers recognized by + * the JPEG library. + */ + boolean saw_JFIF_marker; /* TRUE iff a JFIF APP0 marker was found */ + /* Data copied from JFIF marker; only valid if saw_JFIF_marker is TRUE: */ + UINT8 JFIF_major_version; /* JFIF version number */ + UINT8 JFIF_minor_version; + UINT8 density_unit; /* JFIF code for pixel size units */ + UINT16 X_density; /* Horizontal pixel density */ + UINT16 Y_density; /* Vertical pixel density */ + boolean saw_Adobe_marker; /* TRUE iff an Adobe APP14 marker was found */ + UINT8 Adobe_transform; /* Color transform code from Adobe marker */ + + boolean CCIR601_sampling; /* TRUE=first samples are cosited */ + + /* Aside from the specific data retained from APPn markers known to the + * library, the uninterpreted contents of any or all APPn and COM markers + * can be saved in a list for examination by the application. + */ + jpeg_saved_marker_ptr marker_list; /* Head of list of saved markers */ + + /* Remaining fields are known throughout decompressor, but generally + * should not be touched by a surrounding application. + */ + + /* + * These fields are computed during decompression startup + */ + int max_h_samp_factor; /* largest h_samp_factor */ + int max_v_samp_factor; /* largest v_samp_factor */ + + int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */ + int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */ + + JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */ + /* The coefficient controller's input and output progress is measured in + * units of "iMCU" (interleaved MCU) rows. These are the same as MCU rows + * in fully interleaved JPEG scans, but are used whether the scan is + * interleaved or not. We define an iMCU row as v_samp_factor DCT block + * rows of each component. Therefore, the IDCT output contains + * v_samp_factor*DCT_v_scaled_size sample rows of a component per iMCU row. + */ + + JSAMPLE * sample_range_limit; /* table for fast range-limiting */ + + /* + * These fields are valid during any one scan. + * They describe the components and MCUs actually appearing in the scan. + * Note that the decompressor output side must not use these fields. + */ + int comps_in_scan; /* # of JPEG components in this scan */ + jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; + /* *cur_comp_info[i] describes component that appears i'th in SOS */ + + JDIMENSION MCUs_per_row; /* # of MCUs across the image */ + JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ + + int blocks_in_MCU; /* # of DCT blocks per MCU */ + int MCU_membership[D_MAX_BLOCKS_IN_MCU]; + /* MCU_membership[i] is index in cur_comp_info of component owning */ + /* i'th block in an MCU */ + + int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ + + /* These fields are derived from Se of first SOS marker. + */ + int block_size; /* the basic DCT block size: 1..16 */ + const int * natural_order; /* natural-order position array for entropy decode */ + int lim_Se; /* min( Se, DCTSIZE2-1 ) for entropy decode */ + + /* This field is shared between entropy decoder and marker parser. + * It is either zero or the code of a JPEG marker that has been + * read from the data source, but has not yet been processed. + */ + int unread_marker; + + /* + * Links to decompression subobjects (methods, private variables of modules) + */ + struct jpeg_decomp_master * master; + struct jpeg_d_main_controller * main; + struct jpeg_d_coef_controller * coef; + struct jpeg_d_post_controller * post; + struct jpeg_input_controller * inputctl; + struct jpeg_marker_reader * marker; + struct jpeg_entropy_decoder * entropy; + struct jpeg_inverse_dct * idct; + struct jpeg_upsampler * upsample; + struct jpeg_color_deconverter * cconvert; + struct jpeg_color_quantizer * cquantize; +}; + + +/* "Object" declarations for JPEG modules that may be supplied or called + * directly by the surrounding application. + * As with all objects in the JPEG library, these structs only define the + * publicly visible methods and state variables of a module. Additional + * private fields may exist after the public ones. + */ + + +/* Error handler object */ + +struct jpeg_error_mgr { + /* Error exit handler: does not return to caller */ + JMETHOD(void, error_exit, (j_common_ptr cinfo)); + /* Conditionally emit a trace or warning message */ + JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level)); + /* Routine that actually outputs a trace or error message */ + JMETHOD(void, output_message, (j_common_ptr cinfo)); + /* Format a message string for the most recent JPEG error or message */ + JMETHOD(void, format_message, (j_common_ptr cinfo, char * buffer)); +#define JMSG_LENGTH_MAX 200 /* recommended size of format_message buffer */ + /* Reset error state variables at start of a new image */ + JMETHOD(void, reset_error_mgr, (j_common_ptr cinfo)); + + /* The message ID code and any parameters are saved here. + * A message can have one string parameter or up to 8 int parameters. + */ + int msg_code; +#define JMSG_STR_PARM_MAX 80 + union { + int i[8]; + char s[JMSG_STR_PARM_MAX]; + } msg_parm; + + /* Standard state variables for error facility */ + + int trace_level; /* max msg_level that will be displayed */ + + /* For recoverable corrupt-data errors, we emit a warning message, + * but keep going unless emit_message chooses to abort. emit_message + * should count warnings in num_warnings. The surrounding application + * can check for bad data by seeing if num_warnings is nonzero at the + * end of processing. + */ + long num_warnings; /* number of corrupt-data warnings */ + + /* These fields point to the table(s) of error message strings. + * An application can change the table pointer to switch to a different + * message list (typically, to change the language in which errors are + * reported). Some applications may wish to add additional error codes + * that will be handled by the JPEG library error mechanism; the second + * table pointer is used for this purpose. + * + * First table includes all errors generated by JPEG library itself. + * Error code 0 is reserved for a "no such error string" message. + */ + const char * const * jpeg_message_table; /* Library errors */ + int last_jpeg_message; /* Table contains strings 0..last_jpeg_message */ + /* Second table can be added by application (see cjpeg/djpeg for example). + * It contains strings numbered first_addon_message..last_addon_message. + */ + const char * const * addon_message_table; /* Non-library errors */ + int first_addon_message; /* code for first string in addon table */ + int last_addon_message; /* code for last string in addon table */ +}; + + +/* Progress monitor object */ + +struct jpeg_progress_mgr { + JMETHOD(void, progress_monitor, (j_common_ptr cinfo)); + + long pass_counter; /* work units completed in this pass */ + long pass_limit; /* total number of work units in this pass */ + int completed_passes; /* passes completed so far */ + int total_passes; /* total number of passes expected */ +}; + + +/* Data destination object for compression */ + +struct jpeg_destination_mgr { + JOCTET * next_output_byte; /* => next byte to write in buffer */ + size_t free_in_buffer; /* # of byte spaces remaining in buffer */ + + JMETHOD(void, init_destination, (j_compress_ptr cinfo)); + JMETHOD(boolean, empty_output_buffer, (j_compress_ptr cinfo)); + JMETHOD(void, term_destination, (j_compress_ptr cinfo)); +}; + + +/* Data source object for decompression */ + +struct jpeg_source_mgr { + const JOCTET * next_input_byte; /* => next byte to read from buffer */ + size_t bytes_in_buffer; /* # of bytes remaining in buffer */ + + JMETHOD(void, init_source, (j_decompress_ptr cinfo)); + JMETHOD(boolean, fill_input_buffer, (j_decompress_ptr cinfo)); + JMETHOD(void, skip_input_data, (j_decompress_ptr cinfo, long num_bytes)); + JMETHOD(boolean, resync_to_restart, (j_decompress_ptr cinfo, int desired)); + JMETHOD(void, term_source, (j_decompress_ptr cinfo)); +}; + + +/* Memory manager object. + * Allocates "small" objects (a few K total), "large" objects (tens of K), + * and "really big" objects (virtual arrays with backing store if needed). + * The memory manager does not allow individual objects to be freed; rather, + * each created object is assigned to a pool, and whole pools can be freed + * at once. This is faster and more convenient than remembering exactly what + * to free, especially where malloc()/free() are not too speedy. + * NB: alloc routines never return NULL. They exit to error_exit if not + * successful. + */ + +#define JPOOL_PERMANENT 0 /* lasts until master record is destroyed */ +#define JPOOL_IMAGE 1 /* lasts until done with image/datastream */ +#define JPOOL_NUMPOOLS 2 + +typedef struct jvirt_sarray_control * jvirt_sarray_ptr; +typedef struct jvirt_barray_control * jvirt_barray_ptr; + + +struct jpeg_memory_mgr { + /* Method pointers */ + JMETHOD(void *, alloc_small, (j_common_ptr cinfo, int pool_id, + size_t sizeofobject)); + JMETHOD(void FAR *, alloc_large, (j_common_ptr cinfo, int pool_id, + size_t sizeofobject)); + JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id, + JDIMENSION samplesperrow, + JDIMENSION numrows)); + JMETHOD(JBLOCKARRAY, alloc_barray, (j_common_ptr cinfo, int pool_id, + JDIMENSION blocksperrow, + JDIMENSION numrows)); + JMETHOD(jvirt_sarray_ptr, request_virt_sarray, (j_common_ptr cinfo, + int pool_id, + boolean pre_zero, + JDIMENSION samplesperrow, + JDIMENSION numrows, + JDIMENSION maxaccess)); + JMETHOD(jvirt_barray_ptr, request_virt_barray, (j_common_ptr cinfo, + int pool_id, + boolean pre_zero, + JDIMENSION blocksperrow, + JDIMENSION numrows, + JDIMENSION maxaccess)); + JMETHOD(void, realize_virt_arrays, (j_common_ptr cinfo)); + JMETHOD(JSAMPARRAY, access_virt_sarray, (j_common_ptr cinfo, + jvirt_sarray_ptr ptr, + JDIMENSION start_row, + JDIMENSION num_rows, + boolean writable)); + JMETHOD(JBLOCKARRAY, access_virt_barray, (j_common_ptr cinfo, + jvirt_barray_ptr ptr, + JDIMENSION start_row, + JDIMENSION num_rows, + boolean writable)); + JMETHOD(void, free_pool, (j_common_ptr cinfo, int pool_id)); + JMETHOD(void, self_destruct, (j_common_ptr cinfo)); + + /* Limit on memory allocation for this JPEG object. (Note that this is + * merely advisory, not a guaranteed maximum; it only affects the space + * used for virtual-array buffers.) May be changed by outer application + * after creating the JPEG object. + */ + long max_memory_to_use; + + /* Maximum allocation request accepted by alloc_large. */ + long max_alloc_chunk; +}; + + +/* Routine signature for application-supplied marker processing methods. + * Need not pass marker code since it is stored in cinfo->unread_marker. + */ +typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo)); + + +/* Declarations for routines called by application. + * The JPP macro hides prototype parameters from compilers that can't cope. + * Note JPP requires double parentheses. + */ + +#ifdef HAVE_PROTOTYPES +#define JPP(arglist) arglist +#else +#define JPP(arglist) () +#endif + + +/* Short forms of external names for systems with brain-damaged linkers. + * We shorten external names to be unique in the first six letters, which + * is good enough for all known systems. + * (If your compiler itself needs names to be unique in less than 15 + * characters, you are out of luck. Get a better compiler.) + */ + +#ifdef NEED_SHORT_EXTERNAL_NAMES +#define jpeg_std_error jStdError +#define jpeg_CreateCompress jCreaCompress +#define jpeg_CreateDecompress jCreaDecompress +#define jpeg_destroy_compress jDestCompress +#define jpeg_destroy_decompress jDestDecompress +#define jpeg_stdio_dest jStdDest +#define jpeg_stdio_src jStdSrc +#define jpeg_mem_dest jMemDest +#define jpeg_mem_src jMemSrc +#define jpeg_set_defaults jSetDefaults +#define jpeg_set_colorspace jSetColorspace +#define jpeg_default_colorspace jDefColorspace +#define jpeg_set_quality jSetQuality +#define jpeg_set_linear_quality jSetLQuality +#define jpeg_default_qtables jDefQTables +#define jpeg_add_quant_table jAddQuantTable +#define jpeg_quality_scaling jQualityScaling +#define jpeg_simple_progression jSimProgress +#define jpeg_suppress_tables jSuppressTables +#define jpeg_alloc_quant_table jAlcQTable +#define jpeg_alloc_huff_table jAlcHTable +#define jpeg_start_compress jStrtCompress +#define jpeg_write_scanlines jWrtScanlines +#define jpeg_finish_compress jFinCompress +#define jpeg_calc_jpeg_dimensions jCjpegDimensions +#define jpeg_write_raw_data jWrtRawData +#define jpeg_write_marker jWrtMarker +#define jpeg_write_m_header jWrtMHeader +#define jpeg_write_m_byte jWrtMByte +#define jpeg_write_tables jWrtTables +#define jpeg_read_header jReadHeader +#define jpeg_start_decompress jStrtDecompress +#define jpeg_read_scanlines jReadScanlines +#define jpeg_finish_decompress jFinDecompress +#define jpeg_read_raw_data jReadRawData +#define jpeg_has_multiple_scans jHasMultScn +#define jpeg_start_output jStrtOutput +#define jpeg_finish_output jFinOutput +#define jpeg_input_complete jInComplete +#define jpeg_new_colormap jNewCMap +#define jpeg_consume_input jConsumeInput +#define jpeg_core_output_dimensions jCoreDimensions +#define jpeg_calc_output_dimensions jCalcDimensions +#define jpeg_save_markers jSaveMarkers +#define jpeg_set_marker_processor jSetMarker +#define jpeg_read_coefficients jReadCoefs +#define jpeg_write_coefficients jWrtCoefs +#define jpeg_copy_critical_parameters jCopyCrit +#define jpeg_abort_compress jAbrtCompress +#define jpeg_abort_decompress jAbrtDecompress +#define jpeg_abort jAbort +#define jpeg_destroy jDestroy +#define jpeg_resync_to_restart jResyncRestart +#endif /* NEED_SHORT_EXTERNAL_NAMES */ + + +/* Default error-management setup */ +EXTERN(struct jpeg_error_mgr *) jpeg_std_error + JPP((struct jpeg_error_mgr * err)); + +/* Initialization of JPEG compression objects. + * jpeg_create_compress() and jpeg_create_decompress() are the exported + * names that applications should call. These expand to calls on + * jpeg_CreateCompress and jpeg_CreateDecompress with additional information + * passed for version mismatch checking. + * NB: you must set up the error-manager BEFORE calling jpeg_create_xxx. + */ +#define jpeg_create_compress(cinfo) \ + jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \ + (size_t) sizeof(struct jpeg_compress_struct)) +#define jpeg_create_decompress(cinfo) \ + jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \ + (size_t) sizeof(struct jpeg_decompress_struct)) +EXTERN(void) jpeg_CreateCompress JPP((j_compress_ptr cinfo, + int version, size_t structsize)); +EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo, + int version, size_t structsize)); +/* Destruction of JPEG compression objects */ +EXTERN(void) jpeg_destroy_compress JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo)); + +/* Standard data source and destination managers: stdio streams. */ +/* Caller is responsible for opening the file before and closing after. */ +EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile)); +EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile)); + +/* Data source and destination managers: memory buffers. */ +EXTERN(void) jpeg_mem_dest JPP((j_compress_ptr cinfo, + unsigned char ** outbuffer, + unsigned long * outsize)); +EXTERN(void) jpeg_mem_src JPP((j_decompress_ptr cinfo, + unsigned char * inbuffer, + unsigned long insize)); + +/* Default parameter setup for compression */ +EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo)); +/* Compression parameter setup aids */ +EXTERN(void) jpeg_set_colorspace JPP((j_compress_ptr cinfo, + J_COLOR_SPACE colorspace)); +EXTERN(void) jpeg_default_colorspace JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality, + boolean force_baseline)); +EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo, + int scale_factor, + boolean force_baseline)); +EXTERN(void) jpeg_default_qtables JPP((j_compress_ptr cinfo, + boolean force_baseline)); +EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl, + const unsigned int *basic_table, + int scale_factor, + boolean force_baseline)); +EXTERN(int) jpeg_quality_scaling JPP((int quality)); +EXTERN(void) jpeg_simple_progression JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_suppress_tables JPP((j_compress_ptr cinfo, + boolean suppress)); +EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table JPP((j_common_ptr cinfo)); +EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table JPP((j_common_ptr cinfo)); + +/* Main entry points for compression */ +EXTERN(void) jpeg_start_compress JPP((j_compress_ptr cinfo, + boolean write_all_tables)); +EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo, + JSAMPARRAY scanlines, + JDIMENSION num_lines)); +EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo)); + +/* Precalculate JPEG dimensions for current compression parameters. */ +EXTERN(void) jpeg_calc_jpeg_dimensions JPP((j_compress_ptr cinfo)); + +/* Replaces jpeg_write_scanlines when writing raw downsampled data. */ +EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo, + JSAMPIMAGE data, + JDIMENSION num_lines)); + +/* Write a special marker. See libjpeg.txt concerning safe usage. */ +EXTERN(void) jpeg_write_marker + JPP((j_compress_ptr cinfo, int marker, + const JOCTET * dataptr, unsigned int datalen)); +/* Same, but piecemeal. */ +EXTERN(void) jpeg_write_m_header + JPP((j_compress_ptr cinfo, int marker, unsigned int datalen)); +EXTERN(void) jpeg_write_m_byte + JPP((j_compress_ptr cinfo, int val)); + +/* Alternate compression function: just write an abbreviated table file */ +EXTERN(void) jpeg_write_tables JPP((j_compress_ptr cinfo)); + +/* Decompression startup: read start of JPEG datastream to see what's there */ +EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo, + boolean require_image)); +/* Return value is one of: */ +#define JPEG_SUSPENDED 0 /* Suspended due to lack of input data */ +#define JPEG_HEADER_OK 1 /* Found valid image datastream */ +#define JPEG_HEADER_TABLES_ONLY 2 /* Found valid table-specs-only datastream */ +/* If you pass require_image = TRUE (normal case), you need not check for + * a TABLES_ONLY return code; an abbreviated file will cause an error exit. + * JPEG_SUSPENDED is only possible if you use a data source module that can + * give a suspension return (the stdio source module doesn't). + */ + +/* Main entry points for decompression */ +EXTERN(boolean) jpeg_start_decompress JPP((j_decompress_ptr cinfo)); +EXTERN(JDIMENSION) jpeg_read_scanlines JPP((j_decompress_ptr cinfo, + JSAMPARRAY scanlines, + JDIMENSION max_lines)); +EXTERN(boolean) jpeg_finish_decompress JPP((j_decompress_ptr cinfo)); + +/* Replaces jpeg_read_scanlines when reading raw downsampled data. */ +EXTERN(JDIMENSION) jpeg_read_raw_data JPP((j_decompress_ptr cinfo, + JSAMPIMAGE data, + JDIMENSION max_lines)); + +/* Additional entry points for buffered-image mode. */ +EXTERN(boolean) jpeg_has_multiple_scans JPP((j_decompress_ptr cinfo)); +EXTERN(boolean) jpeg_start_output JPP((j_decompress_ptr cinfo, + int scan_number)); +EXTERN(boolean) jpeg_finish_output JPP((j_decompress_ptr cinfo)); +EXTERN(boolean) jpeg_input_complete JPP((j_decompress_ptr cinfo)); +EXTERN(void) jpeg_new_colormap JPP((j_decompress_ptr cinfo)); +EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo)); +/* Return value is one of: */ +/* #define JPEG_SUSPENDED 0 Suspended due to lack of input data */ +#define JPEG_REACHED_SOS 1 /* Reached start of new scan */ +#define JPEG_REACHED_EOI 2 /* Reached end of image */ +#define JPEG_ROW_COMPLETED 3 /* Completed one iMCU row */ +#define JPEG_SCAN_COMPLETED 4 /* Completed last iMCU row of a scan */ + +/* Precalculate output dimensions for current decompression parameters. */ +EXTERN(void) jpeg_core_output_dimensions JPP((j_decompress_ptr cinfo)); +EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo)); + +/* Control saving of COM and APPn markers into marker_list. */ +EXTERN(void) jpeg_save_markers + JPP((j_decompress_ptr cinfo, int marker_code, + unsigned int length_limit)); + +/* Install a special processing method for COM or APPn markers. */ +EXTERN(void) jpeg_set_marker_processor + JPP((j_decompress_ptr cinfo, int marker_code, + jpeg_marker_parser_method routine)); + +/* Read or write raw DCT coefficients --- useful for lossless transcoding. */ +EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients JPP((j_decompress_ptr cinfo)); +EXTERN(void) jpeg_write_coefficients JPP((j_compress_ptr cinfo, + jvirt_barray_ptr * coef_arrays)); +EXTERN(void) jpeg_copy_critical_parameters JPP((j_decompress_ptr srcinfo, + j_compress_ptr dstinfo)); + +/* If you choose to abort compression or decompression before completing + * jpeg_finish_(de)compress, then you need to clean up to release memory, + * temporary files, etc. You can just call jpeg_destroy_(de)compress + * if you're done with the JPEG object, but if you want to clean it up and + * reuse it, call this: + */ +EXTERN(void) jpeg_abort_compress JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_abort_decompress JPP((j_decompress_ptr cinfo)); + +/* Generic versions of jpeg_abort and jpeg_destroy that work on either + * flavor of JPEG object. These may be more convenient in some places. + */ +EXTERN(void) jpeg_abort JPP((j_common_ptr cinfo)); +EXTERN(void) jpeg_destroy JPP((j_common_ptr cinfo)); + +/* Default restart-marker-resync procedure for use by data source modules */ +EXTERN(boolean) jpeg_resync_to_restart JPP((j_decompress_ptr cinfo, + int desired)); + + +/* These marker codes are exported since applications and data source modules + * are likely to want to use them. + */ + +#define JPEG_RST0 0xD0 /* RST0 marker code */ +#define JPEG_EOI 0xD9 /* EOI marker code */ +#define JPEG_APP0 0xE0 /* APP0 marker code */ +#define JPEG_COM 0xFE /* COM marker code */ + + +/* If we have a brain-damaged compiler that emits warnings (or worse, errors) + * for structure definitions that are never filled in, keep it quiet by + * supplying dummy definitions for the various substructures. + */ + +#ifdef INCOMPLETE_TYPES_BROKEN +#ifndef JPEG_INTERNALS /* will be defined in jpegint.h */ +struct jvirt_sarray_control { long dummy; }; +struct jvirt_barray_control { long dummy; }; +struct jpeg_comp_master { long dummy; }; +struct jpeg_c_main_controller { long dummy; }; +struct jpeg_c_prep_controller { long dummy; }; +struct jpeg_c_coef_controller { long dummy; }; +struct jpeg_marker_writer { long dummy; }; +struct jpeg_color_converter { long dummy; }; +struct jpeg_downsampler { long dummy; }; +struct jpeg_forward_dct { long dummy; }; +struct jpeg_entropy_encoder { long dummy; }; +struct jpeg_decomp_master { long dummy; }; +struct jpeg_d_main_controller { long dummy; }; +struct jpeg_d_coef_controller { long dummy; }; +struct jpeg_d_post_controller { long dummy; }; +struct jpeg_input_controller { long dummy; }; +struct jpeg_marker_reader { long dummy; }; +struct jpeg_entropy_decoder { long dummy; }; +struct jpeg_inverse_dct { long dummy; }; +struct jpeg_upsampler { long dummy; }; +struct jpeg_color_deconverter { long dummy; }; +struct jpeg_color_quantizer { long dummy; }; +#endif /* JPEG_INTERNALS */ +#endif /* INCOMPLETE_TYPES_BROKEN */ + + +/* + * The JPEG library modules define JPEG_INTERNALS before including this file. + * The internal structure declarations are read only when that is true. + * Applications using the library should not include jpegint.h, but may wish + * to include jerror.h. + */ + +#ifdef JPEG_INTERNALS +#include "jpegint.h" /* fetch private declarations */ +#include "jerror.h" /* fetch error codes too */ +#endif + +#ifdef __cplusplus +#ifndef DONT_USE_EXTERN_C +} +#endif +#endif + +#endif /* JPEGLIB_H */ diff --git a/engine/libs/mingw64-libs/jversion.h b/engine/libs/mingw64-libs/jversion.h new file mode 100644 index 000000000..daf9db243 --- /dev/null +++ b/engine/libs/mingw64-libs/jversion.h @@ -0,0 +1,14 @@ +/* + * jversion.h + * + * Copyright (C) 1991-2010, Thomas G. Lane, Guido Vollbeding. + * This file is part of the Independent JPEG Group's software. + * For conditions of distribution and use, see the accompanying README file. + * + * This file contains software version identification. + */ + + +#define JVERSION "8b 16-May-2010" + +#define JCOPYRIGHT "Copyright (C) 2010, Thomas G. Lane, Guido Vollbeding" diff --git a/engine/libs/mingw64-libs/libjpeg.a b/engine/libs/mingw64-libs/libjpeg.a new file mode 100755 index 0000000000000000000000000000000000000000..1bd9694516bba96d05b8e98e2cb48822e0fba367 GIT binary patch literal 1242824 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 z zE{Pww{o|%MY%ki<2D>-M_}<=o;fll`2L52HUx%XdoMP|G`a3_={NVjZgl*FR&hZV` z-j7XQbEJ*~oo%;l1*43{-!;RW6E8du0tiozH@k;PieZB&ar;Qj6<9T!4fQmd8hZjGhary7& z4fjHQNOZ|3#oJ!&l;%UTLF^o}k@Rfa^e7#n>wRV3GbBgIdA7#6#@>B;o8Rq6EBDfI zjWG_`5Jlt;G9si~ufqcpEV<`zNoW7JHNL`4kTOH@d@ws%&n+vCe`k#DxE3#d%nfejHx&2pVH5|9q z(}NHhzHeV7ITBA+G&yWfr|VAJ(`P0&t{$m5)?d(g&pd)`*qbNL_H?uFhekX^DD4xx zVFF{`-FUNk7F=7+X{YZz`X~cP?*)6!F66&f&$Bde-4RDb>GdaV^-mE;+Y9HNzLvy8 zDG4~5`@3}C4-Ve-sf}GaJIDM`6PHzX!~qLT^{w8L3$93}+McfOK}?*s7tT4xyzTiY z-S?8?@F&hO@2!c)vAp%oo|*cEw&z{`?i=Z-Yv21gHky`E7rNP=2BLKo?89wj!X{Fj zu%iSgOeEPMX&sUnCXwQVfh0R&S_zzc&3ze-d*U#WX^G9dNjE9q?K9gN{)8HQ@9b@5 zb)T4h2flV~_vqWH2lQUe1ITW?&9;V(-RGzpZm;W(7lp4GC#G2M+b7BNfjFMx-R{s(N-gx^n_;mVjdj*Epsa1gB z1JNqHhXBooQ^QgIPE`R^(`ZQ)XYbCBr%39C z3pKO-erk5ZftsT9dK?zKwg=9E2f}-S*={NT;3|Xn+!qPU_*t9@e+HcNWo+^j;XRxQynpO54jICRy z-}#+jPrCxa>}dvV$KGSxM>|7wsCqqp!)LvMdG}Qug8i!5Ip%)Swrx{47+>qHaJM*@ zyX>`e-W%{7<*3HOm z+80cp@C)>C7C&2CO+@b~#49Tb3SGW8r_t1Lcy~WAaQWV$DZ~n>@yWOpe7hSTh)Y17 zF5mZGKkW8>?()6LjBMj%&Zw_njftB3e3F+E;#npk*7jG z;4Tb4pVeOf%~;zlG|1e(y)RNK@sMLTm2A7*Ip%dw-!c1E_jdRW!KKpi=<9#fQOeWH zx6iMmBmXARzH=g@=5re38_7^J%JycI9fD7;kI884(&VkLC#iM+7>7Qt4r6^E$)MHt zHS7fiIJKe#&5Aasub@80@7xmOt>41SH#FBqqlgmNIovn0On z9o|6OrZ^;AWd|Mp9!(f7kz?Lj-Pz&W3n%V-r|m=E>uuj=HSUNbjX{}h-CcLq)tgDr zXzo6sI`%`C1Uk*7P9zMx+Wc>h|;??waQeB=DX#)j2Nct~*mUj*-=x>UMAf z9n8R`X19aNd0Taa5Vo4%*`D4Kmy7bx!f(QD*YtEXPPFla?dd2`xj9pD~?lPPxi{CJd&jjn1)lW2X1(s^6g14*#Rx{!sZoU-n$NSflVbMD;Xsa;syTn89ob&XN z^c1h2qj)vawy6$-&v$n3C+526Xxe}iCl_z4uSGFe*?w2qORl}gOfFXc#+|@>H66iG z!+Zopl763;Dx%Bj-+l~VZvPW4__8%bgF|`)q8K_iH?g_C8B_Ntr+-x+Tf^rdNN=30 zKMPN!c|X&g13y0eSwwZT!~0XX?G~EEoUn*1ls{a5{sK^*sovApy`NdV7eI3h5SXi) z@#Xt=@A;_pCx|3vBaab`Ws+DOQ8zX;1Gyh0HII|`T6y-u1;MrEVaet-FrACa&bV{F>S(90tdGNcQujnr0AhRE zOB!zd8ZKv__ZUFBFzdyu{&dXbFSEh;a?$u*&E4spy`Nio=B-q_ zP@%*3lVk5sQI7S;iORV#=3i-|W+!Pe=_@o_aIX3Nf1<`^QjJ`gmXl|oMu@v z@P_YvtDw9EeQfo&V-`@Bc^g@pKMnR%2dwWat^)nFK>G)N)$cvtdhgF@d@HDZ-?sHe zynd0^lP&yrtse!k|C`pge0v&GXeFs4c(G5L6$lyU(b@YQ@lqGIh8pCze#_@bjG%BR z%var~buO@I?=;6$M`4EVO-yR!61-o!>YnARD7Swbg^#v|=`_6kQxF`xhHTE`M*AKh+9c65-;YP#*gOjsY-^kkJ5!*lxKW@^S-oG*(?0_|*&Rkj7y4 z#0_cdE&a{<3*7iz=;XE4G=fiBec$iB5Vihu!l!H;>%t12{AbO(S^gReJdT&A?=WGMG%n)=CBl65%0It+a+g+mc+q-sy&Ii1KTals5iq`A4g`_;zsO*l?z|*Yv~ApVbW)j;b>eO z&Qgd?xid-FwQq_fso3_PdasfmdTR6WK>Wx=p5` zOf^#uQEQ_ovlGI$RGfrQq8(V%^g&0&XZVGB9OxgK4-jZOUY;m$kHPN}=VFi!Yn7Or+&f5iOTy(Q;`XEti%UX8%WF_B8SMy%bQRjs&U$-!b$} z8(7=$jfp$)JE#8%zDn{xO3MnY>1)P2{rA(tBE8{wO`^N3yhkclt_fPrfGoTitw*N6 z$JZ{}I(iTsa{SH{5byn#2fw{=A@w!XqdWb-ZRUkP@LcUGTNGWldPs~`)8E}#9*v@( zqNwNkEPwq;nqsNs0+f8sIV48Mw1HsAI_3!y*|up8cNWxe7>&z?VVg_KDXgEU)qv*F za%u_evG!%ycgv@EsYYuTDg>tB4dyRp`ploU-5QGcx^)tWjPXJagY+8%)sjL}NYB_N zK#Lu|zmT4jTQ-8VbVi;km;W|eW%?f{twCEU{$G*64F}dnV=pl+hN|X4&&%d98z^Vp z7qlvjp=Mxd2)@(|>@!ha7)&n*qKd#w+4g4@4)hxMZmzo#RwQGhN||+d1zl6H~)QU-1uM9;QwzEqcsqgP-xkJJp-Om zW20`|*-A474}~1wFBATa+1u7InHEJTyA)+xuSKE)mm!Z4Pr7{XPMhlTy+u<9wjLbu zPXA_Fz`Fc*(RlJdyPqexm&5V{Vl_kiGSc#Nb^0eKU@d|7TOr7F`fsESOe{iex7@?2 zz96$op_iP&uco-l*3%xb%ir1d;y~XIZvO+X(cn9L-qq+b`&tG&{ZYP!{wNgR=m5LK zlMT(jy`CPlABTN3zW;k3`@i?2jI>Ldq_F&d4H$RXURT+hw1t_;+%MO9b-m$a%{< z%Mf;BqtO|cf|d3QVuy7RA7v9^n6f!&pXdlUA^(k}04z(o`}47JZmVY$K+|TpFD(JK zThwu1wn@t4MC?-I$K*z%M04t|Iu0KfGpF}UePFAj-zz{kBg%xse+x7Y#BP^U{PHuO zK<6Tuv^w@4#|!Bwy89z(QFMH|?=#2VpAo=)Mug6dkR)I;{)>dNHQUks{FQnwi$AA0 zhS$K~>R5A^WcqJK#5{iSy-$*Hb|hZQWyF$C#ds&8ZPPR;)O#Wv;czs9y4D8Ro11QC ze1*vqw?9A=v_mbG#YLgnSoC7UHDs}62i#?^I{noMjNNY}Pef#_Q)E2RZ(h$=8c9&B zQzoFf0!@Q0?e@YOcXI4=#8W)#xL}vvLhO0h z&~9(Ct>GyOLw)EQe|{1M05&DOpM?AJlUm!50USA*N3e(2dLHjIQ~u8IFVkGU_uBcF zXM_BUjGxkR&!mHAsfK64HvMlca6>oJGNsaiaC6a zG=={ZC#Ee3f>oIdnTQc+iGmox*03LT>0ONg*>+1Vmu?OM;sI*^#O1GlnPwz!9o>{d zaP(yq*1n*<0<=oid?j9U$aQDXQt+8G;Ol>gN;O=t)t`kI_Wi(bNlk1VGVJhY+@B!a zf}!_2CD+vCD;`H>PTy%6KmO0x(}O!{=coRk9Cp(`i$^saY>hu*>^c#j;U*cv%=Cs2JiYyVn+KE1_zPH@ z_;|`ze>LgT|L@L}ACO}I=}f8ir_g^G6G0N%8fiV;Iu|aG?>7hC92e_lqxT*ox>kJf zk^22nF;>4nNTani3wXF(idDtkz>vb8c%_224FN0h7aXQ77?aq78M2|_q-T$@{W51j z$o9*}&VHxm_6u!fiS3sYwEZGR+%ImwoOfUk%ON(god3oq7TLW4`&iTJFki}qQ z7>L7roc0oE=c@G!(jwpQg%iKC4SF5Soj7#orqu`CP7Q-9v0L#gkhY%zx{FzXW`ONq zqi`Wsy_Co%POo9-!dPz@^FeUDi5o=@gkV8|rr#|DwGJR1^iM#y-K9)uL3CPkX` z;3h3tVh|@9^Pzt-0*C^>lQBdZj>~VtTX17+4d>AyCsrgwd_SbyUOetN{F4mPj&qB2 z4*Wp|X?V9Tx)?DMLWA>dm#GNi`p^jC*WA>2aNa(G`1fM8mbd?A1P(R#|0j`Ibs%2g zVZx2Xh502Uq>;; z7~p8ex7~a_Zq&K%gjY;(LxC<=V~-7V?>hyK!-<~8s)WK>+#q|;Ro0UpD9ObQ9LL@t zuW%+Fat=J?E<1AgNAHigS6{Ft*XBGWmiKrtdD6|i?2bw?4BhXfY3`gcK(t>(~B z1PtP7W6yA?PEhd(XDookX4-%G&$se>USvgnJ6bC3`Tw$o|EItHFG7wRz{OaRtN8Dq zZRIDo-^%~x`NUR#8=43^iATo`@h*&uk3!G#&Qdo?HkDF9gDF_I-7*>awLM*csMXg( zZyfi2qB}PB2*X%R;3G2GjJ`=218cM0dYE{F%Jgm4j1;5+TG-$=^@#e8fdmFGui%>%M_hA!+7}z&`B<{iwl@XhPa@NZ3%_?@r`931!JQlVR_#B# z|0M3Zyzn0G5I^wm&jdB=NfjGWs?|eN!Y{@@w)(j+L1~(>RONVDSCDC)4&Qs4Ex2$l zoo;SP)yR8XHE+N{cwSTY_-qZw(8zQ=x)XGRPi)bNNpm+>(1o^(d4>Pdu(lofUl`VP z;1Xn5Um{#Sj@|1ICpE6VO5E66#c%A{>S=N$k3b6wb%XCanlR}WUf>Sip1>VEtlCz9 zK#oEEbYKJy{K47pGqsaxyX7Hh36X^@$appaWf;#l|KTk=?9aU4vi{xwZc)*a0tWo1 z74Cuh&h2es3!2aA`(OwN9a>*S7|7>}Z4gu}8JvvY6%JiFIDH)H>4fn0k65rRZ} z(G;cBf$&+1mGO)rPkjBL_c@AYHUA#Y1?UHm@2`Z%%$x?H|5+`eN}GwuM8C}lTC@QqZ=;!E&2?Hja<>ME<`&)8=9SGN>p z_!sWS?oPdE1{KWkcX8n%p`%2JV%X~SQ}jdIKnsa!5n)rPjwJ|+(w=EWn{FFZ<{H|hSH`0fp8=vPXwCA|&=k~sXQ27T zLCw#=-llARnP`4N9PWqO>VJZ(QLQz{W#I;kwPp`d^Y+pyC!y`#PVpV?*I_&AXY9Ao zJ|do4L5rw|H;#w=@BAS4uRUV}>$gCEcU~Lk@(-plL1OS=cwf3$B^E+g6dO}OgkInK zvDwksr3?0S@r3J>HnI$dzsn{JmYbn1ZXXZAH7NVQR?Mh?fyD0MRM?F<(dj&?DYk7{ zP`pd#BBoxhuM^x{3Vo-I`=Y{JlG~Y!t^Q5SbfTm(ju&aa!LW}YeQ~DiwmW?v^XCwp z`e%WiBC=m>1StDmc<~M_4C=rj`wi{Du_O^+<7fEIaT(AcI?xa(FGwIhDAsLFBHNEDw=Hd-|~%*bo4->wRJa71PE;PM`X6!Uv6#v4FykuhiSl5+{d?mjMjQ9RyDu$=+7TN>6h#KE?`$N_E4R$UJ1-3oz@~`6h zp@#-+_3t6m<;Q~q)2yw3=B*D_&a*sM>W=P}wKs5~p>(04LhK$uVF6Qb?TzwodMr3- zOa$HU2%PuZ z?un}d8SP`%e*GXG8;$qhM$@j_7vu8Hv+}rrZsNTs1^)&k_ni(3`d!dQ`o?i_HTVfoutlb$BK-Qm<*%}~J*hgPH+2NRcSFS-ubJaC zPa0L$_M70&q493v?U6S7CKNBi3V%wH1C0S2@3C-)FD0q97he$sSN-}qqiXTMyQ~Xw z>y2mwZ=ClOHm^wXq&QD8Vf_AC&?<#Q)GLY2ZC%B0X;BkB*EnYX>eF}z@j~lRJT>rd z8Oz_usKr#y9|f}259e}S>GChOwl#%j^$cXS&O(E9yFS3$J%U*;v)c7;dKBUk)1?}- zUK24kBBMKgogJq|L|lt}{MarIcuL?bZX2+a9VW8z>wI0$=&l1}?WbjQ9|oFE-SvnF zVnf)@T@9Yeco;td$w*NJCA)ysqDZ?EZ+fv#P;py4iudV?AIf#tNe0kbh^<|+wPbWB zKHVf+nd~kbf+T(r$V*Z!yyPWULQK5*tEZ@i<9Y_T;c)g#^sBm19lb1^vNxqg6EEuy zX~uQIVdO(04RNHL7~as!Euv+-&b~>a)jV-UfLM^mfRvXeLHb3&DEfn*)WYdw1N780 zDPbf`T!1}}sMQ7pDxl<*fg%~*1BI>%uq7(|u1D2NFDf2*xt`cPPcIBBil76323fR3 zR5UmO7#!D=gcKFJdZ<33i)w6u_0S;J;5AGN5OGzP01eKsR-H|p5@oYtKa?CUrIE=I zfh3L_2qZ|-k=(Q(>_qR4pF1ymHB~ z^2InWx_lV@>NuHyUY$If^PmsO3-_y>-l)=cz9&JvHt4*!nmt>J-eqa@KWQ+V~fs->Qo5UjbRq-ODg#Z}7} zmy~Ex7N&=ZTFe$+#w;o$*kYwywagqIQa;QY4iv941kbGIIaM`u2o^J&#gBejl$p~> zyeU(>`bRU5qlTI?`OB)zbIQ;q%w!R=@&;z+;H3%$nz@S86=q}?Bx~l4Mgl(-H*cYz zN|}%|Vz_30u#NL`W@O11jhG)l&oNYC9$qD6$)Me9i**t{g&2;!JV&u+$vnpKGt`WR9Mq|BY? zmC*TSCGtRe%X)#gc3u{W-yrZ^gfdES0)7dO)39D4f$^@J%lsdH9Z zq2je&)RW9{ipLIt9LJHWk&g&u3P;M5|9~Buck%8mwN>mlQ zM2=ha0zco*@-+3fDK;0Kpw7IrJWIzN;>9AcaI(v;RueyJA;=^aSD^oP_l6;LinF}< z0LUX8)M3q{4rwQQDZ>xMIANaz z18%B##|W1JJ+>H~P1V0L8JT!(A`BtYY*sNmMv40;1%-I9C!tu z&U5o7rP6EqKv$eLI}Og5!)aN?lj(JQ98InPBSX9<3oqq!q@`lyOF;{@;8{mOtDejN<~t1R&+Pg7jlKg z#dLdKB!zC{)N5DiH3ud1a*T&$HB==~<+YWVA09USh~wL+=JG|A9=x!oy1H~Ox@(8Y z-jj=9ud4AZsR_#2DN97zaahSByy(U#v&$6E%S79kmRFa1N<=+WwdDy}D8|01dM=E2 z4yt&@BqWXJxFw}a(emd_ySO+*?4G6c;_8Lv%gSLQdnM^=JDsSwymaZ}%EfbGVFye! zYmiU1b6b(3$deo`@0x}}AQrn(xAQ?0Oru$jaHe?Gwr($-gDGD%M3w%lEPbbLuc%y# zF&9FmSw4{Ew@U8qvOkpB59lyi>S|#I=-{fQD|m;@k{xX?T?ijnQoRV@n&mQfmTOUy z=!K;FL>1~SFoPZ+&CnDw#4^m<2ar=;Y^6&yESr zR;35C-|*~sWS1_aScRA7g`xLECafmGURuUqFdf2sID3T`P7cXctVgp`JU2zWNqh++ zC(SaB33GGVtIHQwl+1y=e3)3q%bIfW=Ji_i5Lce3s-&hGI&m@{G{hG1Orb@DbBh;f zmPs;e29)o`*b>TDM}cznN6Ud_4`8bnSJHb{ET0;qVo51ppIuf}vlwqE*DNQvz0teQ zIeuX!#*Ak9Ok%s($zLuk_h9m&d>kEQ`CM9Vl-*P1!C9gT-y-onAfJZO-F-f4;SPch z9<_AQp90ciT@AYtS$In~B;lD|^+P=KC_Z}_ewyb?wI!P@UG>lLlRV*GdW5={9-;1~ zN2q)0p@+Da9-;1~hc4ZVo%%?#^wd{%BlC;5S1y9%P;*jWUCxjat!AVvBtFSrxtP3) zF~LApF_LvM@{q9*K1v+xYU!twt2f1tlcnaCE?QKoSz>iM2E!Daf|uQ6#xH?y&@5N$ zJZy}GC2{1O^2G>24YXT03OT0^lj7tGtdcT8q6_SFifai}UshRNS+!WRBug2KxFZUd z{u-GxL$C^wf2@>$7B>(%nT^-ibIr}O^MH}ZL+D;8B1ON6=Pa?`AmSAx+;ZqNzjBv_ z2#R9CpkfpCJ5Y?p!XK4($ebiIn~}M+5|I_kyAeC*=Zhj-Ihy58nRzp_i!h$DK&DxKBWr3B#V~u# zMpw_PT%uWis~_c6ZDDo_mG705dys^#RkE4cDO^^`SCGVHsgnC;g>t2{P4f6N>-IXe z^FF_i2AU8IZn@D zv1b_ES9yhI*{;v$h;vj#n9UBo@Die_GuzAXW-eGX%<>U^D@SfLcf*dGX4$F#z|&1; zJAYf4eg$#J1%0;0?zmY{_FpJYnY_TSw)^J*Tk(-uFobW#Yrhl2X zSZS%w*YM;%Io5`;AU#E-gf*5OOE9{5XUAAXZ+E7S zEnQkp2N?2*L<<`x8j810QozGKUd<9MEJ2{H5toBuSfbQMXUwc3lnGEKiB(8+XB^tj zgKc7@g^d*GUJ&eS2qtBMKzxp0>{(j1kX{`bCCx6PFI-mGH4E^ARdf*Ktm5G%KTJJr z?5!Ma1+SZ6qKX$a2BSELm#|pDD>cBY95Z<^zqFSOeusnjk&%b;69zB%Wh;I(`SX}d z2$%CWgIO#_hY(H-j}kr;EXCfY7$%*?%urE@m_^PEVXKw?W!}=#MS;vUvKM4QKFg|t zYgL~FF~!;myq9WW>qI7YQ!wXazmYZos!OUCFI=I8)rq_qnI}b6Y`t&c2or>Lp}DhH z;2`|4h7&w50sTPd>L@#-fK85l-lJmp3#}E3%4m}*h)fHc$~Y_P((B+G1S@0u2AgQ< zH3XaMC7THHCt))Oio%^~?}hgm%~;&&hm{Gtivr`{8;pZb*DR9WM=)NjOFJu5ZKa{|IVvB&gx;KWV|L7X~V3#VP)Q!1T<*VEGa ztQVcM4E~f6tJ1^Rn|?g@m&nuO0w#&B=~fmA`XPLlU}PH=Ss z?#-uta)Jsw6>#_YLCZn0WVwVjAj4wyU6vBdL{aKe_8c#@H&9Au8>M>l z)e5bc18wU?4jq*p1-7?N`@ghA4$7ysNiX^U(K${;=b+Jg`4@;TM^gcq^wQVQCF5D5;u`l&>Q{(i~=Y z!7JG^Qwt}SSmsvvStQ=>$7S{6{)Do?eN96tAi)w?I)A1Fp-)x|%X}x$-DxJP8)*Cn(Ibl&c zl&sfh?MvMWN?~#2Yeg9%0;~O;6*-e2R-6GV*r$l~vy z!A>j?(K7;9CXRYJD}NGRah`=&uRA8C6Cyn? zuOt<3^LDs1CS{it6zB4u4`6YVq$JIS?NsW1g+_l*OwSWtj=fWbPRq&4$#Bv} zs)5hT$;B3GdKzvu8%PT3`K_X`5FCHee0UIwm&FYqcSiOkyqnf2FYZ}5Qn9JqDS*w$ z7CW|L!?trEL+<1Xd_(~6PS2iH;L^GTVKP!n@UnRRYWuDMG)4JbxX1u5Hz&tUZM6lV z@UHm`UN$NinKLO5I;VHf+e6VM`Du9>xdmFc0Gi)VqtZ!6%;z$C62T-h@thAIiedmakN088k8u1kH~R4(n>P2o#{o|njm1Y^ZaJDJi2xQQ9=bWv(R z5JD8YQeyHPq)9TpbfYO(i9Bw6X|SD=95fa?{nNDgpq#7>^mX^E-A># zDM`(kqz#hD?A*eF65c3na0n`AqBcYzz%0vAkmgEvmdJa8+~}`1a(PuwM}b2dDsiY5 zgVvFaAwEo?R97SzNeGvf3oSUcM1?DHKy9v)0?vQ9flYO!O{Ui57v$unYaM;X}soD6NWNaa8QIha1uvvTr^wPb-5r3`*2g{Wk22$EaoOChNI^z_Nv%ONOXc&{iNjKrN$PyoB*-TJD;%bQvyS&qEP z>3P~~60HVzYT+bppTteeaH1y-RNMOkvJ90)>)%3lYDW{0$#+~T~9Nv;Cz4T(|C z@XtsW$T&Ah6_?yJ#I`XpI@URO1cZuir3|E)0eH4r- z8Bvm*mgCOJ%h!&D;1%}c5Nv+BTR5>#BpP!Kb#XELdI8NXpDH|}wc`@b&&tVxDJTbU zLZM;4p9Ns<4fx!xeQsbgv=#%-*IEN`5cL;9ShU`em9Mo)lpGbj@4gJd@!mVBP}CPC znYrncv{NCdT->lNz<@d(f~9-6XCy`qhzw`G_Lanui3@u<8-(FCehtL5yzCNgt0hGf zbMmsZZxoKZK8l36)BaYXQ*$O2=9l1U6J!4VPUgT)5E`fFAe#@;?AdC95#aC8YToSQ^c4+>pjMZxf!&?4nupLH!13Sd8LUL0Ofi52h4ttPrBQ zQqzYd0)cHis}@dyC8c<%dO<8H9f7o|4EtM4vEw_3ZaHZBPzo_SMeCz|pov(9!g}&u zhP$C0z|B*)HUM404tt+DqTj~5VUiI%>;eyRFv;@MxXN0l@N4E&1_B2 zqh&Ek3DWX8nqELvm|~+l%dPn865Ifsi{?xdw|Ww=0YD3XxlvEIfpq>pYI+O<_c?;( zuGaMHs3KEra%bGr2+f%xa*C)7zvV}fKT4E*%S+T!iD3LJ!ejSRj~GTxl+X7(qepC` zWF_q~ve;%lg0>m;`LrlyvHSH1tk*Ps0j;80>_MGB_M$H)WwF?!dgt_<)V#uMO|PQ1 zvDgpw&hWJQ5|KKl)AK+ja{p1k;d@Tgf+vbjLlpYwy~nT;psowIT!pm){tYa@U&`+r zwcp0jtM4H#hvd=SM!jYNF|pE{&^jgPt8T=%Xy9tOjVju=M((0^#-6&SuN7SuB^tYq z8jH;&%|!2Nq}wmD^Xt;VtEN{8oF~7O`mPn_51Pg`sLghXPc>mE~kgtk>kcf_HsUGXPdcjYB-?gGBcS|j2Z|ArvKek zww%-V2dL>49PYb7)8`5ZRw1E$sBWGheVs@v&9s57#Rl5}Nczx8z~Y*&0DPZ;m~p&k z`*2l`0d9aWjVrimR1xu&f&I6Vxuu?Y*r?MVF>}M3MfteiMmy=c75}FOfhpI;BU~5s z-sL!Yrv(bpYJ4pIui}+HY9@2qg>?Mvg$ovI`YzrQw)_=s0I6Ig=>fc}iosZa%uHJZ zh1k^}NZoagYLu7$l6g=TS~F-YeGH?ISo-LRkHNVh8d3tN7Db0F06@Pd8L}L}Q)U3` z0kjd|2QVG3X2|UTngHOsS{E;Wm7`f~RO*+6=?5VfU6a6zE_x@ZYp`njC1GR-17Pt( zd0TsiQCs!gzGzo;7}`SOurREXxD*JxF(S)#@tN3!LA){;nd^pLKm z|Dg(Eu+3Z7a2&r~tv^)9aZNSDMf#8ApLc*6{1QpUH)M%sBt2rP!9f$j<{(5Y_eSDP zQB;?vZ->1>V{~moTj=@(9Q$6ax@WtERCrler1^xi-9jpygS0TsM=aD`!z0m!WQjX1 zq?UP<=PDQ*6S8p-vO;VN&Y8|fXC_HsC zRLRuBhf5r8aE%h3)MBPynofucJb9#n1-XnSAmW94ZZlJHwz+9tJSk5o`Ac&gN7gNm z#~pgyCDrtk5_M+rfU-nQKgGw{Yv41WY`99gP}cx->uH|(0Hx4!k)ju~4w$b}Z&7NQ zrk^p>9Js6pKKN}ms+LcWF=AJJB+{zW#OwlRr_AFaxbmAoAZC__LS6Yop{`scr7M3# zx^g*R;hEkNSk`o~YcbeO7wm*VP3IF+j8KkvNTELuvS#WOW%cJFRtc}MU*9rKUn)Gk z7R%>~@~YWOYv7yS&~>tKx@Mx==$elk8NW(E_wf<_2Cp+6@zzz`gTKkyoTM}n>mnVC z0X&)%^J~d$E9D*4UxpbDssw(}bo$7~$6(mHHe>~$btp8DlrDWvj@-~1>0E3Sa`a`7n??tKn==UJgt5Sj}I5Pbs{aUmnnOrsl={U-o}w-TD_9)s;vx;U?4G*WPp z57qzLffv03hV%M03UOXv0T@h9k@LFiGErR2<}?&2)EFVAa&{UG5uwHiK9$D^GZ+zU z1|xXq2s0QRWCr4)ByI+ilo?duW;P-kem7URmqfEZOWMFVj0L)^eJ~P+tD&68hw`Vu z33oDr&vX+IDD@||q$imv;u=kn)jg6?9U7;*%o=zM8Uy@5vMiO^Oquoipyz=bw2M9- zz{ge-yG|cbwL!{Q~T~6+n$7X zbpPL|OD>rQ@hdIFK7LN+96b1?>8mWmkz|{9 zt>dUtpjJ!N)^(V|$c2Z~a}Nsly{x4_$7enRst3(mY7K+(bcQ zTAb>!D@-&K-%DxkR%1j{ksjc|lO&kF1jac46eNt^k5ddl=rBNpmHj#5O+wIQE|Lty z1Mmot9?NsDM6&-tDjsK|+fSnZ2bgGHuR`8vTAa+H=nEJ9K2R?-Ek`2;-2?ofP4wZ# z$KWN%8nP1*y<(dCx@+ME>Do$#wzVG&gO5=G?z2&d>v#$Ai3vxF2EbXQ_{B%p87Tpi zO!euec9X!^_9UG7O=uct{waXLvlR2k1_|E5{fCFCU)z=LkbTGZ7gZIrJkiy01a}Ca(t|iFSA2r=Z?Ap!e z2dNy*=i`P;+enawqB@~a$N78~(7gWbD8TFg2EgE5geKd#8!m-k11X|dBt7&oVz$TB zzV-wRGhX|AcolA$YvA|jnuVN;)J~5)@Y?HP=e+h_qfq-XLR0NOA|G-9-r>BhbyA2ZtY-8d+7Ft+xj^%_eu2Wgts|~MTbl??ZQXB6$Q!F?cRxGJcZqf_O~~~D1?#R48KT`W_Y(OMB(+t%#aGuAYA8=UDG2KU2}%e)HQpM z;@3C|Y9Ely-o$i3mtMeZ(C{D%YzI+L8whBdC20&+eHRI6bAjgdzMLlOEpnpXIzm&u z+tWo2yy0t5HC?-i*F3hFs%$s<&rm@c{r65(;}7D{6%%>UhR*_;3lKR;3g84Vcq^ev zfID2GxW?VtAEX2aiP=JSj3j91&SDUCbB1{tlHun71}`BrG2EZY84e^pz9ePaicGzV zT}*%POOk^`(s4ncMakMmPnNZP1YmFip{cf;+*15La(^jkPi>1BPkIC_T7>dj7~jL> zrnrR#_SLpQoHtN4m4}yXx%ah(-d9r$Z!2Q_5u7(yYU zUJzyZ#(^688fItxDb`-lSwIH~+KeO@GF0Qpgb>+evKpiPJd z?OFYPL#$aqaPEKM-1*LmV%$W;r}X)l#sfPmD)Sg+cHCJ>=oO-%IwZM*E}tPK`BF-K z5IJb?)x?}DNb4;nc@?BmK|Q3{!{j%*o)eF4pTV1ubiHV#ESx%0B-K=+e9B>Bvxm(sD;rk2XwImltMPN8xywfkUsS!U zY#2YzV_4j75t@w9M7<=mn3NTzDfoH^wcfWdP)f|`gAUF>%z{mA&8HP(cCCr_(k8^h09lS->MPOg8i+L~25a=9tC z2m8ai4K?hj=JB$})>(J6x3!^c`?}0?C&o_sF89`@%RaTnvA7~O*P6+C;mcDqHfsy3 zJj?p-whm+ci`dEyGug__Tzs?6XW8@XtVdY4B35QS&T36*I=i23h$~2$ojt$0W`?z& zwQj-YN7z3+$5~hF4pyDXx@Hcu4zo_*@*L~5d$YAan^DB##<3Yg*?=A8!>SARK5?t{ z_w(5DOz-AvtWzFg%g3?KnXEFCT?$E;o5twul1$UUUY`wdTOTR5j<L$Awr8Dn z97{UO^6#-8V&8W%4Zw|`l})Ch-B+}{zJRUtth|-kt;g@Z_iom?f(^BHTRwY5^|dU^ zG+ZyWItJzpzJ1QJqhlvmZn0*Y2J~*&I(G7~t=4Qd!<3-2E77j`_%A;D92<#RY5>!J zx%GJ6&be%)=_>s^tFj(B&o-=uCL)HinxQOWH>=seB0S#p#bd{_>Lbjy;dj?T1Kn74 z5$jsSx>!BWTDzCmT>Yyp3-YtqE=Zog^P1^(*U!lCZoQjbx52vEdPNN@&1COr``L;k z#g)bE3RGQv&u1sbzIn~~$wRL7vf2$_vB(Nm4W3<_#*eM99JBlh?|YN4$r|hW9qWt^ z{;1YkVNHDh#MrFOte}Vu^{~8(xoCVQo4tYc^K4@?j#R=FcCf#q|F^Eo%w6CvNV)D> z>--zXvK8ZQTe{P9b$736#3f^|$p=XjY~}2DwpYuX$70TIWs|Mrh5y`^OqvnSW> z-neY)@Pd@&l*DUWwg?7C!C-R`gUC#F|GJ^$*@s#tyLnv&`&RR?hIJLGmCJ^p+lUNqEppDU78_ky8?2VOYi`iaF5j(VU_h$Bp zrD;6-lL;b5m)?0o%ewxEdhg21y)@j8p%4>Rh< z&eU3Wn_@4Se!I2DbJcCuSMOzSu0>aO9e4M&S=Ziok*>I12M6CePYwG{^O%ylvrA2r zbk^Bgl+CI=wF|~)CD$w;_Gjz17uVdBcyBiAwBfn2Q`n!^HnC@P58J=CXfAtBx5lud zOg6-N&wG#F`{sQ1;~HxP21#yW{WU2C*@IFhxWC(y!B%8$TYA(qynA)=Fm&Ri=`K93 z$ad%z?4z~gCbM_-4eX7z)+Y9p?zxTlR*q*cz#L#8#muq)_FJz>nL0H)8N7BGyhe4e z-pqO33SNHjI?Il&Ey|e8Uez}wj$zx@ddNG~nXJdJxt3)dVf!?zhjpTsc|5B{!`@&K z6;SW|(JUg9Ei0P5d?x!~4b=FcsR$0mnz^v$!*AL7H7M6$vUYQ^pVr(1$ix1zrXrC& zzHX>8*ZmupxyW2$bk^Y)(X!Xn#KvW^Kd;Fg&mJ>nvWfSgWkm|l*gW>injJ_*H?f3!P*FxM!O-ESQv#htZ2wHq>-4XVRc9!+A z7FjVOGM6u!Jw9s?EMymJTMc)07aPYuUtN^TZet#Ha_ zdra4Kx8{va7+cJijboSWo@9N#*}B%6%RX4Wf&BrMzrPyZDGyzF?S?ntmX5b`ODz}a zq-_l3U#wPc>Hc+Rp|}Ul``P3TaF4TCt%up+11hXTt&eka^0(}6 zMqcxa)iAhoY{TZc)v0V{(cBe}G~BorJ+}OsYj2&;mRmQlC7G;Vw{EZ&SHnj@T{GRU zjh}42Z^>VWonwDmX+6u{uv8RJvrcBeT4##Y$=NXfx}xgq3uah*pgZ5om~tPxah0{( zZS~hAp$614G}XO)GVi8hINl~VyDeL<#?->TF&Euwoon57fPKC4 zc*C+Gf$|L@<&)2%;AECmqzcwsnkK#dl66={)?8EECHJzwt+ZC$R_~(n56rV(5?c7U zthHFyT3htXl6I&m^B(uNlQ9Xn-=EB`#K5w^WxLow>xRwj?Ug%1+Wh|H7fAn`d7G(_ z$Nm2JK+*5arV%<@f@xvGBzE^IPp}Z%gv6pK3kbo|kMoKv*liZmKs|vKH?c3Z4Q%;- z*69dhBkC~(Mx8ut`EF+0ZT&f?bbR&!>j3uKl^BKlF$=!1GV>PefXU1aH!|)H4E&>P z(mf>C$O@K@{-oCV!8WP&3y*%6uIh;-RmC%f5dw}jin!t7lv_O51oB(vL0lOlKVidDVpF{0&? zuOl+b&P;ica!sYFdesv_4_>_9cC|PolTkI=U`Ub~Nt?3RzLE79&&SC2IU|?kLp+E* zhXjSV5E`PR0cI=8V0(vO>KT@219CVcqaBek_AnGdL6cJ{!p=|@94vW}yX;0gx(Ggz zX7T->>u(7!sQ9TH@gD}{5&dCkJYC5nI>s4^Q;I@6hZriosQby&gn7UY>U0=FxSd&N z*dtB$uFT%WY!9>8Ewnv{wI2V(?L9IuTwfdIa?|ZBEYEH++szhx7n92#MyghF)4n-f zMHkmY$Nq%$!l0ayE@$LcY6F#5{EWMFLM*MLUOU<%>;o(>&QIO7iD<7^Vdwu!zPk4E zse2))$gQkhd({qWGuOf|@H4ExW7{($n`Fy`JhB_GWL|Dnu<`{= zTiz_FF7k;D1b*pSo&pOERKA3auRapO#yh`stw2J?*DMLmmfs|ig69NqQ3|dI;Gz}G z*XO{aY>a{{19b5Uo*%#^D0o2tm#pB062~>664e3ZeoZCRqoAM^j!qKsuURtjjQobq z6!?mP%2(hA1}aa1Ee0xIftj)!buCwclMPh90;d_MJO$DdOLU=Ng9MdH0JUGDRC|CD z)I3rW=JmpEj)wW9zo!cEKS;GtAdpk8((!2T4hLItfc=< z0M$|YVuOPO?vvjy$Zs@IsWiZQy5fDW!Fzf~-fEl}RYb}bUn;-R&qkgEM#?NY?vyT& zY?k2d25QQ0CCH5Grzj-_gq)&;^cz%pO32p(C{a(~^J>XEAVIzY>9sa=K_~^TGEn(1 zN$`Y$D(E4rp?jpFV1Bs-m2ep83fvx`QlOenQKJ%FS%I!~@FJ?CvJFO4m0AL&rV3F4 zpQ_Y2L+-*g65Jj@Jubmd1E|j>m}OK~sH#&<(lzDujQUh{1xBfvs#HM8nFhH8RH=Xw z%uveBH5koM)dm>x-PT}c2PO48@|)bKf58x6MTpGY7D|oiVaYwEa3j@gg zno6ig&xw*pj-u(}Q#EawED41u@OFzJfkN(+pknn;bmTJ_O;KQL0A)4{o}=V9Jncpa z`U9v>B=}VTr6hRV5NgUE3BD0PeIUUz0aS2f304hO!s%L(0`D;7oT|Vl4OFfIUocQp z75J)w%2jecXh<+sfdSETmFUd|RjvY66Lf8=0{7-(Rj0#!pnrNDsb9URTQQocKk>Ixp|(BKYX zmg2Y4q*&|#no73eZhQxtfofhttse@kK~3Oj15P|5j4fJ&G};4}UI zWA9DitE#T>(R1$24VN$^VbGwckst;|NDvVm2}vMfNJ1t+12-WF5QGFXAX+PEKuuFB zYOPx9P_?bCVZLQOSC;186F2;8XD9D%!W9@b zwFFWEf2`CTfv+nS5tzaEkkBR2D^0{I^?s+aeV?eEm12RH$~WBH$I^YYC^a(~im|R! z<2SNqG#lsX_Fd|T?$6btDuL;m-9pK3j#5$gf^zETSXRw-2`aIR7dr5djGD1m=es!HHirOE_K%OHfi7Ky=EaY76P0_XFkA^q*6zz>v~^993@ zR#RDDhF*c^NP(BB)STZiyv?KTWca>P<)1M0YRY$plrG|R%lQJmwyPGnTy@VE*rwDR zfvc1%6DangW(10HxMUUR+39<9l)^PNSSznwV1`n21ddRuO5o8-l?lvKs!E_71GxAU zxZ0DF&iHqw<_Po}wOpXIB+4vsH?L+!Gd$3vwEHrU>67K$8O`l5<4TW96I|_a8G`3| zT&Cdp9+xfn7>~;le5}V!5?sTaxgC~3y+>|!Bp{PM6J9Av(Kd2Q43GlPQ>sGXRZ5i$ zOdlxYR)xU5lqwgPmZnkycUP)hpjet%QxH%N`F z6eFjnijkEi3}>ru-(`_ZLj6#6mx*psh|W8fvuV}r%6`P~Y>y)UcG`|s3(B%N=kaQR zuXJL;DEQ~ohD(N57!Fq5Rr46mQr*6h^foTS3tE%~qdApl_X2@pEKZyPr72uzf!OV} zrTX<*E4}Hvebw%oHyQ4xcGpODKlP|f88&NCYR+VMjz?8+jd>RME<2^58LHc7s(0aoc4ix-seJuLQti~rt`X=}NJL<^S4RS+jiZ`7s@en&R||Z%0b+qD zL_<#GY-s8TZJ_2etnsKHGaRD2eV0!EWuN5M^7>7c9BE#w`MRm-7W;8{35;rj1P7rU zR&rD$p+K)IRSNWssurW9OQBi>dUpC+SnQNG#NAPX{w>)>_1uen)lwrCc-i?nv%E)M z#QmPmPJ$aeE=}-akIN8zoX2GfUhZ+(f>(H4j^JjGn_YLQtnf)yTrmn$Drob{<$Et9skUjVYJpJ} z4q`>ad5_yofk!A+EzlWkv!yr13_S~cBZpWJRWwmlr@E__G4vGqh6(Y5DBwKlcn~ae z?a|xT`g)rrJVos;7dUl@6s1DoQl-iTiuMH8FRNMSv6^Z@BSSBhuaEwcQ%%=Ym94&1 zmDV)xS5jTC<){{Tt5P+03sl`T#?=UV<|tJyuv)1av7l3_YJpx+ddJ%ANR z9-#b+eEme+Rj%aJ)VzXa2?8|lqh5V5l7w5;?s9=2Dpip*)Qb1zJ=$^vL(!g~dHuTQ zi0-{qQH>~Cu$#>TCx&<{-)2ih6sM|qk;ho%MK!u|w$H-K-ck)#bE+hdNgkE&Q&iQP zq6|${?N?O2gkw+jq<+M3gGb%Q(5qR0b8}r?&U#zO7WbK(Qf#!;V<+m|8GL;0VpG`U-}xdK4`&PMfE@+7jOHR@V7XO;sUw zd#Nfsd5h?i1GLT1RAmBbHGJAoO|pnYU(8`*YCT)@BdvfkfoCgKZpFP{nk7ctaMfKV z1)ru=brHkgC{-p!8OxqiI8J9W6lW?>A2T&T?JS$b@NJJuVfzZz&a%Y}rBu)*P)dc- zQs6JVgtj=|uM|*9g;Y|o)moZrfhQ|femcXbMwc@0RH^DP7f_Z8fqH?JTEKbITcndh z%CpcSvGZ-!9g*z3RK7bIX*TIK2}a9@xf_~={g4;#nxsF!qIp$`gdnF)O;sZn zhO`sZNY7lXrLU2O^UC2H^{2CRt)?oMPJ4m2ZLghojAzk0hPyWMB+f=G!+A(5U>8P8 z6TPX~EtCrIj)H}96jW)QER>^wzT86_t{Me;7Az3xS>U@M{@NBy^;S3q9T6#4qsuj-kx55yv4(T6Xt;##J%IAr0sd~6`{F`ItU<4)5YnW<*(i*rW66hIK zEihTDWuA;!a$rNfw3Sy=36Al3wl=-rT{K@*Z=ngXv_-X*KfC{?VZ^UEu%}f>R}O-c zJT6Uevd3iz4trdt;JzN0EjY#Fas&_bxJiNsF=wtEB(R%DZgnIeYZfKEa*(2xa!Q;M z1y&8WrN!C)sJ$$l#d}a!?ro`o`>2$_VM>(?lx231@ajyP;5OcadWzxe9wqQyrOE|L zd63YF-?$V9YH8*OY*eaBbbqG0eM59MOApYZR7g?0?0uIU7jUX8G_SI27=Gqa`*6LE z(fTdR=X!0>`Yn_Cy@l%;C!~iMKITzk)RAguStCQQ%FCq6Z`J~rN$qd-sQ9{+(j@2y zSE`+r*D}0Ljj9x*q*)U*)F)gWr>mkGDT3IKaqS8&$~9WL8nN5cT@!D24eLHbt2`o5 ziiGz!0=D3F;M#cBWh=* zz)n3Jss$!ELcC)%(XiNCO}(TYyGF8mUoEKloZ%p?gBpKL)ksZw7SzZg<<(S;zou&9 zjY=?@P3D%AV*o?f`Al7+ja)XG?VPTrmq~w}p{DyDS;#RO)iCv}Gpb=kk(4sQ2qZ21 zh*stT(e2s2K%f|lYkq-4)W`)=zg}f7xR7IS^Q3Oev~}mz?*f1QE{LyRv2&W%T=nS; zFY~D1GQ7s4o@e-w*01)&G&QPPOqUwN4V6@ySDI=m%`IL+|8Z6AFOBc!OiCl890uYS z+0Nl==bZf*F7v4K7#^U<)trMF9`8{nG2G@+Qa~B_kfRiEqn2il6j07MkorBx&g5nT zRmt!ikGhDVcWRw;8&fifBB9hwU|+{kyHJ9+BP);FU_>Ig)S;kIw6es-$pN~^{7!mdRl_x z+dD`WNFVYJ59AMNg=rh`{qy(E@>= zDi!hTj`XJcQ`NmNi4}aTiWd46EsR$r^KD0P&C($vc%;Xr2_EHf8G^GtE>rMmkINQ( zfXC$sKG5SP2_DCsIYcBd(IdAy5|9;C>ApSKThW$qN*p2rZ}*g47L<~top7L4h<90?3?;J!ueaXhRMSREsyPRZvapu-I61y>fTi|S-E#zH zdDI!c?0jd{&79rcT8=V-FDq3k@IOkG3GAD6NTt7>}n#Xi%kW$o0yTmSU=@tkarBs=~5405)NM}4nvs>WLZh@^}@Aq+T1z8~&ZnCMIjo0_* zOZ~3U`kgOzBH1FLK<`kS?`34s`J7!u8@*hzJ3>oWE}he}pj<3isuq+>b_Z&KeeV!{ z$Jsr^dmP4+Doa!O4$%92buv$k^embu7I}3t&tE6=Bs;H8d=HKnb6t2%P$o++|3#~* zOb&pj_1Gwr13~%+?rD$XO1w@hv+Q1m4|~*nu0+pt-#zVA&N;!r5;bI;$2z~GAw!IM zLaU|bCaw;zz%>G;l(;_@c(?YR8vpoEBSYJN^vJJ~7Cl*eOO5}a@?D6Co!`XJb|Y8u zquPAc&oF%6qxy5f{*M{}r5d98(DU4KQGG~`qwly6$x(;fG=bgPts(;DK!lV)uk%F& zdhJ{zP|jQEd;;YNhAx3}nSp1S0vBte)(Gs;UK^p6(rHW46LQ3Vj*iHQ?sZS<9`4i9 zp^>A&sJ<=mH0|z@|E;@!%2gS4CLhj6>OMMvRhKf9>iECt^&2CbvO1f+x9eb<%7h+X%O*TL)uUep2#Z>~OUQtGYCu+y8 z61dBYI^WHzRH+>LIGE)WY6% z56Aa%AAd=k>zlg^_}ca94URPerN^P&rPFygFf{_D$3aTqAGGt;Nay>;t_AMbV=yAM z9yN#$<*H3EV()S+_C2SN`uxg`ER`nJgZn!9kVI6w%U6%S_T8V@nV?#v8F7mGYNtEz zzAhqAni1oW!2hj2zv_7TjoziEa=(naOC8VDA=+iD8yU(ViHog$co_s(WwkYRf1 zm-Hmwqc*)riz+zkITcwT@I$4_1)i*Jut4hLuVbwuICKfzp;UQboQ)0f9u~aHP(Bxe zgz{O5_j6U3z|WN`A3om3?#Fv16eu4=fqH@Z2^D9-XPm&{rlV?L7*cA1zyV5?3%pIK z1=2ugaRb2!YnAsaRVtN+v%kPpt-o^VWG5+Ab3Ma%Jn9~<%15;RYMy48nIn}|lgCiL z8-X0}XX+DAO1{;hUmS621m5q}vQ+#*TFW(uFkJ6Zzh)>^iyWo?(+WMN3y*!!_5Um07)-;Tn&+h~X_B6|Y+=^F^)98mY{vJ|z}J^{E71 zLk=yk=4#40XYV-D77pv-P$NgkE*f2oTJ6<=7!_453pu-}YLT*g7WmGDhjG81qy4w~ z7>0EoB}NWXyQ}@3pjtXXwI12N?EbqdAHz9&J+mf3{mS98>&o=oStEAJNR;3>OHk!g z*r=$QN>D9Qc2Bpj4*t!(Jw*qW>cI^6@TiFly%DMUVWwX2q-5N`(rc^#t(QN@eJiS$ zzsGiZ79<)I#R3@!QJMd9Tg986pcOv%SKfmEs-~odJUe|2BiWsx$5~Z1XLlm+ag}`< z!zZFBuKm-s6?}KqqC0Ao7Tq#5V}O(n?-}VEGeuF9k<0x?%E!2(j1=Rf!BCX=`u>m$ z{<&5_^TM>T-tjJ*tD@-#tpMTPA2VRm%zI46pyn$n=CaO3MjH4sTrK$J;4& z5H(6iIOkK;0^hk)Qbi4;2?~4!D~KxaFPPeO>7-Pbf8Ej@&b2?oYlRAi$9U8k45Q8f za-c5uERfUDc&~orD^rH#s7s1m)*aPZa{VC93QC$W>iR*(#;A*h zc%zPF3!>^ELGxYXuLCK&XH@lnQ3qrA3P9=t&nM-4e6pVM%KpLUHMz1$@Dx*wT*a2* z8N=h8>SH}CRvyT=A@Ut9NX1uxShPm3O(LRut?G`5kzVCSUSfN9s@;(k&RI@{cF=Hxo2Ey)3Xd^uNh>oVW1|bXik#Q+tFy@ENfm{A@M# zPo2UFhGW`8bjOege8NPsYe6kPHjqV(bD5X*jt}IpEL8n%>pQQ%&EXfkmqlpG(kwqB z)$T|0K69WA%lb94s*o&%V`IJFc=<2W@1?Y8Kh959)%mjYhsD|VZR?Y@c24DdWr?D} zTwn3|%L*qCa(&BUIkNUjyu2*a@-fTHaxJnf%GZ_88DKRW#rx^Je~|a_`p0p(Ch}hT ziLA161oLU!f4=GT^xbZUO#=cm$nk#&*lBgytlF5@06hyr|o9%j5kH-oMRznNhpn{tdlpZJ`6=(?Cq``C+sa}PKbQAjN{ha3dU4u+h4sI~`;$h*=VZg;IJt&jv5S+YxLnBl_P5yGXg$ka z$@_S%;^`&vU#9QN(u;qL*t3XTXv8}t-o9^J-wmAq?YtKc(OK;05ug8NuBSVBFTMrh z`0{n-_1!wRk2oZq#o>7UKV&<_DN6h{*iT_zFyio@~xXOFRrJU^3XNb(pY{*8+~tC8nI z@^n#NsQi-k$>W~$IQ$FV|DTq>yy|NhZ!KHFdwC8TZ||ube;)7UW#yF|{<`ww86fWy zzG{2K=l@OX%gMDlOym8R^^a1Plk&vdC$Br?k+i(ykoPEGS6*I)1#_&Xc>Q7K=kY#1 zzv0a1@Lpc-9sLc-XN|KtNzx{>U)}{xXa0QN$LDt}^DVrW_i6Gr>+8zL zkI!;k$om>OZlqphJeC(M!Go*?G9Jg<^KI*w7gG6bM{oB2hU1IA#NL{?czK!j6XxT~ z_f_TPeaz;AttL4S%JX@7`61)7oCjqbyqnX>c{1LfZ(F~-vwE4|Y>55x!YbaLuPPsJ zzto4klKHyz@qd~=c_sD^x9gYL_sN&E|C=1&o4)w=`Kt2Gi<;WooVND5_C}|n<%H(8 zx)m#zH#+rA&5K){#ds&xwluP`uC2{kw7jMMIA=*+`_jhN2+23KwKvtbIrS|oR<=c& znj>xXb-vSPE%W?p^@yQyjxlwC}?e2d7`y~ia$HQ${I*QEzOic zQ*%S(YN{9LFy(hv4RIX0Nl9|fP?U@?J?QJ_%)sv;{9CtCi;h8<9_#dTPQhC^x`6NJ zJgexipm0|xstgIYNYPEm#HQV%=t)H{E20mjSh@WaO;D7tC^=2!-d40GUAW5>C8H2l z-%v%g?zZKwQuHrH1*jJrdlH^TTXct_M-=UWXWKTmUeW1_BDhnwu`3k)K+(cc8ms7J zMcs;iuBZfeW>#N~qScCSR`j8wK@hho4pX#H(K2JV{>KueEQl%uFt(Q-xS zE4mTL_8ju>w`dDcrqTC^$~~(bxyRdBn#5pJ3|6!!kc}M)WUU&f9NmFi?r7y`BA4Y# zm1|MduCZ&BI}^y}yAcSLj*|ag(I%CcUrqSqAlIZ!mGD%u^$mM9a*T1r!< zEtjKQ1CX_9xuSNJ`=QFw3I{gr`HINH-*UGox=+zR6uqP9KZ_kQPgCw!K(=-t zQ1rB-5bn!u9s?8&1+o_G4P?`fR&K0vla)J4xe_3&uNsIgRjy6BA1S&}(d9rk->ZSF zmOpCj-HIMkxos-9U1Q%;^pVPi#*4lIK-Q|gl^dlfPf@X=Y9MP>L=inDvRddlk&XQc z&>)Ad6n>`Y5{>;0kgdr-D0h=`cPdBs{Z`-K6}_r*?8=C`U^O&S)ipCZL zS(_`Bo3C7ha!ty$D|e!D>y-PMqKh>4*UH_bXp5pJ6+H`NZFyDEdm8&0kS#~x5Gmze zibet1@{R+ta))YciK4kGNB5LAMWep&8$;uTdcdT-Ym1|dYnxZRJ?t10^q};tg*5*fm zY>8f1^Z}49`F|9-hl*SZkd569$ZFYJV<#(`s&X?`u0ms%DQZ)>lNFt+u|HDo0w9~) zWg2^vqRlFIpUOR^u|103Q@PI+?bO)tBq>`Ckj-t9qA40%48+Hla`TmIP_9Y2cI8e~ z?rh~QQ}ip1{WFlY;5H!JMo%bu0m!z(tBT&x*ncUv$7InmLeT+0HtoScwj4((m#3izdmbhw$^x?Wa+IR!K(=gU zDmPDKTNJHUxlNym zxk}~cE7zpxJVlqO+;4$w9sC~1miH+|FR9#HigqdrA0<|00a+~vDw?6FTu~#C&7&E} zmgoeHU8AuZ6mQeMGAe-V! z<*os;w%n!YaYfGo*%U7W**xCV*v}OuPZhazAS*Xa(E*CaD>@p;YA#i7E|9gQNl~lH z{Xpe9HTI{9E>^j#RPF|iy+^r+lzUmx2a5g!WUUHe0)s8b03d7C-ir1IvU1~9?l46& z6;&vz1+pnxlsiGunTj?lx){i&__ZUp3q>ts4Xlrz!R z1+o_ZM#c#I0>6)<6vSYM?FRgp!8T9kKB8fo$2<#SW8Y}zeM;3ont`bfeU;Qpl@6=u z3AV@V2j;RN(aa&l>=w<;07GAK@lr*=(8|Xi(*cH7dG(lXFto0QWyZGSEe6!kh6vOT z-OJhX8WKNa%_|ZcqL@T=ICc?Up74e$N+?6ozo1O8CE-8l9z>$P?RP8_LQK%5X-L!) zW49YwhWbU&P3>o`kCnNTW%?MI3}i{iUF`M<%Y;D(-9ZauV{PbJmO-;ZW;A}8h!TFC zsT3oVgI}M?&ZjH`W1%O9I<{}?!^zNLC@+6T;0LK{>Y1Yv8r#sgsAEZ_ZqcIF##ItB zFUmM(c~f(v@QYjPR%ih4&V*mtv8Wj_Z4$0)t!rN51!F^Pc!3sa=vc9mUx`H;9iAN) zSyA5+v2Wv?NP@Xzk!33zmqb?79oHDC$J?*grd5p%^lA>X|MZ=fnQeyDB)O!qInuJS zy=evBpxKvek;WC6kk;6;sI{ZniA22$NVYaY zdu)1$CSYkG(wh8^+r`vd-Ey?8owjGIEoB+roi??PZ5fwox7_iQb0_6aoIE}^Gcz|Q zCnxH6;)Dql$~|PV5v@&WIGuW}<1EBjVjWbIoanKG;%Iz)5IweiUkYLQMEqwuWwp`c zhlxn=GsP*}96g345HZwR$i;gkEJB_q>oFlI)25Eg#Z7tCHVR|qix_dXv3+(2xr6C= z^|m_!llE~OSuh;xu|aOac!T6;3cwb~jX|BzW=)tfb=)BsLZi0xfRi($2m_&SA|Ccc zZDW8h%5#N-Qo^e8B5`yuehnNfs+X;Uk5A1~^9ps4fB%pPLa z-kM1{wXZJfdWMO84RMSRoww4Zg}aH^HT`oRUwi8af~n`-DH5d7Cf0p-ei(RXSx!-R zCshpsMcqzO=iQmd?%Xa?Z(ND*Sx7+kp0XWHJ9qBf=%%~-g$MTwhW8AoyMx>`jQN4x zoM8B{euwuf##u8s(&^XlD8!@LMuMk+2{ofNm0pDvypuG0CbeWF4+Lt5UEXPwV~p{ zq-PMT<=|j02!f6?#H6HLOv<67V5Z~jw!6*6aJzfj@PdD+yMKSmV_3*Y?m=N=VY znj>%)89vrMy1%Wf{rgk(O+oeT71E*x=nOgnM~3aaVRw2-Rc3zXgt7Q@a6x5;jCyC> z(v}sC<5sq`H8wT0G>Y2~=a<|P;k$I)Oj$^0HPX%TeU?Ro*&2Nt!oEN_GlMj&Ga zf&fJjzSwI-%lQ zp*Iwsj$fN|UU_-md?z&HZ-&2G`Qq7m(+i!@%r^{whvBErD$Sqigl6wVs82P1Qqcjz z0|1VOHWOMFk48lQL2l@{Eu_sj0EJc%hNcucqZ-{UPZ=hi z4nZf>VRfG!aQd7A-4thZr`hnU65feo6;(}}X0uvFw=aEbLqF(;tIU)r@0tcDwB}{1 zXV^Z2^slv{q?Dx*azTnLuB&f{t4`=t%ZF1|#qy_FzQ3&uaXJchS~@KS9!2bk6gty# zLsC5Fq)?aTGEz=xYG_|-e2&P!sm%$Ub0M`s*6@_2jZI6Ik|R*WxIQ83TpN{{QjlL6 zft~er%W+XfN0Ae{&?+2h;$UlZ+|O-Xc8cd<)etcmJE31%onvC+Y}QWbavPZwRddaa zjSY>cz28uK1hOWikna-fy4vP5$#A0M8cQBwNGZv+mYiZp>+&T^uCq}EDaJ9YzGb;Y zTyGIxa4`h|0Da2nZbW6J7=Ao-o?;H>gn2V^WjzMl` zp-mrCw;37w>lqO5S5N(8v(1Bh%N-OE$Vy77K(pLwqlTnZpdC1nk&?I63EgF5hNtA= zSm8jX(}&pep}=(Dpkr+y_cb&&Wq!&%-$6n%MH`Q=Nc8^Ya(wW4tvufA;*DP7>2J6yW%Xh0%c>a&b z4f$-JY4V}IRa`L(BM&k)foXXam6Qhsrp+qNtHenJN+>wHu(GJMzzMy)C(@=#U9M<> zH(q;dM}51K9ZGVaLR@-dD-NcRTZ^+dj=A&|jVmbl0&cbfS>Zv)P!)&VAL7gz$VwY@ zybapM${0i!K!~+HE^`p>jwxvCb|hyD{VlDL6-!#3s}M)oP?n$?S2y7l@VmeVNJcrE zTLj$ywAC#^b6pci+1;3s&Mtl$a~-EhOJCg5x}vT z6Y5%HQm%Po5D9rp(g|T!=PZ+nQpo{Xrg7D&{IZfFbfx0bqzSH zOF<;{vz+<@H{IMIMPj6!&~u#rGS(g!{X9os>7vV0Q`>HU25xCR(KJXc8iX1;-QKIT z;T8{N-81-xsYRie*R@iE?8S6gr0ZH+>rQk+`vlW6Oy^*J5%VL0hZvq3Iq7xv_2@FOy2l4^Gl?g~ z#ER-egRhy`De1A*_&*cRL%(#h?gdQ^~$ zDf(+ib31%jL$8?rh66L*@XMQUC+>t^Www7hjhD+C+i~)tcsx7^y~aH^Exo;^9k=kp z_b@*M_WcumVDK{JvVsN(^34tPcQ1ftp>PEK#zq+*SsOXP{j-U@6~9AdY_aiNZIc3_ z0q(YR8D56O4lhGuhnFF-!^;piW_TGAJG=~$;U%5g$O-N4uER6UKvs4-o=_}llylPF zE}tQpmNU{m%uh&fY9_~FJ;9)=GFkN`#35oi#;CTH7zCWqzAg>*fvh7q)snguE9#t3 zmP?Nb16fnj%~{>J6o(FS&1GU1dJ>)L(UqEUm8tYBJ5cb6c^sQlW?8W^hv~|6dh{1T z)z&w)HMKN5p-F7xJTnkQTYnhG)L2z9_8-pn*P0H(C$l5nADNn4nr(+QFIk9m6?85Xeh)fau(BT1E%QZ-$(R@K5y|wNH zx685cVX=z^yR%`SaHvTFk$K}w9#`dKxxQaX0rIUUz z>l#?k4(qsaX>2tY;EPNb3ufIA9T~xe7b>Hk_5CT3egf*bF*0LX@ibhJ)sgReXbGEg zb0FRDE9#b^m#=DUwY_VpOPBD$tXm|ysX02jiK92c)<)bywx5VQJsNv&0jgMBJ79 z=`67=z~gKaU4GjpIg<^4J}}5!v7XDa+XLzK9j#^v;zRPM?qjCU_5{+Aye+a4Gb*6N z37yX>&J0q7(TgOea-7fw9Qos5y1k62D2O?spL0$dZ8Ds_7NMz^Hm!6*7rB2oS^YGa zPM6A;vgBV7#DFKk&B1iKT$bS72;yWZ!L6Jj-|764bvzhMkDYQ6y4-!wWcFw<9jB}a zL9caxYsfQ`U5FmLIic&_ z>4vxyu@PJif8dhcki;i_I#D&DMlgVz z^L{p;v}^~Dp1~4&CvYvsSGpRGoADBQH*l7@)Cl7ggs1OOI-St_fnsyTmWFHSl{hFx zrJY9;`XCVD%VJdXirA$8;-r~4*VFkr6dnu%`p_L34d#3!)aM3Z`sZ*cOtl{XYM~A$3g}9k`hW@dh3Lm5O03?Tti%{#Iznd1_JkB_^t#r@2(I(( zRGZ{+wxCXmx%@FNEIL*?$vKt|_d5y-lXJN?QgHsY7d-aW21!n^_bM4FnEGQb$w`ru ze2Aro!La|pFt!N>nJWRB6|{UgMyE9HlKl>*d=6_EX4(pNwwQ}h^PVpG@NPqgp=%?$ zujrz};8>5+WqY&LHPzGAi1U54zWiHN-}6!W=m3b-XAcIeuSE3GB?8TEveTH7OP^9@ zV{qhHLMitAK`(jb{E>XJ)IZ13t1ONDA-4i2H0NSI@g$!jZ4#vv zcUaKf>LjnRk$C1}&RFJkNn50)dHIP>@>(00$#HC|sO`KLZ}D*P7aO~XW`iZKf6>I{ zpdC)sqT0(M9v4iD+M&VLT9wU=9!SyEp9~+#)&J32Yrr^SYfVq`P?NzUidD0K)zI@X zCwburV@EiJp3s;Uqw|_MH6+*DewPLtuUEzB?zqEjz!g%vGml3mtGHS06A_%NoaB`) zHUlULV_dS<@hGNCMrQDEW)*d8G)bHkyP_n$Gjx(yU2XN)qv!;i7nwF2T0>zvu6HX7 zZ3^6r;Oj)W2_bWo_i_5rXG}C7sE*62?9HQ1wOjB{Cen{~wX2i)(x|_D*l$WP-807=S7aB=2mhP;rBxU25ybJLIlakZ(a6F~Xm|8V0QkGXy z5veRHuM(mnuevZ&QCd}wM__oiMKby2c_lL=1%-Iph39C*7@@q90+Zaqle!rZqGy*D z6gtVfzlB^fTp9sQ`wyesU}gn&8SZ+esc6GYkSm>bq3|*zMuV-kGadj&iCQdjAm-0(aIC%VuwpI1x%-ghaP0jVo zJMiGo(YIMwq@?WHmVEZ9kFV(r758P4s|^S78P4o65*_$_1XP zR7EF4(UjmLLD>+oH9#-;Uq(|WZfMd(uh^|D9*IS5qCSc;&^yQWI=ef54!7sU5;IF( zAC=(dh$e8$Gq<>D>d}+Z>GX}#z*lNGeo;1{gYZkCB&QU=dl@tzzk3^0hhI1(AodLW zW*YQU{O)VeFYr6UpkL#co}DKdzdC9yJ5M|b2<>2E2pt17(8L~#TEnOYxtkR29u)3S zoSJQHp`xGT`GMtrtLSD$_bU1n*;~0V3T)Btibg5gf!<+bm*YOcB6>Y;(eD*~u4p#8 zyN&I{wT(shE83@#|OhTb8ljd{Yo2>tnYYIYganw+~cvRcS=&Ko}SRh+}y+0kFu{n??Ma$w;y8VY>^-r=j(SfqOZrvcPq=$NaZ+wU%%rq6fVJ90kIqO#rgV?$hPsQ zS=2FYnr{MMzhoFckmc+s0)275essQ{$YnJO%}?4?c=?6b-jYe`i@Hzk!MZnFT8X6Vr*km z_gP0toxJMeuBY;<3cDW4tE`$ktLxtC3hP@qrKtP&lwJ3I@5LuPGQ zJfvttbLJaUp?~tD9Vf#<@Dm6Wb-fM`z@25`b(`B)uRSHhY46k7$K5h5!|AS0yLXx~ zHFtC8oo-ik+T?Rd<*K~ybLU|{`OZ~0LCL#-gS`F7J*(^eqORp5GmE=E zv5Jv7CwR2|M~hSUDL|&3cTYKXVPrvGP2PgMg?DYFd^=w697p-OagnL}OmV96ZeEFE z%&ji!dbpzNZ^k7Ob(~$)ofqDjh6?QdV&~4HuG6XLMO|rYZ#PxnF?-!}9hKeHHAUSE zm#%;Ol%tBe?#bOr`U<*dW*2nlk2H!3Qm>!cA3yoSi@K-5d-A=`dtt*}wL8nwineZH4GgnxDK%g@mJWQ+2?YytOGye}^$ z`ESwt@h1P`DVsvEG+Y z8va`4#ryIt!{23i@xFA?@_lFsO9u$20>pV=jsPDDf8Zq&@5{qY1SKQy%jMWddtXwR zJQ(TXG}Ks&U+aCj0gA{~UbBk!zRW{}@xI(j+SvP&Ff>JZUv4vucwbuGr9+!- z9^!pT5$b(uquBe>2H5-32H5-31~Q#K1TKUE(}5FtU*;e(6s8+3^1ciw(<9?=&-?Pv z$c?-&XPbP;E8wepU+#sp`~uKAS4DYWZbO`SUoOHOGrjd?@5`5Pa~$P;xd!*a@@aPPk!{>c@sNs9{zFcggd-c9N&qVj? zeQBGsH}A{8n#8?%U($zh$Y(Cb`_gu|1m2f6r(V1-srh^HzO+%~eYq5!-d4Um^HuLl zIHONO_vPhC)~olWjr4h6-fYtNye}>7^S-on zy!R!Q-0yw4)oAv6Us8Wc;C*T7#NL-St{3l18@Vg*ODoZf_oX%7=Y2^h{a(EDBv^F4=eCeQBc;cwgFxc<)QP+39mG`BU*p>ICl}PM;X$^<>X;t*%eQ6^T zd0$$q5_(_$(`2RImsV1}FKtl0FKtl0FKy80eQD`L-j^Sk%woJRt#FL@<&W`nCC2-5 zn<1jSFSGFwFvk0`!w@mvm$i7W=kvb2+K`_2WfCs)V!SVl4H4^od8y$Ncwhd?MD*r; zX-l?C?@KyqCG@_$-dtKI^1h_kXmmZC$oq1pxnk?p`?8KNixYWY+N7B{*VFkr6dno# z`p_L3jn{l5)aMVt^v~f?m~QLM{XGq`h9&RIhY=V`H&A`()IuFh6i}5=A24C^zWkI# ziPf8v81GB!35mQft+hVyOG}IQCD%qm@5@?Ki$3p5OOyBI7ch)%O6Yw_UDCR+9kv*5 zGxTI6)?4!M4TdJ~%X1(ry5e8Zq`{Y%db8Cv)zjtkzPwHKy%?o0{;g9QT#@Nuu=+|w zpE|o(*U-{!s%$KTt#Pq0q{#b{4k7kvjP<^h`cLS6$*sT%W4$k>O%i%v+Q`J-mo~09 z@5}q}ZoW6~%k3tPyf1&CMU8Q*#4EKlIA+t(U~8?)X6E<4{6cGOF@$ZcMZbn4?@Jm{ zteOR^hMv8_`*NhQBeD0T?RVtj_G=IB-j_F;RDbbO`Modc5eeNedu1C&12{7K z8`wQudJ0T8&QbAn79U1G5c+Hh#%_5KrEh`8b}wJ@3nRkV}S3 zBcN&jVU!!ptimqCJws_K+AtI3N~c{YyxfS9Iz_r^gGNLPVWbz z+JW+Q`WyhkQ}NGd;|!OE1DmoI@lZ&ywoo)E*eH78fT#;VWVkf&TAGgAVRS=+xIdaW z8hE`p(2sx^nAB&)J0q#tXID&*l$6dctf-(xDL@pKmq(`N6-4r86;CgTRL(CmezzWr zg(@QXMVR7F&bLCt+jd%Explb3e0HJpOJ|prmK0(^iQ)p9+^&3iX&I)q7v^JG7$xbE zs#&2UIfkn!KBmy=6GfS{w6I5U$#hhjrnjp}8sQ8}AseKwLSvN_IK!CZS&t>9mBnZWXAh>ewew4>N-CW_g)ZUR zLr1d-hTE6|tkqRqQcyV0*~=rU^JY~QI(suwgsx*G_F-a<5Sf-JoLyEqKVo0%?JHD8 zq`WY%z!~9%=av_vUb2`dEshk)6wdpFvrEh8JCiJFQ|Wk8;Y^O^rxniSque@OYMS*P=6Ru!$n3oGnT6%f7N+Iko?12CxtF=Q z#RX_d?VMYgo;RD1mHVOyoB91<=vOeqE^=P4o3o1SJ&of76%INO+@na<8LQ2{#LRTfpvo?4PuJj;xI&ql`<&a31l zpPq}RHHGs$(>N~kr72!ut}L&7Hfp6p_!pTs{TV}Dh4WH06FE3iVitX=aJI+r!u~ym zttgyj2eE%JjdKk(@qCQym2__Tr|_67^D^U#*`=lE3Niq^A~d@1s~$F^fjM_OuPIyX z^eC=yc6c~S`t>LlrO%sP;k>~V9~GwU-i+Z)>%AouwMAq`S>bf&?HH;Ii|AD1fO;o} zrS){)WkwE&;(`k2J?5y3+y3%?6k~Gy0L0w#l8EW6k$KZf%V#_P63z^LbR}d4?GKrr zS~|U|B7zma^!)u1$Dp5JVp3r#qRm12G4n+@HuwPjL?~MLN>zW#teJv8J8wp5x$~J& zsDwx%TISzO%&w}a#A&Kxeo4ObALh`Kk&41ORk+S7&YR_Y&NQ7_W>@7GS!=!kOGoo8 zEE0shDHE;}`>u3{FWHYC?{qA3+`Z@-2|YxiiRdzA-EsG!3stQht-M1E(o`I|kvlx>*f-d&SOM^eu=Vnu0csuR%q3huj5a6rc zzzVEE6F0rq&7n(FjiH4|-0@c;O(;w$hkH{yOj5@!r0Z$3RS3X7I0{~3JbkE;ZcHbE z+`Aq>ZXwxsEYLobx8qJf8+x7L(T|WYi<{O^;T(>4Yau|}EY6GWBQJ@{;dshnE+Y4` zD~h1xj@wG5{i7vms;8~LR=VAx30V-ebNK64VG69{wo%0%hlosTRtK4NFT&2gGHc3T zSs%J(NJX2tn|)5Ix!@m?S*OEsbT2dQba4l!LQA83Sc^oDAdYL{W6CbGzR7Vvq1%ZA zlPH9F!=?c~rMsCDP`G18egWqqpszgvOI_=r>}yZKT4ok{N-!Pk9>*;?{)CC6J33|_ zH6fUK&6)?M2h&~-pS>!a73{mUB$yUHV#$%S5AO&bd)m57gM9-Bxxqaz39fv9$&tZ< zGlJWk@Ywz8&ZsC|*4AB~|G|s|q=>vj=12gjmX6FseNe?BbCx_DeClw5wls9ln zdN7=x)MxrYdhs)X(@Agm9fvV_Z2G{Ayn&hNNlEFUV0v<(U|@E7Ff?;u8B5rmX<9&< zOeR=trO9M5!chT{u@jb}B0MOjxy~Fq25IwB&9Q{{Tgz|}@5vy+OFS-3@N$pK5KOOl zXhYge!OfN;E?aP`$K?oa^SDWZPhu|UoUqxEfD8p7sR3fQS`Nyb8dQ%!S}lk+OrjGw zPN{N%QSr&Q&O3_tRy zC>;ihq6QV2Bk)|MD#$sOwr4#`bbshkR>u34RpXym5nmHa9#M+D^cEd}9i7u~hJnvD zokMvFlJDF`GBgvyO4DpIZm3Y0^izHQR59{)*GU;qxWs&=t-k6CK>+&bmXRF0$v;@^IG!y@W6R!gG! zs?k?e5Hy>d6DcX`9Hdbw=+gW$|MoUh zc24V9g#3AZ!7?~Bp(h8wc64Lf>;`Z$dUY9e&xnpPI0NzD*#yn_yRDdIiDK@OdYy9l zUD-;rEot>H`L@EB&9)pr@sP>6m}_ZgThdsK^G&_uj5f$W+j0s-{uS4x-^Fap9q1wx z=-`jpF#9lWw&iqmxxFxge{zf!{Dav+E^fBv-=MGIXvcZ8&dS*$K`w5#u%9{d{3b) z+};N>{W6ceYonRIn6Yki$2&#cK?E@04|noBC6m6VKyxyqW@TbV;-sRknvvN>UF{=t zkXhGLo9G=~PbU`tpjnal6az(clSt>?lXe^j-j^N{T~D!^ccCQp#wU8FLU2mzjiBRI zWFtmrg;o{S--!vKT~FGHl6HpV$#<+QTE8=OT@q@g`}A%2&3$hD=GBvCb^nAav}^M% z_;qG&NLo*WT<&IXmT7VQ5O?vZN6f{7Jo(QQb#6|YHFudkI7IIE|I?add+9uOD zF)MP@bKo&AvgZTL#$5kg$I9-XQFfhoCK0(eRl>7Ccl;yCeZ8jzGS(azQ&pJza_(Di z?3tH(hC1M%MkI# zlhC*6ZXh(-tPPE6JuiK}b7wB*sP=gEn|fmzCYo+`-KS?w-rn)vhPi_w-189xZD;9v zyQdfdOqpE=MRP-eT4IaalY@v^lV9z4WBtzdeTur?rdh3sPnY;K((>-;p2_#F z>DjWLjHP+CnYOi12h^XtR#G)gAS1hjsD}Mbcl7MjUX?SKxXGo$lckE3ZU7y zJ>?WrL344@S%MY)d-4pC27+eh_KZi6=Hx!iWx|~40xAX1%B6wl-YH|qB5)|#GAh|d z91lf#r+)G|(Kt+TthSGwf+MV;Ys;!3)GaDUW}`yr#IQ518v$yL{gKs%>HyU%4&Etr z@J>RmMLS9m;XD4#4DKE0{@e7Y>P_3Ain|j=oZr*Azvn4L-aBm)V(<-^Nz{u{*Z;`` zrcj`xFSKJaF&$5Ifk8H0fh3#ggg^mGzbTIcqbbn9f#DRO`IIDD(hY zxXA{O;^5T?TBWX{k3ZeHbH_#;@Tgxp(d;;Y`iAL0Rk?4?E$Vutx+3>E8ali4&^3== zx_Ao5CU0Bw%G$r~i#(lY6NE&Xx z2f8*r3yGdHP#y}3%N4AJHLpOoFOScQW%!FdKL5M_HYe;jX#el>d!e*4@{!$GZDc z*FA*x*|eEuJ1F&MVAj9Y{*R*WKGdS0;y9g+c&uB%RiC>4HX6lk_3u~*yfLrJjOcs- z7OlO-w9%~YU(#`yx}I(_3cAm(#V+?Fw0j|z2$<5{`4_6G?(69>&ic(AX$9R^-wjwu zBmc1g1>F~IHsR+|*V7Xx48}#B_l76`k@T$D+})Xjecs^(BPX>Vyy*o~glBsG@iEGi z#DSrx>h5z%jQV#U3fV+mNMst7`0J6R`&?3r5Kd{yJugHvJ>w86umWUwT~XIdD225f zDY~nip8iIpn+jC8{=U@pC&Pe(?oL~r%{V<54!L7{Qg=6%C-?F7_q7MRt1?{rx)hyZ z9{z~>$i3miP03Eavin?9GcfH>i0M9;Qjwv*HX%}q5DnMoZY7K%QZ5a4bV3B@!`#hp zoP!+lZbrOG+KsaBxD`#s$5+*m!raZIvlS7GH=4t=Xv4`PGmADX$92<&QXGFcC%{dB&E4A(?c34wL4svo_44lf`E^gXex^?JY>X zJ&<}khWyPCyVK3v&_C=xJPX3FZhFv`u(<1mo>xD_38Zo&ok4Ox>d8P=yphGn`_WFv zOw)hvp+4jm6xCPR{A`LngQVu!f#xF`p2La-t-Km#WEv1NX%-={X04StaA1aOcjXj(@Jb)ee7CrsP2I_RElm(>?%= zX~nNVp+Rppbee5{8`FgtqiBm!beA2Jo-tOMap|gmQP;88KNaSTgcEk&%~PNXre*2^ zAREzRin`1v&+et~*Hh7HVUTQ$(q?6q4MX2DrzI@vv0>=@=yPB*0Q+DJ0z?-Z`aF&o zz-+)=qYhtDvv&gDuj+wEfnWQJXl7N9(Ej~1&4=G;MGsoS!+e8n@3HuL8-3?ZzLrL7 ze(V#w$VVoE{Pnp2&UX98F7q+M(@;FvesPU-Wc72aAUx6&cAWiK6sCBBqdap+`~I96 ztfL^VlCAYNI2u8=onjAwLKBQuc;H@c?%;CdKCj<=^AWi*Atx6W9Yj3kOFSOzM2k7j zIIkGCnsU5Kz$nf6nlJ2)_iVzGFwY`9JeYu-0x4KU)&N*IF*;MKmqRHA@5ps=6s-&# zI{A38K-WgN(un^s9Y1mT>WiaHw$EFP*6$Zb!O;Bw*Tqq8L>CA(*5db@UmV5g?y$PQ zjm1$uCELGW90ebFv>%CU&~Lt7PQEOGtpA@cj#5GWLl;Lez2%PY7e|TxG~L%+9OZPX z;*hRhKyTWj7DqYU25YgS#ZmrdgRh$4f4w-$k9VWg{!i0gVfaLgqu3OQ7Dw4+(j;6Q z#U}dl#Zjgj72nk2D4U_}e_tHMrvAJasYUF!)^u?cOZyi``K=N6FOKrC;d@;i z<#Q9=>*6S5GRTNt7e}$p+1uhM)h2Ooi=(VHv2lx|*zT5KaTJ@=cfB}@&GrB4#ZjKd z%d#(79K{ST-r^``c<~lTF~f_uIEoow{EMS>A{BL%xKGpZ8S?wZQScq8!`+07qjZ^? zOSCx3StjNyFOG64k_CJFG@XsyEFYVbPt*O`q}d)tn@`hO+P650rT@FdQSLFCzh4|B z=F@a^t`25>zc@9gO-;walqR^QR$DDRrgzHD)n zuEEp}QJ|OSc3oqa0x(zQ)QZbjJDyS4R1Vxnk{gWt2}$bVhojl~HWcOw9eD zlXcX}C^T4`NhCq1&-K9c&*7+*QD}rUEUk?400MSp6gsa^?-B)ccu@y1VOkmGBN8Q+ zR}O)rC)`u@yL8kI60MA4t@W*pV(Dpt&H+-7{)gF{AKC8bkraF^~Jq+ z@?oEwi%8$fC?nysf+cKF$g?0Tx)QC7LS5PFn(FEDt&CEs`ksr@muO`aIufkD644jG zGD?doI}pOwIRDBhbO@1ioRfSq*Lc4xDD*?A=+`K83RiT$HVUn=p^ScY6k2OTnf=b9 zP-iWiN^ynO?+yyBKf#1(&63q>M4~lI=%BUbsj}+)YnGg+<@sDyc`nNKi*ahFQ}B`Y0m9e0$SdJ_GbQhNk;#OMeQTpnnS@6yAd0p${1N7{M12m*JA7W{m_$ zJOykQTcF`c*dE}7YnJSed&5w8FZ_O$HA`ljR25#T#A}w&eXLhDS+isrSi5Ek-OonF z(~X2#UIG^V$OzFgAarxvi_rB(=nIsMZgHc8YEdom3sr=|PZ)7p@r7=Azf?R3A!{ey zaXqfyVMdCn?4#;BsfBT5y;*_xrl z1sQf2Df5Xsn&xM7AX_{{#z88HW<)2(U94GRzGMesK2K)2G#uEJ zwbrH#5VlY>DA*`ovt%5I43~ylOH(Oi&5{`=js{*Y4(2TeL2H(rK9ZXK`!!4Q@HNEm z*DSG1zkI)DNrChInkC<_SwahtM803MAy|O*i|#fcFCQP|15;j6nd3alDA#$6(Rk-^Mh828 zV>H2eg3%$)lZ+-hPcb^wd72P)=xqcF0iLl;1?F#4=2$T4IRi>&InNt_Ws_bops37w zkpPxGb6z5lM+-7-XO!#wozZybAB+xm{>f;9^D?7DoL3l4bY5k2sPh`5NpSbKnkPFu z7@-nh7ntk3A#l9&roe-pw**db-WGU>^A16@Opfy|quhg?&k5$2&UU^aP+2$|Q;<-o z@^Y-1vo_!aXwe{9Y{xC9yM?|}+_|r#v)Bc0=Fx*3yf98#j%Rq0)1aW`$RbmH{VQI+1A+6&=P5D zX>;5K_#$-y;`gG7gb2~i8H+WvVtJKR#5ZVss*T^5V}qNvBWFG9neM~h_R!*DU8|VX0ibzp`5liATl4dZEJiJ z8FD7_5<@nT?wn*I+9Gwxc~dQjk$sTQQe)X|^g#L;3NLSLUeb<_iQi61ZUi$DwwZvl zpQ(|5BX=K{ZsuP=*g1fna=KewmuiZ(a^5?A;l_J_j9gOiDjE3R2o5XN5g7>;YES(6XqJ#NhMlZiL*gRc@n|Lm2kF;<_u@jy=#kw9Q9eBM+2P zzG9>|fg8OYk?w15V1LvCo+lqjS!2a`vrVD6_uLTDjk%CiA4Eker|yO=ja9qvxMPl| zSm%H%@Z)~rx|tmH4qA`42sGcUxqo4D?*V5T%?VHy7r+-b+jd|}Y#;(1Yf)WWfX2qE|2z?eh9InFqHv{Com?z(%7L603x0^6xK zkHq_JEI`%K2JNp>+{ikQc+C*fb9=~0>a_;s&LkZ>D1W=U^Z`h0o(QFKi<(jJFtpJs z#Mrhx%#?dPbR22ge|$Su4HH-=@L;3*DARMD174$ijtaQ%a!q~?t7&@+rS3XN+ViLY zmF5ymhqLWDB|z;tAeCy+aq~ux7%m23)r0kdFbLMB+n2DA^|j1_I>KG&g4=jrqs3!V7utE(jEn(z%Fp z#!^jP$uVWf!L197ITBpfMg$Hi2BL+Q4y^z)b{9J^JkWSOawqrf=_)Zxcn9dI*Q@@C%GA@<*zVzo)}IykDdlT4*$QUg!o zmB(UV!no%J+|8^=9J#9@Zbz!~j57Lk!NJ=p_w!AQV68C>vESIjVP>L#J=A}T3x~b! zxSg}+7k4~({H6b@4)5{Q{7dIQ`RNCTAKBUQWU&9%afiQB^V48^cx-UM*kIed;DGQE zI~N3pYz(dl54t}*`_=I7EqN7x={V@@alsSb4-R;Fb+F;(;E3?Xp7}=}e&)HsK^uch zH+>pxIW3qzBiJ%8IP~R*wq3GhT==MUOP&l*m{lB1KP{`ObJek{?ms8^`!yTyzyCh7 zU3%$J)h`AQ9~&&35j^~eU?IRf8+Yj|v|Sn;9Uc^XzuqB*1JG|e6!HlgtR<8bk*!vdvsH$u4bLM2i5FW{d zpb26LCP);71OXFym`NrufslkGAP72yJRkxI=D|Y|&;jZ=20?7K+FQ`}-fJyZZLL+H zHGn1H6S2N)rB+)~w6$s#tu5bw?X~wlXEH+{-|g*p@AvD0%vpP_wby<>&OT?YWhFIQ z-@Crudd@X(LH#PvW!AMHS_9v)9=-nXQ%_lkT`ya2U%&e)&v~zU26cSjbza)9MAc5F z-;_PCykgz#@?=_{T))R!eWSI-HN*35&opc0H>~eo?@4`WfpygN4eO!nC*yt?_j#9H zy6Tl(Gp)6UftY9QyWTU#Q@UW&rB`@@)t-(eJ3UX$f53Xj<(V;aekq!7OxB#NQ48v3 zE$I0A6Z>`^+4)ApUXt?ycR9As$6U>UC%tZobWqf%OKSj?LyOQz~Y zEky%lyP#f+RK37HpKoA3YSAkyRo67x=TrID^LDTNkC$OJOW!HOGXKJEU$G-!vt+(h zxz%L6){cjMR;BxyL>scWn1)w-6fD;x!lfu!^;h6jS5+eP9jl+XV5>}lV>GIItOP4; zl!Rh#cuOoUSg7kw>n{-#<=r$Yd$TN(h39F-i#y|`eo zQOULi&CwDhkR%1n)q<*(pg-HF-mz4Xba{-q?<;Pdd`zbAl`M9wD^)DFj&)`4wA9i? zKD+6nUaa6O8<(QsY#W!ZU^<16aWfT6pD9ROj)KS9xLgIR1BAGC9#!VX%ZTV@3M|s7 zY6Z^Js44}{*Qja*1~sZmfeCVXf{D>238rXNl>${x!NoB^gD*AYXibPIK?xyvN@v5h(Cb9^nUKJ(M%AQXbr=?Rz^aJn%7`ec0_m8Mt~kR-#md$!v-2caV52y? z<5!YY0hDUhOrFo7P1I4Hk{+j-goQH{`T;GdMhTjw z1=Yj~ifIG&I5Auv!%;0LINQdhC^*N)r7QRX8<(lzu{JJ8!RlNwZg*7~nIXQ&NM^nA@xJaLcLMJAKSPT1^>aur7QRo z8<(lzPiEmX4YSPMB_`*)~}^|sDr%~UC%RST-wBtez4IE!Ak6wspu z%~gWhwV=7Nf?~S=40#?NlJ_`i)&EVIRs!tO$INhUnZ{V1*6i^TEU{5`Z84Za#bs(T3b>j{%m>g9bdia8YYWhDMzgu^GD@in}9q zjuR9zqhpBgM3yXXSzNn3h>uzD(Flu@Ty1r=%}NC2vZa~i@HZ5;L2s&J>W$F2zzkQ0 zUoZZ6LS~2-!E*%lN{q6R0wOO343U=thR90+L*%7^A@Wkd5P2zJXpe@-O9A7^O94aV zrGTLf4Uv}u#*vo-hNdBN3@y`8V35K+q@gb~RF-Vseb~*sr9))s5 z-3W*!M>Ov18v2fg9@2b!HEzGg9RVcUNJFn_zPB~s`x^J5#{Eg-ycepnoehX{H4G3- z9;uD6zhFUfCE)D&sh8_gOl7Fb7CjfEZIIQ_z)VNnQ?w1<(9w3(TF(7W$ zq)`f&s-Y2pxI`Ce+yo6x0mSJ}(|ofvZjpwr(NI`JTLH1;uW8)9fH+t81L9mgt@)C% zYv34DHFULxR%>VjAeQoF4c!Web9$%d`=-X-r*YrcxcwSBq^U1x-0Ofijkf`DPCwGn zKx}W`;3Nus`=j3d?z&S6AcZjq__6QkUW7lvBWSnbcUKfZ@I`yL(P-_kl3q9^0);LJwAOehN(mHP=ByY@*5%%4$d1S3RMK2`@o|=cFuZvyui(KF5hpG6FqR~E=ovD$Xu_H_D5!ko=V)w(fj=a%{RIz=(CF(0 zVE!3iYg%iYm*9(PnN%A*od)gCz!{YLdJf1husJ|qQA-G)Ff&A-67!equnr+USCd8jpoX#*Yb77g6Oh--hfpR2jHbujsEg_^+K13HpqE`4#e_ggk?(TfT=pv0-gTsO3HX(TOfk$`y=_j&grM&3ncl=%ZUz8C^>m=oE+G= zjlE$c_zK=yUlVCg*!=z)_oSAE>&}9o2KLf`abo!4X$FYXDVyJDe{Ry44NoCJ5yPLs zlSTquIYco*)`mxv&3BQ$bc_)xOhcXuWtJAD`y)$-MwVtKZz@CXL+i2&FI%1IpH!b+ zxGn?k8rG!wLSJ0AVIZI+U+7Os$y*15P3Mc&B%LpR1jhY^kA%J8p=R97UK36yZ#_s& zBx)hNF5BPjhbeKwkh2C~XUS<_xSOc?e*6@|14G@s1ksSz!t4Ni4YUu8^drA9@V{`= zCdl>`e7tT!pzaV_ICL_%ahtE;Cmn8I!SCAb8jH#q+yjJ1!RHNX_~UiwMXb$TYo9^k zI$m%RuKzVU%O=W}5kmgpOaK{5K!(N___O`Vw=O{c@gai0;D^-O$+u)sO@JvUyXPF3 z!WXr3iu^Ea>v;n=syNwSI=pa%Q@Ht9M_(lBM#^W(XvyZ&>+hBwBT(0zuyNmLan#pw zzU(50HVK4@=1tz(Og-Ac)&4p+47G^t52C}IghwUnNdE8|!qeFl5Z#5j7-R&UPC>fK zTVIC5gq}wH_(G@6LkF&O1eq9GBxD)i8bhc+# zLR>0*GEmeT4$&wkp-)E=(ZDBJsup(=m181AqXce^@QcEb->R>`qk(YYVEbH=&Q3A| zksD|R3T*C5-gH<**nXVCbycGSooUD5?rWPbVuWv41Y}9XgTBB1qO!>BrFmU>M@s8z zj0AFv)|pln*#EY>v@L^zy)M~pzEFhyihI)xjf$_FPE z`G}B7v!-wj7x@~=ksjinJ6)L)Db5U?GTSG%W`s_;wzW?U6=$35A`U&098lyR>@KGG z#>O9?hp0x!o1x;-=E+xt&m2iQc|?v^$z>yu)rjePI$q(+J$@K&zX=DwMl|Y6=Hz`s$bPMr|*60px156kC-d1{YgBuZY zP18wDl6MR(=!y8U{gKlCKJ*KJ*q84QKkpBhP7eD(8w%tp-=`l$e3{|3n0WljB?t13 z`9A$U7~!A~!Kc7m77?kKr$VQaHe83PClAhEC|x*Vfw(R`9|r1@gFfBXz_GuY`NO1}#mG=ITx!GZK-nlv9$~3MJR7at4;yU4F z<+T$#$cN2d(Fc<^B_bsZ7W%*zgXJ{*>4m6A!_61%ar%fKoc2?%pJY?So;Rx4VmrAlta_fjh^?YR`vMil1R@qTr?_yEl0$83~|JG zg*cC+7E&DW2X--go_Fx;0DMVZaDdSC z-YGIOS5zs_L^H>Si!1GLcc=#G(4$7UxTZTaPX%&`3Za@;*M5fM7XUo(l*|S=5i1-%Oxn>R?~ACH@-|C_0$)H{lBoBRpmsn z9Kz_@qCn55=yTgBKW>CN`>)d3p)hC1fn_N~;@mJ(P0z!SqAS6p$pmo~Akm&%z$EKe zmOpOkZ6v2g$5NacK~(l)N)00DFv{lUpr}9_$s&l6MTjU6VUP&a8WmvwFI>)AbD}sp zHgtBaQJ`l(<{gSo$4|W~-HGDpgwd5wfu0*>bkPTnI1_hZI5Hhx>Bto5DUp%!EZsY8 zCyJvJMn|VWPoj)Yryaer?nH5P!szG}=;_AHLnWt*>{W426i27!QAejh&rOJq=bt&g z$LL&7`d$_DsM?^gbFb3ylW^=sYgM4rJ%!vFb`EZY+pxk-pZE^>VcoPeoRAIDZNQbn zg{P+!k7jV9whK}tJ7{9)EW)E}^6I3B82<27c#&SUDWl9JmQO3PgJy^@9Dk8V)QFf@ zLZ|wK#U6Ln6eNuZaEggt|Bj>J+;bU%$y=|&7>^X!gm=6O99Ex+I)UM!Ll6f2BpErp zKTy~IX6&uKr{AWDdS+)>QTI=`tBMb6zbg=&6DL=#hV?*B? zuB#+qJyv1qkN84}$0Gq@MUF$)&GWRUYcfrVk?MI|w$mx0>lP*@-?|Px%O9y;nD>5n zh&Fflk0DVhp+MxirH>H`rvV%K_PhcRzUdZ4rh7UoPlrCYR`-uw-X9M3+@a4C)~D)} z@amn)Io%Tx8%C@HWe1Q(Sfmh{-oHR3kUUG=;ODO3rLX|k-3zD7NHTdVEfsn1hg%XJ zr_|xvkebe){Aef}_mk(#{jEO|lu4ABZ-kHT|9qG~`N7wGpZ*b#s6)&nzVMNf+TX_8lYO9_fVoHolGP|s^|B)G;qdO7HC=aLITowt8 zE(@0p_5c`9Knj4#1mHL);P(T_#4{!abpIof@4QMm={*#*0ueZWY={{`e z;WKd3UdqF|+wc%b06GfooZ+*1x$;KX=TL}tiza4@_6FWLq7gsE1A)tjIU>`C!yNH6 zO+Yr~P;M_fiXuWLagnEPvD+8UqYsHhFkC1}{5NF1tdAg(j=M=vCJ8$EO_pGG#mdlQ zMm&XLjL=i4g)GO(qX0}`2x zo?@D%gUHdGXSh*1Xe@a84l?`oBNu;!O&XwO=A+pC5F`hBkU_!zV09~2Sa#@#=&%N5 zM^DZ{^r2XVQU<|qpuh_kdtNCPUi(N+suU}OgJeO3$H6oalTr~e2cM5@{-b;x!i!d`A$} zk?a$Zd>X1aV7efl6T=Jpp+lsiqmR;#0;60sj<&rMQbHHWghYAA=qOP+AM12@NJW8% zLvlq3J1=lr2qExmNa2eed}#miP7j8#k}({EWujfK%lc2IEfE>lp#44iU99Iq@jmG9 z_gwfQox92Ff4JvDnBYc6t%N=u&23Ffnj7k2zNp%qYC&NvLn>!1s%Y zk;lI!gIh;mS#pQ;( zlq@Z~Jrx@3tE%$NH{3JG6tdg%eT^@j<(pn&xMzMO@J9r`sH~!Rrs1B|2kqa7bX3m< z;Gr}B%aDekibTpunbYn0%#I{esqhH`MeBQ``-)cFldkEgZEhzsM(!YmVNy)kYIip* zqI%BSXc~QXK+uh#>7-`Q@s-yEYl_MYcjI&r`lp)iWzUhc#ZB!ng1&-aGETO%qp?xQ zZuz;ucv*G_%O?MYTOgZgLUsy=f2+c$QLF&0;&M`}ZU?^aBKLKJ@YIsz_z1M#aBrYq zL3v+``~M*Sh4)Y!WDQMP+R(IQDSfXRT)e!cZW-!m2a__BV7NZGG>Dhc%Ny#0ZB2N+ z=l&X(CR@-}MbqwLT27Mvfp2|qbyI!&Qp0@@%N!j=c5cM+?7?C1Wy3+ z>tXlf83H#CU7dR80FUeHl?_XRj*da^;N5#pQ@6=>KXEJA``t$UL;Eijy=6ZUTv-W8 z)o7LjT)k;Y)o2G9NKf*iat|_PXp#?OMFujBK7`!~0ipw22IoP1S|C0Fa6dT_MEG4m zM;MskeraGLHgYqHt6|@EW_iWsIs8!R843~iB7cVYuH7o%a&ze8e zNRVin3NSukM6j%)Dp*}fmbBeJ+l$nY&hcuI4)v|l>N3ncNK^!-`KoIu4GK&vtMJue zF@X>Y&MK)1RQL_|JEYAfy=b(oSkcmq@3C7u>e`JQcY^tI(AdG4+gyq*62_c&MZ*g6 zQ1~v+Sm1^uHB43PHrHVthCheYT^!`bN>453;3C{y@LxEQgTE5N`2Gti8A`IHHQ2DG zsoikj?|Kd22T;o5(-M3&(N?vzgf&Bu&*;B!tstM#e<3&Lnfw=i zQ$#+K|H5YlwU_@w?rw4X7jjDf75|0J==5CqO2I-@f4Ur4UK`ue+|&*g4)-ths2~*& zOoJU{4AgMH>v~@dE{|8>mp84TG4v~m?eC@ea(P2L79XPH3ncfiT|699QZJy-x(kzF_YWBm!~y0bf=I>*)AaN#=yFoYcew|c zKgDO5%57oPtdbTztE5HGDrsiatdeFf5+#+hO03($jd&d%$8Dip7-QTPGJd?bsd;5b zyS=WUhB8gAp?uIlSdOWwZDnm8=Ahvw&G4?Q$uicG+7&Bm4R@A#k=O|odc{H?Z0^96 zd66l0hgs-AwE9COr@6&}F7t{ClWY4}le1IFShcF>N_35vzGe!N$;GC&rj};IoiFn^ z&x^#Oa(}6$EM!qp`JW{7zew~8Y*=UsonmegH5boq;Vps^&ut+st5()F(+jhVv=I!# ziYWC8)ZaAo>xgD$?Sc!!7~*tE>~i=g#7=XD`8^TmxC1TR7BV`y4Q$7VP!q(((`1~s)pbSGBWGFK}I|5 z@~)^|LtF1!hhxGUWu-jBRBXPT)c=0Bg*3>mte?43Z=d_W4P~>6?2Q_<>wG0fz5E=CCj~yqhU+87;U+ROu7 zbJ05=FmDw|xGh9V2HX~&5MhVg!i%uiv$CSy7KQ{aj@!bpAp95H7Sf6p*KOesFuBqW zxUsdNK|EGsf~8`8;M$IiV;he3r>Pxdsja=Kxwc)b2p_t}%57J}ij^3VEgkK&uq~ER zKXR1_a(uUi95oXQJuTL5&pF6IA9^aInOr{n^w|xV{$$wgp+|Y~j88MHz>?d-!w3wf zho(NXu2An%0%%#K4j{thw(uijC9HlRiE>*=J)z%TkQ2vp2E|FLk(kRNPe1y2IWbR` zI|<7ymLS?537yf7l}6(DMc}~xKM6Xq!j?Lbjl>Cz&OjDUAqz6~xDE=b^YyEybS|BN z?~&0eaHQB$M|&Xgg>mAfYXq9S(yaool7+Q;CD!HU_STl=q)D6NzTc#N%d(1WSuqX@ z@6qxOION51P)OaL<&`UWwBHjOFwR`XJ}oR2%$&LC58U(RU`cYQ|H_Z>6W7UVS2X8$ z_KDZaR**!RgVcBViR)FHIE1P%?-MsLFY~PTgGiGA*V-ITEY=O;+q%|ffSGH}K9ONJh%|Swm@B0iobsZZTqV5} z{uMWfU(te(&4+^q7aSnwckB(9tz3Q8UBw^~R%H;6QGv7nAsB1$heh}&5X zkD}F_7P&#Z81dX58o_5(y7#yqK#<)a3J80PeXbt?XNc1gg2Z^1ZV;bUVRC~=Pf8g# z;^_eLh>&j5LzTc}(69&kErF)TbVh&1=ud!ldjFN#Wy{QNGO?WB2A$j>j>LHS?{kCrB2q~=X$BPS zpFyc1n+3R~o69tsik2aQveN11_EZWsnshmKG+V|mddFG~PVR9uw{jd}f~fx#qG~*M zqt8GvHsDXLyXhuP2OM(|=nzO$E)-1)OrqBbAgu!;-K2?^(KK!|=+PFmI|Pj;UYiE= z_kkcch%e%$^uOF7^5N~j+#vqT4PseIu&TuOFE@yO<6mwN|K$d;#CS@s4#gFf^Q%gy z!ztO*5;M1?s=BnI+;|3I@{gA{v8WX9qJG(wUj@nj;V_^7(55b7mEl`%25IORp#~UUyRenRlB^7>@VsUcQ|8sg|8tX07l$|1uR+xq z=3C+bmx4`jYQ`bsJbZl9gmWHSUX@Ava&c|PC*A70Y9w4Xi6p8-5^sQzEt0w1q@z36 z>YNc&Bh4*_IZvc?CFG1~rn*2u7)59JBgk$Yz05cdKFk{MA&TfD zD`Bc(1>T?Hy_WffY3`D>`mUSnmW&~P4gp-dUx?am2ToMfX;JE-eb}~-k=cqkW`gT> zbc!5N`)(K2eiaz-`68VjnQy{-m=t{;#L(3N^5`6u#G5YaBl{`Jc@CR@y2qY$ndIe< zu1DpaOy6Fw1)LNDa`6H>N95;yk)O2)8|STr8%a^>wuW|`o|-xEnk9uiOboal#C;gX z5*Ii}2+PN7V^QGI;$8By2o7IShY$1cC6vjy5$!7=k6{Z17(p#7JX2oeqKDTzfxGb6 zq9X8Nu1sqMYm+{M@j89Sx zk238cDuCB zi0$0nU^CxXgx`y3)cpKc1ht7zz+^zz!CO=X7ty;Y*kVK@;0>N(9;X-k7hR37#-j1R z5YO~uq@S}oH8shjX2Tq0nUym4>dVh{$g*#gYP3NXQW$Bun8U3enxHtHt!`sW1tk1_ZIOJ@E(9J0OS4$U|b5~ zT>Kz}epkvmO0wR`eGw>J<7t|7@v~oWM{=(jbJnMWc2N0B(4B#>Xz64-D zixxw=3}u~QOcd>l*CQRRXsDJ}vZ0x{*=z#QGzU|C#NoKaNZexH@)ubq8i`*vAN-3f z6O6>0%wvC%WxSCXHvjM!SuQpbZ#L6M|E27XGZG`_B%1|((J-AGccUUr^N#}u;8!dO zn5@mQ9c`^+mp3gQyQHpeZ0(BriQ_NA@LIC^;&Ch5R@IFiKL-ECHZ|8R@4$;xc&U>H zXzHj{u15E2Y+5pADFxcv>+2gD0YmE5_;#qFu2E8`#*qTEQ2?Ls%7FO9i(xb$9W9B= zddX#4{XFwdb(GG3=+ad;SWD(vLp<%d-??GRq(>%oSXb?V3%d3x4dYf`ZH?S!E!Z7; z%Clt3cFz?d>)Odh_^Tv;Y<&+eT-mXG<`ipSqibZEXZ|Z+?X(7Z8m(3B^V^PiazEQ? zt?|sWk|tZL#%y0YhXKz}Yp&-;E7P;v`qGDJ?)-%t@B>~y5~Qv zFL_?J25hsgZS2}Rzkb!$E3FRCWY0%Stgmi>6S}XPt_#gAfAHjP-*m&}Q#_Myw+3%( z*tPTPKeC!$-nnz9mG%v*{l);-pAc)Ck&x7x>S|EkYgGr6Oq!CbBO*FT!vL<^PfAsYBB}=U*Hte1sdUmfTw_#^P-fLE0PwM=TmE@UMdfhXx zc+yrKnQ1k?>>1=4G}CJM#@@ZwMV@wRtp^VB{&X!o(=GH={^sa&NAL7h-E`p2pWpfO zo2{gGp1O4EuCHHaZQtCy?S3szfc zyRGGut+d86YZ2-XwYk~T^D%1V#wDKB|6adyr)TWU2PWO-8UCNXrRZ^!CRl45t^Q+P z^StNz(Ws8cuk!2=cdPHb>9e-`tgE(J=S}wHdA8&idTz(xS4ym^$@9_C_FA>uto%mn zbqhV{Ki1s{pmAx)dgA)ScdveRi)->APu>+%thO0e%5H0~>*blZtzO`nuzmZE2du`! z9rt{7(Zf$$k6m}zs&bM{OF5gqygcftf|Z>mIp@bNBHkCVKn3y#o@w11)bd+~O7b z1_q`Nd}y%O>g(k-J6noU+oTds#yFE3LABQzC*z%oPi<+oNIs-p1}AxC@RBDm<0W40 zR(@}%Yr6py4)WkH503Mc13;BuwVil9DxU3zPw|oGR=Ske4R(8I!8c$4jsgwsj!-SY zAvg1*J_8Q7d%Ya)1%wyA=>r!rGk(?dNCwIkEO(xutxi#JqKpAtx`O4-i1;!U+}GyI zQLrou@d?c>V!?_nF5vPNESGFUcso%6Je!CM$is#TsNMtQLwGS6|H4u&F4%cj;CNXa z`0!BRRE?@q;3|!pqrh74{`i~{7j}iNyoY>R<<;UCRuU&odnZlJD5h0EK1Y$ zB-UEGfcm8br)b&1SlK~lw||xFY%RMwR(7?LJx=F&@S3g2@3n0 zTw2uxs))$6s@%V?X!B$#8|5AT_!PKVqpB2myGG4c;8!)O>UjyOB0!b`#d|)GFK+IPgN=K z6U{YSfg^M`t5#r8qpDQ%thP}K+^$ix6{z|t@}%q%xUiWnS(fQo)v>W+@~yU8`(-T3w}KDYxD*8+v~lSQe$vKeD)?y|m!n{H0EK!u z+PfMIm62b`h^Tf2_LX}e^r!(6%(hVq9HmiJ3cOjPsuj3fqpB3BvK6Pp7RckQBps_J zHU}|Fq>437#x{-l3Y?`;^At#jgLHvQftxgHo&uE*6>ycv%#a2ON32nxDkY|WrrEzL zQ{U3EtDchJSz1t>nya!!Fr+rx`(-TAVc5EusZXLJ0es9AIXU52?`t{ zcfM$s!_?=v0|ECJz0E9Zp*1+6s!&- z;}%#&JSZcgzzTe$A6Ggu`5Or;QE~FEo>`Q0Y|4RxuSjM|z@;d7fsIR7@Io7xso*PZ zT#kYpY+SB_m)p2}1*-#0l>9j7!11dx+$tlYsHFde%Ba_} zXDjfOmR+M{Pu8+)Vr9oPb%&Hm?q29JjfF~3p%%0-R#41F_1P2_kgWyHT`Iv=8+Drm zKetgTxv4t2n62|tde~?Sm6c`zd);!lyJ~M~$6E&Cfs$pEr>oxXxEv0x9B=RpdhteY z#N@kY`_(7A!BQ%r!kbr{R{C)|1rx8J>!1e3?z~6?p|-Ulh>yqlHT$R79Z~;CFv$5D zLpNYyU}(FBuI#UH?Hbyxp(ix-o`zg_Su|QmUZA0s8v2HYzOSLTHS`A!4aboaOBt`B zpoXr|(7$QuAr1XZL%-9|Ip}*VZ;XaawDSm&)2V>)(K2ddJo+Z{RcdIZhPG*l{6H|@ z3iPV;McgfbMhfVwfN})%AAm51A^A~27_Wd10U9MB+M?3r${x&UUFQ8bLo~_L*;zk> zT!&`~h-~IFGz?Fi3|)rt$q+f_W9VLpX6RuJ(axB0&ueG}whD|prJ+7Zo^fYsXoQAN zp#GTpC)654v_dd62va3P!!ivLN$`3T|Ne#WDp;HujV0ftp>3M_H9(x&H#M$Hldy8&@OcvwSwG~YoDJ)@zw0CC)3 z1LC-!Yn*G8q7Kr~IU33V#JSJY(4`u>PxMEc&FJcfzXbeKkVixPHAG7;^Imxcc+7Z1C=SRA@4|mc7Rm_v!|D#$F&z{jAP;us? zaF-ZykQ3t}C&WXJkB7WC9&#Lz^-Zf_^`N7UJZ(KoMe%{1_ zaTh!MW3jI+;Uz0CFMnJ?CSBwui^dn;d5>bhgS1{bXE~yE;g9UbI*f7w2^fBgMdE|r>BjMXH3?;)od{iAbja)F{c0&_%fJ_X zr4-p-PJABn?l4%`;XYj%*mzy0(c$eb&aOukSi%*aTM7*z4ilm~M5{Pmind9Fddss; zS5^kPi#XTN-v~gUyls$>!=1w=j2m4u#oH@6bU=m29Yrc<7&EOrA^rVUT7L|&>T+0VZ3fOVJ=*SR-O^gv3-q{! zl~eIU7E)dGS#c2NPhb27@q5@FD}fUu*zI|fgdC8)vZ3D){Df9b4} za-lqy@V!3^4B3EX`>gvQ*X^O*JX>v5_E~=_@Vhl$*=K!E;13AAvd>DBQ=iL$BHt$- z`re_Jeb(W?yFDM;k(7PbO9g?VaX~9n-4ig;hHPPOGhRK@e73-y~_$YAeBzA}kCZZiWoEryaio#cos*rFp?j_u=1x1XC+`ICVcgTO?>CF_Ynb zhI%fnB_*}AHsMoroX;z^j0yfmZ>ufmex+Z{YP0ND=8A?-c0>o33o&HN|P*l>=uo z@OmZULdNf2Wf`S4fs(3Vc|~~%W!=xgiYk9eRf*p)HD+2hCN{Da%M7zB{3V9_qkAAj z*%9n*EVdrc%c=ORpUlDj7F#0>^;Bsrc3G0B_d&E%0+sCF!&vN~Y7TP0NFPMIRZzKe z^P4jS-xYm5TPDkvVaYb>eKHwJ(qSz2UD%qSlzSVC{X*b9sZz60o00vli({mu;=Ra< z+V-HPJmeaL(=D`jDhwz!vSL+=81bdI>*Lt$w`Pvy?dwr-UPzQ$z!-*7DCAcV`^=EJ?wSLf~eT9%h-3Csf|sou(le-Ww_sv@pnn-y~sb4WE=;$ zJ=E0P4bZ?&W3klGsW7|MQWw<5Vu#@5j#`A#%WGT7dhfXwqdkgST74a6T_)I5B!02P zpJ&wzJT*pKW3f8~IWwB9Vvn*82yza{(2>O6NSK-xvQh7O7WaYN)Y>{>$t%hb?KtZ_ z5jj7KszhI6opmmiuP{{@XIt6Qf(D*!ad!)(;@qH7*kuzomEBWhN|mW(jZjuzdrPpR z4RzwTsQF!4^8}Hrt8OW_VupLVBrQbce~hukm9O3bYGbi9uu^TTZ7f!e3h~a;VJwyt z^rQ;BHWtg+{;9N3_cj*GojfHq>is6H#xg#Q=0@~^wBA-@&qvPOp7$|*fK=Z=l7(3^ zF{=+WO9Xi)eg}(Q?ck78`%0I4pm`O}7DxH9*>@49yg<=n8%~1n8(!= zliJo=2V+*|op|2_qhhH|D`03^t$_PYxgJZjTK^76{CF{z_0|Tx>Y$XH&x1M2@amH$ ztsF2MOY;#X5Qk0KrzNQ{6>orHCl*r#)+dvfBELjRNITzF6rhQ`y`f zR#8zH!~KFR`@GcF+SS5h9T^5R+{Yw-ek$2qhlcCY78u(9sYwfuD{EnDeM_*hwz&?5 zJy(h?112oP{gRBdh{$4lfl=Sm0-ax?zAUM=slw|3jXF_KRL!fBv^cfCseLK5OxalH z>n5#HuB`gh_SG$Xw5FnBev)yProzl&6BMVZW}wp@Y-!YTe0IkjEJSfAymgq)k}vW+ffI} zsP|DO8ybWBa5B{OU5r5(vNgHyIE)F8bk$=Lu(BRA(NlX{8otogE{LyEwe%*AlEhPp z*~@zJIGMvcU1H9|BLNvg9`B<0#>(2|O2s!Di)%5LH#K9PzQo1PM)$e&Tx%Pg&6mV) zyHaag(YfXBpg^MUS7>A&W{xMhNFB?{`i=t)`>c~CdapvGG;jbgMWUZ}VIAYoM(`Bg z&?=m6T;`%FLRgb+!_a0sz0&-tU#5QCl`8R9JMH&QbJ51w%KC*ON1OMZF3E4ZF!Y?} zeFKv4OINDHyl<(C9!9OKcU-9s^S(1A_E)Y{%3ic_-;qpbQ##Dioc4jQbKNhJdd5nHB?tEg$@wvY7#b>g%1ZU&u}THMKoHv^72KG> z2}%bjAyruksZlQy4EHA29+4O<^rCixl)`4oye%QMqZzw7^?Yc!Ba(7^0@_^I>u_&# z<>2cOGT;joEM>U2yV?a}SAv*s4EJrW{`ly}%DOKh6_z8=b9T6{6o`iscoM8@N5*e= zW#C0LCLNN)7KOj!Iw4S930N#()O95cTYuG+i+9FW)?vgY>z(d9Tpa>&G+_`;8SXn> z&xr7=NM4&E{+cTT4+*ev45Yo>-R1gMQ_ z6T^|V^CK8=uTBy*{saZt@kyir6(<|Z40jGSl-@5b2jab&>y}o zPb-odTAI)?YwMOa)EkNa#@OM=d!5d^T%c&qg5`-EH_sq4gVDsq{hTIcU(awz?T~6P zfmV9}IVB|?9x9qMC5aYTGM$z9EaxL#Vx}31&oL%L9FeJ!L_0Mj@p&31bog1{gu=l* zMtx9>ZX@w1?JQtQ3B@7HMBEh0!Z7s@Do~1?{?!63Q z-QMRq0vu0`1c|8;CY#>`@--E%FfvR!IT+%_gE{08A;YAj4S^X#9R}!=0!@cyj6TI^ z7ZAt;e$UDl;DrQI0&dR)0_hMnLu7ZzXinf#pwAJHS+pQ1Y#HDTlhy%&8A8Vskg-@Z z(<;CunWMEpq+RVe#bN(6gRKWZfIV9L4viwq8O1PVEI!@gSZ7(k6tQ~jSdy$`og)qy z=tRq|m?5+dA~6HlbHq~@ooqSi^sqIAe!!F|m_}j&r(>=&FqH_V+mQ`A>~b(s*A|Yb?^mItaUCd5t*)oSvIuLwVa8hRJ=!-cinOM#b!O4z*!K1 zMF>%)K)4*UpsYaAKNH`$5mdM5Cj4fYG&yoq+V~AAM0`$3u3pCA4j249vKQi7Qz;G_x)~a2MH_V24F4c{=XnUisDnMgX+$oZs9EsOm=3R?^{FudZ5)KbIR>r?SK|CL=zJ0Zm=1+0SIuMKvtGm=;%WKFlTJ+9>bT zYv}S1%oTS<-z7q*dU;oL8Pp$Gl0qYzL|h(uCxu1@tNa4T2}mC24U4O2KLb#mj(-cbkkCNAxa9`j)(tXa%dG6i>8@_dOXej_5j&Xa77~SIS z0?$Y^^~jeEJh{*;!t|IqgC+(C$uagxI5jFKqxueE4MXLgL-uc!I+!}gqi0_6z`?3y z>Mf2Dqb`Pxx17m1Do0x0M0oLprZ&Ua@ghxn0PJVX#4ldjq4QIJV`u>&DD8kszJRe> z0eVhDIbdSkB^n~lbH>flPy|yO9*bhO#hEFkc0p4;i{!Ll@&QiE;ZhGyp@2 zakDjayN2%7&_^1Yik&FOI3Ep$ETX()G&B(q9=}n_%K$N7sm3kWeC--qr>UC(ag19v z?h(zmPeV^?>a&12#w!|^n5l9#P(x<{;#{2rh+~YZG#Uz%QMA`(0Ty9K`+ zqcAjw?9v$LcefZ3HZn<`e$9mT>BNUIJ9N zmf4NpSW$0C9%?OU4&XO>(jf8)`oTpM%cQSsW3P`SinR-tAQa1{^hWST7IJd&%hQyM zDsJ=zDqR?;;8`kQ=MU}M{u$q!V-A)ddGquvHJ#=1J*_{o?!~una|`ovIZKV!r-od~u$QkFcJhNg?XO z7udbNIR9ZDzUEFfjC&U|<9Eaje7(Lnp8|RRiRr4ciTSwGr4%{!ZHQ8cA^6U8!?;57 z^(UOMsId2!>Bk`;yUZ|-Nj@wj#91_U0@tJn;)nEm6UtRc-DAH@{}?3qRX8R_ThOKQ zH#W|f>7Rk`G0Df{DfY|sOb{*zvMl?T>Msv9W?$b0SSs7r#-|tPj_Lu2o*6)5wjFAOA)ga36?7Igx0FxRL{S>w(&?tlCvb&}gsk4>iyO@@ABLAKAJsi- zhlOyy;#O*O`69*n;o^m%6K3dC-{dcUAE{A`<{eYz52whs3>`o}I&*UdLS2grsuyl} zo-`R^>W}&v^$$@PL;U{r9wH@0_b@8&e?t$W=brAuMVNqOzbOLL^X#8apXTIM0UXJ5 z%m3p$fatcOS^tKvz?H2BF6|;C)eFTix4H|3Jx>r%r$mYuZthCHHS^D>PxlN#sqFEK z`6je>vU}B8JW=Cw2?wI zRnTnI(~3~zw!C8^(13uLul7*m3sjY$(|lKwcP#XILLhv2gKzV(uy=i0Y51wUE?>AP zA=G7-h7KeY9PRjhw~wa{pO_&6oxW^;*f-Q4F3luqdc69>l?guTtFo6lryPH{5D@~1 z(3R~gIM(r^FZ3IeV$baKAM1;<-EeT*<#Pk!=cmf3 zc`IpHc1~VkqPJ|#LB|MeKGN=)^y6HB>+?dVllE}6PV*$sdLr6P7 zcdT^(ao6dTKzM&3yoF+i{)l;aD@_sMAE)3qdGka{X#FB2c@-d^SP)9`xAcvPJR zI&XSJ&_vaC7bQ?0Q08tu-BW=$neHNPh9a(_PUw@#u9_{1Ta>^zwNQwv=pAQycOfaS zAUDg!ZR0isWOP7S2hv147I8c3=%VF2w-GmTDLFZw;uP)2nd9zt#TU8)1Wi{!Y$HJ? z3+t76MrKlasLEaimL)kub{tWA478gZpWzoVL~{cX7isyml}1wXP6xs%rIAWcAYAG3 zB|lo3a#LkWX=h~$;6h9yU8dPxih1ON&grM8oJK}gWdtILW#O{yObkfudFXNKbV^x- z5Rramb=_s*rvjn`t|Bq&EK9aoYN5GYAddIhy z>czKb*yfY7eaT;WGVe&q@L!7l?vIoh{^SR{eW9*#{&1IX|EXcVPk*!jbGQG31DlVn zAAiH=r#E0y$}b7Ox`&{WOZvn`n$jz#E7lW*`D_81jLGke^R7a!6t>g!sdU!Y`cI{PF42 zXpuvZK@kuOEa3x)lHb!rIaK*m8lit-a~%j>w-nRSVl)vC`8~Atq@8s!58C1~(W{H+ zd4NB0HPuSzj$MGuItQ32EQ&jRnLF-d;xCx^fh4}j z#KTN16gT$=xKYeU1+f}y&Z~zu9tYAmw2^4$p^Y?+xG{5^0gRTnL)XpoKs%P!BD%Um zv>wrQC`6gTZ8+b~qucsEhe8CHheBD5ra8@|qK9$_fvY<-T0^-S8ZV(kp#ngNe<|N4 z5x%iIG?{_~kP%@Ms{vMlp2AP5jf-C#3+v?w&F3E3-&X!T-_8MvjaK1AhArhU7lw|8rFwYr@N;8fSlq5+Z#Kry4 zJL#Bjypw`6C%f|O9O6?$AzjwRC3Y23V)=FumH~72pZqV$p_{$ zTrpbGe2Dh z;natworKVb?j~tcADUoDa_B?9A~0T--Af;uXhOEshyJw+_tJ;%1fKMv`(r#i6`!G8 zv*BIjnex7w^1hKn|I&e8j_(eY2F<;9p-a26{+H@NQ=9kJfhN1E(D1|eI@CMQr~`e9 zx=ptGiJQPKTvfWexPQprvY!a9tb`=`2LAw)(vs-=co|4fqVMkyGG%BIeSI$jnMNPN z-U$Js1LIpM@n%~n`>;B}lVd?-CFg-qa_)nPKRHUtS%e%)&LS+7oCPG6oCVBE&JrD8 z$@vkahIEdXiF6!F&dE+CXAYc6$$2Q^rigMtEn)?UV8)MEZ z6_bCC$36O1J(Gr@+gy)j3W~|8_i~UMD?N2C2ZOlbE7;T`4pJ?`lc-GA)($4cWJ-pT zbSNf&j8_zta&N`terFTj zQcS*IWM{NDzGAW$Uj)ZhOyb2sRvm`n}r?WLIfo~T8I){4oD_9$+tfIQ6d;@}aTL*f@p{CUF*yCCO)99J=!n={uNUorW|B65BdRf)dDA_WyFCVQh4lexPEyfKQ& zoKmItFDWJq;u#f_m!Q*g<*ScZv|=(1EU%5V6_Ytt(8zIbtYR|bdn+b;N%iRripkzH zD<;2#J}{`aV)ECJGq-0E`VEsDYRLo4M+I>oe)%g_N*80UP0cR(F82WQHGD(E(@UBd z_j-CsGoz-LwCL$2&5W8}(xi5&oLaOy1ZJWn>5|#i2j6Jx@1P!O2u4>zQ^T- zyX~eGtd(6alqoNlw0m9NSWU}$lK4%RSL=dnW9TCKe97@Gl(d6X8t}zcPN-I zFlo`ZvUVf)F&eFlMHhn>u#+fs7@!?LpyLgQl6js)gEXop>5D(+=3=|)*8&oH%@UTa8FkAfOsuXVHJ_^Hj& zORsf{rFD_KXavCKs%%zlJ~gF+e=;bcJr9%vnO2MXm!;)q==g=BJ@&M zy;BlzvAn(1Rqv81ZR2Q8b=AAgw?$I7TVC2K@06VT5X6M1f?bxEw#zE`B!bv5tKeao zpj21AN6L7{^7c|!z1RFuBzDyDDs|OwO6FHBG#D$T-e*Q|C}U+ECln3UZ=0_O#0d*6 z-T)>2`^}MfUkUAH3lmvGqv8IJ$$IUlC<^PJ?lyz?m;?3!61;Uv@5udtdA~qHUluK3 zxW8*!*ydr%Nboiah13VlfI!@t;MH2I51HQ(xLpaDSI7^2P)?^0o8J z_E3Uc^l71jQKfcF;9}j+k&700aJjuDjWWaiJJ)wHztTb}_9p0!N`3SLr9O%!s0rV* z+AH{K7+O?;Mm9YBZ zWTjFz&2)25h*CCXmBX=IQ0RWrwn%*D3-hLlxs3Moy9NRi^JHx#Vd-K|6E^2~epX2* zO;oWZXSov?oq>$~2^o`lild0iU9w*zrE_TmzOO}FA)hV6Iu5IWPP#>)Nk4Nty04N& zJvdt7lY2AEDzarY^wRe%-lyfg>5$i3u{A{w29{T@CnXch`6TEAq19M~ z@s!+KtC0~=T8)fyYBf5T&ZyN$I@IYV&48l)GblA=vj(?xbBjh((K19(Ryy6>o@IiK zCS8sl&6e?c?^w5ilY1P^tsIA#AnJe+MU#g^ln_8ksUH8P;G$W=j?7i3Ss}}!!RZ+H ztmC+(5NNk&8h+DFng>_}Ex#EeCLGIa zf~9^V!GW);s0>zDmJ}Oq8%am1#T6w`|Bu2|mtIj~^l_j>To}hKD=nXHcx*xdc?j0{ zipolizBabB974+~s;Vn}(9BJ;2{WAdem1_WqFLUUE`}MF$OykRdZ0WBBN*7=((j;HFJDrL0@q(vSFMpDcp>LIh|2R2C?U$vC92M zhQvt=N97eYrO25vM51+T7gx+FuQAS1=yF+m=x7{aC{z5t;$UgHzhs_qu8o-ME1Oed zd`Th#=sJR9m_*E0h)hP5%&M%JA7s`v%>*5GW_hB8t{wSpAnFpd!)g>h}je}7r?s!is-2Y+kP2i&{vi9M7 z`zE0wND>wa4oZXoVNW1H0s+&|flktatPl`LAP@oq!7N1fCE(DuQQSuzMI9GZlySzv zeO^EXT*h%walr)@6=Za9N5_%xIaPJ)_7;~}-g*Du&kMQtsi#hz+Uu@;4hD%gx3m=F zPIT*&ipMHEY4X%b6$P&1{G4KAucCQ!k1Lyq-y_IEPR(_rC-vamujujuHCLVrAY|rG zgQ2s-_{oLSigPD=N{wd}!;9gw2$vR*uSgp)F1J*Uk`m)jigdXrkIONh<4|E?s_|z# zkd|&duR>S_jK45OE(aJFl^QQFF3vSxR5%Ak9`Bu8l4HCSz)Z#hWgKJzqv>UZX;7kg zCB`d?pl5Bys{sKz-IaRE3dT)x<$A^1_gY|VPI;*^&3-75)+vnF6^(g0p1a}=#TB}W z3%poinSWF9VmxE1D>2>*WGaSLOp>Q7<8Tnq?At+XNsd=8V(%y#=NjtbX;{}w>D=-z z^RPj2MB$Qx$&)b@cma5iX$;@@Z7fy;aqc!g&}=S#^C!EUrphrJ2S|Syz@ql9f)eAn zqSUMqefQTOPW0YKOi^D{Y|*6*=gczbm4ktfUmDsgh}v z#v9)%4n0{>l2cTM>#SUt*Z7B`>C944Hr^vk^Bq{4&0beYDUPB}r|_#iVdzXgyEhGo zc$Q{P?G3XSt8onph90h+Iay-5xI7CFC{5EL;XDoTV3JuplvJ=s)dIte60$0z+2Rqh zVSZxDoc^G5`a}?CQHoE*Gdq#drwSq?1t}wj$VfsXslEZrcBgku z>~==)K7CXA^-mu@Vq`|Kg3no$d*IdgIeR`i@BbTs3>^r zpn95)Ca!0Y>K)&_0G=YF1z`@-EDgfD?ZU>PTgPH zot~WjcJEK9vZAg(uBsdUsk-W_>Y5r|_VKe>8b9I|FV^T%0xV)|B%a?={|T9!jV?`E zhEOkQ)CDgG7cIa;WlUJShna7fE5!s6LkzoY1~?u@s$?Y(IhwE;6x~~DB71Y<`I~%< zZr)&;*%Xa!zWA+$fit;b%*0EQK4K2tVA3QSjN#ljI32x>9gbS2(9=zNl4EWaFEdXF z4)ggYQO3W}@32(n7+AAmqAsWat4(vM%J^e-{2WPc)dg5B3NVo3`iWHwQ&}xso#euG zLZw?94H<0rB0RG{Dj?RfPGT*4A6$R2o^=unlUX!?mJ}5zA3&>@3QS9()#!8~wh}4_ z(j9ZQ(oOo!UXDT8z3~a`aN6~!T@TuIqFo#82B$)5NIuYw(UgGeU%x3IBylMSUpvcZPIqTEP2 z%kkY0Clv+dBwHxQO2=>v!5>qNC}_%n%N7;Hb2xg17wxP^@-FnE zKU10QLJO$Ee2y@VL;D?1qjCvJpTZ98{fw#5jS5_j}PXuY6h~N|vq+e2r;A#Ru12wibQwPFojJE~Eo4`2yu9-6!Sgf`a9Z zOoSZ9bqN2acyj73<6!Iks_`l{WbExz^;t))~(2p2lUlj$WPczixgb_Vrt> z(;b6MtM*8Qm<|-vcx3)#FJC&wdG|F|@sWwpHrUb6w5B!$$seE4c!90gI*SrEH8^^9 zwys<2+>mc|u728MEh=}qskC)@=UTDlR%70|mDUA$O~Z1m^KY~|ms^YStSik1D>l!% zAj^%vv_V4}bMJlClV4=b+3(4(X>82Tx0dHwNn5N+v2Qo{)*ROmXTepMS?$Z6W14fv zjGphjD6_G~>iVg5{aWYtQDcy(u@Q-CB0}pUBhR`jNDyN@&vJkIS8IT?qjl}tPZ8cQ z@!U+S`k-~oTIb*#s9RRQ)cV+Hu&!8})d-h04bV`HOjhJQMVS$B3eZ?9f*(TSnzc7l z%EqN4f+WU>xYrSPa8>y;7h21*tagK~WzNA?$Gp3zZ*^{T_S$MK-e8?r<47@`g-Eh! zh|_z;SZAkkRaJ}DI`7T@>?Uh@)@|1E@=eq0zrM#>yxn<~wa0KC@s65)*Rp}rJ!7Xk zZ?ck|SqE#H8gCeqYkg-Nyl_4=#cn@j#s`$3jT)SZw&tEyhnd@ZpBwK23=f@ z!e18tM&gfnI?IqAPMZmwgFm`yrT7H=;aQY%CjLn8RQwg>1qkMhdKUlIOjNj@KcGw_G=iQp&UNO~#Va{OI@zj^rc;E&|!KZ5Y z$5;vNNq<6gl)FO;o>-0VkeXn{$h4G{+d)hsge!@}=I&7FLD33P!dxmD%kh;ijc3|W z@H{jaT1$pmj;~kmQsoIXR?BjHiFd9{PWcuE>Ql54r2rW}Wt?quvQt?&;7IENZKhGo zkS-BvGmS!qTpCC*>?egtiXk5%)nCP)qos-&@(~GDq&{RTq`xV@)ju=G@$)pi&C?~`9nkr<- z<)zxF*xPL>hFk?my{Kxz=+BSUxW`2kbf1;VL19CBxe_Rk}?+xVEBc*Hg(@1QqVCWlVdI@Ie-9`T>O00S*jzm0mu)VQ z@gbW_VoX0!r49O07{6z8sf_sndBi^E!o{d7Q1mgwU79M{t01e2a9zWSK2asWRAAUq zD=K9;MN>tr`>>`;86MSC*n|kruAH-T>r_)1avr8p&d{#P6xodSK3w-S*1bpTE(=%G zYR_|OhjCdF;}KfZ42GV6%(rk6$0{dGQwcFv85U_OY=PiZNm`_c;S^1U zoi;gDS1nR5Tif1Os;If@NcCXMFIys>?m6Kyt-F}v#hMDM2d7%8MT#y_kaLT06%?MT zoE7|1D+;UqO)BbUb)>2>-ez<0jQPzE3^G3K{05yuTDT&=S!W_Yuv!rGftHE5Brk$eI*l(!6IO8x2-ZyD)zqK@Ntee@ns zllq+=y}J`Emy2I}QHRn)AX#U1F-0Uc?g1IH_u1;Qk*~QMRhTdCZApoKvV6!@TBW)Y ztWn1>{XbEjziQym6!`M;Yo(vBK>2%w(EKi=2+fzv6)Ml4FYxyWeBu0IE9GrXjz3HY)o=eq(ZDZ<;JtPZ z`|1wyr9Yf%1V{6!g8V$Pq%B5>WkNqXrMx!$| zO4ewUMlOw}YBWousaT_=zF%rYmtvotqcqg;*3HChQIwKQww*RfXuNqt*2_lTBzT%%`n?2AA$#ao&? zqPf#?#*roM0VMP73xtymYFVJs6fL(>%Qb7{*RfXusq$&=R?Y3u+#Zeg>DU9BI|L-l z@-C1p%V`4`oem_+d^V7j>!;CFjVd%+1SC^5X>P4X_h|G7jrIV^6o1m(OBz`NIp0`~ z5`kojUYZ*KBuhVCb8|FzndYw5+*K{YcyV?sTy4lB>Uq!jc(DgcLPbyf6(018ojO2`&#aV=DyI} zDb4)?7dNte12mciBuh}O(Gnfo1SCtaUUL^}Zj0uw(%e?fJq#o@@6qUK9s2^1)cl6# zPH6Onjy&q$vo%)&BvYKL(ISl+G-?K-^MYwyuF=gJ{Z^y@ z(dapi-q7f;8YSQ|SLWMIqqBizN&5pq6eUg9T&Cv6Yi>D^EY+PF-GOvcGk`!*;=LMi zQQ}%hqV_sAUL%|gR0@)ja`f&~q9lzdPsvevCBoDSNYMu&>7$KeP4Na(a@k7G6mPgC zSEIR&K$6?6xmz{2O>-}5?iJ0ExqX?|2_*A%YtExN@)98BmTHdPqDbynntN1pyEGSr z+>-Do{l!Vd?FTP=WIqG3w0(C9@9$0aj8!E`wO^r*CUiNVJJPlVWH$bUj1agDdwTm} zGk*j_Zxx7QA#T*c6}uhdMo#FnR~z_;m>BCK!`pxw3*itdOL{u0wMZT(UysW z)@+p5W>UbM2x7*8q5Dx;_izt;bn}&f6!!M-^srZs+-XCX!OI+Z7YpC`^(#6NGITq9 zcbE`)s-%rZqh*p;F*HQL7U)k*w1%0DENR9EZ)=nuCuqw&3?;av3)%ci1_K5%CJpwm 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
In;Yj-Ez8FX^9GDL1@;_l6 z&Mf8=b_H0v;f+e}IplM>aMGuB;rKlZN65@txUWZAf)KkQ;AJ>BB>z*b!0g}=t@|Ia zgFm$(n=ac9{vp_2<95K6Xb1l>?j^E=A95P+X1X)}6+8IEdqvZd*}-R^+{fs4j=5kL z9%l#t+!#%J4oX!D{Yn@=_~Pu~FG3w|8mDRhS;Pe*i3@yjcJOppX5m4_A;HJ>O|*l5 z4)=6jK9^;GLSCF5{HY+0$H(=;zFn1@#16g@e76cdK7~PEoE&>{vJM4gC?B1(kw*CkVs1G9}?00n-7hedGhbyh8JcK^{6q~eu55sjT z2`0xd7luuJF}~NU7|z7le0^w%?&Iw__%QWNyq1n|rcJW|sKO_gEh|H*Lu_hh&}qnMiNKs!Xm*Qd}=CiJojK5oYkOZ?{okypAF2G;HEIwugF z4%7W@u(0nvY9=ZZc|8z;`F5=(sxX~Zkhv3xaxkt6PjYM@RS>4zC!rQ(Mb66V-UvW> zAb@Q*)na^et_{ zF_50YO2B8$WM<#AME>Ju-*0n)G`6)PX5VOoBWB+->Akc6O|x%0DVR-l`26oT`)0Dc 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�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�er&_(7E6!fGoW1>459c#pG{xlfUI@6enzXF0 z<5`%|3nFWG_k%KzCgK@HSbqk{Y9Hn|3sae;@!# zZAN4MQBXj)6_PptRBuUq!Ehkt_X3~IUPRVPe0Bl`JkMaIfM@gPffbrMJJi+^o4;GY z*~<+-eH}VF@GF#M3sJ(F`GBVQflmc;&IC4EbOFDA++Hn24*G^F z!>9)dE1Shd3ajLA&_YspQ@eJ0BDPMRBSYbTZNy%?hOc6;-6H>V%0D~tXYc>R3nfI^ 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�&U5n2k_xL)-m>nq>nBwh^qAGjC@2r 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Ⓢ{LwDoTa`U{XbS|T?DR}Y#?2hwFbTDaqcn;_gI z;bsbVnsAkZmP>4>aF+pTtG*@ZT9NyK$lWE}PC?HL`V44->Uo(X+4>Pcn#&b#B9Jc8 zG$5VtY(XU=S1EE$!YvVQg>V}L(Wjrf)~*+HkDy-yXIF}R4#Jr^H|j)mI&7&a_0&<4@l>GiO6jg z?mq-wFR`}?cc*ao3-^Fk;lE;Wi0(nQ+$%x=YaABDYhx$AGlWPYHTY(5Hfig}A(< zfpm%!1mywgIw%miV&THV)eF}oT#IlkgzFY=lW>;__YL8$74Ami?hx()L3;%~Epq#W zdsVo1fppnE5fnI{%a#IUj=6Bh3O7!;lZ2Zt+$`bF5N@Gx%Y<7l+*;w*3wMcd-xPF% zpdX0bUBdlbxE(;cY!3_ijmSMOa<2&Y7eOP&a2@0cDizc%Xp^9C3fc*TW`rx`1A;z7 zSlfaj)l zaJd1_cRY~Jw?Vij;Wi0(sc?@8N4~{%+TjlC%LdXM-C^LAiF$DnZbVFM9DmukVIxns zEs$}y^9{7E5d0aqycb=Hz}xs&GAiOq?Ds+1Wo`fy!ar^UESQMxr}!s(T;?H!=!IZ6 z)$=5S`yQA1GZ=b}lo%8rn~i+v4M0~W6%4&^Dq4#rKCJzifGk2L{FxykSObr-% zKIF=rO){9GbeT>tH0h@quXkTWpvGw0WjL8B+dtFm_r;V6HdF}mBA>qg?J^^Sn>@(S z+)>CduIzUWLoLOz(^UPsvAC07ORF+zMjbCZ-y1FX`$i9{8hXfwFZIsY?WaZtl@A&6 z-|OFgX=La*x?`V!y&*iJzcv&O8Dz*FfARU-9~?x;?DeE};TuK|%{)8yAN(1C=kHli zcP1D4+*dJ? zLjO|V-A4J^rK^`?cF2S{rYrS1f5}j3U0d(TF?C7KxqTi+E?8%$!{e$2z^!X~uF9SH22ZFy74I|5D`}7Zs~8 zOW4t4e4L}Pa+RxSRWo{)P`k8HggGdppr;KEHDbKQle2cxG<^ zM!H)zLA zhTDytE;{4}`Aes3l3O7cyJgOWC%IrrbUR#?1$SnQE`;;KH{dJIhEK$)5GC){h&i-R z{NPbM{FG|(5=fA|4)u|46^{Ofs006`1RmvZL4~S+=<0g0HbM<;JT}`Pe$z zxa%_hw2m<@#7yv5Z!*_I*GNwyR3~{YQ*O+(8?xiPi8wDDxgqEvx-rFZ)ul#`f819W z4GO$@e06n!`$v3rT}$%+LSJ3KC;k5lUtRmqi`iG#$H;`1r!~I1UR6QYSC@`-y@N0dY9F5ryol zt6K4NrRDnSYC&korx5K1I3fdJkgqPf^-2sjx{26V7k%lO7^Gx}_tkY8Mp^dNwI@MU zH2dl*O`>3|udY`V=kwKd17#lHS68z-Tz+3&rpAqXq*z~FWXK?2T{XCvMbg*+iR-INCyMper7ey1)kU8=1#*18y0oa@SJ#`U1ShBOaK5@WLEGVd zb&=A)<*Q4lKD@6ko&LJR`RdZqHouQlPjOVdG? z)=zKY#H&<^XBysIjl!E3Jw~IZ6Yl{lynE5d3W1zZY&54n$=Rc#$0OSRgd5(!^x@1; z^IkWbOJ6txdsihch>2y@Gn|pQ?F-}-rny(+@DQe(TR1KDx*Wd3bWVry6-I~uFuuZc z6!{AK6&n3ve1%c3i|Z>)=ZZM;3Fh$?rnRE$#`p@;YVfin*=F?^cZJg%DveL=Po5fPkx8T zM6=T@+oaMhL9Oqcbfj}YrJ|?eCY6bnR3mH}1gZ7AHV?gATbKlPggpoG)C)ZEBR~zM z9jqRwgua3Rb&10Wl`EmEU(jb%B5XTRW2u< zsyvkIsme>bo-VRtX?8y~)TLcdRUXdksmeoZPgP#RzIv$|a1aDnq!Qstn9#2&s z!g#7OOk7V@Ixe24Do;$Trz#yW$WxUey`HLKD7Y(`sENaQs*+fbrz*pFJymIn9o6JZ zP-ALSp}n4}G#%@yN^^cs zRhsvDs`4-~o~pdO>#54idOTHW+V82#@XAw_#y(F~hE|@c1bci>y@tyKa!5vfbiZKo zRK+}8LGjpcz3ySfQHeS7*AD(ay?aPBGyxt=6s&2G(Ff;mF~M= z#8XuXt_%}{^RYjyr>X;pjPI#x2p(C|vI6j=>t}`aS2!YB=E_HymY@*seW>T#x8?pE+i}ifKA#X(xI8 zI?wBZNk=WRj@1Umc@SbRwDnXyyc!sD=s`gtUQtz#PVI$c(Hc;r)T`m3E;?P-cF! zQ13sJgezkcdY&lRbL<+Eq?uJ9>F^`DfO9D6#h^x+chBuP)B-SdVvR(MWzV7ez1;}1 zS)RvJ_5`~b5wuYq(MF3It`+SQNc$M*6YUd7dnx|4_6ekY1%g~-?h`G0hPwM?#eI;W zZ2-bMB!d~0!A?;(gVeoB>WOJKTmpLi7R{WyEslBIsPMLE~6YbN~Ug1C@ z>Ir>1?z-iJ-$>wrpd>vLDa^6JuMXk%TCtc{85Eyyc>OHWA75zVaVM{~!Rc!Z&-o0F zZ~i;+YyM7r-(lhnt)7Syrtjx4Nv1Zg3vg_fiE-XkN1$C!t%zm<+9XCS9rZ)D;a$ReyJj)5Gt$;~Oqc$>@la_4kkHZpN?XAxEtC-=LMnobj#gT@F$ z7cX(HS?Iz<(Q&RE=n_Gas8c+h$AwYnZ8||K#&bfZGq20(w>;>4sW|uKM`t*pv=kXT z5&zn3%s_fJE~$r7(0owm{kBZ4oPIoF6Rb|`HQER?MsZ&iL}$S){HG}25H!x}#pg6y zj4+Ca*e2AH=9&eq0HSM}6zg0ddV4g*B9Et9?p;Bjh@1muS}qMpryV6|mLPK7rnN)_ zEtl9eKw8T-iT$>q>qPDrk$Y5PpA__h$h|CbZwY7N&}jP-fpl&e!jUsmZQo=;GbMH| zkWNt{+}VO!BzBc>UjfqkzAor0iM;_x>$^?3JB7PXxaWYhmOlzQAhB-&X)PZK_nC0X z=peehpR40Y?SRhWprJD)+-%_rg`-xY<(h@tC|sX#R||KYaQ6wfUAPy8+b7&#g@a+H zl+<={p^lJ?Xe7~f5dZC4_i74)YNP%^n~hTP8uOZQ_kDn*S;;8+JJ{#PFh4-3FoyXr zglb}#JqR_&FwY^hCWbkHP@gdVw_Ud(E&>1U_RoCV^<$%!a)2X2)U|(0HmrWzm4?<+ zd_u#F3>_KArZ=qos(8u!WF2{=DWHO26%z z4;ekedbRO#^3;ADn_5=vre1Fp3a!P0?@M|q(Qw2pMLz$I*AUfPpX%K41>XkLuL+W{ g=PgCK`SiS#=zY`Ba~G&3+;f*3)+eriSD}yie>8|G+yDRo literal 0 HcmV?d00001 diff --git a/engine/libs/mingw64-libs/libpng.a b/engine/libs/mingw64-libs/libpng.a new file mode 100755 index 0000000000000000000000000000000000000000..2425f6588d0ccab1f5b8697f7876cc50d17f5119 GIT binary patch literal 297496 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%0A=t83A@*CQ1{UP&Bf|()z)?di` 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"y~)2NlzdA5(M}wqzY{O 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 PZYf7jmQ-Dz*8l$i)xGh? literal 0 HcmV?d00001 diff --git a/engine/libs/mingw64-libs/png.h b/engine/libs/mingw64-libs/png.h new file mode 100755 index 000000000..f46e97ce1 --- /dev/null +++ b/engine/libs/mingw64-libs/png.h @@ -0,0 +1,2699 @@ + +/* png.h - header file for PNG reference library + * + * libpng version 1.4.4 - September 23, 2010 + * Copyright (c) 1998-2010 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license (See LICENSE, below) + * + * Authors and maintainers: + * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat + * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger + * libpng versions 0.97, January 1998, through 1.4.4 - September 23, 2010: Glenn + * See also "Contributing Authors", below. + * + * Note about libpng version numbers: + * + * Due to various miscommunications, unforeseen code incompatibilities + * and occasional factors outside the authors' control, version numbering + * on the library has not always been consistent and straightforward. + * The following table summarizes matters since version 0.89c, which was + * the first widely used release: + * + * source png.h png.h shared-lib + * version string int version + * ------- ------ ----- ---------- + * 0.89c "1.0 beta 3" 0.89 89 1.0.89 + * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] + * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] + * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] + * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] + * 0.97c 0.97 97 2.0.97 + * 0.98 0.98 98 2.0.98 + * 0.99 0.99 98 2.0.99 + * 0.99a-m 0.99 99 2.0.99 + * 1.00 1.00 100 2.1.0 [100 should be 10000] + * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] + * 1.0.1 png.h string is 10001 2.1.0 + * 1.0.1a-e identical to the 10002 from here on, the shared library + * 1.0.2 source version) 10002 is 2.V where V is the source code + * 1.0.2a-b 10003 version, except as noted. + * 1.0.3 10003 + * 1.0.3a-d 10004 + * 1.0.4 10004 + * 1.0.4a-f 10005 + * 1.0.5 (+ 2 patches) 10005 + * 1.0.5a-d 10006 + * 1.0.5e-r 10100 (not source compatible) + * 1.0.5s-v 10006 (not binary compatible) + * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) + * 1.0.6d-f 10007 (still binary incompatible) + * 1.0.6g 10007 + * 1.0.6h 10007 10.6h (testing xy.z so-numbering) + * 1.0.6i 10007 10.6i + * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) + * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) + * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) + * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) + * 1.0.7 1 10007 (still compatible) + * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4 + * 1.0.8rc1 1 10008 2.1.0.8rc1 + * 1.0.8 1 10008 2.1.0.8 + * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6 + * 1.0.9rc1 1 10009 2.1.0.9rc1 + * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10 + * 1.0.9rc2 1 10009 2.1.0.9rc2 + * 1.0.9 1 10009 2.1.0.9 + * 1.0.10beta1 1 10010 2.1.0.10beta1 + * 1.0.10rc1 1 10010 2.1.0.10rc1 + * 1.0.10 1 10010 2.1.0.10 + * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3 + * 1.0.11rc1 1 10011 2.1.0.11rc1 + * 1.0.11 1 10011 2.1.0.11 + * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2 + * 1.0.12rc1 2 10012 2.1.0.12rc1 + * 1.0.12 2 10012 2.1.0.12 + * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned) + * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2 + * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5 + * 1.2.0rc1 3 10200 3.1.2.0rc1 + * 1.2.0 3 10200 3.1.2.0 + * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4 + * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2 + * 1.2.1 3 10201 3.1.2.1 + * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6 + * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1 + * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1 + * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1 + * 1.0.13 10 10013 10.so.0.1.0.13 + * 1.2.2 12 10202 12.so.0.1.2.2 + * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6 + * 1.2.3 12 10203 12.so.0.1.2.3 + * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3 + * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1 + * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 + * 1.0.14 10 10014 10.so.0.1.0.14 + * 1.2.4 13 10204 12.so.0.1.2.4 + * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 + * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3 + * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3 + * 1.0.15 10 10015 10.so.0.1.0.15 + * 1.2.5 13 10205 12.so.0.1.2.5 + * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 + * 1.0.16 10 10016 10.so.0.1.0.16 + * 1.2.6 13 10206 12.so.0.1.2.6 + * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 + * 1.0.17rc1 10 10017 12.so.0.1.0.17rc1 + * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 + * 1.0.17 10 10017 12.so.0.1.0.17 + * 1.2.7 13 10207 12.so.0.1.2.7 + * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 + * 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5 + * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 + * 1.0.18 10 10018 12.so.0.1.0.18 + * 1.2.8 13 10208 12.so.0.1.2.8 + * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 + * 1.2.9beta4-11 13 10209 12.so.0.9[.0] + * 1.2.9rc1 13 10209 12.so.0.9[.0] + * 1.2.9 13 10209 12.so.0.9[.0] + * 1.2.10beta1-7 13 10210 12.so.0.10[.0] + * 1.2.10rc1-2 13 10210 12.so.0.10[.0] + * 1.2.10 13 10210 12.so.0.10[.0] + * 1.4.0beta1-5 14 10400 14.so.0.0[.0] + * 1.2.11beta1-4 13 10211 12.so.0.11[.0] + * 1.4.0beta7-8 14 10400 14.so.0.0[.0] + * 1.2.11 13 10211 12.so.0.11[.0] + * 1.2.12 13 10212 12.so.0.12[.0] + * 1.4.0beta9-14 14 10400 14.so.0.0[.0] + * 1.2.13 13 10213 12.so.0.13[.0] + * 1.4.0beta15-36 14 10400 14.so.0.0[.0] + * 1.4.0beta37-87 14 10400 14.so.14.0[.0] + * 1.4.0rc01 14 10400 14.so.14.0[.0] + * 1.4.0beta88-109 14 10400 14.so.14.0[.0] + * 1.4.0rc02-08 14 10400 14.so.14.0[.0] + * 1.4.0 14 10400 14.so.14.0[.0] + * 1.4.1beta01-03 14 10401 14.so.14.1[.0] + * 1.4.1rc01 14 10401 14.so.14.1[.0] + * 1.4.1beta04-12 14 10401 14.so.14.1[.0] + * 1.4.1rc02-04 14 10401 14.so.14.1[.0] + * 1.4.1 14 10401 14.so.14.1[.0] + * 1.4.2beta01 14 10402 14.so.14.2[.0] + * 1.4.2rc02-06 14 10402 14.so.14.2[.0] + * 1.4.2 14 10402 14.so.14.2[.0] + * 1.4.3beta01-05 14 10403 14.so.14.3[.0] + * 1.4.3rc01-03 14 10403 14.so.14.3[.0] + * 1.4.3 14 10403 14.so.14.3[.0] + * 1.4.4beta01-08 14 10404 14.so.14.4[.0] + * 1.4.4rc01-06 14 10404 14.so.14.4[.0] + * + * Henceforth the source version will match the shared-library major + * and minor numbers; the shared-library major version number will be + * used for changes in backward compatibility, as it is intended. The + * PNG_LIBPNG_VER macro, which is not used within libpng but is available + * for applications, is an unsigned integer of the form xyyzz corresponding + * to the source version x.y.z (leading zeros in y and z). Beta versions + * were given the previous public release number plus a letter, until + * version 1.0.6j; from then on they were given the upcoming public + * release number plus "betaNN" or "rcN". + * + * Binary incompatibility exists only when applications make direct access + * to the info_ptr or png_ptr members through png.h, and the compiled + * application is loaded with a different version of the library. + * + * DLLNUM will change each time there are forward or backward changes + * in binary compatibility (e.g., when a new feature is added). + * + * See libpng.txt or libpng.3 for more information. The PNG specification + * is available as a W3C Recommendation and as an ISO Specification, + * defines should NOT be changed. + */ +#define PNG_INFO_gAMA 0x0001 +#define PNG_INFO_sBIT 0x0002 +#define PNG_INFO_cHRM 0x0004 +#define PNG_INFO_PLTE 0x0008 +#define PNG_INFO_tRNS 0x0010 +#define PNG_INFO_bKGD 0x0020 +#define PNG_INFO_hIST 0x0040 +#define PNG_INFO_pHYs 0x0080 +#define PNG_INFO_oFFs 0x0100 +#define PNG_INFO_tIME 0x0200 +#define PNG_INFO_pCAL 0x0400 +#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ +#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ +#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ +#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ +#define PNG_INFO_IDAT 0x8000L /* ESR, 1.0.6 */ + +/* This is used for the transformation routines, as some of them + * change these values for the row. It also should enable using + * the routines for other purposes. + */ +typedef struct png_row_info_struct +{ + png_uint_32 width; /* width of row */ + png_size_t rowbytes; /* number of bytes in row */ + png_byte color_type; /* color type of row */ + png_byte bit_depth; /* bit depth of row */ + png_byte channels; /* number of channels (1, 2, 3, or 4) */ + png_byte pixel_depth; /* bits per pixel (depth * channels) */ +} png_row_info; + +typedef png_row_info FAR * png_row_infop; +typedef png_row_info FAR * FAR * png_row_infopp; + +/* These are the function types for the I/O functions and for the functions + * that allow the user to override the default I/O functions with his or her + * own. The png_error_ptr type should match that of user-supplied warning + * and error functions, while the png_rw_ptr type should match that of the + * user read/write data functions. + */ +typedef struct png_struct_def png_struct; +typedef png_struct FAR * png_structp; + +typedef void (PNGAPI *png_error_ptr) PNGARG((png_structp, png_const_charp)); +typedef void (PNGAPI *png_rw_ptr) PNGARG((png_structp, png_bytep, png_size_t)); +typedef void (PNGAPI *png_flush_ptr) PNGARG((png_structp)); +typedef void (PNGAPI *png_read_status_ptr) PNGARG((png_structp, png_uint_32, + int)); +typedef void (PNGAPI *png_write_status_ptr) PNGARG((png_structp, png_uint_32, + int)); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +typedef void (PNGAPI *png_progressive_info_ptr) PNGARG((png_structp, + png_infop)); +typedef void (PNGAPI *png_progressive_end_ptr) PNGARG((png_structp, png_infop)); +typedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep, + png_uint_32, int)); +#endif + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) +typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp, + png_row_infop, png_bytep)); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, + png_unknown_chunkp)); +#endif +#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED +typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp)); +#endif +#ifdef PNG_SETJMP_SUPPORTED +/* This must match the function definition in , and the + * application must include this before png.h to obtain the definition + * of jmp_buf. + */ +typedef void (PNGAPI *png_longjmp_ptr) PNGARG((jmp_buf, int)); +#endif + +/* Transform masks for the high-level interface */ +#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ +#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ +#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ +#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ +#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ +#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ +#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ +#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ +#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ +#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ +#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ +#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ +#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ +/* Added to libpng-1.2.34 */ +#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER +#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ +/* Added to libpng-1.4.0 */ +#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ + +/* Flags for MNG supported features */ +#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 +#define PNG_FLAG_MNG_FILTER_64 0x04 +#define PNG_ALL_MNG_FEATURES 0x05 + +typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_alloc_size_t)); +typedef void (*png_free_ptr) PNGARG((png_structp, png_voidp)); + +/* The structure that holds the information to read and write PNG files. + * The only people who need to care about what is inside of this are the + * people who will be modifying the library for their own special needs. + * It should NOT be accessed directly by an application, except to store + * the jmp_buf. + */ + +struct png_struct_def +{ +#ifdef PNG_SETJMP_SUPPORTED + jmp_buf jmpbuf PNG_DEPSTRUCT; /* used in png_error */ + png_longjmp_ptr longjmp_fn PNG_DEPSTRUCT;/* setjmp non-local goto + function. */ +#endif + png_error_ptr error_fn PNG_DEPSTRUCT; /* function for printing + errors and aborting */ + png_error_ptr warning_fn PNG_DEPSTRUCT; /* function for printing + warnings */ + png_voidp error_ptr PNG_DEPSTRUCT; /* user supplied struct for + error functions */ + png_rw_ptr write_data_fn PNG_DEPSTRUCT; /* function for writing + output data */ + png_rw_ptr read_data_fn PNG_DEPSTRUCT; /* function for reading + input data */ + png_voidp io_ptr PNG_DEPSTRUCT; /* ptr to application struct + for I/O functions */ + +#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED + png_user_transform_ptr read_user_transform_fn PNG_DEPSTRUCT; /* user read + transform */ +#endif + +#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED + png_user_transform_ptr write_user_transform_fn PNG_DEPSTRUCT; /* user write + transform */ +#endif + +/* These were added in libpng-1.0.2 */ +#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) + png_voidp user_transform_ptr PNG_DEPSTRUCT; /* user supplied struct + for user transform */ + png_byte user_transform_depth PNG_DEPSTRUCT; /* bit depth of user + transformed pixels */ + png_byte user_transform_channels PNG_DEPSTRUCT; /* channels in user + transformed pixels */ +#endif +#endif + + png_uint_32 mode PNG_DEPSTRUCT; /* tells us where we are in + the PNG file */ + png_uint_32 flags PNG_DEPSTRUCT; /* flags indicating various + things to libpng */ + png_uint_32 transformations PNG_DEPSTRUCT; /* which transformations + to perform */ + + z_stream zstream PNG_DEPSTRUCT; /* pointer to decompression + structure (below) */ + png_bytep zbuf PNG_DEPSTRUCT; /* buffer for zlib */ + png_size_t zbuf_size PNG_DEPSTRUCT; /* size of zbuf */ + int zlib_level PNG_DEPSTRUCT; /* holds zlib compression level */ + int zlib_method PNG_DEPSTRUCT; /* holds zlib compression method */ + int zlib_window_bits PNG_DEPSTRUCT; /* holds zlib compression window + bits */ + int zlib_mem_level PNG_DEPSTRUCT; /* holds zlib compression memory + level */ + int zlib_strategy PNG_DEPSTRUCT; /* holds zlib compression + strategy */ + + png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels */ + png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels */ + png_uint_32 num_rows PNG_DEPSTRUCT; /* number of rows in current pass */ + png_uint_32 usr_width PNG_DEPSTRUCT; /* width of row at start of write */ + png_size_t rowbytes PNG_DEPSTRUCT; /* size of row in bytes */ +#if 0 /* Replaced with the following in libpng-1.4.1 */ + png_size_t irowbytes PNG_DEPSTRUCT; +#endif +/* Added in libpng-1.4.1 */ +#ifdef PNG_USER_LIMITS_SUPPORTED + /* Total memory that a zTXt, sPLT, iTXt, iCCP, or unknown chunk + * can occupy when decompressed. 0 means unlimited. + * We will change the typedef from png_size_t to png_alloc_size_t + * in libpng-1.6.0 + */ + png_alloc_size_t user_chunk_malloc_max PNG_DEPSTRUCT; +#endif + png_uint_32 iwidth PNG_DEPSTRUCT; /* width of current interlaced + row in pixels */ + png_uint_32 row_number PNG_DEPSTRUCT; /* current row in interlace pass */ + png_bytep prev_row PNG_DEPSTRUCT; /* buffer to save previous + (unfiltered) row */ + png_bytep row_buf PNG_DEPSTRUCT; /* buffer to save current + (unfiltered) row */ + png_bytep sub_row PNG_DEPSTRUCT; /* buffer to save "sub" row + when filtering */ + png_bytep up_row PNG_DEPSTRUCT; /* buffer to save "up" row + when filtering */ + png_bytep avg_row PNG_DEPSTRUCT; /* buffer to save "avg" row + when filtering */ + png_bytep paeth_row PNG_DEPSTRUCT; /* buffer to save "Paeth" row + when filtering */ + png_row_info row_info PNG_DEPSTRUCT; /* used for transformation + routines */ + + png_uint_32 idat_size PNG_DEPSTRUCT; /* current IDAT size for read */ + png_uint_32 crc PNG_DEPSTRUCT; /* current chunk CRC value */ + png_colorp palette PNG_DEPSTRUCT; /* palette from the input file */ + png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in + palette */ + png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparency values */ + png_byte chunk_name[5] PNG_DEPSTRUCT; /* null-terminated name of current + chunk */ + png_byte compression PNG_DEPSTRUCT; /* file compression type + (always 0) */ + png_byte filter PNG_DEPSTRUCT; /* file filter type (always 0) */ + png_byte interlaced PNG_DEPSTRUCT; /* PNG_INTERLACE_NONE, + PNG_INTERLACE_ADAM7 */ + png_byte pass PNG_DEPSTRUCT; /* current interlace pass (0 - 6) */ + png_byte do_filter PNG_DEPSTRUCT; /* row filter flags (see + PNG_FILTER_ below ) */ + png_byte color_type PNG_DEPSTRUCT; /* color type of file */ + png_byte bit_depth PNG_DEPSTRUCT; /* bit depth of file */ + png_byte usr_bit_depth PNG_DEPSTRUCT; /* bit depth of users row */ + png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */ + png_byte channels PNG_DEPSTRUCT; /* number of channels in file */ + png_byte usr_channels PNG_DEPSTRUCT; /* channels at start of write */ + png_byte sig_bytes PNG_DEPSTRUCT; /* magic bytes read/written from + start of file */ + +#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) + png_uint_16 filler PNG_DEPSTRUCT; /* filler bytes for pixel + expansion */ +#endif + +#ifdef PNG_bKGD_SUPPORTED + png_byte background_gamma_type PNG_DEPSTRUCT; +# ifdef PNG_FLOATING_POINT_SUPPORTED + float background_gamma PNG_DEPSTRUCT; +# endif + png_color_16 background PNG_DEPSTRUCT; /* background color in + screen gamma space */ +#ifdef PNG_READ_GAMMA_SUPPORTED + png_color_16 background_1 PNG_DEPSTRUCT; /* background normalized + to gamma 1.0 */ +#endif +#endif /* PNG_bKGD_SUPPORTED */ + +#ifdef PNG_WRITE_FLUSH_SUPPORTED + png_flush_ptr output_flush_fn PNG_DEPSTRUCT; /* Function for flushing + output */ + png_uint_32 flush_dist PNG_DEPSTRUCT; /* how many rows apart to flush, + 0 - no flush */ + png_uint_32 flush_rows PNG_DEPSTRUCT; /* number of rows written since + last flush */ +#endif + +#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) + int gamma_shift PNG_DEPSTRUCT; /* number of "insignificant" bits + 16-bit gamma */ +#ifdef PNG_FLOATING_POINT_SUPPORTED + float gamma PNG_DEPSTRUCT; /* file gamma value */ + float screen_gamma PNG_DEPSTRUCT; /* screen gamma value + (display_exponent) */ +#endif +#endif + +#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) + png_bytep gamma_table PNG_DEPSTRUCT; /* gamma table for 8-bit + depth files */ + png_bytep gamma_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen */ + png_bytep gamma_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */ + png_uint_16pp gamma_16_table PNG_DEPSTRUCT; /* gamma table for 16-bit + depth files */ + png_uint_16pp gamma_16_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to + screen */ + png_uint_16pp gamma_16_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */ +#endif + +#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED) + png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in each + available channel */ +#endif + +#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) + png_color_8 shift PNG_DEPSTRUCT; /* shift for significant bit + tranformation */ +#endif + +#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ + || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) + png_bytep trans_alpha PNG_DEPSTRUCT; /* alpha values for + paletted files */ + png_color_16 trans_color PNG_DEPSTRUCT; /* transparent color for + non-paletted files */ +#endif + + png_read_status_ptr read_row_fn PNG_DEPSTRUCT; /* called after each + row is decoded */ + png_write_status_ptr write_row_fn PNG_DEPSTRUCT; /* called after each + row is encoded */ +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED + png_progressive_info_ptr info_fn PNG_DEPSTRUCT; /* called after header + data fully read */ + png_progressive_row_ptr row_fn PNG_DEPSTRUCT; /* called after each + prog. row is decoded */ + png_progressive_end_ptr end_fn PNG_DEPSTRUCT; /* called after image + is complete */ + png_bytep save_buffer_ptr PNG_DEPSTRUCT; /* current location in + save_buffer */ + png_bytep save_buffer PNG_DEPSTRUCT; /* buffer for previously + read data */ + png_bytep current_buffer_ptr PNG_DEPSTRUCT; /* current location in + current_buffer */ + png_bytep current_buffer PNG_DEPSTRUCT; /* buffer for recently + used data */ + png_uint_32 push_length PNG_DEPSTRUCT; /* size of current input + chunk */ + png_uint_32 skip_length PNG_DEPSTRUCT; /* bytes to skip in + input data */ + png_size_t save_buffer_size PNG_DEPSTRUCT; /* amount of data now + in save_buffer */ + png_size_t save_buffer_max PNG_DEPSTRUCT; /* total size of + save_buffer */ + png_size_t buffer_size PNG_DEPSTRUCT; /* total amount of + available input data */ + png_size_t current_buffer_size PNG_DEPSTRUCT; /* amount of data now + in current_buffer */ + int process_mode PNG_DEPSTRUCT; /* what push library + is currently doing */ + int cur_palette PNG_DEPSTRUCT; /* current push library + palette index */ + +# ifdef PNG_TEXT_SUPPORTED + png_size_t current_text_size PNG_DEPSTRUCT; /* current size of + text input data */ + png_size_t current_text_left PNG_DEPSTRUCT; /* how much text left + to read in input */ + png_charp current_text PNG_DEPSTRUCT; /* current text chunk + buffer */ + png_charp current_text_ptr PNG_DEPSTRUCT; /* current location + in current_text */ +# endif /* PNG_PROGRESSIVE_READ_SUPPORTED && PNG_TEXT_SUPPORTED */ + +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ + +#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) +/* For the Borland special 64K segment handler */ + png_bytepp offset_table_ptr PNG_DEPSTRUCT; + png_bytep offset_table PNG_DEPSTRUCT; + png_uint_16 offset_table_number PNG_DEPSTRUCT; + png_uint_16 offset_table_count PNG_DEPSTRUCT; + png_uint_16 offset_table_count_free PNG_DEPSTRUCT; +#endif + +#ifdef PNG_READ_QUANTIZE_SUPPORTED + png_bytep palette_lookup PNG_DEPSTRUCT; /* lookup table for quantizing */ + png_bytep quantize_index PNG_DEPSTRUCT; /* index translation for palette + files */ +#endif + +#if defined(PNG_READ_QUANTIZE_SUPPORTED) || defined(PNG_hIST_SUPPORTED) + png_uint_16p hist PNG_DEPSTRUCT; /* histogram */ +#endif + +#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED + png_byte heuristic_method PNG_DEPSTRUCT; /* heuristic for row + filter selection */ + png_byte num_prev_filters PNG_DEPSTRUCT; /* number of weights + for previous rows */ + png_bytep prev_filters PNG_DEPSTRUCT; /* filter type(s) of + previous row(s) */ + png_uint_16p filter_weights PNG_DEPSTRUCT; /* weight(s) for previous + line(s) */ + png_uint_16p inv_filter_weights PNG_DEPSTRUCT; /* 1/weight(s) for + previous line(s) */ + png_uint_16p filter_costs PNG_DEPSTRUCT; /* relative filter + calculation cost */ + png_uint_16p inv_filter_costs PNG_DEPSTRUCT; /* 1/relative filter + calculation cost */ +#endif + +#ifdef PNG_TIME_RFC1123_SUPPORTED + png_charp time_buffer PNG_DEPSTRUCT; /* String to hold RFC 1123 time text */ +#endif + +/* New members added in libpng-1.0.6 */ + + png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is + responsible for freeing */ + +#ifdef PNG_USER_CHUNKS_SUPPORTED + png_voidp user_chunk_ptr PNG_DEPSTRUCT; + png_user_chunk_ptr read_user_chunk_fn PNG_DEPSTRUCT; /* user read + chunk handler */ +#endif + +#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED + int num_chunk_list PNG_DEPSTRUCT; + png_bytep chunk_list PNG_DEPSTRUCT; +#endif + +/* New members added in libpng-1.0.3 */ +#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED + png_byte rgb_to_gray_status PNG_DEPSTRUCT; + /* These were changed from png_byte in libpng-1.0.6 */ + png_uint_16 rgb_to_gray_red_coeff PNG_DEPSTRUCT; + png_uint_16 rgb_to_gray_green_coeff PNG_DEPSTRUCT; + png_uint_16 rgb_to_gray_blue_coeff PNG_DEPSTRUCT; +#endif + +/* New member added in libpng-1.0.4 (renamed in 1.0.9) */ +#if defined(PNG_MNG_FEATURES_SUPPORTED) || \ + defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ + defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) +/* Changed from png_byte to png_uint_32 at version 1.2.0 */ + png_uint_32 mng_features_permitted PNG_DEPSTRUCT; +#endif + +/* New member added in libpng-1.0.7 */ +#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) + png_fixed_point int_gamma PNG_DEPSTRUCT; +#endif + +/* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */ +#ifdef PNG_MNG_FEATURES_SUPPORTED + png_byte filter_type PNG_DEPSTRUCT; +#endif + +/* New members added in libpng-1.2.0 */ + +/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ +#ifdef PNG_USER_MEM_SUPPORTED + png_voidp mem_ptr PNG_DEPSTRUCT; /* user supplied struct for + mem functions */ + png_malloc_ptr malloc_fn PNG_DEPSTRUCT; /* function for + allocating memory */ + png_free_ptr free_fn PNG_DEPSTRUCT; /* function for + freeing memory */ +#endif + +/* New member added in libpng-1.0.13 and 1.2.0 */ + png_bytep big_row_buf PNG_DEPSTRUCT; /* buffer to save current + (unfiltered) row */ + +#ifdef PNG_READ_QUANTIZE_SUPPORTED +/* The following three members were added at version 1.0.14 and 1.2.4 */ + png_bytep quantize_sort PNG_DEPSTRUCT; /* working sort array */ + png_bytep index_to_palette PNG_DEPSTRUCT; /* where the original + index currently is + in the palette */ + png_bytep palette_to_index PNG_DEPSTRUCT; /* which original index + points to this + palette color */ +#endif + +/* New members added in libpng-1.0.16 and 1.2.6 */ + png_byte compression_type PNG_DEPSTRUCT; + +#ifdef PNG_USER_LIMITS_SUPPORTED + png_uint_32 user_width_max PNG_DEPSTRUCT; + png_uint_32 user_height_max PNG_DEPSTRUCT; + /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown + * chunks that can be stored (0 means unlimited). + */ + png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT; +#endif + +/* New member added in libpng-1.0.25 and 1.2.17 */ +#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED + /* Storage for unknown chunk that the library doesn't recognize. */ + png_unknown_chunk unknown_chunk PNG_DEPSTRUCT; +#endif + +/* New members added in libpng-1.2.26 */ + png_uint_32 old_big_row_buf_size PNG_DEPSTRUCT; + png_uint_32 old_prev_row_size PNG_DEPSTRUCT; + +/* New member added in libpng-1.2.30 */ + png_charp chunkdata PNG_DEPSTRUCT; /* buffer for reading chunk data */ + +#ifdef PNG_IO_STATE_SUPPORTED +/* New member added in libpng-1.4.0 */ + png_uint_32 io_state PNG_DEPSTRUCT; +#endif +}; + + +/* This triggers a compiler error in png.c, if png.c and png.h + * do not agree upon the version number. + */ +typedef png_structp version_1_4_4; + +typedef png_struct FAR * FAR * png_structpp; + +/* Here are the function definitions most commonly used. This is not + * the place to find out how to use libpng. See libpng.txt for the + * full explanation, see example.c for the summary. This just provides + * a simple one line description of the use of each function. + */ + +/* Returns the version number of the library */ +PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void)); + +/* Tell lib we have already handled the first magic bytes. + * Handling more than 8 bytes from the beginning of the file is an error. + */ +PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr, + int num_bytes)); + +/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a + * PNG file. Returns zero if the supplied bytes match the 8-byte PNG + * signature, and non-zero otherwise. Having num_to_check == 0 or + * start > 7 will always fail (ie return non-zero). + */ +PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start, + png_size_t num_to_check)); + +/* Simple signature checking function. This is the same as calling + * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). + */ +#define png_check_sig(sig,n) !png_sig_cmp((sig), 0, (n)) + +/* Allocate and initialize png_ptr struct for reading, and any other memory. */ +PNG_EXPORT(png_structp,png_create_read_struct) + PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED; + +/* Allocate and initialize png_ptr struct for writing, and any other memory */ +PNG_EXPORT(png_structp,png_create_write_struct) + PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED; + +PNG_EXPORT(png_size_t,png_get_compression_buffer_size) + PNGARG((png_structp png_ptr)); + +PNG_EXPORT(void,png_set_compression_buffer_size) + PNGARG((png_structp png_ptr, png_size_t size)); + +/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp + * match up. + */ +#ifdef PNG_SETJMP_SUPPORTED +/* This function returns the jmp_buf built in to *png_ptr. It must be + * supplied with an appropriate 'longjmp' function to use on that jmp_buf + * unless the default error function is overridden in which case NULL is + * acceptable. The size of the jmp_buf is checked against the actual size + * allocated by the library - the call will return NULL on a mismatch + * indicating an ABI mismatch. + */ +PNG_EXPORT(jmp_buf*, png_set_longjmp_fn) + PNGARG((png_structp png_ptr, png_longjmp_ptr longjmp_fn, size_t + jmp_buf_size)); +# define png_jmpbuf(png_ptr) \ + (*png_set_longjmp_fn((png_ptr), longjmp, sizeof (jmp_buf))) +#else +# define png_jmpbuf(png_ptr) \ + (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) +#endif + +#ifdef PNG_READ_SUPPORTED +/* Reset the compression stream */ +PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr)); +#endif + +/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ +#ifdef PNG_USER_MEM_SUPPORTED +PNG_EXPORT(png_structp,png_create_read_struct_2) + PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, + png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED; +PNG_EXPORT(png_structp,png_create_write_struct_2) + PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, + png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED; +#endif + +/* Write the PNG file signature. */ +PNG_EXPORT(void,png_write_sig) PNGARG((png_structp png_ptr)); + +/* Write a PNG chunk - size, type, (optional) data, CRC. */ +PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr, + png_bytep chunk_name, png_bytep data, png_size_t length)); + +/* Write the start of a PNG chunk - length and chunk name. */ +PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr, + png_bytep chunk_name, png_uint_32 length)); + +/* Write the data of a PNG chunk started with png_write_chunk_start(). */ +PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr, + png_bytep data, png_size_t length)); + +/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ +PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr)); + +/* Allocate and initialize the info structure */ +PNG_EXPORT(png_infop,png_create_info_struct) + PNGARG((png_structp png_ptr)) PNG_ALLOCATED; + +PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr, + png_size_t png_info_struct_size)); + +/* Writes all the PNG information before the image. */ +PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr, + png_infop info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the information before the actual image data. */ +PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif + +#ifdef PNG_TIME_RFC1123_SUPPORTED +PNG_EXPORT(png_charp,png_convert_to_rfc1123) + PNGARG((png_structp png_ptr, png_timep ptime)); +#endif + +#ifdef PNG_CONVERT_tIME_SUPPORTED +/* Convert from a struct tm to png_time */ +PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime, + struct tm FAR * ttime)); + +/* Convert from time_t to png_time. Uses gmtime() */ +PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime, + time_t ttime)); +#endif /* PNG_CONVERT_tIME_SUPPORTED */ + +#ifdef PNG_READ_EXPAND_SUPPORTED +/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ +PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr)); +PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp + png_ptr)); +PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr)); +PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) +/* Use blue, green, red order for pixels. */ +PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr)); +#endif + +#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED +/* Expand the grayscale to 24-bit RGB if necessary. */ +PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr)); +#endif + +#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED +/* Reduce RGB to grayscale. */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr, + int error_action, double red, double green )); +#endif +PNG_EXPORT(void,png_set_rgb_to_gray_fixed) PNGARG((png_structp png_ptr, + int error_action, png_fixed_point red, png_fixed_point green )); +PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp + png_ptr)); +#endif + +PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth, + png_colorp palette)); + +#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED +PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) +PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) +PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) +/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ +PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr, + png_uint_32 filler, int flags)); +/* The values of the PNG_FILLER_ defines should NOT be changed */ +#define PNG_FILLER_BEFORE 0 +#define PNG_FILLER_AFTER 1 +/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ +PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr, + png_uint_32 filler, int flags)); +#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ + +#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) +/* Swap bytes in 16-bit depth files. */ +PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) +/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ +PNG_EXPORT(void,png_set_packing) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ + defined(PNG_WRITE_PACKSWAP_SUPPORTED) +/* Swap packing order of pixels in bytes. */ +PNG_EXPORT(void,png_set_packswap) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) +/* Converts files to legal bit depths. */ +PNG_EXPORT(void,png_set_shift) PNGARG((png_structp png_ptr, + png_color_8p true_bits)); +#endif + +#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ + defined(PNG_WRITE_INTERLACING_SUPPORTED) +/* Have the code handle the interlacing. Returns the number of passes. */ +PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) +/* Invert monochrome files */ +PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr)); +#endif + +#ifdef PNG_READ_BACKGROUND_SUPPORTED +/* Handle alpha and tRNS by replacing with a background color. */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr, + png_color_16p background_color, int background_gamma_code, + int need_expand, double background_gamma)); +#endif +#define PNG_BACKGROUND_GAMMA_UNKNOWN 0 +#define PNG_BACKGROUND_GAMMA_SCREEN 1 +#define PNG_BACKGROUND_GAMMA_FILE 2 +#define PNG_BACKGROUND_GAMMA_UNIQUE 3 +#endif + +#ifdef PNG_READ_16_TO_8_SUPPORTED +/* Strip the second byte of information from a 16-bit depth file. */ +PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr)); +#endif + +#ifdef PNG_READ_QUANTIZE_SUPPORTED +/* Turn on quantizing, and reduce the palette to the number of colors + * available. Prior to libpng-1.4.2, this was png_set_dither(). + */ +PNG_EXPORT(void,png_set_quantize) PNGARG((png_structp png_ptr, + png_colorp palette, int num_palette, int maximum_colors, + png_uint_16p histogram, int full_quantize)); +#endif +/* This migration aid will be removed from libpng-1.5.0 */ +#define png_set_dither png_set_quantize + +#ifdef PNG_READ_GAMMA_SUPPORTED +/* Handle gamma correction. Screen_gamma=(display_exponent) */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr, + double screen_gamma, double default_file_gamma)); +#endif +#endif + + +#ifdef PNG_WRITE_FLUSH_SUPPORTED +/* Set how many lines between output flushes - 0 for no flushing */ +PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows)); +/* Flush the current PNG output buffer */ +PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr)); +#endif + +/* Optional update palette with requested transformations */ +PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr)); + +/* Optional call to update the users info structure */ +PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr, + png_infop info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read one or more rows of image data. */ +PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr, + png_bytepp row, png_bytepp display_row, png_uint_32 num_rows)); +#endif + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read a row of data. */ +PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr, + png_bytep row, + png_bytep display_row)); +#endif + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the whole image into memory at once. */ +PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr, + png_bytepp image)); +#endif + +/* Write a row of image data */ +PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr, + png_bytep row)); + +/* Write a few rows of image data */ +PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr, + png_bytepp row, png_uint_32 num_rows)); + +/* Write the image data */ +PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr, + png_bytepp image)); + +/* Write the end of the PNG file. */ +PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr, + png_infop info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the end of the PNG file. */ +PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif + +/* Free any memory associated with the png_info_struct */ +PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr, + png_infopp info_ptr_ptr)); + +/* Free any memory associated with the png_struct and the png_info_structs */ +PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp + png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); + +/* Free any memory associated with the png_struct and the png_info_structs */ +PNG_EXPORT(void,png_destroy_write_struct) + PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)); + +/* Set the libpng method of handling chunk CRC errors */ +PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr, + int crit_action, int ancil_action)); + +/* Values for png_set_crc_action() to say how to handle CRC errors in + * ancillary and critical chunks, and whether to use the data contained + * therein. Note that it is impossible to "discard" data in a critical + * chunk. For versions prior to 0.90, the action was always error/quit, + * whereas in version 0.90 and later, the action for CRC errors in ancillary + * chunks is warn/discard. These values should NOT be changed. + * + * value action:critical action:ancillary + */ +#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ +#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ +#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ +#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ +#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ +#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ + +/* These functions give the user control over the scan-line filtering in + * libpng and the compression methods used by zlib. These functions are + * mainly useful for testing, as the defaults should work with most users. + * Those users who are tight on memory or want faster performance at the + * expense of compression can modify them. See the compression library + * header file (zlib.h) for an explination of the compression functions. + */ + +/* Set the filtering method(s) used by libpng. Currently, the only valid + * value for "method" is 0. + */ +PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method, + int filters)); + +/* Flags for png_set_filter() to say which filters to use. The flags + * are chosen so that they don't conflict with real filter types + * below, in case they are supplied instead of the #defined constants. + * These values should NOT be changed. + */ +#define PNG_NO_FILTERS 0x00 +#define PNG_FILTER_NONE 0x08 +#define PNG_FILTER_SUB 0x10 +#define PNG_FILTER_UP 0x20 +#define PNG_FILTER_AVG 0x40 +#define PNG_FILTER_PAETH 0x80 +#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ + PNG_FILTER_AVG | PNG_FILTER_PAETH) + +/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. + * These defines should NOT be changed. + */ +#define PNG_FILTER_VALUE_NONE 0 +#define PNG_FILTER_VALUE_SUB 1 +#define PNG_FILTER_VALUE_UP 2 +#define PNG_FILTER_VALUE_AVG 3 +#define PNG_FILTER_VALUE_PAETH 4 +#define PNG_FILTER_VALUE_LAST 5 + +#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* EXPERIMENTAL */ +/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ + * defines, either the default (minimum-sum-of-absolute-differences), or + * the experimental method (weighted-minimum-sum-of-absolute-differences). + * + * Weights are factors >= 1.0, indicating how important it is to keep the + * filter type consistent between rows. Larger numbers mean the current + * filter is that many times as likely to be the same as the "num_weights" + * previous filters. This is cumulative for each previous row with a weight. + * There needs to be "num_weights" values in "filter_weights", or it can be + * NULL if the weights aren't being specified. Weights have no influence on + * the selection of the first row filter. Well chosen weights can (in theory) + * improve the compression for a given image. + * + * Costs are factors >= 1.0 indicating the relative decoding costs of a + * filter type. Higher costs indicate more decoding expense, and are + * therefore less likely to be selected over a filter with lower computational + * costs. There needs to be a value in "filter_costs" for each valid filter + * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't + * setting the costs. Costs try to improve the speed of decompression without + * unduly increasing the compressed image size. + * + * A negative weight or cost indicates the default value is to be used, and + * values in the range [0.0, 1.0) indicate the value is to remain unchanged. + * The default values for both weights and costs are currently 1.0, but may + * change if good general weighting/cost heuristics can be found. If both + * the weights and costs are set to 1.0, this degenerates the WEIGHTED method + * to the UNWEIGHTED method, but with added encoding time/computation. + */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(void,png_set_filter_heuristics) PNGARG((png_structp png_ptr, + int heuristic_method, int num_weights, png_doublep filter_weights, + png_doublep filter_costs)); +#endif +#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ + +/* Heuristic used for row filter selection. These defines should NOT be + * changed. + */ +#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ +#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ +#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ +#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ + +/* Set the library compression level. Currently, valid values range from + * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 + * (0 - no compression, 9 - "maximal" compression). Note that tests have + * shown that zlib compression levels 3-6 usually perform as well as level 9 + * for PNG images, and do considerably fewer caclulations. In the future, + * these values may not correspond directly to the zlib compression levels. + */ +PNG_EXPORT(void,png_set_compression_level) PNGARG((png_structp png_ptr, + int level)); + +PNG_EXPORT(void,png_set_compression_mem_level) + PNGARG((png_structp png_ptr, int mem_level)); + +PNG_EXPORT(void,png_set_compression_strategy) + PNGARG((png_structp png_ptr, int strategy)); + +PNG_EXPORT(void,png_set_compression_window_bits) + PNGARG((png_structp png_ptr, int window_bits)); + +PNG_EXPORT(void,png_set_compression_method) PNGARG((png_structp png_ptr, + int method)); + +/* These next functions are called for input/output, memory, and error + * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, + * and call standard C I/O routines such as fread(), fwrite(), and + * fprintf(). These functions can be made to use other I/O routines + * at run time for those applications that need to handle I/O in a + * different manner by calling png_set_???_fn(). See libpng.txt for + * more information. + */ + +#ifdef PNG_STDIO_SUPPORTED +/* Initialize the input/output for the PNG file to the default functions. */ +PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, + png_FILE_p fp)); +#endif + +/* Replace the (error and abort), and warning functions with user + * supplied functions. If no messages are to be printed you must still + * write and use replacement functions. The replacement error_fn should + * still do a longjmp to the last setjmp location if you are using this + * method of error handling. If error_fn or warning_fn is NULL, the + * default function will be used. + */ + +PNG_EXPORT(void,png_set_error_fn) PNGARG((png_structp png_ptr, + png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); + +/* Return the user pointer associated with the error functions */ +PNG_EXPORT(png_voidp,png_get_error_ptr) PNGARG((png_structp png_ptr)); + +/* Replace the default data output functions with a user supplied one(s). + * If buffered output is not used, then output_flush_fn can be set to NULL. + * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time + * output_flush_fn will be ignored (and thus can be NULL). + * It is probably a mistake to use NULL for output_flush_fn if + * write_data_fn is not also NULL unless you have built libpng with + * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's + * default flush function, which uses the standard *FILE structure, will + * be used. + */ +PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr, + png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); + +/* Replace the default data input function with a user supplied one. */ +PNG_EXPORT(void,png_set_read_fn) PNGARG((png_structp png_ptr, + png_voidp io_ptr, png_rw_ptr read_data_fn)); + +/* Return the user pointer associated with the I/O functions */ +PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr)); + +PNG_EXPORT(void,png_set_read_status_fn) PNGARG((png_structp png_ptr, + png_read_status_ptr read_row_fn)); + +PNG_EXPORT(void,png_set_write_status_fn) PNGARG((png_structp png_ptr, + png_write_status_ptr write_row_fn)); + +#ifdef PNG_USER_MEM_SUPPORTED +/* Replace the default memory allocation functions with user supplied one(s). */ +PNG_EXPORT(void,png_set_mem_fn) PNGARG((png_structp png_ptr, + png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn)); +/* Return the user pointer associated with the memory functions */ +PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_structp png_ptr)); +#endif + +#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED +PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp + png_ptr, png_user_transform_ptr read_user_transform_fn)); +#endif + +#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED +PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp + png_ptr, png_user_transform_ptr write_user_transform_fn)); +#endif + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) +PNG_EXPORT(void,png_set_user_transform_info) PNGARG((png_structp + png_ptr, png_voidp user_transform_ptr, int user_transform_depth, + int user_transform_channels)); +/* Return the user pointer associated with the user transform functions */ +PNG_EXPORT(png_voidp,png_get_user_transform_ptr) + PNGARG((png_structp png_ptr)); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +PNG_EXPORT(void,png_set_read_user_chunk_fn) PNGARG((png_structp png_ptr, + png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); +PNG_EXPORT(png_voidp,png_get_user_chunk_ptr) PNGARG((png_structp + png_ptr)); +#endif + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +/* Sets the function callbacks for the push reader, and a pointer to a + * user-defined structure available to the callback functions. + */ +PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr, + png_voidp progressive_ptr, + png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, + png_progressive_end_ptr end_fn)); + +/* Returns the user pointer associated with the push read functions */ +PNG_EXPORT(png_voidp,png_get_progressive_ptr) + PNGARG((png_structp png_ptr)); + +/* Function to be called when data becomes available */ +PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_bytep buffer, png_size_t buffer_size)); + +/* Function that combines rows. Not very much different than the + * png_combine_row() call. Is this even used????? + */ +PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr, + png_bytep old_row, png_bytep new_row)); +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ + +PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr, + png_alloc_size_t size)) PNG_ALLOCATED; +/* Added at libpng version 1.4.0 */ +PNG_EXPORT(png_voidp,png_calloc) PNGARG((png_structp png_ptr, + png_alloc_size_t size)) PNG_ALLOCATED; + +/* Added at libpng version 1.2.4 */ +PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr, + png_alloc_size_t size)) PNG_ALLOCATED; + +/* Frees a pointer allocated by png_malloc() */ +PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr)); + +/* Free data that was allocated internally */ +PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 free_me, int num)); +/* Reassign responsibility for freeing existing data, whether allocated + * by libpng or by the application */ +PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr, + png_infop info_ptr, int freer, png_uint_32 mask)); +/* Assignments for png_data_freer */ +#define PNG_DESTROY_WILL_FREE_DATA 1 +#define PNG_SET_WILL_FREE_DATA 1 +#define PNG_USER_WILL_FREE_DATA 2 +/* Flags for png_ptr->free_me and info_ptr->free_me */ +#define PNG_FREE_HIST 0x0008 +#define PNG_FREE_ICCP 0x0010 +#define PNG_FREE_SPLT 0x0020 +#define PNG_FREE_ROWS 0x0040 +#define PNG_FREE_PCAL 0x0080 +#define PNG_FREE_SCAL 0x0100 +#define PNG_FREE_UNKN 0x0200 +#define PNG_FREE_LIST 0x0400 +#define PNG_FREE_PLTE 0x1000 +#define PNG_FREE_TRNS 0x2000 +#define PNG_FREE_TEXT 0x4000 +#define PNG_FREE_ALL 0x7fff +#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ + +#ifdef PNG_USER_MEM_SUPPORTED +PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr, + png_alloc_size_t size)) PNG_ALLOCATED; +PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr, + png_voidp ptr)); +#endif + +#ifndef PNG_NO_ERROR_TEXT +/* Fatal error in PNG image of libpng - can't continue */ +PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr, + png_const_charp error_message)) PNG_NORETURN; + +/* The same, but the chunk name is prepended to the error string. */ +PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr, + png_const_charp error_message)) PNG_NORETURN; + +#else +/* Fatal error in PNG image of libpng - can't continue */ +PNG_EXPORT(void,png_err) PNGARG((png_structp png_ptr)) PNG_NORETURN; +#endif + +/* Non-fatal error in libpng. Can continue, but may have a problem. */ +PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr, + png_const_charp warning_message)); + +/* Non-fatal error in libpng, chunk name is prepended to message. */ +PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr, + png_const_charp warning_message)); + +#ifdef PNG_BENIGN_ERRORS_SUPPORTED +/* Benign error in libpng. Can continue, but may have a problem. + * User can choose whether to handle as a fatal error or as a warning. */ +PNG_EXPORT(void,png_benign_error) PNGARG((png_structp png_ptr, + png_const_charp warning_message)); + +/* Same, chunk name is prepended to message. */ +PNG_EXPORT(void,png_chunk_benign_error) PNGARG((png_structp png_ptr, + png_const_charp warning_message)); + +PNG_EXPORT(void,png_set_benign_errors) PNGARG((png_structp + png_ptr, int allowed)); +#endif + +/* The png_set_ functions are for storing values in the png_info_struct. + * Similarly, the png_get_ calls are used to read values from the + * png_info_struct, either storing the parameters in the passed variables, or + * setting pointers into the png_info_struct where the data is stored. The + * png_get_ functions return a non-zero value if the data was available + * in info_ptr, or return zero and do not change any of the parameters if the + * data was not available. + * + * These functions should be used instead of directly accessing png_info + * to avoid problems with future changes in the size and internal layout of + * png_info_struct. + */ +/* Returns "flag" if chunk data is valid in info_ptr. */ +PNG_EXPORT(png_uint_32,png_get_valid) PNGARG((png_structp png_ptr, +png_infop info_ptr, png_uint_32 flag)); + +/* Returns number of bytes needed to hold a transformed row. */ +PNG_EXPORT(png_size_t,png_get_rowbytes) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +#ifdef PNG_INFO_IMAGE_SUPPORTED +/* Returns row_pointers, which is an array of pointers to scanlines that was + * returned from png_read_png(). + */ +PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr, +png_infop info_ptr)); +/* Set row_pointers, which is an array of pointers to scanlines for use + * by png_write_png(). + */ +PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_bytepp row_pointers)); +#endif + +/* Returns number of color channels in image. */ +PNG_EXPORT(png_byte,png_get_channels) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +#ifdef PNG_EASY_ACCESS_SUPPORTED +/* Returns image width in pixels. */ +PNG_EXPORT(png_uint_32, png_get_image_width) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image height in pixels. */ +PNG_EXPORT(png_uint_32, png_get_image_height) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image bit_depth. */ +PNG_EXPORT(png_byte, png_get_bit_depth) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image color_type. */ +PNG_EXPORT(png_byte, png_get_color_type) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image filter_type. */ +PNG_EXPORT(png_byte, png_get_filter_type) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image interlace_type. */ +PNG_EXPORT(png_byte, png_get_interlace_type) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image compression_type. */ +PNG_EXPORT(png_byte, png_get_compression_type) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image resolution in pixels per meter, from pHYs chunk data. */ +PNG_EXPORT(png_uint_32, png_get_pixels_per_meter) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +PNG_EXPORT(png_uint_32, png_get_x_pixels_per_meter) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +PNG_EXPORT(png_uint_32, png_get_y_pixels_per_meter) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns pixel aspect ratio, computed from pHYs chunk data. */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(float, png_get_pixel_aspect_ratio) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +#endif + +/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ +PNG_EXPORT(png_int_32, png_get_x_offset_pixels) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +PNG_EXPORT(png_int_32, png_get_y_offset_pixels) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +PNG_EXPORT(png_int_32, png_get_x_offset_microns) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +PNG_EXPORT(png_int_32, png_get_y_offset_microns) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +#endif /* PNG_EASY_ACCESS_SUPPORTED */ + +/* Returns pointer to signature string read from PNG header */ +PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_color_16p *background)); +#endif + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_color_16p background)); +#endif + +#ifdef PNG_cHRM_SUPPORTED +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((png_structp png_ptr, + png_infop info_ptr, double *white_x, double *white_y, double *red_x, + double *red_y, double *green_x, double *green_y, double *blue_x, + double *blue_y)); +#endif +#ifdef PNG_FIXED_POINT_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_cHRM_fixed) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_fixed_point *int_white_x, png_fixed_point + *int_white_y, png_fixed_point *int_red_x, png_fixed_point *int_red_y, + png_fixed_point *int_green_x, png_fixed_point *int_green_y, png_fixed_point + *int_blue_x, png_fixed_point *int_blue_y)); +#endif +#endif + +#ifdef PNG_cHRM_SUPPORTED +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(void,png_set_cHRM) PNGARG((png_structp png_ptr, + png_infop info_ptr, double white_x, double white_y, double red_x, + double red_y, double green_x, double green_y, double blue_x, double blue_y)); +#endif +#ifdef PNG_FIXED_POINT_SUPPORTED +PNG_EXPORT(void,png_set_cHRM_fixed) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_fixed_point int_white_x, png_fixed_point int_white_y, + png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point + int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, + png_fixed_point int_blue_y)); +#endif +#endif + +#ifdef PNG_gAMA_SUPPORTED +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr, + png_infop info_ptr, double *file_gamma)); +#endif +PNG_EXPORT(png_uint_32,png_get_gAMA_fixed) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_fixed_point *int_file_gamma)); +#endif + +#ifdef PNG_gAMA_SUPPORTED +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr, + png_infop info_ptr, double file_gamma)); +#endif +PNG_EXPORT(void,png_set_gAMA_fixed) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_fixed_point int_file_gamma)); +#endif + +#ifdef PNG_hIST_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_16p *hist)); +#endif + +#ifdef PNG_hIST_SUPPORTED +PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_16p hist)); +#endif + +PNG_EXPORT(png_uint_32,png_get_IHDR) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, + int *bit_depth, int *color_type, int *interlace_method, + int *compression_method, int *filter_method)); + +PNG_EXPORT(void,png_set_IHDR) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, + int color_type, int interlace_method, int compression_method, + int filter_method)); + +#ifdef PNG_oFFs_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, + int *unit_type)); +#endif + +#ifdef PNG_oFFs_SUPPORTED +PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, + int unit_type)); +#endif + +#ifdef PNG_pCAL_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, + int *type, int *nparams, png_charp *units, png_charpp *params)); +#endif + +#ifdef PNG_pCAL_SUPPORTED +PNG_EXPORT(void,png_set_pCAL) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, + int type, int nparams, png_charp units, png_charpp params)); +#endif + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); +#endif + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); +#endif + +PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_colorp *palette, int *num_palette)); + +PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_colorp palette, int num_palette)); + +#ifdef PNG_sBIT_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_color_8p *sig_bit)); +#endif + +#ifdef PNG_sBIT_SUPPORTED +PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_color_8p sig_bit)); +#endif + +#ifdef PNG_sRGB_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr, + png_infop info_ptr, int *intent)); +#endif + +#ifdef PNG_sRGB_SUPPORTED +PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr, + png_infop info_ptr, int intent)); +PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr, + png_infop info_ptr, int intent)); +#endif + +#ifdef PNG_iCCP_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_iCCP) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_charpp name, int *compression_type, + png_charpp profile, png_uint_32 *proflen)); + /* Note to maintainer: profile should be png_bytepp */ +#endif + +#ifdef PNG_iCCP_SUPPORTED +PNG_EXPORT(void,png_set_iCCP) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_charp name, int compression_type, + png_charp profile, png_uint_32 proflen)); + /* Note to maintainer: profile should be png_bytep */ +#endif + +#ifdef PNG_sPLT_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_sPLT_tpp entries)); +#endif + +#ifdef PNG_sPLT_SUPPORTED +PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_sPLT_tp entries, int nentries)); +#endif + +#ifdef PNG_TEXT_SUPPORTED +/* png_get_text also returns the number of text chunks in *num_text */ +PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_textp *text_ptr, int *num_text)); +#endif + +/* Note while png_set_text() will accept a structure whose text, + * language, and translated keywords are NULL pointers, the structure + * returned by png_get_text will always contain regular + * zero-terminated C strings. They might be empty strings but + * they will never be NULL pointers. + */ + +#ifdef PNG_TEXT_SUPPORTED +PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_textp text_ptr, int num_text)); +#endif + +#ifdef PNG_tIME_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_timep *mod_time)); +#endif + +#ifdef PNG_tIME_SUPPORTED +PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_timep mod_time)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_bytep *trans_alpha, int *num_trans, + png_color_16p *trans_color)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_bytep trans_alpha, int num_trans, + png_color_16p trans_color)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +#endif + +#ifdef PNG_sCAL_SUPPORTED +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_sCAL) PNGARG((png_structp png_ptr, + png_infop info_ptr, int *unit, double *width, double *height)); +#else +#ifdef PNG_FIXED_POINT_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_sCAL_s) PNGARG((png_structp png_ptr, + png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight)); +#endif +#endif +#endif /* PNG_sCAL_SUPPORTED */ + +#ifdef PNG_sCAL_SUPPORTED +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXPORT(void,png_set_sCAL) PNGARG((png_structp png_ptr, + png_infop info_ptr, int unit, double width, double height)); +#else +#ifdef PNG_FIXED_POINT_SUPPORTED +PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr, + png_infop info_ptr, int unit, png_charp swidth, png_charp sheight)); +#endif +#endif +#endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */ + +#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED +/* Provide a list of chunks and how they are to be handled, if the built-in + handling or default unknown chunk handling is not desired. Any chunks not + listed will be handled in the default manner. The IHDR and IEND chunks + must not be listed. + keep = 0: follow default behaviour + = 1: do not keep + = 2: keep only if safe-to-copy + = 3: keep even if unsafe-to-copy +*/ +PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp + png_ptr, int keep, png_bytep chunk_list, int num_chunks)); +PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep + chunk_name)); +#endif +#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED +PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns)); +PNG_EXPORT(void, png_set_unknown_chunk_location) + PNGARG((png_structp png_ptr, png_infop info_ptr, int chunk, int location)); +PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp + png_ptr, png_infop info_ptr, png_unknown_chunkpp entries)); +#endif + +/* Png_free_data() will turn off the "valid" flag for anything it frees. + * If you need to turn it off for a chunk that your application has freed, + * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); + */ +PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr, + png_infop info_ptr, int mask)); + +#ifdef PNG_INFO_IMAGE_SUPPORTED +/* The "params" pointer is currently not used and is for future expansion. */ +PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr, + png_infop info_ptr, + int transforms, + png_voidp params)); +PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr, + png_infop info_ptr, + int transforms, + png_voidp params)); +#endif + +PNG_EXPORT(png_charp,png_get_copyright) PNGARG((png_structp png_ptr)); +PNG_EXPORT(png_charp,png_get_header_ver) PNGARG((png_structp png_ptr)); +PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp + png_ptr)); +PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr)); + +#ifdef PNG_MNG_FEATURES_SUPPORTED +PNG_EXPORT(png_uint_32,png_permit_mng_features) PNGARG((png_structp + png_ptr, png_uint_32 mng_features_permitted)); +#endif + +/* For use in png_set_keep_unknown, added to version 1.2.6 */ +#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 +#define PNG_HANDLE_CHUNK_NEVER 1 +#define PNG_HANDLE_CHUNK_IF_SAFE 2 +#define PNG_HANDLE_CHUNK_ALWAYS 3 + +/* Strip the prepended error numbers ("#nnn ") from error and warning + * messages before passing them to the error or warning handler. + */ +#ifdef PNG_ERROR_NUMBERS_SUPPORTED +PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp + png_ptr, png_uint_32 strip_mode)); +#endif + +/* Added in libpng-1.2.6 */ +#ifdef PNG_SET_USER_LIMITS_SUPPORTED +PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp + png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max)); +PNG_EXPORT(png_uint_32,png_get_user_width_max) PNGARG((png_structp + png_ptr)); +PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp + png_ptr)); +/* Added in libpng-1.4.0 */ +PNG_EXPORT(void,png_set_chunk_cache_max) PNGARG((png_structp + png_ptr, png_uint_32 user_chunk_cache_max)); +PNG_EXPORT(png_uint_32,png_get_chunk_cache_max) + PNGARG((png_structp png_ptr)); +/* Added in libpng-1.4.1 */ +PNG_EXPORT(void,png_set_chunk_malloc_max) PNGARG((png_structp + png_ptr, png_alloc_size_t user_chunk_cache_max)); +PNG_EXPORT(png_alloc_size_t,png_get_chunk_malloc_max) + PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED) +PNG_EXPORT(png_uint_32,png_get_pixels_per_inch) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +PNG_EXPORT(png_uint_32,png_get_x_pixels_per_inch) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +PNG_EXPORT(png_uint_32,png_get_y_pixels_per_inch) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +PNG_EXPORT(float,png_get_x_offset_inches) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +PNG_EXPORT(float,png_get_y_offset_inches) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_pHYs_dpi) PNGARG((png_structp png_ptr, +png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); +#endif /* PNG_pHYs_SUPPORTED */ +#endif /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */ + +/* Added in libpng-1.4.0 */ +#ifdef PNG_IO_STATE_SUPPORTED +PNG_EXPORT(png_uint_32,png_get_io_state) PNGARG((png_structp png_ptr)); + +PNG_EXPORT(png_bytep,png_get_io_chunk_name) + PNGARG((png_structp png_ptr)); + +/* The flags returned by png_get_io_state() are the following: */ +#define PNG_IO_NONE 0x0000 /* no I/O at this moment */ +#define PNG_IO_READING 0x0001 /* currently reading */ +#define PNG_IO_WRITING 0x0002 /* currently writing */ +#define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ +#define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ +#define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ +#define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ +#define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ +#define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ +#endif /* ?PNG_IO_STATE_SUPPORTED */ + +/* Maintainer: Put new public prototypes here ^, in libpng.3, and project + * defs + */ + +#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED +/* With these routines we avoid an integer divide, which will be slower on + * most machines. However, it does take more operations than the corresponding + * divide method, so it may be slower on a few RISC systems. There are two + * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. + * + * Note that the rounding factors are NOT supposed to be the same! 128 and + * 32768 are correct for the NODIV code; 127 and 32767 are correct for the + * standard method. + * + * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] + */ + + /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ + +# define png_composite(composite, fg, alpha, bg) \ + { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ + * (png_uint_16)(alpha) \ + + (png_uint_16)(bg)*(png_uint_16)(255 \ + - (png_uint_16)(alpha)) + (png_uint_16)128); \ + (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } + +# define png_composite_16(composite, fg, alpha, bg) \ + { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ + * (png_uint_32)(alpha) \ + + (png_uint_32)(bg)*(png_uint_32)(65535L \ + - (png_uint_32)(alpha)) + (png_uint_32)32768L); \ + (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } + +#else /* Standard method using integer division */ + +# define png_composite(composite, fg, alpha, bg) \ + (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ + (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ + (png_uint_16)127) / 255) + +# define png_composite_16(composite, fg, alpha, bg) \ + (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ + (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \ + (png_uint_32)32767) / (png_uint_32)65535L) +#endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ + +#ifdef PNG_USE_READ_MACROS +/* Inline macros to do direct reads of bytes from the input buffer. + * The png_get_int_32() routine assumes we are using two's complement + * format for negative values, which is almost certainly true. + */ +# define png_get_uint_32(buf) \ + (((png_uint_32)(*(buf)) << 24) + \ + ((png_uint_32)(*((buf) + 1)) << 16) + \ + ((png_uint_32)(*((buf) + 2)) << 8) + \ + ((png_uint_32)(*((buf) + 3)))) +# define png_get_uint_16(buf) \ + (((png_uint_32)(*(buf)) << 8) + \ + ((png_uint_32)(*((buf) + 1)))) +# define png_get_int_32(buf) \ + ((png_int_32)((*(buf) & 0x80) \ + ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffff)+1)) \ + : (png_int_32)png_get_uint_32(buf))) +#else +PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf)); +PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf)); +#ifdef PNG_GET_INT_32_SUPPORTED +PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf)); +#endif +#endif +PNG_EXPORT(png_uint_32,png_get_uint_31) + PNGARG((png_structp png_ptr, png_bytep buf)); +/* No png_get_int_16 -- may be added if there's a real need for it. */ + +/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ +PNG_EXPORT(void,png_save_uint_32) + PNGARG((png_bytep buf, png_uint_32 i)); +PNG_EXPORT(void,png_save_int_32) + PNGARG((png_bytep buf, png_int_32 i)); + +/* Place a 16-bit number into a buffer in PNG byte order. + * The parameter is declared unsigned int, not png_uint_16, + * just to avoid potential problems on pre-ANSI C compilers. + */ +PNG_EXPORT(void,png_save_uint_16) + PNGARG((png_bytep buf, unsigned int i)); +/* No png_save_int_16 -- may be added if there's a real need for it. */ + +/* ************************************************************************* */ + +/* Various modes of operation. Note that after an init, mode is set to + * zero automatically when the structure is created. + */ +#define PNG_HAVE_IHDR 0x01 +#define PNG_HAVE_PLTE 0x02 +#define PNG_HAVE_IDAT 0x04 +#define PNG_AFTER_IDAT 0x08 /* Have complete zlib datastream */ +#define PNG_HAVE_IEND 0x10 +#define PNG_HAVE_gAMA 0x20 +#define PNG_HAVE_cHRM 0x40 + +#ifdef __cplusplus +} +#endif + +#endif /* PNG_VERSION_INFO_ONLY */ +/* Do not put anything past this line */ +#endif /* PNG_H */ diff --git a/engine/libs/mingw64-libs/pngconf.h b/engine/libs/mingw64-libs/pngconf.h new file mode 100755 index 000000000..7d1780246 --- /dev/null +++ b/engine/libs/mingw64-libs/pngconf.h @@ -0,0 +1,1540 @@ + +/* pngconf.h - machine configurable file for libpng + * + * libpng version 1.4.4 - September 23, 2010 + * For conditions of distribution and use, see copyright notice in png.h + * Copyright (c) 1998-2010 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + * + */ + +/* Any machine specific code is near the front of this file, so if you + * are configuring libpng for a machine, you may want to read the section + * starting here down to where it starts to typedef png_color, png_text, + * and png_info. + */ + +#ifndef PNGCONF_H +#define PNGCONF_H + +#ifndef PNG_NO_LIMITS_H +# include +#endif + +/* Added at libpng-1.2.9 */ + +/* config.h is created by and PNG_CONFIGURE_LIBPNG is set by the "configure" + * script. + */ +#ifdef PNG_CONFIGURE_LIBPNG +# ifdef HAVE_CONFIG_H +# include "config.h" +# endif +#endif + +/* + * Added at libpng-1.2.8 + * + * PNG_USER_CONFIG has to be defined on the compiler command line. This + * includes the resource compiler for Windows DLL configurations. + */ +#ifdef PNG_USER_CONFIG +# include "pngusr.h" +# ifndef PNG_USER_PRIVATEBUILD +# define PNG_USER_PRIVATEBUILD +# endif +#endif + +/* + * If you create a private DLL you should define in "pngusr.h" the following: + * #define PNG_USER_PRIVATEBUILD + * e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons." + * #define PNG_USER_DLLFNAME_POSTFIX + * e.g. // private DLL "libpng14gx.dll" + * #define PNG_USER_DLLFNAME_POSTFIX "gx" + * + * The following macros are also at your disposal if you want to complete the + * DLL VERSIONINFO structure. + * - PNG_USER_VERSIONINFO_COMMENTS + * - PNG_USER_VERSIONINFO_COMPANYNAME + * - PNG_USER_VERSIONINFO_LEGALTRADEMARKS + */ + +#ifdef __STDC__ +# ifdef SPECIALBUILD +# pragma message("PNG_LIBPNG_SPECIALBUILD (and deprecated SPECIALBUILD)\ + are now LIBPNG reserved macros. Use PNG_USER_PRIVATEBUILD instead.") +# endif + +# ifdef PRIVATEBUILD +# pragma message("PRIVATEBUILD is deprecated.\ + Use PNG_USER_PRIVATEBUILD instead.") +# define PNG_USER_PRIVATEBUILD PRIVATEBUILD +# endif +#endif /* __STDC__ */ + +/* End of material added to libpng-1.2.8 */ + +#ifndef PNG_VERSION_INFO_ONLY + +/* This is the size of the compression buffer, and thus the size of + * an IDAT chunk. Make this whatever size you feel is best for your + * machine. One of these will be allocated per png_struct. When this + * is full, it writes the data to the disk, and does some other + * calculations. Making this an extremely small size will slow + * the library down, but you may want to experiment to determine + * where it becomes significant, if you are concerned with memory + * usage. Note that zlib allocates at least 32Kb also. For readers, + * this describes the size of the buffer available to read the data in. + * Unless this gets smaller than the size of a row (compressed), + * it should not make much difference how big this is. + */ + +#ifndef PNG_ZBUF_SIZE +# define PNG_ZBUF_SIZE 8192 +#endif + +/* Enable if you want a write-only libpng */ + +#ifndef PNG_NO_READ_SUPPORTED +# define PNG_READ_SUPPORTED +#endif + +/* Enable if you want a read-only libpng */ + +#ifndef PNG_NO_WRITE_SUPPORTED +# define PNG_WRITE_SUPPORTED +#endif + +/* Enabled in 1.4.0. */ +#ifdef PNG_ALLOW_BENIGN_ERRORS +# define png_benign_error png_warning +# define png_chunk_benign_error png_chunk_warning +#else +# ifndef PNG_BENIGN_ERRORS_SUPPORTED +# define png_benign_error png_error +# define png_chunk_benign_error png_chunk_error +# endif +#endif + +/* Added at libpng version 1.4.0 */ +#if !defined(PNG_NO_WARNINGS) && !defined(PNG_WARNINGS_SUPPORTED) +# define PNG_WARNINGS_SUPPORTED +#endif + +/* Added at libpng version 1.4.0 */ +#if !defined(PNG_NO_ERROR_TEXT) && !defined(PNG_ERROR_TEXT_SUPPORTED) +# define PNG_ERROR_TEXT_SUPPORTED +#endif + +/* Added at libpng version 1.4.0 */ +#if !defined(PNG_NO_CHECK_cHRM) && !defined(PNG_CHECK_cHRM_SUPPORTED) +# define PNG_CHECK_cHRM_SUPPORTED +#endif + +/* Added at libpng version 1.4.0 */ +#if !defined(PNG_NO_ALIGNED_MEMORY) && !defined(PNG_ALIGNED_MEMORY_SUPPORTED) +# define PNG_ALIGNED_MEMORY_SUPPORTED +#endif + +/* Enabled by default in 1.2.0. You can disable this if you don't need to + support PNGs that are embedded in MNG datastreams */ +#ifndef PNG_NO_MNG_FEATURES +# ifndef PNG_MNG_FEATURES_SUPPORTED +# define PNG_MNG_FEATURES_SUPPORTED +# endif +#endif + +/* Added at libpng version 1.4.0 */ +#ifndef PNG_NO_FLOATING_POINT_SUPPORTED +# ifndef PNG_FLOATING_POINT_SUPPORTED +# define PNG_FLOATING_POINT_SUPPORTED +# endif +#endif + +/* Added at libpng-1.4.0beta49 for testing (this test is no longer used + in libpng and png_calloc() is always present) + */ +#define PNG_CALLOC_SUPPORTED + +/* If you are running on a machine where you cannot allocate more + * than 64K of memory at once, uncomment this. While libpng will not + * normally need that much memory in a chunk (unless you load up a very + * large file), zlib needs to know how big of a chunk it can use, and + * libpng thus makes sure to check any memory allocation to verify it + * will fit into memory. +#define PNG_MAX_MALLOC_64K + */ +#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) +# define PNG_MAX_MALLOC_64K +#endif + +/* Special munging to support doing things the 'cygwin' way: + * 'Normal' png-on-win32 defines/defaults: + * PNG_BUILD_DLL -- building dll + * PNG_USE_DLL -- building an application, linking to dll + * (no define) -- building static library, or building an + * application and linking to the static lib + * 'Cygwin' defines/defaults: + * PNG_BUILD_DLL -- (ignored) building the dll + * (no define) -- (ignored) building an application, linking to the dll + * PNG_STATIC -- (ignored) building the static lib, or building an + * application that links to the static lib. + * ALL_STATIC -- (ignored) building various static libs, or building an + * application that links to the static libs. + * Thus, + * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and + * this bit of #ifdefs will define the 'correct' config variables based on + * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but + * unnecessary. + * + * Also, the precedence order is: + * ALL_STATIC (since we can't #undef something outside our namespace) + * PNG_BUILD_DLL + * PNG_STATIC + * (nothing) == PNG_USE_DLL + * + * CYGWIN (2002-01-20): The preceding is now obsolete. With the advent + * of auto-import in binutils, we no longer need to worry about + * __declspec(dllexport) / __declspec(dllimport) and friends. Therefore, + * we don't need to worry about PNG_STATIC or ALL_STATIC when it comes + * to __declspec() stuff. However, we DO need to worry about + * PNG_BUILD_DLL and PNG_STATIC because those change some defaults + * such as CONSOLE_IO. + */ +#ifdef __CYGWIN__ +# ifdef ALL_STATIC +# ifdef PNG_BUILD_DLL +# undef PNG_BUILD_DLL +# endif +# ifdef PNG_USE_DLL +# undef PNG_USE_DLL +# endif +# ifdef PNG_DLL +# undef PNG_DLL +# endif +# ifndef PNG_STATIC +# define PNG_STATIC +# endif +# else +# ifdef PNG_BUILD_DLL +# ifdef PNG_STATIC +# undef PNG_STATIC +# endif +# ifdef PNG_USE_DLL +# undef PNG_USE_DLL +# endif +# ifndef PNG_DLL +# define PNG_DLL +# endif +# else +# ifdef PNG_STATIC +# ifdef PNG_USE_DLL +# undef PNG_USE_DLL +# endif +# ifdef PNG_DLL +# undef PNG_DLL +# endif +# else +# ifndef PNG_USE_DLL +# define PNG_USE_DLL +# endif +# ifndef PNG_DLL +# define PNG_DLL +# endif +# endif +# endif +# endif +#endif + +/* This protects us against compilers that run on a windowing system + * and thus don't have or would rather us not use the stdio types: + * stdin, stdout, and stderr. The only one currently used is stderr + * in png_error() and png_warning(). #defining PNG_NO_CONSOLE_IO will + * prevent these from being compiled and used. #defining PNG_NO_STDIO + * will also prevent these, plus will prevent the entire set of stdio + * macros and functions (FILE *, printf, etc.) from being compiled and used, + * unless (PNG_DEBUG > 0) has been #defined. + * + * #define PNG_NO_CONSOLE_IO + * #define PNG_NO_STDIO + */ + +#ifdef _WIN32_WCE +# define PNG_NO_CONSOLE_IO +# define PNG_NO_STDIO +# define PNG_NO_TIME_RFC1123 +# ifdef PNG_DEBUG +# undef PNG_DEBUG +# endif +#endif + +#if !defined(PNG_NO_STDIO) && !defined(PNG_STDIO_SUPPORTED) +# define PNG_STDIO_SUPPORTED +#endif + +#ifdef PNG_BUILD_DLL +# if !defined(PNG_CONSOLE_IO_SUPPORTED) && !defined(PNG_NO_CONSOLE_IO) +# define PNG_NO_CONSOLE_IO +# endif +#endif + +# ifdef PNG_NO_STDIO +# ifndef PNG_NO_CONSOLE_IO +# define PNG_NO_CONSOLE_IO +# endif +# ifdef PNG_DEBUG +# if (PNG_DEBUG > 0) +# include +# endif +# endif +# else +# include +# endif + +#if !(defined PNG_NO_CONSOLE_IO) && !defined(PNG_CONSOLE_IO_SUPPORTED) +# define PNG_CONSOLE_IO_SUPPORTED +#endif + +/* This macro protects us against machines that don't have function + * prototypes (ie K&R style headers). If your compiler does not handle + * function prototypes, define this macro and use the included ansi2knr. + * I've always been able to use _NO_PROTO as the indicator, but you may + * need to drag the empty declaration out in front of here, or change the + * ifdef to suit your own needs. + */ +#ifndef PNGARG + +#ifdef OF /* zlib prototype munger */ +# define PNGARG(arglist) OF(arglist) +#else + +#ifdef _NO_PROTO +# define PNGARG(arglist) () +#else +# define PNGARG(arglist) arglist +#endif /* _NO_PROTO */ + +#endif /* OF */ + +#endif /* PNGARG */ + +/* Try to determine if we are compiling on a Mac. Note that testing for + * just __MWERKS__ is not good enough, because the Codewarrior is now used + * on non-Mac platforms. + */ +#ifndef MACOS +# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \ + defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC) +# define MACOS +# endif +#endif + +/* Enough people need this for various reasons to include it here */ +#if !defined(MACOS) && !defined(RISCOS) +# include +#endif + +/* PNG_SETJMP_NOT_SUPPORTED and PNG_NO_SETJMP_SUPPORTED are deprecated. */ +#if !defined(PNG_NO_SETJMP) && \ + !defined(PNG_SETJMP_NOT_SUPPORTED) && !defined(PNG_NO_SETJMP_SUPPORTED) +# define PNG_SETJMP_SUPPORTED +#endif + +#ifdef PNG_SETJMP_SUPPORTED +/* This is an attempt to force a single setjmp behaviour on Linux. If + * the X config stuff didn't define _BSD_SOURCE we wouldn't need this. + * + * You can bypass this test if you know that your application uses exactly + * the same setjmp.h that was included when libpng was built. Only define + * PNG_SKIP_SETJMP_CHECK while building your application, prior to the + * application's '#include "png.h"'. Don't define PNG_SKIP_SETJMP_CHECK + * while building a separate libpng library for general use. + */ + +# ifndef PNG_SKIP_SETJMP_CHECK +# ifdef __linux__ +# ifdef _BSD_SOURCE +# define PNG_SAVE_BSD_SOURCE +# undef _BSD_SOURCE +# endif +# ifdef _SETJMP_H + /* If you encounter a compiler error here, see the explanation + * near the end of INSTALL. + */ + __pngconf.h__ in libpng already includes setjmp.h; + __dont__ include it again.; +# endif +# endif /* __linux__ */ +# endif /* PNG_SKIP_SETJMP_CHECK */ + + /* Include setjmp.h for error handling */ +# include + +# ifdef __linux__ +# ifdef PNG_SAVE_BSD_SOURCE +# ifdef _BSD_SOURCE +# undef _BSD_SOURCE +# endif +# define _BSD_SOURCE +# undef PNG_SAVE_BSD_SOURCE +# endif +# endif /* __linux__ */ +#endif /* PNG_SETJMP_SUPPORTED */ + +#ifdef BSD +# include +#else +# include +#endif + +/* Other defines for things like memory and the like can go here. */ + +/* This controls how fine the quantizing gets. As this allocates + * a largish chunk of memory (32K), those who are not as concerned + * with quantizing quality can decrease some or all of these. + */ + +/* Prior to libpng-1.4.2, these were PNG_DITHER_*_BITS + * These migration aids will be removed from libpng-1.5.0. + */ +#ifdef PNG_DITHER_RED_BITS +# define PNG_QUANTIZE_RED_BITS PNG_DITHER_RED_BITS +#endif +#ifdef PNG_DITHER_GREEN_BITS +# define PNG_QUANTIZE_GREEN_BITS PNG_DITHER_GREEN_BITS +#endif +#ifdef PNG_DITHER_BLUE_BITS +# define PNG_QUANTIZE_BLUE_BITS PNG_DITHER_BLUE_BITS +#endif + +#ifndef PNG_QUANTIZE_RED_BITS +# define PNG_QUANTIZE_RED_BITS 5 +#endif +#ifndef PNG_QUANTIZE_GREEN_BITS +# define PNG_QUANTIZE_GREEN_BITS 5 +#endif +#ifndef PNG_QUANTIZE_BLUE_BITS +# define PNG_QUANTIZE_BLUE_BITS 5 +#endif + +/* This controls how fine the gamma correction becomes when you + * are only interested in 8 bits anyway. Increasing this value + * results in more memory being used, and more pow() functions + * being called to fill in the gamma tables. Don't set this value + * less then 8, and even that may not work (I haven't tested it). + */ + +#ifndef PNG_MAX_GAMMA_8 +# define PNG_MAX_GAMMA_8 11 +#endif + +/* This controls how much a difference in gamma we can tolerate before + * we actually start doing gamma conversion. + */ +#ifndef PNG_GAMMA_THRESHOLD +# define PNG_GAMMA_THRESHOLD 0.05 +#endif + +/* The following uses const char * instead of char * for error + * and warning message functions, so some compilers won't complain. + * If you do not want to use const, define PNG_NO_CONST. + */ + +#ifndef PNG_CONST +# ifndef PNG_NO_CONST +# define PNG_CONST const +# else +# define PNG_CONST +# endif +#endif + +/* The following defines give you the ability to remove code from the + * library that you will not be using. I wish I could figure out how to + * automate this, but I can't do that without making it seriously hard + * on the users. So if you are not using an ability, change the #define + * to an #undef, or pass in PNG_NO_feature and that part of the library + * will not be compiled. + + * If your linker can't find a function, you may want to make sure the + * ability is defined here. Some of these depend upon some others being + * defined. I haven't figured out all the interactions here, so you may + * have to experiment awhile to get everything to compile. If you are + * creating or using a shared library, you probably shouldn't touch this, + * as it will affect the size of the structures, and this will cause bad + * things to happen if the library and/or application ever change. + */ + +/* Any features you will not be using can be undef'ed here */ + +/* GR-P, 0.96a: Set "*TRANSFORMS_SUPPORTED as default but allow user + * to turn it off with PNG_NO_READ|WRITE_TRANSFORMS on the compile line, + * then pick and choose which ones to define without having to edit this + * file. It is safe to use the PNG_NO_READ|WRITE_TRANSFORMS + * if you only want to have a png-compliant reader/writer but don't need + * any of the extra transformations. This saves about 80 kbytes in a + * typical installation of the library. (PNG_NO_* form added in version + * 1.0.1c, for consistency; PNG_*_TRANSFORMS_NOT_SUPPORTED deprecated in + * 1.4.0) + */ + +/* Ignore attempt to turn off both floating and fixed point support */ +#if !defined(PNG_FLOATING_POINT_SUPPORTED) || \ + !defined(PNG_NO_FIXED_POINT_SUPPORTED) +# define PNG_FIXED_POINT_SUPPORTED +#endif + +#ifdef PNG_READ_SUPPORTED + +/* PNG_READ_TRANSFORMS_NOT_SUPPORTED is deprecated. */ +#if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \ + !defined(PNG_NO_READ_TRANSFORMS) +# define PNG_READ_TRANSFORMS_SUPPORTED +#endif + +#ifdef PNG_READ_TRANSFORMS_SUPPORTED +# ifndef PNG_NO_READ_EXPAND +# define PNG_READ_EXPAND_SUPPORTED +# endif +# ifndef PNG_NO_READ_SHIFT +# define PNG_READ_SHIFT_SUPPORTED +# endif +# ifndef PNG_NO_READ_PACK +# define PNG_READ_PACK_SUPPORTED +# endif +# ifndef PNG_NO_READ_BGR +# define PNG_READ_BGR_SUPPORTED +# endif +# ifndef PNG_NO_READ_SWAP +# define PNG_READ_SWAP_SUPPORTED +# endif +# ifndef PNG_NO_READ_PACKSWAP +# define PNG_READ_PACKSWAP_SUPPORTED +# endif +# ifndef PNG_NO_READ_INVERT +# define PNG_READ_INVERT_SUPPORTED +# endif +# ifndef PNG_NO_READ_QUANTIZE + /* Prior to libpng-1.4.0 this was PNG_READ_DITHER_SUPPORTED */ +# ifndef PNG_NO_READ_DITHER /* This migration aid will be removed */ +# define PNG_READ_QUANTIZE_SUPPORTED +# endif +# endif +# ifndef PNG_NO_READ_BACKGROUND +# define PNG_READ_BACKGROUND_SUPPORTED +# endif +# ifndef PNG_NO_READ_16_TO_8 +# define PNG_READ_16_TO_8_SUPPORTED +# endif +# ifndef PNG_NO_READ_FILLER +# define PNG_READ_FILLER_SUPPORTED +# endif +# ifndef PNG_NO_READ_GAMMA +# define PNG_READ_GAMMA_SUPPORTED +# endif +# ifndef PNG_NO_READ_GRAY_TO_RGB +# define PNG_READ_GRAY_TO_RGB_SUPPORTED +# endif +# ifndef PNG_NO_READ_SWAP_ALPHA +# define PNG_READ_SWAP_ALPHA_SUPPORTED +# endif +# ifndef PNG_NO_READ_INVERT_ALPHA +# define PNG_READ_INVERT_ALPHA_SUPPORTED +# endif +# ifndef PNG_NO_READ_STRIP_ALPHA +# define PNG_READ_STRIP_ALPHA_SUPPORTED +# endif +# ifndef PNG_NO_READ_USER_TRANSFORM +# define PNG_READ_USER_TRANSFORM_SUPPORTED +# endif +# ifndef PNG_NO_READ_RGB_TO_GRAY +# define PNG_READ_RGB_TO_GRAY_SUPPORTED +# endif +#endif /* PNG_READ_TRANSFORMS_SUPPORTED */ + +/* PNG_PROGRESSIVE_READ_NOT_SUPPORTED is deprecated. */ +#if !defined(PNG_NO_PROGRESSIVE_READ) && \ + !defined(PNG_PROGRESSIVE_READ_NOT_SUPPORTED) /* if you don't do progressive */ +# define PNG_PROGRESSIVE_READ_SUPPORTED /* reading. This is not talking */ +#endif /* about interlacing capability! You'll */ + /* still have interlacing unless you change the following define: */ + +#define PNG_READ_INTERLACING_SUPPORTED /* required for PNG-compliant decoders */ + +/* PNG_NO_SEQUENTIAL_READ_SUPPORTED is deprecated. */ +#if !defined(PNG_NO_SEQUENTIAL_READ) && \ + !defined(PNG_SEQUENTIAL_READ_SUPPORTED) && \ + !defined(PNG_NO_SEQUENTIAL_READ_SUPPORTED) +# define PNG_SEQUENTIAL_READ_SUPPORTED +#endif + +#ifndef PNG_NO_READ_COMPOSITE_NODIV +# ifndef PNG_NO_READ_COMPOSITED_NODIV /* libpng-1.0.x misspelling */ +# define PNG_READ_COMPOSITE_NODIV_SUPPORTED /* well tested on Intel, SGI */ +# endif +#endif + +#if !defined(PNG_NO_GET_INT_32) || defined(PNG_READ_oFFS_SUPPORTED) || \ + defined(PNG_READ_pCAL_SUPPORTED) +# ifndef PNG_GET_INT_32_SUPPORTED +# define PNG_GET_INT_32_SUPPORTED +# endif +#endif + +#endif /* PNG_READ_SUPPORTED */ + +#ifdef PNG_WRITE_SUPPORTED + +/* PNG_WRITE_TRANSFORMS_NOT_SUPPORTED is deprecated. */ +#if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \ + !defined(PNG_NO_WRITE_TRANSFORMS) +# define PNG_WRITE_TRANSFORMS_SUPPORTED +#endif + +#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED +# ifndef PNG_NO_WRITE_SHIFT +# define PNG_WRITE_SHIFT_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_PACK +# define PNG_WRITE_PACK_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_BGR +# define PNG_WRITE_BGR_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_SWAP +# define PNG_WRITE_SWAP_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_PACKSWAP +# define PNG_WRITE_PACKSWAP_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_INVERT +# define PNG_WRITE_INVERT_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_FILLER +# define PNG_WRITE_FILLER_SUPPORTED /* same as WRITE_STRIP_ALPHA */ +# endif +# ifndef PNG_NO_WRITE_SWAP_ALPHA +# define PNG_WRITE_SWAP_ALPHA_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_INVERT_ALPHA +# define PNG_WRITE_INVERT_ALPHA_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_USER_TRANSFORM +# define PNG_WRITE_USER_TRANSFORM_SUPPORTED +# endif +#endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */ + +#if !defined(PNG_NO_WRITE_INTERLACING_SUPPORTED) && \ + !defined(PNG_WRITE_INTERLACING_SUPPORTED) + /* This is not required for PNG-compliant encoders, but can cause + * trouble if left undefined + */ +# define PNG_WRITE_INTERLACING_SUPPORTED +#endif + +#if !defined(PNG_NO_WRITE_WEIGHTED_FILTER) && \ + !defined(PNG_WRITE_WEIGHTED_FILTER) && \ + defined(PNG_FLOATING_POINT_SUPPORTED) +# define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED +#endif + +#ifndef PNG_NO_WRITE_FLUSH +# define PNG_WRITE_FLUSH_SUPPORTED +#endif + +#if !defined(PNG_NO_SAVE_INT_32) || defined(PNG_WRITE_oFFS_SUPPORTED) || \ + defined(PNG_WRITE_pCAL_SUPPORTED) +# ifndef PNG_SAVE_INT_32_SUPPORTED +# define PNG_SAVE_INT_32_SUPPORTED +# endif +#endif + +#endif /* PNG_WRITE_SUPPORTED */ + +#define PNG_NO_ERROR_NUMBERS + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) +# ifndef PNG_NO_USER_TRANSFORM_PTR +# define PNG_USER_TRANSFORM_PTR_SUPPORTED +# endif +#endif + +#if defined(PNG_STDIO_SUPPORTED) && !defined(PNG_TIME_RFC1123_SUPPORTED) +# define PNG_TIME_RFC1123_SUPPORTED +#endif + +/* This adds extra functions in pngget.c for accessing data from the + * info pointer (added in version 0.99) + * png_get_image_width() + * png_get_image_height() + * png_get_bit_depth() + * png_get_color_type() + * png_get_compression_type() + * png_get_filter_type() + * png_get_interlace_type() + * png_get_pixel_aspect_ratio() + * png_get_pixels_per_meter() + * png_get_x_offset_pixels() + * png_get_y_offset_pixels() + * png_get_x_offset_microns() + * png_get_y_offset_microns() + */ +#if !defined(PNG_NO_EASY_ACCESS) && !defined(PNG_EASY_ACCESS_SUPPORTED) +# define PNG_EASY_ACCESS_SUPPORTED +#endif + +/* Added at libpng-1.2.0 */ +#if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED) +# define PNG_USER_MEM_SUPPORTED +#endif + +/* Added at libpng-1.2.6 */ +#ifndef PNG_NO_SET_USER_LIMITS +# ifndef PNG_SET_USER_LIMITS_SUPPORTED +# define PNG_SET_USER_LIMITS_SUPPORTED +# endif + /* Feature added at libpng-1.4.0, this flag added at 1.4.1 */ +# ifndef PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED +# define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED +# endif + /* Feature added at libpng-1.4.1, this flag added at 1.4.1 */ +# ifndef PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED +# define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED +# endif +#endif + +/* Added at libpng-1.2.43 */ +#ifndef PNG_USER_LIMITS_SUPPORTED +# ifndef PNG_NO_USER_LIMITS +# define PNG_USER_LIMITS_SUPPORTED +# endif +#endif + +/* Added at libpng-1.0.16 and 1.2.6. To accept all valid PNGs no matter + * how large, set these two limits to 0x7fffffffL + */ +#ifndef PNG_USER_WIDTH_MAX +# define PNG_USER_WIDTH_MAX 1000000L +#endif +#ifndef PNG_USER_HEIGHT_MAX +# define PNG_USER_HEIGHT_MAX 1000000L +#endif + +/* Added at libpng-1.2.43. To accept all valid PNGs no matter + * how large, set these two limits to 0. + */ +#ifndef PNG_USER_CHUNK_CACHE_MAX +# define PNG_USER_CHUNK_CACHE_MAX 0 +#endif + +/* Added at libpng-1.2.43 */ +#ifndef PNG_USER_CHUNK_MALLOC_MAX +# define PNG_USER_CHUNK_MALLOC_MAX 0 +#endif + +/* Added at libpng-1.4.0 */ +#if !defined(PNG_NO_IO_STATE) && !defined(PNG_IO_STATE_SUPPORTED) +# define PNG_IO_STATE_SUPPORTED +#endif + +#ifndef PNG_LITERAL_SHARP +# define PNG_LITERAL_SHARP 0x23 +#endif +#ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET +# define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b +#endif +#ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET +# define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d +#endif +#ifndef PNG_STRING_NEWLINE +#define PNG_STRING_NEWLINE "\n" +#endif + +/* These are currently experimental features, define them if you want */ + +/* Very little testing */ +/* +#ifdef PNG_READ_SUPPORTED +# ifndef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED +# define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED +# endif +#endif +*/ + +/* This is only for PowerPC big-endian and 680x0 systems */ +/* some testing */ +/* +#ifndef PNG_READ_BIG_ENDIAN_SUPPORTED +# define PNG_READ_BIG_ENDIAN_SUPPORTED +#endif +*/ + +#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) +# define PNG_USE_READ_MACROS +#endif + +/* Buggy compilers (e.g., gcc 2.7.2.2) need PNG_NO_POINTER_INDEXING */ + +#if !defined(PNG_NO_POINTER_INDEXING) && \ + !defined(PNG_POINTER_INDEXING_SUPPORTED) +# define PNG_POINTER_INDEXING_SUPPORTED +#endif + + +/* Any chunks you are not interested in, you can undef here. The + * ones that allocate memory may be expecially important (hIST, + * tEXt, zTXt, tRNS, pCAL). Others will just save time and make png_info + * a bit smaller. + */ + +/* The size of the png_text structure changed in libpng-1.0.6 when + * iTXt support was added. iTXt support was turned off by default through + * libpng-1.2.x, to support old apps that malloc the png_text structure + * instead of calling png_set_text() and letting libpng malloc it. It + * was turned on by default in libpng-1.4.0. + */ + +/* PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED is deprecated. */ +#if defined(PNG_READ_SUPPORTED) && \ + !defined(PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ + !defined(PNG_NO_READ_ANCILLARY_CHUNKS) +# define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED +#endif + +/* PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED is deprecated. */ +#if defined(PNG_WRITE_SUPPORTED) && \ + !defined(PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ + !defined(PNG_NO_WRITE_ANCILLARY_CHUNKS) +# define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED +#endif + +#ifdef PNG_READ_ANCILLARY_CHUNKS_SUPPORTED + +#ifdef PNG_NO_READ_TEXT +# define PNG_NO_READ_iTXt +# define PNG_NO_READ_tEXt +# define PNG_NO_READ_zTXt +#endif + +#ifndef PNG_NO_READ_bKGD +# define PNG_READ_bKGD_SUPPORTED +# define PNG_bKGD_SUPPORTED +#endif +#ifndef PNG_NO_READ_cHRM +# define PNG_READ_cHRM_SUPPORTED +# define PNG_cHRM_SUPPORTED +#endif +#ifndef PNG_NO_READ_gAMA +# define PNG_READ_gAMA_SUPPORTED +# define PNG_gAMA_SUPPORTED +#endif +#ifndef PNG_NO_READ_hIST +# define PNG_READ_hIST_SUPPORTED +# define PNG_hIST_SUPPORTED +#endif +#ifndef PNG_NO_READ_iCCP +# define PNG_READ_iCCP_SUPPORTED +# define PNG_iCCP_SUPPORTED +#endif +#ifndef PNG_NO_READ_iTXt +# ifndef PNG_READ_iTXt_SUPPORTED +# define PNG_READ_iTXt_SUPPORTED +# endif +# ifndef PNG_iTXt_SUPPORTED +# define PNG_iTXt_SUPPORTED +# endif +#endif +#ifndef PNG_NO_READ_oFFs +# define PNG_READ_oFFs_SUPPORTED +# define PNG_oFFs_SUPPORTED +#endif +#ifndef PNG_NO_READ_pCAL +# define PNG_READ_pCAL_SUPPORTED +# define PNG_pCAL_SUPPORTED +#endif +#ifndef PNG_NO_READ_sCAL +# define PNG_READ_sCAL_SUPPORTED +# define PNG_sCAL_SUPPORTED +#endif +#ifndef PNG_NO_READ_pHYs +# define PNG_READ_pHYs_SUPPORTED +# define PNG_pHYs_SUPPORTED +#endif +#ifndef PNG_NO_READ_sBIT +# define PNG_READ_sBIT_SUPPORTED +# define PNG_sBIT_SUPPORTED +#endif +#ifndef PNG_NO_READ_sPLT +# define PNG_READ_sPLT_SUPPORTED +# define PNG_sPLT_SUPPORTED +#endif +#ifndef PNG_NO_READ_sRGB +# define PNG_READ_sRGB_SUPPORTED +# define PNG_sRGB_SUPPORTED +#endif +#ifndef PNG_NO_READ_tEXt +# define PNG_READ_tEXt_SUPPORTED +# define PNG_tEXt_SUPPORTED +#endif +#ifndef PNG_NO_READ_tIME +# define PNG_READ_tIME_SUPPORTED +# define PNG_tIME_SUPPORTED +#endif +#ifndef PNG_NO_READ_tRNS +# define PNG_READ_tRNS_SUPPORTED +# define PNG_tRNS_SUPPORTED +#endif +#ifndef PNG_NO_READ_zTXt +# define PNG_READ_zTXt_SUPPORTED +# define PNG_zTXt_SUPPORTED +#endif +#ifndef PNG_NO_READ_OPT_PLTE +# define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */ +#endif /* optional PLTE chunk in RGB and RGBA images */ +#if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \ + defined(PNG_READ_zTXt_SUPPORTED) +# define PNG_READ_TEXT_SUPPORTED +# define PNG_TEXT_SUPPORTED +#endif + +#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */ + +#ifndef PNG_NO_READ_UNKNOWN_CHUNKS +# ifndef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +# define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +# endif +# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED +# define PNG_UNKNOWN_CHUNKS_SUPPORTED +# endif +# ifndef PNG_READ_USER_CHUNKS_SUPPORTED +# define PNG_READ_USER_CHUNKS_SUPPORTED +# endif +#endif +#ifndef PNG_NO_READ_USER_CHUNKS +# ifndef PNG_READ_USER_CHUNKS_SUPPORTED +# define PNG_READ_USER_CHUNKS_SUPPORTED +# endif +# ifndef PNG_USER_CHUNKS_SUPPORTED +# define PNG_USER_CHUNKS_SUPPORTED +# endif +#endif +#ifndef PNG_NO_HANDLE_AS_UNKNOWN +# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED +# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED +# endif +#endif + +#ifdef PNG_WRITE_SUPPORTED +#ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED + +#ifdef PNG_NO_WRITE_TEXT +# define PNG_NO_WRITE_iTXt +# define PNG_NO_WRITE_tEXt +# define PNG_NO_WRITE_zTXt +#endif +#ifndef PNG_NO_WRITE_bKGD +# define PNG_WRITE_bKGD_SUPPORTED +# ifndef PNG_bKGD_SUPPORTED +# define PNG_bKGD_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_cHRM +# define PNG_WRITE_cHRM_SUPPORTED +# ifndef PNG_cHRM_SUPPORTED +# define PNG_cHRM_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_gAMA +# define PNG_WRITE_gAMA_SUPPORTED +# ifndef PNG_gAMA_SUPPORTED +# define PNG_gAMA_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_hIST +# define PNG_WRITE_hIST_SUPPORTED +# ifndef PNG_hIST_SUPPORTED +# define PNG_hIST_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_iCCP +# define PNG_WRITE_iCCP_SUPPORTED +# ifndef PNG_iCCP_SUPPORTED +# define PNG_iCCP_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_iTXt +# ifndef PNG_WRITE_iTXt_SUPPORTED +# define PNG_WRITE_iTXt_SUPPORTED +# endif +# ifndef PNG_iTXt_SUPPORTED +# define PNG_iTXt_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_oFFs +# define PNG_WRITE_oFFs_SUPPORTED +# ifndef PNG_oFFs_SUPPORTED +# define PNG_oFFs_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_pCAL +# define PNG_WRITE_pCAL_SUPPORTED +# ifndef PNG_pCAL_SUPPORTED +# define PNG_pCAL_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_sCAL +# define PNG_WRITE_sCAL_SUPPORTED +# ifndef PNG_sCAL_SUPPORTED +# define PNG_sCAL_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_pHYs +# define PNG_WRITE_pHYs_SUPPORTED +# ifndef PNG_pHYs_SUPPORTED +# define PNG_pHYs_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_sBIT +# define PNG_WRITE_sBIT_SUPPORTED +# ifndef PNG_sBIT_SUPPORTED +# define PNG_sBIT_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_sPLT +# define PNG_WRITE_sPLT_SUPPORTED +# ifndef PNG_sPLT_SUPPORTED +# define PNG_sPLT_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_sRGB +# define PNG_WRITE_sRGB_SUPPORTED +# ifndef PNG_sRGB_SUPPORTED +# define PNG_sRGB_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_tEXt +# define PNG_WRITE_tEXt_SUPPORTED +# ifndef PNG_tEXt_SUPPORTED +# define PNG_tEXt_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_tIME +# define PNG_WRITE_tIME_SUPPORTED +# ifndef PNG_tIME_SUPPORTED +# define PNG_tIME_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_tRNS +# define PNG_WRITE_tRNS_SUPPORTED +# ifndef PNG_tRNS_SUPPORTED +# define PNG_tRNS_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_zTXt +# define PNG_WRITE_zTXt_SUPPORTED +# ifndef PNG_zTXt_SUPPORTED +# define PNG_zTXt_SUPPORTED +# endif +#endif +#if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \ + defined(PNG_WRITE_zTXt_SUPPORTED) +# define PNG_WRITE_TEXT_SUPPORTED +# ifndef PNG_TEXT_SUPPORTED +# define PNG_TEXT_SUPPORTED +# endif +#endif + +#ifdef PNG_WRITE_tIME_SUPPORTED +# ifndef PNG_NO_CONVERT_tIME +# ifndef _WIN32_WCE +/* The "tm" structure is not supported on WindowsCE */ +# ifndef PNG_CONVERT_tIME_SUPPORTED +# define PNG_CONVERT_tIME_SUPPORTED +# endif +# endif +# endif +#endif + +#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */ + +#ifndef PNG_NO_WRITE_FILTER +# ifndef PNG_WRITE_FILTER_SUPPORTED +# define PNG_WRITE_FILTER_SUPPORTED +# endif +#endif + +#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS +# define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED +# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED +# define PNG_UNKNOWN_CHUNKS_SUPPORTED +# endif +#endif +#ifndef PNG_NO_HANDLE_AS_UNKNOWN +# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED +# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED +# endif +#endif +#endif /* PNG_WRITE_SUPPORTED */ + +/* Turn this off to disable png_read_png() and + * png_write_png() and leave the row_pointers member + * out of the info structure. + */ +#ifndef PNG_NO_INFO_IMAGE +# define PNG_INFO_IMAGE_SUPPORTED +#endif + +/* Need the time information for converting tIME chunks */ +#ifdef PNG_CONVERT_tIME_SUPPORTED + /* "time.h" functions are not supported on WindowsCE */ +# include +#endif + +/* Some typedefs to get us started. These should be safe on most of the + * common platforms. The typedefs should be at least as large as the + * numbers suggest (a png_uint_32 must be at least 32 bits long), but they + * don't have to be exactly that size. Some compilers dislike passing + * unsigned shorts as function parameters, so you may be better off using + * unsigned int for png_uint_16. + */ + +#if defined(INT_MAX) && (INT_MAX > 0x7ffffffeL) +typedef unsigned int png_uint_32; +typedef int png_int_32; +#else +typedef unsigned long png_uint_32; +typedef long png_int_32; +#endif +typedef unsigned short png_uint_16; +typedef short png_int_16; +typedef unsigned char png_byte; + +#ifdef PNG_NO_SIZE_T + typedef unsigned int png_size_t; +#else + typedef size_t png_size_t; +#endif +#define png_sizeof(x) (sizeof (x)) + +/* The following is needed for medium model support. It cannot be in the + * pngpriv.h header. Needs modification for other compilers besides + * MSC. Model independent support declares all arrays and pointers to be + * large using the far keyword. The zlib version used must also support + * model independent data. As of version zlib 1.0.4, the necessary changes + * have been made in zlib. The USE_FAR_KEYWORD define triggers other + * changes that are needed. (Tim Wegner) + */ + +/* Separate compiler dependencies (problem here is that zlib.h always + * defines FAR. (SJT) + */ +#ifdef __BORLANDC__ +# if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__) +# define LDATA 1 +# else +# define LDATA 0 +# endif + /* GRR: why is Cygwin in here? Cygwin is not Borland C... */ +# if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__) +# define PNG_MAX_MALLOC_64K +# if (LDATA != 1) +# ifndef FAR +# define FAR __far +# endif +# define USE_FAR_KEYWORD +# endif /* LDATA != 1 */ + /* Possibly useful for moving data out of default segment. + * Uncomment it if you want. Could also define FARDATA as + * const if your compiler supports it. (SJT) +# define FARDATA FAR + */ +# endif /* __WIN32__, __FLAT__, __CYGWIN__ */ +#endif /* __BORLANDC__ */ + + +/* Suggest testing for specific compiler first before testing for + * FAR. The Watcom compiler defines both __MEDIUM__ and M_I86MM, + * making reliance oncertain keywords suspect. (SJT) + */ + +/* MSC Medium model */ +#ifdef FAR +# ifdef M_I86MM +# define USE_FAR_KEYWORD +# define FARDATA FAR +# include +# endif +#endif + +/* SJT: default case */ +#ifndef FAR +# define FAR +#endif + +/* At this point FAR is always defined */ +#ifndef FARDATA +# define FARDATA +#endif + +/* Typedef for floating-point numbers that are converted + to fixed-point with a multiple of 100,000, e.g., int_gamma */ +typedef png_int_32 png_fixed_point; + +/* Add typedefs for pointers */ +typedef void FAR * png_voidp; +typedef png_byte FAR * png_bytep; +typedef png_uint_32 FAR * png_uint_32p; +typedef png_int_32 FAR * png_int_32p; +typedef png_uint_16 FAR * png_uint_16p; +typedef png_int_16 FAR * png_int_16p; +typedef PNG_CONST char FAR * png_const_charp; +typedef char FAR * png_charp; +typedef png_fixed_point FAR * png_fixed_point_p; + +#ifndef PNG_NO_STDIO +typedef FILE * png_FILE_p; +#endif + +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double FAR * png_doublep; +#endif + +/* Pointers to pointers; i.e. arrays */ +typedef png_byte FAR * FAR * png_bytepp; +typedef png_uint_32 FAR * FAR * png_uint_32pp; +typedef png_int_32 FAR * FAR * png_int_32pp; +typedef png_uint_16 FAR * FAR * png_uint_16pp; +typedef png_int_16 FAR * FAR * png_int_16pp; +typedef PNG_CONST char FAR * FAR * png_const_charpp; +typedef char FAR * FAR * png_charpp; +typedef png_fixed_point FAR * FAR * png_fixed_point_pp; +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double FAR * FAR * png_doublepp; +#endif + +/* Pointers to pointers to pointers; i.e., pointer to array */ +typedef char FAR * FAR * FAR * png_charppp; + +/* Define PNG_BUILD_DLL if the module being built is a Windows + * LIBPNG DLL. + * + * Define PNG_USE_DLL if you want to *link* to the Windows LIBPNG DLL. + * It is equivalent to Microsoft predefined macro _DLL that is + * automatically defined when you compile using the share + * version of the CRT (C Run-Time library) + * + * The cygwin mods make this behavior a little different: + * Define PNG_BUILD_DLL if you are building a dll for use with cygwin + * Define PNG_STATIC if you are building a static library for use with cygwin, + * -or- if you are building an application that you want to link to the + * static library. + * PNG_USE_DLL is defined by default (no user action needed) unless one of + * the other flags is defined. + */ + +#if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL)) +# define PNG_DLL +#endif + +/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall", + * you may get warnings regarding the linkage of png_zalloc and png_zfree. + * Don't ignore those warnings; you must also reset the default calling + * convention in your compiler to match your PNGAPI, and you must build + * zlib and your applications the same way you build libpng. + */ + +#ifdef __CYGWIN__ +# undef PNGAPI +# define PNGAPI __cdecl +# undef PNG_IMPEXP +# define PNG_IMPEXP +#endif + +#ifdef __WATCOMC__ +# ifndef PNGAPI +# define PNGAPI +# endif +#endif + +#if defined(__MINGW32__) && !defined(PNG_MODULEDEF) +# ifndef PNG_NO_MODULEDEF +# define PNG_NO_MODULEDEF +# endif +#endif + +#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF) +# define PNG_IMPEXP +#endif + +#if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \ + (( defined(_Windows) || defined(_WINDOWS) || \ + defined(WIN32) || defined(_WIN32) || defined(__WIN32__) )) + +# ifndef PNGAPI +# if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800)) +# define PNGAPI __cdecl +# else +# define PNGAPI _cdecl +# endif +# endif + +# if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \ + 0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */) +# define PNG_IMPEXP +# endif + +# ifndef PNG_IMPEXP + +# define PNG_EXPORT_TYPE1(type,symbol) PNG_IMPEXP type PNGAPI symbol +# define PNG_EXPORT_TYPE2(type,symbol) type PNG_IMPEXP PNGAPI symbol + + /* Borland/Microsoft */ +# if defined(_MSC_VER) || defined(__BORLANDC__) +# if (_MSC_VER >= 800) || (__BORLANDC__ >= 0x500) +# define PNG_EXPORT PNG_EXPORT_TYPE1 +# else +# define PNG_EXPORT PNG_EXPORT_TYPE2 +# ifdef PNG_BUILD_DLL +# define PNG_IMPEXP __export +# else +# define PNG_IMPEXP /*__import */ /* doesn't exist AFAIK in VC++ */ +# endif /* Exists in Borland C++ for + C++ classes (== huge) */ +# endif +# endif + +# ifndef PNG_IMPEXP +# ifdef PNG_BUILD_DLL +# define PNG_IMPEXP __declspec(dllexport) +# else +# define PNG_IMPEXP __declspec(dllimport) +# endif +# endif +# endif /* PNG_IMPEXP */ +#else /* !(DLL || non-cygwin WINDOWS) */ +# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) +# ifndef PNGAPI +# define PNGAPI _System +# endif +# else +# if 0 /* ... other platforms, with other meanings */ +# endif +# endif +#endif + +#ifndef PNGAPI +# define PNGAPI +#endif +#ifndef PNG_IMPEXP +# define PNG_IMPEXP +#endif + +#ifdef PNG_BUILDSYMS +# ifndef PNG_EXPORT +# define PNG_EXPORT(type,symbol) PNG_FUNCTION_EXPORT symbol END +# endif +#endif + +#ifndef PNG_EXPORT +# define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol +#endif + +#define PNG_USE_LOCAL_ARRAYS /* Not used in libpng, defined for legacy apps */ + +/* Support for compiler specific function attributes. These are used + * so that where compiler support is available incorrect use of API + * functions in png.h will generate compiler warnings. + * + * Added at libpng-1.2.41. + */ + +#ifndef PNG_NO_PEDANTIC_WARNINGS +# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED +# define PNG_PEDANTIC_WARNINGS_SUPPORTED +# endif +#endif + +#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED +/* Support for compiler specific function attributes. These are used + * so that where compiler support is available incorrect use of API + * functions in png.h will generate compiler warnings. Added at libpng + * version 1.2.41. + */ +# ifdef __GNUC__ +# ifndef PNG_USE_RESULT +# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) +# endif +# ifndef PNG_NORETURN +# define PNG_NORETURN __attribute__((__noreturn__)) +# endif +# ifndef PNG_ALLOCATED +# define PNG_ALLOCATED __attribute__((__malloc__)) +# endif + + /* This specifically protects structure members that should only be + * accessed from within the library, therefore should be empty during + * a library build. + */ +# ifndef PNG_DEPRECATED +# define PNG_DEPRECATED __attribute__((__deprecated__)) +# endif +# ifndef PNG_DEPSTRUCT +# define PNG_DEPSTRUCT __attribute__((__deprecated__)) +# endif +# ifndef PNG_PRIVATE +# if 0 /* Doesn't work so we use deprecated instead*/ +# define PNG_PRIVATE \ + __attribute__((warning("This function is not exported by libpng."))) +# else +# define PNG_PRIVATE \ + __attribute__((__deprecated__)) +# endif +# endif /* PNG_PRIVATE */ +# endif /* __GNUC__ */ +#endif /* PNG_PEDANTIC_WARNINGS */ + +#ifndef PNG_DEPRECATED +# define PNG_DEPRECATED /* Use of this function is deprecated */ +#endif +#ifndef PNG_USE_RESULT +# define PNG_USE_RESULT /* The result of this function must be checked */ +#endif +#ifndef PNG_NORETURN +# define PNG_NORETURN /* This function does not return */ +#endif +#ifndef PNG_ALLOCATED +# define PNG_ALLOCATED /* The result of the function is new memory */ +#endif +#ifndef PNG_DEPSTRUCT +# define PNG_DEPSTRUCT /* Access to this struct member is deprecated */ +#endif +#ifndef PNG_PRIVATE +# define PNG_PRIVATE /* This is a private libpng function */ +#endif + +/* Users may want to use these so they are not private. Any library + * functions that are passed far data must be model-independent. + */ + +/* memory model/platform independent fns */ +#ifndef PNG_ABORT +# if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) +# define PNG_ABORT() ExitProcess(0) +# else +# define PNG_ABORT() abort() +# endif +#endif + +#ifdef USE_FAR_KEYWORD +/* Use this to make far-to-near assignments */ +# define CHECK 1 +# define NOCHECK 0 +# define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK)) +# define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK)) +# define png_strcpy _fstrcpy +# define png_strncpy _fstrncpy /* Added to v 1.2.6 */ +# define png_strlen _fstrlen +# define png_memcmp _fmemcmp /* SJT: added */ +# define png_memcpy _fmemcpy +# define png_memset _fmemset +# define png_sprintf sprintf +#else +# if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) +# /* Favor Windows over C runtime fns */ +# define CVT_PTR(ptr) (ptr) +# define CVT_PTR_NOCHECK(ptr) (ptr) +# define png_strcpy lstrcpyA +# define png_strncpy lstrcpynA +# define png_strlen lstrlenA +# define png_memcmp memcmp +# define png_memcpy CopyMemory +# define png_memset memset +# define png_sprintf wsprintfA +# else +# define CVT_PTR(ptr) (ptr) +# define CVT_PTR_NOCHECK(ptr) (ptr) +# define png_strcpy strcpy +# define png_strncpy strncpy /* Added to v 1.2.6 */ +# define png_strlen strlen +# define png_memcmp memcmp /* SJT: added */ +# define png_memcpy memcpy +# define png_memset memset +# define png_sprintf sprintf +# endif +#endif + +#ifndef PNG_NO_SNPRINTF +# ifdef _MSC_VER +# define png_snprintf _snprintf /* Added to v 1.2.19 */ +# define png_snprintf2 _snprintf +# define png_snprintf6 _snprintf +# else +# define png_snprintf snprintf /* Added to v 1.2.19 */ +# define png_snprintf2 snprintf +# define png_snprintf6 snprintf +# endif +#else + /* You don't have or don't want to use snprintf(). Caution: Using + * sprintf instead of snprintf exposes your application to accidental + * or malevolent buffer overflows. If you don't have snprintf() + * as a general rule you should provide one (you can get one from + * Portable OpenSSH). + */ +# define png_snprintf(s1,n,fmt,x1) png_sprintf(s1,fmt,x1) +# define png_snprintf2(s1,n,fmt,x1,x2) png_sprintf(s1,fmt,x1,x2) +# define png_snprintf6(s1,n,fmt,x1,x2,x3,x4,x5,x6) \ + png_sprintf(s1,fmt,x1,x2,x3,x4,x5,x6) +#endif + +/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, + * and no smaller than png_uint_32. Casts from png_size_t or png_uint_32 + * to png_alloc_size_t are not necessary; in fact, it is recommended + * not to use them at all so that the compiler can complain when something + * turns out to be problematic. + * Casts in the other direction (from png_alloc_size_t to png_size_t or + * png_uint_32) should be explicitly applied; however, we do not expect + * to encounter practical situations that require such conversions. + */ +#if defined(__TURBOC__) && !defined(__FLAT__) + typedef unsigned long png_alloc_size_t; +#else +# if defined(_MSC_VER) && defined(MAXSEG_64K) + typedef unsigned long png_alloc_size_t; +# else + /* This is an attempt to detect an old Windows system where (int) is + * actually 16 bits, in that case png_malloc must have an argument with a + * bigger size to accomodate the requirements of the library. + */ +# if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) && \ + (!defined(INT_MAX) || INT_MAX <= 0x7ffffffeL) + typedef DWORD png_alloc_size_t; +# else + typedef png_size_t png_alloc_size_t; +# endif +# endif +#endif +/* End of memory model/platform independent support */ + +/* Just a little check that someone hasn't tried to define something + * contradictory. + */ +#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K) +# undef PNG_ZBUF_SIZE +# define PNG_ZBUF_SIZE 65536L +#endif + + +/* Added at libpng-1.2.8 */ +#endif /* PNG_VERSION_INFO_ONLY */ + +#endif /* PNGCONF_H */ diff --git a/engine/libs/mingw64-libs/pngpriv.h b/engine/libs/mingw64-libs/pngpriv.h new file mode 100755 index 000000000..ebf8e5301 --- /dev/null +++ b/engine/libs/mingw64-libs/pngpriv.h @@ -0,0 +1,954 @@ + +/* pngpriv.h - private declarations for use inside libpng + * + * libpng version 1.4.4 - September 23, 2010 + * For conditions of distribution and use, see copyright notice in png.h + * Copyright (c) 1998-2010 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + */ + +/* The symbols declared in this file (including the functions declared + * as PNG_EXTERN) are PRIVATE. They are not part of the libpng public + * interface, and are not recommended for use by regular applications. + * Some of them may become public in the future; others may stay private, + * change in an incompatible way, or even disappear. + * Although the libpng users are not forbidden to include this header, + * they should be well aware of the issues that may arise from doing so. + */ + +#ifndef PNGPRIV_H +#define PNGPRIV_H + +#ifndef PNG_VERSION_INFO_ONLY + +#include + +#ifndef PNG_EXTERN +/* The functions exported by PNG_EXTERN are internal functions, which + * aren't usually used outside the library (as far as I know), so it is + * debatable if they should be exported at all. In the future, when it + * is possible to have run-time registry of chunk-handling functions, + * some of these will be made available again. +# define PNG_EXTERN extern + */ +# define PNG_EXTERN +#endif + +/* Other defines specific to compilers can go here. Try to keep + * them inside an appropriate ifdef/endif pair for portability. + */ + +#ifdef PNG_FLOATING_POINT_SUPPORTED +# ifdef MACOS + /* We need to check that hasn't already been included earlier + * as it seems it doesn't agree with , yet we should really use + * if possible. + */ +# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__) +# include +# endif +# else +# include +# endif +# if defined(_AMIGA) && defined(__SASC) && defined(_M68881) + /* Amiga SAS/C: We must include builtin FPU functions when compiling using + * MATH=68881 + */ +# include +# endif +#endif + +/* Codewarrior on NT has linking problems without this. */ +#if (defined(__MWERKS__) && defined(WIN32)) || defined(__STDC__) +# define PNG_ALWAYS_EXTERN +#endif + +/* This provides the non-ANSI (far) memory allocation routines. */ +#if defined(__TURBOC__) && defined(__MSDOS__) +# include +# include +#endif + +#if defined(WIN32) || defined(_Windows) || defined(_WINDOWS) || \ + defined(_WIN32) || defined(__WIN32__) +# include /* defines _WINDOWS_ macro */ +#endif + +/* Various modes of operation. Note that after an init, mode is set to + * zero automatically when the structure is created. + */ +#define PNG_HAVE_IHDR 0x01 +#define PNG_HAVE_PLTE 0x02 +#define PNG_HAVE_IDAT 0x04 +#define PNG_AFTER_IDAT 0x08 /* Have complete zlib datastream */ +#define PNG_HAVE_IEND 0x10 +#define PNG_HAVE_gAMA 0x20 +#define PNG_HAVE_cHRM 0x40 +#define PNG_HAVE_sRGB 0x80 +#define PNG_HAVE_CHUNK_HEADER 0x100 +#define PNG_WROTE_tIME 0x200 +#define PNG_WROTE_INFO_BEFORE_PLTE 0x400 +#define PNG_BACKGROUND_IS_GRAY 0x800 +#define PNG_HAVE_PNG_SIGNATURE 0x1000 +#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */ + +/* Flags for the transformations the PNG library does on the image data */ +#define PNG_BGR 0x0001 +#define PNG_INTERLACE 0x0002 +#define PNG_PACK 0x0004 +#define PNG_SHIFT 0x0008 +#define PNG_SWAP_BYTES 0x0010 +#define PNG_INVERT_MONO 0x0020 +#define PNG_QUANTIZE 0x0040 /* formerly PNG_DITHER */ +#define PNG_BACKGROUND 0x0080 +#define PNG_BACKGROUND_EXPAND 0x0100 + /* 0x0200 unused */ +#define PNG_16_TO_8 0x0400 +#define PNG_RGBA 0x0800 +#define PNG_EXPAND 0x1000 +#define PNG_GAMMA 0x2000 +#define PNG_GRAY_TO_RGB 0x4000 +#define PNG_FILLER 0x8000L +#define PNG_PACKSWAP 0x10000L +#define PNG_SWAP_ALPHA 0x20000L +#define PNG_STRIP_ALPHA 0x40000L +#define PNG_INVERT_ALPHA 0x80000L +#define PNG_USER_TRANSFORM 0x100000L +#define PNG_RGB_TO_GRAY_ERR 0x200000L +#define PNG_RGB_TO_GRAY_WARN 0x400000L +#define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */ + /* 0x800000L Unused */ +#define PNG_ADD_ALPHA 0x1000000L /* Added to libpng-1.2.7 */ +#define PNG_EXPAND_tRNS 0x2000000L /* Added to libpng-1.2.9 */ + /* 0x4000000L unused */ + /* 0x8000000L unused */ + /* 0x10000000L unused */ + /* 0x20000000L unused */ + /* 0x40000000L unused */ + +/* Flags for png_create_struct */ +#define PNG_STRUCT_PNG 0x0001 +#define PNG_STRUCT_INFO 0x0002 + +/* Scaling factor for filter heuristic weighting calculations */ +#define PNG_WEIGHT_SHIFT 8 +#define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT)) +#define PNG_COST_SHIFT 3 +#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT)) + +/* Flags for the png_ptr->flags rather than declaring a byte for each one */ +#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001 +#define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002 +#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004 +#define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS 0x0008 +#define PNG_FLAG_ZLIB_CUSTOM_METHOD 0x0010 +#define PNG_FLAG_ZLIB_FINISHED 0x0020 +#define PNG_FLAG_ROW_INIT 0x0040 +#define PNG_FLAG_FILLER_AFTER 0x0080 +#define PNG_FLAG_CRC_ANCILLARY_USE 0x0100 +#define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200 +#define PNG_FLAG_CRC_CRITICAL_USE 0x0400 +#define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800 + /* 0x1000 unused */ + /* 0x2000 unused */ + /* 0x4000 unused */ +#define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000L +#define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000L +#define PNG_FLAG_LIBRARY_MISMATCH 0x20000L +#define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000L +#define PNG_FLAG_STRIP_ERROR_TEXT 0x80000L +#define PNG_FLAG_MALLOC_NULL_MEM_OK 0x100000L +#define PNG_FLAG_ADD_ALPHA 0x200000L /* Added to libpng-1.2.8 */ +#define PNG_FLAG_STRIP_ALPHA 0x400000L /* Added to libpng-1.2.8 */ +#define PNG_FLAG_BENIGN_ERRORS_WARN 0x800000L /* Added to libpng-1.4.0 */ + /* 0x1000000L unused */ + /* 0x2000000L unused */ + /* 0x4000000L unused */ + /* 0x8000000L unused */ + /* 0x10000000L unused */ + /* 0x20000000L unused */ + /* 0x40000000L unused */ + +#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \ + PNG_FLAG_CRC_ANCILLARY_NOWARN) + +#define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \ + PNG_FLAG_CRC_CRITICAL_IGNORE) + +#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \ + PNG_FLAG_CRC_CRITICAL_MASK) + +/* Save typing and make code easier to understand */ + +#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \ + abs((int)((c1).green) - (int)((c2).green)) + \ + abs((int)((c1).blue) - (int)((c2).blue))) + +/* Added to libpng-1.2.6 JB */ +#define PNG_ROWBYTES(pixel_bits, width) \ + ((pixel_bits) >= 8 ? \ + ((png_size_t)(width) * (((png_size_t)(pixel_bits)) >> 3)) : \ + (( ((png_size_t)(width) * ((png_size_t)(pixel_bits))) + 7) >> 3) ) + +/* PNG_OUT_OF_RANGE returns true if value is outside the range + * ideal-delta..ideal+delta. Each argument is evaluated twice. + * "ideal" and "delta" should be constants, normally simple + * integers, "value" a variable. Added to libpng-1.2.6 JB + */ +#define PNG_OUT_OF_RANGE(value, ideal, delta) \ + ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) ) + +/* Constant strings for known chunk types. If you need to add a chunk, + * define the name here, and add an invocation of the macro wherever it's + * needed. + */ +#define PNG_IHDR PNG_CONST png_byte png_IHDR[5] = { 73, 72, 68, 82, '\0'} +#define PNG_IDAT PNG_CONST png_byte png_IDAT[5] = { 73, 68, 65, 84, '\0'} +#define PNG_IEND PNG_CONST png_byte png_IEND[5] = { 73, 69, 78, 68, '\0'} +#define PNG_PLTE PNG_CONST png_byte png_PLTE[5] = { 80, 76, 84, 69, '\0'} +#define PNG_bKGD PNG_CONST png_byte png_bKGD[5] = { 98, 75, 71, 68, '\0'} +#define PNG_cHRM PNG_CONST png_byte png_cHRM[5] = { 99, 72, 82, 77, '\0'} +#define PNG_gAMA PNG_CONST png_byte png_gAMA[5] = {103, 65, 77, 65, '\0'} +#define PNG_hIST PNG_CONST png_byte png_hIST[5] = {104, 73, 83, 84, '\0'} +#define PNG_iCCP PNG_CONST png_byte png_iCCP[5] = {105, 67, 67, 80, '\0'} +#define PNG_iTXt PNG_CONST png_byte png_iTXt[5] = {105, 84, 88, 116, '\0'} +#define PNG_oFFs PNG_CONST png_byte png_oFFs[5] = {111, 70, 70, 115, '\0'} +#define PNG_pCAL PNG_CONST png_byte png_pCAL[5] = {112, 67, 65, 76, '\0'} +#define PNG_sCAL PNG_CONST png_byte png_sCAL[5] = {115, 67, 65, 76, '\0'} +#define PNG_pHYs PNG_CONST png_byte png_pHYs[5] = {112, 72, 89, 115, '\0'} +#define PNG_sBIT PNG_CONST png_byte png_sBIT[5] = {115, 66, 73, 84, '\0'} +#define PNG_sPLT PNG_CONST png_byte png_sPLT[5] = {115, 80, 76, 84, '\0'} +#define PNG_sRGB PNG_CONST png_byte png_sRGB[5] = {115, 82, 71, 66, '\0'} +#define PNG_sTER PNG_CONST png_byte png_sTER[5] = {115, 84, 69, 82, '\0'} +#define PNG_tEXt PNG_CONST png_byte png_tEXt[5] = {116, 69, 88, 116, '\0'} +#define PNG_tIME PNG_CONST png_byte png_tIME[5] = {116, 73, 77, 69, '\0'} +#define PNG_tRNS PNG_CONST png_byte png_tRNS[5] = {116, 82, 78, 83, '\0'} +#define PNG_zTXt PNG_CONST png_byte png_zTXt[5] = {122, 84, 88, 116, '\0'} + + +/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* These functions are used internally in the code. They generally + * shouldn't be used unless you are writing code to add or replace some + * functionality in libpng. More information about most functions can + * be found in the files where the functions are located. + */ + +/* Allocate memory for an internal libpng struct */ +PNG_EXTERN png_voidp png_create_struct PNGARG((int type)); + +/* Free memory from internal libpng struct */ +PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr)); + +PNG_EXTERN png_voidp png_create_struct_2 PNGARG((int type, png_malloc_ptr + malloc_fn, png_voidp mem_ptr)); +PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr, + png_free_ptr free_fn, png_voidp mem_ptr)); + +/* Free any memory that info_ptr points to and reset struct. */ +PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr, + png_infop info_ptr)); + +/* Function to allocate memory for zlib. PNGAPI is disallowed. */ +PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size)); + +/* Function to free memory for zlib. PNGAPI is disallowed. */ +PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr)); + +/* Next four functions are used internally as callbacks. PNGAPI is required + * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3. */ + +PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr, + png_bytep data, png_size_t length)); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +PNG_EXTERN void PNGAPI png_push_fill_buffer PNGARG((png_structp png_ptr, + png_bytep buffer, png_size_t length)); +#endif + +PNG_EXTERN void PNGAPI png_default_write_data PNGARG((png_structp png_ptr, + png_bytep data, png_size_t length)); + +#ifdef PNG_WRITE_FLUSH_SUPPORTED +#ifdef PNG_STDIO_SUPPORTED +PNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr)); +#endif +#endif + +/* Reset the CRC variable */ +PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr)); + +/* Write the "data" buffer to whatever output you are using */ +PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data, + png_size_t length)); + +/* Read the chunk header (length + type name) */ +PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr)); + +/* Read data from whatever input you are using into the "data" buffer */ +PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data, + png_size_t length)); + +/* Read bytes into buf, and update png_ptr->crc */ +PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf, + png_size_t length)); + +/* Decompress data in a chunk that uses compression */ +#if defined(PNG_zTXt_SUPPORTED) || defined(PNG_iTXt_SUPPORTED) || \ + defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) +PNG_EXTERN void png_decompress_chunk PNGARG((png_structp png_ptr, + int comp_type, png_size_t chunklength, png_size_t prefix_length, + png_size_t *data_length)); +#endif + +/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */ +PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip)); + +/* Read the CRC from the file and compare it to the libpng calculated CRC */ +PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr)); + +/* Calculate the CRC over a section of data. Note that we are only + * passing a maximum of 64K on systems that have this as a memory limit, + * since this is the maximum buffer size we can specify. + */ +PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr, + png_size_t length)); + +#ifdef PNG_WRITE_FLUSH_SUPPORTED +PNG_EXTERN void png_flush PNGARG((png_structp png_ptr)); +#endif + +/* Write various chunks */ + +/* Write the IHDR chunk, and update the png_struct with the necessary + * information. + */ +PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width, + png_uint_32 height, + int bit_depth, int color_type, int compression_method, int filter_method, + int interlace_method)); + +PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, png_colorp palette, + png_uint_32 num_pal)); + +PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data, + png_size_t length)); + +PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr)); + +#ifdef PNG_WRITE_gAMA_SUPPORTED +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma)); +#endif +#ifdef PNG_FIXED_POINT_SUPPORTED +PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr, + png_fixed_point file_gamma)); +#endif +#endif + +#ifdef PNG_WRITE_sBIT_SUPPORTED +PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit, + int color_type)); +#endif + +#ifdef PNG_WRITE_cHRM_SUPPORTED +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr, + double white_x, double white_y, + double red_x, double red_y, double green_x, double green_y, + double blue_x, double blue_y)); +#endif +PNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_ptr, + png_fixed_point int_white_x, png_fixed_point int_white_y, + png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point + int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, + png_fixed_point int_blue_y)); +#endif + +#ifdef PNG_WRITE_sRGB_SUPPORTED +PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr, + int intent)); +#endif + +#ifdef PNG_WRITE_iCCP_SUPPORTED +PNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr, + png_charp name, int compression_type, + png_charp profile, int proflen)); + /* Note to maintainer: profile should be png_bytep */ +#endif + +#ifdef PNG_WRITE_sPLT_SUPPORTED +PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr, + png_sPLT_tp palette)); +#endif + +#ifdef PNG_WRITE_tRNS_SUPPORTED +PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, png_bytep trans, + png_color_16p values, int number, int color_type)); +#endif + +#ifdef PNG_WRITE_bKGD_SUPPORTED +PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr, + png_color_16p values, int color_type)); +#endif + +#ifdef PNG_WRITE_hIST_SUPPORTED +PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, png_uint_16p hist, + int num_hist)); +#endif + +#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \ + defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED) +PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr, + png_charp key, png_charpp new_key)); +#endif + +#ifdef PNG_WRITE_tEXt_SUPPORTED +PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_charp key, + png_charp text, png_size_t text_len)); +#endif + +#ifdef PNG_WRITE_zTXt_SUPPORTED +PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_charp key, + png_charp text, png_size_t text_len, int compression)); +#endif + +#ifdef PNG_WRITE_iTXt_SUPPORTED +PNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr, + int compression, png_charp key, png_charp lang, png_charp lang_key, + png_charp text)); +#endif + +#ifdef PNG_TEXT_SUPPORTED /* Added at version 1.0.14 and 1.2.4 */ +PNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr, + png_infop info_ptr, png_textp text_ptr, int num_text)); +#endif + +#ifdef PNG_WRITE_oFFs_SUPPORTED +PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr, + png_int_32 x_offset, png_int_32 y_offset, int unit_type)); +#endif + +#ifdef PNG_WRITE_pCAL_SUPPORTED +PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose, + png_int_32 X0, png_int_32 X1, int type, int nparams, + png_charp units, png_charpp params)); +#endif + +#ifdef PNG_WRITE_pHYs_SUPPORTED +PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr, + png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, + int unit_type)); +#endif + +#ifdef PNG_WRITE_tIME_SUPPORTED +PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr, + png_timep mod_time)); +#endif + +#ifdef PNG_WRITE_sCAL_SUPPORTED +#if defined(PNG_FLOATING_POINT_SUPPORTED) && defined(PNG_STDIO_SUPPORTED) +PNG_EXTERN void png_write_sCAL PNGARG((png_structp png_ptr, + int unit, double width, double height)); +#else +#ifdef PNG_FIXED_POINT_SUPPORTED +PNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr, + int unit, png_charp width, png_charp height)); +#endif +#endif +#endif + +/* Called when finished processing a row of data */ +PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)); + +/* Internal use only. Called before first row of data */ +PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr)); + +#ifdef PNG_READ_GAMMA_SUPPORTED +PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr, + png_byte bit_depth)); +#endif + +/* Combine a row of data, dealing with alpha, etc. if requested */ +PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row, + int mask)); + +#ifdef PNG_READ_INTERLACING_SUPPORTED +/* Expand an interlaced row */ +/* OLD pre-1.0.9 interface: +PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info, + png_bytep row, int pass, png_uint_32 transformations)); + */ +PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr)); +#endif + +/* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */ + +#ifdef PNG_WRITE_INTERLACING_SUPPORTED +/* Grab pixels out of a row for an interlaced pass */ +PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info, + png_bytep row, int pass)); +#endif + +/* Unfilter a row */ +PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr, + png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter)); + +/* Choose the best filter to use and filter the row data */ +PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr, + png_row_infop row_info)); + +/* Write out the filtered row. */ +PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr, + png_bytep filtered_row)); +/* Finish a row while reading, dealing with interlacing passes, etc. */ +PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr)); + +/* Initialize the row buffers, etc. */ +PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr)); +/* Optional call to update the users info structure */ +PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr, + png_infop info_ptr)); + +/* These are the functions that do the transformations */ +#ifdef PNG_READ_FILLER_SUPPORTED +PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info, + png_bytep row, png_uint_32 filler, png_uint_32 flags)); +#endif + +#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED +PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED +PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED +PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED +PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#if defined(PNG_WRITE_FILLER_SUPPORTED) || \ + defined(PNG_READ_STRIP_ALPHA_SUPPORTED) +PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info, + png_bytep row, png_uint_32 flags)); +#endif + +#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) +PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ + defined(PNG_WRITE_PACKSWAP_SUPPORTED) +PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED +PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, png_row_infop + row_info, png_bytep row)); +#endif + +#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED +PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#ifdef PNG_READ_PACK_SUPPORTED +PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#ifdef PNG_READ_SHIFT_SUPPORTED +PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, png_bytep row, + png_color_8p sig_bits)); +#endif + +#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) +PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#ifdef PNG_READ_16_TO_8_SUPPORTED +PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#ifdef PNG_READ_QUANTIZE_SUPPORTED +PNG_EXTERN void png_do_quantize PNGARG((png_row_infop row_info, + png_bytep row, png_bytep palette_lookup, png_bytep quantize_lookup)); + +# ifdef PNG_CORRECT_PALETTE_SUPPORTED +PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr, + png_colorp palette, int num_palette)); +# endif +#endif + +#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) +PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#ifdef PNG_WRITE_PACK_SUPPORTED +PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info, + png_bytep row, png_uint_32 bit_depth)); +#endif + +#ifdef PNG_WRITE_SHIFT_SUPPORTED +PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row, + png_color_8p bit_depth)); +#endif + +#ifdef PNG_READ_BACKGROUND_SUPPORTED +#ifdef PNG_READ_GAMMA_SUPPORTED +PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, + png_color_16p trans_color, png_color_16p background, + png_color_16p background_1, + png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1, + png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1, + png_uint_16pp gamma_16_to_1, int gamma_shift)); +#else +PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, + png_color_16p trans_color, png_color_16p background)); +#endif +#endif + +#ifdef PNG_READ_GAMMA_SUPPORTED +PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, png_bytep row, + png_bytep gamma_table, png_uint_16pp gamma_16_table, + int gamma_shift)); +#endif + +#ifdef PNG_READ_EXPAND_SUPPORTED +PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info, + png_bytep row, png_colorp palette, png_bytep trans, int num_trans)); +PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info, + png_bytep row, png_color_16p trans_value)); +#endif + +/* The following decodes the appropriate chunks, and does error correction, + * then calls the appropriate callback for the chunk if it is valid. + */ + +/* Decode the IHDR chunk */ +PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); + +#ifdef PNG_READ_bKGD_SUPPORTED +PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_cHRM_SUPPORTED +PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_gAMA_SUPPORTED +PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_hIST_SUPPORTED +PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_iCCP_SUPPORTED +PNG_EXTERN void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif /* PNG_READ_iCCP_SUPPORTED */ + +#ifdef PNG_READ_iTXt_SUPPORTED +PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_oFFs_SUPPORTED +PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_pCAL_SUPPORTED +PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_pHYs_SUPPORTED +PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_sBIT_SUPPORTED +PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_sCAL_SUPPORTED +PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_sPLT_SUPPORTED +PNG_EXTERN void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif /* PNG_READ_sPLT_SUPPORTED */ + +#ifdef PNG_READ_sRGB_SUPPORTED +PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_tEXt_SUPPORTED +PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_tIME_SUPPORTED +PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_tRNS_SUPPORTED +PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#ifdef PNG_READ_zTXt_SUPPORTED +PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)); + +PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr, + png_bytep chunk_name)); + +/* Handle the transformations for reading and writing */ +PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr)); + +PNG_EXTERN void png_init_read_transformations PNGARG((png_structp png_ptr)); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr, + png_uint_32 length)); +PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr, + png_bytep buffer, png_size_t buffer_length)); +PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr, + png_bytep buffer, png_size_t buffer_length)); +PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)); +PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr, png_bytep row)); +PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_read_push_finish_row PNGARG((png_structp png_ptr)); +#ifdef PNG_READ_tEXt_SUPPORTED +PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)); +PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif +#ifdef PNG_READ_zTXt_SUPPORTED +PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)); +PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif +#ifdef PNG_READ_iTXt_SUPPORTED +PNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)); +PNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif + +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ + +#ifdef PNG_MNG_FEATURES_SUPPORTED +PNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info, + png_bytep row)); +PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +/* Added at libpng version 1.4.0 */ +#ifdef PNG_cHRM_SUPPORTED +PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr, + png_fixed_point int_white_x, png_fixed_point int_white_y, + png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point + int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, + png_fixed_point int_blue_y)); +#endif + +#ifdef PNG_cHRM_SUPPORTED +#ifdef PNG_CHECK_cHRM_SUPPORTED +/* Added at libpng version 1.2.34 and 1.4.0 */ +PNG_EXTERN void png_64bit_product PNGARG((long v1, long v2, + unsigned long *hi_product, unsigned long *lo_product)); +#endif +#endif + +/* Added at libpng version 1.4.0 */ +PNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr, + png_uint_32 width, png_uint_32 height, int bit_depth, + int color_type, int interlace_type, int compression_type, + int filter_type)); + +/* Free all memory used by the read (old method - NOT DLL EXPORTED) */ +PNG_EXTERN void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr, + png_infop end_info_ptr)); + +/* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */ +PNG_EXTERN void png_write_destroy PNGARG((png_structp png_ptr)); + +#ifdef USE_FAR_KEYWORD /* memory model conversion function */ +PNG_EXTERN void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr, + int check)); +#endif /* USE_FAR_KEYWORD */ + +/* Define PNG_DEBUG at compile time for debugging information. Higher + * numbers for PNG_DEBUG mean more debugging information. This has + * only been added since version 0.95 so it is not implemented throughout + * libpng yet, but more support will be added as needed. + */ +#ifdef PNG_DEBUG +#if (PNG_DEBUG > 0) +#if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER) +#include +#if (PNG_DEBUG > 1) +#ifndef _DEBUG +# define _DEBUG +#endif +#ifndef png_debug +#define png_debug(l,m) _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE) +#endif +#ifndef png_debug1 +#define png_debug1(l,m,p1) _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1) +#endif +#ifndef png_debug2 +#define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2) +#endif +#endif +#else /* PNG_DEBUG_FILE || !_MSC_VER */ +#ifndef PNG_DEBUG_FILE +#define PNG_DEBUG_FILE stderr +#endif /* PNG_DEBUG_FILE */ + +#if (PNG_DEBUG > 1) +/* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on + * non-ISO compilers + */ +# ifdef __STDC__ +# ifndef png_debug +# define png_debug(l,m) \ + { \ + int num_tabs=l; \ + fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ + (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \ + } +# endif +# ifndef png_debug1 +# define png_debug1(l,m,p1) \ + { \ + int num_tabs=l; \ + fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ + (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \ + } +# endif +# ifndef png_debug2 +# define png_debug2(l,m,p1,p2) \ + { \ + int num_tabs=l; \ + fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ + (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \ + } +# endif +# else /* __STDC __ */ +# ifndef png_debug +# define png_debug(l,m) \ + { \ + int num_tabs=l; \ + char format[256]; \ + snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ + (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ + m,PNG_STRING_NEWLINE); \ + fprintf(PNG_DEBUG_FILE,format); \ + } +# endif +# ifndef png_debug1 +# define png_debug1(l,m,p1) \ + { \ + int num_tabs=l; \ + char format[256]; \ + snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ + (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ + m,PNG_STRING_NEWLINE); \ + fprintf(PNG_DEBUG_FILE,format,p1); \ + } +# endif +# ifndef png_debug2 +# define png_debug2(l,m,p1,p2) \ + { \ + int num_tabs=l; \ + char format[256]; \ + snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ + (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ + m,PNG_STRING_NEWLINE); \ + fprintf(PNG_DEBUG_FILE,format,p1,p2); \ + } +# endif +# endif /* __STDC __ */ +#endif /* (PNG_DEBUG > 1) */ + +#endif /* _MSC_VER */ +#endif /* (PNG_DEBUG > 0) */ +#endif /* PNG_DEBUG */ +#ifndef png_debug +#define png_debug(l, m) +#endif +#ifndef png_debug1 +#define png_debug1(l, m, p1) +#endif +#ifndef png_debug2 +#define png_debug2(l, m, p1, p2) +#endif + +/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */ + +#ifdef __cplusplus +} +#endif + +#endif /* PNG_VERSION_INFO_ONLY */ +#endif /* PNGPRIV_H */ diff --git a/engine/libs/mingw64-libs/zconf.h b/engine/libs/mingw64-libs/zconf.h new file mode 100755 index 000000000..02ce56c43 --- /dev/null +++ b/engine/libs/mingw64-libs/zconf.h @@ -0,0 +1,428 @@ +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-2010 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#ifndef ZCONF_H +#define ZCONF_H + +/* + * If you *really* need a unique prefix for all types and library functions, + * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. + * Even better than compiling with -DZ_PREFIX would be to use configure to set + * this permanently in zconf.h using "./configure --zprefix". + */ +#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ + +/* all linked symbols */ +# define _dist_code z__dist_code +# define _length_code z__length_code +# define _tr_align z__tr_align +# define _tr_flush_block z__tr_flush_block +# define _tr_init z__tr_init +# define _tr_stored_block z__tr_stored_block +# define _tr_tally z__tr_tally +# define adler32 z_adler32 +# define adler32_combine z_adler32_combine +# define adler32_combine64 z_adler32_combine64 +# define compress z_compress +# define compress2 z_compress2 +# define compressBound z_compressBound +# define crc32 z_crc32 +# define crc32_combine z_crc32_combine +# define crc32_combine64 z_crc32_combine64 +# define deflate z_deflate +# define deflateBound z_deflateBound +# define deflateCopy z_deflateCopy +# define deflateEnd z_deflateEnd +# define deflateInit2_ z_deflateInit2_ +# define deflateInit_ z_deflateInit_ +# define deflateParams z_deflateParams +# define deflatePrime z_deflatePrime +# define deflateReset z_deflateReset +# define deflateSetDictionary z_deflateSetDictionary +# define deflateSetHeader z_deflateSetHeader +# define deflateTune z_deflateTune +# define deflate_copyright z_deflate_copyright +# define get_crc_table z_get_crc_table +# define gz_error z_gz_error +# define gz_intmax z_gz_intmax +# define gz_strwinerror z_gz_strwinerror +# define gzbuffer z_gzbuffer +# define gzclearerr z_gzclearerr +# define gzclose z_gzclose +# define gzclose_r z_gzclose_r +# define gzclose_w z_gzclose_w +# define gzdirect z_gzdirect +# define gzdopen z_gzdopen +# define gzeof z_gzeof +# define gzerror z_gzerror +# define gzflush z_gzflush +# define gzgetc z_gzgetc +# define gzgets z_gzgets +# define gzoffset z_gzoffset +# define gzoffset64 z_gzoffset64 +# define gzopen z_gzopen +# define gzopen64 z_gzopen64 +# define gzprintf z_gzprintf +# define gzputc z_gzputc +# define gzputs z_gzputs +# define gzread z_gzread +# define gzrewind z_gzrewind +# define gzseek z_gzseek +# define gzseek64 z_gzseek64 +# define gzsetparams z_gzsetparams +# define gztell z_gztell +# define gztell64 z_gztell64 +# define gzungetc z_gzungetc +# define gzwrite z_gzwrite +# define inflate z_inflate +# define inflateBack z_inflateBack +# define inflateBackEnd z_inflateBackEnd +# define inflateBackInit_ z_inflateBackInit_ +# define inflateCopy z_inflateCopy +# define inflateEnd z_inflateEnd +# define inflateGetHeader z_inflateGetHeader +# define inflateInit2_ z_inflateInit2_ +# define inflateInit_ z_inflateInit_ +# define inflateMark z_inflateMark +# define inflatePrime z_inflatePrime +# define inflateReset z_inflateReset +# define inflateReset2 z_inflateReset2 +# define inflateSetDictionary z_inflateSetDictionary +# define inflateSync z_inflateSync +# define inflateSyncPoint z_inflateSyncPoint +# define inflateUndermine z_inflateUndermine +# define inflate_copyright z_inflate_copyright +# define inflate_fast z_inflate_fast +# define inflate_table z_inflate_table +# define uncompress z_uncompress +# define zError z_zError +# define zcalloc z_zcalloc +# define zcfree z_zcfree +# define zlibCompileFlags z_zlibCompileFlags +# define zlibVersion z_zlibVersion + +/* all zlib typedefs in zlib.h and zconf.h */ +# define Byte z_Byte +# define Bytef z_Bytef +# define alloc_func z_alloc_func +# define charf z_charf +# define free_func z_free_func +# define gzFile z_gzFile +# define gz_header z_gz_header +# define gz_headerp z_gz_headerp +# define in_func z_in_func +# define intf z_intf +# define out_func z_out_func +# define uInt z_uInt +# define uIntf z_uIntf +# define uLong z_uLong +# define uLongf z_uLongf +# define voidp z_voidp +# define voidpc z_voidpc +# define voidpf z_voidpf + +/* all zlib structs in zlib.h and zconf.h */ +# define gz_header_s z_gz_header_s +# define internal_state z_internal_state + +#endif + +#if defined(__MSDOS__) && !defined(MSDOS) +# define MSDOS +#endif +#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) +# define OS2 +#endif +#if defined(_WINDOWS) && !defined(WINDOWS) +# define WINDOWS +#endif +#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) +# ifndef WIN32 +# define WIN32 +# endif +#endif +#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) +# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) +# ifndef SYS16BIT +# define SYS16BIT +# endif +# endif +#endif + +/* + * Compile with -DMAXSEG_64K if the alloc function cannot allocate more + * than 64k bytes at a time (needed on systems with 16-bit int). + */ +#ifdef SYS16BIT +# define MAXSEG_64K +#endif +#ifdef MSDOS +# define UNALIGNED_OK +#endif + +#ifdef __STDC_VERSION__ +# ifndef STDC +# define STDC +# endif +# if __STDC_VERSION__ >= 199901L +# ifndef STDC99 +# define STDC99 +# endif +# endif +#endif +#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) +# define STDC +#endif +#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) +# define STDC +#endif +#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) +# define STDC +#endif +#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) +# define STDC +#endif + +#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ +# define STDC +#endif + +#ifndef STDC +# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ +# define const /* note: need a more gentle solution here */ +# endif +#endif + +/* Some Mac compilers merge all .h files incorrectly: */ +#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) +# define NO_DUMMY_DECL +#endif + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# ifdef MAXSEG_64K +# define MAX_MEM_LEVEL 8 +# else +# define MAX_MEM_LEVEL 9 +# endif +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + (1 << (windowBits+2)) + (1 << (memLevel+9)) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + + /* Type declarations */ + +#ifndef OF /* function prototypes */ +# ifdef STDC +# define OF(args) args +# else +# define OF(args) () +# endif +#endif + +/* The following definitions for FAR are needed only for MSDOS mixed + * model programming (small or medium model with some far allocations). + * This was tested only with MSC; for other MSDOS compilers you may have + * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, + * just define FAR to be empty. + */ +#ifdef SYS16BIT +# if defined(M_I86SM) || defined(M_I86MM) + /* MSC small or medium model */ +# define SMALL_MEDIUM +# ifdef _MSC_VER +# define FAR _far +# else +# define FAR far +# endif +# endif +# if (defined(__SMALL__) || defined(__MEDIUM__)) + /* Turbo C small or medium model */ +# define SMALL_MEDIUM +# ifdef __BORLANDC__ +# define FAR _far +# else +# define FAR far +# endif +# endif +#endif + +#if defined(WINDOWS) || defined(WIN32) + /* If building or using zlib as a DLL, define ZLIB_DLL. + * This is not mandatory, but it offers a little performance increase. + */ +# ifdef ZLIB_DLL +# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) +# ifdef ZLIB_INTERNAL +# define ZEXTERN extern __declspec(dllexport) +# else +# define ZEXTERN extern __declspec(dllimport) +# endif +# endif +# endif /* ZLIB_DLL */ + /* If building or using zlib with the WINAPI/WINAPIV calling convention, + * define ZLIB_WINAPI. + * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. + */ +# ifdef ZLIB_WINAPI +# ifdef FAR +# undef FAR +# endif +# include + /* No need for _export, use ZLIB.DEF instead. */ + /* For complete Windows compatibility, use WINAPI, not __stdcall. */ +# define ZEXPORT WINAPI +# ifdef WIN32 +# define ZEXPORTVA WINAPIV +# else +# define ZEXPORTVA FAR CDECL +# endif +# endif +#endif + +#if defined (__BEOS__) +# ifdef ZLIB_DLL +# ifdef ZLIB_INTERNAL +# define ZEXPORT __declspec(dllexport) +# define ZEXPORTVA __declspec(dllexport) +# else +# define ZEXPORT __declspec(dllimport) +# define ZEXPORTVA __declspec(dllimport) +# endif +# endif +#endif + +#ifndef ZEXTERN +# define ZEXTERN extern +#endif +#ifndef ZEXPORT +# define ZEXPORT +#endif +#ifndef ZEXPORTVA +# define ZEXPORTVA +#endif + +#ifndef FAR +# define FAR +#endif + +#if !defined(__MACTYPES__) +typedef unsigned char Byte; /* 8 bits */ +#endif +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +#ifdef SMALL_MEDIUM + /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ +# define Bytef Byte FAR +#else + typedef Byte FAR Bytef; +#endif +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifdef STDC + typedef void const *voidpc; + typedef void FAR *voidpf; + typedef void *voidp; +#else + typedef Byte const *voidpc; + typedef Byte FAR *voidpf; + typedef Byte *voidp; +#endif + +#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ +# define Z_HAVE_UNISTD_H +#endif + +#ifdef STDC +# include /* for off_t */ +#endif + +/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and + * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even + * though the former does not conform to the LFS document), but considering + * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as + * equivalently requesting no 64-bit operations + */ +#if -_LARGEFILE64_SOURCE - -1 == 1 +# undef _LARGEFILE64_SOURCE +#endif + +#if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) +# include /* for SEEK_* and off_t */ +# ifdef VMS +# include /* for off_t */ +# endif +# ifndef z_off_t +# define z_off_t off_t +# endif +#endif + +#ifndef SEEK_SET +# define SEEK_SET 0 /* Seek from beginning of file. */ +# define SEEK_CUR 1 /* Seek from current position. */ +# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ +#endif + +#ifndef z_off_t +# define z_off_t long +#endif + +#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 +# define z_off64_t off64_t +#else +# define z_off64_t z_off_t +#endif + +#if defined(__OS400__) +# define NO_vsnprintf +#endif + +#if defined(__MVS__) +# define NO_vsnprintf +#endif + +/* MVS linker does not support external names larger than 8 bytes */ +#if defined(__MVS__) + #pragma map(deflateInit_,"DEIN") + #pragma map(deflateInit2_,"DEIN2") + #pragma map(deflateEnd,"DEEND") + #pragma map(deflateBound,"DEBND") + #pragma map(inflateInit_,"ININ") + #pragma map(inflateInit2_,"ININ2") + #pragma map(inflateEnd,"INEND") + #pragma map(inflateSync,"INSY") + #pragma map(inflateSetDictionary,"INSEDI") + #pragma map(compressBound,"CMBND") + #pragma map(inflate_table,"INTABL") + #pragma map(inflate_fast,"INFA") + #pragma map(inflate_copyright,"INCOPY") +#endif + +#endif /* ZCONF_H */ diff --git a/engine/libs/mingw64-libs/zlib.h b/engine/libs/mingw64-libs/zlib.h new file mode 100755 index 000000000..bfbba83e8 --- /dev/null +++ b/engine/libs/mingw64-libs/zlib.h @@ -0,0 +1,1613 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.5, April 19th, 2010 + + Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler + + 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. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). +*/ + +#ifndef ZLIB_H +#define ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.2.5" +#define ZLIB_VERNUM 0x1250 +#define ZLIB_VER_MAJOR 1 +#define ZLIB_VER_MINOR 2 +#define ZLIB_VER_REVISION 5 +#define ZLIB_VER_SUBREVISION 0 + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed data. + This version of the library supports only one compression method (deflation) + but other algorithms will be added later and will have the same stream + interface. + + Compression can be done in a single step if the buffers are large enough, + or can be done by repeated calls of the compression function. In the latter + case, the application must provide more input and/or consume the output + (providing more output space) before each call. + + The compressed data format used by default by the in-memory functions is + the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped + around a deflate stream, which is itself documented in RFC 1951. + + The library also supports reading and writing files in gzip (.gz) format + with an interface similar to that of stdio using the functions that start + with "gz". The gzip format is different from the zlib format. gzip is a + gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. + + This library can optionally read and write gzip streams in memory as well. + + The zlib format was designed to be compact and fast for use in memory + and on communications channels. The gzip format was designed for single- + file compression on file systems, has a larger header than zlib to maintain + directory information, and uses a different, slower check method than zlib. + + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never crash + even in case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { + Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total nb of input bytes read so far */ + + Bytef *next_out; /* next output byte should be put there */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total nb of bytes output so far */ + + char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidpf opaque; /* private data object passed to zalloc and zfree */ + + int data_type; /* best guess about the data type: binary or text */ + uLong adler; /* adler32 value of the uncompressed data */ + uLong reserved; /* reserved for future use */ +} z_stream; + +typedef z_stream FAR *z_streamp; + +/* + gzip header information passed to and from zlib routines. See RFC 1952 + for more details on the meanings of these fields. +*/ +typedef struct gz_header_s { + int text; /* true if compressed data believed to be text */ + uLong time; /* modification time */ + int xflags; /* extra flags (not used when writing a gzip file) */ + int os; /* operating system */ + Bytef *extra; /* pointer to extra field or Z_NULL if none */ + uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ + uInt extra_max; /* space at extra (only when reading header) */ + Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ + uInt name_max; /* space at name (only when reading header) */ + Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ + uInt comm_max; /* space at comment (only when reading header) */ + int hcrc; /* true if there was or will be a header crc */ + int done; /* true when done reading gzip header (not used + when writing a gzip file) */ +} gz_header; + +typedef gz_header FAR *gz_headerp; + +/* + The application must update next_in and avail_in when avail_in has dropped + to zero. It must update next_out and avail_out when avail_out has dropped + to zero. The application must initialize zalloc, zfree and opaque before + calling the init function. All other fields are set by the compression + library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe. + + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this if + the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers + returned by zalloc for objects of exactly 65536 bytes *must* have their + offset normalized to zero. The default allocation function provided by this + library ensures this (see zutil.c). To reduce memory requirements and avoid + any allocation of 64K objects, at the expense of compression ratio, compile + the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or progress + reports. After compression, total_in holds the total size of the + uncompressed data and may be saved for use in the decompressor (particularly + if the decompressor wants to decompress everything in a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 +#define Z_SYNC_FLUSH 2 +#define Z_FULL_FLUSH 3 +#define Z_FINISH 4 +#define Z_BLOCK 5 +#define Z_TREES 6 +/* Allowed flush values; see deflate() and inflate() below for details */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_NEED_DICT 2 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) +/* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + +#define Z_NO_COMPRESSION 0 +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_RLE 3 +#define Z_FIXED 4 +#define Z_DEFAULT_STRATEGY 0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY 0 +#define Z_TEXT 1 +#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ +#define Z_UNKNOWN 2 +/* Possible values of the data_type field (though see inflate()) */ + +#define Z_DEFLATED 8 +/* The deflate compression method (the only one supported in this version) */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +#define zlib_version zlibVersion() +/* for compatibility with versions < 1.0.2 */ + + + /* basic functions */ + +ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +/* The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is not + compatible with the zlib.h header file used by the application. This check + is automatically made by deflateInit and inflateInit. + */ + +/* +ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); + + Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. If + zalloc and zfree are set to Z_NULL, deflateInit updates them to use default + allocation functions. + + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at all + (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION + requests a default compromise between speed and compression (currently + equivalent to level 6). + + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if level is not a valid compression level, or + Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible + with the version assumed by the caller (ZLIB_VERSION). msg is set to null + if there is no error message. deflateInit does not perform any compression: + this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* + deflate compresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. deflate performs one or both of the + following actions: + + - Compress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in and avail_in are updated and + processing will resume at this point for the next call of deflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary (in interactive applications). Some + output may be provided even if flush is not set. + + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming more + output, and updating avail_in or avail_out accordingly; avail_out should + never be zero before the call. The application can consume the compressed + output when it wants, for example when the output buffer is full (avail_out + == 0), or after each call of deflate(). If deflate returns Z_OK and with + zero avail_out, it must be called again after making room in the output + buffer because there might be more output pending. + + Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to + decide how much data to accumulate before producing output, in order to + maximize compression. + + If the parameter flush is set to Z_SYNC_FLUSH, all pending output is + flushed to the output buffer and the output is aligned on a byte boundary, so + that the decompressor can get all input data available so far. (In + particular avail_in is zero after the call if enough output space has been + provided before the call.) Flushing may degrade compression for some + compression algorithms and so it should be used only when necessary. This + completes the current deflate block and follows it with an empty stored block + that is three bits plus filler bits to the next byte, followed by four bytes + (00 00 ff ff). + + If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the + output buffer, but the output is not aligned to a byte boundary. All of the + input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. + This completes the current deflate block and follows it with an empty fixed + codes block that is 10 bits long. This assures that enough bytes are output + in order for the decompressor to finish the block before the empty fixed code + block. + + If flush is set to Z_BLOCK, a deflate block is completed and emitted, as + for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to + seven bits of the current block are held to be written as the next byte after + the next deflate block is completed. In this case, the decompressor may not + be provided enough bits at this point in order to complete decompression of + the data provided so far to the compressor. It may need to wait for the next + block to be emitted. This is for advanced applications that need to control + the emission of deflate blocks. + + If flush is set to Z_FULL_FLUSH, all output is flushed as with + Z_SYNC_FLUSH, and the compression state is reset so that decompression can + restart from this point if previous compressed data has been damaged or if + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + compression. + + If deflate returns with avail_out == 0, this function must be called again + with the same value of the flush parameter and more output space (updated + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that + avail_out is greater than six to avoid repeated flush markers due to + avail_out == 0 on return. + + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there was + enough output space; if deflate returns with Z_OK, this function must be + called again with Z_FINISH and more output space (updated avail_out) but no + more input data, until it returns with Z_STREAM_END or an error. After + deflate has returned Z_STREAM_END, the only possible operations on the stream + are deflateReset or deflateEnd. + + Z_FINISH can be used immediately after deflateInit if all the compression + is to be done in a single step. In this case, avail_out must be at least the + value returned by deflateBound (see below). If deflate does not return + Z_STREAM_END, then it must be called again as described above. + + deflate() sets strm->adler to the adler32 checksum of all input read + so far (that is, total_in bytes). + + deflate() may update strm->data_type if it can make a good guess about + the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered + binary. This field is only for information purposes and does not affect the + compression algorithm in any manner. + + deflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if all input has been + consumed and all output has been produced (only when flush is set to + Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example + if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible + (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not + fatal, and deflate() can be called again with more input and more output + space to continue compressing. +*/ + + +ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any pending + output. + + deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the + stream state was inconsistent, Z_DATA_ERROR if the stream was freed + prematurely (some input or output was discarded). In the error case, msg + may be set but then points to a static string (which must not be + deallocated). +*/ + + +/* +ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); + + Initializes the internal stream state for decompression. The fields + next_in, avail_in, zalloc, zfree and opaque must be initialized before by + the caller. If next_in is not Z_NULL and avail_in is large enough (the + exact value depends on the compression method), inflateInit determines the + compression method from the zlib header and allocates all data structures + accordingly; otherwise the allocation will be deferred to the first call of + inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to + use default allocation functions. + + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller, or Z_STREAM_ERROR if the parameters are + invalid, such as a null pointer to the structure. msg is set to null if + there is no error message. inflateInit does not perform any decompression + apart from possibly reading the zlib header if present: actual decompression + will be done by inflate(). (So next_in and avail_in may be modified, but + next_out and avail_out are unused and unchanged.) The current implementation + of inflateInit() does not process any header information -- that is deferred + until inflate() is called. +*/ + + +ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +/* + inflate decompresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. inflate performs one or both of the + following actions: + + - Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing will + resume at this point for the next call of inflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. inflate() provides as much output as possible, until there is + no more input data or no more space in the output buffer (see below about + the flush parameter). + + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming more + output, and updating the next_* and avail_* values accordingly. The + application can consume the uncompressed output when it wants, for example + when the output buffer is full (avail_out == 0), or after each call of + inflate(). If inflate returns Z_OK and with zero avail_out, it must be + called again after making room in the output buffer because there might be + more output pending. + + The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, + Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much + output as possible to the output buffer. Z_BLOCK requests that inflate() + stop if and when it gets to the next deflate block boundary. When decoding + the zlib or gzip format, this will cause inflate() to return immediately + after the header and before the first block. When doing a raw inflate, + inflate() will go ahead and process the first block, and will return when it + gets to the end of that block, or when it runs out of data. + + The Z_BLOCK option assists in appending to or combining deflate streams. + Also to assist in this, on return inflate() will set strm->data_type to the + number of unused bits in the last byte taken from strm->next_in, plus 64 if + inflate() is currently decoding the last block in the deflate stream, plus + 128 if inflate() returned immediately after decoding an end-of-block code or + decoding the complete header up to just before the first byte of the deflate + stream. The end-of-block will not be indicated until all of the uncompressed + data from that block has been written to strm->next_out. The number of + unused bits may in general be greater than seven, except when bit 7 of + data_type is set, in which case the number of unused bits will be less than + eight. data_type is set as noted here every time inflate() returns for all + flush options, and so can be used to determine the amount of currently + consumed input in bits. + + The Z_TREES option behaves as Z_BLOCK does, but it also returns when the + end of each deflate block header is reached, before any actual data in that + block is decoded. This allows the caller to determine the length of the + deflate block header for later use in random access within a deflate block. + 256 is added to the value of strm->data_type when inflate() returns + immediately after reaching the end of the deflate block header. + + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step (a + single call of inflate), the parameter flush should be set to Z_FINISH. In + this case all pending input is processed and all pending output is flushed; + avail_out must be large enough to hold all the uncompressed data. (The size + of the uncompressed data may have been saved by the compressor for this + purpose.) The next operation on this stream must be inflateEnd to deallocate + the decompression state. The use of Z_FINISH is never required, but can be + used to inform inflate that a faster approach may be used for the single + inflate() call. + + In this implementation, inflate() always flushes as much output as + possible to the output buffer, and always uses the faster approach on the + first call. So the only effect of the flush parameter in this implementation + is on the return value of inflate(), as noted below, or when it returns early + because Z_BLOCK or Z_TREES is used. + + If a preset dictionary is needed after this call (see inflateSetDictionary + below), inflate sets strm->adler to the adler32 checksum of the dictionary + chosen by the compressor and returns Z_NEED_DICT; otherwise it sets + strm->adler to the adler32 checksum of all output produced so far (that is, + total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described + below. At the end of the stream, inflate() checks that its computed adler32 + checksum is equal to that saved by the compressor and returns Z_STREAM_END + only if the checksum is correct. + + inflate() can decompress and check either zlib-wrapped or gzip-wrapped + deflate data. The header type is detected automatically, if requested when + initializing with inflateInit2(). Any information contained in the gzip + header is not retained, so applications that need that information should + instead use raw inflate, see inflateInit2() below, or inflateBack() and + perform their own processing of the gzip header and trailer. + + inflate() returns Z_OK if some progress has been made (more input processed + or more output produced), Z_STREAM_END if the end of the compressed data has + been reached and all uncompressed output has been produced, Z_NEED_DICT if a + preset dictionary is needed at this point, Z_DATA_ERROR if the input data was + corrupted (input stream not conforming to the zlib format or incorrect check + value), Z_STREAM_ERROR if the stream structure was inconsistent (for example + next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory, + Z_BUF_ERROR if no progress is possible or if there was not enough room in the + output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and + inflate() can be called again with more input and more output space to + continue decompressing. If Z_DATA_ERROR is returned, the application may + then call inflateSync() to look for a good compression block if a partial + recovery of the data is desired. +*/ + + +ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any pending + output. + + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +*/ + + + /* Advanced functions */ + +/* + The following functions are needed only in some special applications. +*/ + +/* +ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy)); + + This is another version of deflateInit with more compression options. The + fields next_in, zalloc, zfree and opaque must be initialized before by the + caller. + + The method parameter is the compression method. It must be Z_DEFLATED in + this version of the library. + + The windowBits parameter is the base two logarithm of the window size + (the size of the history buffer). It should be in the range 8..15 for this + version of the library. Larger values of this parameter result in better + compression at the expense of memory usage. The default value is 15 if + deflateInit is used instead. + + windowBits can also be -8..-15 for raw deflate. In this case, -windowBits + determines the window size. deflate() will then generate raw deflate data + with no zlib header or trailer, and will not compute an adler32 check value. + + windowBits can also be greater than 15 for optional gzip encoding. Add + 16 to windowBits to write a simple gzip header and trailer around the + compressed data instead of a zlib wrapper. The gzip header will have no + file name, no extra data, no comment, no modification time (set to zero), no + header crc, and the operating system will be set to 255 (unknown). If a + gzip stream is being written, strm->adler is a crc32 instead of an adler32. + + The memLevel parameter specifies how much memory should be allocated + for the internal compression state. memLevel=1 uses minimum memory but is + slow and reduces compression ratio; memLevel=9 uses maximum memory for + optimal speed. The default value is 8. See zconf.h for total memory usage + as a function of windowBits and memLevel. + + The strategy parameter is used to tune the compression algorithm. Use the + value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a + filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no + string match), or Z_RLE to limit match distances to one (run-length + encoding). Filtered data consists mostly of small values with a somewhat + random distribution. In this case, the compression algorithm is tuned to + compress them better. The effect of Z_FILTERED is to force more Huffman + coding and less string matching; it is somewhat intermediate between + Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as + fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The + strategy parameter only affects the compression ratio but not the + correctness of the compressed output even if it is not set appropriately. + Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler + decoder for special applications. + + deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid + method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is + incompatible with the version assumed by the caller (ZLIB_VERSION). msg is + set to null if there is no error message. deflateInit2 does not perform any + compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the compression dictionary from the given byte sequence + without producing any compressed output. This function must be called + immediately after deflateInit, deflateInit2 or deflateReset, before any call + of deflate. The compressor and decompressor must use exactly the same + dictionary (see inflateSetDictionary). + + The dictionary should consist of strings (byte sequences) that are likely + to be encountered later in the data to be compressed, with the most commonly + used strings preferably put towards the end of the dictionary. Using a + dictionary is most useful when the data to be compressed is short and can be + predicted with good accuracy; the data can then be compressed better than + with the default empty dictionary. + + Depending on the size of the compression data structures selected by + deflateInit or deflateInit2, a part of the dictionary may in effect be + discarded, for example if the dictionary is larger than the window size + provided in deflateInit or deflateInit2. Thus the strings most likely to be + useful should be put at the end of the dictionary, not at the front. In + addition, the current implementation of deflate will use at most the window + size minus 262 bytes of the provided dictionary. + + Upon return of this function, strm->adler is set to the adler32 value + of the dictionary; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The adler32 value + applies to the whole dictionary even if only a subset of the dictionary is + actually used by the compressor.) If a raw deflate was requested, then the + adler32 value is not computed and strm->adler is not set. + + deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a + parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is + inconsistent (for example if deflate has already been called for this stream + or if the compression method is bsort). deflateSetDictionary does not + perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when several compression strategies will be + tried, for example when there are several ways of pre-processing the input + data with a filter. The streams that will be discarded should then be freed + by calling deflateEnd. Note that deflateCopy duplicates the internal + compression state which can be quite large, so this strategy is slow and can + consume lots of memory. + + deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being Z_NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +/* + This function is equivalent to deflateEnd followed by deflateInit, + but does not free and reallocate all the internal compression state. The + stream will keep the same compression level and any other attributes that + may have been set by deflateInit2. + + deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL). +*/ + +ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, + int level, + int strategy)); +/* + Dynamically update the compression level and compression strategy. The + interpretation of level and strategy is as in deflateInit2. This can be + used to switch between compression and straight copy of the input data, or + to switch to a different kind of input data requiring a different strategy. + If the compression level is changed, the input available so far is + compressed with the old level (and may be flushed); the new level will take + effect only at the next call of deflate(). + + Before the call of deflateParams, the stream state must be set as for + a call of deflate(), since the currently available input may have to be + compressed and flushed. In particular, strm->avail_out must be non-zero. + + deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source + stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if + strm->avail_out was zero. +*/ + +ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain)); +/* + Fine tune deflate's internal compression parameters. This should only be + used by someone who understands the algorithm used by zlib's deflate for + searching for the best matching string, and even then only by the most + fanatic optimizer trying to squeeze out the last compressed bit for their + specific input data. Read the deflate.c source code for the meaning of the + max_lazy, good_length, nice_length, and max_chain parameters. + + deflateTune() can be called after deflateInit() or deflateInit2(), and + returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. + */ + +ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, + uLong sourceLen)); +/* + deflateBound() returns an upper bound on the compressed size after + deflation of sourceLen bytes. It must be called after deflateInit() or + deflateInit2(), and after deflateSetHeader(), if used. This would be used + to allocate an output buffer for deflation in a single pass, and so would be + called before deflate(). +*/ + +ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + deflatePrime() inserts bits in the deflate output stream. The intent + is that this function is used to start off the deflate output with the bits + leftover from a previous deflate stream when appending to it. As such, this + function can only be used for raw deflate, and must be used before the first + deflate() call after a deflateInit2() or deflateReset(). bits must be less + than or equal to 16, and that many of the least significant bits of value + will be inserted in the output. + + deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, + gz_headerp head)); +/* + deflateSetHeader() provides gzip header information for when a gzip + stream is requested by deflateInit2(). deflateSetHeader() may be called + after deflateInit2() or deflateReset() and before the first call of + deflate(). The text, time, os, extra field, name, and comment information + in the provided gz_header structure are written to the gzip header (xflag is + ignored -- the extra flags are set according to the compression level). The + caller must assure that, if not Z_NULL, name and comment are terminated with + a zero byte, and that if extra is not Z_NULL, that extra_len bytes are + available there. If hcrc is true, a gzip header crc is included. Note that + the current versions of the command-line version of gzip (up through version + 1.3.x) do not support header crc's, and will report that it is a "multi-part + gzip file" and give up. + + If deflateSetHeader is not used, the default gzip header has text false, + the time set to zero, and os set to 255, with no extra, name, or comment + fields. The gzip header is returned to the default state by deflateReset(). + + deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, + int windowBits)); + + This is another version of inflateInit with an extra parameter. The + fields next_in, avail_in, zalloc, zfree and opaque must be initialized + before by the caller. + + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library. The default value is 15 if inflateInit is used + instead. windowBits must be greater than or equal to the windowBits value + provided to deflateInit2() while compressing, or it must be equal to 15 if + deflateInit2() was not used. If a compressed stream with a larger window + size is given as input, inflate() will return with the error code + Z_DATA_ERROR instead of trying to allocate a larger window. + + windowBits can also be zero to request that inflate use the window size in + the zlib header of the compressed stream. + + windowBits can also be -8..-15 for raw inflate. In this case, -windowBits + determines the window size. inflate() will then process raw deflate data, + not looking for a zlib or gzip header, not generating a check value, and not + looking for any check values for comparison at the end of the stream. This + is for use with other formats that use the deflate compressed data format + such as zip. Those formats provide their own check values. If a custom + format is developed using the raw deflate format for compressed data, it is + recommended that a check value such as an adler32 or a crc32 be applied to + the uncompressed data as is done in the zlib, gzip, and zip formats. For + most applications, the zlib format should be used as is. Note that comments + above on the use in deflateInit2() applies to the magnitude of windowBits. + + windowBits can also be greater than 15 for optional gzip decoding. Add + 32 to windowBits to enable zlib and gzip decoding with automatic header + detection, or add 16 to decode only the gzip format (the zlib format will + return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a + crc32 instead of an adler32. + + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller, or Z_STREAM_ERROR if the parameters are + invalid, such as a null pointer to the structure. msg is set to null if + there is no error message. inflateInit2 does not perform any decompression + apart from possibly reading the zlib header if present: actual decompression + will be done by inflate(). (So next_in and avail_in may be modified, but + next_out and avail_out are unused and unchanged.) The current implementation + of inflateInit2() does not process any header information -- that is + deferred until inflate() is called. +*/ + +ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the decompression dictionary from the given uncompressed byte + sequence. This function must be called immediately after a call of inflate, + if that call returned Z_NEED_DICT. The dictionary chosen by the compressor + can be determined from the adler32 value returned by that call of inflate. + The compressor and decompressor must use exactly the same dictionary (see + deflateSetDictionary). For raw inflate, this function can be called + immediately after inflateInit2() or inflateReset() and before any call of + inflate() to set the dictionary. The application must insure that the + dictionary that was used for compression is provided. + + inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a + parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is + inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the + expected one (incorrect adler32 value). inflateSetDictionary does not + perform any decompression: this will be done by subsequent calls of + inflate(). +*/ + +ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +/* + Skips invalid compressed data until a full flush point (see above the + description of deflate with Z_FULL_FLUSH) can be found, or until all + available input is skipped. No output is provided. + + inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR + if no more input was provided, Z_DATA_ERROR if no flush point has been + found, or Z_STREAM_ERROR if the stream structure was inconsistent. In the + success case, the application may save the current current value of total_in + which indicates where valid compressed data was found. In the error case, + the application may repeatedly call inflateSync, providing more input each + time, until success or end of the input data. +*/ + +ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when randomly accessing a large stream. The + first pass through the stream can periodically record the inflate state, + allowing restarting inflate at those points when randomly accessing the + stream. + + inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being Z_NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +/* + This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. The + stream will keep attributes that may have been set by inflateInit2. + + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL). +*/ + +ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, + int windowBits)); +/* + This function is the same as inflateReset, but it also permits changing + the wrap and window size requests. The windowBits parameter is interpreted + the same as it is for inflateInit2. + + inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL), or if + the windowBits parameter is invalid. +*/ + +ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + This function inserts bits in the inflate input stream. The intent is + that this function is used to start inflating at a bit position in the + middle of a byte. The provided bits will be used before any bytes are used + from next_in. This function should only be used with raw inflate, and + should be used before the first inflate() call after inflateInit2() or + inflateReset(). bits must be less than or equal to 16, and that many of the + least significant bits of value will be inserted in the input. + + If bits is negative, then the input stream bit buffer is emptied. Then + inflatePrime() can be called again to put bits in the buffer. This is used + to clear out bits leftover after feeding inflate a block description prior + to feeding inflate codes. + + inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); +/* + This function returns two values, one in the lower 16 bits of the return + value, and the other in the remaining upper bits, obtained by shifting the + return value down 16 bits. If the upper value is -1 and the lower value is + zero, then inflate() is currently decoding information outside of a block. + If the upper value is -1 and the lower value is non-zero, then inflate is in + the middle of a stored block, with the lower value equaling the number of + bytes from the input remaining to copy. If the upper value is not -1, then + it is the number of bits back from the current bit position in the input of + the code (literal or length/distance pair) currently being processed. In + that case the lower value is the number of bytes already emitted for that + code. + + A code is being processed if inflate is waiting for more input to complete + decoding of the code, or if it has completed decoding but is waiting for + more output space to write the literal or match data. + + inflateMark() is used to mark locations in the input data for random + access, which may be at bit positions, and to note those cases where the + output of a code may span boundaries of random access blocks. The current + location in the input stream can be determined from avail_in and data_type + as noted in the description for the Z_BLOCK flush parameter for inflate. + + inflateMark returns the value noted above or -1 << 16 if the provided + source stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, + gz_headerp head)); +/* + inflateGetHeader() requests that gzip header information be stored in the + provided gz_header structure. inflateGetHeader() may be called after + inflateInit2() or inflateReset(), and before the first call of inflate(). + As inflate() processes the gzip stream, head->done is zero until the header + is completed, at which time head->done is set to one. If a zlib stream is + being decoded, then head->done is set to -1 to indicate that there will be + no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be + used to force inflate() to return immediately after header processing is + complete and before any actual data is decompressed. + + The text, time, xflags, and os fields are filled in with the gzip header + contents. hcrc is set to true if there is a header CRC. (The header CRC + was valid if done is set to one.) If extra is not Z_NULL, then extra_max + contains the maximum number of bytes to write to extra. Once done is true, + extra_len contains the actual extra field length, and extra contains the + extra field, or that field truncated if extra_max is less than extra_len. + If name is not Z_NULL, then up to name_max characters are written there, + terminated with a zero unless the length is greater than name_max. If + comment is not Z_NULL, then up to comm_max characters are written there, + terminated with a zero unless the length is greater than comm_max. When any + of extra, name, or comment are not Z_NULL and the respective field is not + present in the header, then that field is set to Z_NULL to signal its + absence. This allows the use of deflateSetHeader() with the returned + structure to duplicate the header. However if those fields are set to + allocated memory, then the application will need to save those pointers + elsewhere so that they can be eventually freed. + + If inflateGetHeader is not used, then the header information is simply + discarded. The header is always checked for validity, including the header + CRC if present. inflateReset() will reset the process to discard the header + information. The application would need to call inflateGetHeader() again to + retrieve the header from the next gzip stream. + + inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, + unsigned char FAR *window)); + + Initialize the internal stream state for decompression using inflateBack() + calls. The fields zalloc, zfree and opaque in strm must be initialized + before the call. If zalloc and zfree are Z_NULL, then the default library- + derived memory allocation routines are used. windowBits is the base two + logarithm of the window size, in the range 8..15. window is a caller + supplied buffer of that size. Except for special applications where it is + assured that deflate was used with small window sizes, windowBits must be 15 + and a 32K byte window must be supplied to be able to decompress general + deflate streams. + + See inflateBack() for the usage of these routines. + + inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of + the paramaters are invalid, Z_MEM_ERROR if the internal state could not be + allocated, or Z_VERSION_ERROR if the version of the library does not match + the version of the header file. +*/ + +typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); +typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); + +ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc)); +/* + inflateBack() does a raw inflate with a single call using a call-back + interface for input and output. This is more efficient than inflate() for + file i/o applications in that it avoids copying between the output and the + sliding window by simply making the window itself the output buffer. This + function trusts the application to not change the output buffer passed by + the output function, at least until inflateBack() returns. + + inflateBackInit() must be called first to allocate the internal state + and to initialize the state with the user-provided window buffer. + inflateBack() may then be used multiple times to inflate a complete, raw + deflate stream with each call. inflateBackEnd() is then called to free the + allocated state. + + A raw deflate stream is one with no zlib or gzip header or trailer. + This routine would normally be used in a utility that reads zip or gzip + files and writes out uncompressed files. The utility would decode the + header and process the trailer on its own, hence this routine expects only + the raw deflate stream to decompress. This is different from the normal + behavior of inflate(), which expects either a zlib or gzip header and + trailer around the deflate stream. + + inflateBack() uses two subroutines supplied by the caller that are then + called by inflateBack() for input and output. inflateBack() calls those + routines until it reads a complete deflate stream and writes out all of the + uncompressed data, or until it encounters an error. The function's + parameters and return types are defined above in the in_func and out_func + typedefs. inflateBack() will call in(in_desc, &buf) which should return the + number of bytes of provided input, and a pointer to that input in buf. If + there is no input available, in() must return zero--buf is ignored in that + case--and inflateBack() will return a buffer error. inflateBack() will call + out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() + should return zero on success, or non-zero on failure. If out() returns + non-zero, inflateBack() will return with an error. Neither in() nor out() + are permitted to change the contents of the window provided to + inflateBackInit(), which is also the buffer that out() uses to write from. + The length written by out() will be at most the window size. Any non-zero + amount of input may be provided by in(). + + For convenience, inflateBack() can be provided input on the first call by + setting strm->next_in and strm->avail_in. If that input is exhausted, then + in() will be called. Therefore strm->next_in must be initialized before + calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called + immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in + must also be initialized, and then if strm->avail_in is not zero, input will + initially be taken from strm->next_in[0 .. strm->avail_in - 1]. + + The in_desc and out_desc parameters of inflateBack() is passed as the + first parameter of in() and out() respectively when they are called. These + descriptors can be optionally used to pass any information that the caller- + supplied in() and out() functions need to do their job. + + On return, inflateBack() will set strm->next_in and strm->avail_in to + pass back any unused input that was provided by the last in() call. The + return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR + if in() or out() returned an error, Z_DATA_ERROR if there was a format error + in the deflate stream (in which case strm->msg is set to indicate the nature + of the error), or Z_STREAM_ERROR if the stream was not properly initialized. + In the case of Z_BUF_ERROR, an input or output error can be distinguished + using strm->next_in which will be Z_NULL only if in() returned an error. If + strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning + non-zero. (in() will always be called before out(), so strm->next_in is + assured to be defined if out() returns non-zero.) Note that inflateBack() + cannot return Z_OK. +*/ + +ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +/* + All memory allocated by inflateBackInit() is freed. + + inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream + state was inconsistent. +*/ + +ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +/* Return flags indicating compile-time options. + + Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: + 1.0: size of uInt + 3.2: size of uLong + 5.4: size of voidpf (pointer) + 7.6: size of z_off_t + + Compiler, assembler, and debug options: + 8: DEBUG + 9: ASMV or ASMINF -- use ASM code + 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention + 11: 0 (reserved) + + One-time table building (smaller code, but not thread-safe if true): + 12: BUILDFIXED -- build static block decoding tables when needed + 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed + 14,15: 0 (reserved) + + Library content (indicates missing functionality): + 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking + deflate code when not needed) + 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect + and decode gzip streams (to avoid linking crc code) + 18-19: 0 (reserved) + + Operation variations (changes in library functionality): + 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate + 21: FASTEST -- deflate algorithm with only one, lowest compression level + 22,23: 0 (reserved) + + The sprintf variant used by gzprintf (zero is best): + 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format + 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! + 26: 0 = returns value, 1 = void -- 1 means inferred string length returned + + Remainder: + 27-31: 0 (reserved) + */ + + + /* utility functions */ + +/* + The following utility functions are implemented on top of the basic + stream-oriented functions. To simplify the interface, some default options + are assumed (compression level and memory usage, standard memory allocation + functions). The source code of these utility functions can be modified if + you need special options. +*/ + +ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Compresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total size + of the destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer. +*/ + +ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level)); +/* + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ + +ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +/* + compressBound() returns an upper bound on the compressed size after + compress() or compress2() on sourceLen bytes. It would be used before a + compress() or compress2() call to allocate the destination buffer. +*/ + +ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total size + of the destination buffer, which must be large enough to hold the entire + uncompressed data. (The size of the uncompressed data must have been saved + previously by the compressor and transmitted to the decompressor by some + mechanism outside the scope of this compression library.) Upon exit, destLen + is the actual size of the uncompressed buffer. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. +*/ + + + /* gzip file access functions */ + +/* + This library supports reading and writing files in gzip (.gz) format with + an interface similar to that of stdio, using the functions that start with + "gz". The gzip format is different from the zlib format. gzip is a gzip + wrapper, documented in RFC 1952, wrapped around a deflate stream. +*/ + +typedef voidp gzFile; /* opaque gzip file descriptor */ + +/* +ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); + + Opens a gzip (.gz) file for reading or writing. The mode parameter is as + in fopen ("rb" or "wb") but can also include a compression level ("wb9") or + a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only + compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' + for fixed code compression as in "wb9F". (See the description of + deflateInit2 for more information about the strategy parameter.) Also "a" + can be used instead of "w" to request that the gzip stream that will be + written be appended to the file. "+" will result in an error, since reading + and writing to the same gzip file is not supported. + + gzopen can be used to read a file which is not in gzip format; in this + case gzread will directly read from the file without decompression. + + gzopen returns NULL if the file could not be opened, if there was + insufficient memory to allocate the gzFile state, or if an invalid mode was + specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). + errno can be checked to determine if the reason gzopen failed was that the + file could not be opened. +*/ + +ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +/* + gzdopen associates a gzFile with the file descriptor fd. File descriptors + are obtained from calls like open, dup, creat, pipe or fileno (if the file + has been previously opened with fopen). The mode parameter is as in gzopen. + + The next call of gzclose on the returned gzFile will also close the file + descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor + fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, + mode);. The duplicated descriptor should be saved to avoid a leak, since + gzdopen does not close fd if it fails. + + gzdopen returns NULL if there was insufficient memory to allocate the + gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not + provided, or '+' was provided), or if fd is -1. The file descriptor is not + used until the next gz* read, write, seek, or close operation, so gzdopen + will not detect if fd is invalid (unless fd is -1). +*/ + +ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); +/* + Set the internal buffer size used by this library's functions. The + default buffer size is 8192 bytes. This function must be called after + gzopen() or gzdopen(), and before any other calls that read or write the + file. The buffer memory allocation is always deferred to the first read or + write. Two buffers are allocated, either both of the specified size when + writing, or one of the specified size and the other twice that size when + reading. A larger buffer size of, for example, 64K or 128K bytes will + noticeably increase the speed of decompression (reading). + + The new buffer size also affects the maximum length for gzprintf(). + + gzbuffer() returns 0 on success, or -1 on failure, such as being called + too late. +*/ + +ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +/* + Dynamically update the compression level or strategy. See the description + of deflateInit2 for the meaning of these parameters. + + gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not + opened for writing. +*/ + +ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +/* + Reads the given number of uncompressed bytes from the compressed file. If + the input file was not in gzip format, gzread copies the given number of + bytes into the buffer. + + After reaching the end of a gzip stream in the input, gzread will continue + to read, looking for another gzip stream, or failing that, reading the rest + of the input file directly without decompression. The entire input file + will be read if gzread is called until it returns less than the requested + len. + + gzread returns the number of uncompressed bytes actually read, less than + len for end of file, or -1 for error. +*/ + +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, + voidpc buf, unsigned len)); +/* + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of uncompressed bytes written or 0 in case of + error. +*/ + +ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); +/* + Converts, formats, and writes the arguments to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written, or 0 in case of error. The number of + uncompressed bytes written is limited to 8191, or one less than the buffer + size given to gzbuffer(). The caller should assure that this limit is not + exceeded. If it is exceeded, then gzprintf() will return an error (0) with + nothing written. In this case, there may also be a buffer overflow with + unpredictable consequences, which is possible only if zlib was compiled with + the insecure functions sprintf() or vsprintf() because the secure snprintf() + or vsnprintf() functions were not available. This can be determined using + zlibCompileFlags(). +*/ + +ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +/* + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + + gzputs returns the number of characters written, or -1 in case of error. +*/ + +ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +/* + Reads bytes from the compressed file until len-1 characters are read, or a + newline character is read and transferred to buf, or an end-of-file + condition is encountered. If any characters are read or if len == 1, the + string is terminated with a null character. If no characters are read due + to an end-of-file or len < 1, then the buffer is left untouched. + + gzgets returns buf which is a null-terminated string, or it returns NULL + for end-of-file or in case of error. If there was an error, the contents at + buf are indeterminate. +*/ + +ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +/* + Writes c, converted to an unsigned char, into the compressed file. gzputc + returns the value that was written, or -1 in case of error. +*/ + +ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +/* + Reads one byte from the compressed file. gzgetc returns this byte or -1 + in case of end of file or error. +*/ + +ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +/* + Push one character back onto the stream to be read as the first character + on the next read. At least one character of push-back is allowed. + gzungetc() returns the character pushed, or -1 on failure. gzungetc() will + fail if c is -1, and may fail if a character has been pushed but not read + yet. If gzungetc is used immediately after gzopen or gzdopen, at least the + output buffer size of pushed characters is allowed. (See gzbuffer above.) + The pushed character will be discarded if the stream is repositioned with + gzseek() or gzrewind(). +*/ + +ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +/* + Flushes all pending output into the compressed file. The parameter flush + is as in the deflate() function. The return value is the zlib error number + (see function gzerror below). gzflush is only permitted when writing. + + If the flush parameter is Z_FINISH, the remaining data is written and the + gzip stream is completed in the output. If gzwrite() is called again, a new + gzip stream will be started in the output. gzread() is able to read such + concatented gzip streams. + + gzflush should be called only when strictly necessary because it will + degrade compression if called too often. +*/ + +/* +ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, + z_off_t offset, int whence)); + + Sets the starting position for the next gzread or gzwrite on the given + compressed file. The offset represents a number of bytes in the + uncompressed data stream. The whence parameter is defined as in lseek(2); + the value SEEK_END is not supported. + + If the file is opened for reading, this function is emulated but can be + extremely slow. If the file is opened for writing, only forward seeks are + supported; gzseek then compresses a sequence of zeroes up to the new + starting position. + + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error, in + particular if the file is opened for writing and the new starting position + would be before the current position. +*/ + +ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +/* + Rewinds the given file. This function is supported only for reading. + + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) +*/ + +/* +ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); + + Returns the starting position for the next gzread or gzwrite on the given + compressed file. This position represents a number of bytes in the + uncompressed data stream, and is zero when starting, even if appending or + reading a gzip stream from the middle of a file using gzdopen(). + + gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +*/ + +/* +ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); + + Returns the current offset in the file being read or written. This offset + includes the count of bytes that precede the gzip stream, for example when + appending or when using gzdopen() for reading. When reading, the offset + does not include as yet unused buffered input. This information can be used + for a progress indicator. On error, gzoffset() returns -1. +*/ + +ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +/* + Returns true (1) if the end-of-file indicator has been set while reading, + false (0) otherwise. Note that the end-of-file indicator is set only if the + read tried to go past the end of the input, but came up short. Therefore, + just like feof(), gzeof() may return false even if there is no more data to + read, in the event that the last read request was for the exact number of + bytes remaining in the input file. This will happen if the input file size + is an exact multiple of the buffer size. + + If gzeof() returns true, then the read functions will return no more data, + unless the end-of-file indicator is reset by gzclearerr() and the input file + has grown since the previous end of file was detected. +*/ + +ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +/* + Returns true (1) if file is being copied directly while reading, or false + (0) if file is a gzip stream being decompressed. This state can change from + false to true while reading the input file if the end of a gzip stream is + reached, but is followed by data that is not another gzip stream. + + If the input file is empty, gzdirect() will return true, since the input + does not contain a gzip stream. + + If gzdirect() is used immediately after gzopen() or gzdopen() it will + cause buffers to be allocated to allow reading the file to determine if it + is a gzip file. Therefore if gzbuffer() is used, it should be called before + gzdirect(). +*/ + +ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +/* + Flushes all pending output if necessary, closes the compressed file and + deallocates the (de)compression state. Note that once file is closed, you + cannot call gzerror with file, since its structures have been deallocated. + gzclose must not be called more than once on the same file, just as free + must not be called more than once on the same allocation. + + gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a + file operation error, or Z_OK on success. +*/ + +ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); +ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); +/* + Same as gzclose(), but gzclose_r() is only for use when reading, and + gzclose_w() is only for use when writing or appending. The advantage to + using these instead of gzclose() is that they avoid linking in zlib + compression or decompression code that is not used when only reading or only + writing respectively. If gzclose() is used, then both compression and + decompression code will be included the application when linking to a static + zlib library. +*/ + +ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +/* + Returns the error message for the last error which occurred on the given + compressed file. errnum is set to zlib error number. If an error occurred + in the file system and not in the compression library, errnum is set to + Z_ERRNO and the application may consult errno to get the exact error code. + + The application must not modify the returned string. Future calls to + this function may invalidate the previously returned string. If file is + closed, then the string previously returned by gzerror will no longer be + available. + + gzerror() should be used to distinguish errors from end-of-file for those + functions above that do not distinguish those cases in their return values. +*/ + +ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +/* + Clears the error and end-of-file flags for file. This is analogous to the + clearerr() function in stdio. This is useful for continuing to read a gzip + file that is being written concurrently. +*/ + + + /* checksum functions */ + +/* + These functions are not related to compression but are exported + anyway because they might be useful in applications using the compression + library. +*/ + +ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +/* + Update a running Adler-32 checksum with the bytes buf[0..len-1] and + return the updated checksum. If buf is Z_NULL, this function returns the + required initial value for the checksum. + + An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. + + Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ + +/* +ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, + z_off_t len2)); + + Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 + and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for + each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of + seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. +*/ + +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +/* + Update a running CRC-32 with the bytes buf[0..len-1] and return the + updated CRC-32. If buf is Z_NULL, this function returns the required + initial value for the for the crc. Pre- and post-conditioning (one's + complement) is performed within this function so it shouldn't be done by the + application. + + Usage example: + + uLong crc = crc32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + crc = crc32(crc, buffer, length); + } + if (crc != original_crc) error(); +*/ + +/* +ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); + + Combine two CRC-32 check values into one. For two sequences of bytes, + seq1 and seq2 with lengths len1 and len2, CRC-32 check values were + calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 + check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and + len2. +*/ + + + /* various hacks, don't look :) */ + +/* deflateInit and inflateInit are macros to allow checking the zlib version + * and the compiler's view of z_stream: + */ +ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size)); +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size)); +#define deflateInit(strm, level) \ + deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit(strm) \ + inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ + (strategy), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) +#define inflateBackInit(strm, windowBits, window) \ + inflateBackInit_((strm), (windowBits), (window), \ + ZLIB_VERSION, sizeof(z_stream)) + +/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or + * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if + * both are true, the application gets the *64 functions, and the regular + * functions are changed to 64 bits) -- in case these are set on systems + * without large file support, _LFS64_LARGEFILE must also be true + */ +#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); + ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); +#endif + +#if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS-0 == 64 && _LFS64_LARGEFILE-0 +# define gzopen gzopen64 +# define gzseek gzseek64 +# define gztell gztell64 +# define gzoffset gzoffset64 +# define adler32_combine adler32_combine64 +# define crc32_combine crc32_combine64 +# ifdef _LARGEFILE64_SOURCE + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); + ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); +# endif +#else + ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); + ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); + ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); + ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); +#endif + +/* hack for buggy compilers */ +#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) + struct internal_state {int dummy;}; +#endif + +/* undocumented functions */ +ZEXTERN const char * ZEXPORT zError OF((int)); +ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); +ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); +ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); + +#ifdef __cplusplus +} +#endif + +#endif /* ZLIB_H */ diff --git a/engine/libs/mingw64-libs/zutil.h b/engine/libs/mingw64-libs/zutil.h new file mode 100755 index 000000000..258fa8879 --- /dev/null +++ b/engine/libs/mingw64-libs/zutil.h @@ -0,0 +1,274 @@ +/* zutil.h -- internal interface and configuration of the compression library + * Copyright (C) 1995-2010 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* @(#) $Id$ */ + +#ifndef ZUTIL_H +#define ZUTIL_H + +#if ((__GNUC__-0) * 10 + __GNUC_MINOR__-0 >= 33) && !defined(NO_VIZ) +# define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) +#else +# define ZLIB_INTERNAL +#endif + +#include "zlib.h" + +#ifdef STDC +# if !(defined(_WIN32_WCE) && defined(_MSC_VER)) +# include +# endif +# include +# include +#endif + +#ifndef local +# define local static +#endif +/* compile with -Dlocal if your debugger can't find static symbols */ + +typedef unsigned char uch; +typedef uch FAR uchf; +typedef unsigned short ush; +typedef ush FAR ushf; +typedef unsigned long ulg; + +extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ +/* (size given to avoid silly warnings with Visual C++) */ + +#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] + +#define ERR_RETURN(strm,err) \ + return (strm->msg = (char*)ERR_MSG(err), (err)) +/* To be used only when the state is known to be valid */ + + /* common constants */ + +#ifndef DEF_WBITS +# define DEF_WBITS MAX_WBITS +#endif +/* default windowBits for decompression. MAX_WBITS is for compression only */ + +#if MAX_MEM_LEVEL >= 8 +# define DEF_MEM_LEVEL 8 +#else +# define DEF_MEM_LEVEL MAX_MEM_LEVEL +#endif +/* default memLevel */ + +#define STORED_BLOCK 0 +#define STATIC_TREES 1 +#define DYN_TREES 2 +/* The three kinds of block type */ + +#define MIN_MATCH 3 +#define MAX_MATCH 258 +/* The minimum and maximum match lengths */ + +#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ + + /* target dependencies */ + +#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32)) +# define OS_CODE 0x00 +# if defined(__TURBOC__) || defined(__BORLANDC__) +# if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) + /* Allow compilation with ANSI keywords only enabled */ + void _Cdecl farfree( void *block ); + void *_Cdecl farmalloc( unsigned long nbytes ); +# else +# include +# endif +# else /* MSC or DJGPP */ +# include +# endif +#endif + +#ifdef AMIGA +# define OS_CODE 0x01 +#endif + +#if defined(VAXC) || defined(VMS) +# define OS_CODE 0x02 +# define F_OPEN(name, mode) \ + fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") +#endif + +#if defined(ATARI) || defined(atarist) +# define OS_CODE 0x05 +#endif + +#ifdef OS2 +# define OS_CODE 0x06 +# ifdef M_I86 +# include +# endif +#endif + +#if defined(MACOS) || defined(TARGET_OS_MAC) +# define OS_CODE 0x07 +# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os +# include /* for fdopen */ +# else +# ifndef fdopen +# define fdopen(fd,mode) NULL /* No fdopen() */ +# endif +# endif +#endif + +#ifdef TOPS20 +# define OS_CODE 0x0a +#endif + +#ifdef WIN32 +# ifndef __CYGWIN__ /* Cygwin is Unix, not Win32 */ +# define OS_CODE 0x0b +# endif +#endif + +#ifdef __50SERIES /* Prime/PRIMOS */ +# define OS_CODE 0x0f +#endif + +#if defined(_BEOS_) || defined(RISCOS) +# define fdopen(fd,mode) NULL /* No fdopen() */ +#endif + +#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX +# if defined(_WIN32_WCE) +# define fdopen(fd,mode) NULL /* No fdopen() */ +# ifndef _PTRDIFF_T_DEFINED + typedef int ptrdiff_t; +# define _PTRDIFF_T_DEFINED +# endif +# else +# define fdopen(fd,type) _fdopen(fd,type) +# endif +#endif + +#if defined(__BORLANDC__) + #pragma warn -8004 + #pragma warn -8008 + #pragma warn -8066 +#endif + +/* provide prototypes for these when building zlib without LFS */ +#if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0 + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); +#endif + + /* common defaults */ + +#ifndef OS_CODE +# define OS_CODE 0x03 /* assume Unix */ +#endif + +#ifndef F_OPEN +# define F_OPEN(name, mode) fopen((name), (mode)) +#endif + + /* functions */ + +#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550) +# ifndef HAVE_VSNPRINTF +# define HAVE_VSNPRINTF +# endif +#endif +#if defined(__CYGWIN__) +# ifndef HAVE_VSNPRINTF +# define HAVE_VSNPRINTF +# endif +#endif +#ifndef HAVE_VSNPRINTF +# ifdef MSDOS + /* vsnprintf may exist on some MS-DOS compilers (DJGPP?), + but for now we just assume it doesn't. */ +# define NO_vsnprintf +# endif +# ifdef __TURBOC__ +# define NO_vsnprintf +# endif +# ifdef WIN32 + /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */ +# if !defined(vsnprintf) && !defined(NO_vsnprintf) +# if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 ) +# define vsnprintf _vsnprintf +# endif +# endif +# endif +# ifdef __SASC +# define NO_vsnprintf +# endif +#endif +#ifdef VMS +# define NO_vsnprintf +#endif + +#if defined(pyr) +# define NO_MEMCPY +#endif +#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__) + /* Use our own functions for small and medium model with MSC <= 5.0. + * You may have to use the same strategy for Borland C (untested). + * The __SC__ check is for Symantec. + */ +# define NO_MEMCPY +#endif +#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY) +# define HAVE_MEMCPY +#endif +#ifdef HAVE_MEMCPY +# ifdef SMALL_MEDIUM /* MSDOS small or medium model */ +# define zmemcpy _fmemcpy +# define zmemcmp _fmemcmp +# define zmemzero(dest, len) _fmemset(dest, 0, len) +# else +# define zmemcpy memcpy +# define zmemcmp memcmp +# define zmemzero(dest, len) memset(dest, 0, len) +# endif +#else + void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len)); + int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len)); + void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len)); +#endif + +/* Diagnostic functions */ +#ifdef DEBUG +# include + extern int ZLIB_INTERNAL z_verbose; + extern void ZLIB_INTERNAL z_error OF((char *m)); +# define Assert(cond,msg) {if(!(cond)) z_error(msg);} +# define Trace(x) {if (z_verbose>=0) fprintf x ;} +# define Tracev(x) {if (z_verbose>0) fprintf x ;} +# define Tracevv(x) {if (z_verbose>1) fprintf x ;} +# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} +# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} +#else +# define Assert(cond,msg) +# define Trace(x) +# define Tracev(x) +# define Tracevv(x) +# define Tracec(c,x) +# define Tracecv(c,x) +#endif + + +voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items, + unsigned size)); +void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr)); + +#define ZALLOC(strm, items, size) \ + (*((strm)->zalloc))((strm)->opaque, (items), (size)) +#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) +#define TRY_FREE(s, p) {if (p) ZFREE(s, p);} + +#endif /* ZUTIL_H */ diff --git a/engine/qclib/pr_exec.c b/engine/qclib/pr_exec.c index 62fb0be2e..9e1ce8d02 100644 --- a/engine/qclib/pr_exec.c +++ b/engine/qclib/pr_exec.c @@ -7,6 +7,22 @@ #define Host_Error Sys_Error +// I put the following here to resolve "undefined reference to `__imp__vsnprintf'" with MinGW64 ~ Moodles +#ifdef _WIN32 + #if (_MSC_VER >= 1400) + //with MSVC 8, use MS extensions + #define snprintf linuxlike_snprintf_vc8 + int VARGS linuxlike_snprintf_vc8(char *buffer, int size, const char *format, ...) LIKEPRINTF(3); + #define vsnprintf(a, b, c, d) vsnprintf_s(a, b, _TRUNCATE, c, d) + #else + //msvc crap + #define snprintf linuxlike_snprintf + int VARGS linuxlike_snprintf(char *buffer, int size, const char *format, ...) LIKEPRINTF(3); + #define vsnprintf linuxlike_vsnprintf + int VARGS linuxlike_vsnprintf(char *buffer, int size, const char *format, va_list argptr); + #endif +#endif + //============================================================================= @@ -28,7 +44,7 @@ return; for ( ; i<10 ; i++) printf (" "); } - + if (s->op == OP_IF || s->op == OP_IFNOT) printf ("%sbranch %i",PR_GlobalString(progfuncs, s->a),s->b); else if (s->op == OP_GOTO) @@ -84,13 +100,13 @@ void PR_StackTrace (progfuncs_t *progfuncs) int *globalbase; #endif progs = -1; - + if (pr_depth == 0) { printf ("\n"); return; } - + #ifdef STACKTRACE globalbase = (int *)pr_globals + pr_xfunction->parm_start - pr_xfunction->locals; #endif @@ -100,7 +116,7 @@ void PR_StackTrace (progfuncs_t *progfuncs) for (i=pr_depth ; i>0 ; i--) { f = pr_stack[i].f; - + if (!f) { printf ("\n"); @@ -216,8 +232,8 @@ void VARGS PR_RunError (progfuncs_t *progfuncs, char *error, ...) printf ("\n"); //editbadfile(pr_strings + pr_xfunction->s_file, -1); - -// pr_depth = 0; // dump the stack so host_error can shutdown functions + +// pr_depth = 0; // dump the stack so host_error can shutdown functions // prinst->exitdepth = 0; Abort ("%s", string); @@ -244,7 +260,7 @@ int PR_EnterFunction (progfuncs_t *progfuncs, dfunction_t *f, int progsnum) int i, j, c, o; pr_stack[pr_depth].s = pr_xstatement; - pr_stack[pr_depth].f = pr_xfunction; + pr_stack[pr_depth].f = pr_xfunction; pr_stack[pr_depth].progsnum = progsnum; pr_stack[pr_depth].pushed = pr_spushed; pr_depth++; @@ -386,7 +402,7 @@ ddef32_t *ED_FindLocalOrGlobal(progfuncs_t *progfuncs, char *name, eval_t **val) Sys_Error("Bad int size in ED_FindLocalOrGlobal"); def32 = NULL; } - + *val = (eval_t *)&pr_progstate[pr_typecurrent].globals[def32->ofs]; return &def; } @@ -426,7 +442,7 @@ char *EvaluateDebugString(progfuncs_t *progfuncs, char *key) c = strchr(key, '.'); if (c) *c = '\0'; - def = ED_FindLocalOrGlobal(progfuncs, key, &val); + def = ED_FindLocalOrGlobal(progfuncs, key, &val); if (!def) { if (atoi(key)) @@ -440,13 +456,13 @@ char *EvaluateDebugString(progfuncs_t *progfuncs, char *key) } if (c) *c = '.'; if (!def) - { + { return "(Bad string)"; - } + } type = def->type; //go through ent vars - c = strchr(key, '.'); + c = strchr(key, '.'); while(c) { c2 = c+1; @@ -461,10 +477,10 @@ char *EvaluateDebugString(progfuncs_t *progfuncs, char *key) if (c)*c = '.'; if (!fdef) return "(Bad string)"; - val = (eval_t *) (((char *)PROG_TO_EDICT(progfuncs, val->_int)->fields) + fdef->ofs*4); + val = (eval_t *) (((char *)PROG_TO_EDICT(progfuncs, val->_int)->fields) + fdef->ofs*4); type = fdef->type; } - + if (assignment) { assignment++; @@ -473,7 +489,7 @@ char *EvaluateDebugString(progfuncs_t *progfuncs, char *key) case ev_string: *(string_t *)val = PR_StringToProgs(progfuncs, ED_NewString (progfuncs, assignment, 0)); break; - + case ev_float: *(float *)val = (float)atof (assignment); break; @@ -481,7 +497,7 @@ char *EvaluateDebugString(progfuncs_t *progfuncs, char *key) case ev_integer: *(int *)val = atoi (assignment); break; - + /* case ev_vector: strcpy (string, assignment); v = string; @@ -576,7 +592,7 @@ void SetExecutionToLine(progfuncs_t *progfuncs, int linenum) switch(current_progstate->intsize) { case 16: - for (snum = f->first_statement; pr_progstate[pn].linenums[snum] < linenum; snum++) + for (snum = f->first_statement; pr_progstate[pn].linenums[snum] < linenum; snum++) { if (pr_statements16[snum].op == OP_DONE) return; @@ -584,7 +600,7 @@ void SetExecutionToLine(progfuncs_t *progfuncs, int linenum) break; case 24: case 32: - for (snum = f->first_statement; pr_progstate[pn].linenums[snum] < linenum; snum++) + for (snum = f->first_statement; pr_progstate[pn].linenums[snum] < linenum; snum++) { if (pr_statements32[snum].op == OP_DONE) return; @@ -685,7 +701,7 @@ int PR_ToggleBreakpoint(progfuncs_t *progfuncs, char *filename, int linenum, int default: Sys_Error("Bad intsize"); op = 0; - } + } } goto cont; } @@ -772,7 +788,7 @@ static char *lastfile = 0; int pn = pr_typecurrent; int i; - dfunction_t *f = pr_xfunction; + dfunction_t *f = pr_xfunction; if (f && pr_progstate[pn].linenums && externs->useeditor) { @@ -806,7 +822,7 @@ static char *lastfile = 0; externs->useeditor(progfuncs, f->s_file+progfuncs->stringtable, -1, 0, NULL); return statement; } - + return statement; } @@ -881,11 +897,11 @@ restart: //jumped to when the progs might have changed. #endif #undef DEBUGABLE } - + while(1) { #include "execloop.h" - } + } #undef INTSIZE Sys_Error("PR_ExecuteProgram - should be unreachable"); break; @@ -903,7 +919,7 @@ restart: //jumped to when the progs might have changed. #endif #undef DEBUGABLE } - + while(1) { #ifdef SEPARATEINCLUDES @@ -912,7 +928,7 @@ restart: //jumped to when the progs might have changed. #include "execloop.h" #endif } -#undef INTSIZE +#undef INTSIZE Sys_Error("PR_ExecuteProgram - should be unreachable"); break; default: @@ -1035,7 +1051,7 @@ struct qcthread_s *PR_ForkStack(progfuncs_t *progfuncs) int localsoffset, baselocalsoffset; qcthread_t *thread = memalloc(sizeof(qcthread_t)); dfunction_t *f; - + //copy out the functions stack. for (i = 0,localsoffset=0; i < ed; i++) { @@ -1048,7 +1064,7 @@ struct qcthread_s *PR_ForkStack(progfuncs_t *progfuncs) baselocalsoffset = localsoffset; for (i = ed; i < pr_depth; i++) { - thread->fstack[i-ed].fnum = pr_stack[i].f - pr_progstate[pr_stack[i].progsnum].functions; + thread->fstack[i-ed].fnum = pr_stack[i].f - pr_progstate[pr_stack[i].progsnum].functions; thread->fstack[i-ed].progsnum = pr_stack[i].progsnum; thread->fstack[i-ed].statement = pr_stack[i].s; @@ -1138,7 +1154,7 @@ void PR_ResumeThread (progfuncs_t *progfuncs, struct qcthread_s *thread) else { pr_stack[pr_depth].progsnum = thread->fstack[i].progsnum; - pr_stack[pr_depth].f = pr_progstate[thread->fstack[i].progsnum].functions + thread->fstack[i].fnum; + pr_stack[pr_depth].f = pr_progstate[thread->fstack[i].progsnum].functions + thread->fstack[i].fnum; pr_stack[pr_depth].s = thread->fstack[i].statement; } @@ -1158,7 +1174,7 @@ void PR_ResumeThread (progfuncs_t *progfuncs, struct qcthread_s *thread) if (ls != thread->lstackused) PR_RunError(progfuncs, "Thread stores incorrect locals count\n"); - + f = &pr_functions[fnum]; // thread->lstackused -= f->locals; //the current function is the odd one out. diff --git a/engine/qclib/qcc_cmdlib.c b/engine/qclib/qcc_cmdlib.c index 8d0f874ac..61be4805f 100644 --- a/engine/qclib/qcc_cmdlib.c +++ b/engine/qclib/qcc_cmdlib.c @@ -10,6 +10,22 @@ extern jmp_buf qcccompileerror; #endif +// I put the following here to resolve "undefined reference to `__imp__vsnprintf'" with MinGW64 ~ Moodles +#ifdef _WIN32 + #if (_MSC_VER >= 1400) + //with MSVC 8, use MS extensions + #define snprintf linuxlike_snprintf_vc8 + int VARGS linuxlike_snprintf_vc8(char *buffer, int size, const char *format, ...) LIKEPRINTF(3); + #define vsnprintf(a, b, c, d) vsnprintf_s(a, b, _TRUNCATE, c, d) + #else + //msvc crap + #define snprintf linuxlike_snprintf + int VARGS linuxlike_snprintf(char *buffer, int size, const char *format, ...) LIKEPRINTF(3); + #define vsnprintf linuxlike_vsnprintf + int VARGS linuxlike_vsnprintf(char *buffer, int size, const char *format, va_list argptr); + #endif +#endif + // set these before calling CheckParm int myargc; char **myargv; @@ -83,13 +99,13 @@ int QCC_Long (int l) float QCC_SwapFloat (float l) { union {qbyte b[4]; float f;} in, out; - + in.f = l; out.b[0] = in.b[3]; out.b[1] = in.b[2]; out.b[2] = in.b[1]; out.b[3] = in.b[0]; - + return out.f; } @@ -138,13 +154,13 @@ double I_FloatTime (void) static int secbase; gettimeofday(&tp, &tzp); - + if (!secbase) { secbase = tp.tv_sec; return tp.tv_usec/1000000.0; } - + return (tp.tv_sec - secbase) + tp.tv_usec/1000000.0; } @@ -155,7 +171,7 @@ double I_FloatTime (void) int QC_strncasecmp (const char *s1, const char *s2, int n) { int c1, c2; - + while (1) { c1 = *s1++; @@ -163,7 +179,7 @@ int QC_strncasecmp (const char *s1, const char *s2, int n) if (!n--) return 0; // strings are equal until end point - + if (c1 != c2) { if (c1 >= 'a' && c1 <= 'z') @@ -178,7 +194,7 @@ int QC_strncasecmp (const char *s1, const char *s2, int n) // s1++; // s2++; } - + return -1; } @@ -210,13 +226,13 @@ char *QCC_COM_Parse (char *data) { int c; int len; - + len = 0; qcc_token[0] = 0; - + if (!data) return NULL; - + // skip whitespace skipwhite: while ( (c = *data) <= ' ') @@ -228,7 +244,7 @@ skipwhite: } data++; } - + // skip // comments if (c=='/' && data[1] == '/') { @@ -245,7 +261,7 @@ skipwhite: data+=2; goto skipwhite; } - + // handle quoted strings specially if (c == '\"') @@ -297,7 +313,7 @@ skipwhite: if (c=='{' || c=='}'|| c==')'|| c=='(' || c=='\'' || c==':' || c=='\"' || c==',') break; } while (c>32); - + qcc_token[len] = 0; return data; } @@ -307,13 +323,13 @@ char *QCC_COM_Parse2 (char *data) { int c; int len; - + len = 0; qcc_token[0] = 0; - + if (!data) return NULL; - + // skip whitespace skipwhite: while ( (c = *data) <= ' ') @@ -325,7 +341,7 @@ skipwhite: } data++; } - + // skip // comments if (c=='/' && data[1] == '/') { @@ -333,7 +349,7 @@ skipwhite: data++; goto skipwhite; } - + // handle quoted strings specially if (c == '\"') @@ -389,7 +405,7 @@ skipwhite: break; } } - + qcc_token[len] = 0; return data; } @@ -403,7 +419,7 @@ skipwhite: len++; c = *data; } while ((c>= 'a' && c <= 'z') || (c>= 'A' && c <= 'Z') || c == '_'); - + qcc_token[len] = 0; return data; } @@ -419,7 +435,7 @@ skipwhite: char *VARGS qcva (char *text, ...) { va_list argptr; - static char msg[2048]; + static char msg[2048]; va_start (argptr,text); QC_vsnprintf (msg,sizeof(msg)-1, text,argptr); @@ -475,7 +491,7 @@ void VARGS QCC_Error (int errortype, const char *error, ...) { extern int numsourcefiles; va_list argptr; - char msg[2048]; + char msg[2048]; va_start (argptr,error); QC_vsnprintf (msg,sizeof(msg)-1, error,argptr); @@ -489,7 +505,7 @@ void VARGS QCC_Error (int errortype, const char *error, ...) numsourcefiles = 0; #ifndef QCC - longjmp(qcccompileerror, 1); + longjmp(qcccompileerror, 1); #else print ("Press any key\n"); getch(); @@ -532,7 +548,7 @@ int SafeOpenWrite (char *filename) int handle; umask (0); - + handle = open(filename,O_WRONLY | O_CREAT | O_TRUNC | O_BINARY , 0666); @@ -776,7 +792,7 @@ int SafeOpenWrite (char *filename, int maxsize) void ResizeBuf(int hand, int newsize) { -// int wasmal = qccfile[hand].buffismalloc; +// int wasmal = qccfile[hand].buffismalloc; char *nb; if (qccfile[hand].buffsize >= newsize) @@ -792,7 +808,7 @@ void ResizeBuf(int hand, int newsize) // qccfile[hand].buffismalloc = false; // nb = memalloc(newsize); // } - + memcpy(nb, qccfile[hand].buff, qccfile[hand].maxofs); // if (wasmal) free(qccfile[hand].buff); @@ -826,7 +842,7 @@ int SafeSeek(int hand, int ofs, int mode) } void SafeClose(int hand) { - externs->WriteFile(qccfile[hand].name, qccfile[hand].buff, qccfile[hand].maxofs); + externs->WriteFile(qccfile[hand].name, qccfile[hand].buff, qccfile[hand].maxofs); // if (qccfile[hand].buffismalloc) free(qccfile[hand].buff); // else @@ -847,21 +863,21 @@ long QCC_LoadFile (char *filename, void **bufferptr) return -1; // Abort("failed to find file %s", filename); } - mem = qccHunkAlloc(sizeof(qcc_cachedsourcefile_t) + len+2); + mem = qccHunkAlloc(sizeof(qcc_cachedsourcefile_t) + len+2); ((qcc_cachedsourcefile_t*)mem)->next = qcc_sourcefile; qcc_sourcefile = (qcc_cachedsourcefile_t*)mem; - qcc_sourcefile->size = len; - mem += sizeof(qcc_cachedsourcefile_t); + qcc_sourcefile->size = len; + mem += sizeof(qcc_cachedsourcefile_t); strcpy(qcc_sourcefile->filename, filename); qcc_sourcefile->file = mem; qcc_sourcefile->type = FT_CODE; - + externs->ReadFile(filename, mem, len+2); mem[len] = '\n'; mem[len+1] = '\0'; *bufferptr=mem; - + return len; } void QCC_AddFile (char *filename) @@ -871,12 +887,12 @@ void QCC_AddFile (char *filename) len = externs->FileSize(filename); if (len < 0) Abort("failed to find file %s", filename); - mem = qccHunkAlloc(sizeof(qcc_cachedsourcefile_t) + len+1); + mem = qccHunkAlloc(sizeof(qcc_cachedsourcefile_t) + len+1); ((qcc_cachedsourcefile_t*)mem)->next = qcc_sourcefile; qcc_sourcefile = (qcc_cachedsourcefile_t*)mem; - qcc_sourcefile->size = len; - mem += sizeof(qcc_cachedsourcefile_t); + qcc_sourcefile->size = len; + mem += sizeof(qcc_cachedsourcefile_t); strcpy(qcc_sourcefile->filename, filename); qcc_sourcefile->file = mem; qcc_sourcefile->type = FT_DATA; diff --git a/engine/qclib/qcc_pr_lex.c b/engine/qclib/qcc_pr_lex.c index 3befbcd3b..afad3f1b2 100644 --- a/engine/qclib/qcc_pr_lex.c +++ b/engine/qclib/qcc_pr_lex.c @@ -6,6 +6,22 @@ #endif #include "time.h" +// I put the following here to resolve "undefined reference to `__imp__vsnprintf'" with MinGW64 ~ Moodles +#ifdef _WIN32 + #if (_MSC_VER >= 1400) + //with MSVC 8, use MS extensions + #define snprintf linuxlike_snprintf_vc8 + int VARGS linuxlike_snprintf_vc8(char *buffer, int size, const char *format, ...) LIKEPRINTF(3); + #define vsnprintf(a, b, c, d) vsnprintf_s(a, b, _TRUNCATE, c, d) + #else + //msvc crap + #define snprintf linuxlike_snprintf + int VARGS linuxlike_snprintf(char *buffer, int size, const char *format, ...) LIKEPRINTF(3); + #define vsnprintf linuxlike_vsnprintf + int VARGS linuxlike_vsnprintf(char *buffer, int size, const char *format, va_list argptr); + #endif +#endif + #define MEMBERFIELDNAME "__m%s" #define STRCMP(s1,s2) (((*s1)!=(*s2)) || strcmp(s1+1,s2+1)) //saves about 2-6 out of 120 - expansion of idea from fastqcc @@ -216,7 +232,7 @@ int ParsePrecompilerIf(void) int eval; char *start = pr_file_p; if (!QCC_PR_SimpleGetToken()) - { + { if (*pr_file_p == '(') { eval = ParsePrecompilerIf(); @@ -365,7 +381,7 @@ pbool QCC_PR_Precompiler(void) eval = true; if (ifmode == 1) - eval = eval?false:true; + eval = eval?false:true; } while(*pr_file_p != '\n' && *pr_file_p != '\0') //read on until the end of the line @@ -470,11 +486,11 @@ pbool QCC_PR_Precompiler(void) } } else if (!strncmp(directive, "endif", 5)) - { + { while(*pr_file_p != '\n' && *pr_file_p != '\0') //read on until the end of the line { pr_file_p++; - } + } if (ifs <= 0) QCC_PR_ParseError(ERR_NOPRECOMPILERIF, "unmatched #endif"); else @@ -486,7 +502,7 @@ pbool QCC_PR_Precompiler(void) return true; } else if (!strncmp(directive, "error", 5)) - { + { pr_file_p = directive+5; for (a = 0; a < sizeof(msg)-1 && pr_file_p[a] != '\n' && pr_file_p[a] != '\0'; a++) msg[a] = pr_file_p[a]; @@ -501,7 +517,7 @@ pbool QCC_PR_Precompiler(void) QCC_PR_ParseError(ERR_HASHERROR, "#Error: %s", msg); } else if (!strncmp(directive, "warning", 7)) - { + { pr_file_p = directive+7; for (a = 0; a < 1023 && pr_file_p[a] != '\n' && pr_file_p[a] != '\0'; a++) msg[a] = pr_file_p[a]; @@ -516,7 +532,7 @@ pbool QCC_PR_Precompiler(void) QCC_PR_ParseWarning(WARN_PRECOMPILERMESSAGE, "#warning: %s", msg); } else if (!strncmp(directive, "message", 7)) - { + { pr_file_p = directive+7; for (a = 0; a < 1023 && pr_file_p[a] != '\n' && pr_file_p[a] != '\0'; a++) msg[a] = pr_file_p[a]; @@ -553,9 +569,9 @@ pbool QCC_PR_Precompiler(void) pr_file_p=directive+4; if (!strncmp(pr_file_p, "id", 2)) pr_file_p+=3; - else + else { - ifmode = QCC_PR_LexInteger(); + ifmode = QCC_PR_LexInteger(); if (ifmode == 0) ifmode = 1; pr_file_p++; @@ -575,16 +591,16 @@ pbool QCC_PR_Precompiler(void) else if (ifmode <= 5) strcpy(QCC_Packname[ifmode-1], msg); else - QCC_PR_ParseError(ERR_TOOMANYPACKFILES, "No more than 5 packs are allowed"); + QCC_PR_ParseError(ERR_TOOMANYPACKFILES, "No more than 5 packs are allowed"); } else if (!strncmp(directive, "forcecrc", 8)) - { + { pr_file_p=directive+8; - ForcedCRC = QCC_PR_LexInteger(); + ForcedCRC = QCC_PR_LexInteger(); pr_file_p++; - + for (a = 0; a < sizeof(msg)-1 && pr_file_p[a] != '\n' && pr_file_p[a] != '\0'; a++) msg[a] = pr_file_p[a]; @@ -593,7 +609,7 @@ pbool QCC_PR_Precompiler(void) while(*pr_file_p != '\n' && *pr_file_p != '\0') //read on until the end of the line { pr_file_p++; - } + } } else if (!strncmp(directive, "includelist", 11)) { @@ -634,7 +650,7 @@ pbool QCC_PR_Precompiler(void) pr_file_p++; } } - + while(*pr_file_p != '\n' && *pr_file_p != '\0') //read on until the end of the line { pr_file_p++; @@ -687,7 +703,7 @@ pbool QCC_PR_Precompiler(void) } } else if (!strncmp(directive, "datafile", 8)) - { + { pr_file_p=directive+8; while(*pr_file_p <= ' ') @@ -722,7 +738,7 @@ pbool QCC_PR_Precompiler(void) printf("Outputfile: %s\n", destfile); pr_file_p++; - + for (a = 0; a < sizeof(msg)-1 && pr_file_p[a] != '\n' && pr_file_p[a] != '\0'; a++) msg[a] = pr_file_p[a]; @@ -751,7 +767,7 @@ pbool QCC_PR_Precompiler(void) } msg[a++] = *pr_file_p; } - + msg[a] = '\0'; { char *end; @@ -868,7 +884,7 @@ pbool QCC_PR_Precompiler(void) #ifndef QCCONLY p=0; - s2 = qcc_token; + s2 = qcc_token; if (!strncmp(s2, "./", 2)) s2+=2; else @@ -1019,7 +1035,7 @@ void QCC_PR_LexString (void) int c; int len; char tmpbuf[2048]; - + char *text; char *oldf; int oldline; @@ -1088,12 +1104,12 @@ void QCC_PR_LexString (void) pr_file_p = oldf-1; QCC_PR_LexWhitespace(); if (*pr_file_p != '\"') //annother string - break; + break; } QCC_PR_LexWhitespace(); - text = pr_file_p; - + text = pr_file_p; + } while (1); strcpy(pr_token, tmpbuf); @@ -1236,7 +1252,7 @@ void QCC_PR_LexString (void) pr_token[len] = 0; pr_token_type = tt_immediate; pr_immediate_type = type_string; - strcpy (pr_immediate_string, pr_token); + strcpy (pr_immediate_string, pr_token); return; } else if (c == '#') @@ -1313,7 +1329,7 @@ int QCC_PR_LexInteger (void) { int c; int len; - + len = 0; c = *pr_file_p; if (pr_file_p[0] == '0' && pr_file_p[1] == 'x') @@ -1363,7 +1379,7 @@ void QCC_PR_LexNumber (void) base = 10; while((c = *pr_file_p)) - { + { if (c >= '0' && c <= '9') { pr_token[tokenlen++] = c; @@ -1400,7 +1416,7 @@ void QCC_PR_LexNumber (void) break; } else - { + { break; } pr_file_p++; @@ -1452,7 +1468,7 @@ float QCC_PR_LexFloat (void) { int c; int len; - + len = 0; c = *pr_file_p; do @@ -1476,7 +1492,7 @@ Parses a single quoted vector void QCC_PR_LexVector (void) { int i; - + pr_file_p++; if (*pr_file_p == '\\') @@ -1554,7 +1570,7 @@ void QCC_PR_LexName (void) { int c; int len; - + len = 0; c = *pr_file_p; do @@ -1563,11 +1579,11 @@ void QCC_PR_LexName (void) len++; pr_file_p++; c = *pr_file_p; - } while ( (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' - || (c >= '0' && c <= '9')); + } while ( (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' + || (c >= '0' && c <= '9')); pr_token[len] = 0; - pr_token_type = tt_name; + pr_token_type = tt_name; } /* @@ -1580,9 +1596,9 @@ void QCC_PR_LexPunctuation (void) int i; int len; char *p; - + pr_token_type = tt_punct; - + for (i=0 ; (p = pr_punctuation[i]) != NULL ; i++) { len = strlen(p); @@ -1597,11 +1613,11 @@ void QCC_PR_LexPunctuation (void) return; } } - + QCC_PR_ParseError (ERR_UNKNOWNPUCTUATION, "Unknown punctuation"); } - + /* ============== PR_LexWhitespace @@ -1610,7 +1626,7 @@ PR_LexWhitespace void QCC_PR_LexWhitespace (void) { int c; - + while (1) { // skip whitespace @@ -1630,7 +1646,7 @@ void QCC_PR_LexWhitespace (void) pr_file_p++; } } - + // skip // comments if (c=='/' && pr_file_p[1] == '/') { @@ -1642,7 +1658,7 @@ void QCC_PR_LexWhitespace (void) QCC_PR_NewLine(false); continue; } - + // skip /* */ comments if (c=='/' && pr_file_p[1] == '*') { @@ -1663,7 +1679,7 @@ void QCC_PR_LexWhitespace (void) pr_file_p+=2; continue; } - + break; // a real character has been found } } @@ -1839,7 +1855,7 @@ Deals with counting sequence numbers and replacing frame macros ============== */ void QCC_PR_LexGrab (void) -{ +{ pr_file_p++; // skip the $ // if (!QCC_PR_SimpleGetToken ()) // QCC_PR_ParseError ("hanging $"); @@ -1848,7 +1864,7 @@ void QCC_PR_LexGrab (void) QCC_PR_LexMacroName(); if (!*pr_token) QCC_PR_ParseError (ERR_BADFRAMEMACRO, "hanging $"); - + // check for $frame if (!STRCMP (pr_token, "frame") || !STRCMP (pr_token, "framesave")) { @@ -1878,7 +1894,7 @@ void QCC_PR_LexGrab (void) { QCC_PR_LexMacroName (); pr_macrovalue = atoi(pr_token); - + QCC_PR_Lex (); } else if (!STRCMP (pr_token, "framerestore")) @@ -1886,7 +1902,7 @@ void QCC_PR_LexGrab (void) QCC_PR_LexMacroName (); QCC_PR_ExpandMacro(); pr_macrovalue = (int)pr_immediate._float; - + QCC_PR_Lex (); } else if (!STRCMP (pr_token, "modelname")) @@ -1905,7 +1921,7 @@ void QCC_PR_LexGrab (void) pr_macrovalue = i; else i = 0; - + QCC_PR_Lex (); } // look for a frame name macro @@ -1941,7 +1957,7 @@ CompilerConstant_t *QCC_PR_DefineName(char *name) if (strlen(name) >= MAXCONSTANTLENGTH || !*name) QCC_PR_ParseError(ERR_NAMETOOLONG, "Compiler constant name length is too long or short"); - + cnst = pHash_Get(&compconstantstable, name); if (cnst) { @@ -1984,7 +2000,7 @@ void QCC_PR_ConditionCompilation(void) QCC_PR_SimpleGetToken (); - if (!QCC_PR_SimpleGetToken ()) + if (!QCC_PR_SimpleGetToken ()) QCC_PR_ParseError(ERR_NONAME, "No name defined for compiler constant"); cnst = pHash_Get(&compconstantstable, pr_token); @@ -2056,7 +2072,7 @@ void QCC_PR_ConditionCompilation(void) *d++ = *s++; } } - } + } else if(*s == '\r' || *s == '\n' || *s == '\0') { break; @@ -2326,7 +2342,7 @@ int QCC_PR_CheakCompConst(void) return true; } if (!strncmp(pr_file_p, "__FILE__", 8)) - { + { static char retbuf[256]; sprintf(retbuf, "\"%s\"", strings + s_file); pr_file_p = retbuf; @@ -2345,7 +2361,7 @@ int QCC_PR_CheakCompConst(void) return true; } if (!strncmp(pr_file_p, "__FUNC__", 8)) - { + { static char retbuf[256]; sprintf(retbuf, "\"%s\"",pr_scope->name); pr_file_p = retbuf; @@ -2368,12 +2384,12 @@ int QCC_PR_CheakCompConst(void) char *QCC_PR_CheakCompConstString(char *def) { char *s; - + CompilerConstant_t *c; c = pHash_Get(&compconstantstable, def); - if (c) + if (c) { s = QCC_PR_CheakCompConstString(c->value); return s; @@ -2401,11 +2417,11 @@ void QCC_PR_Lex (void) int c; pr_token[0] = 0; - + if (!pr_file_p) { if (QCC_PR_UnInclude()) - { + { QCC_PR_Lex(); return; } @@ -2418,7 +2434,7 @@ void QCC_PR_Lex (void) if (!pr_file_p) { if (QCC_PR_UnInclude()) - { + { QCC_PR_Lex(); return; } @@ -2427,11 +2443,11 @@ void QCC_PR_Lex (void) } c = *pr_file_p; - + if (!c) { if (QCC_PR_UnInclude()) - { + { QCC_PR_Lex(); return; } @@ -2492,7 +2508,7 @@ void QCC_PR_Lex (void) return; } - + if ( (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' ) { if (flag_hashonly || !QCC_PR_CheakCompConst()) //look for a macro. @@ -2501,7 +2517,7 @@ void QCC_PR_Lex (void) if (pr_token_type == tt_eof) { if (QCC_PR_UnInclude()) - { + { QCC_PR_Lex(); return; } @@ -2509,13 +2525,13 @@ void QCC_PR_Lex (void) } return; } - + if (c == '$') { QCC_PR_LexGrab (); return; } - + // parse symbol strings until a non-symbol is found QCC_PR_LexPunctuation (); } @@ -2583,7 +2599,7 @@ void VARGS QCC_PR_ParseError (int errortype, char *error, ...) printf ("%s(%i) : error: %s\n", strings + s_file, pr_source_line, string); else printf ("%s:%i: error: %s\n", strings + s_file, pr_source_line, string); - + longjmp (pr_parse_abort, 1); } void VARGS QCC_PR_ParseErrorPrintDef (int errortype, QCC_def_t *def, char *error, ...) @@ -2605,7 +2621,7 @@ void VARGS QCC_PR_ParseErrorPrintDef (int errortype, QCC_def_t *def, char *error printf ("%s:%i: error: %s\n", strings + s_file, pr_source_line, string); QCC_PR_ParsePrintDef(WARN_ERROR, def); - + longjmp (pr_parse_abort, 1); } void VARGS QCC_PR_ParseWarning (int type, char *error, ...) @@ -2723,7 +2739,7 @@ pbool QCC_PR_CheckToken (char *string) if (STRCMP (string, pr_token)) return false; - + QCC_PR_Lex (); return true; } @@ -2735,7 +2751,7 @@ pbool QCC_PR_CheckImmediate (char *string) if (STRCMP (string, pr_token)) return false; - + QCC_PR_Lex (); return true; } @@ -2744,7 +2760,7 @@ pbool QCC_PR_CheckName(char *string) { if (pr_token_type != tt_name) return false; - if (flag_caseinsensative) + if (flag_caseinsensative) { if (stricmp (string, pr_token)) return false; @@ -2762,7 +2778,7 @@ pbool QCC_PR_CheckKeyword(int keywordenabled, char *string) { if (!keywordenabled) return false; - if (flag_caseinsensative) + if (flag_caseinsensative) { if (stricmp (string, pr_token)) return false; @@ -2789,14 +2805,14 @@ char *QCC_PR_ParseName (void) { static char ident[MAX_NAME]; char *ret; - + if (pr_token_type != tt_name) - QCC_PR_ParseError (ERR_NOTANAME, "\"%s\" - not a name", pr_token); + QCC_PR_ParseError (ERR_NOTANAME, "\"%s\" - not a name", pr_token); if (strlen(pr_token) >= MAX_NAME-1) QCC_PR_ParseError (ERR_NAMETOOLONG, "name too long"); strcpy (ident, pr_token); QCC_PR_Lex (); - + ret = qccHunkAlloc(strlen(ident)+1); strcpy(ret, ident); return ret; @@ -2945,7 +2961,7 @@ QCC_type_t *QCC_PR_FindType (QCC_type_t *type) // check = &qcc_typeinfo[t]; if (typecmp(&qcc_typeinfo[t], type)) continue; - + // c2 = check->next; // n2 = type->next; @@ -3095,7 +3111,7 @@ QCC_type_t *QCC_PR_ParseFunctionType (int newtype, QCC_type_t *returntype) strcpy (pr_parm_names[ftype->num_parms], ""); ftype->num_parms++; } while (QCC_PR_CheckToken (",")); - + QCC_PR_Expect (")"); } recursivefunctiontype--; @@ -3172,7 +3188,7 @@ QCC_type_t *QCC_PR_ParseFunctionTypeReacc (int newtype, QCC_type_t *returntype) strcpy (pr_parm_names[ftype->num_parms], name); ftype->num_parms++; } while (QCC_PR_CheckToken (";")); - + QCC_PR_Expect (")"); } recursivefunctiontype--; @@ -3265,7 +3281,7 @@ QCC_type_t *QCC_PR_ParseType (int newtype) { newt = &qcc_typeinfo[i]; break; - } + } } if (newt && forwarddeclaration) @@ -3287,7 +3303,7 @@ QCC_type_t *QCC_PR_ParseType (int newtype) return NULL; } - + if (QCC_PR_CheckToken(":")) { @@ -3403,7 +3419,7 @@ QCC_type_t *QCC_PR_ParseType (int newtype) newt = QCC_PR_NewType("union", ev_union); newt->size=0; QCC_PR_Expect("{"); - + type = NULL; if (QCC_PR_CheckToken(",")) QCC_PR_ParseError(ERR_NOTANAME, "element missing name"); @@ -3430,7 +3446,7 @@ QCC_type_t *QCC_PR_ParseType (int newtype) if (newparm->size > newt->size) newt->size = newparm->size; newt->num_parms++; - + if (type) type->next = newparm; else @@ -3472,7 +3488,7 @@ QCC_type_t *QCC_PR_ParseType (int newtype) } } QCC_PR_Lex (); - + if (QCC_PR_CheckToken ("(")) //this is followed by parameters. Must be a function. { type_inlinefunction = true; @@ -3482,7 +3498,7 @@ QCC_type_t *QCC_PR_ParseType (int newtype) { if (newtype) { - type = QCC_PR_DuplicateType(type); + type = QCC_PR_DuplicateType(type); } return type; diff --git a/engine/qclib/qcdecomp.c b/engine/qclib/qcdecomp.c index d1fcabf51..d1e182785 100644 --- a/engine/qclib/qcdecomp.c +++ b/engine/qclib/qcdecomp.c @@ -5,6 +5,22 @@ #define MAX_PARMS 8 +// I put the following here to resolve "undefined reference to `__imp__vsnprintf'" with MinGW64 ~ Moodles +#ifdef _WIN32 + #if (_MSC_VER >= 1400) + //with MSVC 8, use MS extensions + #define snprintf linuxlike_snprintf_vc8 + int VARGS linuxlike_snprintf_vc8(char *buffer, int size, const char *format, ...) LIKEPRINTF(3); + #define vsnprintf(a, b, c, d) vsnprintf_s(a, b, _TRUNCATE, c, d) + #else + //msvc crap + #define snprintf linuxlike_snprintf + int VARGS linuxlike_snprintf(char *buffer, int size, const char *format, ...) LIKEPRINTF(3); + #define vsnprintf linuxlike_vsnprintf + int VARGS linuxlike_vsnprintf(char *buffer, int size, const char *format, va_list argptr); + #endif +#endif + typedef struct QCC_type_s { etype_t type; @@ -13,7 +29,7 @@ typedef struct QCC_type_s // function types are more complex struct QCC_type_s *aux_type; // return type or field type int num_parms; // -1 = variable args -// struct QCC_type_s *parm_types[MAX_PARMS]; // only [num_parms] allocated +// struct QCC_type_s *parm_types[MAX_PARMS]; // only [num_parms] allocated int ofs; //inside a structure. int size; @@ -107,7 +123,7 @@ char *VarAtOfs(progfuncs_t *progfuncs, int ofs) typen = current_progstate->types[def->type & ~DEF_SHARED].type; else typen = def->type & ~(DEF_SHARED|DEF_SAVEGLOBAL); - + evaluateimmediate: // return PR_UglyValueString(def->type, (eval_t *)¤t_progstate->globals[def->ofs]); switch(typen) @@ -173,7 +189,7 @@ int ImmediateReadLater(progfuncs_t *progfuncs, progstate_t *progs, unsigned int dstatement16_t *st; if (ofsflags[ofs] & 8) return false; //this is a global/local/pramater, not a temp - if (!(ofsflags[ofs] & 3)) + if (!(ofsflags[ofs] & 3)) return false; //this is a constant. for (st = &((dstatement16_t*)progs->statements)[firstst]; ; st++,firstst++) { //if written, return false, if read, return true. @@ -453,7 +469,7 @@ void WriteAsmStatements(progfuncs_t *progfuncs, progstate_t *progs, int num, int def->s_name = (char*)malloc(strlen(mem)+1)-progfuncs->stringtable; strcpy(def->s_name+progfuncs->stringtable, mem); } - + if (current_progstate->types) writes(f, "%s %s", current_progstate->types[def->type&~(DEF_SHARED|DEF_SAVEGLOBAL)].name, def->s_name); else @@ -471,7 +487,7 @@ void WriteAsmStatements(progfuncs_t *progfuncs, progstate_t *progs, int num, int case ev_vector: writes(f, "%s %s", "vector", progfuncs->stringtable+def->s_name); break; - default: + default: writes(f, "%s %s", "randomtype", progfuncs->stringtable+def->s_name); break; } @@ -542,7 +558,7 @@ void WriteAsmStatements(progfuncs_t *progfuncs, progstate_t *progs, int num, int writes(f, ";\r\n"); return; } - + fileofs = SafeSeek(f, 0, SEEK_CUR); if (setjmp(decompilestatementfailure)) { @@ -555,7 +571,7 @@ void WriteAsmStatements(progfuncs_t *progfuncs, progstate_t *progs, int num, int { def = ED_GlobalAtOfs16(progfuncs, ofs); if (def) - { + { v = (eval_t *)&((int *)progs->globals)[def->ofs]; if (current_progstate->types) writes(f, "\tlocal %s %s;\r\n", current_progstate->types[def->type&~(DEF_SHARED|DEF_SAVEGLOBAL)].name, def->s_name); @@ -583,11 +599,11 @@ void WriteAsmStatements(progfuncs_t *progfuncs, progstate_t *progs, int num, int case ev_vector: if (v->_vector[0] || v->_vector[1] || v->_vector[2]) writes(f, "\tlocal vector %s = '%f %f %f';\r\n", progfuncs->stringtable+def->s_name, v->_vector[0], v->_vector[1], v->_vector[2]); - else + else writes(f, "\tlocal %s %s;\r\n", "vector", progfuncs->stringtable+def->s_name); ofs+=2; //skip floats; break; - default: + default: writes(f, "\tlocal %s %s;\r\n", "randomtype", progfuncs->stringtable+def->s_name); break; } @@ -600,7 +616,7 @@ void WriteAsmStatements(progfuncs_t *progfuncs, progstate_t *progs, int num, int st = &((dstatement16_t*)progs->statements)[stn]; if (!st->op) //end of function statement! break; - op = &pr_opcodes[st->op]; + op = &pr_opcodes[st->op]; writes(f, "\t%s", op->opname); if (op->priority==-1&&op->associative==ASSOC_RIGHT) //last param is a goto @@ -651,7 +667,7 @@ void WriteAsmStatements(progfuncs_t *progfuncs, progstate_t *progs, int num, int writes(f, " %s", VarAtOfs(progfuncs, st->c)); } } - + writes(f, ";\r\n"); stn++; @@ -671,7 +687,7 @@ void WriteAsmStatements(progfuncs_t *progfuncs, progstate_t *progs, int num, int { def = ED_GlobalAtOfs16(progfuncs, ofs); if (def) - { + { v = (eval_t *)&((int *)progs->globals)[def->ofs]; if (current_progstate->types) writes(f, "\tlocal %s %s;\r\n", current_progstate->types[def->type&~(DEF_SHARED|DEF_SAVEGLOBAL)].name, def->s_name); @@ -699,11 +715,11 @@ void WriteAsmStatements(progfuncs_t *progfuncs, progstate_t *progs, int num, int case ev_vector: if (v->_vector[0] || v->_vector[1] || v->_vector[2]) writes(f, "\tlocal vector %s = '%f %f %f';\r\n", def->s_name, v->_vector[0], v->_vector[1], v->_vector[2]); - else + else writes(f, "\tlocal %s %s;\r\n", "vector",progfuncs->stringtable+def->s_name); ofs+=2; //skip floats; break; - default: + default: writes(f, "\tlocal %s %s;\r\n", "randomtype", progfuncs->stringtable+def->s_name); break; } @@ -736,7 +752,7 @@ void FigureOutTypes(progfuncs_t *progfuncs) dstatement16_t *st; int parmofs[8]; - + ofstype = realloc(ofstype, sizeof(*ofstype)*65535); ofsflags = realloc(ofsflags, sizeof(*ofsflags)*65535); @@ -752,9 +768,9 @@ void FigureOutTypes(progfuncs_t *progfuncs) type_float = QCC_PR_NewType("float", ev_float); type_vector = QCC_PR_NewType("vector", ev_vector); type_entity = QCC_PR_NewType("entity", ev_entity); - type_field = QCC_PR_NewType("field", ev_field); + type_field = QCC_PR_NewType("field", ev_field); type_function = QCC_PR_NewType("function", ev_function); - type_pointer = QCC_PR_NewType("pointer", ev_pointer); + type_pointer = QCC_PR_NewType("pointer", ev_pointer); type_integer = QCC_PR_NewType("integer", ev_integer); // type_variant = QCC_PR_NewType("__variant", ev_variant); @@ -843,7 +859,7 @@ pbool Decompile(progfuncs_t *progfuncs, char *fname) qccprogfuncs = progfuncs; op=current_progstate; - + if (!PR_ReallyLoadProgs(progfuncs, fname, -1, &progs, false)) { return false; @@ -947,10 +963,10 @@ pbool Decompile(progfuncs_t *progfuncs, char *fname) break; case ev_function: -//wierd +//wierd WriteAsmStatements(progfuncs, &progs, ((int *)progs.globals)[pr_globaldefs16[i].ofs], f, pr_globaldefs16[i].s_name+progfuncs->stringtable); break; - + case ev_pointer: writes(f, "pointer %s;\r\n", progfuncs->stringtable+pr_globaldefs16[i].s_name); break; @@ -964,9 +980,9 @@ pbool Decompile(progfuncs_t *progfuncs, char *fname) case ev_struct: writes(f, "struct %s;\r\n", progfuncs->stringtable+pr_globaldefs16[i].s_name); break; - default: + default: break; - + } }