[Commits] SDL_image: Updated version to 1.2.11

libsdl.org revision control commits-owner at libsdl.org
Tue Jan 18 11:10:25 PST 2011


details:   http://hg.libsdl.org/SDL_image/rev/87ec529fd6ce
changeset: 262:87ec529fd6ce
user:      Sam Lantinga <slouken at libsdl.org>
date:      Tue Jan 18 11:10:17 2011 -0800
description:
Updated version to 1.2.11

diffstat:

 SDL_image.h                         |     2 +-
 VisualC/SDL_image.dsp               |   164 +
 VisualC/SDL_image.dsw               |    41 +
 VisualC/SDL_image.sln               |    20 +
 VisualC/SDL_image.vcproj            |   553 +++++
 VisualC/Version.rc                  |   105 +
 VisualC/clean.sh                    |     5 +
 VisualC/graphics/include/jconfig.h  |    38 +
 VisualC/graphics/include/jerror.h   |   291 ++
 VisualC/graphics/include/jmorecfg.h |   371 +++
 VisualC/graphics/include/jpeglib.h  |  1096 ++++++++++
 VisualC/graphics/include/png.h      |  3726 +++++++++++++++++++++++++++++++++++
 VisualC/graphics/include/pngconf.h  |  1508 ++++++++++++++
 VisualC/graphics/include/tiff.h     |   647 ++++++
 VisualC/graphics/include/tiffconf.h |   101 +
 VisualC/graphics/include/tiffio.h   |   515 ++++
 VisualC/graphics/include/tiffvers.h |     9 +
 VisualC/graphics/include/zconf.h    |   332 +++
 VisualC/graphics/include/zlib.h     |  1357 ++++++++++++
 VisualC/graphics/lib/jpeg.dll       |     0 
 VisualC/graphics/lib/libpng12-0.dll |     0 
 VisualC/graphics/lib/libtiff-3.dll  |     0 
 VisualC/graphics/lib/zlib1.dll      |     0 
 VisualC/resource.h                  |    15 +
 VisualC/showimage/showimage.dsp     |   106 +
 VisualC/showimage/showimage.sln     |    20 +
 VisualC/showimage/showimage.vcproj  |   241 ++
 configure.in                        |     6 +-
 version.rc                          |     8 +-
 29 files changed, 11269 insertions(+), 8 deletions(-)

diffs (16661 lines):

diff --git a/SDL_image.h b/SDL_image.h
--- a/SDL_image.h
+++ b/SDL_image.h
@@ -38,7 +38,7 @@
 */
 #define SDL_IMAGE_MAJOR_VERSION	1
 #define SDL_IMAGE_MINOR_VERSION	2
-#define SDL_IMAGE_PATCHLEVEL	10
+#define SDL_IMAGE_PATCHLEVEL	11
 
 /* This macro can be used to fill a version structure with the compile-time
  * version of the SDL_image library.
diff --git a/VisualC/SDL_image.dsp b/VisualC/SDL_image.dsp
new file mode 100755
--- /dev/null
+++ b/VisualC/SDL_image.dsp
@@ -0,0 +1,164 @@
+# Microsoft Developer Studio Project File - Name="SDL_image" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=SDL_image - Win32 Release
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "SDL_image.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "SDL_image.mak" CFG="SDL_image - Win32 Release"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "SDL_image - Win32 Release" (based on\
+ "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "SDL_image - Win32 Debug" (based on\
+ "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "SDL_image - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "graphics\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "LOAD_BMP" /D "LOAD_GIF" /D "LOAD_JPG" /D LOAD_JPG_DYNAMIC=\"jpeg.dll\" /D "LOAD_LBM" /D "LOAD_PCX" /D "LOAD_PNG" /D LOAD_PNG_DYNAMIC=\"libpng12-0.dll\" /D "LOAD_PNM" /D "LOAD_TGA" /D "LOAD_TIF" /D LOAD_TIF_DYNAMIC=\"libtiff-3.dll\" /D "LOAD_XPM" /D "LOAD_XV" /D "PNG_USE_DLL" /D "ZLIB_DLL" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib SDL.lib /nologo /subsystem:windows /dll /machine:I386
+
+!ELSEIF  "$(CFG)" == "SDL_image - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /Gm /GX /Zi /Od /I "graphics\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "LOAD_BMP" /D "LOAD_GIF" /D "LOAD_JPG" /D LOAD_JPG_DYNAMIC=\"jpeg.dll\" /D "LOAD_LBM" /D "LOAD_PCX" /D "LOAD_PNG" /D LOAD_PNG_DYNAMIC=\"libpng12-0.dll\" /D "LOAD_PNM" /D "LOAD_TGA" /D "LOAD_TIF" /D LOAD_TIF_DYNAMIC=\"libtiff-3.dll\" /D "LOAD_XPM" /D "LOAD_XV" /D "PNG_USE_DLL" /D "ZLIB_DLL" /YX /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib SDL.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "SDL_image - Win32 Release"
+# Name "SDL_image - Win32 Debug"
+# Begin Group "SDL_image Sources"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\IMG.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_bmp.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_gif.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_jpg.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_lbm.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_pcx.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_png.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_pnm.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_tga.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_tif.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_xcf.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_xpm.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_xv.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\IMG_xxx.c
+# End Source File
+# Begin Source File
+
+SOURCE=Version.rc
+# End Source File
+# End Group
+# Begin Group "SDL_image Headers"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\SDL_image.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/VisualC/SDL_image.dsw b/VisualC/SDL_image.dsw
new file mode 100755
--- /dev/null
+++ b/VisualC/SDL_image.dsw
@@ -0,0 +1,41 @@
+Microsoft Developer Studio Workspace File, Format Version 5.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "SDL_image"=".\SDL_image.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "showimage"=".\showimage\showimage.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/VisualC/SDL_image.sln b/VisualC/SDL_image.sln
new file mode 100755
--- /dev/null
+++ b/VisualC/SDL_image.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL_image", "SDL_image.vcproj", "{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Win32.ActiveCfg = Debug|Win32
+		{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Debug|Win32.Build.0 = Debug|Win32
+		{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Win32.ActiveCfg = Release|Win32
+		{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/VisualC/SDL_image.vcproj b/VisualC/SDL_image.vcproj
new file mode 100755
--- /dev/null
+++ b/VisualC/SDL_image.vcproj
@@ -0,0 +1,553 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="SDL_image"
+	ProjectGUID="{2BD5534E-00E2-4BEA-AC96-D9A92EA24696}"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory=".\Debug"
+			IntermediateDirectory=".\Debug"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="false"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				PreprocessorDefinitions="_DEBUG"
+				MkTypLibCompatible="true"
+				SuppressStartupBanner="true"
+				TargetEnvironment="1"
+				TypeLibraryName=".\Debug/SDL_image.tlb"
+				HeaderFileName=""
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="graphics\include"
+				PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;LOAD_BMP;LOAD_GIF;LOAD_JPG;LOAD_JPG_DYNAMIC=\"jpeg.dll\";LOAD_LBM;LOAD_PCX;LOAD_PNG;LOAD_PNG_DYNAMIC=\"libpng12-0.dll\";LOAD_PNM;LOAD_TGA;LOAD_TIF;LOAD_TIF_DYNAMIC=\"libtiff-3.dll\";LOAD_XPM;LOAD_XV;PNG_USE_DLL;ZLIB_DLL"
+				MinimalRebuild="true"
+				RuntimeLibrary="2"
+				PrecompiledHeaderFile=".\Debug/SDL_image.pch"
+				AssemblerListingLocation=".\Debug/"
+				ObjectFile=".\Debug/"
+				ProgramDataBaseFileName=".\Debug/"
+				WarningLevel="3"
+				SuppressStartupBanner="true"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="_DEBUG"
+				Culture="1033"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="SDL.lib"
+				OutputFile=".\Debug/SDL_image.dll"
+				LinkIncremental="2"
+				SuppressStartupBanner="true"
+				GenerateDebugInformation="true"
+				ProgramDatabaseFile=".\Debug/SDL_image.pdb"
+				SubSystem="2"
+				ImportLibrary=".\Debug/SDL_image.lib"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+				SuppressStartupBanner="true"
+				OutputFile=".\Debug/SDL_image.bsc"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory=".\Release"
+			IntermediateDirectory=".\Release"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="false"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				PreprocessorDefinitions="NDEBUG"
+				MkTypLibCompatible="true"
+				SuppressStartupBanner="true"
+				TargetEnvironment="1"
+				TypeLibraryName=".\Release/SDL_image.tlb"
+				HeaderFileName=""
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				InlineFunctionExpansion="1"
+				AdditionalIncludeDirectories="graphics\include"
+				PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;LOAD_BMP;LOAD_GIF;LOAD_JPG;LOAD_JPG_DYNAMIC=\"jpeg.dll\";LOAD_LBM;LOAD_PCX;LOAD_PNG;LOAD_PNG_DYNAMIC=\"libpng12-0.dll\";LOAD_PNM;LOAD_TGA;LOAD_TIF;LOAD_TIF_DYNAMIC=\"libtiff-3.dll\";LOAD_XPM;LOAD_XV;PNG_USE_DLL;ZLIB_DLL"
+				StringPooling="true"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				PrecompiledHeaderFile=".\Release/SDL_image.pch"
+				AssemblerListingLocation=".\Release/"
+				ObjectFile=".\Release/"
+				ProgramDataBaseFileName=".\Release/"
+				WarningLevel="3"
+				SuppressStartupBanner="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="NDEBUG"
+				Culture="1033"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="SDL.lib"
+				OutputFile=".\Release/SDL_image.dll"
+				LinkIncremental="1"
+				SuppressStartupBanner="true"
+				ProgramDatabaseFile=".\Release/SDL_image.pdb"
+				SubSystem="2"
+				ImportLibrary=".\Release/SDL_image.lib"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+				SuppressStartupBanner="true"
+				OutputFile=".\Release/SDL_image.bsc"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="SDL_image Sources"
+			>
+			<File
+				RelativePath="..\IMG.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_bmp.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_gif.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_jpg.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_lbm.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_pcx.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_png.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_pnm.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_tga.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_tif.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_xcf.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_xpm.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_xv.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\IMG_xxx.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories=""
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="Version.rc"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCResourceCompilerTool"
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCResourceCompilerTool"
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="SDL_image Headers"
+			>
+			<File
+				RelativePath="..\SDL_image.h"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/VisualC/Version.rc b/VisualC/Version.rc
new file mode 100755
--- /dev/null
+++ b/VisualC/Version.rc
@@ -0,0 +1,105 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "winresrc.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,2,11,0
+ PRODUCTVERSION 1,2,11,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName", "\0"
+            VALUE "FileDescription", "SDL_image\0"
+            VALUE "FileVersion", "1, 2, 11, 0\0"
+            VALUE "InternalName", "SDL_image\0"
+            VALUE "LegalCopyright", "Copyright © 2009 Sam Lantinga\0"
+            VALUE "OriginalFilename", "SDL_image.dll\0"
+            VALUE "ProductName", "Simple DirectMedia Layer\0"
+            VALUE "ProductVersion", "1, 2, 11, 0\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
+#endif    // !_MAC
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/VisualC/clean.sh b/VisualC/clean.sh
new file mode 100644
--- /dev/null
+++ b/VisualC/clean.sh
@@ -0,0 +1,5 @@
+find . -type d -name 'Debug' -exec rm -rv {} \;
+find . -type d -name 'Release' -exec rm -rv {} \;
+find . -type f -name '*.user' -exec rm -v {} \;
+find . -type f -name '*.ncb' -exec rm -v {} \;
+find . -type f -name '*.suo' -exec rm -v {} \;
diff --git a/VisualC/graphics/include/jconfig.h b/VisualC/graphics/include/jconfig.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/jconfig.h
@@ -0,0 +1,38 @@
+/* jconfig.xmingw32msvc --- jconfig.h for mingw32/msvc. */
+/* see jconfig.doc for explanations */
+
+#define HAVE_PROTOTYPES
+#define HAVE_UNSIGNED_CHAR
+#define HAVE_UNSIGNED_SHORT
+/* #define void char */
+/* #define const */
+#undef CHAR_IS_UNSIGNED
+#define HAVE_STDDEF_H
+#define HAVE_STDLIB_H
+#undef NEED_BSD_STRINGS
+#undef NEED_SYS_TYPES_H
+#undef NEED_FAR_POINTERS	/* win32 uses flat 32-bit addressing */
+#undef NEED_SHORT_EXTERNAL_NAMES
+#undef INCOMPLETE_TYPES_BROKEN
+
+#ifdef JPEG_INTERNALS
+
+#undef RIGHT_SHIFT_IS_UNSIGNED
+
+#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		/* Utah RLE image file format */
+#define TARGA_SUPPORTED		/* Targa image file format */
+
+#undef TWO_FILE_COMMANDLINE	/* optional */
+#define USE_SETMODE		/* Needed to make one-file style work in DJGPP */
+#undef NEED_SIGNAL_CATCHER	/* Define this if you use jmemname.c */
+#undef DONT_USE_B_MODE
+#undef PROGRESS_REPORT		/* optional */
+
+#endif /* JPEG_CJPEG_DJPEG */
diff --git a/VisualC/graphics/include/jerror.h b/VisualC/graphics/include/jerror.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/jerror.h
@@ -0,0 +1,291 @@
+/*
+ * jerror.h
+ *
+ * Copyright (C) 1994-1997, Thomas G. Lane.
+ * 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_ARITH_NOTIMPL,
+	 "Sorry, there are legal restrictions on arithmetic coding")
+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_DCT_COEF, "DCT coefficient out of range")
+JMESSAGE(JERR_BAD_DCTSIZE, "IDCT output block size %d not supported")
+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_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_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 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/VisualC/graphics/include/jmorecfg.h b/VisualC/graphics/include/jmorecfg.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/jmorecfg.h
@@ -0,0 +1,371 @@
+/*
+ * jmorecfg.h
+ *
+ * Copyright (C) 1991-1997, Thomas G. Lane.
+ * 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 */
+typedef long INT32;
+#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: */
+#ifdef WIN32
+# ifdef BUILDING_JPEG_DLL
+#  define DLLIMPORT __declspec (dllexport)
+# else
+#  define DLLIMPORT __declspec (dllimport)
+# endif
+# define EXTERN(type)        DLLIMPORT extern type
+#else
+#define EXTERN(type)		extern type
+#endif 
+
+/* 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.
+ */
+
+#ifdef NEED_FAR_POINTERS
+#define FAR  far
+#else
+#define FAR
+#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.)
+ */
+
+/* Arithmetic coding is unsupported for legal reasons.  Complaints to IBM. */
+
+/* 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: */
+
+#undef  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 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: */
+
+#undef  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 SAVE_MARKERS_SUPPORTED	    /* jpeg_save_markers() needed? */
+#define BLOCK_SMOOTHING_SUPPORTED   /* Block smoothing? (Progressive only) */
+#define IDCT_SCALING_SUPPORTED	    /* Output rescaling via IDCT? */
+#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/VisualC/graphics/include/jpeglib.h b/VisualC/graphics/include/jpeglib.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/jpeglib.h
@@ -0,0 +1,1096 @@
+/*
+ * jpeglib.h
+ *
+ * Copyright (C) 1991-1998, Thomas G. Lane.
+ * 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 */
+
+
+/* Version ID for the JPEG library.
+ * Might be useful for tests like "#if JPEG_LIB_VERSION >= 60".
+ */
+
+#define JPEG_LIB_VERSION  62	/* Version 6b */
+
+
+/* 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.  Always DCTSIZE for compression.
+   * For decompression this is the size of the output from one DCT block,
+   * reflecting any scaling we choose to apply during the IDCT step.
+   * Values of 1,2,4,8 are likely to be supported.  Note that different
+   * components may receive different IDCT scalings.
+   */
+  int DCT_scaled_size;
+  /* The downsampled dimensions are the component's actual, unpadded number
+   * of samples at the main buffer (preprocessing/compression interface), thus
+   * downsampled_width = ceil(image_width * Hi/Hmax)
+   * and similarly for height.  For decompression, IDCT scaling is included, so
+   * downsampled_width = ceil(image_width * Hi/Hmax * DCT_scaled_size/DCTSIZE)
+   */
+  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_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.
+   */
+
+  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];
+  /* 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 */
+  
+  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 */
+  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 */
+
+  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 */
+
+  /*
+   * 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 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_scaled_size;	/* smallest DCT_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_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 */
+
+  /* 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_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_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_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_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));
+
+/* 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_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));
+
+/* 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.doc 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_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
+
+#endif /* JPEGLIB_H */
diff --git a/VisualC/graphics/include/png.h b/VisualC/graphics/include/png.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/png.h
@@ -0,0 +1,3726 @@
+/* png.h - header file for PNG reference library
+ *
+ * libpng version 1.2.40 - September 10, 2009
+ * Copyright (c) 1998-2009 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.2.40 - September 10, 2009: 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  10.so.0.1.0.17rc1
+ *    1.2.7rc1                13    10207  12.so.0.1.2.7rc1
+ *    1.0.17                  10    10017  10.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  10.so.0.1.0.18rc1-5
+ *    1.2.8rc1-5              13    10208  12.so.0.1.2.8rc1-5
+ *    1.0.18                  10    10018  10.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-8           13    10210  12.so.0.10[.0]
+ *    1.2.10rc1-3             13    10210  12.so.0.10[.0]
+ *    1.2.10                  13    10210  12.so.0.10[.0]
+ *    1.2.11beta1-4           13    10211  12.so.0.11[.0]
+ *    1.0.19rc1-5             10    10019  10.so.0.19[.0]
+ *    1.2.11rc1-5             13    10211  12.so.0.11[.0]
+ *    1.0.19                  10    10019  10.so.0.19[.0]
+ *    1.2.11                  13    10211  12.so.0.11[.0]
+ *    1.0.20                  10    10020  10.so.0.20[.0]
+ *    1.2.12                  13    10212  12.so.0.12[.0]
+ *    1.2.13beta1             13    10213  12.so.0.13[.0]
+ *    1.0.21                  10    10021  10.so.0.21[.0]
+ *    1.2.13                  13    10213  12.so.0.13[.0]
+ *    1.2.14beta1-2           13    10214  12.so.0.14[.0]
+ *    1.0.22rc1               10    10022  10.so.0.22[.0]
+ *    1.2.14rc1               13    10214  12.so.0.14[.0]
+ *    1.0.22                  10    10022  10.so.0.22[.0]
+ *    1.2.14                  13    10214  12.so.0.14[.0]
+ *    1.2.15beta1-6           13    10215  12.so.0.15[.0]
+ *    1.0.23rc1-5             10    10023  10.so.0.23[.0]
+ *    1.2.15rc1-5             13    10215  12.so.0.15[.0]
+ *    1.0.23                  10    10023  10.so.0.23[.0]
+ *    1.2.15                  13    10215  12.so.0.15[.0]
+ *    1.2.16beta1-2           13    10216  12.so.0.16[.0]
+ *    1.2.16rc1               13    10216  12.so.0.16[.0]
+ *    1.0.24                  10    10024  10.so.0.24[.0]
+ *    1.2.16                  13    10216  12.so.0.16[.0]
+ *    1.2.17beta1-2           13    10217  12.so.0.17[.0]
+ *    1.0.25rc1               10    10025  10.so.0.25[.0]
+ *    1.2.17rc1-3             13    10217  12.so.0.17[.0]
+ *    1.0.25                  10    10025  10.so.0.25[.0]
+ *    1.2.17                  13    10217  12.so.0.17[.0]
+ *    1.0.26                  10    10026  10.so.0.26[.0]
+ *    1.2.18                  13    10218  12.so.0.18[.0]
+ *    1.2.19beta1-31          13    10219  12.so.0.19[.0]
+ *    1.0.27rc1-6             10    10027  10.so.0.27[.0]
+ *    1.2.19rc1-6             13    10219  12.so.0.19[.0]
+ *    1.0.27                  10    10027  10.so.0.27[.0]
+ *    1.2.19                  13    10219  12.so.0.19[.0]
+ *    1.2.20beta01-04         13    10220  12.so.0.20[.0]
+ *    1.0.28rc1-6             10    10028  10.so.0.28[.0]
+ *    1.2.20rc1-6             13    10220  12.so.0.20[.0]
+ *    1.0.28                  10    10028  10.so.0.28[.0]
+ *    1.2.20                  13    10220  12.so.0.20[.0]
+ *    1.2.21beta1-2           13    10221  12.so.0.21[.0]
+ *    1.2.21rc1-3             13    10221  12.so.0.21[.0]
+ *    1.0.29                  10    10029  10.so.0.29[.0]
+ *    1.2.21                  13    10221  12.so.0.21[.0]
+ *    1.2.22beta1-4           13    10222  12.so.0.22[.0]
+ *    1.0.30rc1               10    10030  10.so.0.30[.0]
+ *    1.2.22rc1               13    10222  12.so.0.22[.0]
+ *    1.0.30                  10    10030  10.so.0.30[.0]
+ *    1.2.22                  13    10222  12.so.0.22[.0]
+ *    1.2.23beta01-05         13    10223  12.so.0.23[.0]
+ *    1.2.23rc01              13    10223  12.so.0.23[.0]
+ *    1.2.23                  13    10223  12.so.0.23[.0]
+ *    1.2.24beta01-02         13    10224  12.so.0.24[.0]
+ *    1.2.24rc01              13    10224  12.so.0.24[.0]
+ *    1.2.24                  13    10224  12.so.0.24[.0]
+ *    1.2.25beta01-06         13    10225  12.so.0.25[.0]
+ *    1.2.25rc01-02           13    10225  12.so.0.25[.0]
+ *    1.0.31                  10    10031  10.so.0.31[.0]
+ *    1.2.25                  13    10225  12.so.0.25[.0]
+ *    1.2.26beta01-06         13    10226  12.so.0.26[.0]
+ *    1.2.26rc01              13    10226  12.so.0.26[.0]
+ *    1.2.26                  13    10226  12.so.0.26[.0]
+ *    1.0.32                  10    10032  10.so.0.32[.0]
+ *    1.2.27beta01-06         13    10227  12.so.0.27[.0]
+ *    1.2.27rc01              13    10227  12.so.0.27[.0]
+ *    1.0.33                  10    10033  10.so.0.33[.0]
+ *    1.2.27                  13    10227  12.so.0.27[.0]
+ *    1.0.34                  10    10034  10.so.0.34[.0]
+ *    1.2.28                  13    10228  12.so.0.28[.0]
+ *    1.2.29beta01-03         13    10229  12.so.0.29[.0]
+ *    1.2.29rc01              13    10229  12.so.0.29[.0]
+ *    1.0.35                  10    10035  10.so.0.35[.0]
+ *    1.2.29                  13    10229  12.so.0.29[.0]
+ *    1.0.37                  10    10037  10.so.0.37[.0]
+ *    1.2.30beta01-04         13    10230  12.so.0.30[.0]
+ *    1.0.38rc01-08           10    10038  10.so.0.38[.0]
+ *    1.2.30rc01-08           13    10230  12.so.0.30[.0]
+ *    1.0.38                  10    10038  10.so.0.38[.0]
+ *    1.2.30                  13    10230  12.so.0.30[.0]
+ *    1.0.39rc01-03           10    10039  10.so.0.39[.0]
+ *    1.2.31rc01-03           13    10231  12.so.0.31[.0]
+ *    1.0.39                  10    10039  10.so.0.39[.0]
+ *    1.2.31                  13    10231  12.so.0.31[.0]
+ *    1.2.32beta01-02         13    10232  12.so.0.32[.0]
+ *    1.0.40rc01              10    10040  10.so.0.40[.0]
+ *    1.2.32rc01              13    10232  12.so.0.32[.0]
+ *    1.0.40                  10    10040  10.so.0.40[.0]
+ *    1.2.32                  13    10232  12.so.0.32[.0]
+ *    1.2.33beta01-02         13    10233  12.so.0.33[.0]
+ *    1.2.33rc01-02           13    10233  12.so.0.33[.0]
+ *    1.0.41rc01              10    10041  10.so.0.41[.0]
+ *    1.2.33                  13    10233  12.so.0.33[.0]
+ *    1.0.41                  10    10041  10.so.0.41[.0]
+ *    1.2.34beta01-07         13    10234  12.so.0.34[.0]
+ *    1.0.42rc01              10    10042  10.so.0.42[.0]
+ *    1.2.34rc01              13    10234  12.so.0.34[.0]
+ *    1.0.42                  10    10042  10.so.0.42[.0]
+ *    1.2.34                  13    10234  12.so.0.34[.0]
+ *    1.2.35beta01-03         13    10235  12.so.0.35[.0]
+ *    1.0.43rc01-02           10    10043  10.so.0.43[.0]
+ *    1.2.35rc01-02           13    10235  12.so.0.35[.0]
+ *    1.0.43                  10    10043  10.so.0.43[.0]
+ *    1.2.35                  13    10235  12.so.0.35[.0]
+ *    1.2.36beta01-05         13    10236  12.so.0.36[.0]
+ *    1.2.36rc01              13    10236  12.so.0.36[.0]
+ *    1.0.44                  10    10044  10.so.0.44[.0]
+ *    1.2.36                  13    10236  12.so.0.36[.0]
+ *    1.2.37beta01-03         13    10237  12.so.0.37[.0]
+ *    1.2.37rc01              13    10237  12.so.0.37[.0]
+ *    1.2.37                  13    10237  12.so.0.37[.0]
+ *    1.2.45                  10    10045  12.so.0.45[.0]
+ *    1.0.46                  10    10046  10.so.0.46[.0]
+ *    1.2.38beta01            13    10238  12.so.0.38[.0]
+ *    1.2.38rc01-03           13    10238  12.so.0.38[.0]
+ *    1.0.47                  10    10047  10.so.0.47[.0]
+ *    1.2.38                  13    10238  12.so.0.38[.0]
+ *    1.2.39beta01-05         13    10239  12.so.0.39[.0]
+ *    1.2.39rc01              13    10239  12.so.0.39[.0]
+ *    1.0.48                  10    10048  10.so.0.48[.0]
+ *    1.2.39                  13    10239  12.so.0.39[.0]
+ *    1.2.40beta01            13    10240  12.so.0.40[.0]
+ *    1.2.40rc01              13    10240  12.so.0.40[.0]
+ *    1.0.49                  10    10049  10.so.0.49[.0]
+ *    1.2.40                  13    10240  12.so.0.40[.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 "rcNN".
+ *
+ *    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,
+ * <http://www.w3.org/TR/2003/REC-PNG-20031110/
+ */
+
+/*
+ * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
+ *
+ * If you modify libpng you may insert additional notices immediately following
+ * this sentence.
+ *
+ * This code is released under the libpng license.
+ *
+ * libpng versions 1.2.6, August 15, 2004, through 1.2.40, September 10, 2009, are
+ * Copyright (c) 2004, 2006-2009 Glenn Randers-Pehrson, and are
+ * distributed according to the same disclaimer and license as libpng-1.2.5
+ * with the following individual added to the list of Contributing Authors:
+ *
+ *    Cosmin Truta
+ *
+ * libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are
+ * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
+ * distributed according to the same disclaimer and license as libpng-1.0.6
+ * with the following individuals added to the list of Contributing Authors:
+ *
+ *    Simon-Pierre Cadieux
+ *    Eric S. Raymond
+ *    Gilles Vollant
+ *
+ * and with the following additions to the disclaimer:
+ *
+ *    There is no warranty against interference with your enjoyment of the
+ *    library or against infringement.  There is no warranty that our
+ *    efforts or the library will fulfill any of your particular purposes
+ *    or needs.  This library is provided with all faults, and the entire
+ *    risk of satisfactory quality, performance, accuracy, and effort is with
+ *    the user.
+ *
+ * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
+ * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are
+ * distributed according to the same disclaimer and license as libpng-0.96,
+ * with the following individuals added to the list of Contributing Authors:
+ *
+ *    Tom Lane
+ *    Glenn Randers-Pehrson
+ *    Willem van Schaik
+ *
+ * libpng versions 0.89, June 1996, through 0.96, May 1997, are
+ * Copyright (c) 1996, 1997 Andreas Dilger
+ * Distributed according to the same disclaimer and license as libpng-0.88,
+ * with the following individuals added to the list of Contributing Authors:
+ *
+ *    John Bowler
+ *    Kevin Bracey
+ *    Sam Bushell
+ *    Magnus Holmgren
+ *    Greg Roelofs
+ *    Tom Tanner
+ *
+ * libpng versions 0.5, May 1995, through 0.88, January 1996, are
+ * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
+ *
+ * For the purposes of this copyright and license, "Contributing Authors"
+ * is defined as the following set of individuals:
+ *
+ *    Andreas Dilger
+ *    Dave Martindale
+ *    Guy Eric Schalnat
+ *    Paul Schmidt
+ *    Tim Wegner
+ *
+ * The PNG Reference Library is supplied "AS IS".  The Contributing Authors
+ * and Group 42, Inc. disclaim all warranties, expressed or implied,
+ * including, without limitation, the warranties of merchantability and of
+ * fitness for any purpose.  The Contributing Authors and Group 42, Inc.
+ * assume no liability for direct, indirect, incidental, special, exemplary,
+ * or consequential damages, which may result from the use of the PNG
+ * Reference Library, even if advised of the possibility of such damage.
+ *
+ * Permission is hereby granted to use, copy, modify, and distribute this
+ * source code, or portions hereof, for any purpose, without fee, subject
+ * to the following restrictions:
+ *
+ * 1. The origin of this source code must not be misrepresented.
+ *
+ * 2. Altered versions must be plainly marked as such and
+ * must not be misrepresented as being the original source.
+ *
+ * 3. This Copyright notice may not be removed or altered from
+ *    any source or altered source distribution.
+ *
+ * The Contributing Authors and Group 42, Inc. specifically permit, without
+ * fee, and encourage the use of this source code as a component to
+ * supporting the PNG file format in commercial products.  If you use this
+ * source code in a product, acknowledgment is not required but would be
+ * appreciated.
+ */
+
+/*
+ * A "png_get_copyright" function is available, for convenient use in "about"
+ * boxes and the like:
+ *
+ * printf("%s",png_get_copyright(NULL));
+ *
+ * Also, the PNG logo (in PNG format, of course) is supplied in the
+ * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
+ */
+
+/*
+ * Libpng is OSI Certified Open Source Software.  OSI Certified is a
+ * certification mark of the Open Source Initiative.
+ */
+
+/*
+ * The contributing authors would like to thank all those who helped
+ * with testing, bug fixes, and patience.  This wouldn't have been
+ * possible without all of you.
+ *
+ * Thanks to Frank J. T. Wojcik for helping with the documentation.
+ */
+
+/*
+ * Y2K compliance in libpng:
+ * =========================
+ *
+ *    September 10, 2009
+ *
+ *    Since the PNG Development group is an ad-hoc body, we can't make
+ *    an official declaration.
+ *
+ *    This is your unofficial assurance that libpng from version 0.71 and
+ *    upward through 1.2.40 are Y2K compliant.  It is my belief that earlier
+ *    versions were also Y2K compliant.
+ *
+ *    Libpng only has three year fields.  One is a 2-byte unsigned integer
+ *    that will hold years up to 65535.  The other two hold the date in text
+ *    format, and will hold years up to 9999.
+ *
+ *    The integer is
+ *        "png_uint_16 year" in png_time_struct.
+ *
+ *    The strings are
+ *        "png_charp time_buffer" in png_struct and
+ *        "near_time_buffer", which is a local character string in png.c.
+ *
+ *    There are seven time-related functions:
+ *        png.c: png_convert_to_rfc_1123() in png.c
+ *          (formerly png_convert_to_rfc_1152() in error)
+ *        png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c
+ *        png_convert_from_time_t() in pngwrite.c
+ *        png_get_tIME() in pngget.c
+ *        png_handle_tIME() in pngrutil.c, called in pngread.c
+ *        png_set_tIME() in pngset.c
+ *        png_write_tIME() in pngwutil.c, called in pngwrite.c
+ *
+ *    All handle dates properly in a Y2K environment.  The
+ *    png_convert_from_time_t() function calls gmtime() to convert from system
+ *    clock time, which returns (year - 1900), which we properly convert to
+ *    the full 4-digit year.  There is a possibility that applications using
+ *    libpng are not passing 4-digit years into the png_convert_to_rfc_1123()
+ *    function, or that they are incorrectly passing only a 2-digit year
+ *    instead of "year - 1900" into the png_convert_from_struct_tm() function,
+ *    but this is not under our control.  The libpng documentation has always
+ *    stated that it works with 4-digit years, and the APIs have been
+ *    documented as such.
+ *
+ *    The tIME chunk itself is also Y2K compliant.  It uses a 2-byte unsigned
+ *    integer to hold the year, and can hold years as large as 65535.
+ *
+ *    zlib, upon which libpng depends, is also Y2K compliant.  It contains
+ *    no date-related code.
+ *
+ *       Glenn Randers-Pehrson
+ *       libpng maintainer
+ *       PNG Development Group
+ */
+
+#ifndef PNG_H
+#define PNG_H
+
+/* This is not the place to learn how to use libpng.  The file libpng.txt
+ * describes how to use libpng, and the file example.c summarizes it
+ * with some code on which to build.  This file is useful for looking
+ * at the actual function definitions and structure components.
+ */
+
+/* Version information for png.h - this should match the version in png.c */
+#define PNG_LIBPNG_VER_STRING "1.2.40"
+#define PNG_HEADER_VERSION_STRING \
+   " libpng version 1.2.40 - September 10, 2009\n"
+
+#define PNG_LIBPNG_VER_SONUM   0
+#define PNG_LIBPNG_VER_DLLNUM  13
+
+/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
+#define PNG_LIBPNG_VER_MAJOR   1
+#define PNG_LIBPNG_VER_MINOR   2
+#define PNG_LIBPNG_VER_RELEASE 40
+/* This should match the numeric part of the final component of
+ * PNG_LIBPNG_VER_STRING, omitting any leading zero:
+ */
+
+#define PNG_LIBPNG_VER_BUILD  0
+
+/* Release Status */
+#define PNG_LIBPNG_BUILD_ALPHA    1
+#define PNG_LIBPNG_BUILD_BETA     2
+#define PNG_LIBPNG_BUILD_RC       3
+#define PNG_LIBPNG_BUILD_STABLE   4
+#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7
+
+/* Release-Specific Flags */
+#define PNG_LIBPNG_BUILD_PATCH    8 /* Can be OR'ed with
+                                       PNG_LIBPNG_BUILD_STABLE only */
+#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with
+                                       PNG_LIBPNG_BUILD_SPECIAL */
+#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
+                                       PNG_LIBPNG_BUILD_PRIVATE */
+
+#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE
+
+/* Careful here.  At one time, Guy wanted to use 082, but that would be octal.
+ * We must not include leading zeros.
+ * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
+ * version 1.0.0 was mis-numbered 100 instead of 10000).  From
+ * version 1.0.1 it's    xxyyzz, where x=major, y=minor, z=release
+ */
+#define PNG_LIBPNG_VER 10240 /* 1.2.40 */
+
+#ifndef PNG_VERSION_INFO_ONLY
+/* Include the compression library's header */
+#include "zlib.h"
+#endif
+
+/* Include all user configurable info, including optional assembler routines */
+#include "pngconf.h"
+
+/*
+ * Added at libpng-1.2.8 */
+/* Ref MSDN: Private as priority over Special
+ * VS_FF_PRIVATEBUILD File *was not* built using standard release
+ * procedures. If this value is given, the StringFileInfo block must
+ * contain a PrivateBuild string.
+ *
+ * VS_FF_SPECIALBUILD File *was* built by the original company using
+ * standard release procedures but is a variation of the standard
+ * file of the same version number. If this value is given, the
+ * StringFileInfo block must contain a SpecialBuild string.
+ */
+
+#if defined(PNG_USER_PRIVATEBUILD)
+#  define PNG_LIBPNG_BUILD_TYPE \
+          (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE)
+#else
+#  if defined(PNG_LIBPNG_SPECIALBUILD)
+#    define PNG_LIBPNG_BUILD_TYPE \
+            (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL)
+#  else
+#    define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE)
+#  endif
+#endif
+
+#ifndef PNG_VERSION_INFO_ONLY
+
+/* Inhibit C++ name-mangling for libpng functions but not for system calls. */
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* This file is arranged in several sections.  The first section contains
+ * structure and type definitions.  The second section contains the external
+ * library functions, while the third has the internal library functions,
+ * which applications aren't expected to use directly.
+ */
+
+#ifndef PNG_NO_TYPECAST_NULL
+#define int_p_NULL                (int *)NULL
+#define png_bytep_NULL            (png_bytep)NULL
+#define png_bytepp_NULL           (png_bytepp)NULL
+#define png_doublep_NULL          (png_doublep)NULL
+#define png_error_ptr_NULL        (png_error_ptr)NULL
+#define png_flush_ptr_NULL        (png_flush_ptr)NULL
+#define png_free_ptr_NULL         (png_free_ptr)NULL
+#define png_infopp_NULL           (png_infopp)NULL
+#define png_malloc_ptr_NULL       (png_malloc_ptr)NULL
+#define png_read_status_ptr_NULL  (png_read_status_ptr)NULL
+#define png_rw_ptr_NULL           (png_rw_ptr)NULL
+#define png_structp_NULL          (png_structp)NULL
+#define png_uint_16p_NULL         (png_uint_16p)NULL
+#define png_voidp_NULL            (png_voidp)NULL
+#define png_write_status_ptr_NULL (png_write_status_ptr)NULL
+#else
+#define int_p_NULL                NULL
+#define png_bytep_NULL            NULL
+#define png_bytepp_NULL           NULL
+#define png_doublep_NULL          NULL
+#define png_error_ptr_NULL        NULL
+#define png_flush_ptr_NULL        NULL
+#define png_free_ptr_NULL         NULL
+#define png_infopp_NULL           NULL
+#define png_malloc_ptr_NULL       NULL
+#define png_read_status_ptr_NULL  NULL
+#define png_rw_ptr_NULL           NULL
+#define png_structp_NULL          NULL
+#define png_uint_16p_NULL         NULL
+#define png_voidp_NULL            NULL
+#define png_write_status_ptr_NULL NULL
+#endif
+
+/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
+#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
+/* Version information for C files, stored in png.c.  This had better match
+ * the version above.
+ */
+#ifdef PNG_USE_GLOBAL_ARRAYS
+PNG_EXPORT_VAR (PNG_CONST char) png_libpng_ver[18];
+  /* Need room for 99.99.99beta99z */
+#else
+#define png_libpng_ver png_get_header_ver(NULL)
+#endif
+
+#ifdef PNG_USE_GLOBAL_ARRAYS
+/* This was removed in version 1.0.5c */
+/* Structures to facilitate easy interlacing.  See png.c for more details */
+PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_start[7];
+PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_inc[7];
+PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_ystart[7];
+PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_yinc[7];
+PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_mask[7];
+PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_dsp_mask[7];
+/* This isn't currently used.  If you need it, see png.c for more details.
+PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_height[7];
+*/
+#endif
+
+#endif /* PNG_NO_EXTERN */
+
+/* Three color definitions.  The order of the red, green, and blue, (and the
+ * exact size) is not important, although the size of the fields need to
+ * be png_byte or png_uint_16 (as defined below).
+ */
+typedef struct png_color_struct
+{
+   png_byte red;
+   png_byte green;
+   png_byte blue;
+} png_color;
+typedef png_color FAR * png_colorp;
+typedef png_color FAR * FAR * png_colorpp;
+
+typedef struct png_color_16_struct
+{
+   png_byte index;    /* used for palette files */
+   png_uint_16 red;   /* for use in red green blue files */
+   png_uint_16 green;
+   png_uint_16 blue;
+   png_uint_16 gray;  /* for use in grayscale files */
+} png_color_16;
+typedef png_color_16 FAR * png_color_16p;
+typedef png_color_16 FAR * FAR * png_color_16pp;
+
+typedef struct png_color_8_struct
+{
+   png_byte red;   /* for use in red green blue files */
+   png_byte green;
+   png_byte blue;
+   png_byte gray;  /* for use in grayscale files */
+   png_byte alpha; /* for alpha channel files */
+} png_color_8;
+typedef png_color_8 FAR * png_color_8p;
+typedef png_color_8 FAR * FAR * png_color_8pp;
+
+/*
+ * The following two structures are used for the in-core representation
+ * of sPLT chunks.
+ */
+typedef struct png_sPLT_entry_struct
+{
+   png_uint_16 red;
+   png_uint_16 green;
+   png_uint_16 blue;
+   png_uint_16 alpha;
+   png_uint_16 frequency;
+} png_sPLT_entry;
+typedef png_sPLT_entry FAR * png_sPLT_entryp;
+typedef png_sPLT_entry FAR * FAR * png_sPLT_entrypp;
+
+/*  When the depth of the sPLT palette is 8 bits, the color and alpha samples
+ *  occupy the LSB of their respective members, and the MSB of each member
+ *  is zero-filled.  The frequency member always occupies the full 16 bits.
+ */
+
+typedef struct png_sPLT_struct
+{
+   png_charp name;           /* palette name */
+   png_byte depth;           /* depth of palette samples */
+   png_sPLT_entryp entries;  /* palette entries */
+   png_int_32 nentries;      /* number of palette entries */
+} png_sPLT_t;
+typedef png_sPLT_t FAR * png_sPLT_tp;
+typedef png_sPLT_t FAR * FAR * png_sPLT_tpp;
+
+#ifdef PNG_TEXT_SUPPORTED
+/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file,
+ * and whether that contents is compressed or not.  The "key" field
+ * points to a regular zero-terminated C string.  The "text", "lang", and
+ * "lang_key" fields can be regular C strings, empty strings, or NULL pointers.
+ * However, the * structure returned by png_get_text() will always contain
+ * regular zero-terminated C strings (possibly empty), never NULL pointers,
+ * so they can be safely used in printf() and other string-handling functions.
+ */
+typedef struct png_text_struct
+{
+   int  compression;       /* compression value:
+                             -1: tEXt, none
+                              0: zTXt, deflate
+                              1: iTXt, none
+                              2: iTXt, deflate  */
+   png_charp key;          /* keyword, 1-79 character description of "text" */
+   png_charp text;         /* comment, may be an empty string (ie "")
+                              or a NULL pointer */
+   png_size_t text_length; /* length of the text string */
+#ifdef PNG_iTXt_SUPPORTED
+   png_size_t itxt_length; /* length of the itxt string */
+   png_charp lang;         /* language code, 0-79 characters
+                              or a NULL pointer */
+   png_charp lang_key;     /* keyword translated UTF-8 string, 0 or more
+                              chars or a NULL pointer */
+#endif
+} png_text;
+typedef png_text FAR * png_textp;
+typedef png_text FAR * FAR * png_textpp;
+#endif
+
+/* Supported compression types for text in PNG files (tEXt, and zTXt).
+ * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed.
+ */
+#define PNG_TEXT_COMPRESSION_NONE_WR -3
+#define PNG_TEXT_COMPRESSION_zTXt_WR -2
+#define PNG_TEXT_COMPRESSION_NONE    -1
+#define PNG_TEXT_COMPRESSION_zTXt     0
+#define PNG_ITXT_COMPRESSION_NONE     1
+#define PNG_ITXT_COMPRESSION_zTXt     2
+#define PNG_TEXT_COMPRESSION_LAST     3  /* Not a valid value */
+
+/* png_time is a way to hold the time in an machine independent way.
+ * Two conversions are provided, both from time_t and struct tm.  There
+ * is no portable way to convert to either of these structures, as far
+ * as I know.  If you know of a portable way, send it to me.  As a side
+ * note - PNG has always been Year 2000 compliant!
+ */
+typedef struct png_time_struct
+{
+   png_uint_16 year; /* full year, as in, 1995 */
+   png_byte month;   /* month of year, 1 - 12 */
+   png_byte day;     /* day of month, 1 - 31 */
+   png_byte hour;    /* hour of day, 0 - 23 */
+   png_byte minute;  /* minute of hour, 0 - 59 */
+   png_byte second;  /* second of minute, 0 - 60 (for leap seconds) */
+} png_time;
+typedef png_time FAR * png_timep;
+typedef png_time FAR * FAR * png_timepp;
+
+#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
+ defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
+/* png_unknown_chunk is a structure to hold queued chunks for which there is
+ * no specific support.  The idea is that we can use this to queue
+ * up private chunks for output even though the library doesn't actually
+ * know about their semantics.
+ */
+#define PNG_CHUNK_NAME_LENGTH 5
+typedef struct png_unknown_chunk_t
+{
+    png_byte name[PNG_CHUNK_NAME_LENGTH];
+    png_byte *data;
+    png_size_t size;
+
+    /* libpng-using applications should NOT directly modify this byte. */
+    png_byte location; /* mode of operation at read time */
+}
+png_unknown_chunk;
+typedef png_unknown_chunk FAR * png_unknown_chunkp;
+typedef png_unknown_chunk FAR * FAR * png_unknown_chunkpp;
+#endif
+
+/* png_info is a structure that holds the information in a PNG file so
+ * that the application can find out the characteristics of the image.
+ * If you are reading the file, this structure will tell you what is
+ * in the PNG file.  If you are writing the file, fill in the information
+ * you want to put into the PNG file, then call png_write_info().
+ * The names chosen should be very close to the PNG specification, so
+ * consult that document for information about the meaning of each field.
+ *
+ * With libpng < 0.95, it was only possible to directly set and read the
+ * the values in the png_info_struct, which meant that the contents and
+ * order of the values had to remain fixed.  With libpng 0.95 and later,
+ * however, there are now functions that abstract the contents of
+ * png_info_struct from the application, so this makes it easier to use
+ * libpng with dynamic libraries, and even makes it possible to use
+ * libraries that don't have all of the libpng ancillary chunk-handing
+ * functionality.
+ *
+ * In any case, the order of the parameters in png_info_struct should NOT
+ * be changed for as long as possible to keep compatibility with applications
+ * that use the old direct-access method with png_info_struct.
+ *
+ * The following members may have allocated storage attached that should be
+ * cleaned up before the structure is discarded: palette, trans, text,
+ * pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile,
+ * splt_palettes, scal_unit, row_pointers, and unknowns.   By default, these
+ * are automatically freed when the info structure is deallocated, if they were
+ * allocated internally by libpng.  This behavior can be changed by means
+ * of the png_data_freer() function.
+ *
+ * More allocation details: all the chunk-reading functions that
+ * change these members go through the corresponding png_set_*
+ * functions.  A function to clear these members is available: see
+ * png_free_data().  The png_set_* functions do not depend on being
+ * able to point info structure members to any of the storage they are
+ * passed (they make their own copies), EXCEPT that the png_set_text
+ * functions use the same storage passed to them in the text_ptr or
+ * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns
+ * functions do not make their own copies.
+ */
+typedef struct png_info_struct
+{
+   /* The following are necessary for every PNG file */
+   png_uint_32 width;       /* width of image in pixels (from IHDR) */
+   png_uint_32 height;      /* height of image in pixels (from IHDR) */
+   png_uint_32 valid;       /* valid chunk data (see PNG_INFO_ below) */
+   png_uint_32 rowbytes;    /* bytes needed to hold an untransformed row */
+   png_colorp palette;      /* array of color values (valid & PNG_INFO_PLTE) */
+   png_uint_16 num_palette; /* number of color entries in "palette" (PLTE) */
+   png_uint_16 num_trans;   /* number of transparent palette color (tRNS) */
+   png_byte bit_depth;      /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */
+   png_byte color_type;     /* see PNG_COLOR_TYPE_ below (from IHDR) */
+   /* The following three should have been named *_method not *_type */
+   png_byte compression_type; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */
+   png_byte filter_type;    /* must be PNG_FILTER_TYPE_BASE (from IHDR) */
+   png_byte interlace_type; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */
+
+   /* The following is informational only on read, and not used on writes. */
+   png_byte channels;       /* number of data channels per pixel (1, 2, 3, 4) */
+   png_byte pixel_depth;    /* number of bits per pixel */
+   png_byte spare_byte;     /* to align the data, and for future use */
+   png_byte signature[8];   /* magic bytes read by libpng from start of file */
+
+   /* The rest of the data is optional.  If you are reading, check the
+    * valid field to see if the information in these are valid.  If you
+    * are writing, set the valid field to those chunks you want written,
+    * and initialize the appropriate fields below.
+    */
+
+#if defined(PNG_gAMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
+   /* The gAMA chunk describes the gamma characteristics of the system
+    * on which the image was created, normally in the range [1.0, 2.5].
+    * Data is valid if (valid & PNG_INFO_gAMA) is non-zero.
+    */
+   float gamma; /* gamma value of image, if (valid & PNG_INFO_gAMA) */
+#endif
+
+#if defined(PNG_sRGB_SUPPORTED)
+    /* GR-P, 0.96a */
+    /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */
+   png_byte srgb_intent; /* sRGB rendering intent [0, 1, 2, or 3] */
+#endif
+
+#if defined(PNG_TEXT_SUPPORTED)
+   /* The tEXt, and zTXt chunks contain human-readable textual data in
+    * uncompressed, compressed, and optionally compressed forms, respectively.
+    * The data in "text" is an array of pointers to uncompressed,
+    * null-terminated C strings. Each chunk has a keyword that describes the
+    * textual data contained in that chunk.  Keywords are not required to be
+    * unique, and the text string may be empty.  Any number of text chunks may
+    * be in an image.
+    */
+   int num_text; /* number of comments read/to write */
+   int max_text; /* current size of text array */
+   png_textp text; /* array of comments read/to write */
+#endif /* PNG_TEXT_SUPPORTED */
+
+#if defined(PNG_tIME_SUPPORTED)
+   /* The tIME chunk holds the last time the displayed image data was
+    * modified.  See the png_time struct for the contents of this struct.
+    */
+   png_time mod_time;
+#endif
+
+#if defined(PNG_sBIT_SUPPORTED)
+   /* The sBIT chunk specifies the number of significant high-order bits
+    * in the pixel data.  Values are in the range [1, bit_depth], and are
+    * only specified for the channels in the pixel data.  The contents of
+    * the low-order bits is not specified.  Data is valid if
+    * (valid & PNG_INFO_sBIT) is non-zero.
+    */
+   png_color_8 sig_bit; /* significant bits in color channels */
+#endif
+
+#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \
+defined(PNG_READ_BACKGROUND_SUPPORTED)
+   /* The tRNS chunk supplies transparency data for paletted images and
+    * other image types that don't need a full alpha channel.  There are
+    * "num_trans" transparency values for a paletted image, stored in the
+    * same order as the palette colors, starting from index 0.  Values
+    * for the data are in the range [0, 255], ranging from fully transparent
+    * to fully opaque, respectively.  For non-paletted images, there is a
+    * single color specified that should be treated as fully transparent.
+    * Data is valid if (valid & PNG_INFO_tRNS) is non-zero.
+    */
+   png_bytep trans; /* transparent values for paletted image */
+   png_color_16 trans_values; /* transparent color for non-palette image */
+#endif
+
+#if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   /* The bKGD chunk gives the suggested image background color if the
+    * display program does not have its own background color and the image
+    * is needs to composited onto a background before display.  The colors
+    * in "background" are normally in the same color space/depth as the
+    * pixel data.  Data is valid if (valid & PNG_INFO_bKGD) is non-zero.
+    */
+   png_color_16 background;
+#endif
+
+#if defined(PNG_oFFs_SUPPORTED)
+   /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards
+    * and downwards from the top-left corner of the display, page, or other
+    * application-specific co-ordinate space.  See the PNG_OFFSET_ defines
+    * below for the unit types.  Valid if (valid & PNG_INFO_oFFs) non-zero.
+    */
+   png_int_32 x_offset; /* x offset on page */
+   png_int_32 y_offset; /* y offset on page */
+   png_byte offset_unit_type; /* offset units type */
+#endif
+
+#if defined(PNG_pHYs_SUPPORTED)
+   /* The pHYs chunk gives the physical pixel density of the image for
+    * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_
+    * defines below).  Data is valid if (valid & PNG_INFO_pHYs) is non-zero.
+    */
+   png_uint_32 x_pixels_per_unit; /* horizontal pixel density */
+   png_uint_32 y_pixels_per_unit; /* vertical pixel density */
+   png_byte phys_unit_type; /* resolution type (see PNG_RESOLUTION_ below) */
+#endif
+
+#if defined(PNG_hIST_SUPPORTED)
+   /* The hIST chunk contains the relative frequency or importance of the
+    * various palette entries, so that a viewer can intelligently select a
+    * reduced-color palette, if required.  Data is an array of "num_palette"
+    * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST)
+    * is non-zero.
+    */
+   png_uint_16p hist;
+#endif
+
+#ifdef PNG_cHRM_SUPPORTED
+   /* The cHRM chunk describes the CIE color characteristics of the monitor
+    * on which the PNG was created.  This data allows the viewer to do gamut
+    * mapping of the input image to ensure that the viewer sees the same
+    * colors in the image as the creator.  Values are in the range
+    * [0.0, 0.8].  Data valid if (valid & PNG_INFO_cHRM) non-zero.
+    */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+   float x_white;
+   float y_white;
+   float x_red;
+   float y_red;
+   float x_green;
+   float y_green;
+   float x_blue;
+   float y_blue;
+#endif
+#endif
+
+#if defined(PNG_pCAL_SUPPORTED)
+   /* The pCAL chunk describes a transformation between the stored pixel
+    * values and original physical data values used to create the image.
+    * The integer range [0, 2^bit_depth - 1] maps to the floating-point
+    * range given by [pcal_X0, pcal_X1], and are further transformed by a
+    * (possibly non-linear) transformation function given by "pcal_type"
+    * and "pcal_params" into "pcal_units".  Please see the PNG_EQUATION_
+    * defines below, and the PNG-Group's PNG extensions document for a
+    * complete description of the transformations and how they should be
+    * implemented, and for a description of the ASCII parameter strings.
+    * Data values are valid if (valid & PNG_INFO_pCAL) non-zero.
+    */
+   png_charp pcal_purpose;  /* pCAL chunk description string */
+   png_int_32 pcal_X0;      /* minimum value */
+   png_int_32 pcal_X1;      /* maximum value */
+   png_charp pcal_units;    /* Latin-1 string giving physical units */
+   png_charpp pcal_params;  /* ASCII strings containing parameter values */
+   png_byte pcal_type;      /* equation type (see PNG_EQUATION_ below) */
+   png_byte pcal_nparams;   /* number of parameters given in pcal_params */
+#endif
+
+/* New members added in libpng-1.0.6 */
+#ifdef PNG_FREE_ME_SUPPORTED
+   png_uint_32 free_me;     /* flags items libpng is responsible for freeing */
+#endif
+
+#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
+ defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
+   /* Storage for unknown chunks that the library doesn't recognize. */
+   png_unknown_chunkp unknown_chunks;
+   png_size_t unknown_chunks_num;
+#endif
+
+#if defined(PNG_iCCP_SUPPORTED)
+   /* iCCP chunk data. */
+   png_charp iccp_name;     /* profile name */
+   png_charp iccp_profile;  /* International Color Consortium profile data */
+                            /* Note to maintainer: should be png_bytep */
+   png_uint_32 iccp_proflen;  /* ICC profile data length */
+   png_byte iccp_compression; /* Always zero */
+#endif
+
+#if defined(PNG_sPLT_SUPPORTED)
+   /* Data on sPLT chunks (there may be more than one). */
+   png_sPLT_tp splt_palettes;
+   png_uint_32 splt_palettes_num;
+#endif
+
+#if defined(PNG_sCAL_SUPPORTED)
+   /* The sCAL chunk describes the actual physical dimensions of the
+    * subject matter of the graphic.  The chunk contains a unit specification
+    * a byte value, and two ASCII strings representing floating-point
+    * values.  The values are width and height corresponsing to one pixel
+    * in the image.  This external representation is converted to double
+    * here.  Data values are valid if (valid & PNG_INFO_sCAL) is non-zero.
+    */
+   png_byte scal_unit;         /* unit of physical scale */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+   double scal_pixel_width;    /* width of one pixel */
+   double scal_pixel_height;   /* height of one pixel */
+#endif
+#ifdef PNG_FIXED_POINT_SUPPORTED
+   png_charp scal_s_width;     /* string containing height */
+   png_charp scal_s_height;    /* string containing width */
+#endif
+#endif
+
+#if defined(PNG_INFO_IMAGE_SUPPORTED)
+   /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS) non-zero */
+   /* Data valid if (valid & PNG_INFO_IDAT) non-zero */
+   png_bytepp row_pointers;        /* the image bits */
+#endif
+
+#if defined(PNG_FIXED_POINT_SUPPORTED) && defined(PNG_gAMA_SUPPORTED)
+   png_fixed_point int_gamma; /* gamma of image, if (valid & PNG_INFO_gAMA) */
+#endif
+
+#if defined(PNG_cHRM_SUPPORTED) && defined(PNG_FIXED_POINT_SUPPORTED)
+   png_fixed_point int_x_white;
+   png_fixed_point int_y_white;
+   png_fixed_point int_x_red;
+   png_fixed_point int_y_red;
+   png_fixed_point int_x_green;
+   png_fixed_point int_y_green;
+   png_fixed_point int_x_blue;
+   png_fixed_point int_y_blue;
+#endif
+
+} png_info;
+
+typedef png_info FAR * png_infop;
+typedef png_info FAR * FAR * png_infopp;
+
+/* Maximum positive integer used in PNG is (2^31)-1 */
+#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL)
+#define PNG_UINT_32_MAX ((png_uint_32)(-1))
+#define PNG_SIZE_MAX ((png_size_t)(-1))
+#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
+/* PNG_MAX_UINT is deprecated; use PNG_UINT_31_MAX instead. */
+#define PNG_MAX_UINT PNG_UINT_31_MAX
+#endif
+
+/* These describe the color_type field in png_info. */
+/* color type masks */
+#define PNG_COLOR_MASK_PALETTE    1
+#define PNG_COLOR_MASK_COLOR      2
+#define PNG_COLOR_MASK_ALPHA      4
+
+/* color types.  Note that not all combinations are legal */
+#define PNG_COLOR_TYPE_GRAY 0
+#define PNG_COLOR_TYPE_PALETTE  (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE)
+#define PNG_COLOR_TYPE_RGB        (PNG_COLOR_MASK_COLOR)
+#define PNG_COLOR_TYPE_RGB_ALPHA  (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA)
+#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA)
+/* aliases */
+#define PNG_COLOR_TYPE_RGBA  PNG_COLOR_TYPE_RGB_ALPHA
+#define PNG_COLOR_TYPE_GA  PNG_COLOR_TYPE_GRAY_ALPHA
+
+/* This is for compression type. PNG 1.0-1.2 only define the single type. */
+#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */
+#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE
+
+/* This is for filter type. PNG 1.0-1.2 only define the single type. */
+#define PNG_FILTER_TYPE_BASE      0 /* Single row per-byte filtering */
+#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */
+#define PNG_FILTER_TYPE_DEFAULT   PNG_FILTER_TYPE_BASE
+
+/* These are for the interlacing type.  These values should NOT be changed. */
+#define PNG_INTERLACE_NONE        0 /* Non-interlaced image */
+#define PNG_INTERLACE_ADAM7       1 /* Adam7 interlacing */
+#define PNG_INTERLACE_LAST        2 /* Not a valid value */
+
+/* These are for the oFFs chunk.  These values should NOT be changed. */
+#define PNG_OFFSET_PIXEL          0 /* Offset in pixels */
+#define PNG_OFFSET_MICROMETER     1 /* Offset in micrometers (1/10^6 meter) */
+#define PNG_OFFSET_LAST           2 /* Not a valid value */
+
+/* These are for the pCAL chunk.  These values should NOT be changed. */
+#define PNG_EQUATION_LINEAR       0 /* Linear transformation */
+#define PNG_EQUATION_BASE_E       1 /* Exponential base e transform */
+#define PNG_EQUATION_ARBITRARY    2 /* Arbitrary base exponential transform */
+#define PNG_EQUATION_HYPERBOLIC   3 /* Hyperbolic sine transformation */
+#define PNG_EQUATION_LAST         4 /* Not a valid value */
+
+/* These are for the sCAL chunk.  These values should NOT be changed. */
+#define PNG_SCALE_UNKNOWN         0 /* unknown unit (image scale) */
+#define PNG_SCALE_METER           1 /* meters per pixel */
+#define PNG_SCALE_RADIAN          2 /* radians per pixel */
+#define PNG_SCALE_LAST            3 /* Not a valid value */
+
+/* These are for the pHYs chunk.  These values should NOT be changed. */
+#define PNG_RESOLUTION_UNKNOWN    0 /* pixels/unknown unit (aspect ratio) */
+#define PNG_RESOLUTION_METER      1 /* pixels/meter */
+#define PNG_RESOLUTION_LAST       2 /* Not a valid value */
+
+/* These are for the sRGB chunk.  These values should NOT be changed. */
+#define PNG_sRGB_INTENT_PERCEPTUAL 0
+#define PNG_sRGB_INTENT_RELATIVE   1
+#define PNG_sRGB_INTENT_SATURATION 2
+#define PNG_sRGB_INTENT_ABSOLUTE   3
+#define PNG_sRGB_INTENT_LAST       4 /* Not a valid value */
+
+/* This is for text chunks */
+#define PNG_KEYWORD_MAX_LENGTH     79
+
+/* Maximum number of entries in PLTE/sPLT/tRNS arrays */
+#define PNG_MAX_PALETTE_LENGTH    256
+
+/* These determine if an ancillary chunk's data has been successfully read
+ * from the PNG header, or if the application has filled in the corresponding
+ * data in the info_struct to be written into the output file.  The values
+ * of the PNG_INFO_<chunk> 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_uint_32 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) || \
+    defined(PNG_LEGACY_SUPPORTED)
+typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp,
+    png_row_infop, png_bytep));
+#endif
+
+#if defined(PNG_USER_CHUNKS_SUPPORTED)
+typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp));
+#endif
+#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
+typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp));
+#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, deprecated */
+/* Added to libpng-1.2.34 */
+#define PNG_TRANSFORM_STRIP_FILLER_BEFORE 0x0800  /* write only */
+#define PNG_TRANSFORM_STRIP_FILLER_AFTER  0x1000  /* write 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_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;            /* used in png_error */
+#endif
+   png_error_ptr error_fn;    /* function for printing errors and aborting */
+   png_error_ptr warning_fn;  /* function for printing warnings */
+   png_voidp error_ptr;       /* user supplied struct for error functions */
+   png_rw_ptr write_data_fn;  /* function for writing output data */
+   png_rw_ptr read_data_fn;   /* function for reading input data */
+   png_voidp io_ptr;          /* ptr to application struct for I/O functions */
+
+#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
+   png_user_transform_ptr read_user_transform_fn; /* user read transform */
+#endif
+
+#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+   png_user_transform_ptr write_user_transform_fn; /* user write transform */
+#endif
+
+/* These were added in libpng-1.0.2 */
+#if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
+#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
+    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+   png_voidp user_transform_ptr; /* user supplied struct for user transform */
+   png_byte user_transform_depth;    /* bit depth of user transformed pixels */
+   png_byte user_transform_channels; /* channels in user transformed pixels */
+#endif
+#endif
+
+   png_uint_32 mode;          /* tells us where we are in the PNG file */
+   png_uint_32 flags;         /* flags indicating various things to libpng */
+   png_uint_32 transformations; /* which transformations to perform */
+
+   z_stream zstream;          /* pointer to decompression structure (below) */
+   png_bytep zbuf;            /* buffer for zlib */
+   png_size_t zbuf_size;      /* size of zbuf */
+   int zlib_level;            /* holds zlib compression level */
+   int zlib_method;           /* holds zlib compression method */
+   int zlib_window_bits;      /* holds zlib compression window bits */
+   int zlib_mem_level;        /* holds zlib compression memory level */
+   int zlib_strategy;         /* holds zlib compression strategy */
+
+   png_uint_32 width;         /* width of image in pixels */
+   png_uint_32 height;        /* height of image in pixels */
+   png_uint_32 num_rows;      /* number of rows in current pass */
+   png_uint_32 usr_width;     /* width of row at start of write */
+   png_uint_32 rowbytes;      /* size of row in bytes */
+   png_uint_32 irowbytes;     /* size of current interlaced row in bytes */
+   png_uint_32 iwidth;        /* width of current interlaced row in pixels */
+   png_uint_32 row_number;    /* current row in interlace pass */
+   png_bytep prev_row;        /* buffer to save previous (unfiltered) row */
+   png_bytep row_buf;         /* buffer to save current (unfiltered) row */
+#ifndef PNG_NO_WRITE_FILTER
+   png_bytep sub_row;         /* buffer to save "sub" row when filtering */
+   png_bytep up_row;          /* buffer to save "up" row when filtering */
+   png_bytep avg_row;         /* buffer to save "avg" row when filtering */
+   png_bytep paeth_row;       /* buffer to save "Paeth" row when filtering */
+#endif
+   png_row_info row_info;     /* used for transformation routines */
+
+   png_uint_32 idat_size;     /* current IDAT size for read */
+   png_uint_32 crc;           /* current chunk CRC value */
+   png_colorp palette;        /* palette from the input file */
+   png_uint_16 num_palette;   /* number of color entries in palette */
+   png_uint_16 num_trans;     /* number of transparency values */
+   png_byte chunk_name[5];    /* null-terminated name of current chunk */
+   png_byte compression;      /* file compression type (always 0) */
+   png_byte filter;           /* file filter type (always 0) */
+   png_byte interlaced;       /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */
+   png_byte pass;             /* current interlace pass (0 - 6) */
+   png_byte do_filter;        /* row filter flags (see PNG_FILTER_ below ) */
+   png_byte color_type;       /* color type of file */
+   png_byte bit_depth;        /* bit depth of file */
+   png_byte usr_bit_depth;    /* bit depth of users row */
+   png_byte pixel_depth;      /* number of bits per pixel */
+   png_byte channels;         /* number of channels in file */
+   png_byte usr_channels;     /* channels at start of write */
+   png_byte sig_bytes;        /* magic bytes read/written from start of file */
+
+#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
+#ifdef PNG_LEGACY_SUPPORTED
+   png_byte filler;           /* filler byte for pixel expansion */
+#else
+   png_uint_16 filler;           /* filler bytes for pixel expansion */
+#endif
+#endif
+
+#if defined(PNG_bKGD_SUPPORTED)
+   png_byte background_gamma_type;
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+   float background_gamma;
+#  endif
+   png_color_16 background;   /* background color in screen gamma space */
+#if defined(PNG_READ_GAMMA_SUPPORTED)
+   png_color_16 background_1; /* background normalized to gamma 1.0 */
+#endif
+#endif /* PNG_bKGD_SUPPORTED */
+
+#if defined(PNG_WRITE_FLUSH_SUPPORTED)
+   png_flush_ptr output_flush_fn; /* Function for flushing output */
+   png_uint_32 flush_dist;    /* how many rows apart to flush, 0 - no flush */
+   png_uint_32 flush_rows;    /* number of rows written since last flush */
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   int gamma_shift;      /* number of "insignificant" bits 16-bit gamma */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+   float gamma;          /* file gamma value */
+   float screen_gamma;   /* screen gamma value (display_exponent) */
+#endif
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   png_bytep gamma_table;     /* gamma table for 8-bit depth files */
+   png_bytep gamma_from_1;    /* converts from 1.0 to screen */
+   png_bytep gamma_to_1;      /* converts from file to 1.0 */
+   png_uint_16pp gamma_16_table; /* gamma table for 16-bit depth files */
+   png_uint_16pp gamma_16_from_1; /* converts from 1.0 to screen */
+   png_uint_16pp gamma_16_to_1; /* converts from file to 1.0 */
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED)
+   png_color_8 sig_bit;       /* significant bits in each available channel */
+#endif
+
+#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
+   png_color_8 shift;         /* 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;           /* transparency values for paletted files */
+   png_color_16 trans_values; /* transparency values for non-paletted files */
+#endif
+
+   png_read_status_ptr read_row_fn;   /* called after each row is decoded */
+   png_write_status_ptr write_row_fn; /* called after each row is encoded */
+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
+   png_progressive_info_ptr info_fn; /* called after header data fully read */
+   png_progressive_row_ptr row_fn;   /* called after each prog. row is decoded */
+   png_progressive_end_ptr end_fn;   /* called after image is complete */
+   png_bytep save_buffer_ptr;        /* current location in save_buffer */
+   png_bytep save_buffer;            /* buffer for previously read data */
+   png_bytep current_buffer_ptr;     /* current location in current_buffer */
+   png_bytep current_buffer;         /* buffer for recently used data */
+   png_uint_32 push_length;          /* size of current input chunk */
+   png_uint_32 skip_length;          /* bytes to skip in input data */
+   png_size_t save_buffer_size;      /* amount of data now in save_buffer */
+   png_size_t save_buffer_max;       /* total size of save_buffer */
+   png_size_t buffer_size;           /* total amount of available input data */
+   png_size_t current_buffer_size;   /* amount of data now in current_buffer */
+   int process_mode;                 /* what push library is currently doing */
+   int cur_palette;                  /* current push library palette index */
+
+#  if defined(PNG_TEXT_SUPPORTED)
+     png_size_t current_text_size;   /* current size of text input data */
+     png_size_t current_text_left;   /* how much text left to read in input */
+     png_charp current_text;         /* current text chunk buffer */
+     png_charp current_text_ptr;     /* current location in current_text */
+#  endif /* 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_bytep offset_table;
+   png_uint_16 offset_table_number;
+   png_uint_16 offset_table_count;
+   png_uint_16 offset_table_count_free;
+#endif
+
+#if defined(PNG_READ_DITHER_SUPPORTED)
+   png_bytep palette_lookup;         /* lookup table for dithering */
+   png_bytep dither_index;           /* index translation for palette files */
+#endif
+
+#if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED)
+   png_uint_16p hist;                /* histogram */
+#endif
+
+#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
+   png_byte heuristic_method;        /* heuristic for row filter selection */
+   png_byte num_prev_filters;        /* number of weights for previous rows */
+   png_bytep prev_filters;           /* filter type(s) of previous row(s) */
+   png_uint_16p filter_weights;      /* weight(s) for previous line(s) */
+   png_uint_16p inv_filter_weights;  /* 1/weight(s) for previous line(s) */
+   png_uint_16p filter_costs;        /* relative filter calculation cost */
+   png_uint_16p inv_filter_costs;    /* 1/relative filter calculation cost */
+#endif
+
+#if defined(PNG_TIME_RFC1123_SUPPORTED)
+   png_charp time_buffer;            /* String to hold RFC 1123 time text */
+#endif
+
+/* New members added in libpng-1.0.6 */
+
+#ifdef PNG_FREE_ME_SUPPORTED
+   png_uint_32 free_me;   /* flags items libpng is responsible for freeing */
+#endif
+
+#if defined(PNG_USER_CHUNKS_SUPPORTED)
+   png_voidp user_chunk_ptr;
+   png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */
+#endif
+
+#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+   int num_chunk_list;
+   png_bytep chunk_list;
+#endif
+
+/* New members added in libpng-1.0.3 */
+#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+   png_byte rgb_to_gray_status;
+   /* These were changed from png_byte in libpng-1.0.6 */
+   png_uint_16 rgb_to_gray_red_coeff;
+   png_uint_16 rgb_to_gray_green_coeff;
+   png_uint_16 rgb_to_gray_blue_coeff;
+#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 */
+#ifdef PNG_1_0_X
+   png_byte mng_features_permitted;
+#else
+   png_uint_32 mng_features_permitted;
+#endif /* PNG_1_0_X */
+#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;
+#endif
+
+/* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */
+#if defined(PNG_MNG_FEATURES_SUPPORTED)
+   png_byte filter_type;
+#endif
+
+#if defined(PNG_1_0_X)
+/* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */
+   png_uint_32 row_buf_size;
+#endif
+
+/* New members added in libpng-1.2.0 */
+#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
+#  if !defined(PNG_1_0_X)
+#    if defined(PNG_MMX_CODE_SUPPORTED)
+   png_byte     mmx_bitdepth_threshold;
+   png_uint_32  mmx_rowbytes_threshold;
+#    endif
+   png_uint_32  asm_flags;
+#  endif
+#endif
+
+/* 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;            /* user supplied struct for mem functions */
+   png_malloc_ptr malloc_fn;     /* function for allocating memory */
+   png_free_ptr free_fn;         /* function for freeing memory */
+#endif
+
+/* New member added in libpng-1.0.13 and 1.2.0 */
+   png_bytep big_row_buf;        /* buffer to save current (unfiltered) row */
+
+#if defined(PNG_READ_DITHER_SUPPORTED)
+/* The following three members were added at version 1.0.14 and 1.2.4 */
+   png_bytep dither_sort;        /* working sort array */
+   png_bytep index_to_palette;   /* where the original index currently is */
+                                 /* in the palette */
+   png_bytep palette_to_index;   /* 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;
+
+#ifdef PNG_SET_USER_LIMITS_SUPPORTED
+   png_uint_32 user_width_max;
+   png_uint_32 user_height_max;
+#endif
+
+/* New member added in libpng-1.0.25 and 1.2.17 */
+#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
+   /* Storage for unknown chunk that the library doesn't recognize. */
+   png_unknown_chunk unknown_chunk;
+#endif
+
+/* New members added in libpng-1.2.26 */
+  png_uint_32 old_big_row_buf_size, old_prev_row_size;
+
+/* New member added in libpng-1.2.30 */
+  png_charp chunkdata;  /* buffer for reading chunk data */
+
+};
+
+
+/* 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_2_40;
+
+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 */
+extern PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void));
+
+/* Tell lib we have already handled the first <num_bytes> magic bytes.
+ * Handling more than 8 bytes from the beginning of the file is an error.
+ */
+extern 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).
+ */
+extern 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).
+ */
+extern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num));
+
+/* Allocate and initialize png_ptr struct for reading, and any other memory. */
+extern 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));
+
+/* Allocate and initialize png_ptr struct for writing, and any other memory */
+extern 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));
+
+#ifdef PNG_WRITE_SUPPORTED
+extern PNG_EXPORT(png_uint_32,png_get_compression_buffer_size)
+   PNGARG((png_structp png_ptr));
+#endif
+
+#ifdef PNG_WRITE_SUPPORTED
+extern PNG_EXPORT(void,png_set_compression_buffer_size)
+   PNGARG((png_structp png_ptr, png_uint_32 size));
+#endif
+
+/* Reset the compression stream */
+extern PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr));
+
+/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */
+#ifdef PNG_USER_MEM_SUPPORTED
+extern 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));
+extern 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));
+#endif
+
+/* Write a PNG chunk - size, type, (optional) data, CRC. */
+extern 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. */
+extern 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(). */
+extern 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). */
+extern PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr));
+
+/* Allocate and initialize the info structure */
+extern PNG_EXPORT(png_infop,png_create_info_struct)
+   PNGARG((png_structp png_ptr));
+
+#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
+/* Initialize the info structure (old interface - DEPRECATED) */
+extern PNG_EXPORT(void,png_info_init) PNGARG((png_infop info_ptr));
+#undef png_info_init
+#define png_info_init(info_ptr) png_info_init_3(&info_ptr,\
+    png_sizeof(png_info));
+#endif
+
+extern 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. */
+extern PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+
+#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+/* Read the information before the actual image data. */
+extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+#endif
+
+#if defined(PNG_TIME_RFC1123_SUPPORTED)
+extern PNG_EXPORT(png_charp,png_convert_to_rfc1123)
+   PNGARG((png_structp png_ptr, png_timep ptime));
+#endif
+
+#if !defined(_WIN32_WCE)
+/* "time.h" functions are not supported on WindowsCE */
+#if defined(PNG_WRITE_tIME_SUPPORTED)
+/* Convert from a struct tm to png_time */
+extern 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() */
+extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime,
+   time_t ttime));
+#endif /* PNG_WRITE_tIME_SUPPORTED */
+#endif /* _WIN32_WCE */
+
+#if defined(PNG_READ_EXPAND_SUPPORTED)
+/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */
+extern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr));
+#if !defined(PNG_1_0_X)
+extern PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp
+  png_ptr));
+#endif
+extern PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr));
+extern PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr));
+#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
+/* Deprecated */
+extern PNG_EXPORT(void,png_set_gray_1_2_4_to_8) PNGARG((png_structp png_ptr));
+#endif
+#endif
+
+#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
+/* Use blue, green, red order for pixels. */
+extern PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
+/* Expand the grayscale to 24-bit RGB if necessary. */
+extern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+/* Reduce RGB to grayscale. */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+extern PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr,
+   int error_action, double red, double green ));
+#endif
+extern 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 ));
+extern PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp
+   png_ptr));
+#endif
+
+extern PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth,
+   png_colorp palette));
+
+#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
+extern 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)
+extern 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)
+extern 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. */
+extern 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. */
+#if !defined(PNG_1_0_X)
+extern PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr,
+   png_uint_32 filler, int flags));
+#endif
+#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. */
+extern 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. */
+extern 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. */
+extern 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. */
+extern 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. */
+extern 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 */
+extern PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_BACKGROUND_SUPPORTED)
+/* Handle alpha and tRNS by replacing with a background color. */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+extern 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
+
+#if defined(PNG_READ_16_TO_8_SUPPORTED)
+/* Strip the second byte of information from a 16-bit depth file. */
+extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_DITHER_SUPPORTED)
+/* Turn on dithering, and reduce the palette to the number of colors available. */
+extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr,
+   png_colorp palette, int num_palette, int maximum_colors,
+   png_uint_16p histogram, int full_dither));
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED)
+/* Handle gamma correction. Screen_gamma=(display_exponent) */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+extern PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr,
+   double screen_gamma, double default_file_gamma));
+#endif
+#endif
+
+#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
+#if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
+    defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
+/* Permit or disallow empty PLTE (0: not permitted, 1: permitted) */
+/* Deprecated and will be removed.  Use png_permit_mng_features() instead. */
+extern PNG_EXPORT(void,png_permit_empty_plte) PNGARG((png_structp png_ptr,
+   int empty_plte_permitted));
+#endif
+#endif
+
+#if defined(PNG_WRITE_FLUSH_SUPPORTED)
+/* Set how many lines between output flushes - 0 for no flushing */
+extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows));
+/* Flush the current PNG output buffer */
+extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr));
+#endif
+
+/* Optional update palette with requested transformations */
+extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr));
+
+/* Optional call to update the users info structure */
+extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+
+#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+/* Read one or more rows of image data. */
+extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr,
+   png_bytepp row, png_bytepp display_row, png_uint_32 num_rows));
+#endif
+
+#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+/* Read a row of data. */
+extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr,
+   png_bytep row,
+   png_bytep display_row));
+#endif
+
+#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+/* Read the whole image into memory at once. */
+extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr,
+   png_bytepp image));
+#endif
+
+/* Write a row of image data */
+extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr,
+   png_bytep row));
+
+/* Write a few rows of image data */
+extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr,
+   png_bytepp row, png_uint_32 num_rows));
+
+/* Write the image data */
+extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr,
+   png_bytepp image));
+
+/* Writes the end of the PNG file. */
+extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+
+#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
+/* Read the end of the PNG file. */
+extern 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 */
+extern 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 */
+extern 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 all memory used by the read (old method - NOT DLL EXPORTED) */
+extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_infop end_info_ptr));
+
+/* Free any memory associated with the png_struct and the png_info_structs */
+extern PNG_EXPORT(void,png_destroy_write_struct)
+   PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr));
+
+/* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
+extern void png_write_destroy PNGARG((png_structp png_ptr));
+
+/* Set the libpng method of handling chunk CRC errors */
+extern 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.
+ */
+extern 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
+
+#if defined(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
+extern 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.
+ */
+extern PNG_EXPORT(void,png_set_compression_level) PNGARG((png_structp png_ptr,
+   int level));
+
+extern PNG_EXPORT(void,png_set_compression_mem_level)
+   PNGARG((png_structp png_ptr, int mem_level));
+
+extern PNG_EXPORT(void,png_set_compression_strategy)
+   PNGARG((png_structp png_ptr, int strategy));
+
+extern PNG_EXPORT(void,png_set_compression_window_bits)
+   PNGARG((png_structp png_ptr, int window_bits));
+
+extern 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.
+ */
+
+#if !defined(PNG_NO_STDIO)
+/* Initialize the input/output for the PNG file to the default functions. */
+extern 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.
+ */
+
+extern 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 */
+extern 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.
+ */
+extern 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. */
+extern 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 */
+extern PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr));
+
+extern PNG_EXPORT(void,png_set_read_status_fn) PNGARG((png_structp png_ptr,
+   png_read_status_ptr read_row_fn));
+
+extern 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). */
+extern 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 */
+extern PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
+    defined(PNG_LEGACY_SUPPORTED)
+extern PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp
+   png_ptr, png_user_transform_ptr read_user_transform_fn));
+#endif
+
+#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
+    defined(PNG_LEGACY_SUPPORTED)
+extern 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) || \
+    defined(PNG_LEGACY_SUPPORTED)
+extern 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 */
+extern PNG_EXPORT(png_voidp,png_get_user_transform_ptr)
+   PNGARG((png_structp png_ptr));
+#endif
+
+#ifdef PNG_USER_CHUNKS_SUPPORTED
+extern 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));
+extern 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.
+ */
+extern 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 */
+extern PNG_EXPORT(png_voidp,png_get_progressive_ptr)
+   PNGARG((png_structp png_ptr));
+
+/* Function to be called when data becomes available */
+extern 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?????
+ */
+extern 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 */
+
+extern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr,
+   png_uint_32 size));
+
+#if defined(PNG_1_0_X)
+#  define png_malloc_warn png_malloc
+#else
+/* Added at libpng version 1.2.4 */
+extern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr,
+   png_uint_32 size));
+#endif
+
+/* Frees a pointer allocated by png_malloc() */
+extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
+
+#if defined(PNG_1_0_X)
+/* Function to allocate memory for zlib. */
+extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items,
+   uInt size));
+
+/* Function to free memory for zlib */
+extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr));
+#endif
+
+/* Free data that was allocated internally */
+extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_32 free_me, int num));
+#ifdef PNG_FREE_ME_SUPPORTED
+/* Reassign responsibility for freeing existing data, whether allocated
+ * by libpng or by the application
+ */
+extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int freer, png_uint_32 mask));
+#endif
+/* 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
+extern PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr,
+   png_uint_32 size));
+extern PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr,
+   png_voidp ptr));
+#endif
+
+extern PNG_EXPORT(png_voidp,png_memcpy_check) PNGARG((png_structp png_ptr,
+   png_voidp s1, png_voidp s2, png_uint_32 size));
+
+extern PNG_EXPORT(png_voidp,png_memset_check) PNGARG((png_structp png_ptr,
+   png_voidp s1, int value, png_uint_32 size));
+
+#if defined(USE_FAR_KEYWORD)  /* memory model conversion function */
+extern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr,
+   int check));
+#endif /* USE_FAR_KEYWORD */
+
+#ifndef PNG_NO_ERROR_TEXT
+/* Fatal error in PNG image of libpng - can't continue */
+extern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr,
+   png_const_charp error_message));
+
+/* The same, but the chunk name is prepended to the error string. */
+extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr,
+   png_const_charp error_message));
+#else
+/* Fatal error in PNG image of libpng - can't continue */
+extern PNG_EXPORT(void,png_err) PNGARG((png_structp png_ptr));
+#endif
+
+#ifndef PNG_NO_WARNINGS
+/* Non-fatal error in libpng.  Can continue, but may have a problem. */
+extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr,
+   png_const_charp warning_message));
+
+#ifdef PNG_READ_SUPPORTED
+/* Non-fatal error in libpng, chunk name is prepended to message. */
+extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr,
+   png_const_charp warning_message));
+#endif /* PNG_READ_SUPPORTED */
+#endif /* PNG_NO_WARNINGS */
+
+/* The png_set_<chunk> functions are for storing values in the png_info_struct.
+ * Similarly, the png_get_<chunk> 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_<chunk> 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. */
+extern 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. */
+extern PNG_EXPORT(png_uint_32,png_get_rowbytes) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+#if defined(PNG_INFO_IMAGE_SUPPORTED)
+/* Returns row_pointers, which is an array of pointers to scanlines that was
+ * returned from png_read_png().
+ */
+extern 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().
+ */
+extern 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. */
+extern 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. */
+extern PNG_EXPORT(png_uint_32, png_get_image_width) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image height in pixels. */
+extern PNG_EXPORT(png_uint_32, png_get_image_height) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image bit_depth. */
+extern PNG_EXPORT(png_byte, png_get_bit_depth) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image color_type. */
+extern PNG_EXPORT(png_byte, png_get_color_type) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image filter_type. */
+extern PNG_EXPORT(png_byte, png_get_filter_type) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image interlace_type. */
+extern PNG_EXPORT(png_byte, png_get_interlace_type) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image compression_type. */
+extern 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. */
+extern PNG_EXPORT(png_uint_32, png_get_pixels_per_meter) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+extern PNG_EXPORT(png_uint_32, png_get_x_pixels_per_meter) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+extern 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
+extern 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. */
+extern PNG_EXPORT(png_int_32, png_get_x_offset_pixels) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+extern PNG_EXPORT(png_int_32, png_get_y_offset_pixels) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+extern PNG_EXPORT(png_int_32, png_get_x_offset_microns) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+extern 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 */
+extern PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+#if defined(PNG_bKGD_SUPPORTED)
+extern PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_color_16p *background));
+#endif
+
+#if defined(PNG_bKGD_SUPPORTED)
+extern PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_color_16p background));
+#endif
+
+#if defined(PNG_cHRM_SUPPORTED)
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+extern 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
+extern 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
+
+#if defined(PNG_cHRM_SUPPORTED)
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+extern 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
+extern 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
+
+#if defined(PNG_gAMA_SUPPORTED)
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+extern PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, double *file_gamma));
+#endif
+extern 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
+
+#if defined(PNG_gAMA_SUPPORTED)
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+extern PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, double file_gamma));
+#endif
+extern PNG_EXPORT(void,png_set_gAMA_fixed) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_fixed_point int_file_gamma));
+#endif
+
+#if defined(PNG_hIST_SUPPORTED)
+extern PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_16p *hist));
+#endif
+
+#if defined(PNG_hIST_SUPPORTED)
+extern PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_16p hist));
+#endif
+
+extern 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));
+
+extern 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));
+
+#if defined(PNG_oFFs_SUPPORTED)
+extern 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
+
+#if defined(PNG_oFFs_SUPPORTED)
+extern 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
+
+#if defined(PNG_pCAL_SUPPORTED)
+extern 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
+
+#if defined(PNG_pCAL_SUPPORTED)
+extern 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
+
+#if defined(PNG_pHYs_SUPPORTED)
+extern 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
+
+#if defined(PNG_pHYs_SUPPORTED)
+extern 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
+
+extern PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_colorp *palette, int *num_palette));
+
+extern PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_colorp palette, int num_palette));
+
+#if defined(PNG_sBIT_SUPPORTED)
+extern PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_color_8p *sig_bit));
+#endif
+
+#if defined(PNG_sBIT_SUPPORTED)
+extern PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_color_8p sig_bit));
+#endif
+
+#if defined(PNG_sRGB_SUPPORTED)
+extern PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int *intent));
+#endif
+
+#if defined(PNG_sRGB_SUPPORTED)
+extern PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int intent));
+extern PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int intent));
+#endif
+
+#if defined(PNG_iCCP_SUPPORTED)
+extern 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
+
+#if defined(PNG_iCCP_SUPPORTED)
+extern 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
+
+#if defined(PNG_sPLT_SUPPORTED)
+extern PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_sPLT_tpp entries));
+#endif
+
+#if defined(PNG_sPLT_SUPPORTED)
+extern PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_sPLT_tp entries, int nentries));
+#endif
+
+#if defined(PNG_TEXT_SUPPORTED)
+/* png_get_text also returns the number of text chunks in *num_text */
+extern 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.
+ */
+
+#if defined(PNG_TEXT_SUPPORTED)
+extern PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_textp text_ptr, int num_text));
+#endif
+
+#if defined(PNG_tIME_SUPPORTED)
+extern PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_timep *mod_time));
+#endif
+
+#if defined(PNG_tIME_SUPPORTED)
+extern PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_timep mod_time));
+#endif
+
+#if defined(PNG_tRNS_SUPPORTED)
+extern PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_bytep *trans, int *num_trans,
+   png_color_16p *trans_values));
+#endif
+
+#if defined(PNG_tRNS_SUPPORTED)
+extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_bytep trans, int num_trans,
+   png_color_16p trans_values));
+#endif
+
+#if defined(PNG_tRNS_SUPPORTED)
+#endif
+
+#if defined(PNG_sCAL_SUPPORTED)
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+extern 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
+extern 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 */
+
+#if defined(PNG_sCAL_SUPPORTED)
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+extern 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
+extern 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
+*/
+extern 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
+#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
+extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns));
+extern PNG_EXPORT(void, png_set_unknown_chunk_location)
+   PNGARG((png_structp png_ptr, png_infop info_ptr, int chunk, int location));
+extern 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);
+ */
+extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int mask));
+
+#if defined(PNG_INFO_IMAGE_SUPPORTED)
+/* The "params" pointer is currently not used and is for future expansion. */
+extern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr,
+                        png_infop info_ptr,
+                        int transforms,
+                        png_voidp params));
+extern PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr,
+                        png_infop info_ptr,
+                        int transforms,
+                        png_voidp params));
+#endif
+
+/* 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 <crtdbg.h>
+#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
+
+extern PNG_EXPORT(png_charp,png_get_copyright) PNGARG((png_structp png_ptr));
+extern PNG_EXPORT(png_charp,png_get_header_ver) PNGARG((png_structp png_ptr));
+extern PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp png_ptr));
+extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
+
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+extern 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
+
+/* Added to version 1.2.0 */
+#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
+#if defined(PNG_MMX_CODE_SUPPORTED)
+#define PNG_ASM_FLAG_MMX_SUPPORT_COMPILED  0x01  /* not user-settable */
+#define PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU    0x02  /* not user-settable */
+#define PNG_ASM_FLAG_MMX_READ_COMBINE_ROW  0x04
+#define PNG_ASM_FLAG_MMX_READ_INTERLACE    0x08
+#define PNG_ASM_FLAG_MMX_READ_FILTER_SUB   0x10
+#define PNG_ASM_FLAG_MMX_READ_FILTER_UP    0x20
+#define PNG_ASM_FLAG_MMX_READ_FILTER_AVG   0x40
+#define PNG_ASM_FLAG_MMX_READ_FILTER_PAETH 0x80
+#define PNG_ASM_FLAGS_INITIALIZED          0x80000000  /* not user-settable */
+
+#define PNG_MMX_READ_FLAGS ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW  \
+                           | PNG_ASM_FLAG_MMX_READ_INTERLACE    \
+                           | PNG_ASM_FLAG_MMX_READ_FILTER_SUB   \
+                           | PNG_ASM_FLAG_MMX_READ_FILTER_UP    \
+                           | PNG_ASM_FLAG_MMX_READ_FILTER_AVG   \
+                           | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH )
+#define PNG_MMX_WRITE_FLAGS ( 0 )
+
+#define PNG_MMX_FLAGS ( PNG_ASM_FLAG_MMX_SUPPORT_COMPILED \
+                      | PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU   \
+                      | PNG_MMX_READ_FLAGS                \
+                      | PNG_MMX_WRITE_FLAGS )
+
+#define PNG_SELECT_READ   1
+#define PNG_SELECT_WRITE  2
+#endif /* PNG_MMX_CODE_SUPPORTED */
+
+#if !defined(PNG_1_0_X)
+/* pngget.c */
+extern PNG_EXPORT(png_uint_32,png_get_mmx_flagmask)
+   PNGARG((int flag_select, int *compilerID));
+
+/* pngget.c */
+extern PNG_EXPORT(png_uint_32,png_get_asm_flagmask)
+   PNGARG((int flag_select));
+
+/* pngget.c */
+extern PNG_EXPORT(png_uint_32,png_get_asm_flags)
+   PNGARG((png_structp png_ptr));
+
+/* pngget.c */
+extern PNG_EXPORT(png_byte,png_get_mmx_bitdepth_threshold)
+   PNGARG((png_structp png_ptr));
+
+/* pngget.c */
+extern PNG_EXPORT(png_uint_32,png_get_mmx_rowbytes_threshold)
+   PNGARG((png_structp png_ptr));
+
+/* pngset.c */
+extern PNG_EXPORT(void,png_set_asm_flags)
+   PNGARG((png_structp png_ptr, png_uint_32 asm_flags));
+
+/* pngset.c */
+extern PNG_EXPORT(void,png_set_mmx_thresholds)
+   PNGARG((png_structp png_ptr, png_byte mmx_bitdepth_threshold,
+   png_uint_32 mmx_rowbytes_threshold));
+
+#endif /* PNG_1_0_X */
+
+#if !defined(PNG_1_0_X)
+/* png.c, pnggccrd.c, or pngvcrd.c */
+extern PNG_EXPORT(int,png_mmx_support) PNGARG((void));
+#endif /* PNG_1_0_X */
+#endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
+
+/* 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
+extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
+   png_ptr, png_uint_32 strip_mode));
+#endif
+
+/* Added at libpng-1.2.6 */
+#ifdef PNG_SET_USER_LIMITS_SUPPORTED
+extern PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp
+   png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max));
+extern PNG_EXPORT(png_uint_32,png_get_user_width_max) PNGARG((png_structp
+   png_ptr));
+extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
+   png_ptr));
+#endif
+
+
+/* Maintainer: Put new public prototypes here ^, in libpng.3, and in
+ * 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 */
+
+/* Inline macros to do direct reads of bytes from the input buffer.  These
+ * require that you are using an architecture that uses PNG byte ordering
+ * (MSB first) and supports unaligned data storage.  I think that PowerPC
+ * in big-endian mode and 680x0 are the only ones that will support this.
+ * The x86 line of processors definitely do not.  The png_get_int_32()
+ * routine also assumes we are using two's complement format for negative
+ * values, which is almost certainly true.
+ */
+#if defined(PNG_READ_BIG_ENDIAN_SUPPORTED)
+#  define png_get_uint_32(buf) ( *((png_uint_32p) (buf)))
+#  define png_get_uint_16(buf) ( *((png_uint_16p) (buf)))
+#  define png_get_int_32(buf)  ( *((png_int_32p)  (buf)))
+#else
+extern PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf));
+extern PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf));
+extern PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf));
+#endif /* !PNG_READ_BIG_ENDIAN_SUPPORTED */
+extern 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).
+ */
+extern PNG_EXPORT(void,png_save_uint_32)
+   PNGARG((png_bytep buf, png_uint_32 i));
+extern 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.
+ */
+extern 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. */
+
+/* ************************************************************************* */
+
+/* These next 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.
+ */
+
+
+/* Various modes of operation, that are visible to applications because
+ * they are used for unknown chunk location.
+ */
+#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
+
+#if defined(PNG_INTERNAL)
+
+/* More modes of operation.  Note that after an init, mode is set to
+ * zero automatically when the structure is created.
+ */
+#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_DITHER             0x0040
+#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
+#define PNG_FLAG_FREE_PLTE                0x1000
+#define PNG_FLAG_FREE_TRNS                0x2000
+#define PNG_FLAG_FREE_HIST                0x4000
+#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 */
+                                  /*      0x800000L  unused */
+                                  /*     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 ? \
+    ((width) * (((png_uint_32)(pixel_bits)) >> 3)) : \
+    (( ((width) * ((png_uint_32)(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) )
+
+/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
+#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
+/* Place to hold the signature string for a PNG file. */
+#ifdef PNG_USE_GLOBAL_ARRAYS
+   PNG_EXPORT_VAR (PNG_CONST png_byte FARDATA) png_sig[8];
+#else
+#endif
+#endif /* PNG_NO_EXTERN */
+
+/* Constant strings for known chunk types.  If you need to add a chunk,
+ * define the name here, and add an invocation of the macro in png.c and
+ * wherever it's needed.
+ */
+#define PNG_IHDR png_byte png_IHDR[5] = { 73,  72,  68,  82, '\0'}
+#define PNG_IDAT png_byte png_IDAT[5] = { 73,  68,  65,  84, '\0'}
+#define PNG_IEND png_byte png_IEND[5] = { 73,  69,  78,  68, '\0'}
+#define PNG_PLTE png_byte png_PLTE[5] = { 80,  76,  84,  69, '\0'}
+#define PNG_bKGD png_byte png_bKGD[5] = { 98,  75,  71,  68, '\0'}
+#define PNG_cHRM png_byte png_cHRM[5] = { 99,  72,  82,  77, '\0'}
+#define PNG_gAMA png_byte png_gAMA[5] = {103,  65,  77,  65, '\0'}
+#define PNG_hIST png_byte png_hIST[5] = {104,  73,  83,  84, '\0'}
+#define PNG_iCCP png_byte png_iCCP[5] = {105,  67,  67,  80, '\0'}
+#define PNG_iTXt png_byte png_iTXt[5] = {105,  84,  88, 116, '\0'}
+#define PNG_oFFs png_byte png_oFFs[5] = {111,  70,  70, 115, '\0'}
+#define PNG_pCAL png_byte png_pCAL[5] = {112,  67,  65,  76, '\0'}
+#define PNG_sCAL png_byte png_sCAL[5] = {115,  67,  65,  76, '\0'}
+#define PNG_pHYs png_byte png_pHYs[5] = {112,  72,  89, 115, '\0'}
+#define PNG_sBIT png_byte png_sBIT[5] = {115,  66,  73,  84, '\0'}
+#define PNG_sPLT png_byte png_sPLT[5] = {115,  80,  76,  84, '\0'}
+#define PNG_sRGB png_byte png_sRGB[5] = {115,  82,  71,  66, '\0'}
+#define PNG_tEXt png_byte png_tEXt[5] = {116,  69,  88, 116, '\0'}
+#define PNG_tIME png_byte png_tIME[5] = {116,  73,  77,  69, '\0'}
+#define PNG_tRNS png_byte png_tRNS[5] = {116,  82,  78,  83, '\0'}
+#define PNG_zTXt png_byte png_zTXt[5] = {122,  84,  88, 116, '\0'}
+
+#ifdef PNG_USE_GLOBAL_ARRAYS
+PNG_EXPORT_VAR (png_byte FARDATA) png_IHDR[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_IDAT[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_IEND[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_PLTE[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_bKGD[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_cHRM[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_gAMA[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_hIST[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_iCCP[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_iTXt[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_oFFs[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_pCAL[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_sCAL[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_pHYs[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_sBIT[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_sPLT[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_sRGB[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_tEXt[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_tIME[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_tRNS[5];
+PNG_EXPORT_VAR (png_byte FARDATA) png_zTXt[5];
+#endif /* PNG_USE_GLOBAL_ARRAYS */
+
+#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
+/* Initialize png_ptr struct for reading, and allocate any other memory.
+ * (old interface - DEPRECATED - use png_create_read_struct instead).
+ */
+extern PNG_EXPORT(void,png_read_init) PNGARG((png_structp png_ptr));
+#undef png_read_init
+#define png_read_init(png_ptr) png_read_init_3(&png_ptr, \
+    PNG_LIBPNG_VER_STRING,  png_sizeof(png_struct));
+#endif
+
+extern PNG_EXPORT(void,png_read_init_3) PNGARG((png_structpp ptr_ptr,
+    png_const_charp user_png_ver, png_size_t png_struct_size));
+#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
+extern PNG_EXPORT(void,png_read_init_2) PNGARG((png_structp png_ptr,
+    png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
+    png_info_size));
+#endif
+
+#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
+/* Initialize png_ptr struct for writing, and allocate any other memory.
+ * (old interface - DEPRECATED - use png_create_write_struct instead).
+ */
+extern PNG_EXPORT(void,png_write_init) PNGARG((png_structp png_ptr));
+#undef png_write_init
+#define png_write_init(png_ptr) png_write_init_3(&png_ptr, \
+    PNG_LIBPNG_VER_STRING, png_sizeof(png_struct));
+#endif
+
+extern PNG_EXPORT(void,png_write_init_3) PNGARG((png_structpp ptr_ptr,
+    png_const_charp user_png_ver, png_size_t png_struct_size));
+extern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr,
+    png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
+    png_info_size));
+
+/* 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));
+
+#ifndef PNG_1_0_X
+/* Function to allocate memory for zlib. */
+PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size));
+
+/* Function to free memory for zlib */
+PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr));
+
+#ifdef PNG_SIZE_T
+/* Function to convert a sizeof an item to png_sizeof item */
+   PNG_EXTERN png_size_t PNGAPI png_convert_size PNGARG((size_t size));
+#endif
+
+/* 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));
+
+#if defined(PNG_WRITE_FLUSH_SUPPORTED)
+#if !defined(PNG_NO_STDIO)
+PNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr));
+#endif
+#endif
+#else /* PNG_1_0_X */
+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
+PNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr,
+   png_bytep buffer, png_size_t length));
+#endif
+#endif /* PNG_1_0_X */
+
+/* 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 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));
+
+#if defined(PNG_WRITE_FLUSH_SUPPORTED)
+PNG_EXTERN void png_flush PNGARG((png_structp png_ptr));
+#endif
+
+/* Simple function to write the signature */
+PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr));
+
+/* 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));
+
+#if defined(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
+
+#if defined(PNG_WRITE_sBIT_SUPPORTED)
+PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit,
+   int color_type));
+#endif
+
+#if defined(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
+#ifdef PNG_FIXED_POINT_SUPPORTED
+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
+#endif
+
+#if defined(PNG_WRITE_sRGB_SUPPORTED)
+PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr,
+   int intent));
+#endif
+
+#if defined(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
+
+#if defined(PNG_WRITE_sPLT_SUPPORTED)
+PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr,
+   png_sPLT_tp palette));
+#endif
+
+#if defined(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
+
+#if defined(PNG_WRITE_bKGD_SUPPORTED)
+PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr,
+   png_color_16p values, int color_type));
+#endif
+
+#if defined(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
+
+#if defined(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
+
+#if defined(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
+
+#if defined(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
+
+#if defined(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
+
+#if defined(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
+
+#if defined(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
+
+#if defined(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
+
+#if defined(PNG_WRITE_tIME_SUPPORTED)
+PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr,
+   png_timep mod_time));
+#endif
+
+#if defined(PNG_WRITE_sCAL_SUPPORTED)
+#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)
+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));
+
+#if defined(PNG_READ_GAMMA_SUPPORTED)
+PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr));
+#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));
+
+#if defined(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 */
+
+#if defined(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 */
+#if defined(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
+
+#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED)
+PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info,
+   png_bytep row));
+#endif
+
+#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
+PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info,
+   png_bytep row));
+#endif
+
+#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED)
+PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info,
+   png_bytep row));
+#endif
+
+#if defined(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
+
+#if defined(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
+
+#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
+PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info,
+   png_bytep row));
+#endif
+
+#if defined(PNG_READ_PACK_SUPPORTED)
+PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info, png_bytep row));
+#endif
+
+#if defined(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
+
+#if defined(PNG_READ_16_TO_8_SUPPORTED)
+PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row));
+#endif
+
+#if defined(PNG_READ_DITHER_SUPPORTED)
+PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info,
+   png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup));
+
+#  if defined(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
+
+#if defined(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
+
+#if defined(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
+
+#if defined(PNG_READ_BACKGROUND_SUPPORTED)
+#if defined(PNG_READ_GAMMA_SUPPORTED)
+PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
+   png_color_16p trans_values, 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_values, png_color_16p background));
+#endif
+#endif
+
+#if defined(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
+
+#if defined(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));
+
+#if defined(PNG_READ_bKGD_SUPPORTED)
+PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_cHRM_SUPPORTED)
+PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_gAMA_SUPPORTED)
+PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_hIST_SUPPORTED)
+PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_iCCP_SUPPORTED)
+extern void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif /* PNG_READ_iCCP_SUPPORTED */
+
+#if defined(PNG_READ_iTXt_SUPPORTED)
+PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_oFFs_SUPPORTED)
+PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_pCAL_SUPPORTED)
+PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_pHYs_SUPPORTED)
+PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_sBIT_SUPPORTED)
+PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_sCAL_SUPPORTED)
+PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_sPLT_SUPPORTED)
+extern void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif /* PNG_READ_sPLT_SUPPORTED */
+
+#if defined(PNG_READ_sRGB_SUPPORTED)
+PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_tEXt_SUPPORTED)
+PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_tIME_SUPPORTED)
+PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(PNG_READ_tRNS_SUPPORTED)
+PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr,
+   png_uint_32 length));
+#endif
+
+#if defined(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));
+#if defined(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
+#if defined(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
+#if defined(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
+
+#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
+#if defined(PNG_MMX_CODE_SUPPORTED)
+/* png.c */ /* PRIVATE */
+PNG_EXTERN void png_init_mmx_flags PNGARG((png_structp png_ptr));
+#endif
+#endif
+
+#if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED)
+PNG_EXTERN png_uint_32 png_get_pixels_per_inch PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+PNG_EXTERN png_uint_32 png_get_x_pixels_per_inch PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+PNG_EXTERN png_uint_32 png_get_y_pixels_per_inch PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+PNG_EXTERN float png_get_x_offset_inches PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+PNG_EXTERN float png_get_y_offset_inches PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+#if defined(PNG_pHYs_SUPPORTED)
+PNG_EXTERN 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 */
+
+/* Read the chunk header (length + type name) */
+PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr));
+
+/* Added at libpng version 1.2.34 */
+#if defined(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
+
+#if defined(PNG_cHRM_SUPPORTED)
+#if !defined(PNG_NO_CHECK_cHRM)
+/* Added at libpng version 1.2.34 */
+PNG_EXTERN void png_64bit_product (long v1, long v2, unsigned long *hi_product,
+   unsigned long *lo_product);
+#endif
+#endif
+
+/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
+
+#endif /* PNG_INTERNAL */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PNG_VERSION_INFO_ONLY */
+/* Do not put anything past this line */
+#endif /* PNG_H */
diff --git a/VisualC/graphics/include/pngconf.h b/VisualC/graphics/include/pngconf.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/pngconf.h
@@ -0,0 +1,1508 @@
+
+/* pngconf.h - machine configurable file for libpng
+ *
+ * libpng version 1.2.40 - September 10, 2009
+ * Copyright (c) 1998-2009 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
+
+#define PNG_1_2_X
+
+/*
+ * 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
+#  ifndef PNG_USER_PRIVATEBUILD
+#    define PNG_USER_PRIVATEBUILD
+#  endif
+#include "pngusr.h"
+#endif
+
+/* 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
+ *
+ * If you create a private DLL you need to define in "pngusr.h" the followings:
+ * #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of
+ *        the DLL was built>
+ *  e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons."
+ * #define PNG_USER_DLLFNAME_POSTFIX <two-letter postfix that serve to
+ *        distinguish your DLL from those of the official release. These
+ *        correspond to the trailing letters that come after the version
+ *        number and must match your private DLL name>
+ *  e.g. // private DLL "libpng13gx.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__ */
+
+#ifndef PNG_VERSION_INFO_ONLY
+
+/* End of material added to libpng-1.2.8 */
+
+/* Added at libpng-1.2.19, removed at libpng-1.2.20 because it caused trouble
+   Restored at libpng-1.2.21 */
+#if !defined(PNG_NO_WARN_UNINITIALIZED_ROW) && \
+    !defined(PNG_WARN_UNINITIALIZED_ROW)
+#  define PNG_WARN_UNINITIALIZED_ROW 1
+#endif
+/* End of material added at libpng-1.2.19/1.2.21 */
+
+/* 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 by default in 1.2.0.  You can disable this if you don't need to
+   support PNGs that are embedded in MNG datastreams */
+#if !defined(PNG_1_0_X) && !defined(PNG_NO_MNG_FEATURES)
+#  ifndef PNG_MNG_FEATURES_SUPPORTED
+#    define PNG_MNG_FEATURES_SUPPORTED
+#  endif
+#endif
+
+#ifndef PNG_NO_FLOATING_POINT_SUPPORTED
+#  ifndef PNG_FLOATING_POINT_SUPPORTED
+#    define PNG_FLOATING_POINT_SUPPORTED
+#  endif
+#endif
+
+/* 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 and whether GLOBAL_ARRAYS are allowed.
+ */
+#if defined(__CYGWIN__)
+#  if defined(ALL_STATIC)
+#    if defined(PNG_BUILD_DLL)
+#      undef PNG_BUILD_DLL
+#    endif
+#    if defined(PNG_USE_DLL)
+#      undef PNG_USE_DLL
+#    endif
+#    if defined(PNG_DLL)
+#      undef PNG_DLL
+#    endif
+#    if !defined(PNG_STATIC)
+#      define PNG_STATIC
+#    endif
+#  else
+#    if defined (PNG_BUILD_DLL)
+#      if defined(PNG_STATIC)
+#        undef PNG_STATIC
+#      endif
+#      if defined(PNG_USE_DLL)
+#        undef PNG_USE_DLL
+#      endif
+#      if !defined(PNG_DLL)
+#        define PNG_DLL
+#      endif
+#    else
+#      if defined(PNG_STATIC)
+#        if defined(PNG_USE_DLL)
+#          undef PNG_USE_DLL
+#        endif
+#        if defined(PNG_DLL)
+#          undef PNG_DLL
+#        endif
+#      else
+#        if !defined(PNG_USE_DLL)
+#          define PNG_USE_DLL
+#        endif
+#        if !defined(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
+ */
+
+#if defined(_WIN32_WCE)
+#  include <windows.h>
+   /* Console I/O functions are not supported on WindowsCE */
+#  define PNG_NO_CONSOLE_IO
+   /* abort() may not be supported on some/all Windows CE platforms */
+#  define PNG_ABORT() exit(-1)
+#  ifdef PNG_DEBUG
+#    undef PNG_DEBUG
+#  endif
+#endif
+
+#ifdef PNG_BUILD_DLL
+#  ifndef PNG_CONSOLE_IO_SUPPORTED
+#    ifndef PNG_NO_CONSOLE_IO
+#      define PNG_NO_CONSOLE_IO
+#    endif
+#  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 <stdio.h>
+#      endif
+#    endif
+#  else
+#    if !defined(_WIN32_WCE)
+/* "stdio.h" functions are not supported on WindowsCE */
+#      include <stdio.h>
+#    endif
+#  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) ()
+#  ifndef PNG_TYPECAST_NULL
+#     define PNG_TYPECAST_NULL
+#  endif
+#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) && !defined(_WIN32_WCE)
+#  include <sys/types.h>
+#endif
+
+#if !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 <setjmp.h>
+
+#  ifdef __linux__
+#    ifdef PNG_SAVE_BSD_SOURCE
+#      ifndef _BSD_SOURCE
+#        define _BSD_SOURCE
+#      endif
+#      undef PNG_SAVE_BSD_SOURCE
+#    endif
+#  endif /* __linux__ */
+#endif /* PNG_SETJMP_SUPPORTED */
+
+#ifdef BSD
+#  include <strings.h>
+#else
+#  include <string.h>
+#endif
+
+/* Other defines for things like memory and the like can go here.  */
+#ifdef PNG_INTERNAL
+
+#include <stdlib.h>
+
+/* The functions exported by PNG_EXTERN are PNG_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
+
+/* Other defines specific to compilers can go here.  Try to keep
+ * them inside an appropriate ifdef/endif pair for portability.
+ */
+
+#if defined(PNG_FLOATING_POINT_SUPPORTED)
+#  if defined(MACOS)
+     /* We need to check that <math.h> hasn't already been included earlier
+      * as it seems it doesn't agree with <fp.h>, yet we should really use
+      * <fp.h> if possible.
+      */
+#    if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
+#      include <fp.h>
+#    endif
+#  else
+#    include <math.h>
+#  endif
+#  if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
+     /* Amiga SAS/C: We must include builtin FPU functions when compiling using
+      * MATH=68881
+      */
+#    include <m68881.h>
+#  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 <mem.h>
+#  include <alloc.h>
+#endif
+
+/* I have no idea why is this necessary... */
+#if defined(_MSC_VER) && (defined(WIN32) || defined(_Windows) || \
+    defined(_WINDOWS) || defined(_WIN32) || defined(__WIN32__))
+#  include <malloc.h>
+#endif
+
+/* This controls how fine the dithering gets.  As this allocates
+ * a largish chunk of memory (32K), those who are not as concerned
+ * with dithering quality can decrease some or all of these.
+ */
+#ifndef PNG_DITHER_RED_BITS
+#  define PNG_DITHER_RED_BITS 5
+#endif
+#ifndef PNG_DITHER_GREEN_BITS
+#  define PNG_DITHER_GREEN_BITS 5
+#endif
+#ifndef PNG_DITHER_BLUE_BITS
+#  define PNG_DITHER_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
+
+#endif /* PNG_INTERNAL */
+
+/* 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 here.
+ */
+
+#ifndef PNG_NO_CONST
+#  define PNG_CONST const
+#else
+#  define PNG_CONST
+#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 and #undef, 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 "*TRANSFORMS_NOT_SUPPORTED" or *PNG_NO_*_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 *TRANSFORMS_NOT_SUPPORTED
+ * 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)
+ */
+
+/* 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
+ * will be turned on by default in libpng-1.4.0.
+ */
+
+#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
+#  ifndef PNG_NO_iTXt_SUPPORTED
+#    define PNG_NO_iTXt_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_iTXt
+#    define PNG_NO_READ_iTXt
+#  endif
+#  ifndef PNG_NO_WRITE_iTXt
+#    define PNG_NO_WRITE_iTXt
+#  endif
+#endif
+
+#if !defined(PNG_NO_iTXt_SUPPORTED)
+#  if !defined(PNG_READ_iTXt_SUPPORTED) && !defined(PNG_NO_READ_iTXt)
+#    define PNG_READ_iTXt
+#  endif
+#  if !defined(PNG_WRITE_iTXt_SUPPORTED) && !defined(PNG_NO_WRITE_iTXt)
+#    define PNG_WRITE_iTXt
+#  endif
+#endif
+
+/* The following support, added after version 1.0.0, can be turned off here en
+ * masse by defining PNG_LEGACY_SUPPORTED in case you need binary compatibility
+ * with old applications that require the length of png_struct and png_info
+ * to remain unchanged.
+ */
+
+#ifdef PNG_LEGACY_SUPPORTED
+#  define PNG_NO_FREE_ME
+#  define PNG_NO_READ_UNKNOWN_CHUNKS
+#  define PNG_NO_WRITE_UNKNOWN_CHUNKS
+#  define PNG_NO_HANDLE_AS_UNKNOWN
+#  define PNG_NO_READ_USER_CHUNKS
+#  define PNG_NO_READ_iCCP
+#  define PNG_NO_WRITE_iCCP
+#  define PNG_NO_READ_iTXt
+#  define PNG_NO_WRITE_iTXt
+#  define PNG_NO_READ_sCAL
+#  define PNG_NO_WRITE_sCAL
+#  define PNG_NO_READ_sPLT
+#  define PNG_NO_WRITE_sPLT
+#  define PNG_NO_INFO_IMAGE
+#  define PNG_NO_READ_RGB_TO_GRAY
+#  define PNG_NO_READ_USER_TRANSFORM
+#  define PNG_NO_WRITE_USER_TRANSFORM
+#  define PNG_NO_USER_MEM
+#  define PNG_NO_READ_EMPTY_PLTE
+#  define PNG_NO_MNG_FEATURES
+#  define PNG_NO_FIXED_POINT_SUPPORTED
+#endif
+
+/* 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
+
+#ifndef PNG_NO_FREE_ME
+#  define PNG_FREE_ME_SUPPORTED
+#endif
+
+#ifdef PNG_READ_SUPPORTED
+
+#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_DITHER
+#    define PNG_READ_DITHER_SUPPORTED
+#  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 */
+
+#if !defined(PNG_NO_PROGRESSIVE_READ) && \
+ !defined(PNG_PROGRESSIVE_READ_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 line: */
+
+#define PNG_READ_INTERLACING_SUPPORTED /* required in PNG-compliant decoders */
+
+#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_1_0_X) || defined (PNG_1_2_X)
+/* Deprecated, will be removed from version 2.0.0.
+   Use PNG_MNG_FEATURES_SUPPORTED instead. */
+#ifndef PNG_NO_READ_EMPTY_PLTE
+#  define PNG_READ_EMPTY_PLTE_SUPPORTED
+#endif
+#endif
+
+#endif /* PNG_READ_SUPPORTED */
+
+#ifdef PNG_WRITE_SUPPORTED
+
+# 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)
+#define PNG_WRITE_INTERLACING_SUPPORTED  /* not required for PNG-compliant
+                                            encoders, but can cause trouble
+                                            if left undefined */
+#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_1_0_X) || defined (PNG_1_2_X)
+/* Deprecated, see PNG_MNG_FEATURES_SUPPORTED, above */
+#ifndef PNG_NO_WRITE_EMPTY_PLTE
+#  define PNG_WRITE_EMPTY_PLTE_SUPPORTED
+#endif
+#endif
+
+#endif /* PNG_WRITE_SUPPORTED */
+
+#ifndef PNG_1_0_X
+#  ifndef PNG_NO_ERROR_NUMBERS
+#    define PNG_ERROR_NUMBERS_SUPPORTED
+#  endif
+#endif /* PNG_1_0_X */
+
+#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
+
+#ifndef PNG_NO_STDIO
+#  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
+
+/* PNG_ASSEMBLER_CODE was enabled by default in version 1.2.0
+ * and removed from version 1.2.20.  The following will be removed
+ * from libpng-1.4.0
+*/
+
+#if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_OPTIMIZED_CODE)
+#  ifndef PNG_OPTIMIZED_CODE_SUPPORTED
+#    define PNG_OPTIMIZED_CODE_SUPPORTED
+#  endif
+#endif
+
+#if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_ASSEMBLER_CODE)
+#  ifndef PNG_ASSEMBLER_CODE_SUPPORTED
+#    define PNG_ASSEMBLER_CODE_SUPPORTED
+#  endif
+
+#  if defined(__GNUC__) && defined(__x86_64__) && (__GNUC__ < 4)
+     /* work around 64-bit gcc compiler bugs in gcc-3.x */
+#    if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE)
+#      define PNG_NO_MMX_CODE
+#    endif
+#  endif
+
+#  if defined(__APPLE__)
+#    if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE)
+#      define PNG_NO_MMX_CODE
+#    endif
+#  endif
+
+#  if (defined(__MWERKS__) && ((__MWERKS__ < 0x0900) || macintosh))
+#    if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE)
+#      define PNG_NO_MMX_CODE
+#    endif
+#  endif
+
+#  if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE)
+#    define PNG_MMX_CODE_SUPPORTED
+#  endif
+
+#endif
+/* end of obsolete code to be removed from libpng-1.4.0 */
+
+#if !defined(PNG_1_0_X)
+#if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED)
+#  define PNG_USER_MEM_SUPPORTED
+#endif
+#endif /* PNG_1_0_X */
+
+/* Added at libpng-1.2.6 */
+#if !defined(PNG_1_0_X)
+#ifndef PNG_SET_USER_LIMITS_SUPPORTED
+#if !defined(PNG_NO_SET_USER_LIMITS) && !defined(PNG_SET_USER_LIMITS_SUPPORTED)
+#  define PNG_SET_USER_LIMITS_SUPPORTED
+#endif
+#endif
+#endif /* PNG_1_0_X */
+
+/* Added at libpng-1.0.16 and 1.2.6.  To accept all valid PNGS no matter
+ * how large, set these 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.34 and 1.4.0 */
+#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
+*/
+
+/* Buggy compilers (e.g., gcc 2.7.2.2) need this */
+/*
+#define PNG_NO_POINTER_INDEXING
+*/
+
+/* These functions are turned off by default, as they will be phased out. */
+/*
+#define  PNG_USELESS_TESTS_SUPPORTED
+#define  PNG_CORRECT_PALETTE_SUPPORTED
+*/
+
+/* 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.
+ */
+
+#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
+
+#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
+#  define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
+#  ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
+#    define PNG_UNKNOWN_CHUNKS_SUPPORTED
+#  endif
+#endif
+#if !defined(PNG_NO_READ_USER_CHUNKS) && \
+     defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
+#  define PNG_READ_USER_CHUNKS_SUPPORTED
+#  define PNG_USER_CHUNKS_SUPPORTED
+#  ifdef PNG_NO_READ_UNKNOWN_CHUNKS
+#    undef PNG_NO_READ_UNKNOWN_CHUNKS
+#  endif
+#  ifdef PNG_NO_HANDLE_AS_UNKNOWN
+#    undef PNG_NO_HANDLE_AS_UNKNOWN
+#  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
+
+#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */
+
+#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 reading tIME chunks */
+#if defined(PNG_tIME_SUPPORTED)
+#  if !defined(_WIN32_WCE)
+     /* "time.h" functions are not supported on WindowsCE */
+#    include <time.h>
+#  endif
+#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.  Likewise, for 64-bit systems, you may
+ * want to have unsigned int for png_uint_32 instead of unsigned long.
+ */
+
+typedef unsigned long png_uint_32;
+typedef long png_int_32;
+typedef unsigned short png_uint_16;
+typedef short png_int_16;
+typedef unsigned char png_byte;
+
+/* This is usually size_t.  It is typedef'ed just in case you need it to
+   change (I'm not sure if you will or not, so I thought I'd be safe) */
+#ifdef PNG_SIZE_T
+   typedef PNG_SIZE_T png_size_t;
+#  define png_sizeof(x) png_convert_size(sizeof(x))
+#else
+   typedef size_t png_size_t;
+#  define png_sizeof(x) sizeof(x)
+#endif
+
+/* The following is needed for medium model support.  It cannot be in the
+ * PNG_INTERNAL section.  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 */
+#if defined(FAR)
+#  if defined(M_I86MM)
+#    define USE_FAR_KEYWORD
+#    define FARDATA FAR
+#    include <dos.h>
+#  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
+#if defined(_WIN32_WCE)
+typedef HANDLE                png_FILE_p;
+#else
+typedef FILE                * png_FILE_p;
+#endif
+#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;
+
+#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
+/* SPC -  Is this stuff deprecated? */
+/* It'll be removed as of libpng-1.4.0 - GR-P */
+/* libpng typedefs for types in zlib. If zlib changes
+ * or another compression library is used, then change these.
+ * Eliminates need to change all the source files.
+ */
+typedef charf *         png_zcharp;
+typedef charf * FAR *   png_zcharpp;
+typedef z_stream FAR *  png_zstreamp;
+#endif /* (PNG_1_0_X) || defined(PNG_1_2_X) */
+
+/*
+ * 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 CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib.
+ * When building a static lib, default to no GLOBAL ARRAYS, but allow
+ * command-line override
+ */
+#if defined(__CYGWIN__)
+#  if !defined(PNG_STATIC)
+#    if defined(PNG_USE_GLOBAL_ARRAYS)
+#      undef PNG_USE_GLOBAL_ARRAYS
+#    endif
+#    if !defined(PNG_USE_LOCAL_ARRAYS)
+#      define PNG_USE_LOCAL_ARRAYS
+#    endif
+#  else
+#    if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS)
+#      if defined(PNG_USE_GLOBAL_ARRAYS)
+#        undef PNG_USE_GLOBAL_ARRAYS
+#      endif
+#    endif
+#  endif
+#  if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)
+#    define PNG_USE_LOCAL_ARRAYS
+#  endif
+#endif
+
+/* Do not use global arrays (helps with building DLL's)
+ * They are no longer used in libpng itself, since version 1.0.5c,
+ * but might be required for some pre-1.0.5c applications.
+ */
+#if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)
+#  if defined(PNG_NO_GLOBAL_ARRAYS) || \
+      (defined(__GNUC__) && defined(PNG_DLL)) || defined(_MSC_VER)
+#    define PNG_USE_LOCAL_ARRAYS
+#  else
+#    define PNG_USE_GLOBAL_ARRAYS
+#  endif
+#endif
+
+#if defined(__CYGWIN__)
+#  undef PNGAPI
+#  define PNGAPI __cdecl
+#  undef PNG_IMPEXP
+#  define PNG_IMPEXP
+#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.
+ */
+
+#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
+
+#  if !defined(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
+#           if defined(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
+
+#     if !defined(PNG_IMPEXP)
+#        if defined(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
+#  ifdef PNG_USE_GLOBAL_ARRAYS
+#    ifndef PNG_EXPORT_VAR
+#      define PNG_EXPORT_VAR(type) PNG_DATA_EXPORT
+#    endif
+#  endif
+#endif
+
+#ifndef PNG_EXPORT
+#  define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
+#endif
+
+#ifdef PNG_USE_GLOBAL_ARRAYS
+#  ifndef PNG_EXPORT_VAR
+#    define PNG_EXPORT_VAR(type) extern PNG_IMPEXP type
+#  endif
+#endif
+
+/* User may want to use these so they are not in PNG_INTERNAL. Any library
+ * functions that are passed far data must be model independent.
+ */
+
+#ifndef PNG_ABORT
+#  define PNG_ABORT() abort()
+#endif
+
+#ifdef PNG_SETJMP_SUPPORTED
+#  define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf)
+#else
+#  define png_jmpbuf(png_ptr) \
+   (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED)
+#endif
+
+#if defined(USE_FAR_KEYWORD)  /* memory model independent fns */
+/* 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_snprintf _fsnprintf   /* Added to v 1.2.19 */
+#  define png_strlen  _fstrlen
+#  define png_memcmp  _fmemcmp    /* SJT: added */
+#  define png_memcpy  _fmemcpy
+#  define png_memset  _fmemset
+#else /* use the usual functions */
+#  define CVT_PTR(ptr)         (ptr)
+#  define CVT_PTR_NOCHECK(ptr) (ptr)
+#  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) sprintf(s1,fmt,x1)
+#    define png_snprintf2(s1,n,fmt,x1,x2) sprintf(s1,fmt,x1,x2)
+#    define png_snprintf6(s1,n,fmt,x1,x2,x3,x4,x5,x6) \
+        sprintf(s1,fmt,x1,x2,x3,x4,x5,x6)
+#  endif
+#  define png_strlen  strlen
+#  define png_memcmp  memcmp      /* SJT: added */
+#  define png_memcpy  memcpy
+#  define png_memset  memset
+#endif
+/* End of memory model 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/VisualC/graphics/include/tiff.h b/VisualC/graphics/include/tiff.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/tiff.h
@@ -0,0 +1,647 @@
+/* $Id: tiff.h,v 1.42 2005/12/23 15:10:45 dron Exp $ */
+
+/*
+ * Copyright (c) 1988-1997 Sam Leffler
+ * Copyright (c) 1991-1997 Silicon Graphics, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and 
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that (i) the above copyright notices and this permission notice appear in
+ * all copies of the software and related documentation, and (ii) the names of
+ * Sam Leffler and Silicon Graphics may not be used in any advertising or
+ * publicity relating to the software without the specific, prior written
+ * permission of Sam Leffler and Silicon Graphics.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
+ * 
+ * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
+ * OF THIS SOFTWARE.
+ */
+
+#ifndef _TIFF_
+#define	_TIFF_
+
+#include "tiffconf.h"
+
+/*
+ * Tag Image File Format (TIFF)
+ *
+ * Based on Rev 6.0 from:
+ *    Developer's Desk
+ *    Aldus Corporation
+ *    411 First Ave. South
+ *    Suite 200
+ *    Seattle, WA  98104
+ *    206-622-5500
+ *    
+ *    (http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf)
+ *
+ * For Big TIFF design notes see the following link
+ *    http://gdal.maptools.org/twiki/bin/view/libtiff/BigTIFFDesign
+ */
+#define	TIFF_VERSION	        42
+#define TIFF_BIGTIFF_VERSION    43
+
+#define	TIFF_BIGENDIAN		0x4d4d
+#define	TIFF_LITTLEENDIAN	0x4949
+#define	MDI_LITTLEENDIAN        0x5045
+#define	MDI_BIGENDIAN           0x4550
+/*
+ * Intrinsic data types required by the file format:
+ *
+ * 8-bit quantities	int8/uint8
+ * 16-bit quantities	int16/uint16
+ * 32-bit quantities	int32/uint32
+ * strings		unsigned char*
+ */
+
+#ifndef HAVE_INT8
+typedef	signed char int8;	/* NB: non-ANSI compilers may not grok */
+#endif
+typedef	unsigned char uint8;
+#ifndef HAVE_INT16
+typedef	short int16;
+#endif
+typedef	unsigned short uint16;	/* sizeof (uint16) must == 2 */
+#if SIZEOF_INT == 4
+#ifndef HAVE_INT32
+typedef	int int32;
+#endif
+typedef	unsigned int uint32;	/* sizeof (uint32) must == 4 */
+#elif SIZEOF_LONG == 4
+#ifndef HAVE_INT32
+typedef	long int32;
+#endif
+typedef	unsigned long uint32;	/* sizeof (uint32) must == 4 */
+#endif
+
+/* For TIFFReassignTagToIgnore */
+enum TIFFIgnoreSense /* IGNORE tag table */
+{
+	TIS_STORE,
+	TIS_EXTRACT,
+	TIS_EMPTY
+};
+
+/*
+ * TIFF header.
+ */
+typedef	struct {
+	uint16	tiff_magic;	/* magic number (defines byte order) */
+#define TIFF_MAGIC_SIZE		2
+	uint16	tiff_version;	/* TIFF version number */
+#define TIFF_VERSION_SIZE	2
+	uint32	tiff_diroff;	/* byte offset to first directory */
+#define TIFF_DIROFFSET_SIZE	4
+} TIFFHeader;
+
+
+/*
+ * TIFF Image File Directories are comprised of a table of field
+ * descriptors of the form shown below.  The table is sorted in
+ * ascending order by tag.  The values associated with each entry are
+ * disjoint and may appear anywhere in the file (so long as they are
+ * placed on a word boundary).
+ *
+ * If the value is 4 bytes or less, then it is placed in the offset
+ * field to save space.  If the value is less than 4 bytes, it is
+ * left-justified in the offset field.
+ */
+typedef	struct {
+	uint16		tdir_tag;	/* see below */
+	uint16		tdir_type;	/* data type; see below */
+	uint32		tdir_count;	/* number of items; length in spec */
+	uint32		tdir_offset;	/* byte offset to field data */
+} TIFFDirEntry;
+
+/*
+ * NB: In the comments below,
+ *  - items marked with a + are obsoleted by revision 5.0,
+ *  - items marked with a ! are introduced in revision 6.0.
+ *  - items marked with a % are introduced post revision 6.0.
+ *  - items marked with a $ are obsoleted by revision 6.0.
+ *  - items marked with a & are introduced by Adobe DNG specification.
+ */
+
+/*
+ * Tag data type information.
+ *
+ * Note: RATIONALs are the ratio of two 32-bit integer values.
+ */
+typedef	enum {
+	TIFF_NOTYPE	= 0,	/* placeholder */
+	TIFF_BYTE	= 1,	/* 8-bit unsigned integer */
+	TIFF_ASCII	= 2,	/* 8-bit bytes w/ last byte null */
+	TIFF_SHORT	= 3,	/* 16-bit unsigned integer */
+	TIFF_LONG	= 4,	/* 32-bit unsigned integer */
+	TIFF_RATIONAL	= 5,	/* 64-bit unsigned fraction */
+	TIFF_SBYTE	= 6,	/* !8-bit signed integer */
+	TIFF_UNDEFINED	= 7,	/* !8-bit untyped data */
+	TIFF_SSHORT	= 8,	/* !16-bit signed integer */
+	TIFF_SLONG	= 9,	/* !32-bit signed integer */
+	TIFF_SRATIONAL	= 10,	/* !64-bit signed fraction */
+	TIFF_FLOAT	= 11,	/* !32-bit IEEE floating point */
+	TIFF_DOUBLE	= 12,	/* !64-bit IEEE floating point */
+	TIFF_IFD	= 13	/* %32-bit unsigned integer (offset) */
+} TIFFDataType;
+
+/*
+ * TIFF Tag Definitions.
+ */
+#define	TIFFTAG_SUBFILETYPE		254	/* subfile data descriptor */
+#define	    FILETYPE_REDUCEDIMAGE	0x1	/* reduced resolution version */
+#define	    FILETYPE_PAGE		0x2	/* one page of many */
+#define	    FILETYPE_MASK		0x4	/* transparency mask */
+#define	TIFFTAG_OSUBFILETYPE		255	/* +kind of data in subfile */
+#define	    OFILETYPE_IMAGE		1	/* full resolution image data */
+#define	    OFILETYPE_REDUCEDIMAGE	2	/* reduced size image data */
+#define	    OFILETYPE_PAGE		3	/* one page of many */
+#define	TIFFTAG_IMAGEWIDTH		256	/* image width in pixels */
+#define	TIFFTAG_IMAGELENGTH		257	/* image height in pixels */
+#define	TIFFTAG_BITSPERSAMPLE		258	/* bits per channel (sample) */
+#define	TIFFTAG_COMPRESSION		259	/* data compression technique */
+#define	    COMPRESSION_NONE		1	/* dump mode */
+#define	    COMPRESSION_CCITTRLE	2	/* CCITT modified Huffman RLE */
+#define	    COMPRESSION_CCITTFAX3	3	/* CCITT Group 3 fax encoding */
+#define     COMPRESSION_CCITT_T4        3       /* CCITT T.4 (TIFF 6 name) */
+#define	    COMPRESSION_CCITTFAX4	4	/* CCITT Group 4 fax encoding */
+#define     COMPRESSION_CCITT_T6        4       /* CCITT T.6 (TIFF 6 name) */
+#define	    COMPRESSION_LZW		5       /* Lempel-Ziv  & Welch */
+#define	    COMPRESSION_OJPEG		6	/* !6.0 JPEG */
+#define	    COMPRESSION_JPEG		7	/* %JPEG DCT compression */
+#define	    COMPRESSION_NEXT		32766	/* NeXT 2-bit RLE */
+#define	    COMPRESSION_CCITTRLEW	32771	/* #1 w/ word alignment */
+#define	    COMPRESSION_PACKBITS	32773	/* Macintosh RLE */
+#define	    COMPRESSION_THUNDERSCAN	32809	/* ThunderScan RLE */
+/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT <dkelly at apago.com) */
+#define	    COMPRESSION_IT8CTPAD	32895   /* IT8 CT w/padding */
+#define	    COMPRESSION_IT8LW		32896   /* IT8 Linework RLE */
+#define	    COMPRESSION_IT8MP		32897   /* IT8 Monochrome picture */
+#define	    COMPRESSION_IT8BL		32898   /* IT8 Binary line art */
+/* compression codes 32908-32911 are reserved for Pixar */
+#define     COMPRESSION_PIXARFILM	32908   /* Pixar companded 10bit LZW */
+#define	    COMPRESSION_PIXARLOG	32909   /* Pixar companded 11bit ZIP */
+#define	    COMPRESSION_DEFLATE		32946	/* Deflate compression */
+#define     COMPRESSION_ADOBE_DEFLATE   8       /* Deflate compression,
+						   as recognized by Adobe */
+/* compression code 32947 is reserved for Oceana Matrix <dev at oceana.com> */
+#define     COMPRESSION_DCS             32947   /* Kodak DCS encoding */
+#define	    COMPRESSION_JBIG		34661	/* ISO JBIG */
+#define     COMPRESSION_SGILOG		34676	/* SGI Log Luminance RLE */
+#define     COMPRESSION_SGILOG24	34677	/* SGI Log 24-bit packed */
+#define     COMPRESSION_JP2000          34712   /* Leadtools JPEG2000 */
+#define	TIFFTAG_PHOTOMETRIC		262	/* photometric interpretation */
+#define	    PHOTOMETRIC_MINISWHITE	0	/* min value is white */
+#define	    PHOTOMETRIC_MINISBLACK	1	/* min value is black */
+#define	    PHOTOMETRIC_RGB		2	/* RGB color model */
+#define	    PHOTOMETRIC_PALETTE		3	/* color map indexed */
+#define	    PHOTOMETRIC_MASK		4	/* $holdout mask */
+#define	    PHOTOMETRIC_SEPARATED	5	/* !color separations */
+#define	    PHOTOMETRIC_YCBCR		6	/* !CCIR 601 */
+#define	    PHOTOMETRIC_CIELAB		8	/* !1976 CIE L*a*b* */
+#define	    PHOTOMETRIC_ICCLAB		9	/* ICC L*a*b* [Adobe TIFF Technote 4] */
+#define	    PHOTOMETRIC_ITULAB		10	/* ITU L*a*b* */
+#define     PHOTOMETRIC_LOGL		32844	/* CIE Log2(L) */
+#define     PHOTOMETRIC_LOGLUV		32845	/* CIE Log2(L) (u',v') */
+#define	TIFFTAG_THRESHHOLDING		263	/* +thresholding used on data */
+#define	    THRESHHOLD_BILEVEL		1	/* b&w art scan */
+#define	    THRESHHOLD_HALFTONE		2	/* or dithered scan */
+#define	    THRESHHOLD_ERRORDIFFUSE	3	/* usually floyd-steinberg */
+#define	TIFFTAG_CELLWIDTH		264	/* +dithering matrix width */
+#define	TIFFTAG_CELLLENGTH		265	/* +dithering matrix height */
+#define	TIFFTAG_FILLORDER		266	/* data order within a byte */
+#define	    FILLORDER_MSB2LSB		1	/* most significant -> least */
+#define	    FILLORDER_LSB2MSB		2	/* least significant -> most */
+#define	TIFFTAG_DOCUMENTNAME		269	/* name of doc. image is from */
+#define	TIFFTAG_IMAGEDESCRIPTION	270	/* info about image */
+#define	TIFFTAG_MAKE			271	/* scanner manufacturer name */
+#define	TIFFTAG_MODEL			272	/* scanner model name/number */
+#define	TIFFTAG_STRIPOFFSETS		273	/* offsets to data strips */
+#define	TIFFTAG_ORIENTATION		274	/* +image orientation */
+#define	    ORIENTATION_TOPLEFT		1	/* row 0 top, col 0 lhs */
+#define	    ORIENTATION_TOPRIGHT	2	/* row 0 top, col 0 rhs */
+#define	    ORIENTATION_BOTRIGHT	3	/* row 0 bottom, col 0 rhs */
+#define	    ORIENTATION_BOTLEFT		4	/* row 0 bottom, col 0 lhs */
+#define	    ORIENTATION_LEFTTOP		5	/* row 0 lhs, col 0 top */
+#define	    ORIENTATION_RIGHTTOP	6	/* row 0 rhs, col 0 top */
+#define	    ORIENTATION_RIGHTBOT	7	/* row 0 rhs, col 0 bottom */
+#define	    ORIENTATION_LEFTBOT		8	/* row 0 lhs, col 0 bottom */
+#define	TIFFTAG_SAMPLESPERPIXEL		277	/* samples per pixel */
+#define	TIFFTAG_ROWSPERSTRIP		278	/* rows per strip of data */
+#define	TIFFTAG_STRIPBYTECOUNTS		279	/* bytes counts for strips */
+#define	TIFFTAG_MINSAMPLEVALUE		280	/* +minimum sample value */
+#define	TIFFTAG_MAXSAMPLEVALUE		281	/* +maximum sample value */
+#define	TIFFTAG_XRESOLUTION		282	/* pixels/resolution in x */
+#define	TIFFTAG_YRESOLUTION		283	/* pixels/resolution in y */
+#define	TIFFTAG_PLANARCONFIG		284	/* storage organization */
+#define	    PLANARCONFIG_CONTIG		1	/* single image plane */
+#define	    PLANARCONFIG_SEPARATE	2	/* separate planes of data */
+#define	TIFFTAG_PAGENAME		285	/* page name image is from */
+#define	TIFFTAG_XPOSITION		286	/* x page offset of image lhs */
+#define	TIFFTAG_YPOSITION		287	/* y page offset of image lhs */
+#define	TIFFTAG_FREEOFFSETS		288	/* +byte offset to free block */
+#define	TIFFTAG_FREEBYTECOUNTS		289	/* +sizes of free blocks */
+#define	TIFFTAG_GRAYRESPONSEUNIT	290	/* $gray scale curve accuracy */
+#define	    GRAYRESPONSEUNIT_10S	1	/* tenths of a unit */
+#define	    GRAYRESPONSEUNIT_100S	2	/* hundredths of a unit */
+#define	    GRAYRESPONSEUNIT_1000S	3	/* thousandths of a unit */
+#define	    GRAYRESPONSEUNIT_10000S	4	/* ten-thousandths of a unit */
+#define	    GRAYRESPONSEUNIT_100000S	5	/* hundred-thousandths */
+#define	TIFFTAG_GRAYRESPONSECURVE	291	/* $gray scale response curve */
+#define	TIFFTAG_GROUP3OPTIONS		292	/* 32 flag bits */
+#define	TIFFTAG_T4OPTIONS		292	/* TIFF 6.0 proper name alias */
+#define	    GROUP3OPT_2DENCODING	0x1	/* 2-dimensional coding */
+#define	    GROUP3OPT_UNCOMPRESSED	0x2	/* data not compressed */
+#define	    GROUP3OPT_FILLBITS		0x4	/* fill to byte boundary */
+#define	TIFFTAG_GROUP4OPTIONS		293	/* 32 flag bits */
+#define TIFFTAG_T6OPTIONS               293     /* TIFF 6.0 proper name */
+#define	    GROUP4OPT_UNCOMPRESSED	0x2	/* data not compressed */
+#define	TIFFTAG_RESOLUTIONUNIT		296	/* units of resolutions */
+#define	    RESUNIT_NONE		1	/* no meaningful units */
+#define	    RESUNIT_INCH		2	/* english */
+#define	    RESUNIT_CENTIMETER		3	/* metric */
+#define	TIFFTAG_PAGENUMBER		297	/* page numbers of multi-page */
+#define	TIFFTAG_COLORRESPONSEUNIT	300	/* $color curve accuracy */
+#define	    COLORRESPONSEUNIT_10S	1	/* tenths of a unit */
+#define	    COLORRESPONSEUNIT_100S	2	/* hundredths of a unit */
+#define	    COLORRESPONSEUNIT_1000S	3	/* thousandths of a unit */
+#define	    COLORRESPONSEUNIT_10000S	4	/* ten-thousandths of a unit */
+#define	    COLORRESPONSEUNIT_100000S	5	/* hundred-thousandths */
+#define	TIFFTAG_TRANSFERFUNCTION	301	/* !colorimetry info */
+#define	TIFFTAG_SOFTWARE		305	/* name & release */
+#define	TIFFTAG_DATETIME		306	/* creation date and time */
+#define	TIFFTAG_ARTIST			315	/* creator of image */
+#define	TIFFTAG_HOSTCOMPUTER		316	/* machine where created */
+#define	TIFFTAG_PREDICTOR		317	/* prediction scheme w/ LZW */
+#define     PREDICTOR_NONE		1	/* no prediction scheme used */
+#define     PREDICTOR_HORIZONTAL	2	/* horizontal differencing */
+#define     PREDICTOR_FLOATINGPOINT	3	/* floating point predictor */
+#define	TIFFTAG_WHITEPOINT		318	/* image white point */
+#define	TIFFTAG_PRIMARYCHROMATICITIES	319	/* !primary chromaticities */
+#define	TIFFTAG_COLORMAP		320	/* RGB map for pallette image */
+#define	TIFFTAG_HALFTONEHINTS		321	/* !highlight+shadow info */
+#define	TIFFTAG_TILEWIDTH		322	/* !tile width in pixels */
+#define	TIFFTAG_TILELENGTH		323	/* !tile height in pixels */
+#define TIFFTAG_TILEOFFSETS		324	/* !offsets to data tiles */
+#define TIFFTAG_TILEBYTECOUNTS		325	/* !byte counts for tiles */
+#define	TIFFTAG_BADFAXLINES		326	/* lines w/ wrong pixel count */
+#define	TIFFTAG_CLEANFAXDATA		327	/* regenerated line info */
+#define	    CLEANFAXDATA_CLEAN		0	/* no errors detected */
+#define	    CLEANFAXDATA_REGENERATED	1	/* receiver regenerated lines */
+#define	    CLEANFAXDATA_UNCLEAN	2	/* uncorrected errors exist */
+#define	TIFFTAG_CONSECUTIVEBADFAXLINES	328	/* max consecutive bad lines */
+#define	TIFFTAG_SUBIFD			330	/* subimage descriptors */
+#define	TIFFTAG_INKSET			332	/* !inks in separated image */
+#define	    INKSET_CMYK			1	/* !cyan-magenta-yellow-black color */
+#define	    INKSET_MULTIINK		2	/* !multi-ink or hi-fi color */
+#define	TIFFTAG_INKNAMES		333	/* !ascii names of inks */
+#define	TIFFTAG_NUMBEROFINKS		334	/* !number of inks */
+#define	TIFFTAG_DOTRANGE		336	/* !0% and 100% dot codes */
+#define	TIFFTAG_TARGETPRINTER		337	/* !separation target */
+#define	TIFFTAG_EXTRASAMPLES		338	/* !info about extra samples */
+#define	    EXTRASAMPLE_UNSPECIFIED	0	/* !unspecified data */
+#define	    EXTRASAMPLE_ASSOCALPHA	1	/* !associated alpha data */
+#define	    EXTRASAMPLE_UNASSALPHA	2	/* !unassociated alpha data */
+#define	TIFFTAG_SAMPLEFORMAT		339	/* !data sample format */
+#define	    SAMPLEFORMAT_UINT		1	/* !unsigned integer data */
+#define	    SAMPLEFORMAT_INT		2	/* !signed integer data */
+#define	    SAMPLEFORMAT_IEEEFP		3	/* !IEEE floating point data */
+#define	    SAMPLEFORMAT_VOID		4	/* !untyped data */
+#define	    SAMPLEFORMAT_COMPLEXINT	5	/* !complex signed int */
+#define	    SAMPLEFORMAT_COMPLEXIEEEFP	6	/* !complex ieee floating */
+#define	TIFFTAG_SMINSAMPLEVALUE		340	/* !variable MinSampleValue */
+#define	TIFFTAG_SMAXSAMPLEVALUE		341	/* !variable MaxSampleValue */
+#define	TIFFTAG_CLIPPATH		343	/* %ClipPath
+						   [Adobe TIFF technote 2] */
+#define	TIFFTAG_XCLIPPATHUNITS		344	/* %XClipPathUnits
+						   [Adobe TIFF technote 2] */
+#define	TIFFTAG_YCLIPPATHUNITS		345	/* %YClipPathUnits
+						   [Adobe TIFF technote 2] */
+#define	TIFFTAG_INDEXED			346	/* %Indexed
+						   [Adobe TIFF Technote 3] */
+#define	TIFFTAG_JPEGTABLES		347	/* %JPEG table stream */
+#define	TIFFTAG_OPIPROXY		351	/* %OPI Proxy [Adobe TIFF technote] */
+/*
+ * Tags 512-521 are obsoleted by Technical Note #2 which specifies a
+ * revised JPEG-in-TIFF scheme.
+ */
+#define	TIFFTAG_JPEGPROC		512	/* !JPEG processing algorithm */
+#define	    JPEGPROC_BASELINE		1	/* !baseline sequential */
+#define	    JPEGPROC_LOSSLESS		14	/* !Huffman coded lossless */
+#define	TIFFTAG_JPEGIFOFFSET		513	/* !pointer to SOI marker */
+#define	TIFFTAG_JPEGIFBYTECOUNT		514	/* !JFIF stream length */
+#define	TIFFTAG_JPEGRESTARTINTERVAL	515	/* !restart interval length */
+#define	TIFFTAG_JPEGLOSSLESSPREDICTORS	517	/* !lossless proc predictor */
+#define	TIFFTAG_JPEGPOINTTRANSFORM	518	/* !lossless point transform */
+#define	TIFFTAG_JPEGQTABLES		519	/* !Q matrice offsets */
+#define	TIFFTAG_JPEGDCTABLES		520	/* !DCT table offsets */
+#define	TIFFTAG_JPEGACTABLES		521	/* !AC coefficient offsets */
+#define	TIFFTAG_YCBCRCOEFFICIENTS	529	/* !RGB -> YCbCr transform */
+#define	TIFFTAG_YCBCRSUBSAMPLING	530	/* !YCbCr subsampling factors */
+#define	TIFFTAG_YCBCRPOSITIONING	531	/* !subsample positioning */
+#define	    YCBCRPOSITION_CENTERED	1	/* !as in PostScript Level 2 */
+#define	    YCBCRPOSITION_COSITED	2	/* !as in CCIR 601-1 */
+#define	TIFFTAG_REFERENCEBLACKWHITE	532	/* !colorimetry info */
+#define	TIFFTAG_XMLPACKET		700	/* %XML packet
+						   [Adobe XMP Specification,
+						   January 2004 */
+#define TIFFTAG_OPIIMAGEID		32781	/* %OPI ImageID
+						   [Adobe TIFF technote] */
+/* tags 32952-32956 are private tags registered to Island Graphics */
+#define TIFFTAG_REFPTS			32953	/* image reference points */
+#define TIFFTAG_REGIONTACKPOINT		32954	/* region-xform tack point */
+#define TIFFTAG_REGIONWARPCORNERS	32955	/* warp quadrilateral */
+#define TIFFTAG_REGIONAFFINE		32956	/* affine transformation mat */
+/* tags 32995-32999 are private tags registered to SGI */
+#define	TIFFTAG_MATTEING		32995	/* $use ExtraSamples */
+#define	TIFFTAG_DATATYPE		32996	/* $use SampleFormat */
+#define	TIFFTAG_IMAGEDEPTH		32997	/* z depth of image */
+#define	TIFFTAG_TILEDEPTH		32998	/* z depth/data tile */
+/* tags 33300-33309 are private tags registered to Pixar */
+/*
+ * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH
+ * are set when an image has been cropped out of a larger image.  
+ * They reflect the size of the original uncropped image.
+ * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used
+ * to determine the position of the smaller image in the larger one.
+ */
+#define TIFFTAG_PIXAR_IMAGEFULLWIDTH    33300   /* full image size in x */
+#define TIFFTAG_PIXAR_IMAGEFULLLENGTH   33301   /* full image size in y */
+ /* Tags 33302-33306 are used to identify special image modes and data
+  * used by Pixar's texture formats.
+  */
+#define TIFFTAG_PIXAR_TEXTUREFORMAT	33302	/* texture map format */
+#define TIFFTAG_PIXAR_WRAPMODES		33303	/* s & t wrap modes */
+#define TIFFTAG_PIXAR_FOVCOT		33304	/* cotan(fov) for env. maps */
+#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305
+#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306
+/* tag 33405 is a private tag registered to Eastman Kodak */
+#define TIFFTAG_WRITERSERIALNUMBER      33405   /* device serial number */
+/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */
+#define	TIFFTAG_COPYRIGHT		33432	/* copyright string */
+/* IPTC TAG from RichTIFF specifications */
+#define TIFFTAG_RICHTIFFIPTC		33723
+/* 34016-34029 are reserved for ANSI IT8 TIFF/IT <dkelly at apago.com) */
+#define TIFFTAG_IT8SITE			34016	/* site name */
+#define TIFFTAG_IT8COLORSEQUENCE	34017	/* color seq. [RGB,CMYK,etc] */
+#define TIFFTAG_IT8HEADER		34018	/* DDES Header */
+#define TIFFTAG_IT8RASTERPADDING	34019	/* raster scanline padding */
+#define TIFFTAG_IT8BITSPERRUNLENGTH	34020	/* # of bits in short run */
+#define TIFFTAG_IT8BITSPEREXTENDEDRUNLENGTH 34021/* # of bits in long run */
+#define TIFFTAG_IT8COLORTABLE		34022	/* LW colortable */
+#define TIFFTAG_IT8IMAGECOLORINDICATOR	34023	/* BP/BL image color switch */
+#define TIFFTAG_IT8BKGCOLORINDICATOR	34024	/* BP/BL bg color switch */
+#define TIFFTAG_IT8IMAGECOLORVALUE	34025	/* BP/BL image color value */
+#define TIFFTAG_IT8BKGCOLORVALUE	34026	/* BP/BL bg color value */
+#define TIFFTAG_IT8PIXELINTENSITYRANGE	34027	/* MP pixel intensity value */
+#define TIFFTAG_IT8TRANSPARENCYINDICATOR 34028	/* HC transparency switch */
+#define TIFFTAG_IT8COLORCHARACTERIZATION 34029	/* color character. table */
+#define TIFFTAG_IT8HCUSAGE		34030	/* HC usage indicator */
+#define TIFFTAG_IT8TRAPINDICATOR	34031	/* Trapping indicator
+						   (untrapped=0, trapped=1) */
+#define TIFFTAG_IT8CMYKEQUIVALENT	34032	/* CMYK color equivalents */
+/* tags 34232-34236 are private tags registered to Texas Instruments */
+#define TIFFTAG_FRAMECOUNT              34232   /* Sequence Frame Count */
+/* tag 34377 is private tag registered to Adobe for PhotoShop */
+#define TIFFTAG_PHOTOSHOP		34377 
+/* tags 34665, 34853 and 40965 are documented in EXIF specification */
+#define TIFFTAG_EXIFIFD			34665	/* Pointer to EXIF private directory */
+/* tag 34750 is a private tag registered to Adobe? */
+#define TIFFTAG_ICCPROFILE		34675	/* ICC profile data */
+/* tag 34750 is a private tag registered to Pixel Magic */
+#define	TIFFTAG_JBIGOPTIONS		34750	/* JBIG options */
+#define TIFFTAG_GPSIFD			34853	/* Pointer to GPS private directory */
+/* tags 34908-34914 are private tags registered to SGI */
+#define	TIFFTAG_FAXRECVPARAMS		34908	/* encoded Class 2 ses. parms */
+#define	TIFFTAG_FAXSUBADDRESS		34909	/* received SubAddr string */
+#define	TIFFTAG_FAXRECVTIME		34910	/* receive time (secs) */
+#define	TIFFTAG_FAXDCS			34911	/* encoded fax ses. params, Table 2/T.30 */
+/* tags 37439-37443 are registered to SGI <gregl at sgi.com> */
+#define TIFFTAG_STONITS			37439	/* Sample value to Nits */
+/* tag 34929 is a private tag registered to FedEx */
+#define	TIFFTAG_FEDEX_EDR		34929	/* unknown use */
+#define TIFFTAG_INTEROPERABILITYIFD	40965	/* Pointer to Interoperability private directory */
+/* Adobe Digital Negative (DNG) format tags */
+#define TIFFTAG_DNGVERSION		50706	/* &DNG version number */
+#define TIFFTAG_DNGBACKWARDVERSION	50707	/* &DNG compatibility version */
+#define TIFFTAG_UNIQUECAMERAMODEL	50708	/* &name for the camera model */
+#define TIFFTAG_LOCALIZEDCAMERAMODEL	50709	/* &localized camera model
+						   name */
+#define TIFFTAG_CFAPLANECOLOR		50710	/* &CFAPattern->LinearRaw space
+						   mapping */
+#define TIFFTAG_CFALAYOUT		50711	/* &spatial layout of the CFA */
+#define TIFFTAG_LINEARIZATIONTABLE	50712	/* &lookup table description */
+#define TIFFTAG_BLACKLEVELREPEATDIM	50713	/* &repeat pattern size for
+						   the BlackLevel tag */
+#define TIFFTAG_BLACKLEVEL		50714	/* &zero light encoding level */
+#define TIFFTAG_BLACKLEVELDELTAH	50715	/* &zero light encoding level
+						   differences (columns) */
+#define TIFFTAG_BLACKLEVELDELTAV	50716	/* &zero light encoding level
+						   differences (rows) */
+#define TIFFTAG_WHITELEVEL		50717	/* &fully saturated encoding
+						   level */
+#define TIFFTAG_DEFAULTSCALE		50718	/* &default scale factors */
+#define TIFFTAG_DEFAULTCROPORIGIN	50719	/* &origin of the final image
+						   area */
+#define TIFFTAG_DEFAULTCROPSIZE		50720	/* &size of the final image 
+						   area */
+#define TIFFTAG_COLORMATRIX1		50721	/* &XYZ->reference color space
+						   transformation matrix 1 */
+#define TIFFTAG_COLORMATRIX2		50722	/* &XYZ->reference color space
+						   transformation matrix 2 */
+#define TIFFTAG_CAMERACALIBRATION1	50723	/* &calibration matrix 1 */
+#define TIFFTAG_CAMERACALIBRATION2	50724	/* &calibration matrix 2 */
+#define TIFFTAG_REDUCTIONMATRIX1	50725	/* &dimensionality reduction
+						   matrix 1 */
+#define TIFFTAG_REDUCTIONMATRIX2	50726	/* &dimensionality reduction
+						   matrix 2 */
+#define TIFFTAG_ANALOGBALANCE		50727	/* &gain applied the stored raw
+						   values*/
+#define TIFFTAG_ASSHOTNEUTRAL		50728	/* &selected white balance in
+						   linear reference space */
+#define TIFFTAG_ASSHOTWHITEXY		50729	/* &selected white balance in
+						   x-y chromaticity
+						   coordinates */
+#define TIFFTAG_BASELINEEXPOSURE	50730	/* &how much to move the zero
+						   point */
+#define TIFFTAG_BASELINENOISE		50731	/* &relative noise level */
+#define TIFFTAG_BASELINESHARPNESS	50732	/* &relative amount of
+						   sharpening */
+#define TIFFTAG_BAYERGREENSPLIT		50733	/* &how closely the values of
+						   the green pixels in the
+						   blue/green rows track the
+						   values of the green pixels
+						   in the red/green rows */
+#define TIFFTAG_LINEARRESPONSELIMIT	50734	/* &non-linear encoding range */
+#define TIFFTAG_CAMERASERIALNUMBER	50735	/* &camera's serial number */
+#define TIFFTAG_LENSINFO		50736	/* info about the lens */
+#define TIFFTAG_CHROMABLURRADIUS	50737	/* &chroma blur radius */
+#define TIFFTAG_ANTIALIASSTRENGTH	50738	/* &relative strength of the
+						   camera's anti-alias filter */
+#define TIFFTAG_SHADOWSCALE		50739	/* &used by Adobe Camera Raw */
+#define TIFFTAG_DNGPRIVATEDATA		50740	/* &manufacturer's private data */
+#define TIFFTAG_MAKERNOTESAFETY		50741	/* &whether the EXIF MakerNote
+						   tag is safe to preserve
+						   along with the rest of the
+						   EXIF data */
+#define	TIFFTAG_CALIBRATIONILLUMINANT1	50778	/* &illuminant 1 */
+#define TIFFTAG_CALIBRATIONILLUMINANT2	50779	/* &illuminant 2 */
+#define TIFFTAG_BESTQUALITYSCALE	50780	/* &best quality multiplier */
+#define TIFFTAG_RAWDATAUNIQUEID		50781	/* &unique identifier for
+						   the raw image data */
+#define TIFFTAG_ORIGINALRAWFILENAME	50827	/* &file name of the original
+						   raw file */
+#define TIFFTAG_ORIGINALRAWFILEDATA	50828	/* &contents of the original
+						   raw file */
+#define TIFFTAG_ACTIVEAREA		50829	/* &active (non-masked) pixels
+						   of the sensor */
+#define TIFFTAG_MASKEDAREAS		50830	/* &list of coordinates
+						   of fully masked pixels */
+#define TIFFTAG_ASSHOTICCPROFILE	50831	/* &these two tags used to */
+#define TIFFTAG_ASSHOTPREPROFILEMATRIX	50832	/* map cameras's color space
+						   into ICC profile space */
+#define TIFFTAG_CURRENTICCPROFILE	50833	/* & */
+#define TIFFTAG_CURRENTPREPROFILEMATRIX	50834	/* & */
+/* tag 65535 is an undefined tag used by Eastman Kodak */
+#define TIFFTAG_DCSHUESHIFTVALUES       65535   /* hue shift correction data */
+
+/*
+ * The following are ``pseudo tags'' that can be used to control
+ * codec-specific functionality.  These tags are not written to file.
+ * Note that these values start at 0xffff+1 so that they'll never
+ * collide with Aldus-assigned tags.
+ *
+ * If you want your private pseudo tags ``registered'' (i.e. added to
+ * this file), please post a bug report via the tracking system at
+ * http://www.remotesensing.org/libtiff/bugs.html with the appropriate
+ * C definitions to add.
+ */
+#define	TIFFTAG_FAXMODE			65536	/* Group 3/4 format control */
+#define	    FAXMODE_CLASSIC	0x0000		/* default, include RTC */
+#define	    FAXMODE_NORTC	0x0001		/* no RTC at end of data */
+#define	    FAXMODE_NOEOL	0x0002		/* no EOL code at end of row */
+#define	    FAXMODE_BYTEALIGN	0x0004		/* byte align row */
+#define	    FAXMODE_WORDALIGN	0x0008		/* word align row */
+#define	    FAXMODE_CLASSF	FAXMODE_NORTC	/* TIFF Class F */
+#define	TIFFTAG_JPEGQUALITY		65537	/* Compression quality level */
+/* Note: quality level is on the IJG 0-100 scale.  Default value is 75 */
+#define	TIFFTAG_JPEGCOLORMODE		65538	/* Auto RGB<=>YCbCr convert? */
+#define	    JPEGCOLORMODE_RAW	0x0000		/* no conversion (default) */
+#define	    JPEGCOLORMODE_RGB	0x0001		/* do auto conversion */
+#define	TIFFTAG_JPEGTABLESMODE		65539	/* What to put in JPEGTables */
+#define	    JPEGTABLESMODE_QUANT 0x0001		/* include quantization tbls */
+#define	    JPEGTABLESMODE_HUFF	0x0002		/* include Huffman tbls */
+/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */
+#define	TIFFTAG_FAXFILLFUNC		65540	/* G3/G4 fill function */
+#define	TIFFTAG_PIXARLOGDATAFMT		65549	/* PixarLogCodec I/O data sz */
+#define	    PIXARLOGDATAFMT_8BIT	0	/* regular u_char samples */
+#define	    PIXARLOGDATAFMT_8BITABGR	1	/* ABGR-order u_chars */
+#define	    PIXARLOGDATAFMT_11BITLOG	2	/* 11-bit log-encoded (raw) */
+#define	    PIXARLOGDATAFMT_12BITPICIO	3	/* as per PICIO (1.0==2048) */
+#define	    PIXARLOGDATAFMT_16BIT	4	/* signed short samples */
+#define	    PIXARLOGDATAFMT_FLOAT	5	/* IEEE float samples */
+/* 65550-65556 are allocated to Oceana Matrix <dev at oceana.com> */
+#define TIFFTAG_DCSIMAGERTYPE           65550   /* imager model & filter */
+#define     DCSIMAGERMODEL_M3           0       /* M3 chip (1280 x 1024) */
+#define     DCSIMAGERMODEL_M5           1       /* M5 chip (1536 x 1024) */
+#define     DCSIMAGERMODEL_M6           2       /* M6 chip (3072 x 2048) */
+#define     DCSIMAGERFILTER_IR          0       /* infrared filter */
+#define     DCSIMAGERFILTER_MONO        1       /* monochrome filter */
+#define     DCSIMAGERFILTER_CFA         2       /* color filter array */
+#define     DCSIMAGERFILTER_OTHER       3       /* other filter */
+#define TIFFTAG_DCSINTERPMODE           65551   /* interpolation mode */
+#define     DCSINTERPMODE_NORMAL        0x0     /* whole image, default */
+#define     DCSINTERPMODE_PREVIEW       0x1     /* preview of image (384x256) */
+#define TIFFTAG_DCSBALANCEARRAY         65552   /* color balance values */
+#define TIFFTAG_DCSCORRECTMATRIX        65553   /* color correction values */
+#define TIFFTAG_DCSGAMMA                65554   /* gamma value */
+#define TIFFTAG_DCSTOESHOULDERPTS       65555   /* toe & shoulder points */
+#define TIFFTAG_DCSCALIBRATIONFD        65556   /* calibration file desc */
+/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */
+#define	TIFFTAG_ZIPQUALITY		65557	/* compression quality level */
+#define	TIFFTAG_PIXARLOGQUALITY		65558	/* PixarLog uses same scale */
+/* 65559 is allocated to Oceana Matrix <dev at oceana.com> */
+#define TIFFTAG_DCSCLIPRECTANGLE	65559	/* area of image to acquire */
+#define TIFFTAG_SGILOGDATAFMT		65560	/* SGILog user data format */
+#define     SGILOGDATAFMT_FLOAT		0	/* IEEE float samples */
+#define     SGILOGDATAFMT_16BIT		1	/* 16-bit samples */
+#define     SGILOGDATAFMT_RAW		2	/* uninterpreted data */
+#define     SGILOGDATAFMT_8BIT		3	/* 8-bit RGB monitor values */
+#define TIFFTAG_SGILOGENCODE		65561 /* SGILog data encoding control*/
+#define     SGILOGENCODE_NODITHER	0     /* do not dither encoded values*/
+#define     SGILOGENCODE_RANDITHER	1     /* randomly dither encd values */
+
+/*
+ * EXIF tags
+ */
+#define EXIFTAG_EXPOSURETIME		33434	/* Exposure time */
+#define EXIFTAG_FNUMBER			33437	/* F number */
+#define EXIFTAG_EXPOSUREPROGRAM		34850	/* Exposure program */
+#define EXIFTAG_SPECTRALSENSITIVITY	34852	/* Spectral sensitivity */
+#define EXIFTAG_ISOSPEEDRATINGS		34855	/* ISO speed rating */
+#define EXIFTAG_OECF			34856	/* Optoelectric conversion
+						   factor */
+#define EXIFTAG_EXIFVERSION		36864	/* Exif version */
+#define EXIFTAG_DATETIMEORIGINAL	36867	/* Date and time of original
+						   data generation */
+#define EXIFTAG_DATETIMEDIGITIZED	36868	/* Date and time of digital
+						   data generation */
+#define EXIFTAG_COMPONENTSCONFIGURATION	37121	/* Meaning of each component */
+#define EXIFTAG_COMPRESSEDBITSPERPIXEL	37122	/* Image compression mode */
+#define EXIFTAG_SHUTTERSPEEDVALUE	37377	/* Shutter speed */
+#define EXIFTAG_APERTUREVALUE		37378	/* Aperture */
+#define EXIFTAG_BRIGHTNESSVALUE		37379	/* Brightness */
+#define EXIFTAG_EXPOSUREBIASVALUE	37380	/* Exposure bias */
+#define EXIFTAG_MAXAPERTUREVALUE	37381	/* Maximum lens aperture */
+#define EXIFTAG_SUBJECTDISTANCE		37382	/* Subject distance */
+#define EXIFTAG_METERINGMODE		37383	/* Metering mode */
+#define EXIFTAG_LIGHTSOURCE		37384	/* Light source */
+#define EXIFTAG_FLASH			37385	/* Flash */
+#define EXIFTAG_FOCALLENGTH		37386	/* Lens focal length */
+#define EXIFTAG_SUBJECTAREA		37396	/* Subject area */
+#define EXIFTAG_MAKERNOTE		37500	/* Manufacturer notes */
+#define EXIFTAG_USERCOMMENT		37510	/* User comments */
+#define EXIFTAG_SUBSECTIME		37520	/* DateTime subseconds */
+#define EXIFTAG_SUBSECTIMEORIGINAL	37521	/* DateTimeOriginal subseconds */
+#define EXIFTAG_SUBSECTIMEDIGITIZED	37522	/* DateTimeDigitized subseconds */
+#define EXIFTAG_FLASHPIXVERSION		40960	/* Supported Flashpix version */
+#define EXIFTAG_COLORSPACE		40961	/* Color space information */
+#define EXIFTAG_PIXELXDIMENSION		40962	/* Valid image width */
+#define EXIFTAG_PIXELYDIMENSION		40963	/* Valid image height */
+#define EXIFTAG_RELATEDSOUNDFILE	40964	/* Related audio file */
+#define EXIFTAG_FLASHENERGY		41483	/* Flash energy */
+#define EXIFTAG_SPATIALFREQUENCYRESPONSE 41484	/* Spatial frequency response */
+#define EXIFTAG_FOCALPLANEXRESOLUTION	41486	/* Focal plane X resolution */
+#define EXIFTAG_FOCALPLANEYRESOLUTION	41487	/* Focal plane Y resolution */
+#define EXIFTAG_FOCALPLANERESOLUTIONUNIT 41488	/* Focal plane resolution unit */
+#define EXIFTAG_SUBJECTLOCATION		41492	/* Subject location */
+#define EXIFTAG_EXPOSUREINDEX		41493	/* Exposure index */
+#define EXIFTAG_SENSINGMETHOD		41495	/* Sensing method */
+#define EXIFTAG_FILESOURCE		41728	/* File source */
+#define EXIFTAG_SCENETYPE		41729	/* Scene type */
+#define EXIFTAG_CFAPATTERN		41730	/* CFA pattern */
+#define EXIFTAG_CUSTOMRENDERED		41985	/* Custom image processing */
+#define EXIFTAG_EXPOSUREMODE		41986	/* Exposure mode */
+#define EXIFTAG_WHITEBALANCE		41987	/* White balance */
+#define EXIFTAG_DIGITALZOOMRATIO	41988	/* Digital zoom ratio */
+#define EXIFTAG_FOCALLENGTHIN35MMFILM	41989	/* Focal length in 35 mm film */
+#define EXIFTAG_SCENECAPTURETYPE	41990	/* Scene capture type */
+#define EXIFTAG_GAINCONTROL		41991	/* Gain control */
+#define EXIFTAG_CONTRAST		41992	/* Contrast */
+#define EXIFTAG_SATURATION		41993	/* Saturation */
+#define EXIFTAG_SHARPNESS		41994	/* Sharpness */
+#define EXIFTAG_DEVICESETTINGDESCRIPTION 41995	/* Device settings description */
+#define EXIFTAG_SUBJECTDISTANCERANGE	41996	/* Subject distance range */
+#define EXIFTAG_GAINCONTROL		41991	/* Gain control */
+#define EXIFTAG_GAINCONTROL		41991	/* Gain control */
+#define EXIFTAG_IMAGEUNIQUEID		42016	/* Unique image ID */
+
+#endif /* _TIFF_ */
+
+/* vim: set ts=8 sts=8 sw=8 noet: */
diff --git a/VisualC/graphics/include/tiffconf.h b/VisualC/graphics/include/tiffconf.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/tiffconf.h
@@ -0,0 +1,101 @@
+/* libtiff/tiffconf.h.  Generated by configure.  */
+/*
+  Configuration defines for installed libtiff.
+  This file maintained for backward compatibility. Do not use definitions
+  from this file in your programs.
+*/
+
+#ifndef _TIFFCONF_
+#define _TIFFCONF_
+
+/* Define to 1 if the system has the type `int16'. */
+/* #undef HAVE_INT16 */
+
+/* Define to 1 if the system has the type `int32'. */
+/* #undef HAVE_INT32 */
+
+/* Define to 1 if the system has the type `int8'. */
+/* #undef HAVE_INT8 */
+
+/* The size of a `int', as computed by sizeof. */
+#define SIZEOF_INT 4
+
+/* The size of a `long', as computed by sizeof. */
+#define SIZEOF_LONG 4
+
+/* Compatibility stuff. */
+
+/* Define as 0 or 1 according to the floating point format suported by the
+   machine */
+#define HAVE_IEEEFP 1
+
+/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */
+#define HOST_FILLORDER FILLORDER_LSB2MSB
+
+/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian
+   (Intel) */
+#define HOST_BIGENDIAN 0
+
+/* Support CCITT Group 3 & 4 algorithms */
+#define CCITT_SUPPORT 1
+
+/* Support JPEG compression (requires IJG JPEG library) */
+#define JPEG_SUPPORT 1
+
+/* Support LogLuv high dynamic range encoding */
+#define LOGLUV_SUPPORT 1
+
+/* Support LZW algorithm */
+#define LZW_SUPPORT 1
+
+/* Support NeXT 2-bit RLE algorithm */
+#define NEXT_SUPPORT 1
+
+/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation
+   fails with unpatched IJG JPEG library) */
+/* #undef OJPEG_SUPPORT */
+
+/* Support Macintosh PackBits algorithm */
+#define PACKBITS_SUPPORT 1
+
+/* Support Pixar log-format algorithm (requires Zlib) */
+#define PIXARLOG_SUPPORT 1
+
+/* Support ThunderScan 4-bit RLE algorithm */
+#define THUNDER_SUPPORT 1
+
+/* Support Deflate compression */
+#define ZIP_SUPPORT 1
+
+/* Support strip chopping (whether or not to convert single-strip uncompressed
+   images to mutiple strips of ~8Kb to reduce memory usage) */
+#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP
+
+/* Enable SubIFD tag (330) support */
+#define SUBIFD_SUPPORT 1
+
+/* Treat extra sample as alpha (default enabled). The RGBA interface will
+   treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many
+   packages produce RGBA files but don't mark the alpha properly. */
+#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1
+
+/* Pick up YCbCr subsampling info from the JPEG data stream to support files
+   lacking the tag (default enabled). */
+#define CHECK_JPEG_YCBCR_SUBSAMPLING 1
+
+/* Support MS MDI magic number files as TIFF */
+#define MDI_SUPPORT 1
+
+/*
+ * Feature support definitions.
+ * XXX: These macros are obsoleted. Don't use them in your apps!
+ * Macros stays here for backward compatibility and should be always defined.
+ */
+#define COLORIMETRY_SUPPORT
+#define YCBCR_SUPPORT
+#define CMYK_SUPPORT
+#define ICC_SUPPORT
+#define PHOTOSHOP_SUPPORT
+#define IPTC_SUPPORT
+
+#endif /* _TIFFCONF_ */
diff --git a/VisualC/graphics/include/tiffio.h b/VisualC/graphics/include/tiffio.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/tiffio.h
@@ -0,0 +1,515 @@
+/* $Id: tiffio.h,v 1.50 2006/03/21 16:37:51 dron Exp $ */
+
+/*
+ * Copyright (c) 1988-1997 Sam Leffler
+ * Copyright (c) 1991-1997 Silicon Graphics, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and 
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that (i) the above copyright notices and this permission notice appear in
+ * all copies of the software and related documentation, and (ii) the names of
+ * Sam Leffler and Silicon Graphics may not be used in any advertising or
+ * publicity relating to the software without the specific, prior written
+ * permission of Sam Leffler and Silicon Graphics.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
+ * 
+ * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#ifndef _TIFFIO_
+#define	_TIFFIO_
+
+/*
+ * TIFF I/O Library Definitions.
+ */
+#include "tiff.h"
+#include "tiffvers.h"
+
+/*
+ * TIFF is defined as an incomplete type to hide the
+ * library's internal data structures from clients.
+ */
+typedef	struct tiff TIFF;
+
+/*
+ * The following typedefs define the intrinsic size of
+ * data types used in the *exported* interfaces.  These
+ * definitions depend on the proper definition of types
+ * in tiff.h.  Note also that the varargs interface used
+ * to pass tag types and values uses the types defined in
+ * tiff.h directly.
+ *
+ * NB: ttag_t is unsigned int and not unsigned short because
+ *     ANSI C requires that the type before the ellipsis be a
+ *     promoted type (i.e. one of int, unsigned int, pointer,
+ *     or double) and because we defined pseudo-tags that are
+ *     outside the range of legal Aldus-assigned tags.
+ * NB: tsize_t is int32 and not uint32 because some functions
+ *     return -1.
+ * NB: toff_t is not off_t for many reasons; TIFFs max out at
+ *     32-bit file offsets being the most important, and to ensure
+ *     that it is unsigned, rather than signed.
+ */
+typedef	uint32 ttag_t;		/* directory tag */
+typedef	uint16 tdir_t;		/* directory index */
+typedef	uint16 tsample_t;	/* sample number */
+typedef	uint32 tstrip_t;	/* strip number */
+typedef uint32 ttile_t;		/* tile number */
+typedef	int32 tsize_t;		/* i/o size in bytes */
+typedef	void* tdata_t;		/* image data ref */
+typedef	uint32 toff_t;		/* file offset */
+
+#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32))
+#define __WIN32__
+#endif
+
+/*
+ * On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c
+ * or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c).
+ *
+ * By default tif_unix.c is assumed.
+ */
+
+#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows)
+#  if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO)
+#    define AVOID_WIN32_FILEIO
+#  endif
+#endif
+
+#if defined(USE_WIN32_FILEIO)
+# define VC_EXTRALEAN
+# include <windows.h>
+# ifdef __WIN32__
+DECLARE_HANDLE(thandle_t);	/* Win32 file handle */
+# else
+typedef	HFILE thandle_t;	/* client data handle */
+# endif /* __WIN32__ */
+#else
+typedef	void* thandle_t;	/* client data handle */
+#endif /* USE_WIN32_FILEIO */
+
+#ifndef NULL
+# define NULL	(void *)0
+#endif
+
+/*
+ * Flags to pass to TIFFPrintDirectory to control
+ * printing of data structures that are potentially
+ * very large.   Bit-or these flags to enable printing
+ * multiple items.
+ */
+#define	TIFFPRINT_NONE		0x0		/* no extra info */
+#define	TIFFPRINT_STRIPS	0x1		/* strips/tiles info */
+#define	TIFFPRINT_CURVES	0x2		/* color/gray response curves */
+#define	TIFFPRINT_COLORMAP	0x4		/* colormap */
+#define	TIFFPRINT_JPEGQTABLES	0x100		/* JPEG Q matrices */
+#define	TIFFPRINT_JPEGACTABLES	0x200		/* JPEG AC tables */
+#define	TIFFPRINT_JPEGDCTABLES	0x200		/* JPEG DC tables */
+
+/* 
+ * Colour conversion stuff
+ */
+
+/* reference white */
+#define D65_X0 (95.0470F)
+#define D65_Y0 (100.0F)
+#define D65_Z0 (108.8827F)
+
+#define D50_X0 (96.4250F)
+#define D50_Y0 (100.0F)
+#define D50_Z0 (82.4680F)
+
+/* Structure for holding information about a display device. */
+
+typedef	unsigned char TIFFRGBValue;		/* 8-bit samples */
+
+typedef struct {
+	float d_mat[3][3]; 		/* XYZ -> luminance matrix */
+	float d_YCR;			/* Light o/p for reference white */
+	float d_YCG;
+	float d_YCB;
+	uint32 d_Vrwr;			/* Pixel values for ref. white */
+	uint32 d_Vrwg;
+	uint32 d_Vrwb;
+	float d_Y0R;			/* Residual light for black pixel */
+	float d_Y0G;
+	float d_Y0B;
+	float d_gammaR;			/* Gamma values for the three guns */
+	float d_gammaG;
+	float d_gammaB;
+} TIFFDisplay;
+
+typedef struct {				/* YCbCr->RGB support */
+	TIFFRGBValue* clamptab;			/* range clamping table */
+	int*	Cr_r_tab;
+	int*	Cb_b_tab;
+	int32*	Cr_g_tab;
+	int32*	Cb_g_tab;
+        int32*  Y_tab;
+} TIFFYCbCrToRGB;
+
+typedef struct {				/* CIE Lab 1976->RGB support */
+	int	range;				/* Size of conversion table */
+#define CIELABTORGB_TABLE_RANGE 1500
+	float	rstep, gstep, bstep;
+	float	X0, Y0, Z0;			/* Reference white point */
+	TIFFDisplay display;
+	float	Yr2r[CIELABTORGB_TABLE_RANGE + 1];  /* Conversion of Yr to r */
+	float	Yg2g[CIELABTORGB_TABLE_RANGE + 1];  /* Conversion of Yg to g */
+	float	Yb2b[CIELABTORGB_TABLE_RANGE + 1];  /* Conversion of Yb to b */
+} TIFFCIELabToRGB;
+
+/*
+ * RGBA-style image support.
+ */
+typedef struct _TIFFRGBAImage TIFFRGBAImage;
+/*
+ * The image reading and conversion routines invoke
+ * ``put routines'' to copy/image/whatever tiles of
+ * raw image data.  A default set of routines are 
+ * provided to convert/copy raw image data to 8-bit
+ * packed ABGR format rasters.  Applications can supply
+ * alternate routines that unpack the data into a
+ * different format or, for example, unpack the data
+ * and draw the unpacked raster on the display.
+ */
+typedef void (*tileContigRoutine)
+    (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32,
+	unsigned char*);
+typedef void (*tileSeparateRoutine)
+    (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32,
+	unsigned char*, unsigned char*, unsigned char*, unsigned char*);
+/*
+ * RGBA-reader state.
+ */
+struct _TIFFRGBAImage {
+	TIFF*	tif;				/* image handle */
+	int	stoponerr;			/* stop on read error */
+	int	isContig;			/* data is packed/separate */
+	int	alpha;				/* type of alpha data present */
+	uint32	width;				/* image width */
+	uint32	height;				/* image height */
+	uint16	bitspersample;			/* image bits/sample */
+	uint16	samplesperpixel;		/* image samples/pixel */
+	uint16	orientation;			/* image orientation */
+	uint16	req_orientation;		/* requested orientation */
+	uint16	photometric;			/* image photometric interp */
+	uint16*	redcmap;			/* colormap pallete */
+	uint16*	greencmap;
+	uint16*	bluecmap;
+						/* get image data routine */
+	int	(*get)(TIFFRGBAImage*, uint32*, uint32, uint32);
+	union {
+	    void (*any)(TIFFRGBAImage*);
+	    tileContigRoutine	contig;
+	    tileSeparateRoutine	separate;
+	} put;					/* put decoded strip/tile */
+	TIFFRGBValue* Map;			/* sample mapping array */
+	uint32** BWmap;				/* black&white map */
+	uint32** PALmap;			/* palette image map */
+	TIFFYCbCrToRGB* ycbcr;			/* YCbCr conversion state */
+        TIFFCIELabToRGB* cielab;		/* CIE L*a*b conversion state */
+
+        int	row_offset;
+        int     col_offset;
+};
+
+/*
+ * Macros for extracting components from the
+ * packed ABGR form returned by TIFFReadRGBAImage.
+ */
+#define	TIFFGetR(abgr)	((abgr) & 0xff)
+#define	TIFFGetG(abgr)	(((abgr) >> 8) & 0xff)
+#define	TIFFGetB(abgr)	(((abgr) >> 16) & 0xff)
+#define	TIFFGetA(abgr)	(((abgr) >> 24) & 0xff)
+
+/*
+ * A CODEC is a software package that implements decoding,
+ * encoding, or decoding+encoding of a compression algorithm.
+ * The library provides a collection of builtin codecs.
+ * More codecs may be registered through calls to the library
+ * and/or the builtin implementations may be overridden.
+ */
+typedef	int (*TIFFInitMethod)(TIFF*, int);
+typedef struct {
+	char*		name;
+	uint16		scheme;
+	TIFFInitMethod	init;
+} TIFFCodec;
+
+#include <stdio.h>
+#include <stdarg.h>
+
+/* share internal LogLuv conversion routines? */
+#ifndef LOGLUV_PUBLIC
+#define LOGLUV_PUBLIC		1
+#endif
+
+#if defined(c_plusplus) || defined(__cplusplus)
+extern "C" {
+#endif
+typedef	void (*TIFFErrorHandler)(const char*, const char*, va_list);
+typedef	void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list);
+typedef	tsize_t (*TIFFReadWriteProc)(thandle_t, tdata_t, tsize_t);
+typedef	toff_t (*TIFFSeekProc)(thandle_t, toff_t, int);
+typedef	int (*TIFFCloseProc)(thandle_t);
+typedef	toff_t (*TIFFSizeProc)(thandle_t);
+typedef	int (*TIFFMapFileProc)(thandle_t, tdata_t*, toff_t*);
+typedef	void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t);
+typedef	void (*TIFFExtendProc)(TIFF*); 
+
+extern	const char* TIFFGetVersion(void);
+
+extern	const TIFFCodec* TIFFFindCODEC(uint16);
+extern	TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod);
+extern	void TIFFUnRegisterCODEC(TIFFCodec*);
+extern  int TIFFIsCODECConfigured(uint16);
+extern	TIFFCodec* TIFFGetConfiguredCODECs(void);
+
+/*
+ * Auxiliary functions.
+ */
+
+extern	tdata_t _TIFFmalloc(tsize_t);
+extern	tdata_t _TIFFrealloc(tdata_t, tsize_t);
+extern	void _TIFFmemset(tdata_t, int, tsize_t);
+extern	void _TIFFmemcpy(tdata_t, const tdata_t, tsize_t);
+extern	int _TIFFmemcmp(const tdata_t, const tdata_t, tsize_t);
+extern	void _TIFFfree(tdata_t);
+
+/*
+** Stuff, related to tag handling and creating custom tags.
+*/
+extern  int  TIFFGetTagListCount( TIFF * );
+extern  ttag_t TIFFGetTagListEntry( TIFF *, int tag_index );
+    
+#define	TIFF_ANY	TIFF_NOTYPE	/* for field descriptor searching */
+#define	TIFF_VARIABLE	-1		/* marker for variable length tags */
+#define	TIFF_SPP	-2		/* marker for SamplesPerPixel tags */
+#define	TIFF_VARIABLE2	-3		/* marker for uint32 var-length tags */
+
+#define FIELD_CUSTOM    65    
+
+typedef	struct {
+	ttag_t	field_tag;		/* field's tag */
+	short	field_readcount;	/* read count/TIFF_VARIABLE/TIFF_SPP */
+	short	field_writecount;	/* write count/TIFF_VARIABLE */
+	TIFFDataType field_type;	/* type of associated data */
+        unsigned short field_bit;	/* bit in fieldsset bit vector */
+	unsigned char field_oktochange;	/* if true, can change while writing */
+	unsigned char field_passcount;	/* if true, pass dir count on set */
+	char	*field_name;		/* ASCII name */
+} TIFFFieldInfo;
+
+typedef struct _TIFFTagValue {
+    const TIFFFieldInfo  *info;
+    int             count;
+    void           *value;
+} TIFFTagValue;
+
+extern	void TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], int);
+extern	const TIFFFieldInfo* TIFFFindFieldInfo(TIFF*, ttag_t, TIFFDataType);
+extern  const TIFFFieldInfo* TIFFFindFieldInfoByName(TIFF* , const char *,
+						     TIFFDataType);
+extern	const TIFFFieldInfo* TIFFFieldWithTag(TIFF*, ttag_t);
+extern	const TIFFFieldInfo* TIFFFieldWithName(TIFF*, const char *);
+
+typedef	int (*TIFFVSetMethod)(TIFF*, ttag_t, va_list);
+typedef	int (*TIFFVGetMethod)(TIFF*, ttag_t, va_list);
+typedef	void (*TIFFPrintMethod)(TIFF*, FILE*, long);
+    
+typedef struct {
+    TIFFVSetMethod	vsetfield;	/* tag set routine */
+    TIFFVGetMethod	vgetfield;	/* tag get routine */
+    TIFFPrintMethod	printdir;	/* directory print routine */
+} TIFFTagMethods;
+        
+extern  TIFFTagMethods *TIFFAccessTagMethods( TIFF * );
+extern  void *TIFFGetClientInfo( TIFF *, const char * );
+extern  void TIFFSetClientInfo( TIFF *, void *, const char * );
+
+extern	void TIFFCleanup(TIFF*);
+extern	void TIFFClose(TIFF*);
+extern	int TIFFFlush(TIFF*);
+extern	int TIFFFlushData(TIFF*);
+extern	int TIFFGetField(TIFF*, ttag_t, ...);
+extern	int TIFFVGetField(TIFF*, ttag_t, va_list);
+extern	int TIFFGetFieldDefaulted(TIFF*, ttag_t, ...);
+extern	int TIFFVGetFieldDefaulted(TIFF*, ttag_t, va_list);
+extern	int TIFFReadDirectory(TIFF*);
+extern	int TIFFReadCustomDirectory(TIFF*, toff_t, const TIFFFieldInfo[],
+				    size_t);
+extern	int TIFFReadEXIFDirectory(TIFF*, toff_t);
+extern	tsize_t TIFFScanlineSize(TIFF*);
+extern	tsize_t TIFFRasterScanlineSize(TIFF*);
+extern	tsize_t TIFFStripSize(TIFF*);
+extern	tsize_t TIFFRawStripSize(TIFF*, tstrip_t);
+extern	tsize_t TIFFVStripSize(TIFF*, uint32);
+extern	tsize_t TIFFTileRowSize(TIFF*);
+extern	tsize_t TIFFTileSize(TIFF*);
+extern	tsize_t TIFFVTileSize(TIFF*, uint32);
+extern	uint32 TIFFDefaultStripSize(TIFF*, uint32);
+extern	void TIFFDefaultTileSize(TIFF*, uint32*, uint32*);
+extern	int TIFFFileno(TIFF*);
+extern  int TIFFSetFileno(TIFF*, int);
+extern  thandle_t TIFFClientdata(TIFF*);
+extern  thandle_t TIFFSetClientdata(TIFF*, thandle_t);
+extern	int TIFFGetMode(TIFF*);
+extern	int TIFFSetMode(TIFF*, int);
+extern	int TIFFIsTiled(TIFF*);
+extern	int TIFFIsByteSwapped(TIFF*);
+extern	int TIFFIsUpSampled(TIFF*);
+extern	int TIFFIsMSB2LSB(TIFF*);
+extern	int TIFFIsBigEndian(TIFF*);
+extern	TIFFReadWriteProc TIFFGetReadProc(TIFF*);
+extern	TIFFReadWriteProc TIFFGetWriteProc(TIFF*);
+extern	TIFFSeekProc TIFFGetSeekProc(TIFF*);
+extern	TIFFCloseProc TIFFGetCloseProc(TIFF*);
+extern	TIFFSizeProc TIFFGetSizeProc(TIFF*);
+extern	TIFFMapFileProc TIFFGetMapFileProc(TIFF*);
+extern	TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*);
+extern	uint32 TIFFCurrentRow(TIFF*);
+extern	tdir_t TIFFCurrentDirectory(TIFF*);
+extern	tdir_t TIFFNumberOfDirectories(TIFF*);
+extern	uint32 TIFFCurrentDirOffset(TIFF*);
+extern	tstrip_t TIFFCurrentStrip(TIFF*);
+extern	ttile_t TIFFCurrentTile(TIFF*);
+extern	int TIFFReadBufferSetup(TIFF*, tdata_t, tsize_t);
+extern	int TIFFWriteBufferSetup(TIFF*, tdata_t, tsize_t);
+extern	int TIFFSetupStrips(TIFF *);
+extern  int TIFFWriteCheck(TIFF*, int, const char *);
+extern	void TIFFFreeDirectory(TIFF*);
+extern  int TIFFCreateDirectory(TIFF*);
+extern	int TIFFLastDirectory(TIFF*);
+extern	int TIFFSetDirectory(TIFF*, tdir_t);
+extern	int TIFFSetSubDirectory(TIFF*, uint32);
+extern	int TIFFUnlinkDirectory(TIFF*, tdir_t);
+extern	int TIFFSetField(TIFF*, ttag_t, ...);
+extern	int TIFFVSetField(TIFF*, ttag_t, va_list);
+extern	int TIFFWriteDirectory(TIFF *);
+extern	int TIFFCheckpointDirectory(TIFF *);
+extern	int TIFFRewriteDirectory(TIFF *);
+extern	int TIFFReassignTagToIgnore(enum TIFFIgnoreSense, int);
+
+#if defined(c_plusplus) || defined(__cplusplus)
+extern	void TIFFPrintDirectory(TIFF*, FILE*, long = 0);
+extern	int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t = 0);
+extern	int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t = 0);
+extern	int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0);
+extern	int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*,
+				      int = ORIENTATION_BOTLEFT, int = 0);
+#else
+extern	void TIFFPrintDirectory(TIFF*, FILE*, long);
+extern	int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t);
+extern	int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t);
+extern	int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int);
+extern	int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int);
+#endif
+
+extern	int TIFFReadRGBAStrip(TIFF*, tstrip_t, uint32 * );
+extern	int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * );
+extern	int TIFFRGBAImageOK(TIFF*, char [1024]);
+extern	int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]);
+extern	int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32);
+extern	void TIFFRGBAImageEnd(TIFFRGBAImage*);
+extern	TIFF* TIFFOpen(const char*, const char*);
+# ifdef __WIN32__
+extern	TIFF* TIFFOpenW(const wchar_t*, const char*);
+# endif /* __WIN32__ */
+extern	TIFF* TIFFFdOpen(int, const char*, const char*);
+extern	TIFF* TIFFClientOpen(const char*, const char*,
+	    thandle_t,
+	    TIFFReadWriteProc, TIFFReadWriteProc,
+	    TIFFSeekProc, TIFFCloseProc,
+	    TIFFSizeProc,
+	    TIFFMapFileProc, TIFFUnmapFileProc);
+extern	const char* TIFFFileName(TIFF*);
+extern	const char* TIFFSetFileName(TIFF*, const char *);
+extern	void TIFFError(const char*, const char*, ...);
+extern	void TIFFErrorExt(thandle_t, const char*, const char*, ...);
+extern	void TIFFWarning(const char*, const char*, ...);
+extern	void TIFFWarningExt(thandle_t, const char*, const char*, ...);
+extern	TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler);
+extern	TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt);
+extern	TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler);
+extern	TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt);
+extern	TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc);
+extern	ttile_t TIFFComputeTile(TIFF*, uint32, uint32, uint32, tsample_t);
+extern	int TIFFCheckTile(TIFF*, uint32, uint32, uint32, tsample_t);
+extern	ttile_t TIFFNumberOfTiles(TIFF*);
+extern	tsize_t TIFFReadTile(TIFF*,
+	    tdata_t, uint32, uint32, uint32, tsample_t);
+extern	tsize_t TIFFWriteTile(TIFF*,
+	    tdata_t, uint32, uint32, uint32, tsample_t);
+extern	tstrip_t TIFFComputeStrip(TIFF*, uint32, tsample_t);
+extern	tstrip_t TIFFNumberOfStrips(TIFF*);
+extern	tsize_t TIFFReadEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
+extern	tsize_t TIFFReadRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
+extern	tsize_t TIFFReadEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t);
+extern	tsize_t TIFFReadRawTile(TIFF*, ttile_t, tdata_t, tsize_t);
+extern	tsize_t TIFFWriteEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
+extern	tsize_t TIFFWriteRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t);
+extern	tsize_t TIFFWriteEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t);
+extern	tsize_t TIFFWriteRawTile(TIFF*, ttile_t, tdata_t, tsize_t);
+extern	int TIFFDataWidth(TIFFDataType);    /* table of tag datatype widths */
+extern	void TIFFSetWriteOffset(TIFF*, toff_t);
+extern	void TIFFSwabShort(uint16*);
+extern	void TIFFSwabLong(uint32*);
+extern	void TIFFSwabDouble(double*);
+extern	void TIFFSwabArrayOfShort(uint16*, unsigned long);
+extern	void TIFFSwabArrayOfTriples(uint8*, unsigned long);
+extern	void TIFFSwabArrayOfLong(uint32*, unsigned long);
+extern	void TIFFSwabArrayOfDouble(double*, unsigned long);
+extern	void TIFFReverseBits(unsigned char *, unsigned long);
+extern	const unsigned char* TIFFGetBitRevTable(int);
+
+#ifdef LOGLUV_PUBLIC
+#define U_NEU		0.210526316
+#define V_NEU		0.473684211
+#define UVSCALE		410.
+extern	double LogL16toY(int);
+extern	double LogL10toY(int);
+extern	void XYZtoRGB24(float*, uint8*);
+extern	int uv_decode(double*, double*, int);
+extern	void LogLuv24toXYZ(uint32, float*);
+extern	void LogLuv32toXYZ(uint32, float*);
+#if defined(c_plusplus) || defined(__cplusplus)
+extern	int LogL16fromY(double, int = SGILOGENCODE_NODITHER);
+extern	int LogL10fromY(double, int = SGILOGENCODE_NODITHER);
+extern	int uv_encode(double, double, int = SGILOGENCODE_NODITHER);
+extern	uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER);
+extern	uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER);
+#else
+extern	int LogL16fromY(double, int);
+extern	int LogL10fromY(double, int);
+extern	int uv_encode(double, double, int);
+extern	uint32 LogLuv24fromXYZ(float*, int);
+extern	uint32 LogLuv32fromXYZ(float*, int);
+#endif
+#endif /* LOGLUV_PUBLIC */
+    
+extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, TIFFDisplay *, float*);
+extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32,
+			    float *, float *, float *);
+extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float,
+			 uint32 *, uint32 *, uint32 *);
+
+extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*);
+extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32,
+			   uint32 *, uint32 *, uint32 *);
+
+#if defined(c_plusplus) || defined(__cplusplus)
+}
+#endif
+
+#endif /* _TIFFIO_ */
+
+/* vim: set ts=8 sts=8 sw=8 noet: */
diff --git a/VisualC/graphics/include/tiffvers.h b/VisualC/graphics/include/tiffvers.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/tiffvers.h
@@ -0,0 +1,9 @@
+#define TIFFLIB_VERSION_STR "LIBTIFF, Version 3.8.2\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc."
+/*
+ * This define can be used in code that requires
+ * compilation-related definitions specific to a
+ * version or versions of the library.  Runtime
+ * version checking should be done based on the
+ * string returned by TIFFGetVersion.
+ */
+#define TIFFLIB_VERSION 20060323
diff --git a/VisualC/graphics/include/zconf.h b/VisualC/graphics/include/zconf.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/zconf.h
@@ -0,0 +1,332 @@
+/* zconf.h -- configuration of the zlib compression library
+ * Copyright (C) 1995-2005 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.
+ */
+#ifdef Z_PREFIX
+#  define deflateInit_          z_deflateInit_
+#  define deflate               z_deflate
+#  define deflateEnd            z_deflateEnd
+#  define inflateInit_          z_inflateInit_
+#  define inflate               z_inflate
+#  define inflateEnd            z_inflateEnd
+#  define deflateInit2_         z_deflateInit2_
+#  define deflateSetDictionary  z_deflateSetDictionary
+#  define deflateCopy           z_deflateCopy
+#  define deflateReset          z_deflateReset
+#  define deflateParams         z_deflateParams
+#  define deflateBound          z_deflateBound
+#  define deflatePrime          z_deflatePrime
+#  define inflateInit2_         z_inflateInit2_
+#  define inflateSetDictionary  z_inflateSetDictionary
+#  define inflateSync           z_inflateSync
+#  define inflateSyncPoint      z_inflateSyncPoint
+#  define inflateCopy           z_inflateCopy
+#  define inflateReset          z_inflateReset
+#  define inflateBack           z_inflateBack
+#  define inflateBackEnd        z_inflateBackEnd
+#  define compress              z_compress
+#  define compress2             z_compress2
+#  define compressBound         z_compressBound
+#  define uncompress            z_uncompress
+#  define adler32               z_adler32
+#  define crc32                 z_crc32
+#  define get_crc_table         z_get_crc_table
+#  define zError                z_zError
+
+#  define alloc_func            z_alloc_func
+#  define free_func             z_free_func
+#  define in_func               z_in_func
+#  define out_func              z_out_func
+#  define Byte                  z_Byte
+#  define uInt                  z_uInt
+#  define uLong                 z_uLong
+#  define Bytef                 z_Bytef
+#  define charf                 z_charf
+#  define intf                  z_intf
+#  define uIntf                 z_uIntf
+#  define uLongf                z_uLongf
+#  define voidpf                z_voidpf
+#  define voidp                 z_voidp
+#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 <windows.h>
+     /* 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
+
+#if 0           /* HAVE_UNISTD_H -- this line is updated by ./configure */
+#  include <sys/types.h> /* for off_t */
+#  include <unistd.h>    /* for SEEK_* and off_t */
+#  ifdef VMS
+#    include <unixio.h>   /* for off_t */
+#  endif
+#  define z_off_t off_t
+#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(__OS400__)
+#  define NO_vsnprintf
+#endif
+
+#if defined(__MVS__)
+#  define NO_vsnprintf
+#  ifdef FAR
+#    undef FAR
+#  endif
+#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/VisualC/graphics/include/zlib.h b/VisualC/graphics/include/zlib.h
new file mode 100755
--- /dev/null
+++ b/VisualC/graphics/include/zlib.h
@@ -0,0 +1,1357 @@
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+  version 1.2.3, July 18th, 2005
+
+  Copyright (C) 1995-2005 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 at gzip.org          madler at 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.3"
+#define ZLIB_VERNUM 0x1230
+
+/*
+     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 (for example if an input file is mmap'ed), 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 /* will be removed, use Z_SYNC_FLUSH instead */
+#define Z_SYNC_FLUSH    2
+#define Z_FULL_FLUSH    3
+#define Z_FINISH        4
+#define Z_BLOCK         5
+/* 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,
+   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 accumualte 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.
+
+    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 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.  msg is set to null if there is no error
+   message. inflateInit does not perform any decompression apart from reading
+   the zlib header if present: this will be done by inflate().  (So next_in and
+   avail_in may be modified, but next_out and avail_out are unchanged.)
+*/
+
+
+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, or Z_BLOCK. 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.
+
+    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 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() will decompress and check either zlib-wrapped or gzip-wrapped
+  deflate data.  The header type is detected automatically.  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
+  if next_in or next_out was 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 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 a parameter is invalid (such as an invalid
+   method). 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 in
+   deflate or deflate2. 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 (such as NULL dictionary) 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 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 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().  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 -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_STREAM_ERROR if a parameter is invalid (such as a null strm). msg
+   is set to null if there is no error message.  inflateInit2 does not perform
+   any decompression apart from reading the zlib header if present: this will
+   be done by inflate(). (So next_in and avail_in may be modified, but next_out
+   and avail_out are unchanged.)
+*/
+
+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 (such as NULL dictionary) 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 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 NULL).
+*/
+
+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.
+
+      inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the 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 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 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 easily 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.
+     This function can be used to compress a whole file at once if the
+   input file is mmap'ed.
+     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 compressed buffer.
+     This function can be used to decompress a whole file at once if the
+   input file is mmap'ed.
+
+     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.
+*/
+
+
+typedef voidp gzFile;
+
+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", or 'R' for run-length encoding
+   as in "wb1R". (See the description of deflateInit2 for more information
+   about the strategy parameter.)
+
+     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 or if there was
+   insufficient memory to allocate the (de)compression state; errno
+   can be checked to distinguish the two cases (if errno is zero, the
+   zlib error is Z_MEM_ERROR).  */
+
+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 (in 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 gzdopen(dup(fd), mode).
+     gzdopen returns NULL if there was insufficient memory to allocate
+   the (de)compression state.
+*/
+
+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.
+     gzread returns the number of uncompressed bytes actually read (0 for
+   end of file, -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 actually written
+   (0 in case of error).
+*/
+
+ZEXTERN int ZEXPORTVA   gzprintf OF((gzFile file, const char *format, ...));
+/*
+     Converts, formats, and writes the args to the compressed file under
+   control of the format string, as in fprintf. gzprintf returns the number of
+   uncompressed bytes actually written (0 in case of error).  The number of
+   uncompressed bytes written is limited to 4095. The caller should assure that
+   this limit is not exceeded. If it is exceeded, then gzprintf() will return
+   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.
+*/
+
+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.  The string is then terminated with a null
+   character.
+      gzgets returns buf, or Z_NULL in case of error.
+*/
+
+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 again later.
+   Only one character of push-back is allowed.  gzungetc() returns the
+   character pushed, or -1 on failure.  gzungetc() will fail if a
+   character has been pushed but not read yet, or if c is -1. 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 returns Z_OK if
+   the flush parameter is Z_FINISH and all output could be flushed.
+     gzflush should be called only when strictly necessary because it can
+   degrade compression.
+*/
+
+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.
+
+   gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
+*/
+
+ZEXTERN int ZEXPORT gzeof OF((gzFile file));
+/*
+     Returns 1 when EOF has previously been detected reading the given
+   input stream, otherwise zero.
+*/
+
+ZEXTERN int ZEXPORT gzdirect OF((gzFile file));
+/*
+     Returns 1 if file is being read directly without decompression, otherwise
+   zero.
+*/
+
+ZEXTERN int ZEXPORT    gzclose OF((gzFile file));
+/*
+     Flushes all pending output if necessary, closes the compressed file
+   and deallocates all the (de)compression state. The return value is the zlib
+   error number (see function gzerror below).
+*/
+
+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.
+*/
+
+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 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 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))
+
+
+#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL)
+    struct internal_state {int dummy;}; /* hack for buggy compilers */
+#endif
+
+ZEXTERN const char   * ZEXPORT zError           OF((int));
+ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp z));
+ZEXTERN const uLongf * ZEXPORT get_crc_table    OF((void));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ZLIB_H */
diff --git a/VisualC/graphics/lib/jpeg.dll b/VisualC/graphics/lib/jpeg.dll
new file mode 100755
index 0000000000000000000000000000000000000000..333954d9a3f1e4fbfff74567358b752c556a1a90
GIT binary patch
literal 113664
zc%1CLeRx#WwJ<&>IgkMd&j_O(y;F^C>@_X5Oig>466++BnM7a^2m`1Dt<_XpZ7s|Q
z3i;w>AiJ9hQ9;ova$9;Yx7CUjF(BgPqfCO-8zR+-piL!hXPnfIXdwh--nG^~XJ!(D
zdVlwMpZA|1k7mx<pKGnX_S$Q$z4kudn_CRI27^I{|5GW0q17P%ISrrvuO9xt at QOVb
z8g@?j!<DVl>_1$&;I6xu=ij&NCqG#By?gV&|Ggjo_$U7S+waU at 7Wi@g-9OGRyRkC=
z-k;oY=QWciO)SvbnCmteW=na7JAc$QQ*XE5aN(CPkaDIQ>LmaO{?9QOZZks${@()c
zhJtE(&Jl1+8vNp)Nc`Q*9Ky?B$QSkSk6DzUpB~9@>;mjeGR)5T6eN?9AuNAN{{P2+
z*ZA*T>4)Dt>LdXW;yS9I+u*-z?)aYnd+<CB6Iui<42{x=a!!LGe9baZu>W#M*eVg)
zhPCIEb6#`%^5yv4gMY#!^YwrA*xsF at J)#lN%3y-u{}`jayG1#oVZVmM at 5X}f&U=3H
zeS at GS(9|#<es`Tyu5?U*{{Mgf*Z%p~Un=MFiw)tcs)N0LC;y at uo<jE<)P(GKW7)+#
zHyHMRl<E;BC~<j09W<rBh3~NsY9vEs96n-OYNr{perSkAAemR4>F%g*f%X^jfJr?o
zRr;^3Oa;sfQvqY_(FY_0B(aX0{I>^B1TNG82rRZAscvD>(49lKEbVSL8CsyhyXv9s
z*e{_?=pY#WB^LF6J3`?962Xm~gyv$e!=H2q-%587c)BGR4m=Z^l1il#zlzO9h>4l)
z;lyTw54*r-?!tz#^3ZDPN*$6e4Qn`@Q|2&~>F#L3ysG%32PH#`_y_Nc7FI%W?lbWk
zBd;>6!{3dR)6DkUcwWS5{VqI4oEC(E=drnv$chV6=7!TNrF0p5gfbV4GK=*x{EAl0
z;VVq6tiWgw!(SOPVvhne><YHR6e%a+hH0hu1E%Fh1ECrzx8g&jybOOr{;wE9d;gWP
zj<6-`DxB(2ZtchRaCM8l+uqA&uUpI(th<X+KZulD?tp at QG3ajHebD<mw at y<#O}8w)
zwMx*YD*o2 at B|~WES2TXAikD}-Lvw$r<X)hJ3A^QG4^;q5jc1#2R7=(2+}c5VFEE at 2
z59BWv`4)-Z?#jGT>346b>d1m0`3uNx=2b>sX$h7797au9_aE4jE8n5^!-KNseZ*P7
z!`0c)60;Sg<{HH_uP_I at mEbQ8lx#l%RDL9h+&pYZ<hO8jF_Zx$767HOmJINGN0jh5
zj^F<rcNrli%H|r`eN at 6cR+YdX^!{^USgoS3lsU0W9sYsRxEy$sGAvl4(!%Cid9K!0
z2E at iHET%5e;Wu%Yl^)Ej$_V^=%hIa&AHFAvE?jyS at rh6?LtmXgZOEJfAe)7+Lm~l)
z3wXIjjoqmZ<*c{?xpy7)w4}gDhyeS|wTLwCv@&-xF&T$J*)`q+dB}(<UviduIu#gH
zJ8i at rG~RhST8juR!N-ZGTQdBj4q92&$1s2_Fa#j6nlqfnjn|j}stdSFgX;cE&PO8x
z6p(@X6&6+l6YmU=gjapc2CGtk4(%eIPvg(s#wy-Ih|IJ?wg4oP57dzX8g-TB4*&VO
z%oT*!N5BYwV<pp&z0$)&nE*wFdGRd(MMgeA`<BmY-)jnX2V7%zGxH1CTx^C}DX69H
zK&C~RrG~2+5UtY!Qw3R?I5D>D3<$tywfT~d^Ce&g816hT4Ep?8emk!;278rYeR}@z
z3KPzmr^Phmk6^LF9>@OsbJ+ff`(vV~`(ysdT!a!N6?dDMzrY0T5~IwQx%*>@8dp2>
zfp0r_?jB&%6u_|x88<z1sAvDrvg8BRVx=<l%Sw?Tsma+eHQs~lo{<ltnfO9TZNcO$
zc>%~*pBH&TiO<S+98lEFgeFY$zztbl!F*8%5z(UGV at HmFdD-naZD{r*rho)=ZSMu~
zV3b}Uu#dwuWj%;6t1z;;@`yPOZTg?l&>q$D^8aYbmLFe8%a3NByDyt?ew}d85sW)^
z)sp=$GymNtbtQ1%WvrbW*dd(=^N9!&Ga+C;qx}T1A}_VE5*shgXC?W(w1AZq at Y1VU
z$<<IOwqz1i@)@ZVCgAwSBF1#$n!^azYpi5CUo#a6)36u2aU1!@9otau^!mTXU9co5
zjo*{R$nQozW3xf-$OW;30T5`e3c#fWlRavOte(xS-G?ne^K%Q>yy8%4N*$V at th){u
zO?QmQ<TZl)1{^ty;;XZad6UdNs5Ji;UwujL9ppJo;=n>BMqX-SC4c}d`MJzJz)H+3
zE=2fut|1Ul1ipfO`38V4bFDzBB5XsWk#_(=+1a#BYxlv~!Ib}-_9NPODKE)Os~z&K
z{!2$TF*VbKOFeyk?OQ2#3`(f(<O1%FsqVoAj*?<!!+aF^0LdDwgfiMcy?&1ko+N**
zps%uP&E at dk)bJ+twI&~4s#!x+ynRW$y-o8>$YkJ9W+{l>31W)5DsWxi_&kChUvn0E
zx+qd=xeOsIDQ2a>1`(%iVivAI&bh_$$FZc>w7&s|RssmVND%xHTdBs`H&WiVgM at EI
zks$FVoEo*ZNC~dyhDeEtbdnNMS%6Pzy{N~PwZc(iTyEoQhG^_ya4e$>>v<KBmw0c)
z`UdNXT4Ty#RYSC<oZ&BExBd%h>d5-kiFimgVo?qys)k^th|dM!#r$X(d{S^}#J!Q&
z35Z>ft?-{2@$VA|By(@$YY?#;nD at z9tZH*GT)PzKOp3cV@~Ulorpy}&Ot!kf40Lce
zAueSFz-cDF+^9UapJXFQLzk7yEl`#8IZHumUOxA3MCi*x(Gmy8PMCLN-7h$F>D$Jg
zX69bcOD!|p>y_r45Fqb16zDgY930_e-mS{oZ_sQI;Jc0XZeIT}Ef5A4TnUIO&3%{y
zwR{`7dn at 1g2obdENxrOz`I-PYN7Yt#a#=2auq@(k5mad6^QSXkJxnd7xrvHzYwOQr
z?nZu#kv+8<nbqCGtJa4sR_@;H2x7`Ih5K5#yGeT6eq_enikdQBwUL)S73Ecp+|q)n
zi3?bdOMSl{u-#tbIKBEq$Gf#((&e3Rn~RtI%*Gdlwo$(F(&TDpcD!5nmlSr@;;5>x
z`&kMI?%wDSh;8^+F=;~H?R?EW63G&xD(P;sQh+R~qgx%1BdwHmZy`SeRZA@?psIJ9
z#%l2`m=43}Hl|$0*tMUeQs|2?G;|_wh{*)QQMI1?wz9=$HrE6e#d{h3zs9K6(F#AN
z1_XbE`W}1xW9WtwVWBU#(t|NlUVwd3hq{t4T>@>a+eylr5<~- at uN%<bUNi`$- at 6o2
z%jJEj=D#e76~PEP9O-Z7J(#lFFb<OUvvtVN5kt>q1=SI!Z2p&mYFwo~R;W(vFA89U
zMP?nXRHcm8me|d}a3GGOVw$tEM{T8Q3|L}9?MDc~jDIBvsH#=dA+c{TBYt2&Q-rM(
z>%Oocu*zKlptc7G4M`;#v>Nei)AJGOi3*G9)08Gy7nF5Br*-oMURx1NDUCH)=Kc!%
zkyoz>Cgvr+Ro&8XDpdzEXxwi6;XW(qHJifrUPwlf`E+}*#}9c1l$)ldD4FY~avw-O
z3pYKXJlCd%zX_`E$$xNnk{xP0HLh*wio&*Fcir~g2zKJPfZp2rZ1jL&rxt>&^;E=#
zme1}(@qYy^<w8OCLOMI4%db|$)~l*fh+R!ev6+-&6Dq|uM$PD30 at 4JvDUC1sfKM^4
z)$s376N<EI18>q4^Vmzo$sePB44UyEXy)1S5 at tiNyY?&UsXJ<?>_$_sDkM+X-31SY
zZLF(9J!P-^d%~p6N5ZpePtz3Wq37|Frx+F)X^(;YMNWdn`)S0?ZR(DHCA}=*c(S*I
z1~M5)$pfh1-Oa~?A)3QIGHP}nBWQNqV`8PSzIn_|rGjx=guNkOQYv+*!{*wLL$1_y
zI8-a9qm{z*U~N;w7ZLM9=MUctnnNBc4#-ma`iD82eJ~(-tUbYS!Onr<z at -2sggNnI
zV$x`RDQ#bVI{UHZPW9}#6&I!oUNrpTs_L}9W<O!?X8b7j at B&R*Bh<!KHEp$}{v2@?
z%hX;Os`FTCA5B$StzMwIJ&_ztdKsOXky2w0{g}iLt%<O7iyyM|)%FFE9Fc33L|O4;
z7C&MIE=9G%5Ng@}c?+IFP&Q+6)^z3^NPw-z28Ph=&~d|G#EH8Kn5(#gbhn at 6;CnG@
z%e6h+Ri^8^%v>6A3c#EKFsJCiDLQb94#Eo at mBn?viA_LBDMQJlX&Fi#3lfe*G(Hp6
zXIF9VSoAL)LI3$<QRzISFaLaH1?gE6{*8bC97v9)A<0eikIo7ISC~LR@;QpfuRcq_
zj>)#OMvx6%5ij5LKcJoWe?q&@Rd6)h#)n`v=TmfT*G1ZHuCDEBa`|2;BYb~G)c;Da
zR)@x|$V(LjtuVcL4$b2U*rd<copvLD6cJ+uI!El))2UQ<M=Q- at ki#gyQ2E|2lE-Pu
ziG<Ju635cZeIlCWANf4~0#_MYP-FnPrW*|z&B53@%aB>Smkz_A$pzB at fz}cfQk9D-
zD;m2)<opnG>M7?gEoY|4 at nX(W%2}f2OcOa@`X%Hze~CHwXgQZajy;U{?k}^hG(0c;
zZd}uPD{72Q8?9(gJJlhj_Sk-vObBG2XEeF6UHjdk{qCe+b=7p^eibbYX}^l54lLDS
z5UXk{WrL7cJGBa3+V4S~2-QrDrU}B)`ecuUMLHTrB!w-vRK+LbBI%NMSLBlOZnoz4
zBGK+Di*GwiZZsGVu-kzjBDC$q=33CAf`Rav(Ut47RI$1FYPg^y?f>kC6_3}L7V?0(
zGI0f~K;Ke{R(mlFtc9(#viodoF;;UNTKx{KQ(5Cr>yJ7t!&1qsOm#)fZ0}C5$82_!
zTmrRDYLZZsi&}%7W at wY#4ND4400}CCz?d*-SSWTY2pml|XZ5G~2L#9Q<;9<-Z#ANa
zCnVpmo|QwzU=-jhSML+Xs?qVXAD(Kasi}!<sAgO%t$M1Ts)TtZ61S~CC*#UaO=eVA
zumiLY+QrMr5rK*7Dkt>z31TRKCzaq;nnO5D$6rP{7yAS1LaX7utu;sRJ!s|ZICjCh
zUX?_3{E2;EXiX;8M*cBl>-AXvI5BY7%h!vNxJearoFz7=0c+Fel}WTuEsLsDF=omx
ztU2h9Lwb<_%%~-rFcI}~9h}3T;7|x11#x{9X{9voK&~r(5&I$z)Q~4A_T;9!B|5}<
zJ{bdfz>bi&AJMyVK(Rg7>%tnTw}*;@!blWCWolnehEzn1SneldQNbSGlNK~tRCx0Y
z6&^1Nj|L{Y<TGaoW|O_wo<jEAr$Hd=LqH&}J(KQScryw2*q_dfCbmgXCT9$oO3zn#
zECeo2gQXi#Iw+?>c*p0%P-yz$Zrr`qgtXhpK{hP5qVOO^nJiDaAT>GSlBt}_%5sHc
zcBKD1a0X^KdMuV&xywSZQTens4`87e7_`>|w at ZfWFw=h_9}n~LD$FiI3rqBY#d3Mo
z5Y^*>(fYn<m+T9)ER0}Tun3wOORZm9B?qp@?x7d?cJ#YhPB=~Zfk`852R@!wKI|4f
z>>!lDHVF)otG&7ft0SB1)Xf6?B52Yv<liz9>O}Ks|Gc)|@k%hx{8z&I?))0rrm)1<
z!xJp=N%&!<nui-?w!L?^O&0{V0;E35Y%6Q0T2%i$m0Ntk33`wED!F;Q?oP)=b*q6q
zMzQ(#V5%^`1GSu!>D?XhVcwf_Xq6&aCDr;eW;^7)Unn+~gtdS0Qqdaj0RiOXthH*p
z27t3zi&B5aBJ--V8m;>ce*_mhAjy9uo+g1T8FVjjBNi|HhG_X_$B6ze2gz|=N at v&1
z{v_+*EzgJsf6D9818wi-&U_Hep`tZ>JX6tI#K)t*$epbH5?@s&{Bvc^a>!C2vb2OO
zkFkv$okk at NZ?f*M++$%XD&O2=WvY`NY)mbqhkT}1NEx%3&n<=pt!_4Z1beY}tHXv`
z3n($wEv!*Ai5mTZx)1Fqc3&?h{R`MMAjPp|_DC5m6C>I*>*|~{t<I5ls;Nko#fcW$
zuUy0;VujNjVv<mtzz)e();*5ku0tQP{X|=TF0pU9jqJ&Cuo~Bq`)?h3=hM0QnCqup
z)Is^v<gR<kO#U}?6dHm at l;)=lWFK*N(%#G0uOnyMO-BAx6N|E&iqIGM)9K7T$V!Ss
z@;kJImpFNe?c_(n-arm}o6RfZCHeN=lPBo?IGb0&s|NWx>_v*ILlf)n;oiYnV8~y^
zAHzi5{&Xi<<73DxELu7%7_R$(QFaPUZ+FtM4q;U`pxc(OJ4n1;`!D=4a*RFKejP>x
z)sAb$AGQuPtF#*#JvEaInx`hw$TtkpFag9GjY{%0a+KspN{UDp-DHZCOs6%tgp9P4
zA4N)>MtaBLH0YRCi1|afp}z>BkJIMo7xW<}xN(&8^idXWwYc+a+5!ElCQs7#`wO(s
z;<3<>cR=Q{5_Kp?X(V`YMorUa6mTw|W95~`3P+o=F|6zg2YZ>v?4Q79nvknY&AQqI
z%I<&RS`m%?0!@mv)W{)4=q^cbkTg~P$UP!KC_6B at Yi$yLMB6X|l{O?hMHW|4lgjKN
zn^6!@Y!-mSJf`@~+BO$-Tqyeg67^p!35Osm)|@6ELbKnHkzGm<+evw>5s!t8_7VG^
z0#H!iYPot32?biiGW*(MZPmeonGI#jvbH^q5sz at 6wxT|*-j<=j9ht`kBU_I5o*l8X
zEhl~p2+cc9c+CX#;y=;%?*vqt#r1rE#RDl_U)T0?#Wq{SX%c8=I?G7k3L|aRj^dvY
z>+=@kp|v!QMHEEfLVog3Uv at F@lHZ+jSz+zXEV~gG5t*+QWDWc&<;ovX243_s=`_8x
zzZXhFE at GSL7W<b1b+JjY8kEGBQ6VJzR3?Jpe!Yb at ri_}agavp06DZk0=o|W{k-xY9
zoA_hQzZRC(5*)(|VCo`s+%--#hi<WagXR{4#u^^TKMG=?ZbHKYHhiePOe<x at Hz-_)
zaOCL4)d!{<!ElfuL&1!B)3f#!K~HiPgUn*VjsHZ4y(0RwpP-4azJjR+esdXHgMwH{
zgEc5~m1aAVztTusez_}5++_lZHBKFpYxB{okNr)?;(9-o*p=u9Uz at N&*5f!(lf$}j
z!-aZ)R`|o%zM}`ydpv5#0?2c`h_yt=b=-a;16TZ4*vfJldh|qG1t`LJLo91ec)-S8
zM&-E(t_(Mq;8vTBcJZ>;jhXq-t at 2zOmiac7Aq=P;Dlktp(vAf#rUF-|8xd-ii9eXH
z_42V33rxjPcTFQIb}VrGv{>2T({~WF`!1z5D-3m at 0&7ST0?%loYbWT|{PFGDx^)a)
z|G^zdzquBW&=b{_*6WqVr^eAHD~*jk6?(CiSPXR{UQ$e(Oh~NSuag>|<sXiW$L(r$
zzdY-Kj{&T5KEIf4!lI7hx;G#}40iAt>~GC>0a0^4ItN1p!vrv!Lfhd<EZ4t4V?8zF
z6-=p_qm@~*TMiysX at v21EH17i%7>`I99DtO_bC}p4W?=pPS`nYtxCua&6SJRR{xG~
zqSgfNqUHHk?zHe5Y;4oke-c?)a9gI#9z>sop2TNoelW#?n~}X6Z_Gue#)8-L5dJ8S
zg&iSmL3y%$LeF+7FvH%fzOt1H1hKmEbbDLuiV5w3FJT6zOyr_5J!69U3cgRQJr});
zvL at n-*j at 0161*7)^(pKE1~s at LCqp(R^e9#!WW_iNAbHsyxvk$Q?GJYQC-O^zy-L%S
z)Cgq~_>R{SbGW<(hNx*Nv^axc4=4hMiWvm4|I-1aGECm$nnA$T?$F4utp6c0ieLn{
zQ6&l&@J;ycAjh8)isOn`QOrUc|Eck~wjI{^IN_&F*xIW at PZ3(V2xvQGl{a*t|HVQ1
zb$=UC^&lxtMqw4U(5me=p<vucRN6_yO at CpkmF5#qmu9<OctfkU&i+A@%%PoWZe}I6
zhE5dQLW?RXM)nR3Lv~34JZ^Xd9^*B`)cR-c#%DxZe4nUdKOr{#o+nPEIV_-WEY-w-
z21{!i8HyOv5INbShI3eng;2AOK&BBl<9GwvB4JiK0t=kR=bK>h-<}a2YgvR(j;^$6
zWxk`8IUkqA=i*2cR|UiIU(*XQc39aI)+Ua!Nlc{+`6euP!6uFQfR4m8df>%H84B7{
ziHRg{%30Y{t@><e`XoKwL6C6B!T7#U6C#N{D%F+Zzc?dC?tDGQ_d$U)W7bWMF9pS?
zT=1dN?8lzVUV;7s34Jm9diG+b4|n3=r)I}(p9pRU+sBZ}iAiW0zS637TlZl+h|D8p
z9Eel0m<*=|E)4OZQ)EMG`V?4?6~K{AW?mwvq>5memB at a1u?RRz&BMUG<0C^IF;D1Y
z>L7+~u?`AWdUFr%;KhE0JB7ztltUVa%)zR}COuwDEB{8rF)WI;lwEJK{jr~7owr#M
z%40Q*;8==E-{^S0MGM)Rw1d35r2=eO+!w~shlm?jM1%dv2>(NML-DOC!~J=Xi=08R
zISKxBJ*|eIB)JFE_NF_z=Lo`HhznZHpacn*_NwoN?ME8gRm^bGoEwDnw)bS|cq|Nq
zowx)ovg59X_XzK2Aqh8`zlHHg@>92Mzp6Uet-MrJ4jf12+TJ(Dnov8&H?7i2QK|Md
z5>fyXdko=A?>S>Y*L~?YC2a~#O6$X#{c8f2VZJ0V_t&`pvAfiEGrpZr8cEQtwFn=s
zRc|$8Pjdgd#fdlfpu?RFk-Uk01znSZo}>0pm0j}XE(xf1+Fbh)5JRh>woi#&NpTlR
zHWd5MPtwDt?6O?WhFr0Y=nsWD|F9pKQ8id|SxY*9!L=7*f#pyDa#nvJe3ttx*{*;*
zXczGRCg!9=F5>^H#}lyqh=1%poF)s4Su(U>zA^SNyfxJ3qpe$4*HCMthx_@$=`3ka
z#bhd*&yukp(vuCIZqw_>{)+S7Q_Po^fj0V`Z2N&vVaf8?e#{3|)MY|WXong*DaFi^
zpr^(D6J8v(#dW=D1jfT`Ol9fS<H=VR|M6J-P4)>z&QcU@!`V;JT*rU`(~5jH3?|e%
z?5yTYXkiY9I}M4z*!aIgY70%$3-n1!rEeOu^zt)0|DdSxnX2L+p2q#LJ-E4oMmBCw
zY#~c38M_31tu7l8U~LbrAc2ed+N0XSh_U-<JwtnY`VCZL02<q47SBegy=SI)UXSS>
z at m!D3H;89{R{CA=45o52b}Kw6yB<9(lIMxHKZ-Y(czaX4eGA`SdNeBD9useGi#Mh>
zXVxF`;2{k?Ev4yrjXfWTN(Bhdh2psapG(B^L6EI`?hwymeEx}e-ign*i|6h5e5ZJR
zGON5n at Biem_V58pYLAoVJ?OuFlR7kx>|TG4z4sQDTv`>sWq3sVEAqQNCH!3hqvnqi
ztO_dvNF(IIa%93 at s3^hg_7ppY>SFv+@)q<4F6Ygfr_-X=f=%Ze$$#3chk}Ko;GT9-
z+60q5*y~@gCrqLV<_mImeDxXH=U~Y_-3FmQ#P2>s!h>Yl(lS^b0j^0}y9k+MsP<xY
zl|`ycsH?0}?O@{Ao;DOTzveY4%rSfi#IFGqfMAc(cz-G_iZG}IxSKXWF$AiJtbIZ(
zK1=hTWa5i}eVca@!y*$0yJ4val=HRZphTEpUZelvQCd%*+&4s6D~;&j;LYTA=~jZ@
z$G1nx?E-linpqCiJb-Z~r8dV}bfNj}d)^V_n;e3%mc_FLmRJ60mw3s;7b=YMvDCIl
za3+YMSB9_{Iln+^O&%XRnw1c{6<-Kq5JNu_{t^Kxtddh=PRw>$c%_wZ84wHFG#&K7
zC45U6xtt*NGC>JQHQU1@$GfdxE)Q9NXJW at sg3#KBoz*?TA1xLW|DBTvj#Iq!&<lBL
zlYEQjt3?6$HjVr9m|bbnwzTy9Opum~Pw8klhT^ZDrBW=ZZ(4o_b1SXdeoW%^QSxw4
zAIT#O@{eygiR#YCc%HPpQU}fUBk0vh#(r=zEmnEi7SLt_PFVPJYmf7_n!o>YT}^=e
z#qfR|{N4q>U#4>JV_0{Rdd5Q-){{apiPd5MFY234m{J2nka$f)g;IWmDbHu(zjo&n
ze3fF3i=7aczO6wq<z_|>tBAqr6t0{Sa^)CY_+#oR!yj{!ek|eZ at y9xiN|HR*_C2!V
zoAgL+^f;<}(1B?Pd^tjnSzrOpVW#_%Dl7pL^m&`7pqk{j76(CG>@!xS{(Nry)FNH_
z at GZ1GycT7U!(~)dJU<XxWlhXfhm1<_A)0*T3|+0yR+P65nC>!zG6E`#Ic12rM2v?^
zc=B9ECvzERP^-)5!V;?v<*oQ_$YtV>qMLCy#dehySh(8)B(zd2F2>-x&CrE at I6*s=
zfR&9xhG_hdc6e8sLB at TE02l!PV!dOy9`1J1crBvw(s#}|h(DJ+GKK&YICAR3;s?aj
zJ;i~g!4rYoG4d(Jm!tMDXOutIW8#&v at Y|s4S>3;YcFl7~Yz?O78&Oh}?Xi|SRu$JB
z$n5u};m^&C6Gl8xYU<A|8ULo+BwU=qFyDfN1A*?zkGP5it*6uIyQcBAC|bb;bQNd$
zE63|i(~e$b)cPazEu_ngDibJ~HASISI(=~q9yMugE86U${Z<$*jR#^sx<)cUwbgH?
zPZgc3-;47MW<1hl<S!xcGrSf>MH`>{ASd6Eqo~KR(n3&q2S?~<ZVP`JQQ`}W3cCv5
zaCF?C1IEo`<hNc at VCJ485k+Z2JzH=~$kc?cR%95TS-OmSreWo%^fs753yYX%TA++?
zAa~+{8YeF=wjT+G>r9EMB#$Wrq=(VP7um2GKBou|QoI3j&T(sT-MgX$n^UB<F{j91
z$`?)p?o$vMZ$6(4G;|zT_I*Uz2$(LvERE%wsi~3sAL;S;+W2GWfd|8`xPW}`FzXQ`
zFdePrIR+d7rHH3U(8ZQAB-Ro1d<8IO-K4~KX#dK_aYvAQt)K*R`EdZK?Y&%=^4uH~
zVdG8WBeE$V1*#|^)y;kRP?MSC_oU9*pP})aN(VY at d<TvmuO}j1gxewR!4dY^3}3#Y
z=3<#DGrxd_`4epz7lKlQWB9hC9SC%PE<y>7Rwa2$)@br73c(L~D4I4Tb8?8f at vsRE
zsF9cEJ3P~rMuXM~;%bv}VTh$32K9Z(!iCfLMSM=Nqe}@QJ`_%F<qfpK0X$4R4R(VG
z&j1;b=fqJUq at B;0G6-KRubnOp&2SGY>oK4%;+Za{dl4k9o}i6_J&bKXPE#(*Kx?bA
z at hM1xHJ_jj*f~{<t!Ektk`EC%0xE=ogfQDcq_~P<<i;hgh75{Mu<^2e6arMPvE35k
zdT~5hTz3QtA=_2iSQnoXzZ})vLwr6+CW`k@;zHa&=aRDdYe*u4ZuM+!ee~f`gHjt#
zVO>0#S at dKSiSE*Sr-_8mazX58UnMWJXxb62d4<m_E_V#q{VHCIF*Ba&@xNiT#i;nC
zVi2+D*TmpQsQofZVPOuJ$muhS<iV&ilIUF^L~jL(UYZ9^Jka%1amES8cxExbxeQje
zFq8;(*Ur`T0Ua{_0L>6yX%jAb<+*l{!jGR^Wds#f9DK@>$BTfOK^{MkPH2zgzT&!<
z)XritSah_DuL1<{KoSUd<+(`2BiGL?s20I5{sK89*K2`MbihqN)HJJ at SC%pNQBY2O
z1GUfM2C#P!^z61{V5)^oH!yEh>S_CP4)Y$y>Qz0=eQ?xz4DgV_%zaUQ9|roH at B~u}
z?Shopl;?V2GGk!(14a_SI8Hv=P+AC!+EHH9!+nRDyI(q~4(GA`_vfFCpxpOcxk248
ztMAJ!PmRb~^8XAw)E3YA=vTsw|2ha!Y{u6QdSu8nt-6H=2DyA3(wMx3=eX2%nMrD!
zjF$a?>K<6YtB!IvbQ%MC!uljddDTHy_K>kusygZb+uIjYHe5|%Y{j}WlD4jBH6q8y
zyPu?kA4nhhe{mj33$;P}+{BV-oA0C37vgw!><5Uz=^TIQ{a1oI>Ayt_u^|`f=n$LW
zkw8Dc(FwZwt&wusIT!eOM08HM6BMN)$m*FtDofzA$O%>%=I>ZAy6VVPeDA3DheqeO
zWZO@(QM~M+BT_B2pWZ~9N*?pf8<;!FJ(d~nC at j6q8&jIQF+5?RmH9gP95fS|H|aQ}
ztb3XQCI+-w7jgH~Q-gMDNol at O64TMw&o at 3q)b<WKV3zs16tx-i<`*&F;fVXFkV9R_
zF*iGb(Us?3L$3DqFz-R`?cz5~4|dmG5&sB^wWQofAxWwl;O?WUyT|A#nXWWbn7%va
z at EDg_xDOZ*rWG_eqqIT^eN%(NeV9K)+xuk&Ru1jDdqA*RU^3B?TGkAST_i9{WYn(Z
z2Ha^Q{h>=cCP~L&yZGXw8C8dsW;z{GbC|ma3QxBk%R_^eR~-g^FI!8|Q^&571X73j
z%|!{&W(TA$zF at 5t@+~FGONMHe<9MwuHWoe`rs;ctNXwMFe}=nX+3@^Xv2wvEG~6R;
zTjwTS>3+%}Vnlp{4qsAPdj}TwSW at n&w!II-scg6oQd1t3aj|V at wBu1~=WI>k07936
zB#Qr#I_kp1k0nKTTnrc7vPTK4Nr;uZ3zm$<Me1o7<a@{|IKWpwY7zXZ<EgxqSK at dL
zu&f)5mkWm|_rjWp at tt$biKbEO!)iLbcTiiB#Nj;#W41=Kju(Kk2&-$=LB2 at l>z@{9
z-wxB*m54KXCD~{6U=Yhxr+(0Vem<`ODfCJdIw at y02OT6&>Yf4Fh~qOK+OPn3J9?C6
zT-!r8Sy|N%99)2;&g9rbXY^`%l(oq0I+VD3!x?e=DFgGiD$QgNRdu3tui6=LcL}`=
zguy|+zLg*b$#_!{@U!w<2UXfzI}ZrVeLI;u%mF?LG@)%H^d~$i=nHd)y;~Xvf+s*}
zKFoSb==9x7Ru8by2Pt=#>fVOD>2U9 at dp+eo$bAPLzE)+!N?qC6p|Q-849oaurvMtv
z?9mU_eMw{Ka^Razpv??-XQY(4N7?WJF~wm#TvuX at RS&1RXSL>B?<9KluyQ=%zQ~mL
zOXmC#j_(p0->4X06W=TjWG013$K$>}SQwMDK;G~Ni&@nGtc1Z--S^_tP+x#izr_U0
zBRtr9IpBATjo)VkE#(BO>JRp^w`#|;j|$&le~P#d3!?Wp+=rF*I4Nd$2b9KdQ3O>K
zdQja57l3?llol(^he<RfX%*-5WLU_}*p*B06F>qs=}o{=9mG;qFts0d3hgsV+Gjp4
zb2CAs2WY#LHDc%fAn2ofnMp)`fecfEcv6l9dg9;34N^A}$>BS!gnldu?>zEg7q3Uz
z#BC3Ov}EqRK*9xJ`l1yK%QvW}C=WqXg&Bk^vZV<XRp<+404gq~0`A_6!<wpnio0R4
z&XaIshYe}dH|D!iGAOUks<-z#hLsT7%PdOswVE06IG|&A^*=MPt-k{b#Bn=Rs_6%c
zqqyupc>;6ifk6lgMW at pI3~GBHq3Ej$qjUvXXIsNpuK~-npG;oS^O1bXpv!n~r^9=6
zdGSblE(|aoS6-bxy}o7=i|X(kM|ePzhe6&+z+Pb~;_w|^)`LI-I8}!oH<{|1&Kc7U
zQ|ag&9v26*nR!iW=Mr*WZA6!FRgBLv#^3)W`~2SSy9^`!0aMW|EzdXuiZy3|cK-6V
z8!5OICQzO3wk$6ui>nsz;lX2Y$RZw!*tq5j$pF?V*)B2$qCwhakj59H#l>$#)z|#8
zriGel)Gee%Y9~PFS#UoJHPeTjrH)0QJ`L7Al{O>F<*WmuBaVRDd(-z1P-Uxr<TDv5
zagrIJwb7D}PqL>L?la^Y47zOx=Fes_!!XDjub9fjMhmC3y<5W{wB1x)y at 9!m_9L1;
z0LlRFd;vWeu<1ZU8=nmgY{tu`8ah0W;!Zt<KKo*9hXHh|hW+38A|+Zdagep*jXw?l
zxb|z5XeGaD!@UE4SOBS at Th~*v4PM?qWWm#9a>KoY-}n*Cac at 7Ek`Me$N3S}|pM{12
zIe%{;;o$}5vf}=t(u9gjnqEE=m|<Qs&q3AJXJYMK;$91vn;?<7W27FWUtxtbiq{h6
zwSb--UxU(eSE;1zx(uy_#<hsEvTG(Zmka7XH*JCC(HqTeY(~66$g~Zan`8&t1(1X^
zS-%C5PnSZ9cn3z5vWij`trUN<8EL`2{ZdqvE1ywwR9S-&bty3Knb5a|Um@$hBhW91
z9`kK{r4bZ!jUFrS7%@MA9w&5S;Gvlgp2K~BaZ4%l0mg%guPM7+fbIp#uF4#>BbPU>
zLzHvn4SfA$grjdz>LR$l>6sCT!4&o;AK0$%oayl7pEEwu^!QvP{qM(zUi(o=$QrJr
z at oh9*IWHr((lO$~4jjG0Hs&3qcX-ReH;_6<;W-z2%?t$KsSW7i&o!WjKi7aB9&<pW
z%9=`jKu?l0A)g3%9{;UOiiefoXXDNSprTH{8&_VB>+iV)v=L40-J{xbe7O7|5U5GM
z0M at D!sXg(*Eu+snQGcjZ^81Rp(}rxXaZ<TG<v3aMtr7eLy7fiay}VoW3O!C#cFEt7
zjzb?MGrWV#J}h^fT>X~nHpwZs1({{H+G!N7MB2|Bd7sp76UncIBntJ&;nBWa5!Sjt
z0+t_0Z&&(cpkdop at LB+}+sj?f^m#!@o#DFL|7F^2{TG8lzkxz-SyE7~MH1`$=qhly
ziUWU4Xi=!@ssh>n0#%%#S4{j8Ql&%;!G@>Y#JlRMVoAH;VxnG(z>@rvDa84YWJKjE
z!G}?rdgOfQI1z+uxudJ8tFF#T+&xwfHJIaH1??m%pnyC^RXK6ZSUFTx_Fn at O866+c
z_)lD6g?E}rlXWV3{M^L_)c|eJ%>~u*!x&?rr%byEQrfdqoLFYZ*=$>1<KNNug=y!{
zWjt07`cjp#@ZI2v+OOD;I8N8(<4zrLp6Lmxi+!l<nwv_<P39ZG+^!pPIZm(cU#v4u
zw*T3FLcdXK9l4fnEyIS(i-8a3akm+LF}fQQCkrsN>37^`g)ZDN3Igq+3kG(eA_yyW
z$np>@yXaOz_YACQpq!-^>@ay8D~jv(rTyR|^x^3=3-N#;FSYT9$e;7P9`flvj4qv3
zMiya7_yx2NV%R8j?u)g>u8?{T4YA`W-9X8Obkr?MP`3csW3N$YhuAiDnY1OE?D1dH
z!YnkgDzJP9b$#5#QJ<<h%Dg?xe}d63h<~SM(4!;hV2zyzI-zxGKbYrW{EY`eVA9U_
z=aiI69gb6|ul1|@WwJf`SHA@^E+k*@_{o|WSQt&Y0ICZVI;kcKdc4DZblFxUK&dGO
z#PuGOyh-$|Zm6P_YI-)k at I0n|xq`TH%!2+H7Yv_?6lC(x=_e)8AQWfCaK8w&t)mx%
zwpDK9kB}Fy<_wY7gw?A)W^N-(3O`L8<5#l%BW7)UaB#Bjc53UFb#ey=HHzQ#NrvKt
z6K+1w%jjRQUIjqXHRJVdre^zz8G*s&U(LkFNFHU^JV|ZKk$R+|LqqCGsVUb5WtI)-
z6av~L>vqvBJMVsqbu_%iqv5TIY4HBnnQVA<C02m_Q&8Z at 9D;?Z#)6ZpXoEd90|pU9
zHdrUKACi}sWXp3{^`&xUSFYLt at GHA6!ao`|p!i8WZ9_Rt<2`C%AQu{0b|^jQsymqj
zLteK*?X+g2mF1tJ`xx)TjiQj{pM=a`VZj>Uk7)xg^A$EVCadi^xbO7FX~gO<UP_8<
z%wu6g`Zy22!4#4o)({1Xw7n-6x(}mM77YGEG%y1L>IXS2u(P at absJ<!SfJM67TxQh
zCGfIGjlB3FzT_bp2yh1U2xZs5DZ8d9yUHczI~bD3Bi5CY)Wh6S7*MbV!5UI_l}Jbg
zC_EW+cA#D4>jW7karX|au_#AMsu7~pL23c?r<_oc87P<o6a<4_Y6rs_|3D+o9H~82
zw2VxxD2bpR<+)_2 at tdd)^T1Km6vlJ+PLJw_`5QPI41>UkKTTt_Na6u#A`g3+G6L9n
zpt?zzatZ!fNRNwB0y=^X%BDsG2dJfJhy_+Cc5{6 at m~RI><q&eAqWjQejq+)1Knco}
zHwJ(z!CUYeAOI2|WWF!~sq9(~ut>=akj%F?)1jGqA>z(QRD7)nHm?b501xq+R&>V!
zAkz?9?%Rv%6f!4hk3BfmxbG-J3GF}kA=>!vXsB at -f{5_tz+$6uDS9pEn3N6g(TU&L
zW34A-Gx_Msn^H~GXz~K35OV4)8?Y%bD{kQwo<dIT$9s at Doookw)i{;)wDnIY1OxuP
z@#xm_9ma6uLfq#^_UxhkJPVq)KA4T0arvnl;IqNxUb05!MQa#Zy)mGk3+Posqv{c9
zK%zs)$zV-_X|O9tV}naVHlQT>_Y1p_W``x9#sOGULX8rQmQYkBUeg2GA^Ip;)zM%I
zXqC80NC9Qng&rUj-i8KkW9R3z9fh`WsHko31D0q9(V+Dpi0wTJ*2KV#4A-D&;5X1H
zi}IQ%FfGD`n+Q<rbr>aHm0d9xh^`%sD}@p2&)Q>4>!-Vm45RIPjH?piOP-9LNGEbd
z5CvNMYwr-JZ<bQXhVxcX8`t7p1Q-stI?M4*ky$X&FbL{aWD9w+qf2ST`<=8$iUsOo
zZ#{l8g_kl?bOde6<H{cF4J_9suzTRuF!lpdXZ0HWzJQc_08h8L2ORF0()>D>t2FXv
z)E68F0uPCn94=E}EngcJ at HJ8(Qcbe8<xXsEAX07=9)`zE04~6q_%&?}VEcqNuPuhv
zA+eGCw|aw0usAC+%RR9Bw(kkpX0I`2T^k2Fh7_Jbm6YJc=mFbDV5F4BAXQB6?!O%>
z)(mLZ!e9XA>{j6ISUew#H&gNMOjy{)_Fzxo8)+wpZ=f}K8#a(c1mc6JeIoRi>d?o3
zN=f!!Nc_G?)b?-FZPX0xF(VK#t_xaC@$Fe!r+$Cj>~UiEIABpv=PK)B<eZ~O{AJn(
z!tBQvvrs1n^u2<A5ktzl5Ehcq-eEjA(u4t7CuqMeZLd-lWtYtnk}tmw_o!>XsPB1Y
zZZVq3PBpE+CJJzQ=t|aPxtcQ9cG!>DQ%z5P3)7WdLHuDaVo;*}L}OUl7j0_yJC%Ly
zj%eV at v_FgOeX$ElcwkN5C at NwBe~i4fO?_|lJ0eQxDtM7nuEyR#m<RV#u;Ok6O`i<o
z(6UAC>4Psz2DQc{U7Bk68{M%RQS2uYb9JPaTzHY=be&nWQNK5rE)(}(bPj&Jk$~bv
zCMG|w>}n*~JWY)kV4WF+)#~jHoj44dL)pm7Hs8g9BPbqhKC7QjSZvh-hV_#vnQ;iN
z6s5>9CU#Ft#YA5%E|xPhf|!ku&pB^<@lQU{va&JJsTzOf>_~mlh5&EAC&M-vU>9-8
zJMISo;xd|7!H=$U8TDO_x<DK!4qb%y2uk at BJp2&bD0^WxHiGAHVI1t;`(!zz<i-|#
z36_qsmzQ9Xgn^3e#sZmZP+~<`1awc(g*jeyP=cFwP1tSiYTRf8AR2#0dlL6q_)4pG
zW at Z^WhM|{G*$Y!gUI{<}7qQpHH4C`M94dRcSaVv6OAuqv(_xCSx~vPO`BMu9!wXro
zc(65HlzcUDud6^emw<NlKNhqD5>i+p$tSOI52CtHj~xJ8iw-7W>;MCr#Q&iUK9<tP
zJ#+k&1|NtU|Bp<2Tw*KJgRh<YSanuEznUXL^Rqd_H!{9K#AC7jc-+*PkJm}a1*u9C
zT_mgUToEcY9(@uX8E>xa(W0=l^PyI;K9N%nSfma+T8YQ~oklg1S9t1;JChUK$;8D%
z-Zq>?uatj!+nq_H`VXU;%B%IF$u<P6ndG_bcoP`!aw->(c(~+155|Y%xvX&D_x5n&
zTP-|yKML(kiCs|Q-$aSuK#3_paO{UhUK^tHk%BCKUrl?eMn2EV>uGDr8)fdDKp}T4
z5S at 0k_Tn|I?l3PkgEh%ZEvOckTEUjZa1(bA9%=+#mM*Rfru-N1Wd(Se!88sRSBh#R
zm!Me^X9{1`&bfjD2<m;~8ag8Henz{ollyjX%R}6|llivuxfbrUa{oh9d09g-_dSCb
zf4aBx1)I8*R}F<ds2D%V+*_5V3#qToVujlZ!!@NP<=%X#W@}(bt=W8mvf&K!kb5&P
zUaRbTavJ&j0-eDlO5<D^r702Vjs6Ph-76zBj@%tC{P2yxO^Cp73I1p}P2*ME_BW&Y
zfl)o1S6j)3XtY2(Zf&ySzKy#T$HKig&>M2M#_+fl490%7bG1FJ$--6~wCs{Quw=a`
zxh-*+)r0{|2C#ud_$8 at j-pv|xp~Wfgev-hu5}Mj9?Pr1Y0Ohd>rvaSA6pf=w)qB?)
z+m0F4n)P|LH?ye5QSMe^sqDUA$G&CiTWQ3LnneqNePh7+Yb+Z*LvU`1<H;M`E%L5s
z-cIe3(ujK_1!tO5ZXo_fwPxe>%7$+trF|Q at cRQCi;UOF4Rk;LP-0F|2H7$zLjGI$p
zzj+(FCN_t20qK3MNm=L~ze4Ufl^&n7gnr?NS9ZK{jC;cqUdxP6im<Oh%*FWJuHim}
zxDSuQy$A6zo)Ng;401r!4}{a}{kb&QhII~~CK_yxUxiBQy)9;-1B at 3Tv*F)ppLQ!O
zVBRN{roREyz=Ob;2)=*ni2dL!{+w8Q5m+yDjmCJf2&5*r-Pr<@Z!>voT2SlWrtI5m
zCdRd`LBcG}CX95p0!${2H3Ul}F4QRE%uwW~pGlDu!-66epJXU91|^=svInSaU~Bwe
zFwjTG;A$O%xcjWeB%68FlgQHD;)qk4r2#(x{mqIiJF at 27u?ZcCi$MQA7y7EtgnqgP
z{m;&PHuNSP`YLh0Mhv6I%kdegGn|9b`m<xDP9<;tlPCL_cWc}<W|1d=X`oYn^VPA#
zrv!|D#eGbKEtL(M(%4CwM{CpD_3uv`iKEg;T8S at e5A!ET?>M3~KY>bLH=7;oaym#E
zsrxX#c9;NSZ33iY!x at m${1wL&Edpom-9hHp4le(Ud!GT>4APaAg}OjQJJz7sRyNGi
zPR0Tb^Q<ffz{2}NaZ`6ED>ZR<Co45$fK4gr3kUJcth<MS1?@h}O7nRGtqfuR<rvji
z0G1N&Rg_%qRQvN-$<?9K6tw~h!)js+O;onvVsRTyD3T19D*JXDG^v1x1G1&UIUJ-j
z|NJ!jD9snrX8HM9=peGiKTi@{gyWuJ8nW2HNikmE#sk82XSG2a$xu&V!IwqN<~VXz
zbqgkK*Xj<#n8*KhOwRcBsQdAq7_JtG at r72tg@!waR$CcYTbBt}TbCJETbBi+yIfZE
z1-NXuBj$otcp&8NiY=pF{olnlU`TRkL}VNhmkCG21!zZ^%Yse-mld5^E*Pl+=E_$)
zo#IM5l*i-sL!=aR_PY`Lub?kHM8+wp48dM7wEb at GECBrfO^=y`GWA-_&z0O4!-!hk
z!A6C$6pThk3vugTcnh7q0ST9^04C7wROn<kX$&c)`8r9{7zQ&M1K%hv_;$xI8H2o%
z=tl?sThcHav=h)6mLOH!1Inv_Z;bmJEQQBekNrg3&=vOf!gl|Ko<qX{SUEvEh@(7~
zUmy#^ek7qF{^c$;1q)aRfstRqrHgx^ElWwT*MCest<)9(<#-b=S41y0VGfl at kipvO
zKH}bf)__^8hxA*m&qKrhtM&Co>wRMFCAw`gUbjsI{k{Ed$K>*me69URN^U at 4C{!(Y
zq;?#~U3m&9Ah)~xkO<SHX$u4<Qt30dgM2BrteG{sySRir=sSb41L1|Cn$}7>y3sJW
z8h$?d&Hg+?D2O*_k|K^;xV;z8Jc4mzPtpBM7fXg#l!2`AmCe9=<qat^j}yY^ppEla
zG5=-5fhT6LS2mu+qu5;D2TXdYBU*Q{NMao$)<?aSw_e7o(9=^bC$%O7eN6j;-Tp#H
zpRy%v at 0~$S&`C5uw1-96Yh$(-;UUZocCTE;H{lZxVO1_aD#^{fF at zYT8bgS1M8*pm
z3<(PhZlqKq18)p&rWy7?j0ZCfXt_+ZpcP77cuu7c;uy~j_&2_?om2_`By}iX*>DJY
zI$JibRfqFWujbQQx!}6i#$M1JZamAn5>iF|>T#_G|Ipd8>t3pVKc at +D>&wRN&N(}K
zT&q?#@YaoL%3Sw*WtXq(RkYC(<8RcPIdS#?Rsj*F#Uh)sWI5jbjDp;x>~eQCm749n
zU`807bklR)rH;LXNZ=p9bWLRwFLIVrM(y9q)l`1%AHnX_Z+vd(M8?r#5yfeF903s&
zF0hVIKKDE=@*my13 at jMc0$U^QupupG!1%C-Kl)9mri+Sw^qVXZQ at 0}iG9lE7U6$>c
zO_5%%#rlUaF4r%Sr{KY|7rQ`GT?_R?wjF%cU0}7`r&s;m5>fRo5zV93e;4iLB`<cR
zaLEHQg~ei9djrPwLA6E^7rWBJ at 3Uh3A2k1X$hI3GKx_O?oE)Zt*ydrhj2Fi-zzk<j
z6TRP+Q1QE8nnyZqj|y}1FO|FRF=U at d)5C-4ZmM2Jw=zWxEk7!#9!XF85l{=3v=rNq
zu-PqB>3In}&8BZTy*KJG+KBUFbjq0TAd)XMF;70P*DklB3%Rt at 9rfahtH6)JXvH<o
zO=l_OdR2?63j8?YG46O6-|#$yHcrZhjheo%pS$oGBc5WiA3WmNvT!4K#GMG93jAT7
zvh;Bp(c4yo*iGkp4A;Z>S&2tR^;Y-Q#Ag1mekk-g0|hea at tAI7xd<Osn(s>qhsO~N
zxnHucAlS_t_uzmA+W2C+Q+;U>^s$;eigam9*%tEIykr>DXHyTNH?alx&({M)wN7++
zY1aXf2jk^fu5f8A(Kb8Do8fWBF<uynxVE4=UVs%ATLdwKEm$^Gwq>^XSOp&4f?C9z
zISH6hUr(LapC(`pE*SZJp3m^CY*`Zj^62kZoyR`{l)0GaGLM-&BbKbwX}~(D?O1hf
zXUtNg_6tp{LwBBF$P0P1>Tw3_&l5VH%L+Q4aHS}kmggcTim(zE=}wd()Ra)ib6HX@
zGdW2tf!A3y_RUn<I*4TPgUd_~m8`=51%=1q*Xy>@ePV(mUD{zz(|Puf0Dk66YJmTz
zAT)9xeb=PYmiC_kzd<i=Df{e75N(cf9Xs`}QsJpL{yJelpjR`f;rCbFM|2xQ?5?5<
zIbi8`0iwRaQAl<H++H+kMfE@%t(RlthgK}%m%hYexs?sGRkoBnnerO_7$%YReHM at p
z=+K&u%zw3%-k3c!<p0K~_!6jpXee+>tw~;3I|aX0HA3&j{n;d+W#X=)w)bST4Bw+^
zr7lUyE!rIaHPOSwmrv)b=!Ue%X+iWRb-iEMyZfQI6hV^lS=I@!r~PX+14O&)GqjtR
zO}ha>yMZxicM%%DqB;nGbLsXhl=(Y;)N30OYn6 at k5$&WVcNOzWC*TNW at S3EEt61=h
zCcetl+1%8^yn|rQ=a4z?vf(~lOlf?~fML3^v|SUr5A21(G?KAGfW=CTF*#!&SE%>K
zjEG`QEU$JI`wZ6qw~S#N8GSzKTs*fS|0AA1KWF?nO#5CXh}ZGPD^h6h04caP#%9^#
zcsN0Pf0Dgf$vR@~XiMXDaegPS%;&$O#pFcbO8zrC;vWun*IrcJVn4zBYC+nFMLR?z
zsYXJ&O*=~d7lKuss5e)X0<e{4fY<*;mYh1RDQ5%@A*fOURT7QxF#R;${gHS}yN at M(
z{;>tm$g?)h at 9(r?bb^^XWzlfjfW3gPDns-0xg10KdshJ?-$jPX38mSa9p6ZwmEsmW
zexkfOnKw3&*|M`?NO1AM8^e6IS^%=5 at BkVwz9g7Ykf1b~bFyxC at LSXShl5}-z<e46
zgXJVPwaUaj76j)qNlYE?9Zbnhz%w{|p3!DcAgRrspNoD6&zU`gQUrx+TINJQb>2k9
zyoru6Z~9K*yorA5ym|3dX5NhQhsBVV-k76V7%nesJ31H(W5wGt%ybF5oF0u!d1aaA
zOmJ0 at Gr?66DorsLC<{}w>>ZqP0X(h8XW4ks4i at Ow=N|JOMf$x;6Ypqx;(_UfbI%8s
zwe`x^g~#!bMxB)IV?8Qn-O;>S-)GIbwxP_d%gFz8>GNwSy9sY4_;>V2;e0xZ^XY46
zDO&X8+ws3<?PO)lw~uIkjh>*(>6GR_AWv-1R#rgkKfo(JOFz-(r*@tb`JZkLZo*lh
zDSm)FOapHe$xkz3p&3{0%uJ}InJ`(-?4Y|%NHRL?gZd#|OyTZ#^whaDdlpYf$RW)O
zjMLVg4E!kN9!P;9?LF%7_Se1*_IfZ}JDGc?gWXYwn%{J#@mQ{~{{<&3L{3;ZiW3&<
zoZu0h;2};xwXrzE3Cj9Oxikl&Z`5F{0WP3bN!$fkffSlE9WN3o!aD<N29(-qqwWJ(
z2-B?ySMtfY!FTTfC{}Bir0T<3`MP%x)g(bEkgNB~YFPhbkbwT(82Wcdk6PQE12P_C
zm_y&D^At&M<09BWGkNV2KF0>@AoK1;DdOA9YhX$<AI$1{407_2Zc!}}F0qmGIRZ5#
zFjCxMSS~zP+QOKE^w;(;W~ldujkt$V6V6kbFU2v^cQHKXCMzB_^AJCJEP;b885?&3
zc$caMeh(#(WwVPs4 at KU?yUn%(*s}p_-a>8<UytU)2ON-3Foq_xu;E5VPkJL`uM}Z5
z2LV_RLB}R^fW%2$T-}mc-wul1jDvZ#x1`;79x>ChL3tfOS at h5IuW#o9zYS_!g~0zD
z^&cEj??JZI%I4VOUq#<_tre_0w$P?Aczgj)G|%XXMx)Vq1qM7q6Y(V7CAU_r@?Ggw
z-b1VWUZwFL8A|YlRundSi5^|je~TT&n$9abh!SrgC8lU}aH#io3OaOVd&18{hZ{f6
z&|wV3Uw|T0p-AG_C##Z~`Ear)9!EQODM+49<h+_eWI^9vs5Qri{1>briv)4JnG2fi
z!z=K at xOu#=0$ztt!t0+-pPyzFfb6jWS>hJa!eiLNMQ5_*6WOCeCbfxmn%3t*Zbhk7
zHISA{Y^j+9lZU>@GB2Z?k~A_4X+-g}biw*U+o<^sYw%kb#Vd1MC6!lUE|}gpt$*W9
zQ_nqC^_V316qm{vjm-ia7qL`60JE6}M_VmpppF25bIcXE>*XC_b5M*1eh;|*<~XjF
z)B+Bpdmzv{^1Q~t{v5+tl^=r2KR%A6!&-?o+V|jU(K8FGJB%J9Y`y&$QdO07RP`$x
zzDP#`jUZq7B6Q$;Ea>!E_c;V;w(F3_^-CZUc&(Y$48)%}n|9;q at i+8&Uwuh|A!{X-
zYO_9Yn-1cj(~7dl%*wM at lyVxls&TZG*iZ1#L5h>XC=FOuf?ec4*B6%HQOs<2bS10;
z{}iS0AXakFbKQI%qBODQ at DR3u`;Se1EI0tq=#{01Li)?8)*G+Ta|r*k^}!hY+z|K$
zqoAF{6KoTfv3K)wCkypp!5h)T@)Sm_No_22nCcP?2NKp)5Ysit2y+M3S2pw at IYfFR
z^#KD+K=@x%U%^TW-$X$_PlvTCTiTUfy}=&8U%$U)D0Vk8!6Fkcr)7zg0kuwFlAgs@
z%sfayZbG=wC>e?^_z>aOJ6WWo5z=~NRMZj5?lbU+N<@*A=3mmHBgnN$RK)THQj<Kf
zlu=6DMD_rHGF!OES*Vl3mv-QKz{_pH6D)`~GAfP#g^JgU_{=`kb*~jx6o)~qqOTBC
zy08r<-A9SZ+Ag<KeHK$mB))=Ad9~j3UU#{f_PWb0sd5r|<*1(y#T@@gZ*jM^Kp_;1
z*=3%AG8aRc#4l0*y4A`<1lo<Z_-_%@^3hVPoYvuo5og at S;V&Xh`BO*)(7m1xgJvP_
zM)iM<mrn;y5hQc6^6An6q24Si_8S|9{|lⅇ)MySW;}WEi&^GE2ue(MyWZA^jTUi
zW@$Oi((<x~PMmg`i3&~4hNjwng%HX7M&uE`313(Uk9(G)vhk75Fko at 7uyJBDF-g*U
z^|lfo#PTQKXiHpy$Rd+ at geWX0Q7E?CCO5o-CqPE;z~7uD3WGa{hA=*x at M+ZWyb2IM
z at pl-WbUT68F-B+`6kGmxT(Mzz7ywPo%Z4-tHx<MJA7C#|7Q_TQOsXF37m<(u6c;CC
zOsER$b7(IyW+N at pI0IXWE#qV<h44kJ)0?oI&|9d8V9Yn9{p`h^gq2m$0dTIn78!?<
z0X~XO0+?SN)H%;TU43?EnsIj$<5qqO<NDh)j_n$Q96LdGJ7$c14_en+)tan(7NLM)
z7l6>1BRF3`XctugL{-2Z at r}dhV{1mkt^|*v{eT-5+V|Kf20DP==j<Iyml?f?E(=%~
zfBZXrJK&l@)B>z%5urVfYfbvH*pBr56``7F+62*D{D)(YKnrK^c9<}^`PDu2$qHp-
z*nWb!dvFJUKTL=9hYht~&GO&X;34=R$kXT1!uBuYkCWr~h<}pDalEcSeNV|s?S6yV
zuSA30fn(g)1KkIELrYp02W0qr7hYHGpU%C9J-lqU*bT_d3Y~jnfaYjsH{l_=Fz<Nc
z=X|9V^kBNRCHCxlkei#>ojITUKlA6WK94_tHk;kDgnalPM4V2{(7&gX<<HP9GQ59*
zj-$^nqm5D{^Y!!liqTb}Qhq;w(5$9%S6qN2;BT!6o(PDbRuM>-b&ai7fMOo;0$Tc%
z2g>i|WvD4GX*B_*e+nS#_$n{SbMTCg%uCc$*ViUfc*@DBy89P^X5*M!tZb-BWum<4
ztlSG4%sKiOL9pX<>$$V)LGhPyyKJ`}96G|I4#q`{0ci0%$U6>T?m;lWV(+eQLHLwc
zH%^$g4FuhD?G!27HgtgwZ+~L#=W9FhJJE1HG`!Rv-eWN2JAn-Ds67Qn^gHfoU+f+E
zlO52Dy?4ZU8|Z)T5xGF^l%w58O at G7^rP0 at -!+kb at U^uV#-FKqps8Y7Q6MZKd|EKVV
zd^SM&@fE3z{@gG)RoguGn)t)S3pc=IHS*Oz1H;oQ#3F9Zn}tTz_FfKm=d(?;+>;I@
zbSXvsJ3{^xsw(yqG=C@;??02D_eh{9Oe|H~>e&Tqhy1^M&OFYS)b at Hdg+4u>R~rhE
zrUdF1h$&jkv^C3XX?rg(R5UT6utSfZJXOtP at d4oi-bes*%hSQ|%I~s6hfYadj-Hx6
zdsr`1dsJv=s at rD7i`)dVYo_29K_`+f9WRNs3)>urSl8+a)Xm9gVv{`#e>Y^^$I~!4
zTho7Qz!WBWm)eB#i2f0$nJ-zB&)xXd!nS at qcS9ZG`b3%|LU5SKJrk;iLW0~vUI}f{
zvcn?{E4y+^)o?wsPv50#o2<P9UH&hmj7}(((kZ~Zlt|$<c=ji>2_Z&)B<+<8tbCTX
z{=AS0#9OODs`vE0@>eWGDxUIE5MTP}rFxRVR4vrt>XttFk?4AAF51 at jET$bHExYg8
zzf#Ni{B=Ae217Xy1mg9ze|RUFq7K!Fk^Ax;q!TD>cAdqsoUM;#W`C7LjJS`K_IlC%
z=#lBh28>0<uot$LZW`){80K!ogCm;c^WU=U20W2_2L;JcJ6L*zKXdf`t at du*AXH6k
zftv4Bhd_R7=Z_;U`L;(XK6>kxg6c#h^X_~C-d}?Ep2zUrcH5Ki{-0yq?-_AN^9<?h
z;k5Pe5-_bp#W{uT_*pQJ^b6&XDTjHJm|#H%_d+8j3}S*AuMJpe3fXc(rYj2nRM^f=
zV_Z#5Qi{NDp*tCp9fhaZc)aJNCI*J66ur9(?c%mm#*lnL;cE<UBN_;qz616r)WK_z
z`lSxmRT%wI&+T`&k#XYfZyPqY4H at zD*U`H>=13 at UjUk))?#PSUa#V8^QVQFpwvhat
z!eOv>L-M7CeY6cNvpF_(e}2jvRoE4DqJ at wK^u_$Rgs<&K^a<s)VH_01IzNr|+O3oZ
zh&$7W(>KEj_uD=%?#)=`T=boQFrvQ&dq(_y1Bk!$*8h$I1hhtk+n6VxH6xPhewpZy
zmvte;$m7>7zCC%w-*`iW*T}m1oVGqgUpV?+U-!H1eNJm%d*6Y+s*n4eawgFt5{LSn
z#!RBQ at 3m-qUw2>CnLeipk~<-J;OGbM{=V<EcmLei5k1z|9sPaZ!FM~L+ at vI|Vtudm
zEjIVL&p=aF$nWSo at NOHFeXq|w)Yk!p-5*2FVk4A at LP|IE0~M@&2cnZc#@Yw;R-%)J
z at V7fU=?wm2HEb+8004Br>${x*4L}AhF9yg7$i*h;?a%li_bs-m;ry8j%fV=iE+R+P
z{&!zJ5;BV<^*C^8s^n+Vx2Ds9FwRUm@<A4DZu^|H*-Z65i#*N|<k?KH{ck9=SzsZE
zbem43{Jzb^PGK47^!{1=I`ZgvkbKZn$CNKqxJ#2SE|M>m8TsNO`BG^N6;U<`mr4_4
z!<##a7r|PT!vE$_HVN}U`Y<F<gw+uD!3J4wNZurr*BC`A9+igfPR_f?V7NO{i`Q$^
z#PD>drmVS)ce{`NsS_5StTZd`_JH)+4+81#6W1OCO(uemsZX9oCk<w`hvbXy4*&aA
z&}#RLwp8lw-o}rBN!*9;b`LgBpsn at 0-LV%+$c1;edtkxsv}Js^yZ?e|<VWQ0!`RYc
zJkmQTB}0wIboVy&zz>BQ&FK`nGj1rmj0u5AW|xuG4k6m;W3!rQt1 at QUH&eKpk#DLl
z-zqcmP1WUFrBe`I)rDK-ZJ$E>vWYouLuuld;tQjibmlWQCi$HRwZdG^Eb?n<1lj+a
z5zry%C*ZX~&=a>(qBagX{I{jYK~KpCWs}AMW4-mOS+eJY34^0*jJ(RM4u3aNjwY(X
zZ^O?aTEA<c??&KJ8=i+Br52yRXgH1DKCKKsLYa$2nZ<e;enl&}1Xq|cA7zG&*tZ7(
z*(=xzQ>2`(zQ(lo{*u1H(jJbKQ&>uM3#i3UuESe!NV)jX9v-#-LHft~brd<hab2fg
zFoxfG#P612%iFILzhN8pU=iP)G->xsvA<NsfAB{7zIb|nt2g@{<Ae0u9l%(}%N;CV
zr$&Y*id$NKbyfA)pR{Jl5jSGu`Dk^gWY9kp2ogqo;?QNmuNP$U%%F|2{edud72qu^
z6h)#mw^N_8ICiI<NQ=0piXZw&TOZ&ZanaW?-??Ra#N`xuW#Xqo{GiSVKXb*;0+G0w
zKG5u1A`)+-)0S!zz1$&6+$DbQ5kHm#@DsPe8YE7-RecP&>bHt^WMP5?sKMwe?Iw$k
z3MGgivH|!-UucdP;xo{cec4K((Sb6~@rrx&=83~X>eW)_Gnf_r0;2XZ%6bH|fZ}^F
zo|fn8ck0ZQp at Uq}0e$WIZB(zdX8q;qCjG^z at s8CX&!r|uG&oK)h_fTk&Jq&%oJer`
zCOkLtl?!-1e$+}mB`F)*nLB9 at tEn7iV>sCEpQzR(VKDJFW%bm2bp7<Isd73{>>m$#
zrT(w*+|XPrtFYp>&4aS|6wOS$%7#AkvARHxUm<8mIN=WXx%VrL_`ak^XH{uM0bWBf
z^%MF;7whnkL&UGfPqLiBQ-6cP9wgPD_;?}lvG`C-qEp1{S+I%S{|%sIRii4`8uXC*
zqhox3nZB2qHESjb2H{T2&G^OTG3U;RA{l?vi1rRpd&W$A=9 at mVJt{I*dzF^Z8vH65
z(khS7asr=t8;1WI1>us0;a>c`a_pwF;}1nI^l3vEWdhmWzr`M=FH8F!>Ut=&%*EAh
zX)yqksdr>e|Ng9a3Lzu#Z|wTl!P*n<a1BeBL7QfYXS4JhaX)^;N(<fu>c5QFV`ui1
zu>JNS1Q8GA at kcR--)zKa0lXeGM7ew|{hi}?bS<+d=CcmIcDtl~VHM+{S7+`d04YX=
z9Z`RPDlGpZSYUv{0ahvl>tdP7qDbN;lz-GCq}q?*eYI<~H-Kx)`V2rbjTp0l7sT;}
zWvzIt0FZNBD;}x?<7vd^9lU7A5Ose=hCi-D{t#cQz3w$6MagxDbztI6EP6{-oHlyK
z98i(JgJ!q|Yi7nn=OPdtxA0j6Co^QlM`a{mFwENh58^EQCKdD_Ls`BtJQHR-ZJ%`D
zWpMM1PF5m2dRD*4=_A)tJDX=rZ09OQPcjt`f3hgBZ2U{;T>vJSX+o}WqBOjfWPt@)
zln8RO_Pw-==xen%6Vsh5AGEKNH>|QCJ^h!QXSzH><1x$cIIw&ccNxVQm?6T^4Y|k=
zbn(4=NdM at CEprX=kVK3woVaYR%qoN{II&j~tI*{t!Mo|p5G?0`SO4BJ0Q~yr1o!~~
zaH;ryF at FKS60JO!bOg-H=AfdZJ|kuIEsjDPr5CUPb{s#x(nD9Mp?@p``?-xRe?ffj
z>I>;v_zRx9dlY)JHT2L8E}9)BAJgBH#*chhuEWt(HnkI{Dx2tA(d~g5!4tI$(h?D%
z{eoZ+N3v!T+n*(W*bAG9?q=ZNrB(62pFSUp2T#;J2lJ6u at 5HY@TOK0E1!gr2<6YMN
zOV1+*QNO|d9RyrmsRnU{CD<MKmM#sC3dS5I0_l$Itje_=TKwrq_RjDx^xQCv6WqVJ
zVfYYD^gqL2A*o at S3DK?3wMz&AzaoYn=C5GQvGLG(5fms=Zb<dUeL at NAs`_Wg{wPK`
zc2_C=rY|Fi{p}u{qC#!3W@&szAqT#lZi2oV4oY5VfiovkA`1b6eP*tMr(L4w+F1!|
ziHC^8p^boVY<Z(JI%&jm{1u|FKaG+(og-w<t}K}Yg?~rFBk>zV$~6xZjIRg*gB0C^
zf8twoktyjcA4flgfI at sP0Y#(Icnt;T6;KPK<}-a-(i(BnSB%EEFHFpbfRQh?;u%1^
z<^k`i9PvQ}JQgSy#4hir4bJv}ozE%&s<`=hUAnBql9@%yl~3O_qxjnV{Z6TmRbpbq
zCBB at L3o}MrQ#6I<t7(PiH)DLiTim>l-^7EZ6K{Q6VXd9YJ+dQObNPt*4R%LiM+~Vz
zxvT#nU0xWaix#r&f)V!#j(#7Z&n>kEkNBMtmofjhbVelNGC6;XZd7wW{aALqi$7N9
za|P94v`1XTRFPcbm8>HS@*XrFz`9zX-R6s^?nXL;nCf62>*%|O at N?2jt%=}he;mw5
zUNIYJe=%=CRUVf9Y<-C4k-GBg+`vE8l?Azhf2b>`<^<yE%9Xi+W4r~mX7xd1PT(!|
z!6j1QkoaDd6zEbPH09K_s}J5L1@@|Yc2eRCd}hInCKSSf?fmAIj at JVJ?s(#$E*<=j
zf^qn8#(!L6Y^WnE1?GO9KFb$bGT(3HH%{Y=ib683f(A#Avi1SooRCBM>r{H3fR9Hc
z3h at x%e%e5hI_3BA at _bhA*Q2q at 3;5H7&5(gr4JgfjGSIOc{uq{4hx6)uuqN at B=*ATH
zAk1jxx#LpUk*vE8!<jcsr}P-5AAt0(x~oY3NxfM2QchK<{3K4ruuScr at jL>nEP&qC
zj{n2lyT?aWo%_SHlMRe8xCfbPtW!;U!YMiRoRXGSrlB>HWRh?h43GdSQF_ZMJ)WK@
zGm4fZgvmgbi-C9vf(4~Lc<Skk2dWq%f+Qg&0jWlyI+0YPrfsI7ZPXURMdp3J&)R!t
z67YBW`+VL%-jA5sd+l{!&w4IvJ(n`L;oE5Sr=lM&pYD+B(4rNm8zCdJ<O6PQ<}h}U
z<5xBg1io%YN;b+f#~~MI8oS!ec;Ub6VE6rq2%czahg^Jf==_)m9*So*O(PMwMYlF*
zF*}m}Wd~1FN;2=+CpkILg6$~QVRm9rKG<hBH>_EDg<0A at vh-53G?T4XQM^(<P{uFe
zGr at FOyiyde62k+P?EN9&Qo|DKR@;)c3d#WP>C`0d%PaWv@~AQV=@9pV^#fD~PH{>=
zJk32vK%&m#l`Ig#ISoBytFZ$rdS=n~j at 0;$sr3E@=5>qgpd~sU7nZ^Lpq0^jYeImw
zm=(~Ef<hvo^JEd@*lA3SIuaS at lz|&fQ<ciccB>B at kojzPNUd%Bnw;Y@#LS!JeU_kt
zHf<3+gXcTsJUi4FN%DRk09=wLW;+$>oMIC5Di=+4hP?Bhh&L^KDwrPeY9ilh at xSKn
zkL0rh3=C#TvS2Bz!WG<u6u~s_dl<oEHdf&jp<|fLacm}LS7hy&C2*LX3}HBo!;>B7
zalFK7lrILF6DiSRvl!db3>-7LJRY|S`y)eL)_ldF21V^L)hfy`JF&*1aQ~8^aQ|^>
zgg+hTj}X_XOg_1T4-tY_#S0t=NL<+{*KngQtd^NLn%`skG0f*l7ZnT;XZyPC|G?Q6
zl+pAN3x)`RH=4d}(LG>uf};u*$wl24nG+v~CWgeI<FF<+X`rV3ms<YS`4I4Bw=HpD
zh?!rSWmnrp-5N5(*4b&xd_e^Y+ at k^ostf~l986T-w_3S-PbDjwA}cCPdL(4Sj^OZ+
z2@*p)>+?~Ni&6Z4gPyKTb!+|>8eH9iT{~hv59{f1%0N}s{59wJORH7=X(Mayd<!xy
z+KW84n)c^Qt8Hcm)7G&0Eu0K8%O!>erk<nj6+2~7S!XeaU^h=Ac at gf)BcT6GXOTJ;
zD^jOoMfaHBm&$pC*o1q5^lMh88}+{eH&+C2eKZ9l^NURl40_lK;g@*Z(gq2RlSQ=9
zfk~LtZ#JXnyo$vctOFeUg1p-aas5^$IS)L!p9`wsgZjXo|EiJ;en`oDtA_rtI_ at Us
zI*%Lm{pO0 at U5wiI@aibOE&L?+2-0PEqqWy4=V!iyWY%PToO39?Dnpg#XS<U7%eZvV
zuf8ZjIZr;tO;fMgk#JE~q>vcie8uo?V20NW<gu#__S!}FFxCpSrW0z37dsMGeABb6
z$bR}j-M6hianv-NDewXFz!E?0<J(ozz^h-Um+RuDSH1)=$8_`immV|ci-f-ztGyxL
zm#uufh~ZqMuQhkpG+IS1v2gVW9)k*wZ%ZzfE0%*2MOmulBA`Fof%h;yn80X<AtDz4
zWR!#HRQ^S-;~1w<NdodK0V}_55=<pV5OqbV3J!qKv6}J-TCS+p6#mNY>$y_GtQ)__
zm0RlM#s*kY!AMcAU&q=Wx7+2t4)L~#irc3fyWSM{&OpGW`7`DGEaD1iKYR0}*M0Wm
z at bO?8Wt(3py_qVk2)%zK=9eIz7(1}mqM_mO#zsCO^`D*-K2npZf(KTjJyHJzt0P47
z=Y(5p|19_mbiBEz#Az5CnVc%iG;lRz<Gz7h_?!Ha#y4tm&lB9^MRTd`4~RO_ObK8A
z0~2ID-yIM<UW*vs{igC)3J+MUE7RqABwLC{{H45K9Fp}<>`-K2U%k!5YJjk{C+Ov_
zxvGa8MVnd7i8f~V3A)(R<i@#bXL;S`!gw>yHSlJ2dij)I-tOr1&S0p-Y-V<PSuL>B
z3uI+W&TR?H>BO$@{a#`X#nYI!80#xt*O~A7tS#{+KLh=7bHFb%Sa}yr9M<jE%pS^h
zJ4ZgsC)9q`MOwlmxH?Z`HAZ~wv<<z?VOp;cZ;|7%DrA6|F+<E!$pttD&6I0fEF_^5
z?+Z<n4AzV at 0Lzq+(jMS1F9ZAPi}bOsCbKsVtGRjn;#MzSdI`OPNILew^}JmTMsFw0
zr5$T}4b2M03F>Z5S~W5)Q!?aJm~{CRbL?@OSj&8QwC4M`-pwZgI{g6$8+X=>2 at UHt
zE^g%-3n at _5?B$dTb$gChr-?3Ah1|sT7C1cJl-Nyh3b*TPk(gUOQ2SH47A>0HQR2iQ
z!6B2W7wim~BvK^HwW(Wtk(-1ElNG<?C2;I+xpoA{?vOQ^@U>1EJe(m@)u6uG<vce~
zD}BA;CB^V_ajWd2OtbP&TG(Wf_<Zw5iFQ|K!Cc;Whsr#QvW$&Th#J|riY3!dMa5dS
zxGT!?tOXpdx;h!<{9T(xYdZ7zP=i*wGmq(NZ1|I8ykw-h)IkD)K_FKFk6h`5z18cV
znD{w2fyei=@!*im2caqA`w6%-dIrgB`G{=oW=3z1!4`*~V-03C8Gt9MEgQ`#sEPfj
z)x<woO$`1*UTbZyqAct!`s^N`EJNTBdy?BThsT3*Tl$LDd0HsBhs-?Giu%dm0W-H(
zN^EV5#i9~H;~U=F?@aP*Zsyk(<{baDV9u${=+1-8qvgG%f;oR$+X=@R34L3^8&NLN
zp<+7&w(F-vV=u1|#|B;l*21X&W*Y9yZYgg2y?u^Re;2=vE7lIvOP%?`akJK(<m}rx
z?Yd%kGkD)VN0eq7_1CAXd~+gt8pkK6v at fQQ%I7xfzdSl0rTx2VV-CF+hyHAr<3)ZJ
zm5IRZ<95uVH-j;Xn|;C1Lnga}8A8wz5_Za!(S4`a1$NGK6dIqe1EAKlSp16-ev=W^
zkSxiBWK at E;Qa3m$3}2RHQR;@Tq=BAA^jV&vz;&nq`o0rvHq*r{N at sDsQFBK;o-~LS
zhePLVF`PW`0L55!GKd$^-u6d5)Mv~Qi|nGv5p-kdE~;rDzJSfmYPoM%qb0gE6*Lb;
zPC1sQ0TWPU$LJy6*+Cl*m(kFzaev<&w;3~Rz7Eezh*@#klb>a5_-BnVG_8G+ZiMe<
zedCeM+eS9eoeviz{V$Ko{)U#!&RZn$6^HOfy at D{SIuowK&wg^H`c#Qu*hY2$uotfX
z#PW|iDu1AcZBK_%`l~=Q{C&0`9+`Q5qN~Mb{DqO<a}wVlFux}thxyb5sv8h9#1ftT
zQQVAMfJFQV3s5pg0!nO;)t;W(UYpe(a+PMresyuw1O}c?^yt7vwv9^p78+679oq%7
z5j6e{tMS-%XjT_;fgaK8+WOLzbjbHRLx})e==1C>!GIk5#wT#k%x+ywenFj&LU9`!
z6XH#{W2(L=I<>b#!xQfxv-(@J1D??EnES7yC!_vO00hKdKU!J|nHN_f!<{|{PaUfd
z$P%4J+{(t)HCj=yZFNoBtl-P5YtoB?FRrf9ZNXitqY}u>Xf7Jl;QP2C<W?_Z8$zE`
zPvaUwH>xLlrO~|Ts<uA6)?Fz=nJRHS5+`ut>gta*`tSw%5cr0iOz8gs-j7 at -NWf%z
z{v1EMFH;mSnkBL|_&+w9eILsSY8xgB=*C`dk+vf}eSx1G^z}x5a#}lcv4xS`*p}2i
z%Cl%<L!12#b%bIxw;IjIiEfAfa&<({^9%=;^E at uWs=RQ?gn!JJ5&j9i(wr?Z!jJG%
zIz6r9C!HX_8VbcUX`$gsM*UhUUi;n9urqKkkNb9;no$foU95D+?gYO%BF-za-J!BM
z%(*F=s3yh|)~tz9gNUh1ipjxk+~Xgi$C`ES0?}9*|Ksi7@%Fn<QtdGTUw|jT7xlyM
z5GM%ELc<dXw!YyFd`VuXbtw)w-!)Hxkf=@tsU$qDen|UX at b%RXrTs_n$m)mEzY{#P
z`XT-M!2?F~ePfK~{IN#!>~VyFw8QjbZ+p*fG%vVHYa at zeG#89Fn(v&TwTp@&c~hhy
zL#)V9;g(C8JW>Otj?MxXSSR-XOq}*YngHLBg4B(;{b*PRU6T=$Il_N|Nq>*Y84#U+
zZ&Ngpniu6KiNJoMNW`2 at U-#9FN=_C>%F-@{&QGN8HDAv;GdQ6U--{axzZNaZ4R){i
zO88XpPaLH682pwglx(06{$tW3Z`TK37v<gI<F$vVPE7aUKK2XNosCeZAgJF|WdEo1
z_nUv_$Ao!{c!Smpsz&lrCcVUoD{s~C)HnliL6;x^<YYG6I0;wFrjbXfbD!ctW}2wc
z3=wT!%>DrpH5Ix}4nCY7S2l&#NI2_$YaB`{@^webqtq4$mQk+Bm%>fkzs0Zo at oAWa
z&5JWa`;l at JbtU^FYIQX;2eUF{BjiKG at +Oq3A)w}I;qMc^UZbAlXZk@&;iKc1&oWEv
zkar*ooc6JGo|qdPSWzYYec?FkB at PLyN)yi`cVIewG#+iGk--I^q8H)rz%g0gTLha1
zQQpg;cqmi*ZR)Cc at Ld(rIJvri<!<!BtK(I2r7rxvgU_-r71}89UkxrFEY5RGr%nq_
zV4su&l0bQhGy5o%FMUHfXRs{0dAzBh00eG=f^si!mrl_}d+$!<R9qN5rw%}Se3BLg
zV$hO^fy2F`cjdi;y604`GA8pd`e80=WwL<8qMxE&La-l(g6H_y?6?Yf;NTO1UZeS%
zxUZLh<u>ZPQSVl%x53w?nz+bZ?GpSM_Ztmg*AxJ&L0#gJuu~f%bM<TbK}LN9C{d5U
zf5ljM6vdl57e%P|sGP5dT3u%BTF^>pK+sfS4o`R5Y>5eL at aiyBFOLc@)6 at A5aWvHK
z67!wn1iTC~h|t#tK65A^h`r11dI!YY2m_r2)6K&KrbpNWr60 at WQwN=I!%(yr!q0P;
z7=*i(aTT+)CbM*a4U1BtA@<rOb0hU7Hxe<YmuF<pH3ZPJmI;3}Hh3v<B$IP0*854)
z->Z2)s;EEVS`&*6$!Wl1l9AT8irW5QpA-Bn<AR}N4+9n8O{Vc?A3KM-RU{`xR*k!4
zfm59YP9_AcBv?uXqoHtIOd~u~<Kz?i3 at f672|XYM-6QoeN1&Q_t=9SYa76qBQy!Xz
zWhFdzN~tCie*M;*BGZ}0cL6c}(~AESIdKwTPl?<0;3+jeOlwH(GHzo~wa>9&%?yD`
z>tjm2L3hf1YWP&(SZbSp3CDw;k?n@^GSaA7>SFjV#jvNeK-50PxFRX%lw^dD1T%Qw
z577+1#PhsFSNCk);thEXEkQtu<!b(!=NUEsR&}OeKe#JlueVjR{Gr=rBPtIc4_4C_
zR)|!&m1D2!4`s-^b$JUW_|dT{e$O1!)V{uw6UNfu4|JIJ)TYgSQ)?ZY%Y!8~t<#P0
z4=KC2MK-lEEwBr2S5WQzp!7p(|E=ykE`W{5=5(ZW at b<qO4Q=elq0{*`q-^{Se{JQQ
zza^=TIM*+v|F49v!k%+Rynw_Q=vCeMQ(XNIA<1rhgge1Ku5TGnf7f?&gFT$`?W^&O
z;5 at -6S>y&gpzN247*^@#x-D at MNxz!8_-|QUJi-*bJrPrNQ*qk|_IXDApC+1e`Js8i
zFDQdw*@UW0BC!ymLD`&|sOP<qi{?>-#maJAvdK6Nvn1msCDge76 at yJn&~IHfB{N0}
zuNmu!!e{Lf<Ed7xMDVK60esPGCRv_SSuS?4ZLqRE$8{LnqkF>mD?&IwG9o{pz%Iz@
z`yFZk^F(+LgThWuxM`kppj4dGDj((J<yl#R4e=4aJQ6_G4JT-BB`3-V3VX&I^{2)|
zQM|p(6Gk3YWbh>X&z=7ZulE#Q9HwxQOJnie%gf>(hv(n2#E8RtoWT4z39 at ssj?LE=
zflX;@ph}5N``maFYPB#@LI?0yPllmMoDrac-(1C+i%1F);d)dMyw=1~i+QP at rOwD(
zs6h)sYMf1KvI)Ob-vXNng9=4DEDbx_3M#ALF4$`uZG{+u1J<2C!eg6^w%6m#tnU1)
zoKnwoF_oI^)LC6eVNsub;N+i(&J2%1R;HNYk1ndoNE}{~fEiUWF_cqYwM~|e+9s<k
z+!1>nPW;ZdbGwHSbNM_UfrPi16+;?;$2|F%RT}4Iu}v3wa}O*uo#fv$MsaA5 at UFYg
zEPQ8%T%n6??CCxi05y3`l9_JWOv$uM-se!r1p1u7yfkri{9^DWRrpMhz0o+bBv-{=
zLXG;*pvhcnzy!!*I6lxtxRJL_=mSG6$&isowL0_FT$H$F+6d>Qr8?ZOZk(d4?yuj%
z7Z*oFWHrP4pVDzTD#D=4gLxQ1nwGl5vox#kOu4xfZFke<1q?|mh1)CmYwb5A_l>xx
zX4KSRGxrjIEmnoEShD6YP at 35dIU)4m4>V)rw{-Yr!7O>LdIRHBLY~})9|G)+jD#cn
zcEkuD0~ALvhr%Q7)nmucTjw<u?1iCeeG)k}r(1bV<aE=#*nG>s{1ujCZF+J!)a-=c
zzmzyXGLc_O{fkD{AA8Y6M{aA&eJ$PGa<STT$_!Yge=d=}=$!Ik$8?G at CH0FI`)j<|
ziUPrM#*E(cujiD{AL1vf2u`*#PRB~zp&+oBcmJ~rD(_D~<+B!4hR!<$zZo0gRWTJT
zw<hPICM_`!3Z1K~{O}H5i5;VHdg&;fe%RN=5Vsu=mw`G+j{IB~2^j?%Cx$LKYrjQp
z_giziH94ngXgjhsm7rW+x~84v;UhHFq31A|Ny(EEAGF8m=T)4MG{ez9ym$Xv<U8r-
zHIeV4pVx^Ep&tZf;LD~?uWQk$BNN{nDODa<Ri02)o>W!-MpgNys`4#WW%N_4tUG|N
zLy1B1@)%FIdw4X))2)i<xK?9d`xDiO>pus-GX=TZI8Wpig+o422wlyO$r!R`rwIuJ
z6oUs%w;YbAv1F at FPQL!h9eg at +A)e|L`6jh;e1O-APureVn=X7?y0r{yoBi8ah5kqE
zn7|T-l9+Zuu}PNqW3Nhn(~OZ($B3Qa_wmN<D!@$GeHJ$8VC|Ckcf4^1{`N5eO|SZ9
zMF~o`0+q2+&0CjPzQ#7NOCBH&?Y9B37<=7I#O;ZfrAyMp9eVOj7kAi`Z)3$Bj^vwN
z+~G{VjTd*gl5Y-iM at pSnD+RPW+_cCQHd{&*F<R#kBRG5L0Df*YHXw>nEaO6A-%zKU
zu%y|%3(vGUBU>AwqZn|8Vt57 at DL8BB0RE;wP%0;fj|c9NzAhEXE+u>gE+kBFj5g#u
z<>UxE1>-9n>QtzG5<IU=evz>30W{}~!Fw&Eo5Uujsl71?1!ybyxCue$w^DQIqJ1!w
zkaYlX%TScjg at q$hu}=8m3zqCS0!;sDWU1J9FEFlD6dns)iIK0e4*cX}%%tAOPCIeE
z0iPW9oKp>3?Knz#L8Aw_nR#IhJwOF6FEnh_^d7E*z^>)ADg!8HR&wAdr|xEc5_LG|
zW!dC#9S&8s!*w at u)?b1S9<EcSWnQ+Bs}yxOZLJh9;i$DUpU(he-~Ow4!1zrIB2`~m
zTaTC>mTQm4CY|LsO}(X`jmIzJ+G0Psc%{@E&n4=K9X?}iJCkyJfFeveoTEQ=B|dfi
zEwLZfr{@x%w*1WmfITSyFeU{6BFyeGD~(lLzXqxZA}X(G8_>a!cwLeiY2IeY8=1{w
zU4ct@*)GwmbgfC~`@zV~u|SWjYMJHtFwY)a_*eD~R{uA}NfcAwd17-Tc#`@9BhnB|
zD|pjr`Qrp{trYpg;-k>lC%5t;shzqm)*$AT94|wt+q~WiJ+6+`WoWZHRhOZy>QLP}
zN?$$#i7OV>y#G{=z~ai<W=2k2R4JKPyv+RLjTh7<N@{2Sab#!NBF{pqJCo!$e%{(7
zf4r33OFNT$=^bR?5-Qt2e|*Jkdq-va+ecSyt})Tvn2#*D8PV<kI6t!6r$6N8OvMt0
z-g29HSgnLQzg^+TEj$&I&s+YlE&bKUlpG(JBVXWcKF<}Y!>O^SJ at 5m-kg2;_>f*DN
z&zQ&{-^D)O@?GY6o at H!f`u~d#h(F`>ib{N7*30dr)E at j<iv2kD at OSW_>=o1ZLH{;+
z<)9knd-Tg2AFOLEXLFrYrK at s>94Gf~S0M5rDyzz{?4C{KAe=NgP|+B4h$BZhLak}Z
zgwqLq-?~dslX)5QShFy)7LgEMMh`>7;~psR1cy}22T$;{a+FRLl~~ny=;OmGjXAf_
zKw9!sV1>!gj at zfJK2mSL%?Zl<y3Fco=t5c`yVgC&2qPW at 6u-7x$kRFog5(ii0Atbt
zF+6b9pO}SzUrj>n8&;PGALC&Rt{<WQLlv at yP$RPk4G_X9siD#Q-OjUbYWH>KE7gO1
zJ{=Nkz|4%+kIgv_XJT;k{prrcc>mgl-c=e7ud#+h-*55bwjIOIGE~L#!AnRGa~m_E
zOWgQ95@(E>!OpzQyiVj>f*(N)DAXS~Oa-4`I$_ZPuiXwd^l;)7vq+b(sI#hRp#hiY
zP)(XR6h0NWyVEz+-IY~YcdpN-+_ at bOU6^QWY7cj-2*WSqYNqZSgyg_?B6XR3^JN(8
zp!zJfZtQ3Abx722+<tM?y_&Lr@(p1GiR$al at lm^J&GU2mj3KD{gWD?`#ofzLU9o#a
zRaPnP-2}6D|B8jhy2L8tN&TC#ikK9tXPN}79%<(*vn$yfV`W%Hz8p?jWYDP&1>_b?
zSYT#kjXCNEt`U14<8dav=8;TPnrKiHRGhxq&9CwI#0qz+i at n5o;yq?O<Z2ZU8M+~6
zVB6L-OM+&n04gN%iyWZ$jQRBzJh4v4Hl!2QKY#$girY|js9_aBSf4 at i5+h*#8%8!Q
zs^TR7)8%oJuWOXskOkqAzXVrN1%lt>5fmq05YNF=96fofstpbda^el^$8h*$j{9rH
zQf|U`E0S`7ilj_9og3KSgowrY#VV80{P<^*!IXPP1XKQUniWj>K+X|0#0bg^epPiq
zJ|0F at +1;Y>l at c0puBMW?Vp-qR!7-6vL7!`{R};2+X09#R)~UY&+{uIaLuXMTHE)Zs
z$`uE+Qz5l-;+7J2{x2vkInOFavl2;pa*bw(r~XJoWG{!R-iED%iOs$swzZs3z$YA7
zTIELc|HKDk+jjiEA3jx6kP>ftQzN&=S+}WGExdkGL;Y78sgwEf$abcS_!~Y_+l>im
z2%``2u<Dihg7Ud4De{0Cw%ypk4pPe<L<GIW+BR|2X3pek!r#Gc8QGC&c=f95C(+Kw
z5tpi51)TP9mQ}y0>$oR1x^(?!mLkF<;5VFS`O3dMAP%59{7;`ScfjQB<wk50uX3nY
zX2l>LCl1H-Ppu`^oWji}17t@`D4WQ^rJuV}=;_$hxbml&^l#k=E=}&<ua5gChFZX>
z-D=bqsv9>Zy<Evdw$y_#GuTlH-%QrrGtxf~HM at QvYx~Z3$=fp`g`1{c76}?^x&(3E
zVBVIR(V(B2!O at _Pn9U5lprl<QCuOg=iajl8t at fv!B3FM;Gvh2NLnBeY33`J$t)U0A
zG<XxP-_**4*`DudMBW-i^^*IQXT0?-+&yBk3)fQLHkC+XQVZ8o`<tqycUrhL_=_B?
z3Vzr;qORIKokfWl)XHe1v&alZ&8N0Si5S$f1spHJFtI1!&0u?Rh>V-M7<4`=Q~bM7
z2Uj}zZb`0V#;rB at olvziqxNg5^c=;zZ03PA8(tXo=wI9S9rlpVX}^j%9V%4wmWrn(
zrm?<*Q!IhLgUM8wy87G-ee;yNYTi()$Fc+l^YwKYOttf+>oGQ;6F-O}?HK$;qb$x~
zwk3I6R-BQz4^$lr-f-D{nDr?zM59{Uf=9j)u1u{jaEnz}>_*nuwoFBX7RRVqJMJlQ
z6f7qqzEw_Z?2GZ_{iek#W_YTdn1V~jdax_m)lPAOXTWIoJ5O8?=T7vMAP|7d<8B%J
zVnV;wshuLIo*VZQ<6Fd8heLhZRVw4|RqxR54PA0lJ~7`eybfcd@@Y!Y^n8hY7{p2I
zGMdXWCJ_{vSK$h)ugY at 3;ibtenbQA7WeK+&6w&LDRHe^37~;G>mA8;L2)0Bw=jB-m
z{4BMA3bo;Na?C<@t9!qV)#Y_15yA(<akDR6Jhp7)eAS&^Z|+@!n&<g)eKli+Gs3sW
z<b0Q8;lzsb<vHb}EexVY!|&LYR62D>gBHOaQ+<{1s_p8o`mr>wn-K8Bj5ChZ+?W!N
zY7e$}9l}TEdDieQALQ%qJyKnQ<Y%c{WrCb*I`etIrTX*m?~z`%(ECDKGVnKzqBH|~
z0KPqPwk|)5fav~XvdSs*T%w{2LB{DzUIv1U<H3zM<9NtKsB!4iD-2_7cv4FkG%5f1
zen;riID`wQ?1&h?Ta at pVWertwX+w!9f7aOWV`6n8^M=LniD7m at Egxs$722puLw0Kh
zC|mZMv^BosdB<2^O{v-Mi1XsZ6Xz40LCNRaJ+5ty&rGQlZ`52R9otIjQF}wYiU8&`
zH|y76*N2Y;)D=DAm@{%K3%6(|#L{p}rMSM+w?kbAaf$jhKxk|cL#cxc)u^=c9q2=4
z+TY&?S-vCg+hN{6$nu?`>K(UM3P*nJLUzdco|YKD^gnA(L7g=PO6PB at T}^>_yX`#A
zJB)Au9O!u?XoP$_45}WL*6cz&liez6yJroS#Mt;_VA2H{vZ4!NGiY&rd&FlE$+yZW
zRyq)17r}t{vr0=V2LtX9`I)Kk#<Vv+E32-9{YjYGDoe8*5q}qP$#(P3Yv9}FjnxEz
zZ*{i};{GxF9kX-B#&4s`7;%g3(?=YrynM8Q at jUC*FAR!C8nY3G5fa8d_ at 9mYu2RU3
z5X`fY@??LAHUb5Fj$?O<Lq<bTvw9VStI_|Z-0#j?<-VCL$5vSZ`2E7jk<%Rczna0K
zCn0a}q`FkB?#5s@!bk1krYjbkW){Px_~>GPgz6TQP_Ho2!^5iF&uodVRayEfYFsGe
z>%#C7<p_5=%|Wfa$1L at Wi=Q%}P257DaCEQA5N7PBTz$%%(R_Vh6_{*Rj9}fN)^V}P
z7jU2suu0(4(ehTp-!@clK3zm+8fLToUWv$mOt{@P{cX=6VR)+Yw>>guW>Vh`_Ge79
zp8yxfo~&qtkqCJNA&yQP_2`LQ_c$Z6z!>GddEI7(*XmhRegX_hiKpGD-=)C_ej;Zw
zHv9q~VY1}pGF(6Hr|VR0*i_f4nh<7t9UuQ)2RyAznXC|Hrga?E2ct!czLpQjdSwlk
zrwd=dI859Q_!nq#vff*8yc`R{@&NKYjkX61r0XfseYU%8_$ES0PoU+%6gf`ur))L0
z!e%qA#+Hmc2jbod{iy=a)98EkiwO8-8m<i(8~+_OaD}k!{xbvaX-J=6WZr0~GhZ+L
znARw1+m at BcZXO5?<Q#!s;M_GCc^+lm1<SWFDDOW_!$nk29&qqia!E$c8R{7F2bB44
zr0~g`0jUFrhLkE0-t%V;{#?zqr at iK%c~L?KQMDHPD$pOV8!eZyagn;Ot%u4&Y!>b_
zhHtGoF?dWaahdI;w2^dxvIuVYy%>ANX(B^&)kwDwXH~`~G3)j66{Z%aH#R=NT53(N
zQa0wot$(A!CzG$|==E287Xx#%gi(v)mo3{C#Wt@~bbhMkU44}O8lPv1LrP9j=U8lD
zzw%z<JBaBp*>P+w#c>2~lah at n5##T3qx>Ngv$2*|iuG4&KkO`0r_3S6xlffLlhqh!
zvi2hnK?w&8K0Ml9ocSk?d#6H_6S?|jl7*6wZZ#RH9in`DV1isS6+HaaY?iS at mLf`L
zxB}R~x7B7cVZ^PJM?vJkyNqO9o<$)rE<5>w7?<7rK#a>Ce#m0xCWV86Uzn8hSd)L*
ziag+7wu<t{<@yF at 9_kzT8p6L>`l%+wG{4!{FhToNe&(R<O8m at 3?NfOP=YJ)5iEfjh
zAr5=H^lgs&wi55MlX;h&Cq7^fkox$z=MlC;6&c1xhS&M2lz#^({|<}tKg*PVCsY32
zO!@Z!KY=62q5+v?e`;OF&Lr7S(pwM!q64W!VE4x+eR;?v1D~}B<`Gb%xh8!fO7!)Q
zm|QFvO<$mHVA7Y7ByWr=@OiW1U*kBbYryzKova)6i@~J#D$|WQqx at 4a{=Wz7=VxG3
zU?vz1KgtN2d064!FUnhGgNs at 2z}1K}y<jSqjn~@W!F+S at Iue9IF!ltpN*IRr&?nqK
zm3PEvPc^~+9&@@7Kb50(EAY&7C<p~Gb`YErghGb(IS`JI;Ic#J&18_JPAVeRf*97m
zmYN^&`gLIac8Zlwl1&H0%AZQG#q+MQzMMIao!RdyoOSNRB?Ux>J<}BseMCUyQb6>P
z^tZ&RW;4cLvw#1I_lYmB6fUnUZ}pV7)Ru+f#HO_|y51SN?TUQb4-<UaTjHIzONuM~
z5wm#o0KaM>UyDH%Qd3lC%}&fdK_l%>8Z`}Nww^K?wp7P>268W0YYM%USiQxoMS@)>
zyM{um_%7LDne%`BLlg2=Nq;vq^Zh&7Wl3cta#8`dq<5f>>8w6Bu;(ufP;)7>f<S*a
z4Vuas8|~oO9<%OmmO`@JiIS_>+dR{Q`&H?y5tW2mE8iKby~MBws}HpVAD-wV at Ccs?
zT<bZzDw7!Q?6cTx=VqT6{(QIQ+Y={2jK!{4>=N%12XzzMWECIwa3_twSab2;d<<p|
zZSa?u$1`4v(-mK<W=eBUrXbXZ0qG~c-x at wefKCXtWGX0NCvQ7@&MBNIR7a%~TG8eE
zMfEXJ-bKJHs`r3px{pBCsf^nZ$>pm!ls+P7ZmwB0OAMVDepU-yW$Ya{!Pi<T#ua$p
zu6-8(U)=>&<?8(~W*|ul4|`xS(IHB8g;s8xDjsl%+nk|}rIz`aIp1 at WUa^>m4JeGE
z|Cwj}A2GOKH|#C=a4B{_HhcHLm~-YG+yC&<M$YlUXH5H2%n#oQ646;jzf7sci~CKr
zhjP2v#`>Bj at nL+xVGe*2l&Wn5PvA2gUFaFkY$1tBvWc at QJn>W3PT>S4VxQ4cW$QHI
zqj}Ngd<RTmd=AmX>JIlh<t&$E#cdS;h*cI;Xf3&qPaFv=uvQKTv{J7!!efXa=CY2k
zvGF at vf?s3-s}sbM^`eLn(dLby at My_$F`Js!Te22kpQ}sswqZT=46CK8a8O1)=0?RV
z(gHUizDeSwGjVXjC!Gjc^ZP{O^TdZ{OeTU8(S+hbLn+k?zUha)jDCQ{VpcqfxbrJR
zxi+IdS5uLCznfYYL)({)y_1cD?P0#N4}QLqM$&L2=RyLk-_l3$8^vmlYMxL-V>6M|
zCY8zo#BrtXCF+}?tdcMI%`9zfc;-^7LL5;{qJB<*H?hpzKS9gLx6{Jw5c6FsW0Hgd
z at +@N at v-yY`u@@r_cre;|myPxdBS!1u(SCR2XsrQ08)xW=LA58&>Jo;CBLRxqA&%E&
z81)hSH1lVL_IQB>_x!{&JJk&RbMA|reSKK7a;ULoA2tX3p~7NHdpoR(8TF^o93%vV
zuqzb8X2_Kc>rBxtwC&Css2v2jt93CN`V|@``mR)sVn6ys6;XOYCJLuol at rQ=4`Zs?
zovGrp4~&G;2{bkiBaSWyjb)we*l(%Afw%u^A=U3AZO+BiMn<3>Wgj{qxSc==kUjN{
zM-r<v`^LfsIz`-#s>15t0#$4hbqU3|OED<Qgbo0-Y=fVVD}_P^1O<IkL0|ZIWvA{X
ze*3pXQVv?PU at io=QD_PH+`~T%a8v&^V)hEm2~P~kTsxv)C`!e452y)b^Rd*y!T8sl
zvdsxgWmCRL$m at B3hrHhUm#j*@sJ at wH^S{c4SxT-hV1G<dRxUFO(I=9`k1PKGHJ{yg
zt75}D;ae$=$OjMp)$5s)Rr~uZ%l9*w(Q?R#pJg^)_=f_S?33dsfZ;TDF~y1n<@Qj=
z3~a>sdvZ+&V^`qn`cf at ny$%uVVfe7<%+oW|Xsfbiuw0NO{KWVT5FI2EX>8Dy$jdfy
zt#ZK(IcsL9HBFQsLpWOE2?-ScNU!@x-uL(ih~$z`@68fzGT&kB>JnXB&Q`aAF)BaJ
zBF1SLs8Pj%hlxIQvlIOeIkQ3f`ix!O)cT+y^{3c`>S>{G0oDBreakteQSVNY%w6+!
zj^ezZx at GKogPzeyd9UzCi68YxWqGgGBlQj1+XbGAlR|$&>YIeVv9>?wRBlCI_2<}l
ztsjvd+L6D%Kx!f_)UMOVRYP&#>5y-r4EFTCE at R_A$4vn?j|J3x<(WO79c&Dar>W`m
z>Z>)HLb$=0ri9q(OsCW$95N;8F;gn7l*{~QhE7j~!U9{zLXlxNmRK&D7O8=Mrn^93
zH?t?(M)nZ53U_8MmQ4z?GH@$UnB at YwEhM3(Xu2}~HdVhocTK<V>dqq7u_Er+2t5Ph
zAKT^Xoo2O`vSHv96#*Czh8jo67pu8vrPG9Oh<e7}5%LS+9_Dsq1I|hqAfd}g5`rlo
zh{G~353F(F+8Oc at ZpmS~9Y#xU#*6r{LA9r93qGHEp6?q9wN8hi07V6te1zv9kQ}(*
zK|9Tf`0_<1j0H%(!xR+dsXM$Z-Bj0Gpi>S{(R5?YUD$Cob2X!W(A*7d)fTGC)67Mb
zYcSz?!aH3(b$Sb-N(1osmRN&}%$|;o*kXhy0!o5Id;vH;S-wORmB=+PMDP^NHN~tT
zjg@@`#lFOaXsujw6Aucj>37m-Trvo`(}|r&&9zNun&NNaYa$FZIW%jbt)Yc3!B<tG
zIyj&TT%Pep=tn?wOW7q;AAg}%H!(zQ;Em7D!sY#00{gl*bjc=y$BYeZk?U`j!B$y1
zgIF|g=rHZ}E&<7Ij|lFz{2}zxe$P+c?9$(b{a)TDXFkGrE*-fQQ8~S_dI5|tiC^~b
zrhQJ&ylsi$?@nEBO6Z|)+S}P}Qh$Q>E$v=l34MdqpVr>y?fg^$)hP5$tKNwF`a-_m
zG8ydiP at gwKKI1_3)|n$o`iwE<^Omnq!al)%Vo;3 at RT$v>Ji=gv1TZJwEIG?USg-K>
zuurM{n{$qz{g6=io53{kn)D68JyoQLCg=2)vlj?RO4v3a3tVsce(e;F`3fH)gguaR
zBy_<hXExSc7jf-1=c{n<MK7Zp&#Sc`!QYUtzl at Nk$4}kIrAMsi6J{Jo;0H$jF8Oc*
zP6+tf6`r;674yJ<&9EKu`T7yse<S<_-u!Z at d7_k`@E54`1!#--hD6=7Ox3o>*;Oq#
zeD*ZO!4{L0<T{>D_JMRsGd65Bg#f>WALg?Q8p8jMEah=1=>|A{O(G`b0NTu-A?Ih&
z=p%X~sE&6gE3RXyM5nP~1JI=Yw at my@e-VdzL at P$eQ!ma!MeVZK5$Y@>xDwr4&b~C$
z?8hO(_0$bx*P&6}fEn)m84-OmlbMIbN0eafIuUU>B|6bBTttrSUO|9Sn&mlKyIHPQ
z-q7qharE?%{N+qO2SWg_+OH?#K(Z!;-;54TV-tsAf661`Vzm<nPjDo0{=U!w*R6hd
zirRAa5~9`2*Wu?CXpBCra8utyhssn^O7|DonJyErxzAqgc`&PXXQBg|#RstAiuaN!
z#;|`pbEQ?+V<ng1%C20r6NIrgg(e%Y+%@h_FK*?ah|6 at t%i4dYew$nkd{*LF1Gj=J
zJ}=j(qkD(&y04ty%uqrZ27gQN2z@~|?nDI at u~qR={FkDKR{Rza#+MlgA7C>{xKNOD
zN+IBn(~_apAG16qeuOt>u>h&eaTix{kat^(^Bxub15jF!g(FcM+^5_}<j+NkpVM1q
zXogMcHdTgJrqSc0>d{G$>(pZ=J+4xZ*VqC<`q6EH9{~q&H`?B_Yi&{sx30WHG4T2$
zgt+K0jIOBrNF&~HOwI4Xc^uBLn2&-iV`G&fE8#PN8#{{~L(VCcm5s!0%B`cxIDOrI
z^_0pheghyagftS-^Df_xqPQydyGvI%Pn>IB{y)r)@R&uAk7DU(36AD2Xao6&5cb*E
zFALmqR)+AO^mNtaL>6Y^n2|_V#Q+KZv^_jM_b-k6P7=uG`c8J{GmzB2!#02HeGEp3
z0ET!7ozL at h3w||1xP%hX0hm07I_9=Or<H*`&fX3@{?o>~XD$4M!;-eXaf;p#!E+x8
z0K4u{)l+|%VNa?VV}WmB08$k3g%W=0W!CMIZO|c$XKKE_xUV-i*juwf`g>8&e#yXG
zJdGCb9W;Blt~w&u;ABb`ZYI>%VT3q5NHK9O-JQND*MA!^OD74Zf?suSmc at Ay*JI2{
zp9ab*?~;pW5Pqn=elQXz8hQ70={u%X^yQXEBYFeTm6{-$_w{>tX6~CPX*w&SS~Rz~
zr24g-GqR#9H`ra>fq3Cdvsi8~11Ho+Q=tvX!n#bbcSR|zVR;92Nqdz_t@<@uTs(ss
zr535(M5DD5LwufHCVmV=vba!`cgM2h<|WQaaPo+L<D%8EjD{?~Y08N$mQA;oji81g
zCHCP+`bO01cO&DwF#N4z{~gC{CcRQTDx8{_T4rUkTEVfbI3^eCa{beD6>TI0?qCG!
zb;!L8M+$qwkG}sT%|(frX)>UhqHtTZ!1FX;(p4O*-6<<h%IcFaJ}q{OiVjcI*Z{+o
z$YKKN-6&0?o8|JzrF<*WZLIBQtfG2ZZKs9cTRAu=tln>Ic!asj4w5v4Z%?PMOR?W@
zfdZL%{bR~&=X5!11`#M2K>J&2<`WRh>OIguDQt>rouYcjNcqaQ1K at 1ejxuvG=){p}
zw>R|1)uM23W)U$Je~$aQLcSfu8+LhoEw!)3!Im8Jl<zk-t~7nHRP2^@ydRcY*1QDJ
zE8^6tYB-Pau=h)2-4|H+IVtnqaT3t{Cv$xrCXP2Y{`pcop4hp0xg3^2?b{WIzx~X)
zc$_zEsAH8{d=U0Miv1_RV5k^;AA%oEII(xd83YK6U4yS*uCJW*uVVp%e3+XfAY`qV
zS)Mg)4nhcFJw6!qjV4dhu+^6E-iXrFVd4mXlJNU}a&SDeU?<DiJ?VckIyxzTJS`j#
z{2nSwXTT|e6<_G!Ewzw#@KNT&3I7p1m&p?Lfo at uAAxfcS9Gpvg!`Ex at JtB51QAl5(
z#ryyU29(QiS>cd{jk<I{M%aROtjE_cDxyZ at B6Axj<$U+xjp$NA79vp72K7fh75x!M
z9Z9=J<UNLn{+u{<lsNbEHtDXrzdMzl(#Cfd5kC!9FEqHCcLuT8WeKsUyqlLeOD=G0
zot}>#cx`agh)wL|DC8-DK34S^;b+h;kJBT0kF9&cf`^oH!LCrp%!Fcue3<h;jQoSI
zaif{?K8Nx^E6S<X-+~YY`(nQ_>ng~K-DMtQ^Fk7j9rNQ*(W|MeuG~6?gEjcbb|m+W
zVe5(!o{3buu`{2f_y?*xJ=27c1a3K at fJ#2fpcLj%-8|}9A_DC=PrI at 4akyQO?05A+
z7t}a^X=D4AENuQ(`7{~|9R%<}cR!-1d)BGhd6d_QG4CXhp4;u}cK8w2b*|&drTS-4
zvUpVrZsA at R5&oaapP*8zoFFV*hE7#83?H;$_`q~ZtX&i-&}hnd60FU*H8~-59Wzr7
zXlcw(ZdE&iDz3IFzO2 at oUqI9TH0~_jan2J8<1Hf;#^<tJPOGVx5xmNKr%{LB%H4+9
zGD4pphgm}OsU|2Ii(zqKE`Bd*t+?;rKbB`egPWoQ-28l2PKp%7<+kbSUe$@H1{K5|
zx5)_BgVA{5OC^cGMVXTODZ(YFpo#w$JJ9Ky!B)D~2$iN*^F{PsmR4zR$|mk`{#;|P
z-PpS%&DgurY3wb{6cK178GB2vG4|%^VjHVb5+8aX0}tFy5q2|Vu)F^zC%21n$-)+0
zL|mL>8dFGz)LTS&W?aS9E(HiR;ja;yIW{H!R2W^Aky37<gf-WVrdH|Rm~))C+{fF+
zwn8L!2gl38jTc3 at kOwrCGX_2*w&n3Vx=@nKtpu)>+>VU!*vlT#MH4a^2h(MQOPjA(
ziSR|fk74)jVRo?nx`^0Sk0TDQL(T6DE^v+Xx=TcOiOSG4#3$>2<-fyR5zZJ!;cr?i
zb%fmXgScrUi<`f{!9RHfHF+W^wc at MB!N*qfd~g>ds*4=l);K8eBbroi(LWJE<8q!J
zJ`$*|3?29(rP+cjBxjL4l<aQV#H+chJ)*aY_O|!aj0Ok1HH5LOL}oS0!H;k$fzysH
zXAj^fe5B at j=G9NU?`f~Snt0rl^NC6k{$c9<yPStWJP%SIR&pQyL-LHsu;bJEFb}tA
z;f!P-GOpZ*&m{XW9(_>oLhY{{*}g-yU)^8}-j~`qs>aG{$5XrEf>KyRBj2$&lYMYr
zxet?)eHe>A+)wTM8b;{9&U2dMf5;p^FOX#D$nKQkVg8Ni*QNAfHTv*2U%t4KeQ=q5
zcx%hq|Ks={8aaNK+5SCN`#NtWh6FVM!&jPuY;NA2Y~DSx`D>HSPoU--lkML#qJ7>Q
zkqDq0^cAc@(@gHcbcM2<%EH0Y4T(1aJ;Zsh$R?hv2znWM4uHQ}9>Cg(Cf<E&b47SS
zyjNvpD6!oX5;J#igx8%gIPa;@bJ#wsHSU|*V8+_}E}~h5XBcB`LpMDKkP>l+1iu>V
z|4rFh$juhTO=CkUbE2{@pQx*o6O~RAbv7D{G7P$sC0zeoiGSo0&SZ&Cfyc{B-osZp
z8Of5LvYRe1`8*6~EL at QN>A2wXlEW96jm|j*+Vwq?cEN6CTbW6?n9VADx+HPdovDuD
zA~z?<Rjl%ywT2 at YA*Lq5vEs$K3B<0<1r7k`$6ALK3%`Yz$D0-V?r_R_#j=N4O~a9z
zE9M#=5f5eYLHGqTl?I?Ws?GzUmtooxJHeIu5h)9Yf;;(8u*yCKW}A)tQ^i6+{mZuG
zozhFDJ14kSUSmr+PqE7f9P&{})&jQ%>5=L8r^W|bYQt$-vE2-f5b7*LvTvzkkmiH?
zcD-U<@u`ywn$)E{$K2ug0v9fp{6nJf5uC*4i}KT+(yZDrv>m%cttFlLdZUASozI6P
zBHx)fEVJycY^L2+nRz72B2mt9<*x?yX6A<mR)@}CRm1l^sLbndj>iwH8d?>m#B20n
z0z<=TatqFE11s<U5(frGjE<3Kbe#o!T-I6OQZ?c7k67oorMC>6;%fe;FLO_+WdHWT
z*Ok=E+>#SP%@gOovcR5zH at 7Ho4DNvb0Rk%q<{_ at wjZ-SG)R+n<G!r>K_bEB*)akD-
z3iKF*<%kgs{%q9yp3(8pW|;Q5zDy3m=Em{fQ<xWd9c{dYPEY%aG|_Dx=56XQPq`xm
zeK_JSa45YbC+ at upl_iWB!qSRgIV3k6<D;Mq&M+>buTfKC7R7Nm<<iEDj_;g2Z%p_<
z+|4~Jf;ao`ve#PK$m1_^a;J(ixKl-rPwi34txSez_<^Nzk<-(C-*|12tFtIW34o~w
zbUx*qQkLp`cvGaXN0CciW7$({bc-VTk`eoU+&VR7x6RoXa*oKxV at jfTFbyhlMD&)C
zo$<M~3>5zN_{j4<^Zv2gx_{i87{5`Eoh<KiW>YI}Nu$lo?)DtIKMgxJK%_Uj%Y55t
zH7<P_5xtSSz6f0vGqcoMs1-mL7Ev#p+S{J?`>xZ9t~e!vvZTJ}oRW(_WpZXF0A9_^
zZShg($)^APMf*&2mzfBcloBg%Enlo0>a>;KFr_k~l&rLoi^^D&)9+BRBEm<+LT6wW
zOVC9D;HoW)ag^^QZWItf9|$;B%0*RFHKH^m_Gj|gb-q&+*g2{@hxX%>g+(jnJXPck
z=nNzruEtC4w3p4ysqtpY6aH;+Qr5>$cVt<I9jp0pVITXhCp3P#roy~`D$e3tTK1v7
z5iVXzjQS633fp2EkHhogtQ4n+ at G3e$C|1l}qs!Z-g^vWU$Dv7Q8Q=O0cuKNr|2tvf
z=<oN;U2}8b9r?gqNP|@7W`x$RXAjsLaH<ii?x*(u+oTP+oWPZ<vd8{;Xjl*278<sz
z5J7CyR>A>wpg(VL3<K`|2bULDKE`M!cF&|WR8teXHO{x5eYZ at h92}&F(p%}_eR+3j
z&Ji^q#$J7%aq#i0O8;w0C9T#Nn;qtB4xvkL=-jO}eXRd(9t?9a>Fdoo{#*T5-Bf_^
z2g;Y8(z8Mxdh|%I<2Ojo?{QP<^W$pX|7|qx>kU=+j;ra4vEs`SBRm!ZTTC_a{Rqkn
z{b6qG<Jb<qy6kg)c}iu>qq at F3n@7X(!|zp}SAT(%_!b!lB%|ZI97K$G1`>r>6u=XG
z&xt2ue93uPDw+zxGojhFtxV*1-!!GNrhEi{U!?DY_54dFJgR^@sDYDnj);O%giNu%
z(0;h;9==pJovgRqT<odIs at -cr$mQ`UBTWM|2tJj;xg%SVizZ7&(bQhVojK89p?uj8
zx(y$@q@?V;Qo;V0O!$r<-Pk+JSs6Z3sZ at oG@KNT})t8dYN-V>F!}e}(>9or5 at k-@S
z(g?S5+LF9VST?@SFL|Yv;Z|b$|BEyH7wTzJ_2e(B#0}{zxE|fRpi0&AJZF16(Gkh|
zP9bhO%{ZvZ at u7B-$C1d#8W^R}gf~-o^MrSqr~|zhb=&!GEB|GfZ_|}e)!49>97*Xk
zjD|aGjsV?NeNFa~JEwYPCLTPs**N$W)iwDIW7k>Z;5j)v&)9WN^vEaC17p{#@=0#~
zBV*U0?4uF))e*-y662;%Sl;<V>O%IbVq4!Os8ZUqyCO5wvfCBgtSU7QDyMaKWXjpg
zr~>04`z#XSULJRkaWKMtT(h0q>Z1HSal3efM_kuu_lU?zF2S-yL`f7VEw|xW>yi<?
zAs at UZM;y-VZo%1>N6|mo#Lkq%s6^{t&TpTg^yOVWxG1_{U(TPtOVUHzIeXiAd-hQp
zO2lE8++ucH_N&_4qKR8<LP|uxR_VfuG&9R#@jUldH?m)cT|pS*&)(LbTyHHZBX|}0
zc`}UI5)W@@$mr!fm?>TC!!&DMV$EuXQ63d%mJu#8dl^Fv`_EO5UD-ElIBslo;z%=$
z&69IR>GX;hTSnmn)6=V;IMNL1engEyiz+v~a)AzsV<!XcAGvG1?H;t_aMOi at 3NP`T
zN at LduPoo5JRL*i@{}kbCK1>CaL%lGrH{^X8?DPQN7PwJ2tJ#KMN!HB at vr?0hRtBFj
zQ{rp{t2-OC1~2_fYw)Hwc=ZPFm<I3I2Jg7o57I1%w_rMt;QkJRd8NF&H{XK!*hCfv
z&COA2ZVY at 8?XeFpTHj*7xtP#DE_KM2c3EP&XM|CWsm{q?@5_++Zc}r($#fOj9&r<}
zL>#wdpH*9d_C(5VP`><lPbjtI>~`gPkU-VkA>6<=_U6SvuC<$f!C280puO|Tpsj$~
z1n~clL3{tG)lfb#8%$tV-?I<5T^dvOdo#<mW|sVM>MLyosv!IIL=|oEF)B;lACT0L
zPm7L>^v!6<AFDQu7ENi at -jJWBc2FBj-(%{Y!4JMlo;=DkUO^7QhuTw;M}h;K(L;dy
zc7-K)C$$~uQ&sj^RdO=roMeq8J<dv at A%=}i<pde_yzq3}0otT^90dvrfEG9idSq3G
z2|%ST*kJJz#}2_})y$mlf|<d6876oUyUII5g}vgMVzr-G5FVR#-U7J6lb6%W#QjBN
z8}>fmVmMPMBx61zj3uQi7%v08CI8cQaVm;-n0MyS;H`A;LqrqlWedOLPg5C=a)w5g
zmZ#DfyNB1QG?O&4ukUb;N at Jo}|B!B3$s2p`t9myrdR67(clE63th{%*iYTAxRuZ at H
zF83okE3 at Zl&o(SpPiu6Lvi2N(r=#acQ~*2nwDolKFlLM%>Up(i8^Bw=_q-PUfN~w8
z-)A`Wi253x==}MV%6Hy>mj at A@wTv>g_q_Vf`&KLOa<8LeJ9lGx*1O=~(xRe|n~V0N
z832AyNA$fOYV at 67^|tpMjZSn?wLQOnr;X~Hn1ScEXh+Yh(TQ$6ABp~sy4{a=G*6{E
zsC;|RucPnx9HX|6_1w at KqaOT(TTugeHQGl1qweSU{b<jfnLWJckP)NrZHqn^Rb#s|
zuP1B{lXq^<PtgA;dh?u_{u4}WPZPi0xh&31NT at xH7>LjzUEx1kppAbcVCy;XdytN}
z0wZH at 7_Z_0vQ$pAIcR0E<wl+7_oSP+*zf8oaQ3v3#4V at SQ5OpAm|w{_tEV7C`-rBk
zou~ciJAa~QUI3biUz?NjYjYisz4Ko0p?Ch+Q{cdy^BfeouuMEas#m9C1PU~-1 at 6$H
z%$`HEBFAV2I-(usdbAM${MuZPqwjoxXI_t^W>acie$~^?YlXFa4kJ6oIJ at V$->YtX
z(DSOoDAD&rt$N#VIwO)^>N#Vkw95;r>?xTQ3L9s_YWo$MIr1rGG;{g?-ZsW67@>Lp
zdrPF5P^9uVrSxfA^wUd?Q2_UU(T;9{q5{Fcw-jMshE#?=Lb*+FbIzBRjB<gY7%`bx
z3HZoFMvDA*sK;fo^%wAPAF<=ahlJ<_$fsv=&%(@}g?T*-m-X;1Q_o}D`7dJ^-j1<1
zE^=hok at CnrNqNKyO2C9W1=})v1$m_FQc at m4cPx2C_0p0@lpFzX?Q)y?vM>{7FX8Vp
z{wy$Y?~|OZmec0ssiN%HJiL|D?j+oMs#0uI^2X0o8uBW!<lS+&N~U(JSlVd<Dn6JV
zI+SK|vD~;Rjqv0_8ex{KFYWIYNRU1DKWWLK6ih>Jc}QvqR<F at t)mha|^vp|=$($<V
z;M=N4#=#@<p*-VYw<3qeu6O0`Ru&K5jOde>56_=OEKd8o9hQut4J&bC`JtK&jP0|L
z=`&24?367^h<V#MsJy}NdP^QaW~!;JZ({Zdh1#?s#Z{P61{ZGoV4~vXvOm%;2qwp}
z5hIo__VT>3Njv8-b{(bqF{td1Wed;HHm1E*%jA+w!K^<?I!{_1;P+jx83$ivmXx=k
zh$xZhV{t<DMSFGmsZXAx-?Q3L#h@&YfAs@;|1hGDU*7uDDKrbmbK5BSNd3q3_soQ8
zAo1{fyqpKM;VQiM^E-;a;Ke&v#Pe159lSI5$EAq-RKINz{W^^cM)V09m!RoVETR at x
zvu9|BmE4jRss9R`##wCqgzS$bPYuCNw_?f0*w_=$1O+gW`pMS2H<K11%AcjlHcwEn
zrKpGE#v=9Cn+1pyCIO1sLeZtf>O|cvK_;_`{AHB8EBP64KrpU2I$iDJcqC~G2wHgi
z#e^6YS8|bHQ$VG^%6uB+CnYge5V?Cq=IPqUB>8OP&=+APKV7d`(;?@x5&wJOF>iN-
zPl;_xe&P{(ok@}D1|-aKA!>j!dOXK?f$J#1`D^$ekYkP;TbOMXXa{Fn!8`UdB6a>9
zGL+ydV>k27b5~*)TH6-#)U3RbTQ*j5QQ0qEDL-xTS-`q#Zx<}1GS~*OFR@@{W<mx|
zy$Y%3pd50JQ!X^!Rtpx8<ee^|JXEX6^Ja)wX~^OPiCTL4$c^86*~XXbsvUbj&6KQo
zqict<yJ;)aW)}=N+Q-6_7I at d0B#%Lg_o)Iz?Yv;Jl|5wcc2n%+&c3ePz0+QQk?kOx
z6g~jNibJY)?F5O(yrZ?VY8#uI_o!(5|IG$AqrTAowWZM}xrTv9GAL(%#MC%lbdO2>
z$cY6c<}vPzsACva$@meKG at 0UE1~D|*EZZtEb#!eR5dYL(-=<cj#oY0!wOPU<334PA
zs`H%gE7azMEVxar6tAT at z{!^nP>m!#TjBNau`AR at -w9m+&@$tUB9vV)@gyIzv!8n`
zp2Vc at 3N0wmRY0ESkh7er5FWceC0_Cs^20#d6buV86e at _F=dF~IH_s(rHA7E$Gh(MM
zTH7(!JZ#m(;YF`>z6#|8=4YU(YVtFz2mpSDwS<!V4Bzj8pIH)5 at -t<LTa^&&DCtK1
zUd__rNisM2xVpYqZd0iyWAhN~u=oCW8cUdK_+?HhGbPphQlJ<Xp8mZnz_?Y47vZNf
zSOS%$CRPp`&-_Vgd^CR&<LGyZ2GI_xM at 0%TaZU0?&T#PfX5uo8gEz_-%UBm=QJ%4D
ztzt56B(jXG%a4CPmv(6Dnm>RSxLP9|G+Ai_W}i at f5v<@Q`KVIfk!kE2N}OW~rD}2T
zb@|Y;<xO}F{tG_5ZX7(2&n;e9-t*u-?EPQ6sg=%ipQpd^^aVDXc4+zGZ=Iu!dT#ld
z-G9M>2BmNn?WgJO&4?>UDZ$AXSz)7ol6g~+{f2Bphs0RWJ at fXWXj!EGvx%3??6<L_
zt=GIbYlek*h0{X3xVkjcP`OTvvvD%$;c=zdqSWXF&;Mxq8wEc>m#of^`cqn`R4OKU
zI>;RBjfK^rCnqb)*r_EbV<G4Gou%+7USutl at F664nFL<sZ|?A!;3}zw+A@{C-Dtu$
zuAx|KC{AlAPFLNGK?joQmx7IzI4ds|hhp#Xi3<`3|D*sX_8O8@|893sH>j7OLfkji
zA!=V`P=KL;L|(s~_35ynS~~#?feKhltkQBGIxjD40|5>c;Am~;LU%{pn#zXtS5+}o
zZ~<O*$_iMJtP4T~T$+LbtUfUlZNrm!0<zzrDVWwU4gipn%!$S63OoQ0>Ra~PDPJ{4
z^`pzADL5bm$UwncKHb>hyaWUY9HMS=m_Jg>t!59H&!topMTF;V8>bg!$QAC`zDpML
zn%VDnVVZe at V^1<ZRBLr-6$uO2jIn}?R_54)mlFEB2km^nWjd+EC1lF+mv1YOR#j=l
z_pI>k7 at Q1M_}fBlX`#b9As}@F86Rsr-Wnn-rrdG|Ple)Xfj5o4^PPN)Q at +^<`*7d5
z_x5QlW>q|CglBPrSDktJHW~HEQQ1gIB*R?4Szb%xhTPQ0h at f3=0?fC4U at UL_^8omW
z0OJKJM&A}KTi$xh4YcL0)F(MLb9rmgTcFft>Sm;t?^xb?afOvv^4~~(y3Gmo_xiTs
ziMWnHV)mg(2&qWQ&m1}EjT7Pt`V;X#OI)shhpcePU<TDM^_Ph!$k#=1J9ZmiUCnj?
zJ!dGj=mjop*~!?2D`*#r;A+C$30|~(tMqTb5*I2ecEs9jY7%+gXcjSXF(tsyr-brN
zu><_#tzr_ucLfJEc_Vep*mVe)K8*$w`xgwoVh6N=SGeUu7j;3+iVW^pegu=Y{5U35
z-WWQZskLF+eXB9=ghbm!glDdNYovaHjc{Pwu#0+}($|#vQ=e1#3QYue6o=xPvEkSy
z%hR7}%d#W(A7;1ibc>4BF=&M<_#}v2C^xguWS=86xLTH$5<!*YWx2~ZXagY|KjQqu
zl_7l at 4KD3Y^M0T8-C5(L5ef%l{!*D2AX;bXt0et3!_bg3mM(=cL>;nw+E-P{U$R^O
zIICmT%#{^Gp+gQ+Uj#ZD<wH0Oq+L_E?|X8R^g94*u9u)q6*^pI>CX5#FtVN%FWWaA
zG5cU>*owfi$2nNmQf6nkO>u~bBaFe9d7>+z4&rl5d$vC_w<7cYbXk$fIy7B8AsJBP
zi0BQhR|PAbrL4!*6>1%&I#ce3 at e+G8^)Ai6eVG;&-le%~(A=sq)c3e%-6)UtzlPIr
zpG!Ec`JxvU)fM*WsqukLy&j)SnlT}WY8lP at omgd~`Elna8`Rrak-$`|5ap*?d!7|R
zPSxDb(OjL<-2e+>s>0QPHMzG+d(%2^_k6VCTBCV_7%nj50k_tiZWv#ZKX at ioeOjx%
zDbA`D)EN!2Vf#G|sJiy&2^BTAOqcmptgqrQO at 2?8DBYv}Jf(cp&rX}XUqb}XE7{NF
zoS_lJYXFP~c&zKt3|uLcjHc%_c@;y_ at w{}sAn&fyPI%s4aZ`#um(i?w8`ARWpXcrS
zK2r4*d4_5`?@}}Y?d8Nx2z6O1UDMcm0MA-$O>o5hB!NwZQ#u}l!H4S=Sx^;mJE_eZ
z68_^yv<FqiDolc<Oyi6cb5O!iXBu0{2iS?#z}KeRY;hPW+C4Axj6PvO%N6EF^;b^<
zLb9(9V0ovv(ApZ!S4($GQNx6YKC8fJzBW?mOluoXYe*-!DUhX8Lw`&goI>=Vd2CU{
zk!Lg)U5XUiHO at iV$I^?+UNAd&is~vhnir8gHjAp!8s=zbO?FQU_f{-Xke%G`Sv;G)
z3Ksi#=0^3^*Z}vemce0pAEwn8m9EE#5i37!gfAdD*e3%oTol0pS#es at Ute#W!&pnl
z8ic_#n$zRH)A(F{I-=*%Qcx;FO%a$1l{B4p?=}$Nwqd<Ni|BWHBZbq(@e9p_S5)+i
zkJWUD^6o(|jGC(lXaW$tQB)78DyR`E3G;g2Ntyw>Dqelk8!5YGT-$lQVUjoQ at 8-IK
z2Pj)azdw;JqQ5xKY~HKIebG>Ll<+f1T-?_OC<^v^Uci(X8~+0Fts_hAr0PDb<*F8)
zdJ+4?I^P*(AJ44n7473qtuWSz?O<h@##^B)rthX7$$_pw!(P*p24~Q_nHz2m+z?`K
z0-CWA{+CDk|46uGvCGY at L7T@G$<L^*5o&jc^4`JB&itu;c~dH3B7CTf>J9mN34fpV
z%*!%1z!$%qlO-3@$nCH%eMQ;&Y&jcebG0{wuaDovN3wZ3KD9|kqln;5sAKjLW$*SA
zPq2>|qFjGJF-J!8aQJ-SpUejRz1(2X-szp%P5n?!*9wBqB%<omj(a|$qT%7dX9={z
zX99~uKc1R)|9o1I&Z4Qdf+>}Qw>450jxZ&Lww$f*3m+GUgSCXfwwygj&z->)=+uXV
z;b_D|XsLXtVLc;cgy>+5JUE`9wli;PpBJC)a?Nz5E~*1F=vf2fr>UuDZ9S!w$NKll
z5a!df;>6)oLus*JfbFErV>|O)SQgf78hn;kFri(=T5)iBuT1K1;&YU%a((?q_!ibt
z8wei>+{8n at o+^b;nEa{R3!ogVT+%OQ0SR+Znm?s724*@1|Cs)U7IO at agZRUc2>+&C
zrq*q$?;!=QMRwD}5VX3KdbpcavJl6k$e|n-v2)3Tw#d!uBR8O0D{`vhcGDpGW!tXL
z#o?$ox_W{?F6Y5&tH=fPLJi&T6n@&L10s0(72EPVN5L;pjDMic7mZbFv?rZHe+2Fm
zqV!mI=x4vuY)DX1s;4*B{rNbdelhcr{JOt<b_qhp!e?8}%LzxXNqje*mzHN>c9ndT
zxv3>~;qQa8MnzOsWYETd`bM5h_`B!8kBIM>s2DOD;4Ul0ziGJx9vPhAche;7noq+=
z9UcZ`zMUSt!taC;JF&C6sBnqHgLlI^lk!#c6La<rquDWoAPz?D<x!*Aom-r)KPf7@
z_^fEGEbo#P-BN!HR=E|&(&?e1mj<sz`FoKD<4s>LrK@*h$<uSI`|jHs_YWE3E{Inh
z(^J?OYy8Z9Rb|P%D)iWwQ9`S+a$Zi{bGCZsNc!oJ`aV!?cOwWG at e+28_R^qX-oH1e
z7c^+vhqHr!EB2gS)gAXaLq3;Itv~pDsKb6G|GJ^m8SK!cN--N5N&g~B+u5$Popt5c
zlXhI!%{JSSWdEt~Vp*NBXrZjCYP at abSD`xVBb4uylX8wo_Zq}TfCCg!?h@^u4_EZk
z%uMh$<fk>{YYp at veejP-`ErE+t1G}mFT=x0hKHyH561`|x`nTc;o;r?OLzb*<U108
z(U$~_7;8iO6R_d%5PZx)Fi8J?0ETpI78M;Z%zq>MRZ&4mGz9o2An|v=OkJ1Kzh72#
zrQ-oRMC;COGn(r-6G4ivTUP9+O5pzHXm+>Jyjp!pBjieR^o`<%qI8nza;tldH9^oj
zfY6s1gl44d9~Ics;)nNTFn&pxdpHvg&6K%^@=Z21bbgFDEJ9sO*}CUUseE8uJgX`5
z=Y(VDuuTUacNN^s+PCnRasSss!@5zAxKW;NBfNt at XNiK9oke=%ELbZ*Z~EJv1#k at r
zkIB$qu55&Vr`J0RR&wHb4RZMTbSpg8cS1kT(x|+1_LNG-R5dRtR~=&z*jmNcVop9k
z)LQ0Qm{t4X;AUB{QWUI8)K68j+4=eOzynl&pgeS*I{bsg`6b7nyTL-3>`f4j8ue`J
ziI3y0k2EW>@#=f};5(N8$scFwgKtnDOR0}BIO?Ys+2;8Cm_SD8ygv8{CZJ?WrHBsP
zbUq$u*9nxgeKu5(S-ykqvZF$Dwe>-HvOXWHtQ{9`5D`3-uy+^iCtI$DVtweLB^tYM
zpQ0taR1gjB^ePA3#IG-0i8Xa+u_}3aZ(TbFEghvtZptzOe$^2quhfOfEAIotafop_
z;96Gq%DJ0KX6pk{jtgIuHbG!qo&FR%*evg#g#(0>5Cl)j>6<`>%($7vH|CrffK%kb
z8wghxN&iWrr!c!Xfm~E{0DPCHv-Um0unq2S6xYR>0Q`wCBmqk{r7|&_4R1WngbZd|
zyQAKNA1i+!Y~jJ(_j{JCteF63EB9u^zR5dbChr8Aq)V8qJoaQ0>$zmDzcs%ZtUs^#
zv^8ux0w>y#wB&-7V2g->E_Zp#2deKP{uQVWD7Hnq_Q`7cc$y}rx;Jo3W6qhJBe}u8
z!KA#BULdPU65QyeEt{qt&h_`L`XjXGhe(E at f^mOu at F=9dYL};aVAan;9T}-^;jI3-
zF6-ZdDs+*gM7vz6%RIt;L&TD^_dJ)!H&8uaoyQUBss_HrN;;m9(;LI52D2eWQLh+X
zRiDNiLZuN)thHM&T6 at E_MRS6`LD#s#ReNCla|Qa4 at W)`u8f<wYOICtpln)V&hNBMD
z5j7&M3^OMQ-zh%{PN_c(n&J9l3M3D)<AYu~YZ|c{)q%G6#=<F>>0c}g`av)W#-dm2
zWO=)hPa861;Nj^KX9*{nNOo&OgvE2tgpUmV1Bn}wc$V^G(zRRqj-~rf7lnRr;8e#(
z3*_t5I%fq>vFy|5Deqmi8BS0LsQg2Dp*}-+r<wg<pO*qusq|<XuTS at g^#S}~iH=D-
z+~bs}RqD5vsN0CNE4E%Pm?p}*%y{VCCU8|B!#RTMVV;gIoHWdz-qtr(-aAuk2d^`K
z27aTkn5X#-#|Ia){Q%&NsG#eYv}X`#$l*j1yZnyw*gMjRRi$wo&65kXHc{RIcNF{q
zGm`G>V|CB+(^^}@`25?b-QfQNPawW7Yci-a=6rM;>-p at xW7=i&F_+<?V<bE*sZ!^%
z3>7CixDM6Q0n!+O+psytt{zd*0 at eu>lH(f at l>~hJH4E^eT&DO=!WUx%u2nEO^GP5f
zrmF+<HghuqG at X<BW}0Y{AZRr8IwQ&MI3LfoXgzS^MI3^^_3Ww0Tzecmq at P%WW5An*
z^q;>qvZ^G_+H92Q at 3N$_U at Ok9!4ve#0%y*t at ELxI2C5SF`{mul?-~d7#e{YvOEc`W
zpV}^vaMq_Cl0L8n88pA2wQ0;e>S?f~8i=@V5Ix!nEvlWU6yt!634{5&>79z5kmbj;
z^8R^|nYR%%2cKf}UKYoC(5 at Qr_`9e~b)h){G!y0=V3_)5H3w`gOmo2IAH0&7fmL;d
zH0;<lJTa)$j1a=!T?pX}dHfwBzsy+wZ!9;@{j~EEb)MuV5rwIfoU;;;Ur-f35?N)_
zYrZ_n{|MNPr0}Jpyb?eZK3`bmS+TPAw+YLTRCvPq9BSRH%=(64>A0qWnGBa$19m{>
zFM;bx?+P3gh8|p*Zqz at bv9aXPJb2qwA_em+U)I#Zrn8$=wiiMS(VI;-slK7mN)-RL
zDn6|gW{}DcWPv-}3d6;r0k*R(m`<-d5)Nh9H|nEo`iAYg5+20Y!dS|WLl3#ME|X?B
zUNaf;GQAk}h at Fs^OStt<RQMGLWGv6MeQ=fXGh>guV7tU_5|kaTdDH`zw7M_nRNEi)
zL1Rn7*-J!9Ll+F8KU|v=aol7yKaxj`n&<{Y(XF-a(}*j}ZWrATo;VvV*uvS*MkzOy
zsd*hP6RZ1-n&%*sbyKh5sLOv^6mFSb;CWkA48&$ISEJ`G02f!-Spah)#EkhKbs8RV
zs<6y5e<k<^XdbXj(!v)Ci?DHXKhL|=bMMO9Kg908#5FbEmRt}_ at O)yO_`(OC66>bp
z+yq{XV}C#z&Gi$X5DW3B1rH<nS#>_{l;b<|UH?J}w16Y+{Zh_z=DxgyH-KHVGj1Mz
zr~|OkMcpxVoKwc8f7=(~$FZA#l)G2u(Y59}oCIX(oZ`9#6`KZf1X*`3tGmD~SH-cK
zOwj*vl-0%@h|7blDin?^UdCP`hm>KK1wC at sO7RwfP^dFg_ at f2N+_`5^H+H>RlpBn$
zI-Bc1Rx>asbU`yVv at v!&i7Yv11}6&lUcw7Sl#?(l^8VSPN)^$ZGoE*deZk0YCW0_H
zl`!d+vooI-ZBl<a&)C&P)z;o3^rz7X6*mz^^?^`zN1FIJ*bPeIelhRaDV3v()f^#m
zOMBr_98x`m&7)#OS_3<21v$SPuW3mS>NHuVhvb!TO9!E{`lK0o8n`09z)p-6p_ESF
ze&)B&srWgF1(om}Nwj{yEL at Yxl(iQJNleCx(zaCpFfuz%to6W6!r!HJy)n#@+=#yP
zQ?@R!zAZe0lhxS_UpdDICy~@8x at g0u>rac18{E$P-0~LU*?hfP8)aP88|Up;=W7M?
z>8b8t^*@-?l9h4lMR`ju;%f978}EuMfTrD44enUn?i3HY2EO!HhUw7CC24_gTSyhC
z!<?WQYJxZ-XBOapJTE`HB0G(U>9=RVRGwti;w;2UFP<v$9i3j+T{iZE3#(?_n9SE>
zKTTroSowMLkSX<iyWE~z?MiZ!Rm7?cRWBQLo>PH~knkz#XbId3`^ILk);f at 8G?O^$
zO>299OzS|p(cH>>qk5G3+K8*v*qa6uf#7wOooUpKw)8o{j$&$V)&HoY>`IY_#KG97
z`1hKoXbJU5eg*p?F9SWP9x~<gSq{0tF7I at DhJXueUBsS~>@O;!|8IL=0~ckL_I(CM
zos61M$D*Q|44$CH8j!Dnd-xg#P(e|^G$R~f2Bv_S=0l+bw2_T_Z^xxwZQWKkDR*;s
zd(!R0tTaJOuytGfc#705Dyt#b4b3O9Oy27{=bm9^z_$0<=lQ+Q`@Ro9|K4+-bMEtT
zopY{po$FlZ9KPv<d_y;zd}t1}+>1<b5)7oBC;>I~!(6!~jcs4W0aN-Yp0Wk9r4l9$
zeNeeAGa=)y10i(%@#PRgvcR!<Fwb=`6FzM|K?U_QAgDLLpmCmQHc%O{4|N6leoUwb
z6YB9LR7zQYS&yK6oG-m{LXS_7P at zZT^fbN9Bw_gmWNB&o(|mW!B9I&~sa|&k77}>5
z=G~S#AnoxdL2?MiC8u!-;4VRy02ZL|jHb}j{AX`kuL))SnzGZ)OHisV?c+!MW7nSn
zD*l7m-<&A+g|0z}y}t=!@6(h)rR>BKl%3$;Z&}EQ<(7s5wVafoms{eXdGiOLw}dL6
z66rU?<Vq!Mr9IDefadjYbbag$%)^@hlI7|Q!BqF+8EEiaL=QMT;jIQ-(>SB~03-Hb
z#E|*d10zOV#Y7R$b$KA-zNWo2bN#5q#k1C6;&CG8o0ws at a&gT2UHwwXch|=uFbaPZ
zD&N^D-+4^F^RT2>g3^`dGM^RR@&G+qoK+UKiz8z4d13=}9$^hI at cu|>BiBNS24{%-
zfkR9n*0 at fMW&ydexPQxY9SUxYzr|j^G{P&0<4R81Fh6HtDW0W|B^c%(mJKLzY%c7>
zu=$FCL-g$g_Nj$Rx~&-*ErtxEXTeg&HH>R6<<bG?cR}}oM#$)?Xeb1+j=E{Z2=1xE
z|3jd+b~S~CbT!FB`PTa|Oe?wr!@+9Lm%2J5c=u9zCP^5u5WY1Be!K4t>H26AzqJH^
zH%eUxZsGS8VVHdw($y8gZ_1>mZI~$96=A at mqr$IH_~Z9+BW%|fe!_3fN57H%P^cEZ
zH3hxiKKc#6DS;k`0#ePs*bzK=3r9v4q3|mdCi$&|rbz#v0>Zi?ZR=7R@@=#kd>Mc9
zeb59rBHuYGyo~vd`O2MelR!U|@BA8MTlQHA{mhD6B>R3u^XituVA+W|$8y9RbW4}R
zJNr^{NYKgHheh<mo5c_58-5k at Cw}jy8ob4M=PAhtX)j{|nkMt~nVq%?3oKucMrFdj
zd|FC8WlRmfG~W!~DYRlR%{m%Ei&Ai-N8832G;+ at 3>6;kG>Jxifura<|gGFssjrg{Y
zitAIjUA at J1NIL39zs4`)pag1PSj|=y&Hip2Q}$89?x%!hBxUi at xP?t)q?YeqH_1co
zYa`IjP5%!OHc`^=mdaudxFe=RxrIDw*T<7ZW!Bbk(N}OIbz{2R(z$$V7^9cq#vc+q
zNJiMlnnXBlJQ3`paQD_4YOZ_!0-CcaFoJG=M830I(i%?dYOY)Q7CZV6V?w3~%{G&7
zm5qoeS at NyXv;Z_-7HA)yth0X#^*n<S?~4qkpU{e7=(&7?8{-NZ|1^`Er^$EIZ1R(Z
zeVDzrTSr^*Dd_>Sy9U<GYdk5?=p{6+Nh+Yms5_F at 0XjGSN}vUjY{IMowL;JzGs_Ap
z=kstbOzVQR1P!fA`TF~SBwa=s9&=e1*7Y0gvnVCF_fcBCTtGiqLCN!^uoXKtu(j4p
zn3eZ=_s9h#F#aERSlEQF!cF{EDJ2j7{{|M?9T5^h4->8?XPS82in5^bEHJrD*TpH#
ze;#ec)Lg9?oz%4tUqYKZ*1m~+hw?bhpPKK7uGk}XsUq5?2Kp|Ij;3wJ{?%NF-6u1k
z-(fo$aM2*xbDNWeeL1X0kBB|Gbt#J{h6X}*(eli|TKa-qq~-O2^h>xeAZ;u1o0h-O
zv!5o?hs9ETP`{r($VT;b&eL?2Ua5gux%+wW9cORRFF2{b4w!Mo6N0oIRjxyWGral*
z=g{Szw#m5*dFPO$0#!Rq>Ov93>0$37^!<#_vj>JRIx5oB_lK#nr_Y^`Eq`S)ifGS?
z%2=EiDI-B<@m!B==9S5VKg0WV`^DU at r}x>4v$iXo&%1{WVKPw>FxN`2f<mhVYAG`;
zs(%W1VVK3ycrn~s${tF0pn6O}6=d7^((Tl250c#@cQ?@6p?ATk%a?AJ9OFwj28@@e
z^Voy>vamM1>Y)(FR2;=X3cD9?q+T~fCrF)C{iEM3l=i?(;ycv;7s$R7^c(Su!d>o?
zsiS!8GOCkQ-C0z9E$MZ2PNruzvuZ5d6*nqQIpV&KJ0;HgTMxtRi*iP${S=j$eBnz2
zd+Ap_@>e?Z+ayBacKL24JhsIg#~=LrG4BecTTllC0tTLlca!9x<Rq_$V)UALg#bTF
zJ$#`D^+s*raTaD3 at EcEKPLdpwob!e(3ZX&I at P%jahSWCjxrlnfLqh2Zw=_f2E&0Y5
zR7!*PQ#ZV6p&#E1_e$_CmR{7Qc1rX;Zsoku!k0i^m9Kl3POm_~>Xq-8E<$xy*SAvn
z{+vZ2Ziiadb(#K_;sM5mJKU>NWJ1I*yGCIE3=tCkC~&Vz4$60DOC*Qj{}7D*Ir;7c
zwR|_1f@(1ST-P at td}%v>5k!Eli=lj<<ZZqbvNzN<63Xk>3(7|!cW!Am9-;jTp_1nF
zqB2A%T`v^2W3vj2^q7&;ltP%0felp6CEf~0?-kYWrK~nn)twzlr_uUedLaZ}2w2#Q
z+GPD{6Tc{gD);x8cnQpLO?;MAzW!-?%=l{WLYiND-+yU}-+5_a0+5xerRe$@yUuQO
zdfZ|D(Aq<na2U5o^XKADiS~988~DBpeSAok>kFyQby42 at w^#AZF!z#9{!e&bx6hyN
zarH|e5K4c?VcvUp^CxRB;*7H;)-83 at xGwM~W4bS#<VVKx2j6G$3YSO9!Zv^DdNXYN
zdcv5gY?;_sMU9ApcTuHUwvrtZ53C0`NAMx>dJw4D!drKy^j6|`Z);cveTbL2D$$Sc
z^W1Tco>L=XlXXogus#X3wCk62rs;>|KfNIoZ(fCANAHO{l~&q6c!Q81p*h=pwa^gW
zI@&CS+`Xf7b*k`6o=;nk at kizBI%xs=K}toLG9erlX1P)!I}Gg|vXy+U5 at ykpg=`rb
zM`SC|#sTJykoVJQorsIWi)3A&Nbz*=(q1e*%+Y&e4hUIF;4~oDqqv@>pp!Y^pGRUq
z00`9_r^`{0pObN;nqK)&+d|NKSR!Ay1-CA2c#*z_$k$mzn40NrPwZK?t>T<#)>&qe
z#0ao{lr~lI{AZYdosqkbQ<`|#iJsm1?M%5L6SlJVZGMBva;f(^*i8-8(mEXV=8MC+
z^_!_H{RF4HG%lDZ<ALRwG8URIdrpAR)A2e_>JI{OX(z6f>vzb1`d3QWmxQwC=t1S{
z;J0 at Q-MX5Z&Vt`AzI3nVr2MBHG>dPdMy0G%Xj+HNcN4wCA>yxe6|_49yR!Z{zH|-0
z)j{`bK<94ryKjBH;9MhlM<{$Qt#C(6woumQIw&1$&+=EUa~%q4J?6MoQo5a)=E`>-
zkm$Feum;a9d>?&o&T<`;K at 83BjOzEgx`9LNa_QG(YD)JuZyCkh?a`EV$~R=t0?6?G
z+Oll|RUjX|D5%}i8-5A1#S2Z_+oZS9gTc2jPr)i3 at 3)!xxs^8vRvDU7HEjp}+a|pZ
zDl*$eDXQXOE_qVEK8b2DWx#X!gM2$xQ{!dHRQ(P8V+A^dvUOT1YQyl_D7r-HXImW5
zF{TUo;m|Pxdc at Gc0NTal{IW+f!XN1R;#NuT(GfmNnF-B)z>eD)N>O<y>Gksr15eq&
zlJDr*F|7+Qkp48iMZhnRG?Sk^5dU4kd6B{TSJD31DHGnHZ8MJ!`MFE!jTX5}Lud;R
zYdz&y*qtZsUlwKR&Xe_5<Aat|$cw;R3gb?R>y^WMs5Ltplt`b{p$d6qDm0{TZ*Ber
zzQ8oS3k0s_r6G=G5NT#5jZ{?|WfFdkL~cFRT*(x$E!h~#`J|9*6&9*M6l^{0zK?`C
z%1{L<o;kUBD&`^@a#7KpM~D7_YV2`&Qgv07Y4A5_4Hlrhoy^R_n1@)EDSjU7 at RTgd
zFYg;WRjx?N=cxwU_+ihUiy-!I^0$v+JXoyyK>EHKOQ`;u#>Xh#B!h{N&s+=j$gY-#
zP_#sRjH#~GwNz(qt;2_k@#1KFIIcxSG`szU>7S)<tbrG*rKL9)f9<`z8*kJ`r9$}N
zWE9-)4TrF=V$HCE`K1m8lfIbix_oQ%yJPKFSXhgfvQP_|@)fRcr^q+pS(mI*<Ugec
zXXQ!hJm?K^Ehvmq%OOT86BaIogj)~uz`XBOItse;SW~*kilyfwfla$hriTR?HPEG`
zY!x&SeuQd1=i~eXqS8ZD;=ts5$#*;*s^w*V70A@`VlFq_i`-&j&HX_7sP}vTpXE4+
z7?h=DI{56^vGprF at 3QF<<vQVbuw+vN9(?H>5uT*x=Eae%$DEG{#j$VDE5*JEu`S1A
zFg1r(hVX|3>Eo`;5*Tn-&J%JTm!kHwRN;m(0u|*U<Ik8Z4wEDcy2u!NEC}|KAna&J
zz{!d2{JVo4-MUDoa#!KZ;(0+A4f5<Uypq>@u<DpOH53=<>Xxp>wA?z{Up$j>U5u7>
zuzkG#)-?ph91+U!NJ8FuNeC633gIVMRv1u1_3T8>$?U!=-=Uq0!bU?!CkybMlVvo>
z{vn!Pk`RWLS}sbq7wG~+g92}|clHa`a6D)S=1fg8ROyEB&J$=Bn9%06<{Cn4E}SDM
zaV;KNvz0$^^b26qFnANc^VbWRee$#{x(0h1r>A at qRpH|u3rB>o$Ivc|YnNOUn)<pf
zDg@;(gr<JJbeLLtqdmnDw9RS@#j}apbP{T20q?pH2<AE%dZl26!|YcGgc&V7BX6}~
z<HN3Q-63%-rZ$t14akr}zFQ)2kMT`MXs#y8&k>d%!P)Ots;`vJo6!^BKPcK;0zWUL
zh6q2V^xjSBT?WMN6RZj#uV97Wy&~bAM^I9d2noGHPOlW^rotSMQRuy2K>l`A(r3v8
zWji&ap*H(nM+bNyFI at r+xZm##PJs(g$aj-b{TaGi1C*MMk`wp15Y|o&7J7uz&d{)S
zEV;5B3XRJIr9&|9$fonmJ{aiqo%{i`V`-aA%Zui8Sn?2RJ~!k#6#BzMdwiiiL7{zA
z6+`Q2=!5?#bYNYd7SDjBbb-2VqMJv6PC$dJ_`*)0gup$Dm-v7 at 7xpO1TBSXq@B_wl
zoa+uD0Wbq0Kcp;zvkyXkU$aOEm at oM3k=5e(6Dyt{>9s<}5zlK3e-Mv3{V_9#S6g5-
z&TYW^jEbXOZ=m%xNXA#OHT6s at uBnH$(+3@)yhA26OUB5l?Xxchwv4M&u%lZ2?3@#P
zcFsB_%a)&=b3&k<vo1XFq*rRcJZ9%SUkO}L7eS2|6vFawU=+YN__8z99$K_NLi^^S
zAp2%duzmBHA7<YSgeam^lG3sOL5MBN<Sl|IH0V^quaTkyCvlI0AAd#W%GL&TQsDM8
z$CxKLc=;KQrwgc&MP%#OEuRU+3Xr95?A9sKlqRl|chL>gV{8|Es))bKc>Ye;4yn;7
zq&gkXi6*`SqL(c%J4jQD9`7#hub}FBuTgOktq#00mmP*b9crK*B@&<g at T+v&;rE8e
zJ9Q2p^yLqS3B9b0KPu_XM-$56{a|eE6VK!3d->y%9(VpI-thQs%u&AQ-sR)>k5PUY
zhKeR=_+<(=*UB1#QgXqaKz~a<5X!;_XHog}`uRBfnCv<v6$&H73yU$&p6S=4T-x%1
zZ$j>q|4PHUjEX5#Nd|*gSlPhm*ZH=Ec<ryl#%^+CL%rvP>#)>*^$|)5kJ|z~OK@^2
zrK7y(i|hRDoiY5{A)I!)w?>b$$%%r>e7MbyieP)r?}J7N33YV#N10IR4XJIs4(BBJ
z-SS}hpY4@`p+eT$Dcsm_vqo3bB)eA(21OF)%a$)M8~upM_qtk;vnRVAsR?Pm3Rk&{
zp&`{~^1535B4|IJGfa>Pi*Uc`25dE&MUK at iLY7sCXh+4~&j~fJbQeq3bvmvW>BU8{
zoA{6euj_OU3t4zuYNU{*hKEYXiiJmnkQGgD&CFu^=dx7np0EhE12J4Y6c;J(SwC~^
zICq-=WeqTsxk<=ct?6x1Y97b7x;l)1FQ!|Fc%7cZ%`XbaJcbY8HtRL1b~(GC1LAaN
zh11O^xE~Fo9emceKU4tevX;r|w7dApKjQs}-DKA)y1hu<K+RJ6>08(u`lhfp;-iMe
z;2#kl&A%7 at 9FNeq2Ijb$vIg4Gf==M2?M)`guoQ~!EM*b~#Ey12&>oBKH*Hb~nbNhR
z!-t<t!vW|qya|*aarIAeOp57tx5!*gVG{Xc{lsru6K*yY3LZ at uRI>K3X_U!bXE6~F
zx2|eE?EJe>HssEO0nLMT{H^#=L at Rj%_ZfNikhh;qi|Nty*(dR+mJ^&F$p_T#fnK at g
z*?TR$4!g^F*U>@Ow{fdJgnYh+g0+X<UKSL3gBaRz48}-z#H|u*0iH#GmsV2l1%oTz
zB1z}%`k|O_ at tFN(GG6A+nWm6@!!MHhCK7n|G<0Mj`?Xk at qHyZM%s57w5`d0Do?qd?
z9PeGGXFso__XRDI3d?AWG2hZSA%(GMq3D}rQ1k(Mt;aHyf%$^=gu%lB{6Rdg9Z%I)
z;1nZIy7sbIE33-*VOArD+$(8~tXht<Cwg+a)brdmlmZ7G_oMC`lFKTP47)lNd{zNW
zI5^%e?bfleJ=CoOM)5coIG><1IDW+QCYoq%GPMg+0;#}eOM`BD?G%LDg5fs$-}iTH
zjKiWO^B&Ci1t*@0bg;Qm0|Ms<Eii*n@~et~<>Fo9GSo|nQwKVUkb3Ct^xfD#)5?@~
z4Frto6DLr51$=>b{sqi8JoM1BbFE)H-r=QB!K^|j>6tfp4tO)0HXigICZ0>gv&aV?
zf(iis^ctnB|E6mN<htvlDSR)z78tTE-+=dfO_24%FkjYvr(^#C7njO#bCtaWI#k!^
zQ-bdI3oJ?)y&m=u9a!)_-6 at ny;bmr68hQme-jOaDnddwY(c1Q-t&x8t4Jgx6zk>k$
z&i at amEh&uMx{C8pXkL#<9W!8vv4)G4%Z3{Tb|!kd8oPu`<~j8(3_XN(o^V`oC{^+>
znJ<mti*Pm}DkAtI6<!}%6wBx31T?6BI{oE8JpFu{etvNJXdlHaTIseYsjxH$FE~Ht
zxE=Y;)xe`>2s#<vOW7-VS16XE0<v3J9@~1#*-v#P`4BkPyT1g4q#JNErVe-2<K04s
z&_-ZqZ`a3DB=51WPPTq6-*BgB*qUA7yLyFgv7&>0)Ktbpf%$1hny&rjh0D;;^h5Fu
z)#6w8=0KVcK>x$^mJ4=i+%aK(m^*j$!r4r!Vn2?hwkvqL&7NI7tCM-}D$JoKkRA)P
zMLv{fqR4mg2UWR&a4pXGS&ld3^2$;y=gJ^^u`8wjn1A}1wEvodSjwk<c>2CJ-8AIZ
zspUKW!p~QLpdm&k-+30rE(f%SZ)F%sG%K)T;4<aKLzE}<pv}e3VfY?C#xJ`*n?g5?
z11a7N{49 at Z;D_ku5%=Yw`*E2)T`bNUY~lQITyuaDLnp;8WD3^^5%=%TQw}E4YwSe*
zO{hSx<d9(oa(tG1#R(Fp2j(J>tmH46k>)zV9?l<#`9|}0a|r*opo?&arNaPt0NxHj
zOY;6~J=Uzl&DB`=b5I9Q{D73y0V%aS;kSR+U;pA)J}BC8C?xV7y at wWY$Xmpx1B*EH
z4~jVCSHuT?a1k@<CiTD~es4<ZfRtLEn5cZBRuxZ)0IuU!PSGrp@}<MJt2DV`au+=Z
zUF4kCc{wM$$z`grL?P)-1J*r9$c at H>j_G~WxwvJ!bviT_O>?;1^(ubU94>B(Vv9j<
zp}IXc0za+OjPM8T*9dxgx)GlE$A3#-9FwsSxe-FH3ZtfXM&^bKOJp(n;h2Mb=}=nP
zusuH5et?n#CLn at zGgY3y{uPcd!?w>vegrX;hQl0iN_Q at uAAsOG89S3(x`+0sYw at U;
zo6-7u3TiloTo`nQ(RlnqZ`a7Jw;kY at gb&1x4I4sXc<W&h9&*D6pJ)1eMk)OmrH~ry
z&f$(L+^@%GC5#IDFX2`=rg1-dnW{jb>;Z%xILq9}k$*tP#^Zmk{uU at CJ*@tgM5Cnl
zL+kI;OaE;B0sDt)fm*cR9ca%GRDa)|9an#4;lOvVRDZYNT^0Wu^+$91AFRI*zx_|E
zKOE>#I0acs{ur*V(YeFA4krJ{9TrL+<M at KdxWOpFCPh{5jpEoP8FpJ0UatLjko03#
z74Ropk2&A-ewP5>B at F&Zq~G^^-R}RjcbYDcD~R<pgRSK#!I$IUJ42k`0v~W{*eG?b
zJCE)d5Xy0+oKF4i(XC(m`R7yO-Qe4g3S$m!3|=nAwE8I!p4E@&k5*YM2%STZ`FrK3
zOM+9zmyNtGu0r8_*3%AEF~9Nbo)R|dQY{|44a>6$)pEIP&QmtRJ7rA!Gw?Tw_u%%i
z at otHDYmyiqV@7j77#_Sa)70W6Y-S-}hkc?uRP``S;Pk`YI_a)QQ0phNuBJLbRTDlG
zq!}N|HO=hKu at -zp3_nWsgS*z at Bhva~d_;FX#`fcYEX3<#yLBmyZkg<nz#bfXunil!
zeD)}y`MV$Yrz&7h<@s_F&Ef$^-XZ;k2DknKy>XV_GA7#-{sz;6V9VG|12(JVyY&~i
zI{C%}T%mkpCp{}{29(L%=|MXWU95O5lUYAZ9rVM4XOI;1JZ8FxNa)NwiTKtE2R^wR
za7H852ZZr at S=m4rkk|kH at u2sPp!bJ-?}~u&ZESx`92vhqX8e8Y0U7~#r&8MC17T!L
zKhQziqfD+8;<z6A@=SbjXG?{}(r54|^qzsk;@<P(;*O%9LeP;>M--iAUIXr<%B|=)
z-}yE4`x at 0xpe9;>e0fwTyL9+qT&GK00-j{>>h??_tQCKQ#C?9S3wT9`suSKI!w%_T
z+}k|~-)Zg!e?FGqSNoyn1{EL+!^~PDd6bYyldDU%_9D95zBnA9 at F?wQhd7|nLcVnL
zBb?u5V;lLjSpG_<Yp4o!vF_3xai>I0o at WT^6>{C$`5M}`P_49c%Ai(qcwWP`YgW(P
zk>xyp)t}(4 at tiBI#5slUqosldmjj8vb^(I#al9ewc(LQHhWNmD7r4ESYLHi{?|tm{
zB+vb!!RNzx?RThcnHKZjI_i+QjpxN}&YQE~uR{fqxSKY2>$l)*w|*Nwc>SJ^$T#q+
zsO`*k2Xo!q5lvm6W3IcHYiCC+b$yAwzS*J1jOlwi66o_tM+$xRc5w80LjKC6O!#HO
z{o!1s=L|i|6G$k<QPC=)rNr*%`NGE+Hb|&$Demwav|r+c7$x at i*%ASPntzq4#bv|L
zMmjQ~u-%~;RG695Nm+q7HRw=4v*U}yg_%nHp^NA!qW*Zh<|tpR;&tkdaPSdkMo|BR
zjulwxz&2-A;SU|xVWl7Bun#hMUA{0g62f+<Xv{^lws~DaJKuL(k84D7LuaH)a#)(x
zwr(b#-!iZ9b4qi*6;BqRRA%?WQquCRR{R-Df1(8oqb1b~GICPG8j+%FM2fB(qiCC(
z9=wR{4^K~!zcP$;{o0uocMLk)&8YFkD?E|zcpNQw0_i<*-_etZZ^lOA)=8gPL!Yu|
zw&7E3F#ND*Dg at K?@#mZ`48Gt&`6oc09F2OZKg!gOmeBNXH0nsudtcD|-k|q0LGMFB
z at 1CId(?Rbig5HON-g|@IdxGB22fg<Pz3&Nne>3QPN6`DWp!e+o at 5ny~F08%m<>}a<
zGLfHQ*im|1!GG(&6=Gif|GfDQe*Vwj|9gLEAagZfs`wj47G$$?09rtp2o#5B0B!`N
z0#M#c7TvE2`WDS*a6XYD`cDJkRN!VY-g^K=fONog(Jx92j{;mBpc+sp#(BG#RwiH(
z0M|Vp0^kXhaiaSIF<$(x5r7LHMnJw84)>u}0PyDGDluH8n78R-I(Lh1{y at K(V!5*?
z at DCULQYP@L6yu!eyZ<hzofT>71x&s@($o&nMn;-`d|RZcH7e5N1{8^?1Uw8NL^4T2
z|A_b}2?>=>nmk2z)l_Ilp%U-k1fC(1(9jTR=%h(fkX$8A-T*{8ZPN7H;<6^sSY((o
z>mg<Q+Q&O&w`c#cYv$sk!;y0;Y>!?w^}6fBZ at 4k)U+##GxicX#DLF-xs>{*m=H<_w
zS6ouM<esI=?yamcnyPEe57-^fm8%*WA9k&4{qbXM{7-)N^NpLH_{HX5KKb-B+kf-h
zXLtPW_b<Ho(#yMF+4Jga2M)gZ)}ij6!*3rue&XNWeXsBRlOKKj$(c_-``k0|#o2RT
zo&Wc*FN|FL2J;;vm4-^EV7?_Gt4P2f6kwWk(rs~*r)MpiVt8oAtoXGuW%lD8f9$&I
z_Bo4(XI9vbPQ5NN;iIUtSOi*vA69 at z|3fA46~Hh5-}kq;EYh?a&?#b at h#J5lz;}S_
z?~gR402TvC=37gjD$bryGUvuWGi%4Rx0c at a$R&G4&09<N>#tTfhd)(($(~hLQt?#r
zi&<H-r(d5vzoMq3qIqfd{M*uAi$16f{(f%!e*KGCx24UEfAo&zoBFSLX4ci}tl6(c
zKQk-&rv1}5T(x6bbNKY at 4=Q&|>%V5hRUb-Ou7 at +eH01xWDDLZww=IQ_KmYmpjNebI
z{j#F>T!z;_ZU3{K=E#AJ*Hzt*JiO?mjIux2J}BLBG~+92V#drb52l|Gre-*`&t|Be
zi8OJ5bAZX)C&tLr?1?egzYuA<`o&1o=nD*AiSVZ>j+eOO<RSo#z&}DWXuw*41c4Va
zT*8|y at D3V4KW?l7tYPCU_8nZp#KPiQ9P(BbVSH}QKML at FI{p9a+sDfp_q&ENP6$7N
z_Hjq&tb!<0XknD;b`fe3zRK=Y4~HG$E`=VP^OgKB8KY}5cUjjL>|O2By=edG!u>6(
zenoHWP{irmKbdj-?k{isaNCOZqUUP2-1ki7&x?0jo+_91q>M=4OgMk_pVGda(w%&v
zEq_nLx}29B!u;1Cc`WahRneaCzQ{Am6F(Zf>C_#cU;o~Yn$1hMS8Xi$!-KzC{%rLx
z?g=>%f9~3M(l1N8;?7?4XYF^7X1`$Du;7j6wON0B$X&RvY1YTnkKOh6TRyn$qiIKH
z|Lx|#K3(y%#n0FO`u+~X<BR^aZfn`pw^P5Fd?@Mbs}5@}PI at cx-+waiwTFM4yL%-+
z_tnN${maffzqs+_zkGJxyD<YdydU-H%zyj+15e)jThkLuerNvWvfmgtm3oJPkniC!
z62E40l^7P6kx}Nr at i$y-K6uC`j<;8fO=}WivWHjhxQ#IR0xi>G0J8vilp9(;pbRn@
zfSWN<=D;x<SCUY6xRWqB0mo>RP2vGR0-z!jWfGJ><bdk|w-6?apcOXCDk$ru0Z`2}
z8-R0joEzfg9FHGKBuo}USqarVINqbIg0fA<e*&^C)lR#r&S<wAs*S2jOO;U-h4M?W
z#b#@aRXJ*mHlxY_s5Mp_YE?F)-C;9VI?R at OyUJ1zK4wQvozY>g#Ba^@DE5%7g1LDM
z%1f3N=~ZUCYL(4WUmdHm)*20VqsnA%Aca{=%d-j!7V64%`K1fyPaKG4tiowB8Ep`E
zy~AdyRn<ZM2$@^I(ok!z0 at pgLrQTTYP|eMOT&v9Ws^W#kBu7^QUPhD2Txmv6ixXf{
z*$nm7Mlu(D!Nm%W6}6Vi2UT|S!&qijy~UxjJFQlW&0(w(lh23b>kRcOhoPd at sDc61
zTyMs*i{9pXjHc33Yq8m_hDxL8Jg-QfH{P|*V0#dXQfsWQcGQr2u)r*2t+~Qxur;by
z8f|unJJsg^bcw2pRaF{lYvDs<gVk8+u(RqR#fCa-EznzKGE_PsA(g{oQPmo3P>Cjs
z4RYo%+JKlVja4dprJ>$OvpQp)1){cEfSTUgF0J>Ko8_p=;4rAHHe;n3GelGLes8r|
zs-Y3s%`1&6tHEY~x`%A5itSn;VX+ba&#IyS*J^*jcLoQ|9{guBTOBH>F34Pzm;Cmi
zLXxrg{J%2zeK at xcQnF%`0jdE}0!a)l#O^RS#5PX7e3=0so3qlPsx#Z`435g0v3hXS
znCl<3vxb6o;v8QmPBF(T%{GS<`ia42Gc>9Um6cFrlFb^i)nK;+g~#QI)g2^STT6<a
zcB`?TQXShPI9XP~H`oga(dp(cPEyB>kp+X8;kU64$`8RBji|OEB at i97+D6s}$GV9<
zmA0okLjx<nf4zHy){CtWdiq07=<H&-a<X(lyeebESmmG-)P>WiQa40-`)f{q$+&Qf
z{G5os&gy7n1Tfbj%ZbieP!QPnV#s2np-N at 4S?W~!!eXd=b1n49dw|s#k$Qe^FrPD5
z)!*R|D+2ffa4JU)Gz}=Qx8Y+SH9>GF5=3jX*(^3f7BUt<-B;0=sfTLz?Acz1QDwFR
zcfcMDj560|pj;2?_It_i<ruVY(H6sahXv?rg384DDKtYrfbRpsvS73w(=dhxbDgtp
zj4C3zs?2p_`=BjRWi>Y#YwaRg&AzgdBAXFfvD1c8R$*!U{B(wT%(??OqMfE)<)nnI
zbJjY{P#l#LcrbkOkke4_Fh6X-a*O$6V}oDctFjpFDqn1MX4+;c1M%n6*tP;<Lq at Ku
ztf4G<!9=ZiF>8MCYBI8NtTMoe0|}s;!9iO!R-OY0Lb45&4<beF4r~B{oScwAE)K0#
z9p6Bs!+?~j(_qBM`+yS|4Rv(XF_`Ny9HTyjSu~y|SBww~W?*d{>7I(b#|GSD6^xnQ
zuh;`fWq0}pERjb?SK?S0RfVF6x6VW&8vR;&RMohCK0$b>UXyVZaG`*2>=T6>AGLj~
zE`6mD*(KCWs>-p-0wZs(IK*M{-ygnC>;N!Yi{FeNgMf`A^Gu}?I~uKCI{%}%SzhM;
z;JjcSDvTy9Go(avDPuu0R6-j-hGPV(QbtX`jIxW|iG{;P5D<VA8;uWM*;nLZSMt9i
z`yp9Y;5n6Iv%{_iBZ`e?lvXU|b-<L2_8`74N*w_NToN!yiLw<AXD9~3H%=?ijB*={
zeU-V2$rLaQ+Q&L7&59qVUOEA%_H)x&tc^Bvb&W$6t&35`X*4OZs*)N at 9dw$!yHo{+
zdLv1yP^sdRXBQf5v(X>hu+u>WqVbH#PGwTeUZurgv$G6VKz~6R(27QyRaq*Gs;r`-
zxCD_7sa_$A4uqy!L$#e!C80rl#EQhV*y_Av<b(B=RrMH)+Dpu6>@o9l=jO)5isBp!
z00CirDYC#cCjp^zD3?%Wjmgg?e#|7*TUTN*F9-7vL%f~=EU83f)2cxEO$@r&NLi3-
zE{ccHDKICwHY3zI4yw at QtMFqdSy+LLZ=ACphLVLQ)m)Jms>HvjIaS{Wf~4{%pnomg
z1x10XsKP<bff8H;=AFs7_ZV#Tz$Tzi*Es7c>Y*WtgCHGOeIpN*)|kvXMqiqyvB4n@
zmfnQ@`axjbVL2#YhU8IF2~JZSw=0dcwa`{AWAgm?$V%&(G&0uv#0vA#E5Z4F at QyLa
zA)ymNUbOJvo%ElVACC*-<<rH+T9&lWjdl(H9z?Pn!I_7qf&vOktPZioEG{m=S}3lw
zSWy104jfe(t?FSG=z!K?uvLvoMK(-?^4((E)}X=UqKNHl+Q3j8Fhu|<y2gkcf&LsD
zyy&!n(n{x>-$hlS=vo79W2NdL48Wqcc-x{cB@|6kS=oJq;rOVkDshHl!2iLQ&Rt^J
z<RzBPUSh at Ri>}r}MfP!Hz(SDHC-k^NyF-pN8}npiEH<ch1-8X2#9=km8Xd at 3{{!DH
z&ddJ(?@H^j4OG`d&kCGa<Ajs_i&en{##x7Tyi8Z2vx%Hz>BO8P(0PnEQl88NmN8a4
zrgxZI595*D43ZzD?wd41N$e;P)>kr4U+Gt!0dsvCht6WNIYBn{$#bbFDFab#V%M!`
zbO7%VNBzJ)I>EQrU{RW~8oRL?he0xNdKEA%`iu8tyv!*Qf>xBxxRSBxdZ-%6gvbxa
zOYc6><qGMUEYA8Mb^{VWP|-j?XPwzA2cgL0HwQ<8GU__aFeI?S^ZVotI=A!}IKJm^
z+wY=GdjRJF%HKzsG=LI-9ncQg19%VccYyQ{QKoRfQa~GEJD>+Zo{KUi1Bw7vz!ty&
zK>Dvyrn><J00&?TpbKyUFaWp&P&^-HN(9UUtN^S9YzFiIh5^c*QKl3?HJ|~o5pV)<
z32^%^@B^3t>j2LIdI6UJcl<HRln-bCYy<QFMgY+-K=}ac0J{Lk0cQb<7a=^r0oVxG
z1Nabd9w2)u%Jd at u2Urd01PlSfUyd?m0PX`k26!5<8}MhqX at GP$d;@3z>;N1Ad<6)5
zCCZclxCdYbYy`Xt=mcB>r0fAdfC=CNbO7D}yayNtB)kgW0d at dR1BL;z*P={nfCI1#
za0VcIJ<5~>C;_Yo?0KE(t)uKy1KL2_3_>y|6S5|q&9Msgg(RxBDhk&JXBW)P&eQ4c
znG-)-pFexf?BaO^^JeFj<S(9GICnuFI766KbK=YGH6ZX+Ssk|7>2&nhYN- at pF-1d|
za(#YzaemffeGZ)~-F4U9 at UObEa`v3N67EWz9j{g=spI03XUC!A-N0Z>=IXo6b5fG-
zhNx$=sAogmcU6)+qa({<sapV at BTE%+fS<7{d#pDtdrXY#Hmyqi{cZk#{sR9pQ?}t2
zA#&ph3DwmbMMU>X$ljw8QgmEGtg9qM0q9&QA-zi^q`eN@?}2ZD7wwt at C?G^pMo9mB
z300I2-yk9VlK{6!h`Jiu)-MTJ at g>L&tKqqyklx!QB(tB8c0GLiGPt)v{0_h<e2Y6h
z^$`Cw at aq5`<%HkU3F&+qe%}J$Kps{A*6f0Kz-{<?_&y2%ZkZ5n7r3q10(pB9!v7k=
ze-7WG`)}d-2YB+3e+0<r+u*qdumb%0J%kixNXRY@@|_IN81S0~dAb__{zYbp_hX0y
z!Vd$;Pb5SIdGE#FD)4&_%J~}z_j}~4kj at 7X7Rso)4c;Mt?YBZ+KLURUtB5AVIupY0
zAVdv$YHx)6#Dd>WhzIgobTfoif<Isw`seU<00^%D^g}t at p)PKR`kDj4)4+=XW<U$z
z7l56BLx2we=K*2=CLyx`ser|R2LP)98vq at EmjHhP{1tE(FzH<hxfyU5Ko3|3r~@<s
z9tS)NcmZ$-a2jwHFy%c7xdo64C<HtRZ~@u at zXiMjcn9zS;O~IYJ_!j2+zrSEECy5n
z8Uby9UjTLjIsxwhP6NIGd;^&JzJ%NexC at XAxF7HkpatLtJOy|Ka0KuP;5=Z;NeQ_L
z5D&-!ECoCOcoeV&@UMWk0Ph371V~Ony#rK$y8$_X`vCQTM*$lFI{^Cte*wII3VV-)
zgpg1oC6mZxGKI*<Rb(o;nuL*S$hAaH6l5BiPG%4#nMtlA*OPE^1G$mhL?Xz|<Q8%(
zG^5+dEOI-EBvIsF$Q>k_#E?75k4P+Zs=LVDL`~vIJeflhNFqrh$s~nnNGeGq9MO_=
zl0h;_7Re?$l0)<)m*kOrGMCIF^GN|IBn!wwQbZP!#iW>&kW#XQ+(VX<W#nG6oZLss
z$o-_8tRMzbK`KcVdBAF{zN at OXmOM~tu{M^|#h7xNWtI3&=MzSBu#*R>%q!s+h&bg=
zD|rAHVanrBonG$MTiHa{_z7Jr%TY!wAJcUB-0MJCo!A{@C!5#D=M18tb%Nk1&6YFW
zxg*H6$~fMg%>u+UMAxb-WU=ZBS*$9zTI`Mq+(EWvr1QFfc()2BXysLv4$-9s1XG%^
zDqkS#1md-y6IB?GPryu92#kKwF{!g0wd=l6q8rt$kGWBrV#169UU#bQEU&Bf1vJ{K
zjab!z1+h+$Z|ejZ_xlc-Sh<es at pQg4$J}!Ka)Pdg3Ygpa{VborJ0SbiwW^A>w{ohO
z5*=%yH8Y})a~&7B(okDj&Xy$0ed>KNcAN}3>x`^2yiU+NDuJ*dp4XO-$??p$%4jk;
zYsJ>bmLElTJJe%iz)Mj1ysp6|G(lCDn`$ivhu^!|1hwh^ZpXz9_HM4NEw6xzV2ih2
z$9l89CMZSGaa at ATnUO?vf~jUXUEcJ2XG>=Ez1mn`Zm~LGVq5D^+G?Z2|0{g;`>4hM
zolso!D98DXn7&^-V-994VO&F;-&=e`yx&_wLxSI%AFa$mv@!?L%G=4Xy*k9y>I at GW
zf!9ETHm`(k;HaqebFZ4f-B?#{SPAp`v2vpm_Jy%GXd!j%t=_nbwT?Q2mAP1~K)njK
zgi=nIP?$Tk)LOHn5lMrZ9p;GLyxecfZTEAo5m|uG!Dd)hPS=9QoW|yjqMN<3zOvk5
z!C$DwVa|5LN at KZKh0k1!;~O=)i4EQ_6vl3_d2>JJF7hOCVZmY>^9c+}Rovx%x(Cr6
za~ITrnOkuCWv>3s*Y2n)XA6(sSF?roH~)9Ltx|k-TG<G}RNc&xveF3%&)n<EQKu2;
z;$Iu08(VAfa|x^<<`z^#%+Z^bu~8U?S4+9cVEYHMf4|R=lMH<%A=}`+#Lq4BV~`E~
z-h=-xfu9V%Q+_lSCK7%p05SmufD*ucfGU6$uo|!qupY1(upO`quout+IN=x9e`Wj<
zl2uiOv&k$%c9L9kz4&rEV3vt?LgnQk2wCcl4Q5m*Sx7mW3fS=XW`Yf;-h%NBkaDx7
zf{>XZY^1s~gngh6F_~(ec6wZkCd6d5nd==m5l;^>VV5Hr_=E{pUWkcSCWf0I0?g1@
zzY>4jLh9(ygufd?fLl~r=^FII_}k8G3Vt49_r?1}h#lJqvr)sk6ER=Ec!9oPPCS+B
z;7<u||19e4D=TddZ;b!*_kZ1=g4xtfQBPCHs5R;wb({J{b*FktTv*(X;?!}HbXoe(
zGLB^6{1(HN#w8^Fd*U~V at +4(aOwwIRx}^N1?cDR+%iI}mkUPhraUR<Fot-l>XLQa6
zE!u?QcY6~LCcd3`G_f!7!^F=Llan0DUvks5ymo)a$&7Ds0kw$P0Ip5W&@RwcX`8hd
zw7*XOP5Q3%SJDrpA5Mpf3H7%muT1_RIX30tlowOZr=)0hrM;3i#C^q~VL#gYeWiXr
zc>(tx_bI2>7HdD%MxY_y8fHg$F{w^V+L<liQ|en1+7kbss7TtW2}_-k8j*T?YHaG9
z)OR_hHbNVzjn$shCZ(sR=cX at 6C)=2f;rV!ThCSoqjI|kU8Dtkr??T+Ci9?AWq|M6U
zGuktLk at 0IROD{|BXLF9sA^psj at Ikdr-Kbupeq6mny;FT&T^whNdp_;ew0KU-6>u9e
zHsN=}%qB5DE+T$ed`*0F0-ta&>7As%CRL`rn^wxDQ|na;%?nZM;!JVMq~B|LG(;hx
zd5K9?r+$|Dx70alscFxqeUTQ%$)VmP)L!zq`ZM*HYFV5nt|)F(Tu0nXao5K8rQV&E
zmX?=xPnv_<&;1Fg_8~_yCA7ZM60;M3ml&61PWn~SYf1Mc*Co&7ZsAI~O`Jx%L~GWP
zB9`Wfgc*t5i8mz~lN?D?lcyzzC*PhzR!FE#=L)VG+QnY(TJ2lfBWNILWpU3-s7|O)
zuqL)7N>i>$c~aA%*`e8~*{wOI`DN-xG`3tLA$YUEy(v{G52n~s8dKJ!JeIN{WmC$Q
zlxI>rDN{9fq$Z?hq%KaaPPL`3OKng6b?Wn}Z>AnkJ)L?kby-?v+N!j*Y0sw}O8YSF
z-_x$<ZscZhcXII@$NhwRg8LQsEVmoV+s(ZX<^7x+=0>=ywF+&jR<AA6F4vm04{29x
z*J(Fsk84k9KhaK4pOqe;o}Iopy&~O~{%HEo(w|O$0ovrT^pDferH5op&zO}FpHYH!
z(=MU)P6 at tELieeVcxk*WJ}h1luZ$0mkBC>rN5)6T$HtQcX at V>vEJ2Z=ObAbiNKhq2
zCPXL1!n9tRC`$}WR3s`B!xJMCRf&;_(TVEBgv69YE-^DPCsCCgnH-%Qo2*VwKtt1A
z5 at uk_NjVu8#wj=@7tTd+DlU?X=3+TDm%yb!$uqeeE+1N25m&-3<?iEFa8+ClSIb#B
z2iL%@=GJiQxHfJ**UoL^Hgj9JZQOQl2lpJei+hRN19jNRy~*`(N4Q?@1lPx%=K7((
zd$=K>-g%(kC5~vNTA4Ns=&00&Ll06xABu)vq}C>AQ?#5mQ=6mB*A at VUOSDV1_i0x^
zAFt8YYOPv_wgKq91}NU9U9WA|Zq#npZqaVjZrAS6KBwKKeM!4VyI0$(eN)>5t*BRf
ZLffZ3t?k#I(R#E)+W!KM`2W at 4{{jrC?lb at Z

diff --git a/VisualC/graphics/lib/libpng12-0.dll b/VisualC/graphics/lib/libpng12-0.dll
new file mode 100755
index 0000000000000000000000000000000000000000..44a38a331c61df576c271f1ed838967aa46bd2b0
GIT binary patch
literal 132096
zc%1CLeS8$v)i}Ph*(3`r&Z1GHMu|3R(xMNkR7r`N5GFw&io#MW#Hv+<7A?hDKqZhc
zyU9++g=kU1`oi;+r=`^vYB6jALf)DeL=6EoAqfPCy6dJjf`;&7_Iu8`cXnqtQQPP9
z`Th5^B|CFp&OP_sbI(2Z+;h(q-dACYGnq^l_!kP9Og<C)FUR!V|CPYM3&vMpVA?V2
z-K%}Vtaq=TyJ+zfsY{pr>d|EnK9>6P2Ood at S90n@kEAYhKAyVx at ziN|%}IUiR}VjO
z<JhsI(>RRTlF2knNHjh2%jOw6+#b^f-y0*CC!013 at Mfm}KVXMP{I?y`nitcvnc*#P
z{OP|3SfW&9rhb`BsjMFUv9luV)ol95_1ICfsX6XjIyu{HnwI!)5aU1m??(BNl`{P9
zcu`;oVP7rLWgdY4-}vx@@`Lca856MY&^^=3LR7gNld0y$WvpQ8L`bNC{2#*atHa9W
z-1yKFPvCParI<&=tpwpc!r&2&fL5k-tTY0=#jG6BFozGw;7IsAvgB7kH!)fQO-)w#
zJwL46)DaQ-|Nr~{>_3P4 at toP(#U|6f#qKsaN4wGvPu}GwC1}Yyxa?vr&Rrv)3bnEl
zl=wtY>9d7?gzx^L=LJ(!JU${UrNItazcBeff at H1ed`tbp3V=UPbJ~<4VUB#$oRHH#
zFXXiP%bpcXkfhfCRDQ at k;JiRbz<F<G=fVoL-TTPk{QFz#Y^DkTxTpkR`~MCwp#gWz
z at 3E+Sa}%Nedqmg&DS-3ufj{8}t_?Tfe67M=<9x$^Q79A&{;z)lVr;TO)y$gUM#2x9
zKro9CFjls*rj$Y9vKropVP$$Z2&R_$3d}1C6g(%GD%gKiHd!qi)QYUC^E`Cj-6<z2
zL)JBysr{#0YX`?)-S1H*0OM;=#(7 at tE2>vh(tHgyEsND at X%_#OC4wn<NFDI*zMhZI
zPv$9oR?T5=l=@Yz(AFq at F<UunZIn*l*(jYVXq3Jj+bDfCx=|Xqyiqzmdikx at IJJ~B
zi9YCYXvO!umT}6Ub;Zqqi`BboY`^ecR-1a@)E~s>YQz`o((A-MbxMQv{+|`qd*$m)
z?l!9C+#CF?0^bQ(#=c;!cgJ;vPi7nT(5^`~b#9skP_}B4Rkft~?}2J9?iz7JjaXSz
zUlA@}LlgnTRVQ at Vsuq2z71`YbYVmn(^%6NFlQnqyR95q{3~}2#>fl%uh-&^4byAu-
z3n+5gqk>6Yy+nhG0HK(XY*Jd4A4!G<7A+QVG>;&@G#=$pBc^>s6dr-XO%_^v{A<?%
zlRB*GT00CzOTAtm=7Z9g1fw^gq(DZhe5;nX<XT)yZpA<HHJW5+y|y7VO~LBe{~rQ8
zmEM$wr1?P2N`yC%_n1}Q&r=wF96n90)Y4+xc&M`cN&r!n3Qs`aS!q_Jt-tj-fx|-h
zb&mk&TGCKt`}5&hjSId5yvh1!MO?gWAU5GZ)W_1_VTJj9y|#8503iI=PKPHBkT~zx
z4+Bu?Jj at nzOT7<qVL;C#&}jfvlVC~*$5t5sV{-#ISe1brRsq~%D~z?~w7WxEQ4(;2
zyG7hkH>!23;JgWDq<ot)WR|aNl5DnG7(OVRlBPjb4XVPx2404tJALr#O{j+;y`r=0
zD at IXHOez*M&KIC?idJZa$)^?DvHcqN07pV}SK-`y0imd^R}T&}<cRLS3i?Z`=)TIL
zzX)<-=|XF0Zz$w}cUO(*xj&BOZMBQ;<3PBp&koe3%JY at tq>$*sRZ=TE1b|^+3!wA0
zCoGyJj<|%4%;!L1Rsx1Yn-*tPlhTOvABHnB+nOw-j;M3vtRRQ6;9A*?Fh%!Xb2RE^
zc{Xc06Z=%Qn>C%SIg-37&()qVQxlQqmr^UcsTBmzKygOl^rPNcMYkNMHv(O~MelZw
zyhtk>WX=3Un`g=FbhoX}WSs8Zi+?rCMx0d8DD=%g^mA+xD>PX)Vs>8E{gySI2AsOE
z1mOXUN+prxYeFIHn4D1h>Cv}AIDB;VS(OSY4Jq?cRIzTyW4H4s18H2h4uwLT<kR9T
znDPTiF*Ni9Hk3b^dTt3^iqmvY4WcBvtiap5 at NxBZ73zXC8+5>D;?pFL_!_$M`>#Wx
ztXHwdnodqcV?UAry!t97x2Wr|Sl|^vK-trdfaQCP at O`OB30-s|d;pL~@Y^|jVuelv
zC3if8 at Y^|^4skji4TS=Sp`w;Q5r(2>_4gw9=fvQD;yl2=f8v at WKm-Hc3jl6Y{$#|i
zDSsl3AQ3vy2j!9f${J$3n(+`0YBS?v9ls<<M2tQUg)&<>kG_gk)pb}h(1ze(n(F0y
z9|Rzh6^P|Q?hai0HOtq^HgkEzTib;N%if4??GKpv!gfxL&GhSTQ>mDIXJ%)~p0|kX
z6Dl;zO9o(%hwC+2ULt-JE6cEGR{NR{Q08JA06+ghfgo?^bUp_pW at H({$NX6aTrP*Q
z%0lbstUy!#EQA}VKF9l$Z#T4m{~2J3h1S!0S=xy#Y|2l98ovVyEv(S;R~caMd4OQ=
z)yuCU*bhU=@cK%tXLwP8iZ)+p4Hxke31$>9AD;!Zl~j@=&MUl<Z5PS+1&sF|MYL$4
zsn8T$5cF!dJwSAzH2g&Xv6a6cuFTgrTy5D>4 at -Qp4VL<%FXhSZkUU8n56aMuRB=+8
zKNpvjvhaFTHp|ek`+i_c+IB at P`+U7)i&>mDb#BoJ>k-RMz}{nlX!%C<X@$tfl?v1|
zkRxMIj=YBQ+ubR;M!}m{d1t~xvGRb|a-q;#+hc}5eye9+dR^;hrn;KX;ytZ3J(hI%
zV>Y#>*NT<3fORTVipNSS)UaT+IH6UotNqLxRY5PF0>v$?jSmnrp;f36TD_JUUd7^R
zHPx7)Mx0(FS=^ZbKS{pV|NQ6gLv8aNrvs|gqc*FK-UDY<N8hFlN1x{C^IGl!l&hD*
z0-I6mwRv-DNl~(kmHBbN<W?YZ+IUdXh*_ at Gm;aM0%#Cs+g3^#ZU)KlK?6fK>f{NDq
zA`n7UM6C~W3?aWdd=&`&V_n~I_~zAp`}+gY at 1#v4ztDOOtU~KGuugc%cFxqECC+VI
zovS+fwN1#4Udwamg?8_~=VHbmVEAwgsvcEqPyIn2uLR>mh5b&yK3{;HGHW6XC06EH
zqBsosN3z25W>acpRk9WZX1D}Xkq<f>st0-K at ZnC_*dI3k4E+KAn+MD{M?I)EmL5l=
zO6|YwwL$x}_^2Kbw>68~J`}gri`$L>f9$LM%r4ZG9-~a)8T+VO&@eIaunJmsl4_lQ
zKPZ3$!}xasO!p?K2e;5#af;?lN8TmfLb7GH)%wRP#deeUDv%J=ASro_lq9NqDBD_9
zQO8tgn!h;Jq#h!U!@g^C8H{mzM(Y&GCO&f$P7FsfdruOdiKF*ae9sybpTX8LPE9FF
z6QB7LPBGY^084qLJ|=yVGa7OAflg#J0U!B$fQVkn&&u?&GD#UynkJ<&8JV0RrD{?t
zVzmR;bE!8=>XRpEQjgLwfmpHvvPTVyo?A#AO&irOss->ExITm;5#_Dq&yxC``=OV6
z8?cwFSTCm)g?ky?=KH#i?Y6jBzCMx}K*+v}>!b1$4f!@|*;;jDeT0OcE{NoJ53zj7
zkl$p;{|n^D$ScV at 2UTX+71c!P%a>|#YVLhno<+^QU)-5zRqn8+E>v?Lns4L>(*C<8
zJ1UBWwr(le-3CCqrBs5`Eu|x<ZfRn-G+A_C0OQv!<#fb90N8cB-|=h-faqxH*o4Yi
z`+MEe^p5vBo^|2N`yKCgJnLak`#YX}hCRL0 at oWWq+Sl>y2KMw`$EKGNOz~N9r*yU>
z{$YT<aIDGJRl87?2D|>z)c`F#HrTld4Rsxlo$adYss)gkVqqyA``hagt#>HV$`kjs
zzsoDycnZt6^EZ4>;?FJJj-2+|j(uH)(*ZNgNoF~a*wS4zosv>m5|Ggnyok$#?)J$4
z!h8M6xJd<hRD^q0cMAw39G6a at C+usGo?3B|JT^*hXwn2+0yHTdMLXl at WaMR#*P4_9
zKQNh-af3t(8B77ymgc_^R&tOvZ>fJr+F*fQM3VSL$UTac5>r&gMh~fMdx^l6Bzj0!
zm1KIDpwe!2UZ*9k{fmy@;jqGtgEytYf(baJol-JBdgw6)AD^MeRD7(UN2<Jm9 at Fu0
zBRx(y0*^Sv%1o;zc0ERVrIV$@N>&e8?|~b2dJ!K#)*ZhQ`K_h<*wLQuj#pRwq9cAY
zC3MV5?<hXm)zZ-dtaGwGehX(EV4VJr$ND>ecODt*v6CJD>S#F}INAdU2(LQFKXoPU
z|CiM3`~RN`25U-pd*pdxMRz+C^{wLb*?%h(_4VEDyQ=!F!9zJJ2qQ;dx8x7}QkNgP
z{$lJ;RA;UQ>FlmqnKzpg_eaeD8}V|3enjZbPnSm<j62Z$62197_Zl(9tgU+1 at 9!le
z#@3Pc*Xah+iH%GrVSX&Ovt2C?8pw#G=?iZSnU-G$`|JGx**I8%TxbFJ2bN5>@>|);
zZ$(|~AN{b10Xlr!WAVG@!7@<xrGN^fS}RMLZ3~sBlT31I41VHH%TE at nmb<57<5{h1
zJ_l0dC>pA(R(0m8iYRsgtj=S9oz}oZA*LVe`*j=i4>|`cSv0*x_X%QfyH=PKEgnVp
zb!N)RDtj0n#I<!)Fe$5S5xxGMy^aB9^fbV8X|a8EC^TLy?_g7Hx-uw;FV<z&D8<PZ
z@%b8eotzAhR(Q;8g9p3#e4V=$D2pT+WGiY&pvIjSDxrA5MF}N{uMslxIHcaS4SX>3
zfz(PU4vG*cE0jV|n{d||GE+ at UxEoJWYJ%umiVwx9g1BCzbv6w|x%+i^9LQg6moL!D
zCUQGKkWGG&97Qa#)^Aq&1*JGW2aqN<y<WR>(ZE0K&hgkD^$1$P4#`*Z?K<D at 1KK${
z+UtJ;>`C=RHzS{2jYAzI&mvYz$)3Dqb<mS{89b+X at -By;bWh$D at RRDvOHl{2<3!hu
z*o7W5nNHJ&EODN^D+lr}v&eBnc~^q2l|1nCD?NEv=|fT0i at TaUw8nzcX`>Y$5qdyJ
zXlS0GkD;19#8|Xk&pZa1VMw^!Cw&!4Y|%^H<q%APajahTAxuTH+Ml3apn>l<VRRD3
z^<^CPdA+6^%Fs}(bF!?eiT~iz<`;+)jg9MJ$cvc|2xaa+IF#G5rQ4xUcH;8uv_gB0
zKMvGxaa*mLXVd%Jn0KWRXh-ZTxe7)_>Xe$qT7MiA41RzxSL!gIo(nKTUo(9Fq^Ev>
zJ)Or>>-E&Tu<R{Ew2_bK3!ra+rVyiRT!v$v`!Eo@^bRX7Mr!UNm?WOuCAwzI>^mfn
zrlTZskPR5Nctrp%2^Diks#ct=O3kojxjR)ykLGArrCw~NO)cz0X;qk}7W=hg&`Cg|
zZ57nQF15IQ*h<=uI at 5__0e6Gmr2;OP{x9!FsyBl$T8rC#=M^AJda<9-I#dM!Ovo*m
z1Jz{EEDI3|4cMOml2}>Ts}%!gus`y9*6%>hFW-VPvl2E?FK&e=Px)I!|1R8kKN8*g
z^1E^4gVqJuK954<Wn;_Ypu!sJ(i_TwN?LJG?WbmSNG)zv8ZETer=<CBj$n at _1=00)
z<oKaPwNC9{K5n4SBHNniEKZYJl{(9LwYD~31~L87sn?sNLoA~wtG0Nd<~XDkwriGW
zkwi7Cu)StLQrnAQ)#Cknga4R~4MN#w)$*cNin&@+1#FA&&<YP}#Q<SFBCp#Y%K%bH
zI)sf#hgQ7=sFu#K;!$4dZ%~q>IuZB@@DcQUBJ?~^#-8uR=coQH{<;R)Du+ahr?d+d
zFDa>eQx83)bZ_#*LlNz-zLh_hGX5m>CRZl at TsZ=N^7Rs{=u4*5Ppb+oopoG=6W#AY
zjnWXZ`|_Jhp1v$jzCy)i2)PluR|4JRY!#0T08<N-h++ at lBanUCu%6;EuD+f+1AIM=
z<Ll|%J8?Zlt*r{vB36FdKRgA%ENiqEk_6py)2|Or5b{cCJw^B$fq*sEx=`JNs-K!?
zU#LEv6y6U+O{FkBN8Vr9aepxlx4 at thn?1SH=j;35;q)Ji<7Z{#mph>-a=wG~zBl^3
z%V=+hWh<=j5WQ$aXlHgFtKW;8XGp^S^;F$^Y4`0!!C7f&x$?jE70az&|2H&<ljXvH
z-vA`0r1_R!3bb^U5W!M?8-HvvRbTfMy`}gb_>3NseG{GZkmU2Tf_9(jEIru5r!0T&
zM;%;r&DBvc0#1tpoT>v((E%sxfRl8<c0!)x`qxv&?!liND3Rm4+xOSot8cpLAa-_|
zk0(#|-E>nurey0W6CvdUrcA<=2M7V*RUh0=c=0mHzGF}IVoC~d;jFZDY@`R8pHQ72
zcj$KN at w^MDN)qoeQT88Sz^3^jn7Mqv11uvY8C6WFA9o{Yz_Y6$G+`4W`J?pUi!?`{
zJ4C`=AL@&unU7{A?)#Hh3V<uf*=fx1mp%&*ntGAw&oj|RyL96FUYrl7SKzYm#{)o|
z0)sOJ)Iys?S1A?uv!Z<foAR5XxM3dJ4SMZAKMsYMHVUhizjUURCh0CTNvq0!g4U}l
z4QwIk_bBKV5%^Jvq}#?uQdOgL=&xr9RE1-9)lA&j+Zu2+I274GOeVrvNebEAAt0)8
zN;t=8MM>^X=fzk)vkl;@t%l{#VZ))AF;Tm3lF*#hzUGl8sh?>ENm-8m;`d++8oVGR
z^(&2bp0o>RcfLjY=|t_x$+age!a2|kyOEHuE+<NBw*eBxJ>t4`%>J|M3+$S1zlAOZ
zw`nsb!$ucYX&0Ws0P;$WRh>Giw#P!F2BWxa1}-Te7u2bf*@=_dp~8l^ulATlIg_|N
zX{$xHYY9rgqM9KUmN8fW&#NE7N_OghY2gi<wLiTB^pa~s%-)U0woxUMO`;n|rAfl2
zz|<6nW;G2LZNGO~mc?L<`3x$9LJD})i7sS!=sEy}vIHKO+`rQasODL;;@(EfWO^#}
z3r*_Tsp=dnh%~pCy6A7T{1}a8>eIGR&cwi<$Z(THl9GC#i at k5kr9%+{4fE!)J8;Pb
zB2=T at O)UUQWK%s`sfT1VEOCLEs4 at bksZON6Uvu=R7X>Dwc*zDd`$$*loi3ONM&LZ1
z-&m;&{%{w*l%b(H)_^0VYlh+VjZFQLZtXW5M|0cxlV77ib0#pOJSr<qq$kmP;Psho
z;fk^!K~+-YY$&YUoxoyI!vFGtyv1f`l9r(6W&^cxDZoupZVrqeJBg*U*)ad7qZpBN
z`$<id{UnJkzR9AymY5M1C3%){6;0KbKpO1{$ALO{p2d%&k$tQM$N_W)v(^LY-uw`3
zdSMEe?L-YNB<G8jGn0wBu((}z at VKkS`KY+FzzX}*HL>>ML=bj)v$X<?nl~5AEL8LE
zb;j?($_v#eE^!aYDX`qy`4XHOdtMs5-e#MfZvYrGG?fIu7WlQnZ$eOEqv)I16lGd`
z1Nb1Y0(m`e7O9gCJF1hoFnzHMvThtc{@nTt^aW9YyJD`~w5g6h8Zoud4<s(K%U0cN
z3bI;l)~fONP#ENM8Z~5Fn*VqCVPX6>ZutuPVA^QUVo~jHsCw2Ow<u>5#qvVPJ+B^M
z)7jCdtv$r&1qXCte#DN9M%W(F`#FiNzRUsjO)7jOcwN=QO>7^<)%-UKQ1k2|Vdl?r
zK&5IE!$N}nL$9`paBc^jz1bjLuu99XfrIZAkY{+)A4$-MM3e~fYfuI>rv+&wZ2W)u
zHJ<v~yp|GyoIf;2Kb;?9g#s&@Hego{EmR{~fCQZZ^8Ns3S|S at NLN!w&Q~^(RGKJVa
zb5G3p5azv5Mj#U6Q~{n*ROFsiwG_#q56bB#3+)B|hyo-*`3&Wynh4Zank<3mhV=78
zn>No1_~>0=O3MdJsb6Y=O{~nfcnU0molGTP2mL^NC4KAzGhkez^mA_CB>tg;mnatM
zVJuX9o>&N01gFK_;*8m%754x;y;y at o(+Y^y_LvQHx?>uNJ>;mnh at +5XT4@b&6rPYn
z4X at 3O*x<S`7Pdd48!Z9Y-|&I~+sC!Lqd9DQ9&%VOk-4}ptGHM6)-nA7IBffF#$lH=
z<)L8<Mygk71Zm!vRS4x?B2MhVq4^D=-3-DO at klAv5*qU?CN&NzUEB{FZmnREC(jPA
zAer7Y^y}AoD0YZxoLBnZ(C0DZs9xwaw`2reFk(13wlv*E%75*zU at k8X(Le`ipv^!O
zSR(^tFtHdggLR@$Aexr0Cs~6cwtRQ2jDa!6rlHwLvV&Y_9t0GIohP8_2Lw4;e!l1K
zTsb~#6E?B>Qcb0yNctTtC7x-|+PPQ at J1!aabA_;I%2$Y$rD$prD;>79p_1c*wH1#L
zDJ}MVik-m1(qvP5;?=dRh~d01-Ecmf#LkCraEF{XV+B7NkHqpFw6HH3i+fL{*cK<c
zFa>mmp^%y%?F)t-?UehpSLt-xG9L6*7+GD}?94%K?AKmMqa#G;Q(ntnAf7knceKhB
z+J%F-aN?R=@)*pNJWFO<aI{!iXq)N*H6T9g?5dNc>ymJHZb4q_!vQbDrc?qMV-E+M
zuVwBlfU|oR4DMKTP!8ZJ6>@{u!rEnAbHQWi+(0MpT%+6%=%NP+rUmW}4YMzW&$lnc
zg at 0`dnLuso+GL{fLWBPyKfgHdZsE&$SarWbQ<x8r^J?|)^fVwRqHbJb^h#vomDMkI
z8dm2VUAKnm`0Qc8ZqG>e>RA8BY)wJiiLRjdZ-*iIJ6SAr`v|76GD-=Kyh6E(%M^tX
z(=Uj>i(u&s^LHoX at A%UPuAXU~AL|ds&U3A><*vvvaAJ5p9adhaFOc<NW at 1*?E~1)|
z^SUCNvGL3nXddki+Dz-!we!{HB7;96z at zeQG3Dd5nKo858Xp)rD&G=QK0(uPu&9dh
z{O_CaF>7Ot;J>px;A0sPpKmB{K`o0_h^6;8mcQ&jEPus+SUzQ>^4~yzEPwgP at R|L?
zC_67LdD3cna$IIj$&)Jud2D!mi!y8Ki?rOO#_|3?)R+Iw`czvq;G0<k0x);!lw4UJ
z$gByT{HFRpp!(NBQJ4!?L4%oX_hh!shWDcr(v$}4J+s+w(UCLtMIHY#+IL3AXCQZ!
zAX9&qjL at Hlqxm1}xBVye7kwu^4E0UUIB1a#Bi0|zzyC)4Mc-Ec8~N?Z|A0T^yfafr
znqPAmg2UJAaayhw&z<6#fU9%H&&T2R=H92qkq;rW*D?QF287IO2nbJ_IWX9B5j at y*
z$q56wR*Mt59pga at LfYC<ilVps3Rn%`8AWgRRj`?YXFM|Q9*<{pA$d$k=`*BsrF182
z&QvH2DHW8G3MoZt018qzP)Zu4IMP9yLdr%;Nrx0^0`MTDyi6$*x|7Lcht#8pKQZGP
zy+3XLhyG}#v}ugP{%ECmuC69vf3#9OR|id7N<lodQaW9Cq<~5$rLq(|_j7 at iG?tRY
zPUJ8pou$yhyCWS_Ca{zgN|~UVqx<uX;|n}!1s()k$9CkV`vjssj42!Ch(G!_)xVtT
zCqaF?R*FZ at z!m~y3kHJwn|~L7jfv(ju`+i8KtgNp{E__YzMJ2Y`S_&Bsk{lB-bC#A
z@$iuwU|>QF$D>*)d6C9xrDU{A&`Qy4hohGyRz8dNI at M05_h99B_4i_+)HsdyU<j|>
zKq}*U`knMjh^Cj8y9&saW0;T3a0)<@xji)m3NM!isEl!J2KZ5Pl8I8B7oopxw0~L!
z*8-H{6jn$+qQz;BB%nhc>>=<-RTc2>P;<5 at mcL+PCJ*A~lBX|ASn+Gd!J{Dcas&V3
z`xTsfQ~7%e<M;%3&FZJnzBJK2u=@VeDR{oR;zDAq=qni6Y1KVV{7m)ZTLcpo33fud
z at 4{x?-y#ci-zS;rtNPkzUix}Woy$_IZfWKRtK%RwxE`y|(yI?mhJs76V3fbpzc24}
z{<Hqy`7ifj6_*D!0p`ULHIXb)!F^HZAOAT%qyO*tpw!|#k;-{u9}O~3Oy`MjX{DP@
zOt1m7Z{d??D@`8Q%h3 at iY(i7v`7QpOrj@?I9@&W@@`n$%J%L9J{xKu2ryz(&<v1<4
ze8RNsBFS#=F72WD3EYHYKe at XUjk_T4(M-za6Kr;nf at sV`BP8evNJD~+G}I>yZWLSP
z+>)n3i<trveYBRhw5r6!W%?K`PcCgK;esI<82VCR=#?x99T?4F|4-P1G#lwVT)uth
z{Ev%~mpkuH(sH?{gq_ at K=Kovr+fMKf_+yv%X&_F_3`#}VKFbcy^t&}Rc(=v~>w4|(
ziSD-5xE{xAxs!n^opQW-5u{>|Tf;V5NKR;q<CFkq<LUpA{2LXEa5gR%=3)9sW+x$y
z7?bB)G&rr;F6Y7uW|yawJb781oR6dG&7Hl=u8(R0_W+lYU_dVscjjKAyn|;RsySlM
zQrl at Tp*?-Rgn&14XE7*=0J8>QstLiWu>D~UQ!PlX7- at aj&DV#T5!Z)^eFJ9E+H|wd
z$iwp!G`=g3()XhBah8pcAKPB+e$Uoq!s8J{>^sXxwfFFM;G^$yqvr#jHx$~$%5fk8
zh1%oEwLNyB4xY`mJyv>%Qx6LDEAfCqZ3l|^9%zoTaZkR9?y*rG+us(6m9T2vE!6fT
z*B-YEt?+EFJ#M9kIH9#Z+MnP*E$_hc=7nPAJpy9bD(<X_KCfoWGCQBMlT(0JY?HrF
z9ucdUMPk~20~0vyu-vJ|HeB(F at E{P)Y=@ihrqQs2PUHHN9)?fn2moKdOn6b$WkTl#
znFGPmctwzIP4+{>)u=jpi~H#W8F2CM+Dw;Q2IM3>gnN4^6v`qmP~cp#vL+f4UH_pY
zEFjs0-0Upz#kvWXXUB^#)R65b8OLyVx_oJqWK){yoM?VgAOS{<bqj}i1TY71)JI6K
z8o_=TMGta11Uh at 2ejtl(|M~DWW()HE9m#|#F7#z;!b4s~Ps(g$hv`-1-#?3;u+QR&
z_>7Z69gHGLMZ~|bnEVTO;*`rerS`8F6TBAnt#Yz7O-r+8oYKg{M?Y0=!wXrbRvdA6
zIv+yPUjw8ESy3ZT7$|3hdBZ@#V`ljV)L357HJ1IE{9KRoo6=xYTgluHg)Q>IsKR^y
zix&>I<B3Id`}aWm!7_$_X&+sHlF&;M9RTN%St?0;!DB`fyqYhQJ62Lg9lI)}&ReOL
z(b`8>nA9 at d&B07}KR{vw)>!w$@Fco^M#pEe>R!P8F-eJ|x%)gOp^<X&9GJd?g4!gO
ze~j&}Ltu1EL-&W=Du}Kl*xD-y74IRKu^_d^u3NDjbyAwpn$es?{kvv at U}9*{NdZ=P
z9xKqfG;qI0c_=^pKVj$lXwH4(2Y7?a74Dkm#ZuZUSTmzld*KZ}nnDLRzx)4;PK~TA
z)yrrV7-G+3P3Qu{v(aKUiLPw~n1BqUpO(K8X at 7W#YKbldhc|Ribm3yHguZrO<t;<T
z*jvNK*M at 6eFvUAhR*9A at cUQlj3nN}N2|1-`D_s--4t{)Iq^HjTeHf0o0JgEQ6J0hU
z6i-H^BLlVhZoJF4lGe;JkHM(C;`;!K$jM1ex#-|wFKxiivbz=hexA*j+S0Pv`^usa
zU7)o3FqDLDyWQ`IVAzji!9Y0x75gxV#G*(*9Cg-#9NjMez3&@`-%DHPB+fEyOpB66
z9?%Ylp;-bK#Vyt73ORm=GZM7)WQGt!k4H1m*ScyNbd!;S=nqBL0nGzWJdiI#BL`yk
z9G?%E9U?j|;0<NYj*vUtkuOc*;bCkw%^Wg;{zWr2qcsCBYS?F}Gz`kw at yo~T8jlSS
z|MDR!Ok$%XG-JoAH}hQ+HhBacI at bVxK1>bpImPBvTe^{;Z-$v*L?S(pfZqCAXG$9N
zB`w65*1$p{0M-Q!j+1N>LVp$0sy4Uqn=L?*B4B|)9v)yil9aks)-S>qGII<V$#cI2
zn?%H>aY%1fZ?oolb_)~Jd`%2H0{khAL*S~=a4gqdAI7rRfaOjszl!`#^z~o?NYa7)
zMS|%5F?n6v$C3;8-qHKmogu#hb(A|73A at Ic=&qyHThy*|)XvjHci6h%zID@?2(P_6
zKsjo?SLz~+c4LBc2;EG at O2;v=vba~QEIgq~pt?xM)mO==A???sLu%Q6T5qLR&kNT9
zPM&p>p&y>I>v4PrJ!RjcYl+f+PuT->3|FTNCakcB(%cgP<;Jq_WBizf6=Eel4g3MC
zWhZ*dGSInkrtW!Mua?otzO)}Ynaq#LQ#7fS1zSjE_f!tS at FX$k5(;wQpVx|aJQvWU
zW^kB$a&S93IbOL>_cw;d0^4C689H%+$3yzFKpy|>*&LV`J~h|Zw+V6VQhbqJo4N?s
z6FjlqYH=>#Y8KrsBps|uvstYC4bn!Px at e%*EV}*|3YDHiRcgg0)vy2g&wp0iPai+<
znK$X4tb?NK50G1OCQfvzv<tNQW^qJOSl)C!6J%URJp at Bq+JIP4Cw&j?i&A0Z_0n`d
zIM at n*s-D`%4Hx&OQzQvMd?X~@^YKR61`aQ%#3FJz)b`DDI2 at S+r-N#H?cjLtEB^Dq
zH6LX(1#idFxLwP~ndx=6pJ$iav0~;|upU%Wk_SfD-GL8zpeMTz)00`LkINcb^)}my
zac{3a<i}NMHt+M;28-fhHMnN&K1A2oN_^OZIMMCLSy_mOQ7*dK=CBP+wc15jE8hOh
z@?8$4R^&qJ!mOt*5zDF})wesEbo;I)zp;htQ<nr@!hC;Je&B89EmduLhg*j>T}xNP
z7peq3_&>w-N#psVUCRT0k+0usk-w)jC!;sdBIhlt(}stJsI(8F(*D&~+<t+cqu0N~
z`SrEy&`)fUUQKSn+{t?GIKU$o&R at O?yL*hN-vU0ko5))P8w$YcLEzv*<lwJN<d`&0
zE3iWH=z#{S=sFE)70QrBzO!oXJ6u?S4)9W%5Iz^Z?W>r*Mul%FM=y9V+#ipQ@%w;r
zaASBE;bglAbYPD^MNYFU0*e3BFUdpfe^Fxn at +3a1jiT!>498y&6pXUUzx0+&o*fF^
z>Iddqem}OdMQ`QI_n3>luZySrcXsZ+#Y#;M#S^#_M8F+5y_x=tHT(6Nd!c6FD;V#+
z*8NP(21Y~CdHPkVX^`6S+XZ+ at aY1A&wyA|w{P6ov_k}`%PllKmaO!>z`{xK7xiaRy
z_lV<DY-^NGnHr^&@b3%w*KZ;&5?!mA)VTx4Oc013V+IPWX5VyZ$N7VjT{JDKa7N<(
zUqf-0^&afSU>sp9L|dsjz9NoPa9l;zll$4wM(E-9T at xAM1*c+07(4Z>-l-w%)Jj|>
zVY|bw*Ru2SFO0*Pe2RwCH=rPPX8A$p%esm!7+-jlV)k^>qpW66r#wmtYW`G))0O;G
z-aRlJo$5dD=QA^OHJ}q1La~Dltie@^K(Hpl;J*mIX4r3+_TjO$G5QY<K|Y@%tAX6V
zKyq&}6S=R#DPoZ?r77|UbF9CeaxPVVu)2<8gbe(Pt0Nle1;ETfn|_~@{HJ34^L$72
zvElkItX~5<xz}H#lN(Y~Ni}aKZwCPHult-W`i$mVz95=!#?eT}9BGFa7FC!5m($yJ
zFRZEXW}~+^ys)Oi+t9!8ZL3#m$G3iZ+k&bByd9^v&0eX8)+2g**~=WF8{w@}+A>?M
z?}*?2Zp-3MX-B8Dy;FLlQ`*|`Zu^%V at 8G|VqK1x^_EY$;Q`$`F_^+s at Q+gSHce8os
z4jrMwKG8K7RRx&tqH6|S_u6s8ZOcujTU!%Bs{c}xw%_pbD*bhVCcSY(@__zYs7YII
zFcs^sw`tOr8>atSfBi2_+I+*xPxRMRO?vr;?KkVM<GjksK9DW=B9`3={DkOuI$C`8
zciBjEyn>_9(b7Sikd9aGWn<!BJzg+%NFLwxcMX!K!%c<VSQMmChZ{?GyaOU6wW9_8
zCc{5F2^65@?mG~I&-XAu=#X}Iw1mN6c`S_}q?!&1XbBbcx_$+HmjB9cSe5Yh{r|iQ
zQu86TYSX)Ho(C4e8?=DH-{mlK2%E_q>^mH%iG*D`{k4Y$9{R`EkwTdURO3l1T`k_s
zbhRxiT`k_K($(TOn98=DscSoE7T;1264LxN*LS~VeYzVaUoK8Q50iBX$PCUqF;3IG
zy*u9J*XM!7<FAT{tUvuLMn?ErIXQxdDo}j+b?V#>!xh}>6W-(5Z!N at puXJjUZe>8Z
z?qAf$q#0AEXZ(w1)+=JA^OQ0aC$2XWZlddb6Edq+kT227 at wD@XX4tLM0wtDzX<}tw
zXJss+>%URwE62kc15dBk%JCf7z}8E&ay$(-aQ1y#IUWcbn0vZbjutlqf8VT?<AJb&
z#nZHMJP<Z;`Gp#piEi**#8Z}!L*nQx?te3dEu%V#-`o#_wuLWimvEB#pMg?zQ3D0>
zjqh<myc|<k^0MKD`2k4Plu10Gif`(B!<Xl`^P%FwAw&F_us^ZWsukNoEaNh`T)<^e
zbl-u$z#e at h9nc|iEc^`QjIxXFMMA8Z!G1YilJXV^^!ngsc;(5%ZxqwjcVO<PKQoHa
zqCVQLx)+Cmk;gvmmeqqLKQ;v|c_mX!&a-*mX+I8SwTopdXo-o-bJciiMfbl<w0>DL
z4zktJE>^Z+2qcxc*<*v%eW=m)t4$e4v+7}u#(TNUS}D4xNBU4Jbl?>iqmg@*Zsewi
zxKVXkXP+>uA7z~t%b0sZ_=d_Q(ACT~-vdbT7s5Tp{ov(7*x$FR^u5TIbO+Lk&-Z(S
zxVxI5Uw_ at T={<Hk!ymc=M$3gd^PBn<qWiJUI(IyNxxk5)*%J72h*W#L=VR9>28S(t
zSH`AeYTF;X%f2r;vdcDLQ9Y<L+bC!xF!Xg~U!QKM;j_QrvN$kyguS>qIlLE7f1k_7
zz)1QT@!u?p#$(qCi2we``R^$lpK`)BJB<aQ^8fi#0pGm&jLXhlf>$%cG{*^*o#wyT
z&-di;d?vtnY*83kqh+E=dyVRJ1cfkzWex#@t*zh;rXKc4UD;M<XV2J|@uAn^PN3a-
zgWA98ba8{b4YX$WB-Eg!*3zL(n>JmhO1-{0&{?tkX4<m0BBGY(nD4oNB4RG}pm}Di
zfLC4E%}z(Ja at M3eTE%tQ2&*x;0A{sPZ}w086ePHsz~8Q+w|p~yy@<V9_^XAz>V?1h
z1V%(U1SwXfaWw4cvm}6z$Fe2GT~_C-3$cd)oB!sU^#_aokPzH~w(3XU=d2c&%vS)Q
z=pX&au(KGeK%q5yp*vw7(Dj$_pi%Pai^-{VJ!3ImZx(~qc`-2)mG^DrfH32^ONC*D
z|9Uaavp2EWi{UYcj7Okw at BnKyb3m2abvw2VbuB&xI5t)9#p3r90ITj~HqjnEaVjJR
zF2TKfGqU(2A-d*D`s}^JH|w)b-16~lgWcB$Rh<jO$}-f<T{X at e<(!$hGFJ($5oz#;
zOCmb#j89{h*Xk=<*-Q)`T3C?{)jxvj*>N&#Ra?1K*o8OLAL0Q0%}5N5$Dhn!1T`K(
zp59r8D-^K!b9JTXaA6c*<YI6sv)a4+Oe7YnpXLqvFSvvT2bu^x$kk#znD)N%Aq%d@
zG~=zkKqPiyrtETlSR?l$KbCC}2qKsEzxsq3C;vdF5xjI%UzKwSqWc)Xjh{eGwHuqd
zb%dryv8LAHhK8*3xX^uhf)Xnzv5O}jWr@#0VqhUVYOs3A#G%XUZYuFAf(}e0oBcD)
zJZcB>U9NAINW$5|HLd=HcVO)<;AlU`N5$U?IzqtBFLDgKe__<e<{<M7)Cuy^fjW!t
zbpYVJRjj1#97a|6n(fR-152ff?opIV=SK1cJlH~;a{Rnfmyq?Le5bFTw~w?bOp54j
zU-ZTvTyp!tQ61s+7voKNYBu-^zrQ&b&+6KB7;hgpZaiP>B~|Uu22|0fZ>w2ehQwTY
z9Equ*fz>M=rucU(C7V)c*E5Ty+{Q`kRVEAE!yH;WS_x!DW5PfkC?RKYAshr;$@I&Y
z5#P82eEq=|hmH}n903`Gfb!Nj8o}R*m5z3I$n#rlM)rz3?@C(eZjoIe_39R8H9s*?
z(~?O3*Lf{DkeFm$sQwmf!t-3K0593>Wt!DY3<7BGNe2|j%5wBV81PN8_u-j+(;Q{r
zlvjY5m;<VnYid}va*}Fg&5 at Vvz2g8=y?Hpo@(Yc&$|(Dj|B4f2xHRjA%li*RS>I+|
zILvVATYf;de_g~v;2u5jxwvyJNryr4`8swZJ}e#Z1SGRF>)aEwyl;JiYQS4PUx(>m
zMd4#-p*0^<sbz-rb3J-d9GQoEaAaIXet6HzI=8F|19672oOhfp(Kq41y8R3g-A{^?
zIq8e)=$`eQ>VXSUM!$}1U>Whg1jeiQ24Ri+pIdQem8`LvM9*7fU>GIOu5LIGF))l8
z7ZJ{XITkaA_V)0h;`e`101WE%y&Z at T@SJ2NA4T?r_OK{hcGRc{&pk#{>G#O??MEP|
zo==c>j-a{4(W4(3k^q{UW=Cw^-vjgGG3a#FxHhg~%^ZGT at LT$S2lW3owpfi4eAfXG
z=V&BAfp1D%<haFZH=Mur#BTn6(uS9xaoPA)8(%gG#<6}^jnwa_ju`vBpojYX2KL)-
z?04L^^!t`w(C_7;@c#B*y1#DIuM}a_2fXrwdl`8lbn(ZUqu<>oFM(|U>|HGK&k-*V
z at 1Z|KgzgpFcnlFI#uGtPZ{1OZj|=N7oVfnb1tXT+$VPJ4TWwr#FR;g+IDTb|+8SLq
zR^J*y-&2|-+k0)p at 0ve*0mf at GY@Kqtjg-6QD4R3mqqk0^ajWgYM8*Y7x%FmG_U74O
zaw{01$D1c0h5x$?O-y~>ym);3Exo}8C~uTU`V at XfEA?Yaia#}}MLizr6LCXbwwdX|
z?mBj75;F1lKeMHz_>(yC`C9ir(Ot^YF~pI(*|{7ZSr8;BVqs3M4^dh<d5jnJ=-Rhf
zDSZN38^1`1osC0^NnNNe0I^Ky+1PFp*U{}zsVh%Sserm!=T<z5^#|bLeuObKt2KDo
z*JohfnPX$eV)2;B_9Zr`xG(u2=ZcG<Uf at 0yEmI+h4!U;X6AkcyEf#3f7(BG-!mC>x
zE)FNaMYbd^IXRk2FjEe)bqaMF!+KUqpE6^PpBZ!5-c8>+Q#26XOfd+-pgY`jCJ9{s
zivU{PgK5A at a{<Y~_OFfc%%&Ue+fhgqw#&bcc3I9 at biSkS>~lnSI#b$oW_ at zBfm!eJ
zEkz=5bpD0Cjyj*%^%AEM$)_=qP3{w2Bf3o)`TK#xM*g1KMUtT?mbY1WNlP9|j3Yln
zn)Y=U^-ur-x(#Zu9V9HQ&^LFMA7`~c at qq8mgAvZi9HS3nW=QW);V7Mw!#JZ!=ZwWL
z_<=62)>Zc$WI~TFa*}n6(DUap)BrE%WQG&ru<YV)si)&#JQCg$8Qp=SJ+CgiuDjj$
z6^<JopZlzb;0e_TNS%n!UV085?p~0V1l8fkChjrE?CjS9YXl~QMmnFG{!RA30;W}t
z0`01SPCn!WrP-?HEmDRO<!Qcoha#F}+~|lV`NzW}99k^nh5dJop;NWs-*o*lkq)ES
z3V>?T%66j?dEa3g=WQ?xjzC{L(ueTW?U6o!pDqs_op*YqgYW|z@;3h!?Wjmdt!Q7L
z7O|d9+6%o$3$X7uNU?l_zcP;pPwNAPGwJ92f3*<lGOUPE^Lbigl)!c-8s-4Tp4xnf
z1U8RH9{AV_vN{~!n)7qTM at D{L*1_cU;fQ-qJ&0dqY+VZC%%7Ad48k6bB&|@d2Q#tw
zPbKI<P|)v)Ie=pMpIOxcW<UHP-f6d02}~g)?<0fc`1vkeT%$Yrvjp5ubBh(9r!%pg
zPUlbcNbAV at wffLLJ_@g$FCt$J^p at y4#JwdxPUQWMwE~@w*R4Q0Kp>v=0~n$`Lq>m$
zlqmbp%Z8CDSQNck|8snl{iictxBtM%T!z+&Ngr@*XD15bR*lA?!4K%>0UwvcAF**s
zh&B(sILrj;o%TaC5Rsckp13CtZ_W3y?HEGN;}*z_gL~}EWyEHPQ8THX`zb>E>G3p_
zjiRfcR<k}efp;<A!rFy#6Ar5RHfF`Rp8|bQbcl!*<F{2DAX;Gj&szjjG?^3&u5#{9
zMjO#}YKS`RTcA_te}Fm^t=8xMAYye%Nr(mXV~f#vlM*)iyrcvADFA|TV_{DqV~3v6
z8jtt&`^d;e-3lCnBD=aiU at Js$J+r46q8U@{7o4dMyEbzX%v9CUH&AO)3wz}&&eN?b
z<{`TGXWIcr?WsSAZj9Z{y=z6+RXB#|VOs*5G~kB|G$n<_OmyM*Vj7jDxLwhhOR2Ji
z_GEqTHubkFkw&CSVVHA_NUzs)-tDD=EZ_@<PvR>wmy56O!N}@ZLwAuI6$kVv^y`3B
z5WIypJsQK357;WPYYCrop;lrA51lp-ICq5mvX`5-!xI{#Ab=JcRM8#5(Wg567%(OR
zdK`eRPzrl7iV}wcl3a8LhYa^;ux*9Ad|CXfw}e8<AZ**4&}OI8%3Z}z7UDnTBRK$E
z5%@hG8({nzeqFv)z)RaQBO)gUnhX3J+dvlYW-ttmjnf;uj_;cZJT3??B6vGX^`+>I
zmL~Ai=8 at u`EYVoV<02b{e!=(^uF14>|IHZssZ|DHcl{7PuP=rY(?wSnDM(w0$EuMn
zYXWhN(rYE!bL53}M6B#6$Z~8^9h-xf2uFn at CB?4^@@=h;y%v(TXwv2^X^W_EAFbEi
z5?+jl at e_`s$UcHw6#wlv2qvuLd?!qAgdg0i3|gG-Ch3h5Y<ex3*^X+z!B%qyrY;jy
zX}4OqRdmfH1S$AKleEJ^Kilyqb3iNdO>u60Vm5G|TY5vjR&(t3bcmJaYEd+q4i1t}
zw9+GHbR0bE={VSP&85~l&!tm}c8IP*k|*1RdZqXc5UrW;dZ74?e1Nv>&4m?8!xHY*
zwRQ}7jEUv%B9d=5Q%7sWZH?aPi45o3K%80#`lB at mv|3&<FmnP<@`i8h*&($MX5SX-
zODpTy{sj7Irny+unmJ&wk4<sbh{~h1wn0Z5u%m}qM{mEKI+{Qojf?H*e$ge6$-P-P
zs1!FqM~|DZqYe4NHyA#;3tTft6T1PuiS(rO2iTKVhTMLJYBR=t5B!7zf^|_Jf5ZE@
z7GdU6A7M&J?V{_CRHK(w>`9~_zd(KLg+4NS$rNY1sFaf at RlnQO1^p}Rt6sAPX)Qp1
z2CEXOe?n~kdgNso#OfWTxJ!`lJ5bz}AKZat<D}0I)HAbFNIFyiGz|<=I2a$}p&bmT
z?dP#GxHSMY8Gb!1$B)_s-N at tJ%n!`LB&iR8^#*^#SvNn>_%){PhE!kRjj!4LR<du=
zUEV^gSh*<;=leeGZ%8LCcWJ&V^?){0T1S_09lfv%6f4`@t^DgPDX%Q8X<4j2%i>@6
zs;{7%rrIHH+ou+GiIq8HJnpB_ at 42#u=5rU$=XD<<jRq~E>oz?6t)vo75 at N_kc@X2g
z*u7Ij;<hHCUzJ?2 at 0t$J%2|_l(!}LIH}D&2Ne-76B&iKgn9zK&GD9#;Aw-I=LLE@@
zXAEJvJf^RPb5|V?NhO-2H>2346_#X;Uh$?_Ih7+^@;3fW)C#+xfI3<%n*!Wk^A}8v
z;~0zEYB6uBrL+O5N7Hb+=q43 at YN*y9hp4wB>hSE%o_HEZOMqpnATB(aw4yGhE)m!j
zhx2rsay(IW98&5NPag!{Mcz|RKyCvSb at XZ%s?W>hcx)2O?jv90_RImgTT^)G;9#0C
z<t^&<Y>ez8)dcMeD>SJ&U#RElHxPIFkX<!L4Y25-r{kK$gU79{o<x{}&bIu!fcIG8
zRR?hpOsX3j)ExV>9EU{LKS>rf3(}#G)Sx*UvIrfq9RCK;AC5Y1#*Xi19XA^~?z)^#
z&34eaz|=U90>IPQH36{oL3v=)A#wu2JZ}n=-O3b-Fe1tz^!x$C`8V|32h!EC8$=9H
zAddI+PNKk;;02oWhOz(Hv=1eb=GYS3|Lv^*J4WpP_AG}_z6YQQk}o7})f`*(zCRUW
zf$m^xRNgVh<9(XmyEp>@>y-cFYjX6YjN&fjV{*O??7_)cxLYgSp%(grf8z5TD08|M
z2*U-Xfi@^_fi|aG8Ffhc1A-s$BfU2xy$|?}d^U#2y^#SG5a<TB%m`?wkzOXK6_}KR
zFa>Xln~9TWMxy#>=dl-sFC(=#Gir-b{N`c&R$-(!0{7t(r#U>a^xnYey>Uc(Z^&}I
zEV?wpqe75g4oS~wj%T9yt(-(8dS*nX5h5O*L^OArNi_P-W7&-sMhfUF&;rXE34ziz
zCqf1~j}H~LYlW?9;i1478m!G);YPLaWir}E?N75cM>5_|a at v)%_{EGBiJ`RT=YlHa
zoA_arLI3Hqpj0G;ztN&P{VIq}XOAj at xXc@)&9`us+dDh4_H3M5)SlsJ4_*Qs2J<`@
zG-+5yO!(jj>7M22TlTT8qD$>rQeS{#BNk$$EU|J_Na_LHNr=Hd9Aj$Xp0$;7x-#C$
z03p3!ZTC*PsCIC?TASICQLEx74%H^D=uqZI8BJ<Gyk$0KG-jO<U#rXdLVS(gHoGkA
zGzf~-7ivZOW8?9`9v~S5^MhzY1PlAbwMZ<zztqR4E$S(p1A}qiqy)7#2+K}fZl1|J
zHS5f>FT-E2Vezz~>`6ea6WT#~0}=9avE;c(N%ad*z!~k-_tm0)M!5_}Khzp6Rwm at -
zw<5{14lX+hDRxQ`D=#e&S`Q3D`jn#nWkDU5aX+Ies0`#xp{Szb+IE;uCA-j#ALdpZ
zs{fQfkhdh2xww0!Q{Fi;i-6?SP;X}YKMI4SI=a-t_6jYJE+L`ci$<S?z&F%9(C#Gl
zg1`!=K5HU%KeJ{pU6><#T{F3eSoc`if&kfUD}~G6-HQMU=rV=9x+`+%A5fg&;oINV
zF+W_*(atn|i~p~Uq0o8F*-rEH)F0%vkWsbhLvAk5Ib%T5^=q=%YrmzNSQ=jI$*NOl
z%FE4aojPYFc`EZ}?`_1*2u0<XvofQVVGy~PR at jBnrw*pjtu)c~62X_R&=huM#~JTi
z{b9szwQCT-{GG0>4T$cy*{-DOIUUCdr!k!JA}ec8nYknt at A#>|#R_r(?nnNl??(hE
zTEScY5w;H1!VWVul;LoT1PsU0(FF)q(V)o<QPBQAU@`^&mRXY-Vs$m8ovR}`Wc^kA
zrpT6Z-dDI%DX3a`q!YpLb&kfIfxM+=Rp}z0dY`RlL5)SWP4Z4g)hgRN7k-3R^+3j8
zX4~}BU$_TU#*yw<se<FgP+iH{1dk)=ahwp#RZ85aDa{NB>1UI?&*(t<35eRLDm_$E
z$>95jN12`mSn>7gXDEq at d7<~?hzQQnIzz~pBJ<UJ$PGwazS4Px$O_{Sc!D_^2eT7A
z)N`@yWk?C^KR^6 at mD!J)3g|Kxnlaw`9n7`8Y_7TRv&GuamJZZ|0%^m0Cgl`Dq at 0LQ
zxgKF_I}N>69sOR*CGdiM&S;&U*>>95FIK*Y9W6PVsMf0G)b+B@@q$ikcw^zs71VMZ
zih+6yP*8NEqd|;(8)&l2Q^d-0{k$A+oVZ}JzGJ3nh->1j at P_O{W$)#5zHb*=V!qGV
zt{XSxNd_<<m<fz)2mEH6otG(RQbE>=mCbi3$9k07obY~hpeaY583sQJ&=K7~HXGrJ
z?(ft6A_g0j>?;U0tGNCx at -xd$5I59%ZSN){o)x7hFfO^AELQ&HVX?B{5pi2<);@7P
ze$|@ft at r*!@7=JH4uV95{)y{;XQGXyxa}S9f^mZPiJU1rOR&9iWJcv&NOT3Tw@(OD
zcDgA2ET-SJBu9O%-4wAv@!?=Y34_Z95U9?ERV%02v=hfE2Zn=<i|8r_4l3D;ccXw|
zm%<B?JFqZpWe~S at c=M2Zy$kFH?8 at -=l2$(3U>CdQ3scx3YI%Q{-Bc<hx_^mMlPW7U
zsn9RAypQJGHK8bf5R8D*4wC>nO!CO~CF~Jd&&v|1O}{D9=3o0GZJP0!ax*bx1{ntD
z^024ZeZgr)kfJH49tb=dal_MoL_*?4BI8(+6elzGd1r*wW?=gPM$N#7=fm`=tRqfG
z66FNOf>NWLu}865AOMNkX3>2&Iv{gS6J7Xy%i3e+YP{*BHlO}XZAL}mKt^pKgMe7W
zK>C&1)WBT+eU7SBY#%+WdHXxd5#T~}dTCLP4PsfkEd>h`b16V2>4huMiirb3Ub38N
z8SI?E^sghI;0nhFv?$Y;3Wo2$jVkdWo7iP at Q9WeYBk_${eiF-1Trmc6EsZ63Xl6Ck
zx9j<drPG(9J{^f)$m5~OmnbuqS~WpkTS^wIT#IL|TZoM(VZev@%b8e2OCcg<rlXaS
z;}_<a&R9w_8bqi~DYgp>)wOu|E8klB(2_MIs at KvCH_KPLYMhsrR1><(FKAr*19&j&
z@!0CwyM_0^bjA`?Pa at xgruYyTZ@}FtUrBL4jGssLFM*ayX959C0)Fvi#P2my{}`Ff
zrs44ejQQ4Y%*XLdW%MWdmON!OIWJP1wHX-D(=uS6nv=C}*&v2%nQC2ltHml`3xDm-
zf9XZ+)V~3{QfC>MEhse>DE<XZ7oL3q_ost=vr=P*%rC?7HpB5*9M+PjM%m>thN#$L
z<<!xco!SpEg2uLf)E>v>p^LHSZowlcwdSl-%lZt(0p2_cP~x;f%~9EjE3VY;vsBqT
zU}B!i7Uc2S<|=!8%VPPGY>S+*umV30SY`hR1PH%hbP`oovsh`ddO*uPyzC^Fh+Z#Y
zshmd<G;aZkZB;we!@vaj*$MJZzzC@&Yet)y!4BzhTC!tMbJ<ezsP!Dlk8F$cGd=ZK
z at PPjKA)^n}wm5wyYw%9Vf8lzGA0edg4tnpl?jnmsZ9?z{KyhlGN65wBZ~0N`;@|;D
z^nPQ(n2BD?a at frlSQ-mP#|3`Q{4rTeub5a%PfqsEv3O^isi9yJ<Qp0a0}BE$yVr6v
z10 at 8K0Td|qm(cfs>dbl3Xh4O}g6~594 at b`bwjZebUI4#yO2`$l{e(FWfUwMyfQeOI
z!O(bih?koVolt7ySSON)lPX-j7pf-%RRW(5Q4dB<&5JaAD)>K;bm`QQ(S-sZ2Wt%c
z%i}>~?4`=-)`42HoTN<@D|1F=Tjk5M?Q%BXPsPN0FF9kD=aigDaDI~6sU8Tkx7l;I
z8QI%{>>b>PrS8O1HGtApV&!NkGu7gmVetT`&Jf at w-ZLZK13T+FE7Uj=+(^(a#QV%q
z at Zu02#Y+c3SJU`@3#<f$MGk~f at pB^aU8g>P-!qwtpFQ$SePsCeWgmzRhQs9*hF!P9
zM%SP05%9<E$)#Vb2l0#>E{}QnK~{c{mmmDD@&FLUM09>NMNmPZiy`|PrGB+h`eJsY
zbn?zd=~O|Z^ySz_>8sI=(!k}7(rMr}Wdhs2Wz>16#rKCbgoo$jW)$<xutLpTgc0<V
zhO|iFs_6T+`uFhM1M>H^GQ17rE&4JX&zA>V at bP^n9e&5nHyJ;5HxLbveIJAT(I_|`
zh&$P?hdN{7e4R<r?jl^iE#O~J1Py5OeQ3tFldlbV*%Vv3>(tF9hWq8w at uvCri0_7h
z_ZIo}E?kQi`9x9%DY6VYu+U+=e+o3BC8{h;0=&PzhPKcax?)S at gv7=*u?`V2{U!ek
z<T&Rbi#G(lE4Is%=t!FHR59AK at j}o6Bx}s)tsWbSX-MDytU`K98?Xt-7R_N-2189#
zDG++oR2%!Dk4=lNS8)ea1O?124p>v3g)-J(ju`;Lu?2QGD_44dDyy?)t%L%g6m3)~
zA}9|KN0CBl{<BM4nsXzP;a6kvU|YUYb8OJo>H##)>Tdc;Y5p4n*!Bi}Qz*JAT!z!G
zt+s0S+p>;|&)^rXwRv`Lfkn;7Sa6QbqHDjI8QN&`zX7-32_NHOx!s%e3h_jfayC(u
zHZQ-7h18eFsr8yk`OKmws_jaX1=jNO>H)Qpe~Dx>b5h-a2o-&d)-JpDq*d34 at mO(#
zcCVcU=hDBz^gL|QRm(0c3h3W$)pG5ctwQ at Ph2>$vstwWJZy6_GuR{6Os6f`n0M|h0
z9J1u>iuMoJ=MW&c5fMzWk*`2KY#eaAQ at BAZWwdjCfWE{}Th$}le4yN_<xy07nH`k?
zQk-!9gC|BH*~<o!)#@Z`9!|2C4J7-1Z<u8Cz1<P%^~j0;gkFjE at 1j>MS>nfVvbX}#
z^n-nYoEF7 at HKqvv{q+-*X{P9Yk!H~bWISe$%D1W?iQ5JlUuLz63i>fB4XZNhgpcN{
zgWQ3{whJTS?6Dta{tFnlM`n)dl^1X?Yv%@>2Oj~60)M0LxmQm(%*<<ya|34}Rp;fR
z4OsWb$Mq=y!xLDAzRyoV=`HGLKtLU2Ufl#G%>M!Ola7Y+<uN0a$bJ^(gW5z9u+)Rv
z=<wHXrdl%x+%>CbYWLWq^yx at EEY0$!zU?f)ugB-vHOqEA<yu5~j=jl(ab`^USx;Ek
z{6ovL0b4%Wlt+R_d(jmJmsPjyW^aLvJG1Oj?7GipQ{<D6+Ef(hWc@>K=%5eEv#bnq
z@`?_ORR#IM?SPM-uo3zm^cdrbpgrAbRf>}n=$oQRD at JQlawyF`x2t8bZ}Q=Y58x}v
z%oI`6{TxV{0s5MzMb5x4ZaTjQ0L=R5K-t$bMOUZUWc+>(g-;dT&*MJ7I86}Ce at VuZ
z7cejYMs2yCwswWdEYgc--F5UXrRnip3R78}7f4G9M|Oc}BW`O_*WspIkKrPg;de`8
z;<$*F)PUy&+ at h(k;(ant8M$u~f1;h%KjSnWrsJl}!d<H;pC-dvvU&zr)9Qz}w=DJ)
z_5dy^9_bi<&J+37Q+OOw(mc`$bjmC2ts2YLMw>qa=wGtuTGUQ`4_w&1Sf$&LzE*m~
z(;~GJ&oiBAC3`4Zf;_fl54X7B9i7H9tQwZL^Og+M3C;^MYZyqpZ>N^wf#pD***S)N
zUA=4vy<6a&R_L-Cdbh&6NbkGp-5$<I7mB@;;m at x5hsnU00zFOE2rhZrmT{?I*UI=u
zMr<0 at B6g$ph+z4|v at 6K>PM)9)o)um65!b;X(e(#<IL|Kgp_|;poU!}`Fgu#^7tz`O
zHv|(y2V^z}^mC0!R2_<5rRzHY_Zc1TnjSn|OTqL2T30~-#r*Ah{?8~M?U|;)%1HhJ
zJ^yyfPo?^IvV1lgg8_L+{~l^;j_AJbYxE^WGl>%7AH)sm-@}C!)5OCK1!~V at EHtY~
zvz%Gz&m8Re(<R8SbQMSs{<HBsKkph2Z%w$EIq++OXJ27A!V*kQpRfNgdUf*Vi~yXE
z>%oR5L2gxYXXI904Rkl~bLd$0>`s1z&hPVd@;h_gzTNN`IC+kJ-?f)l^#2BH{gPcM
zs<wCW!x0%%<M|!9NnM<v_hag+nEeGm|8dZLYWnzz(j$x-6gNa)tdXZh;_S#NRZF{A
z`~3FIh9idCxR$hCl#Q<E!J{$q$2w5L!hSpjRlSxqnF9;e>SX40W%W6>M<NaNe~HVU
zEqIey8JF*o+QrH|!6S9R4~7czNQWuX5LRQCCUsn<L%pn_Wi9*!GH{AM$)(I#WHw+}
zy at 8V|kP|}>^glLy4-a(Vfr3RA=Z{MEqPR0TCy12^Vr9EW`UteO9#I*z%6Fh2;eMUU
zgGW%=<nw_(xoY1-r&eqqKtgE);HccS$PydxLv6pdpVWe-D_%z{*z!HvdK9arXF|7|
zOe?l)FQQy7Jxg!@BUY9pFNxb);puuh{@zdK%WbXRsUm)l_prFFxfax<R+y at 4VV|e=
z;3NCd6HnToCH09f)Ugkdy@=ks!7C0twm($pC+7#qtASQ1lN?~`oX2V(@mrJ=qE_f1
z_0Hs?k3`paGRxg5c&@5FVJ$fZBDq$mSBrWysb`nlKGk~q1UZECsE)3TR?X3Mz%Rfq
z(W2JX9*@tc%Wz<bv7Yn;p2AN{YR7x-6aw!Jzi*BETZ-t)J|9O;uvXuFNKU>Nx&y{n
znYqZ$z8^P2d}P>qb`+n44PZySsk>!ySD_8R-VW9A)9vl?7D(eCa6ek??|AGayVqdx
z*YvY1m%1`%^W|@kI@^B#B(D6p35|+J4A^>$2FXUjjEXCCKv=&ztQtz}^OgXpi~uF+
z at rcvem)zMdRyh~9=0;D^X|HseEG+1#Ta~n3ztljdkbdbTP8H*a+O6H38_ymFZDVg#
zJXzXbI_zwV3F{Va_lj-u9OZ1>->n!Y=+$&u>=Ruz^5c`+SNuY(yi0JkcnX8^&n9=Q
zm=CXJeEnRW4X?9c-TmAn_2b!>r|={N8}dkB1XI}gbwM0JN&hh|^D9!J965->>gX-%
zmvbQB0{K>!za0ISd=qulZ$BJ!uK}ufESKdP&m)kmS8;00N at MiC<%`(68^i85l44(M
z?TDWZjde at 5j^ajOipKVqj`+FA55O6~6AfLp9W5P?H5 at JWbv)MCjUO at eweM@MrKIhY
zloEd5O7Cgm_s#S^A^g6P-Y13ME9gDDeP74EuEJ>@da?(SkFduQc+ at 2PG*qf4c~pv~
zf;X&^HEAQM1++J`v)C#&464FH2#{L3_9?ojaDgGdCCV34w3<=TI`&Ugw6-%vi$Vdt
zPbphj3WWoDn^HEj6bcFSI;Cu6DHIlH6Qxub6t;3o at vsyM59Fkj5|%<Cf`0x_J||N3
z$u$#4k*mng&++o45pkn at UPRx6OK0C})I($?F*2nwGNm#yr7$vKIBy%bUDyp#^zMI>
zXcYamI0K3H^f9M(PM>Xk%$CB5vza1wBpZmcj#5$##92itsRrWwf>P29#JQJJ(hbDP
z?_<QNM&dBSFi&nBaYt-So2dECzL%GbmnU(eCn<w*WW%wFF0 at yGYM4&mi5NY$>fY{%
z2J+sAF%zyrti%|VOji<j&aocs$*L>9kG>4X)b(>gK8|KSj(G7bemh_N|MJfmJl$=p
z$LKfvTZ_m0O88t46f^s{Z at Zp=Co$M-CPb~lKQe!qoq1+&al6hZ#n3t=Ss3l;&h{@@
zQi6fxKMCRv0Q+IZV+!f;XsLa))aASo-52QEJ|Z5Niq~=a_4fOQ!uK^9J?)I&48+8J
z#8$I&%1A^KpFw|?s)<J;)Lr^PtT<a9+n>LDHmpA{eKxE=<)4N7!+gfDAG;Fx;t;$=
z+_?@3ywKg^yo+rS1^mY7MZv-f!^q`+#+i&pZZ3_SZ#G}y{HKB=-hTrq`rY%JJdR;u
zD}uWs<P}{QgJSQ}BRq888N9o({Rk&-a7d3&Vbnjv*Sd=@!<*lScxnHS4n@>UujO_M
ztzz}%MlZ)T(4nkz#o2gwEBt+N2Q2oM`||YrJ+lIAM(gaVf44P>>aJ?#D&$*%NQj%*
z^E)1owaCW3Iq{pYop at ctWRgX?5B)Vd`0v2))%navIf at MKV+XMx3o>hTv8G8olp3?4
z6T1!|()dLVGjlCKUoTuji#)a7VqY+~<jm$3`M at urY~_*MOlD13ed%1W at PBlk-PPcY
z4z{5SUMg_F7*~sYamktS%lDR?S-s*d&joob(HU$^z*aT0=Gft#WcS`5Dp?&$WntFD
zN~>C5at7W;3wZa?)uJ}a>0I7m`UdvBj}7=ug1b1(y~r2<_$UH)Zbx6Ha->z^4tI+@
zLn+>Imsq}@h_^!z)auJVY8=kM`{?!x at Z~WaW at ae(mr&u3JfJ(xw8}BTR|shX`LbJy
zd`&pKrs{`|a$^?D{QLkl81(L1d6Wq#p79}Mu)B;~qQ~oPHX53_G3PFH<-Loc9GH%r
z-FlQqJzzkdJwP}C#!efe$)4peseYgVx&O<k9{PU<HIU9uTVtGQCe$gJ5-wjBJwLKx
zCsMN7!ovFu;wNIW-%cP+zlkmv9wJ^&Fra=9eO6hmciO at phG_qEw0fu6&DEE2FFL~%
zDE$;#%oAA3Ap at krPk0a$+G^z+KW^Rq34RRPrrmGFkCR&R0t$)1IKv8f_+ye^W`js;
zVo4USqf0ly?)ca!<&MyOZ<b^=td#3MX8wQxTB#pxK+(bRn8)y#n$^DiM?^07uW*mD
zGY*=<9VFm^J4k37wvX7JN9v?D7#hG&tY2?^j7zeS2q)f+7(b%Vzr0cdUg_sf1bA|i
ztWyZjcu+NIlF)t=xlwY6{j{^6X7)qQyx920b9#tV9~Un*q8l%gW5hU&=K))S)z^!a
zmxA(a2>n%{hyE&v8&#(|YDCYaP<BdDjra_GXK6i#vB9u8*q(RVRpzQ}CO?S*W-(8c
zRn+l@#%U7;lQ*B=*=;b4c(9kn-r2%7^O)r6r8<T}mHT5>I$ugp6z4zk9!$6!aKcTC
z&X@%m!8d(!bn4CTAw2vfs4FkV9|><TH>+n6QFcKRs`y_(KB*5}O80WCUPrTk3kdYU
zEINm!J6gW2&_b}Rg2t~Ow?usW^vDzVwFho=wVq`&NuH12 at NA(EXW~8SpVB>S at 3bjG
zwa6(+wwKAhWOfP9CAxd(fAa)D2{~^<i1SWR2|cU)ofvYV{S&&q{xqI^1YcrTW9|AH
zwg_qmePR1C=fCJH)Bg^uMSq6<nlsePCV8TJK)$HtHWPj at p*T6jznCEZh+LLx*iNHC
zueE!KjXi&Td*ASz=>Fyb;5SDzi`<-yp9^m%(Q}f*D*6K_*v-3XiNtO`ldgjFABUkX
z5Of~oP5k0`REsnBkuf^iBh`DQdgJ+IE>?$T+x>t1lv?l~jg5v9*6)yPNzCe_3<*HX
zHS>TpOi`j{dV6B6(rrCVeNy{9QV&H9q1E_ at hF#3I<HOoRLs3_cZvTXF5572}evu8N
zk7Is`AlzBNYZ@&sFXhwtZ33wk_ZB#xzG5LK=&Nf2%>MnF)SB7pmF=TpKLXYDNEIN-
zo at _>`kfKV>#WzEyccpPY;YYPBFCoYa31rq$0*IGjK2(!7=0U|(_?aYY^$pNbB+%Tj
zh|EFqO08jJ59!G6>>>Jd`uQ>b2!4AiLd&wF%)&2LI#THCy`4zY(GeBR<2Z)p9`B*M
zIU1S#jbXqYJrQ}$M8-|5m&G?l+mkd$GxQI?EJsI1FXb7k*Z~Oj4-1iThD2hZi9#V^
zGp`<vc=khyD$6mh-9xeGT0o at D9vUg0!OCul!dM_j{Rw!@>)h&*w)$>7#uc~QO%y at e
zhBAlqThb}!#QqHYc1y|LmF7tC90Z?o8`j7e)GM4gNfmab!?5`0onn?pp$Yr3iXzew
zl2^ut!})jle at AyL|Nl?-i2VOOBmW;Ak^d(j)A_%7B>va&v4y=Z#L9g0P;>T}6;^nP
z%O1b{Dgd+Vfn$7=ncN&BbU<4^0;~U}E80s|CuFZ^6L%&Ux^hQ1GF!fxE{9c*#?vIw
z1pqMW0{C@$yqS_8?~%IUCxMJg3z%g0fMSx(;vEIoh2<|!S37;c=(j&0by-PgHd*Ct
zqPUK(^pJ0Q?Pqa-g1D{DyHucS#QhC;T#RnEjZ_U!Hn!SD_d48G_K0rO8TbVZc{DoC
zi>`5as7~(k%qN~fR+U30lj)nzqLl_a`P4CgC{}^+V5c`aHV=)AjcXZs#kaFs?9&~$
zP|<!WD(FRfMAu!z<5}q;I4o3!e1mZr8K89FqL=$4jiriibiCV|!${z&5!J7UhBaPY
zkC4t&;}(i*qFqcr!Ais at So;xk|IcWit{%v2JN<=rF*(W~Fj5V&`Q3njhkP+uOd>1>
z35z)1fxwL6q_R=DFR7eaFL!w)9$e%;fYYj#vHLe=?EZ}l-4XZjI|1lun^`lEztpT!
zDbdYhm%oaqX9oE_R9|u~!Bcc<#e-tyJ6f6XPDD1p6Ol1EUHu4%ayt6P1rSH-Q_F}H
z6f*)#5`8j3Z&3*;=NO7VAa8Ql$j at V3c5JMSU3S2D6yDWx?D)fc4`1gA1x(}x;ryvq
z#=Sz0{y*a01wN|cdK}-!O|l8Gca>B_Ma33dXsKnbZL at -!2b)A-5tS8uMEkJ$;<soK
zcJal+hTTo>^|BZhlqxFy78NTkv}zI_LN<vB;41_l2^a_vHP?+A9)^U3?C+d2b9e9N
z!ME-A^Z)!mt>o at J&di)SbLPy<dGJR at dd4KAb0KFjO7tT<M#doGYWyn)>VA#h>w1jt
z?`zR;JV`M{1oGGOHfd8}oLhZJCVP#z0(A_~#YVJa27r at yt~clu&`aBg{30iA9QzFA
z^eL91(?4Yu(m4o<?}!yoGnP;qX9>%5*tEnJpqx&$!o}B)$G!rl_ykuZNI=Q2L8_%t
zBn$xX6Mzw^9#(!B>-Sod#K%uCDV+?H9p7kH$@tPMt~z4Stdhyf)j}@<=?c)x8YC3-
zJLBw<T^%y|viYXE!))IRM^Dj@@A`5749$4Mvbn+7Xs>r$$&(Dn_R&r{yBG%)AxMkQ
z(Qd3o+p~8`;TZ*5vEt at YN-E@Idy?xL8QODnB<goK+d)cJTph;U+_I(J=lv!{4&%mV
z5lPLh`o3?>*hMl>w#d1HHdk<dE);{8lYu4hoLyu(i7Gzn$^}X~EeF}vg;Kb)L*8o-
zi~f2eE0N9&Yn<(o at 5x<M&(<xO^As3E%@kLc=-);K(^2cujLOUMzSH~sM^g6p_}h&5
z4xCyajJoS?jJyXUwH at 4*Y+$NdfM0FAFj)I;7_M9+`qvr;H+wPX57MPnH{W(pYkTo^
zyj at egU9)iywrr-BF{I>f|2L+{d!%oQc;N;RWI^kXCcCqwOW7o_8DOYa%gM~&3iHpb
zirUp>B;8x%Ge~4Y<fL2x1O?brZ>KUiNM at urn278kjdm=anK--*7?;4u<!m?Z#c|zD
z<J#8|AC at tE#DwD#_2Uu%rwLs`QnH{evSN^&-$09M!`Z<D`3{<7Mg=iw#x3eye>6o5
z;8K;3OQX~uMHBpsYx_A0K#SdSo?AiRG=^+B at 1aNvGmU#V?k4FcpA9kRi}4)T_d2U_
zH{r~#hVL=Bve^#9MUqmKob~E<`n`zk&{k>sCr=S?L49D_tL3NYU(NciV-uX>l&9v9
zm at pgu&6Vi~8XVYb7N_vdOfIspFLhGB!7$WcNl9lv%_ZUhG2sRLK8ahGQYa|9ur0||
zh4PH^4YA_6UStSGTaYSbZyTI70iVm6y{imo7a$oQb<)u;J3h5l`@B_njTLNkXDhCD
z+d<o&+$lwGEFQ=0T}}R;<>D&bhH at s>=1y_G5qb`_5Eh}9vu|4ust$;O9ZA?^Gk^jK
z<qM#sZU=k?|Be!qw`v><6bNbX_21;Agc;U5oAHbsx|*2xa|p}VXOf=BI|VUtXEHqr
zqVJMV6<3?`IPThcxj9ojZ!DUucH#E61PW}N*dX^Lk#`8kMkR=_?2e6M8Qys2Ls`+k
zA&Gh9{xNE<1JBKY5iPGbIyOcc%X5r0Cc67z_i at d(D5_7pHu<*l!JV`aKgN!<E9EF=
z<;g9%Q#>Co{(d>S-7pa!2PEY|`H2nrFmv#cgC!Onh8`^bdHlT$%Kz9LukofCYp at Da
zyqg|O&Ckip#Q}bz$L?+m<~ED|Eu`XKHBR<6<1&-6FR*;Y;Gan&@l&*oZv&hW427Z^
zgbIy|f1q#QoX-$Jc<e%&T7l(Ya^U<5pfC_)ygan#69fCm5~Io>N*5*Jq_neR3`vZ)
z_Y*t!ZR;h$_*e9t92ujn51`hk`f1OdmKK$Sw45o<ElX9zBoeV%c?L5fy`&CFoVE#L
zLw*jq_acTUBNC)g9y!Ipe*q!in2C7o&W(#NrNEpUm0dUpAVJyNu3taU>ufRbiir(S
z3``<dAM170=UnI8&hd;lxZGg at qSyN=9AT9|_0Z3 at f;@R3$L?6WI7bg3jpD_M3-cR0
zCe(-(HPYxjn%BJmFzQ&VxYkdsksCR6t|ve0YZtwvxZbe4)-KMc{otYkgn^-GFWlFY
zp8(}?T;YR3tg}1TKRAkjBa}sNL04m>x)i6UsM%h$Ui9ZMV(}5%Sg$-uQFI*5=tCv=
zvw at h$6FyR)n?DhgaeP>in`d|UWbbOZs9bifj9h_g!$m8xn?E+^$?(HjE*Gtoj7rgm
zIZ-I-EVmc=7PZLUfZ~0_?)AwoN&N>SBL)2?NQyH+=Km|@TA8A)h!qz^9n!@8ax?QN
z67IQ7d5e52plg7Dym#UmIYf$4danSXt4Hg+0x0A}Wr%NpOYEl=3jeZfwDLTHOq5@|
zs}&cl+LQtq--Kq#q&VNm#WA?b?M|P#0<R>IW}oXPa%xva*t?95^?+~n+5!3`lR#sG
zIui-s%h|#+oGnCB08RNhl8ILTNnHJ72hmGDVv!2q`a^Eq#kjG0 at C?ohb1>zgS#h>0
zYl;3`9~R`~p>wGLwCIV`oHQCHEHCQVV0Ua-^f{5l2DFeFOjTI!4Xs=ok_4j%*o%LP
z=8p$#d%|C)iIpcyj#fvnH^3tG+HqyQ*q?Zw at l73N@QlHnGK|<QRtkmU<}Q$=!(Us%
zUs`B&g9u^Sj(d($Vxcmm5Vg4rHmLB|=8`kmfLQh(?2O@~X`!)K!KzhjdWnm`wnoc+
zjefZY&qvoEm7a~ZCdIiitfrM5p+35{h at ljLHVM|x$f)vMN<D7Io{lzoy7WDrO+DR>
zJyk7{j}-3~vGTaBDF)DfMhtbC8Sd96z&nr#PZ$ASGtdGs#y2U#=UW&?$XCS|=690N
z_L(g-IW&iSv{(w{x6pNduDk|4PqOuwCqIub?UBp*{lN1GY+|k4%s2o=4~+&10B{rf
z00}gNa1 at Gmq%BjH6ryK)%3yn+OewenZZHzC$UkHjZxm=}%^d1EMT#XMt6T|D*C_n1
z!ZKimQmiC7G?RW_9A$wxpD(1J*GDOEsr=S#{PzQ84gQ^YSneSo9}^GQdbRaj8 at l=;
z+kO}uu4nmqbcYVBn(D!-Zb?|x7uioLZ()1O&QsnhjGxz)H8 at PUS0SvSahgmi6Lw=v
z!)lIA81Aw=mA43$F=>HDuTZonJAFU+U5;1{6XJ at qY!{00SA3?%jVE*`q3A>poB-eJ
z19res2~@fsrrEU~7E^pB{VYbI<^R(9fenh54{&C_g0ho`TS6C{p(SKIA-mSANvLE$
z97z}9F7jLgJ>xSn(6jlR^epcaD^J8A*_x&R at DSc|3|$}d89bwh at iT-c2glP(-yo<T
z$i4Ca0JSxhd>)M&47#OEK1pIrnVS_b`1=hp_#^ihgi691N;Dj60%RlBRKi*>!&>cW
zv?Nb69+#aP)r!-^ca#<B2{lk}e7Q`*WMbt%e5+L^sa3t>TV&bmVhyLqrfX=!e~vf2
zPF>9!-bFRFYNp|;nYyW3XsS&;O|5Mj+}g0!rpJ2f+ at xNMu|6w_F#!`L>ecg6?^SWc
zCnL(emjk*5&#95wXG;vv+Xz<_MH>2I8LlsT`eRtbV(M1L(3 at f17HwhFz{vFgtd+GR
zbYs|A$8OMGBU6yK7)pli#-nFq-N3@?AI`)L`4jY0-HIc#K_EqV#W_~iv^pRE8}8Gm
z0E3QGXd0AF7d5B0X6K5AZTOEY-NTaP^7;G&B;<_;nX%e$C}|vnn2wriGuibFFW0yk
zo6Ep!eR9{yU4@>~UNo$4khF%eR8!EEMia at 8E4JXBq0^EjobOJ9(j|op&<<X1%=J}a
zmcernQoFP72ln+MJ4M2A)j?-;>owoSB4R+M>k~^=`4N0XT1(FwvklB(LpwU3f55<_
zNKkLDf+I0Cz{;mr?bhByW*hizAXNIaC85&U&4iVP>;<^Es|-iAXJyL0 at gJ1C-7pR+
zttHDUe5E<XjR at lf^Kl~lET;Xbt!PBDjm$?R7FP?<Pd7L&tSqlULxQR-e$cP_RlH4q
zHJN8*e#8wi{sLu|FCi-pG*R7p?NP2%&syEGMT4pM=x$(z&k#?cF0Np<8MY>^vvXM3
zz_%}pQNyz>j2d>Zy8b%1+;~S(t-oi${lj3j`-O<)J7aS{>N_)841UAza(oY&vc$)a
zqW7A)_*Oof4}px><5R9?Q1Mf?gS>xnguS_m+E<+8<h2ZKnVP*6FLBFjNKxciOsq)y
zC#R_#kiOc_ at +cA8e|wa@@Q|`tN4OdGGtviV&-Iyf1Cv4jTG at MIdZIT6{;r3{9DDft
zhYL`pX>d8v?}CzvS_SB%gWo?0=U+o4E(TE(EjLi at iS%zp6S0tYqkQP(OC?^bLheq;
zh6%#}?p$eN&l>XKkY^*U+_yh57+9?;T&E{rlKr?qY0*{@xjls|cNY-{UG}h4PQ at Sp
zRiig%vE+|iEYV#dqps)HaT*KdxwX^rjwVi9sN1=G7SR^kyj5L$G=3>H_wR$OJ9XDh
zOu?RAZeiI+FCmRJIw&K}+zvET8`;v3Hx1Fb^C19>h{5NaLs%X?WwDXRQC0R4b7R%<
z_gCS-%lKT!Rj;CQ15Qz&oTa{wzHN4L`X>jb+x8yi1{yac-p~0vAHv5}r-cOv3GTty
zLT|d;QPM}PJzZVm%|O at 4;?tzL;F-cRO7Rj%%PVa%FzxYB{A%Iw*&*+h4LLN<U^L`e
z>;5S|r4r9d<U1HI<|85jjpTx_F;gfcq~V!W$5n|na6RyTmd#^&D_ffZ0}a{P*a6PL
zG}gRkQ+y<4ztrIes%;y0Y)Cc!lzkUeQ&SS`U8;TurOD{qwnt+l7GlGkl{_|pt7mZh
z#j%Kg7slCMT^(%VIwE55QMy3 at PQL<8^{1wYrN0q~(}(_qH}&W*(IOvWKHN~B>k$m%
z(M9gq`cJ;>xtxV1-)M1PbRMmT-1&pvllrMFfIut2lP`;b?O0VyyqzaLZQ{Ft(}L#L
z1=Cp^ug~;l at 20Yz6zGw^aK3=s-=SS-ex%@&08 at zKC`j25jrMb&aboZ`6VnG^Ah7!M
z`6kjoeK=t>V&KZCRxjS+;EhqeKQP7FMgGGr+TM(61}Q$^fK3BTQe@%fQw3_&w~fU)
z4_wK9`*#cYNRvBXevEvP at rRFCqb`n+h;his-T%|S3$=ZDDwaBirFP9oOzfn@{KUj>
zDKRH8aexx9N=!t_p?}v;6BDhJI3Y1{3?=>`G4UfxyfiWK5G7_LCWa_+YGNY#2<YE6
zCNc4LN)!_le at BUFiHR3bVp3wFhY}45iNRbt$9HjG7+ez!Y44pEVJ?$n{-B1P?@vmg
z%u%wx9yCc}@ST1-5h^)E2A9GheOq~~`|kjSV6 at X@j8N`A#?`D-Oe6FpXF0U8w4Yp6
z56vC at B;?*TQtoE~$ju%p_Z95__eaWo^(n{|M#>%aG)7178zJ{S%-uaw?gxK at +`pnh
zWX5>(S5(ow6YXgy9tuqxLnap#u6N>v#1`v)$dW9uQ_xlo+`->44j+(jn1bBFo#pQ{
zi)ATB#yLXy{nQfVPn^QIM<)|zt3t=(CW`01g4&oSv208qt=5w1<e5ZG8>!1<%g}T1
znGtda5LGQB<+dT3w?ppEb;r0hA#~xfm)V_a&U`h}N3>G4PU|65`U7OE?R|_=_QK!o
zL at 5~0AUtd<&q~mW3tFkFI+mb>c{xH7qa$=K?^&pJ=}29F`!UEhjFg-59MXU92)XhL
zkXtuW?!_U<eYrQme at Z6V&soTRE<JeAJ-s_`LALt}^k><|$JB8Qgl}@g(vLn%iYVmK
z;d$&4ZSLQJqz2{H&SUq>F(bQJd(59#a(6bgVJfOEQZxTPT)bj>P(%gNgBT~m*(nB^
zP2^2ATMT?`ifQ^NPcik5XDD;NAO`9wx&u-lbFzvKPr2CkX-sTG5zx_5tod7AMcK at A
zrR-?)<j3q$$6^pB;1k4PIzo$?V3ve`9c_xIoqI1OE)>RHEU401tu466&EGGXTZ}1=
zHu)C!5;NL&<~<af5&%~Cz`6aQqU-XG+6Dvjhx&wR$OGz++T*h7YcNl7f2fzxae<;Y
zDo?dRqU5(Qohx!+ at DyION&YmJM6L$>sYadGPsvZw7D{W4ao+?r3V%ZtsH6$qTaq3C
z)8v^mtcTM%>oJT6^S*GNZ#%j~fO#B+Q#E5 at aE~XsJMaE%H#yt5O^N%_4T$(INvd4v
zPTsd2W#J^T^lg%xP_^cA?l)Btf`)2MJ-btD_HWO#NCVaSa$~h}EZ_#V8GN42>m?hZ
zyt39v>L`EURb+>ix%$OW9}X=ZNAw7ff3$N-JCAemv;Wbk2x$XJK<$B at jP?I+^75^a
z+6zXnNEXXxqR;5@!Ie-yW@!zbu)GFK^pdkIT*e$ew;fG?26i(3tTvv^s;EIz_w3S!
zyK@}{4MOgVvQ)f?vr|1k%H6j%hH_Kb6rwVXZWaUAkVjT_KGbH9<}#E^TE!thUCd%j
z<6pvea|EIa193O7o*`~vF(~>jPdj%5d)}XQ4q$)BhS;$dxBM#!3IZfWFy0i()8){{
zCy2%x5SYjGlhY(ECdz#;Q at ZCo|8`PQ6U%z~I11d&fMz{a at Q~rq;4{EKBU@$klTP|Q
zb+I}dx@%1C7Y9{j5x*jDch{Ib8(2f8$QrDkLi#|#z8Kaqif(s}5ZT^clOi(T=u}=%
ze at i(jVqmUTI`Xv6UWI#DoXvcMql+vw66$6y5ON{s0b6v6H)HY72K&=C+xGZt1(c2o
zbbHU6uysK3MQxg+6;}IrxiY!{iYv+fdSQ?`%L-nlRjU&0c86KDZ94fo+1AAC7U(KF
zwDuyahL8U}mT~?6=H-+AMxsCb(!7&bk&<Q=sT(@F?2b<Fb>x4l8!%!YSo}i{)>fTQ
z&6;u0@$tUhOD+tKL>-;1_R{*8Qqwv5BL at 1lBfJLbwfmT0QbSvZt1H4ZpIv%o^0^Pj
zjv7`mxRo6v>A*tz&kM+DHapkIwc7a#ljy*uIn#cH_UD*T+ccHLswGtJ?sz%RSTrBG
zn(3T%XWu(c4E_jx)WrRzLC^R>ECww2w5|`hDLJEBm;Jj<GIcyqfaIy2fCjhvi{L>|
zDsR!9fpXl&_P8A9c;29kSlh7#hOB-$z}lp~XblG{jC|;`^{F3gsWbGcFKMay`qa0z
z)Es^4XIko2`qVGA)Sv28U(iw~=u=y?)F0?m4{52F>Qj$tsTumz4lQ-6KJ_atb&Njs
zgqAAmQ%`HDY5LTDEj3A>I#wehgDy1~F~*2MKmT|-xsBAi5+`oubHGg-;_-bMai{Cl
z_qQ!X!SpOsR!@Zbvqg|)9yaR~ED7eQcSx3sXQB6o&3XYir25Zcv&<*~KQnBWRLT!#
zL$kg at Vf;74W;LyZto&iKD)Er<lVP*gc_7O=Y*xu5ko9ffa9O2GA?v`fS&?OswQJa{
z$&W+UhGDb5y9%=8VY8maslI>Mte at cl=$5|W{HZS>O*Jbp98t&oR{a8v)gUPrQM%*N
zUyv3>qKmHNrwxWgZ`r5TV2a+C^-)UEN1AJ-6uckNQg%{Gmo8-!rQD-Sd6rV<>ry02
zS)fZ<f+^2r;1Qr6IPx59w6Wx9^c&c7>wsY{&=L;Axz56Tf#F5e(bIA{){<)!-$Ev@
zT&ZlEhi?mbFeZB|+rf#w`#-mz6j$EBg&#DsfOD>K4ZgqQE1R2D{kihbSXHQXoT{^`
zs}if$uhz5(ss2M+{bv)Kp4hVgbK60z|DDA8rHS?NdPv)w{;--2jXj;bx1GJ&mTl2t
zs}PHnwd+!Txtdsuh27gbHqt%w$(Od`MZGe+P??vlES#oP&BS(G8*EK<8N>NSS~b>n
zu)646a^W<*)n|np<aych?81{TX>rJ?GYd%$U#qtzdgCdB!G3ZnX}&;_6$^E}TMK#W
zQ_Q}X>OVBJzI#yphjjJlVg3EO`tG6iuO3w2t*f7j^>0D>v at AoH{J>8jg@{g1Yk}1y
zqFdsGB^l$h^WKweKH}9FMF#F4T<ess)-(EADtcN^^uI*@X`E;!QgkY~hpZV<WeJW?
z5hk0kN1H=5L2xj`sZq91!-Hg#?C5kSAv2gvhO=a>sbIW4cGu327M6}$G_vh>Uqj9S
zP{)O?=?&Rz3qh&+H<OsLF^h6a9e<%5n@?xP{_Nb6jfa{c^)<`ROLQ=%vG&m)1%a_L
zFj_W0@=T#T3vVLP#YfB^JDd|!QGQ#2C%eJ+$Z>m;B6LwpXzFed#Nc`(!<RF5d2(e3
zGQ;$e<rs<nda>;9csi|xW69g}VG at I%(g(1Zlk@@1=vf3;JB~S4>#offgQ(aQI4DZ%
zkzX}H?K1j++V|tcc++=gvuV at bS>}GNMP}g!rIZ28`RgAe2_n2;lNcyBvX=|aBuda7
zm?OQU(1L#AWp4h_cPcLQk^Y~BJF;JLwdSnsC+P0W%FpuXG#ZU`kIiPcdbVhSJu!bV
z2>z4}GH`K}whL at 2=YL>Dz<2{z-Fpl9kr-;88RXDE8=&eTw53Sr7mD;ixcW{CKC02l
zn)Mj8iM_tkdFRh4>gcD+|9QexmAd%)2S!!h9=AeV`Xrmdz;!&I?RvrQv-u269u%Ka
z8}IkoGzZ2E&Szu)2#>U9aZMNCql#ut3N?SS3h-J+x_vc}Des3oe^1Ji3*p%4KA-tv
z2;DCDI|QQNemNXgO)%?+ZQUnd!*x1O at Jndto*g{6?16GNXyw at +1An!GCg$Hrt4pJU
ztsy)}zYcZt?F)tF?<wV2SZz8>@p{;JKEpf16--_v`5y6m at 7XwhF@HAxcBU&&Q2i$<
z$^z<RAcHBK9o*v<?kI{LX>g<)K0`|b%N<4PB~QfE<rDoS<9#ENmZv{>5DvWVEG2Ia
z-7^zGq{nW*IxgM at jJeC5NuHAXm7*Sie=)-EEK+yj+K*i at YU`bQKSQS=2i+JK8kk((
z9JfQhWww$x6J0#P2KLlUdj3HdVhwpSi83dA7QaRNb`@QIY+djf_Zrv^36X~4@`k+G
z<(<3ljl8MTN1^f0)Qx|AeEjAA*YW>k>(KG<(8mAxaO21BNHggQ%Y*l;?4oLLJcV>6
zdk*xmNKLCkmROz;?}6bjojkQD&J6d(@-1_q&Mk5t4)c0hLGa3q*?4iMArT*H4cm5q
z#vIKd%h(d4fc1vYAqlT+pq#o6(yFXq<HJ0{h-?GwmwyEaeI<rZG|t!g6AVVtqIGpO
zux9pZ>PhY{xL0rwazX`!UX2W=;9jfyJ4)GP6Vu`#b)$-W)aV%te=ml=neg{}@HYeg
zj={Sw_?t;Lmig>HBw5?xAAc3SWLWT__HW3}>wvGXqz~ZhHyY8Ikr+fvwT-Y_)Z*$d
ztu`>P#DB(LFQ5(yIoR-HVCfJ$uM-<?pM+YEM!CjaBv#~E1J!PqSW&&v<e9Zm at Jxp!
zbGRePf5xmE^ZiD*jePKmfjLYZOjq(OdKYGY{L2t~Qr07XZHDr6tTQX1Gi8f`EtcFk
z-yjUyHCswiOQQA8 at l#vK*(-cq-9jE<;cHS$X*v5E-$FKn at HMujRAOHlEo5zocGfLq
zg9!a<MT6tYe*pJrqsztoF}$;({Aq;a=e7`zRg6i@>?r9~-O6nCxIg=J?%I{lOXYS}
z$IC!Y($c@#%+l|K^p^YyTJsZl@>CYUdVBWg+z?t+3>5kriADYREDLY#{+wU99)Ao_
zlb24C=P>?1G1z=M5 at mHT=JO#QFD&ln=Et-PSn$~K3w*X%KE^Bto;Rbhu)BaRSQf!P
z;-^Tb1!FMS(>naFoO>a^iWMts=nl4EHc at B6Or6+z?duFUh!+JWW(s_f83`0f_A`_!
z>VPs!=mWCyO=Kl3k!(_DV%PQ{w7RcT9>=?TTX%5Jva1sH at t;A<BDpKvCgd9%buB*y
zLY%!4Yb`&h+&J0R?e8@#D^TWU4T@)VGJH%>gwa5?tMG2GYVGF<k7O%lXk%_xgD at KJ
z!U0ge{rK{|N}0BfUPH2YF>xI|!{ZTf5PzDeEv1|JQkqUn$(;vF>H48diQQ_!YWe}p
zu6`B8uQPwRKKA}xrmdf6;_F9U5;I$HUkP|ceP{0JW7=pY+Dsd*zn-k$1`FW3C<Za@
zt8*5<4XK+ at LcxhK`hr+lkijP3sw=qgRhoSDb-d0gn5xV9d>8H9C57`*Hx$cUNK2*Q
zA!@h4&44Y`Rr$d#2CSW)DGJ8W8ZEe8SK{)2vJ%fgiB>x5!|JlOmbI}ji&#NHxO6ps
zwv*M6a0zIR$H(%k1Y*QxZ?aF|#bw+nvsEeEXyELvY=eQH56Gdo4z#d?fgaDgyMT>r
zJ{#9Px`H#dvw|o3^=MqGEAc8HS3^G=x$2|0cgyx2oKIk(ITFKT0fCu&p>0nwirlwh
z(Sn)X8I~Mcv6VIU-OIlwDA)CKe|WL`X57rGDUvxpu61YQV<o<}!Le$7cYZ3YM>kU3
ztjV at 0E~Z~9w`P^gecJk2_K0rn(6MNCDU`l7wsvMsF0l75e_z{!+!=%RAEIQa>Mxvc
zft{Zp0 at S^)(vwnm_Pr*LKa at XJ*T9Q!0sWzV{?e>-Q7x7I3-ANh8KT<z`7r at jNAWpU
z2UXoz2^G-gJ)S$h_?&xWJ_ at 5#j|{|5D<t2rbx+m)e1*2|r}K56yV2slZrBCiMGOA>
z!!3A%^^0}ffAt9a<%4BvjppBwi`=;xNefa8hGH2*(pU$or5uxzn=a*;m0XLIBPh9o
zl#`^Gq at 3hI{y0O9bPUOZ{>(Nf&@>tq>>2sJA_KP^5Wl at v44>-A40fYEVBlsHWP45G
z<2NypFNqBN<Q`j7xZ^Uvx5Gea06DGK=rNbuqS7j~m5_UaQK=M70>xGTB*~@U$T%)u
zCMl%`CO-vUH{up)?-fJ1-M1u-|6<R*%F~$J@^wqn1pM^^Dt<=_89!|Co at l9Qeit1E
zH`j2lu;?lHU{PnweJ5IK51nk;3#a#DS(t(TTX{N5nVw_s^?qM*bhHY)TlTgdJ>2%f
zlFh9LiW`LK1|$4C1B0~oE<M!RjQ>+!K;?G4*LaJ1HVOJ-+oScWg`34I-u7VBeZJyo
zN1*St9z&qlwjM-q78obWhwu$&<Q#vmu&j~6Zf(|x4&+zi3w)ksi=}l1H1$sF5rDGD
z(Nd>8jrE(4!>Dn at +IX95TlO@+hn{fb;{$BK2nUULMnrCHjs#KjF-;Tr)9|ofiernV
zp~B?J<(Q1kv4Pw65WTW-=tl6hdVGMn(;9m{2|3%SqJeApA*hX%A`lR{7Uvf2R at tl$
zM)o)Az**+R6>Hv4HTyYDEFGopN6t<O^@1ge6^^UB2Hj8HQqoCw*~6;rf9f?PsO+O9
zE2@~I;xFm#%WE~2eMzUX|Lto`ynoMlZk7E at eCJl#FAC5_3vkPy*qWF=^S`aHPt^zM
z>wnkC^z|oyF|xk?Z~kh~tKOrsIyJDJtGuRH&HqA+M6y=9WSf*&$?0P%_Upeu6;{$+
z)s61O68gE#Fph+LxqJ)DAEK}SG|mDkINPepS19)zj at f(zJa(KrHRNiqG4FBMnpJbm
z?WD(Tf_d{_Ng=?axK5SSApwvYJ?hRoNq3&<#&g|y^wOce!_?!4D95k$Qm>)ea&A&U
z{-c)SQ6ch|LE7->2Qu<PN8PK;Eb>3mf5-TdL-pSm==I-GC@$C03lNJKY at k8L$fSLE
zHF&g@!aGn>f<MeKi5KSd9s-h2KWV^IRoRcUPrsQyysi4=OEf!dL$&P0nbqP+<)GK}
z*KuaIQZiR|*!HMyZkzO%3pj;y##=Rde1hV#uxom*uD-4L3#P6<M^jhF^*Tgd9gXuT
zp7bMeb#?zE`1p+&%~a2e>izfpf2WUr<KXC7!|J2snv5?<&R#!!*`U`h{}zZVK_7ko
z;7T3;lUSp6=@5PNo#Q%&D3)_KPD#r~)<@que`qznpx^fn)kojl at o(y*$NY7muAdkn
z^JP+RLjHT)5ci?=15{jcU&6JZP-CgoYaDc+r74#wAJPx<=oQm3qewLh>6ks07E><k
zJ{s36`<o%IR~BZvNOZrAm)*=?hvpb+^ds?(iM&fwlSFd(qujDE^g1>ZZ1VhZsFvAh
z8sdROXX3fxsdcRE&D^~QQ!6uwK@%$J<lPH$`E#u8j+t=4X1<ph{<KKY<Q`@Qr~6kH
zg8)><`2kZIBbO!ZhL{3ev`O=erS-MD1~!lxQBC7Y8}HS8yuYhNeJBHa8Jq*P)XR`e
zqT_=-9dyN3Ro%faDym?GtEeVF2!ziA>FB_vn|h+xl5z}iH7asy^2!^rGGg$@$Uu*=
z&NBrm&qwNa2ecAqPlKicRiza|HK<4n%TMvV!d0FkYk5j!=kW2oK`@((cVRseT20c6
zl^w)!N2fQN#eIfqwr+n9>|N<gzR%@3Gt|iE%0C at f(!mmo+PfZXkD at +Jr`^@HbWiNe
z5RXTQ2K(q$5RPD;9`|HTvFJyG{2iL}6E%xapWHsM=!=o#BWRW#Zc%PLjfT^g*T_%I
zriUgvFKFux7h5YWHoOS26K+KRJJ|MOcjOw)-`wyXZ&p7$vd0??WP|SpbZmO(`623|
z8EX7ud*#E1n13DjlPo-%y~aIxVhug^B(yp19BsnZ;ip^37!j>d at qDB?%o%)Nwjll{
zecSW=*_t40{)|2Rp_(X|-{-yP8LU(gqLeOO%A=HWN|$mkrS#}h=2A+(F2zA9R-JOf
z&siDW`|jnGV$hWlDMiqwoONT0MVAtxlyqH6i+k9|b=#hyFYDV#D3~)o=3e-3>;Ij{
zb*4{9 at lZ~Yiz(b*tJ(I-7Z_K!b6-TS!t5y+74iJj=%W+X<SgY^!ESe9 at SuA_;$v at g
zdHk{0{T-x at adb-b+)loEJGJvP4tm2PXe))b-h=KRVT}`Kxl_}Ga!VJD^n9zWhw-L3
zMXp**Qp_Hir7GBdWW^wVOtJmV$yF%>_`a#owt$CXlfO3`ov+upN6TGTpo*-&C*{E(
z0%vW6g#znXg+t$EDu1*f+P-y(w(ZGX68R)lUPnCQbMan-&i$kNXNrP&hI9B8gFG8v
zwa75U31o5k#&Pbc%2P<bupeEeyxzf~8jUf9Y7M~g2Mj}8BbIN>#`-;4ebU;+ef)F7
zkoy0i`iU+W%LCO9{W?(XvDDK~OKknZ{xX%bjgAh$I?q?}HI;o^)t&+E+egtK*mpMF
z^t11A>W3(jDg6v3Pix+|Jb%On?$jD6TO32-_~i`0>VL7lb!$N7FL1xr6*|ld4KO>&
zof}oIfqkv6&@NtR4DE~wsCapyA?_1X^D_A@`p=K)3!LYlzQ9B}19&ePQzK2t7bw4a
z#C#*=*A2?o$J>QH2-e!A{ywp)3&ybg3V&b9vWxwF7WX9otOXXCZt&tye8uHe<G+kM
zXuNR|TGLoOAEKx_4>GoMx3WUV)sPk0QC#jC&c0)uf51YD*;N4!twTUiGZt9o*Q*j*
z9Hc+7ZW#RuK3<GRZ?GCD?DCyM#ycoJul8yJM*wCBi4RPqbU}g_zixQ^bJQRhCkD|I
zdv|TNJFUCGVq(73yKABFrADqn at g`Nbiotj3!y*Pp8<~>D0Rz{qI7*c)o at Gjb<qFh@
zDAoeh%HDJyf!Bl4c=2V`@uhYjI5^%IbgQr=ek0QP8S7%8D5}NdqkI(=Zt)hTfIV}y
zqcK?_OY5k_AD$@gm-w^U2QZ-X<g0zq`yIQ?n at M4axd**os0|~Nf5 at SYS&r2~n7ouH
zWFq+U<NcX{zdvI74RAz&?IrRLzCm(5o#Jj(W#sf9f1h^5-=`<}d(7^emro{rc{+#v
zZb1|Si4B<DcPyVcOAM6oM7$A?ze$5+=yv&gk~|+oJ|usm1A_Y||3H%G!$=F^H*die
z2<JR}h?Mgd06fnYy?zPi_hY`1^5dXOW-KtI!?Jw at A2Q+F3<O^qFK(jZkq?l{+che`
z^p8*>H#%5<DpNa;rpM2tR`(3p3xBOVuuwixvKPf4`KE;+eU at Y)XU-Gk5{xW>u at H*o
zl5DzBZFOWyC6n>9QE_Fo{OM|T%CO2g3lra}yUz3B+xHhZKk4JQTO<5Ea{2v(_CR*u
zOczWkC4~zSM?>SQ#PZ>&m_1BB`6tAe8Sa|`E#1j4<ye2=!fbrSIE2QS-VD3fy6g{l
zu?+jiBC^l4qQknFI_bhcF#VSj)UTZ4v5FzOn)6!Z6G|DTNg0##BcG#e_ZX>Q#={+c
z#Hs=XQ)Rq;!N9^G1ZL0)$CHY8bB|@vb)FSK7RzOs^kXb!jw-3c{<D|WspG3~_0lz!
z(DCViqdE=hl<p)gCvK{UveN_4kPNmJ(|1MLG7>so!wQa-+o<%M at v*yuyk}52DkqwA
zS?#WJG4w~g=j at i>M0ZI_i2n7aixq;MomgduPpp_`H}YS>rF52?W;ZoB at Il<5r9VWs
z0Y1A!5?8elcnPF!a;w(h2vCDwDf~qmb2g<A9J?bRu3ASE6;R00+Qi)oRgvqBHB-p4
zL|%hWGu~w7P5h-e0}25MA4y8>l|xhU)n!j4N1^uRy%THfC*(%2N$yhK!g at xav6Z0=
zD~#tdd*iavQpRO8ADwh`ca=*SnK}O6ao%f{=MhxuJ5xdkX!&Mk4gQ_DH?o;^RdEF-
zHmY}17ko;QG_gevVTb6v8g&Hx-oQ9<<rVZp at _Qxt@ijgXIm#8M)la^t%ywtFxbjb=
z`?XT1_x9qwuv`t8?6J<8;>lS0pzR=CUfEB|LF|>c7|#rk6G?e9VJKt7ibi=2da9Bf
zpTJ~{0ZFS-a(t`=r;+=cjJd`3jDp4EV1yq_8Dq$Sq3aWch*Fx9X#@f#z<KtQOE)O=
z32V#GLI?-C@!$jJMl1A13}u{Ux at sABupZc8_66G%N5;}0&+vbVUT(+05AR8|w5=4<
zie*7WCyOR&nrI>&9juh^Z!qJ?>eTniT^+1AbX^-mLH~a-b-5MuOnhI2)%3-G(Q2{}
z$R&5;g;OXsz7FTHb*Plx$rmIn)JQ9U0;;A1;$K;1IE6q$3F=<ks_m|^V(3gCU`<HL
zp5lO&{S`BfRkmV*NQdIgpn=<+W4({qqBv%41lpi)AAZmnh7<>l;bR05kdOwyML<Ft
zAfcHd#c_aeg6_0P7yP)Co*DZkjh(C^NwIYk+j)bjZ!1+ at M6ANEph<Bhvo}r;jm;+8
z=8Vy at t4^#iqIX90M_4nl23j6vlpWP#MUGK%R!<DeyTiSg*>+FdjS(B5&Yflutg}r#
zDku;CA-CuXh6EEuk;t$+-t{h#i{4ONb=%FvT&rc*4%t~n&x6P&Mk}rzgBw?zRXSi$
z&PeI#<uI|4DUL>ODz)^k?ART3yz8$u!=_?)y}R at UvBJ4qO8*tkthn+N)0ku=sLE$(
z+I9)BGw#HHh-A{ocf9d?WP2Oo=;V%{E^mAi2f5|f#DeHb+`Gx%Ag)R##n(-??&-|+
zod1kLTt&8;j!mIiMwxuh$<7V-uow#CUX!sTlzxNkTF?A8MJ|jwHb8wp`EE1YT^q#E
zv((0VRA5{)j~Hco3gE~D*rI_0j=~eefQyTa%3G|!(u<4}d;Vl=1g4A8P}dtV`x=v0
zf6g_giH(pwu`x8&IK{hV`C~BfZ4 at 7x>p`yny at 3ajPon{Cl#eUIHfe?+qx<U(QeKig
zcAJXs?C_9CC#E-XWcD|4&}u3%w~acTQt|ivlHyL?@&3#`c;KI>OX;|W?nkH;{>3~s
zl?<}^no*DRFmtTO=9zRL74IgX+bqSq7Izs*IG;E&6?u{tdPRB`l at YFygfwIey-=2w
zkRWRX_3Mn{+$3dKXhYw$>;lEHP9dx2b)H9oWVS536F2pZitx{1b>zDWi at n6OKz{}u
zmz#qJJ*wi}*dSCQ_2-uiplG%1T|W>C(fua%z*#aAsl?^DW%(9p52v4bP4oifO5mBR
zp+SY*^>Igju66W8_K2WJ^BCK(PjPG#sg_uAa}s(Iq6CzJyB(X1vUjcQTJ1 at eU2A3U
zYX9F53ao*(Ko3#pCjZ~CA~KxwnZLA<kPZCZUMy#10dd$((wr<46CW0!Ak$=b0FRTj
z)iO`dLKFug+?XX?<QbzlRs))iQu;+P_NU0a!xusSJfo>JE1^Nko#L`C-J<?{fX^|_
z_!TjET4+T}c1x=xBe=(%+nQ7e0$)o_^WIOdn2ldY4ycFQUU)D=ta##wMivO&;yYvZ
zq=9@`a>GJ=%xU at 4okslk*T{`W;R7{4Uk#%#z~sSEC@)$KCjYM&>`J_k`?vB9Bju;?
z`oqej39v`V&(>fMryon_MIIi^WrZUn937n*EP^B*L0-dKmsL;FPqP^K!ho?KxUZLu
z#Jjt)E(U7ez5TH}42IOkhkh9n(yo26)MyYNN43WAQE~g*w=Yc#f0+av`iK}-lTIH4
zKJ;aZSlJ}Ix=tUX&jZEs3zLvkAf>3QSbqA)@MB_8m*VXTl^NjNRxFoZX&NN87m7g?
z#7bttf%w-3^&agzJJ!WuQIwxAF#{c7%;fqq7!7nDKMzpXJO2B(vC)uL4S^bGphq=+
zzMs(Qu(o(%-CJ6cB&4W4Ek*q;j()Myai%3{C8ad)<=P27!9A#X(Q~lqRLgy5;LM`9
zPO;*L_8y97D2`L^i`Ww>drC at Y%<T?(PD-GMq38d3`tyJ6{+AgVSi~}n&DP>WT5e4$
z$KHi$1&C$ENs!ds($QMfxD^k4Amq=C-NYZii-|(@@(Q#Mi=0R2M_8o)z at M#-MpQz(
z<)AR$UnhL}i;V!cb?o?#Q7a9GPtU_&E#9vIAz!y7t&OmN#fQRxj?R|*Iu92eYPk<H
z4 at ttMc_n>#SXlNFG<!OGp%11|41S%2+TsheKt?<yyBPE{w?bmYiseR}CcFy*X1gp6
zKJm(SqN5sm*q!r$;7;><s|9hD4<UK0E#fL1EEK~X3$~+bGW%+9>>v#ZmxW_y1!4)L
zKjKo=Eg-YBetEd9wPpYBcf25$eh)x2KSr#f<IwTeqTNc-j_@&)PC0T%5kd3!r2yU<
zWM)^@yd?c}JsOaT!L#s3voSdN8u>+8_^MAp+o7+_*q=H&pg4Be9d+KHpfxFJ6h6Dq
z$lp#u9G!=4IO}9VfpR&rv(6q~`cbQ6H#+=8i5cYC9iLvi9)<&wOLe%-B0ILgU>Y17
zaLD_;8z(w8 at P-;3c-v-xk#PDs=%{O^2?KaQ#OJLeV#b-q$-VM1gW>RfTlma!0`EMu
z2j|q=26L)7+U&J*!-H3gm99E^z^@A*wJ2M#`>A_n*E;CY2Kj*E*m!yK{x21wRB^7$
zv-cIt>9d!#M;&z~-a3luzKV`mjvdf>d$a7=wB#2!6gpLsX?V5rPXxI?O0x(OO^<xw
z^5#4OX)oGT+#rCM at t{f;*nnT8slX;?UeVG4lh(WiClRI&My{P-jd#YT4kqp)HgOrJ
z8*t*>>Fjdd-y!%Lg!lw%^X1%O-z^ejMF(d%Ww7b5B^can?=N>C^g0w<Kaqu}6d_do
zB}~xfp71w<?*0YPPLVI_m`R<jNf|34_HUkB(ts=U at FZAnmQR1Ng)g^t5-ztb@#WSW
zTW)- at 9W3ggiRl2@e=$fGwAj`Ht{IVuD={h%qkd?aEdW%wYHb06Ukx<LNNG4?|KN5#
z#@zn_#xj}e=Pn}hwFH45#1`L9GCrd0YC;ttP5wmOJYeevjK%n&4qxtn1z!uw{*U-l
z3rK$QEoB-<AVc6Ay}d?!{O7ThWh`aYooFT8sJfW%rIrp at P{ceA^{S7NYx5W?oONQz
z#prV<!v!sP_jtk9P4V+?OQfE$oO=3 at di49b4j&8u6 at 1)T`hTV$yk%9Ngo(tRME!!C
zC{?qESx2?{1P!zr7^guE;&(Fjb{Se+sVB}5g6h$Jpko``f!NZ79Z6d`_oCOMdL+3m
zXoDO{#R2|v!8!JzvfzKZ2UTefS2%@#HCNj+p$FRPkXOvtuMxbf)YeF&?O+7;-IXo#
z&(Xgx0{?0Mv^}x4nR<hmQh!URkN;j09b!LG()q4-2?_K`o2hd9!tMq*oL9MXH<~=x
zp<^&$rR8|LANa(;ZubN48z at c$Y`iz&#_NH~r9UFw6suT<5e at JW4|*Or_;5Yc^n|+`
zvfVpy5mc63gYRuq=+ at TrDtugrAL~nQpmz8jZUp@;ik0PbpW7I26O0(0 at idzDn2O~U
zm<)feV}GWyKM2>8h0eI2Tph0l09R9f$&>6)Is1c#;0gAEc*4t~Nz6qo5L9_ZKHV*A
z4Wc`6zqblR+c2y}=+3xb8{FtovgPZR62vhRpB`&K!;xUvjC>DYI#Z|;K6Q$Ll?HYL
zix;{a8_;9)<0`uX$`g3=DmivT4t8LQCm=cYz>n)Fd9U|+c7eK|*}F^Z+GTQ}S_<Mj
zofxD`amVgrI$7_P@=W>uS~Ead`T>d*w=IOJDmk_srPp^12EicTwJ;np+p1ars)NmO
zOJ#sx1ReC@?JwQ1u0YPl&h`6%*?bI}YlvO7`jOL3Y=94Ba1-kRUT>=SWcBIh%fs*;
zP2~kCr2$d~Sg!5h<@J$=wD{~)hF at s;$iAE16;=qQ{XI&E?h at g!?ZCq}&(CHzy(S|T
zz#r1IG$WQcu9cX|OAv^utb{3)XA~=&i>DO%7D**_xB_VH_})SsM#aExve6)n7K;_G
z-Q7PZme<gm(HS{h%yaNYNugA6bB%Ggzr!b1R?9WvFD*u3aTdu82*=ucloD;4*d%rT
z&iEgI%QJF#dxyd^{rm9LBWSNt`A?*~VtnWR8T at 8^f^A30&kh}FO{!wYm?JHF7;TrL
zOGqvqik0=YJ^miUvg?#>WL#gbkDnumfogG0%|JDU{;m$zxKp4WO4T{`_m>}5Ja3?5
zv`Q8gr{owK;LEo!R9}V!BFEspEDKk?h4C0#pbEWCgoJDuYK8 at lg2Yh7ia8d*>(f)&
zk7*V_N-3 at yF>pD+VXQ+8ewWNfR(+4QK>J=XME)I%EQ%io(4Aq;weMZ}4W4=LTBvs5
zHl04cqxuB9B)WYeKKH36jR}y8Sck>d)Y2hVNXY-_Qv7BpyT7f~B^AzwUA1Ko?5nLs
z<*h|)VE~hj{M?+0EaLI=K@=(!0~pb>)q!i8>~|Qynay_x&sy9X-dzS;gL7?*x1PAD
zqyE#R-SPdnuI0YEgGJRX_tm#LB-mwv!6C0=&`O3vTNa1rB53md5#SLp>JM-!#=4&(
z)_op)F#P^5nR+i))?j;y4SjcTLnC&(oV7G9)@|aziO?Fn|0cBjIJE1AKzsOKhQ?63
zqA(8anjz4B^6x^s=3FCfUHWfAn|iL1KK?I4!}HVa3;E7UjxE_rY{olNjPsd6bg&cm
z1Y5U#z&lM2ixubR(*nAOaV4u*ag$LpCj2%@Il2TX$K(&2?E_2e*gC^|D7O6PEmZGg
z*Rw4?680Pt{2$oSiI%<160)S0y|9$<ge|G$U>3MSWhvX8OPM%O%EW<EM6de89(|dR
z-~$eL6r=)8k{G$F82s`yvWn8x2^Arii4&zvoG4}DL at A0BYSn4#yH0MgO#Ij67BRRK
z>L$o8P*uI2y6|jfjO)oon`Gw}&PS#K8<|Arsw_Gt`o0t&UuI at 3MIcUI-4bpsTHg{L
zmX(*7 at s@}9$rIQM$<@r|4$09H6FLsGI at S+b+rOyh0_!gyL4mcJ1Xhi<pm at ukAp~}~
zXeW{@QK(}lNjM2)9|L*p;h`W$f`%P)>_ng>B_&XP4B(S`faie5`n4B5?QQbTQaoFj
zxQbhay=VC>vEsr(WPYnrN>2D~lJfOro^LAf*P8*_(l;5QgX9HNu9kEInea_~Y?iMt
z>i$dMpeLPP;gazYE>ee$;k(-c4vUE)$7p-6-Hsw4Mmo}VcIs$sbMJtSvQa6aSg94W
zjMSB63NMGy*hYs9Lq-}2DE|>$6C0xO9Dw)!`+(J2v@`4hmh)8)=L4v`p`L`DxEM~(
z!PUL&IrO%LFg4R at 0X@N%(-Ukt5h26&SIGY4vp=}2s25Odmw#db<w=|+ihV6yB{_iX
zm8lHXX+-+ZUB`ZX56B<o(Q-Z!S0Uk2p*@(ZzDu4sEG;E;IZ{-v{<4SnpWCjo{^LSS
z<YDVust=t|@4*uqs{0mMT3Jl0O8+&((eV3A2GMXUMV9&())@@VKkPbt^gjj(`0)?B
z(k2WBdCrw~K&*U<nDn|n9m`i62eeC(YIdqtr}VM+8 at j(nXDS$|^~QzWZ(H4VvEr^V
zzCMt}rlQT9e;2M+;HDYO+eGHn6v=V&K}&sprlsC-(o)=zk3O|;To at UJxmX$U1A88x
z%yOgyzN3B8tz)G9N*SF6^KVzm=pdMXmsnZG*mwSKsqt~{Or`8j%A25+p<76~l;Q$n
zrr=KVc~8PY`6HAn-_CZYOU>yfsaDD#1No=J_#T02<Iieo-QjHa#lAihoWgv4$+5Tu
zq#KIYfZbsRGes;_ at r?z?OqyfOe)L;o98*1hKrl=Bmvk50pY2Ws(0v5DyH;?U2Qc{o
zA2j2>h_wNNtkwjua6 at r<$q{@sa9=N06x@^LIJxL<K+q*(#oXU#H7>qVy7dyNvHSNY
z0iF4mJ~)x?`!8fZh<PaJ{Per&4289{f=do6--+9lXeG4x!1<Yg`pBQ4YaAm6qZq&|
z3g0_|bQhvTMS8 at kgTdnLi9vMY&Fk0aUt(0P@!!m!9V&-3Q8-5|j_0`g{4wU&%?NE9
z{K8RUc(OKFw=g3Dp@@0l;k4tnuri)2p{5C2hq_28j6$#<>N{syzaWQxU(DJ`jx;9N
zBltV5O#fT<^x(VMWZy#;^B{LAVnuc;Mw=*sDpM_<V~QgK$8gk0Dij!DH9a)vs;KPh
z3eEXPG?G_uf~2nL7_?AvTJfnBk2)Bgv1 at ulnsG>)V3ADIqs}h->BR+*1vyh3nclzS
za~|bIUe*K&v^`p02touZ3&icA>a$bfzfl%>p|HiG&Z3KWEpZ$y*^q$Rp9VQssL!<|
z*XO1QG(r9z!4pP(ko>4Ey0637Nd9JFSd*i2m%q&z8XLrFgY+$-mn&H>r4|aM?C%pK
z44{iw$F;)rf=H`U#9#vbp#n!UzzyA%a(aJgjxFjxmXi1$Yd<aevq(2eg9)_1#^moy
zasN6GpdCg`GiWB`?sykN`R3E;pExu&(cTK-bqwg?p^Z*ovSf0n_-jqrKftx^Abfnt
zKUCD$(!R%1U(!Ru5?eGh(-xJTT{PF0Xykf;`G1?>MQ_DtCX;4n37ZuY%!*lk1n5`)
z9*AdKjH at YD<XX^)_!fEqYGc!mzUb1R39<49i|lNpJu?qz_Q5MPa=8%q#>X+TMj<;B
z^Y_5|9OyvKDA?WF<=cR7TZ2*e4WxSjG!GKnOJbndh>>Ss0!H~W6Q?nYP at kP<qWeh4
zONMITB)OxO%vZea8Y^i)C5ap%W^2Kwc`9->Ta({wHIT1n_hIVk9jU%Pi&XTI`&X=)
zJ7UcwLo)(zrn=2U?L4?v at w8JT^^C7Yo<fy{s8~@bh!yidIGc^C=#ujg^g$|WRUW|b
zE5@$SJXi|tQ at rh=X(dtFv07ZQ0u3Ub_W!=kjBB_plp)KFinATBBx|6k>}rD*Q3$ja
z8f%5$p_yqw0jvGhoY<~505H*CNf%M0<>UL$_>Y=H!WtZ at r4ddd_>ai~hl|zz0i-!=
z6l&L-3L*_0AMo4OJ)<B}$$yvpzKz}hqZpXpm2UqaG;KO|HFRfMbkPsh5+dc*^~UH8
z&=0Y~TmYbF06jrJWY=mI<Pu~#bMX{Mo983QtT!2^Lr!Ery50_+N4s_#F)aU4kzc-|
z_jN~m;l7U0SPPDFnh~3XuWTHqF?2PpeA?e=ybWh{<7Ghj7-{XJmjoEsPJBixh`c9O
z6j6f~jLDlLfG`O_q#|0$cUq#MX*t;1qRHw8dO%rSZ-^G+e>g!E<{2>D0?EjSI|IIO
zsLs`kCuQ9d^)v!m9L_R(b`w$zH{gGe8KK*kiW^cT=S!-SqAn4U0fnj8Q7cF-m4zmG
zFLXz8!6|39fME_L=PO9I`z6QA;RujUm0U}IH=-ieZA3-QKt)q9Vl?0>%%})&(y1AY
zKeYN>eIGmu(T~m;vThmh)Qc6)Ls>JTp0{8~tuUlF`H*lpuk$&N&-=MRpZklWuMoB3
zvS##oHb8r?WaagHo`aOCtQluLPhx*Uki0P~FX{<E^2=GHM6Q<$!!s1(e=tN9onq-w
zJG~znClNIBbl|{=_p}2o0~z7b+~TiKnOGxMHUauhf6SJb|ML`BVP?LzV4>;n`-$Gr
z1w8a#J`Oa74BSY9RCl9)AO-n2G?`xz`AAzz?+zDlo|GLO=?#ug*^^y5a?&=j;wB4v
zuwRVY7H3R!-tnQzidZR6A_K2xlnb06Lh_aLyU~3gX+CDBN<nnN;yaVf!f^vg-_f&T
zMNXP at lVy@g%1P^f2 at 3$j${Dp}959!djD>#eas|clX-QqDcBu_(LocXB4r=>3sz%<B
z>g%;gp`X*OcRLGsrEDcHxRCH06hi(%K6Sgrz%54H6xvx`Sk_j%^HUJ&QH#?*Z>YV5
zf;yjYNSto;*O+8iUAWDX8kR#C>r{S+avss;G*HUTM!%!ZguiQK*N$R)uejQ=(N<k-
zUqc~ME1VngjUp at tpP>t83Y-cYJp4EOu=t&y8kyr?<ymq}OSOQP^eBQK<6+8<4RTNT
z8_N|;TVMmvnEDV<<c{!tJ1mr-ICm&T%@}W1f$7=2U)<aqO20^PHDbUG+)9n%4pBZX
zRyM=Q7HT|(2!ge&2qj|W*m?L8+YCoq$(SRJ0Xofz0=IWo+hKQI!Q_Q>Bo3I*RP_Q1
zE*?WEYW23u7?IpEFa)1KreehmBZwAa#iK^TCM40%#YT=o{E46Sh`Kcnsn~v;?%rJz
zIYko)LqK^rmfea2Mt4GStrs`<gao^>3x<V<@^DzSNNKq!U9{z5=UwZeTjGjGX_Z3f
zXG7-;QyJB$_%==a+xHg!wupg0m<N$jIDw2_*O3wI4qhu at MrIMs{pX*J+uw^7DRBBQ
z`WrYs&}1slGeUr at 8?~%33*bDce6gL88mZ=st4RS?M at gg}%Zcfo;fU$ngcM}DlB8W0
z{u}<wX at _+MXh%NI<N8(v7f_)Eybx2)grY^w3hUhFcMv9Tgh#yoP<fu3*t}2P2h(M2
z`PYb#CYY4|<20DVtN<{QJN(xF(5RD=h(OB{36yan^^v|fnZ~B9SM>k3Pxqb-a;R8w
zo6#RO;r%bp0i12{C!f9yY8J{opd|v8?ibetQ7A9ApCm$EgFgn*Do|;&63k!^Su%Zu
z1hY~EG<-5fw0M&wT~r{YP&D`0ALwoYjF855N0ggFkYXraHlYoUg7Yga;J>_y#0d-1
z at u_@h(XHx(XNdoNpm?cA6^{4C&G4fUd&#B-m7*Q*fplsNE2IVxRz(uYlVKg at V<%t{
z`M39Tbz^p)WX?l%SIO}~{PTVGnQoMvAmBLPN2poO55zU$EGV|7I(0Xm*%`&>MI-BJ
zsm<q0?Rp%Itc}JtbTsWSnhf<-7DHayHlHq*6Z_(if3Ar4r3Cr{KOH4mPCxa<&-=n=
z3UdA0Z0&|(D+no#gp?BaW`qk+Q>5g4gbHYJF|@c~ZvKdK<3F1~W?FZzSI_hi@?qDg
zQM?}#VYr$B|GW)o&$(CJyw|uJngF;C1{dbs|2R$C=sd~wu2?ZDPeK^xysW*FV=vL0
zb8i-WgmE06=Lw&?hVbJ<qW at v)0CXCk!2#Nu<%IrGd0CABCd=uQLd!6PL5g9-hZymG
z$k;6~0;+`s0^iFRJp*2tT at rO&!%S=hi)8h_ex{E~_X!!yA1l+xMcv$A0nbbIok@{g
z--xBJ(lWf;LjJGOW+`xxnP~dX0AIe6sDW(HLo*jfLmB_Dd%8rwY+&a#Jj9ydG?^2n
zKZ!qXi2sQ?x}e^oMr;^ch4#dXf;8VdCh2aAV3G>bx_|!-$R-7&9-OW}Ny!C?`bdNA
zIemSC`$r={T2i5jIQ0M~Qs?u20|R==pc~MZXlPDX6neIJyQWW|@Abbqx*8SZb;W>B
z25db**g_@}gRcXnulyN|B2{t_YRCjzkM%iQq6Fvy#t!v;8w%-A<c%Tz8^+OjJp->m
z$!UCt+eL at i+u^@=y2FC!hv<VYum)y(d0udjXD%IBa#H<0)(2-q#|JYy_uNbSb)T6+
z8^sRHo`!_^@z;%Gp>uoDZnPJK(a(~}5eU!6dquR5@*V4w<}vl5+_Zt+Qf^xJZ&T?o
zEtYnm`0DA1O`djeAE&AB`W{NPuuz$bYeKMzcW4spkQlhff~;UNUWnahiMdQr93Ap$
zyQ5PE3|*;`J}BS=uVHdiC8Jo0UjK|yN2k95MBxs<qss(^MgKP`<k-~&huFDh*nf<T
zr~~5f1Gd?gLf#RoV9j2wcqT(BSiTqGj$SHOrq5O!nY2mIwp2wybe!0%6iveDT`SKg
z+eKhIR$@X|!-rUb?-~2gC>c+Ql^MB;r%T2JDOtMJNT&3F1K-0q>R%%7bxgp)O&B`3
zMGvXZ(%~O_Gy%BiQ4r&f at h)Y|W<cjcH}^{^SO`iS8I)UKlIEfo&|#MEY8#v{NOO}2
zPsvJAhrI}J^ds5{E)pyDhL6DM^%#(_5g%}jVW|i at aJLC@2fqP*lIsZMG$9rN^8gDE
zJ*ZO*MUo`fVV0 at 5tgt;7PnixJX)<l}iv%(FL;A{17K7{-ECUGC4CAQGfmIJ<%1MIG
z!!JQ9fYx$=1;80PCs`^;BK3T31bCw{hBf&#keS^BBlx{0kAjE;jZ2PW&=KfBF06 at m
z=GqrFHa-@|F~v2O-my{`hT#j_uVr5#0eAQt%zz at hvvbkk2l=N#eU!T_>M72j0fj{5
zwT#`VRx(N)54$oW>Tw!TKbVHQ%UIl?7o^4K-G%e+BBK7j`XW7TXDF^Nu`=HxnP`?w
z&;&AuqRz!DQ2s40>5Ur1KvF8j$ODF)vW*TlMdKAu=ES`)ZUN{vELP64fE)=6Bowgv
zkaNXe-W1n3dVH&<@fss*2NU5~74>BZpVS4jMkwg-p_ri<aqB@^C@{jO;Q6?iR at s!?
zWY0S|wK%CMY%+~(7EO_V4r*v8Y6LI(p85(%l=NMI at xypqPtrQL45VHXd7V}`r;C+0
zS?qw!yHdz&>pQa|@AI{^bW|LtPJ|9qceOf;4*FrfoV0~7k1d20SV$bhjt=4#wL~eG
zDIO~#T0RgyimF#(V@>gtTP>an;5Wo<Qi$0U7%?Czkz_b+=tBO!x(}p~a>WCbRzq4_
zAeMIE0I8{Y)YL^VENB7X=U6-+Dn%J+&mQ at RgFQ18EZu<t#yl8RRTzY^U!RR(Y(KCf
zr&V?}`;UU4oMW-qhygJL;WPsg`rAa(Ye;QGRVoT)RV9kR;^3 at P{iQIj7D3ePZ?n`&
zmjRle_J1uzp5dLkJ9TKMl3AzPK)$4JeW%{(AFfkoty4EAQ>V6KwTZ{^4m5)<2UBap
zZ36ydO09vGp`WIz>#sK$_V-}#s=rLucknU)*QSU<ivy+$$x(716@%ZQrte19UyFn(
z1`VY3g;*xy%wxovm#ilDb7zRiq9-J2EPBw!^sqU$G2L$-c4L~Z9_*neU<W`)xKc8;
zl at Ht{FG<QbQJeX|-SSeTd;y!5@)<L>uuUtOsDpGvDhiTu(@II)w4NlVtL}BfY+8yl
zb0_UohmhOj3ZyLn?=tE`t4*|P0p(jm8P at QZRzx5yt4Y8T;24P;X>5xyN;etV?tzSW
zE-FzvCsUzJ4q5mQAp=vm$;?3~0cb%3O=$>w^M0i$6A?qZZ9U*|qy_{(G!O@!FG#m0
zsax1HG73iO?9=2>+NcywU`<}ckMbF_)!TbeKuh2kOt854bc_dA<flp|;>5X{U{S;b
z3nc6ly##%zU_q{%cHrXnWD<V_HiF#PSi|KAv9bwI2AlVXR;R^A253T^2rE0&o)5AN
zP;_OAf>v+lh;J}^8KW-h#{1#Kjr=a^lgPL-_3H?oPzy}dK}<@bON0V}65{)`r=r+?
zyWrV^`?Ke-|JL68aFh!yMH7hXV+84sPY%jKgD6U$oo|wEH8YaHGDH at -eD$({VP|W)
zdf&IY*)r2?nP9fyN0O9_zXT~40Ox~X3jNJbmU6Y#=47kQ30Rvz=e)$#RxLZ)i?cyS
zB&4?otKDm9M%#<o0B<zGtir~C0|F$|lzvRB5Aa>NM|L(74(}GQL{j*e#aK%Vvhtwf
zY at hf(NyWoZw%iCykCq at EtJ~?Un}J6BmAL{Pf9pdlO)>d1lwpBN7)Lk0x}dkXQEkR5
z$yk1!naVd)`Alkr3JcOrNh-R6P>{-GV95nSv79HU2OteqQw>$im$OYlIxwzAx=23G
zcPL=I at Kb$+balqZ_+(7h$u at D%Az}bSE)11*ME at Hni8q^l$kRSIvP0_{60o at ZW0Ls%
z8QH{{_!6XvGvofgOTE9FF127wgAvfRi&<@eG}=yRzZkjq7@<3H>l?mYA5jMvvOME)
zD~E-x={VuzL%s>=UZ-x2cd5qRiZd=|;e8O+Mbe4Y$Km}8HS>+Es)<z{*L at 5)B-YM@
z>1{Ob^?&I at n^~MxV-5YG<$#qZt981S6W^yq|J5g=QPR(fT#o*kAqh5QDVfVdPLeor
zZKR{}RK;AQ?@ZL46=-rdA-bXaM``#q@&Qyh7b|bI3{^LWUZ4iMDe_m67`xzW{h-O>
z2thS>K0x?1 at eA@Ho9i#sWyk5<fc23vnTa9gG5Ipjr03CQ;)k<N>8R{6x*Bosice-n
z;w%m~5i|tsoKc&x5liLJ7<jSR)X?^)%})4?MY_qP-oox;2`6+i$)&15<7!rP$j~+M
zs-$Ze at oK@zAyTrLNy+Y1kc>V+$*A#PSPqe<!P4`0RVy?IO%-V3 at rE8Q{TG4spNCp2
zo($R^QzFfSYmZTzzKQKmF#-FxY%L)GBr3KkA*f~qh5Ky^0R-8)egw()(Qk&4e2Y&E
z!Gf5G1p%<|zc2PkQ#>AYOh2MiteB1uX5!Nc_a>u#y;iP!kim5ia+#Kdh14S`G)q>n
z+B3<AH#18y_DruJ2J+4L0b=HA`ml<DPf6K}9W%Ay&lK1i{rCENl09Ei`ETPld5SkZ
zaz8)sIx}$y!|u9x!U61Kng68#W at 4e?3kc}hwW!lx)V1hw^>%!v#QwAx{{QNaN!K3@
zVbrCCrg)c%I-yrkB=S=x17?g2Q6a{GEYH!kXrKB}{PGTR5Q?KKGFiL-!^1DTJSd>Y
zr^GMC*;zomvun|ZTGw<)`qBT|7d|>XCSqSY&koa<N&iAG7#!?JllqDdh>L*02H}4K
z?@Vyj9FSW|j#eY_9hr>oa!m4})W+}`!T)(W{x$iJnNu5id*iDmM<gVK=!~{I+-u_h
zpr#OHhcZYPth&QAezL_8p}0k<jj3JX0aI!h9;gN6 at zou|_;k!}4!0$zHij~uCvc6a
z%`7(=^2Cawh;$i at xd6Di0HYRH%#L!|etN3<kN)_OoHQh7SLC|laum{vtn$8+BbbNU
zB)h{sLh5d at B0ZB7OHvzsM{xJagict(lE_;yA-Zc+Z~stCMJ}XW%SyWw at GdsNKzkkP
zto~tUCsRK=2{ZAzdP#pQT;WLif^Y`44$&5zm!`PVfw at UVC()7QKIP}OgYs!{bC11m
z at kG6Tf>>e9^M^rp%C+|`IzblqsCbp8*dzy5t<OtEms=;r%_l;_M_5D38znCm67S`Q
z#^)3?+rV at MH%^SAQ!(9woGnrPN at Q2UsZ(J!Vq6nnZ*pP@&v;+2nUaFttjc+ at gZDnD
za2r=&;7~mKY*G2p6mQq!YdL>0=M~^<Oc-yMM}^zc!e5%hN0a=uCZf@>YR1VHOj2?_
z)LQfbhXjA7rqt(J%=NixMpP}E3o=jqhT3J3a|PD4*4}&PY%g!v*7ilpNw$e!2u3#8
zqNsIjE}%Oga~>A!VlDCa9m4NS<{w+ED6}Ac0u- at hvh84Z*d%*C6oX5N#4Hq+n6yP4
z+eyTmYo6E$#{*Oo7V+RDRyejp%Ct9|^KI4kuBGXbYqPgwC3}~5v@$2y9Bf+tH4JfS
zusIvDzrqlWScmqTS8&TJpxq0-F_FK>x|v+TH#-%5yM0Uzr%bGuJ<amR$j$Kc)177m
zyJiP*(AB2iNBW;IqiE3X at 3DHSVz%ucq7T2#@5|2Whz$V6<p4OBDvml^)9G$y=9=dH
zeQ;D_uh}UDzz3Ywu<GjU&bmc=Nk5pIA}StBRTnMRbY&R`)6Mu?FV$9wNP5S*_V-w7
zBj<}1CQ3HRjk)78qmDQ1-ZvI~sf`Scat|_%z6hYuDDTZ{?2wG(T{)7;esa-QYA<aE
zjck##?$^tXcOySg9F4Xnxev&q;B>d_+(P~KZUNrDMH;0z-i<mM?T*Gp&1&U9V*G`4
z^utVE%gHVN((&|EGc`plTSjQCR>sgIEXVn{w$L*@loz#ihh`u_o!%FkYV{vU3C;N)
z`V+MuT8z8F{+{th$>i@%5d%*^rJU*ck<W;JX<pGCVxm4T`2?W1n^4Bv#5XqAN;i#?
za|8vthEWxuQ^X3eWz<)kY7OOaEk$fOovXz{`<qz%W^6y%{T<*w(E1m=J=>le;a3a&
zAs_h!a9;<(Gct8Rf=9Q0#pU)xOs$B)6cMK2P9 at O|;2dG#4h;2YKZ&`mL>HoA$?*xu
z<!}g=;1vEVph`=i8n0msVq9q|NL?pL+G61Xr<y#cw0v|8I at RiF4>XA~MrsOW{4yk5
z6-v)D?xlqkvBP?4o_<3fz1ulH8S<Do(jOuxSV+$1=~5ci%#GF;qzNJ6TO3J!!KiF}
z=1kQ8(RzrzLG`Cl`p-idHr9~~01XI7>kDh)D`?>pX*z;7g at j)MSSy09VDlAdde{?6
zUmVJKox!-|9D^Znhlh071R%$0O5X*7dK=Cvb<1`zBHl1PPkYluaI}IRpc2?9l(>YI
z&_97Xn)T%mN1laV7KDT)q4dnyV1J;=U%K%QgWtpP(F=6Wih+TqFDoujXgr}0ym6}d
zJu*p;%{x at J4_9%7X&y47S~X*Uzo(FYbQZ}5RjQOs-<f3hB;OgqorHeB%W)%gU#nyb
zwkG55$f)wd+-_ at Ox7FWavL9G<f`VmWi5#s&TC6~_RzR68*t(5-<$aOS#pTm)$OrZ}
zy}MB|-T)tx(SB%Agi3J$DG0#dVTRh at V)`KZ!}Vp0-fHWP$pGn!MaEZG+^CY>BAjX5
zkHq&gwviu3PBRa?v0rY9%$gzhTw!2V^`mFVsIfNVhSX2;<ug*f{0Ubh{a^mjzxC4j
zH%P`Qo~}iIV=Wdld=+9_QEKa|8FH7dt$Nnh#|82UXzSzQ;lYl)hl?GB*ynxnJCO at H
z|GHrY;P3n!a9*M6Xl%QaTz|!fcgYOI@#q=D^;tR}YaB}0?~z at hLk8t(a$(;j2Ic~L
z>&{=0Ee2k|7l!<W-E~%Xj&CQ1aRFK2r^#sJw3FGXj6!t}lNdZNnVcJ<EB{i2Lypx$
zrR1+f7~hf6h%r|eT!CKC#Nhh~_SS``YYgN~YZitmtw(p>`S-$X6($j17_YS<2FWPC
z6y1UdV(?J}sp%th*N=1G0nA9sqbCX~Gt~?;P>PCk6xpei`=&})O7Ai9SQ^81 at rf>s
zShz6peYLwDT6_%qSCcIU|4tv{#NfB|VG)C41#-|Q2J`5{C<a#mI2 at P}`t3662No<x
zpVp0WXXDFxQ417(oqwC)`xC5IV-<q~@KJJ<ETZNqx6XsP3En4=N!dMtYB4YxzNJ!(
zp(BOGid%mVcnF+?o=Hzrbe+cTBU4kPQWjaK4pIIzj#ZN~YvfYYruWw^#C67p9mlze
zc0EEUhBH1197Fvd3d+kdJ4q>hh<!~^O5N;hd<@&;l+p$4YphZ_pM7P<W*{R}n#<=W
zRGP)-CsexfT=P at XO7o+pQYVHfuw^_e at YqNNqCaE>isJGQ&?Gi3R+e6QuC}k}p_+WM
z0=LAXyboLYl{2x at Fr5M0fG(cXaOHp0N9A$K18BjZ_jf*A`3HZ%#(~Z=$kl%*_h-Iy
zG`bG#*M`p{|5$iUEb;C>@?cz8Upm1AGzw6VAYm0=ODi+5%EU;NrHlhQ_+3A1WP#Sm
zZKHMT54(|r4%U5!bD(btbXXnLPv`qmjE58|s$y$19ug_NYIP@%sdbfs_jcA4Lo7<+
z(F<T~#eE}8?X=?@g}}6K at 7LqIE4KPO&o#q;K>#n{f<Wi5<bepmjS~YI{W|^9;pgLW
z-Z(I?Z~7AEFH~A`u2w at QcukOsccOjiu%+gnV)IQFsxKIfJnWRF<8d{;E0^M$S5xVG
z74igC9SK>#YG&}BIWt0m3wePX`$i_EXp`#hBhuKqqm#$vxbA#L5qQhbR<rtLFS#%H
zUW^+{vH8e27iRJrfMoXe4x+vLMApD<XXEk<NC6;nW8{p37+S!z3x)HYF5H~PFS`K_
z9J|o-;?DCiVe~G9Pp4Km54vHOwsm8iG<&c2d$wwjU(wAuI{t?LO#W)K at r1p1X@qvm
zT^LenCtlPSM(Pve1!S=M5)}67$^<1TG`qM!$zn!k?#!uH_nhJ4M>IIP at TlrLV{)g1
z=;b*K2?Cu{<O7lO@%|{+m;+oS*8~T7;{ki`qOTG_K=EXK{TCsDIgVr+NrxhLiWT31
z4Z|o_++~7IA}M@?boTSj;bWv6oiBt|j=}A!<On_&O0!67x-k^U#6)@T6_lEvgwMbi
zve)2S;c(g&b#xlvw|hGmy{P^Owu-oX28SQ6AL`QdLovbzfVtKH62zdpB)`{+J|m#7
z%kts-|F!of;87M?xNv<TK!8Z1f-7o^L5XbLozBupXHQs!Xk-%?3{BEWTC&*-+kgf-
z0opd2aRJ8-a8Pj>MMXqW2!bpwBb%BTQKO<J1~o3jBADFwRDD}_8e#6e|Nq?oe{LRL
z`m62KsZ-lIRrP&^esGR{evjEeD_3LsF1w*mV0tWBg=6~Jde5F4h|yl at 9TOQ!QS$Ee
zPdOOq{dz4I#Q`n~TBGgo!$gK^*}wg%y~lIXXxWk8Uan1Ho*sP)4rKX`OLu-7vtjxH
zo-*J)xa`u=e(yn<MEeJgf%AjjH-;hOgQ%$r0x_mfcjh<qtUk8B=Pzh=UDB2=wofP=
zluVy?<u~W>&4*_9CH!5Jg2QoCjQuTrwgvJJV`Sdzt2`Xh{)unl;a)LybiQfXrEN#W
z3mTE(a%n*>pJ?H_Tv{j>i^%0rT#TB_A(6|WNaV7$Hm2 at x{9sf5fxwi5%OctW^yPzv
z2wc>tUk_Tq-*=~~h_dxqmcJsVj_zAr3&n3AuO&Kax}2{7P3^HWe>-(Bz7XV}vg=6x
zib&6e2tcdZj*OQ3CpYY(HKB%P`Z#Fq!sWeV_@!QfJ0q#dEZj(~(<a5#J;z_mT#hzD
zpEuc&zokq5qH18_M(e^R_r$=$T><2A+ at Jr@(SP~>=`VORX2V50BIpCo*8E5P`E~8*
z2MX%yci&M78Pxfk_qRkv#4oI)50QP>mEV*TDA;H%XmY))+3&vX3*_}BI#-Mm?ep)A
z+0ZL~t3Q92e~-VQ8Qn;VZ}#UO^iO{ud`6(K)PearlRtk?TYr8su<j_L)cTw0`1Sr{
z{JUlOwS)7ww9&`KP$WzgU-G88mKUdBJMDQ#$Go`9TCmn%utxX&D&KAN%E-Pz{#w(K
zqh835&UW}efjKcrlJ*29zttRA at YXJVKwy>s7_wd1Xx+1Lthj!n{lY;0s%3jo?;SC(
zbp-Mo<KMPENC6A4s^53#*Zw_$g{zJ>FWb7m%YQ61%7V}M_lG-Z$*V`MzhhaCz?3z)
zUHNORQ`WXQ=#}{VEoa+$#MGCNW?0PMc3&O=&nYqWW5}zpQ(G3x-yS$W;6(x7w&t(*
z=dX+L-OpQHe=6B}l*?c6{El8Mu;9U6fm<GIrh-_T7mo73-5wLje}37&;!mLJU{Nj{
zRR8InKlq!EHpicUR1qd5OkoQSb>*)g9hkDtI%R$P<GSw+EB2yTWs0WPi*3C;18tFF
zMa#E6O1n?Ic0SpQpA*mLn2z}0^H1rpe%yXN#C^7GG-msE!n~6De3Gr$i&FM7dOzU|
zes(N7H<#92$zoKpr5rsIkXsk!cG&t!dm_)RL(Xjny+qRI<7~xZ3{Mf`@NR`-AeA_8
zKUb_5pPMVr^CQ98+15_i4{iOZiHbNFgwD<$9hO at VM(i&XqWb$nh25=~+%__~dvhCN
zHn+DuH_=LQ`yjsF_jW`s^`M9xGWoS9>#wdu>gvIGef(a38lPhN_tF}wl%2aQB8Pqv
z9+86x?Yam9mHo at DXuIz!u at LD;nNi(+)R at 5eb&Q^hz$C7;$1-o3-cF;1F2$tV#AJhy
z-ycOr8o$GoY(b;Wge%dRcHDX;)9^(}HXlFccGrNL!S485>UVqY3%cAis==o!S$n~f
zj+HvEdh%cXUSw{Cc3G%Up?r!8#V$ZSixPqJy3sUChmAPrd>)Z&q48Zo`fJPvej59f
zc|;$RlfrbNX)0`_o#)As(6v4dwr?7Ii~fxK!sBWY$dY<iGu#w?JY1^YC)HGBt<~!7
zuW<3N`a|XqbIvUx_E)(0uU#O=hjoy62JvqgNH-}{bvORMqAw1O7 at 9+8fJl4&ul2==
zr_~qZ{}rq%Vmds9mN=bjiJy~}_)MFrOME|P>ShDvGHKD_Rq~w+1<}yjJyByf(`}dD
z0`v!KAV0R@!E!Qh^PlH?5(DD8_R`%Qo^$BJ5^?hx-6Hwu2*ws|CrbWieo-MT#kufn
z-zR#B2s1VDUeE9U-YqUi-Y2d_j#9qjOV^L@=Jf;4)<lSxN2k*@t`}ltxHO2N34)>h
zi?&llR4aX*@vGsKo8qC`2jaeQx>ZBHA)SA at _kJ}$Ap&&n2b$`4%b&yX_VE`)O>cVv
zG^d-Ig2yXypQV>4I-(^q?L)Fl153t=J2)@lTtXTTcag;p$zA0Cw{Lr_e-9Uv2<+NJ
zA>MC~jIN6HwveUOqF7q)9$eo&1%IC2 at _fnJ{BD at KpF{E!cWuIq))%P1xLXvuXY|d}
zyIO8m)5AuHx_Ns0a^-&Yrr;Y9>yLOY3*1`aZ$690W&h|3dh1NSrtT-Y?(x<N{e6i1
z{@v)n6n=Y6L6jf*WPa at Qwg-pF-*-4g_!NCOzrWyOe!pQJZ=$jO#bf1L$`(^0LhDzg
z=oR46QLvEp>V}Pj(BP-~Kc;(*Nqy&CSlK^_8PiqJ(U85xcg)(5{bbCFw|&QY#w>5*
zQZC;SnQ$|mtc;A=P}_m3$@P61vn(<JbMzu|(j%fw59D{`);G<2ncwK<NrqSI8(E-E
zfri|M$V>TUzEh~- at jIWETn%+P at 6t@B+>5*{I-&iI9g&x+9_szzR6g(>r*?-6j%HUd
z7R|gKIQj*y&!bgI+Ounj?on&KBBq}93{Csg_owsDmX_rWY^}AOZSeHU@%`Taj`oI}
zPT#TUIn#FJ4Qyi#k!SP8zx-Cd_QQS<4REzB`(3B6DU15b(Rj4QF+x8}yTZGaf8JEc
zuh!NBgRl#2Jj-{i{~aCTo>27bjTeO>^g=wpkiIVxs@~L)dR<NPah&MM4Us+k@(tbO
z)9pSLy04zMPX7KQHPEX;yJ7l6{(t*BTKiF(l$WfwbOzmh$lE(8g99Sfx+*AGZvUcx
z8;Lx>3-qGE)C!u&AaFOF{Q{%2NF||bEJ+r3n)Zd<zn*t4$-BAMc5aBgW0u~_sM-g9
z!Wt0ijS)gXkbE=0#dmVBtQHT2(9 at BJ=T2IJj$)qL9r>-shUu+4^4nM&z4}Y{72X0-
z=Z6t>?$Gd}eq<=UD&w8!+iv6o(d4-3jZ=T%7o6~m1^L&BWC3>VX~Rt0C8}Fg1J$>u
z7q9EzWVWtq7z+c*cbv8Nr}<Bmzct6Y_s(BX*zXuPZhIS|mbSHR>J;lqM38fH$<UDd
z>rY$1!%k}Td)=ScuQ7c6iqYa6elf~e8eDR+Xk^LB<Kve$p7aRhj19N{#V?qMrYlwg
z*Hm1-3p4MpUH+U3G49CYHO4m#tc`nU!={m}asRT7{D1oJvA>b7GgJ3}_>1Uk`ODhg
zi0Rv=cYPUhpDTs0I#u{a8p}9S{>2CQyM%NFuAYAIeXp_NzSp|@Nm*J#tkGrZO`cTi
zG5?7<5&ms~CC^KI)i)~s3o&0tQ+wJ!1V;Ab?~C~Hk5fYFaf&JZyS|I|d#J3SlcCXB
zFVj)(6mL{X#6P}=r>7Vp`ecZ{rMo{nnqQfFY%~A#I3mz3+3)kU*iFNUW~a5o9pT?W
z`bl6)2b7bByi^0vm=t4w2lG)he&5;xx(Ktw_qG8BAKjSJtFe<-<p=w^dd$w)nIB#I
z1HWyWI1v}o9-iLz6 at 7cMv6ko6dv?D!cpJW-i#+HuQP6G}eNx=1eV8Qo%)OlWTF`wO
zblaag)&1Ds*g$SMy*R!$R@?@>LGIVBwCqj=8ZB|>9QsJC?+~(no$gK85ov_pOHThQ
z2l at Xk^uMo_{tq1Bwoa^UcKvC7yOjKn{2r8FZ#BO^%Zk1`i^p#H$>(PmMg>-G=ga$^
z)WA||Ie``H at V|AB=W5u(TdkkF2h;c=jm{=>@^ja3B7R8wxR+W^Lu9|SrMvJj`<9Je
zopc$ebz98R?R=Q(M_PYi<vLN<k$ziT>zE_pf9X1&<#tKl(%@5ZRO^YsvK#TXP`uZO
zuE+)*?y>++=jRO5<#F#z+M!&OPh=EW$~)2u-r_O&NzIB{`{-Z_<*l8^ArgCdic^yX
zE1M7gAm5-pi!3lM2*Hy$ixB*MLEU}Qz9!KP%L4avVej)UgzLt@{k%N;&^`C~ceo<_
zAM<YF;|$A}x!-<IXIK0yyoYlt at vm^UU!geh9e$Z|Og){<QS~q1CQ8s_&P}|#oWyWT
zeWjPWKNp<c^SbOJx at E`5lvkeDW!FX@^G5>trsb78JH=!qTA6Na50MA|w#FKH$lML1
zX>pvg>#_I{lkHuMYhqyP+PhoRx8(LZh+hIoakJ8v(pfK8pV}=~P~P7De(tYmYE*mV
z4lHe!Ezf9qAD%C&Dwh!U;4e<B<eP80{=clbv&kkc%l~!RwwSsPX at Xt&Ymb<^Z}4R6
z8B_NI`JCuIyJzQn%clQIUj$vch-(?|1(wofn1KNeHBGyn0ZYT(_>uPb_r`aa_KiLI
zGseNCEj;GZcw}koJ=>w4Zp=C|rY6F_l)hBuP2!~97o<`+jbV`ulkwo+%L!q+;N_30
zyPg{|F?Hkk#xyuy8YgLDQ1wmSSM!#aHu|;@n~^a~M<P{c)3R+SYTMP?_c}#*M9k9j
zXu0%rIlk2Xqkg at MK6gMT>3w`#@O~=SGG7!Q`h8bZ#okYSewnYYq%N2&^Ysx9QTk;*
zu?znM)9=6Yuh|9eKg{`#$l?2AK3-{b!J1eMiq;l`TDKhUly9!*A at ZUTUpwKc<d%Jm
zHWhPgU<8gil3SJK&92?VTaKsKk=&XHuT5E_kfV<yt9E)6{~p5hw!iR~cAMzK0y%tl
zajNJ7t@}QMfL at K+a6d`C_V=E%$H#1dt<r0btt+mc{fI`OU&D%Q{pF-ccQpvsZlXlJ
zV(LDXLi8<>>o$tG`q$1bnSA>i(-CA5Q`bOmDg556{T*^gdVdpnj8-#gkTZFQZfoe2
zV(z_|zsD@|80q;?q<fS1;n6(FO>&a^lq9!C1SL6u{MsgV$@`0x9{pj42#l$x7ymI^
zXyp3I<Z=~q)VM@>BR!w+?`skbNgQFV{XHV4K1!vrdo<rR-6^Km)~*x$0`-`CzwK0L
zM1V$fr=SrLQ`cYNV|!-^A3mAJrV}zBPju?}ctBpJG99Vg=QW0kakQNH4xYGo%)PrL
zRVH=&JbQTF^>W^IHvZ5nraqJQiZ;D3I+&R_YHEAx4`mThBmbS4&RZ{2$iF1%L at s$g
zY&+E1J=IHcs<z){sZ{Gz^+2lI!le3(oaz-N)#dtB5u!z)5;k;-k$vB2ZV~6n$rdQd
zj<BF)2iod8`S%Y)vWu3}<?(dVoddKE;@M9vDT?<e*{@gI at sm1{(arQhmALu1pmyZA
zT!{~`;I`RT7h3NDImtGjq{p4{I;NZ3CUmN~w<YVIzd5Nr57qg9p?iKn<GhXOo>O$s
z|M?^I{Q=Xy5Dl+lYimz&wEpdwdis*D-#wQ;YU}p+b3N_x^3X8nb}Ga at bRfZZkk7FE
z#JLz!e6 at _9K+x>AcLs1R<6_ at 2$>Z`JJK;%3@;3%y6ymkHfsS%<3K#?j%fp}dfq;)@
z6047<OYgmb+_?z7+&8|$AnS{ygBpL7bx>Ca?O}<*Z{rxn_wbJx1>YA*FAW5E7P~#Y
zeB;Zb+Fzw2yhrswuBYMJT=Ju=M#X_z`-jT?oci}Gj$}C{?@- at H(nNa4ETwsZ+t2hS
zagZ at 0&KuF^_ at lWd<Q)iy?{%*K#4L4Fy6Cv}9i%v{5W1J=dZ<6!p#JP9Gl*Z+#5Ew<
z9%5+H{5Hx8LrfiAnZ$JtA|AhzTS;8)i*J at z@>EMjwjMw6 at K;%%E2JD^d{&{=MsW&U
zsgu=?N6}!9jG+wpojJq;&){L6!NYq*1`qQji=$-?FH-qNT4`g$^bY=Z9XFfkX1^(9
z&b2=Iv#`R!$|fEh9oL!->z*z>?_9KF5a;(z!AEPWud_>5#fit(RzzHMT{%sw8;jQM
zcJkBQC;dBreabTf)$%$umLpje2LCeB@?z?}G*m>!y)j>DUN at i-v=#C3Kwi^Dw#ewt
zx4^-e@*!jr_;yA4$CP(_jfG3#O|`Ubw0+>;-_|5njZnAGi+be3dl9{~txO3DlIsH$
z^pEb}XO!Dl$oIKckhEd2qQXW7mbQrIljhqZbmv)qI;gHO+P3o--S^BzY|p-+qFCSd
z??=1ZCKzkgF&22EvrAgpDk(|hoBjN^eUn%pftYsvil)7k8*w}Q`G;#$SbOB?+6?CX
zJ+Oj|I<i}Banc^^4&TRYW31BWrM9lFowO&~<)^a}es`2VH&PiAqB$q|9SR#IkE70a
z2uj?exJ_QS0RuO*(Nsm6B{30GcRA5iWB at byA<|}qC{BJKyx+#<o1(vum}I?NFW)7q
zd^aod^#;qg>}O5BOHMD}C0xGpn)k5RA>YTje3!`bU80w-C9buc^uOg?zMuG~9Ij1;
ze8<#gl6;qQ`4${*i0o at U7PI6nxF{s1exIcKNZ;Wx{yRK7^C=S+ztg|Rzpy2+{CRR5
z^N*fuqV0s`G$aR>(<i$9%j>v)zLIpi(H?*P!8UrQK{+4Eqnx12?GJ&uhP)_Y(<gif
zneU`;P>V_-HMaG~bG7q+FC#+W9zF|9KP1S=OzdiizKq+qdHfpU){W;X`2;vC at q46g
z{^^HyL|(>x3tORi_2bf_w0?dYqRiA1PJHxSGAc-a<_G)5AajrgnHl}5Qd=>{#4LS`
zNZcca`<MrsI9>VXf;u8x-xX6&UzwNrm_nN=U^FjQls5lcURutc9A$b-{2oytzU7M|
zMT^DxwsYjMRBOB+pA%d{X<PjMwhQ^UMEy&6MHfVeHZs?@G=UseV@!{3KPak4E}s1?
z#^tkf^jxYbx<F8iEpHx;Aiftyw?Cn$WT9a+vh{2pb~unvWtDbn9d+6_)KTeAbkx5@
zZQ+v5rB{nYN1f6^RH(F at 9!5vaZ$;kZL)!4`-)JkW|M-Spuy3WWR2?Km+Z(o%-at*I
z;2^byyQ9&LMS+Or-Tr$HiK!{FZFrY*|9a4R9+VWZnkR389`VuafeC9h<J;@X-n+-M
z!$<G)LMfpL7(HH at OWTgV3bG&gDF7&DuXrMOj0kZF#ACuDYS=`PXlah`xb28pX67Vf
z>L1tV$d#Q1aZ&1^*6#Lu52KJIMP)hAk5LC at _I)qb-$9%w=aPSXNhiPdrH*bXRJo{6
z5?aibtu%pwiPrNl0Ja%O9%@z%yc}X-qC+taH?JgvlZvGH3_8Rc9rp|2O0JCWX`uCp
z-PvouriDA6-XoUx$+vucXBRhWf|>uaUS|Hd2zq0yGT)Z9g59r$@9WJ!%7;y_C*O^o
z-Nt8m{UkpsFs;0yk&~ZtnC=a&Ur7e1P_*WpM at rV`?X)p3FCcI#d=U{!2OnF6f<etH
zQJy{I&D)P(?(E_#-fs$Zs<r+von2!6kpx%}wP-8P7mZrGul)8`DA8dmkxVrcf)IQz
zdXF3V)5=c<yob3yvV}C0U!RJpqXCP2x0EQV3ViwZG)WKp8*$(}ahB&I5ZrQDso+<?
z5g(X+=uM$@HRML7E#`~WOZzIS8iovwxdU%>in|5N#Vv>=?3>CJ*&Nvx6;n3{?d2qe
zzQ+u7Hd4nCq7tjKy1MBjob#JB&b?E)_DF0s<V2<|BA#aV1 at CRuT%V$q5B^aJnq2c#
zeeXYSaaEN(UpgQ+7?NN*dVU*k>_MVl?&C||S5t`|=6R{*UqU8;wq6I~+=$_PPSHuY
z?zk-XpxUUfk;IvWY2`<@N#ZI1`jq19S8^@9t}H@)lJc at 6I}P5mRb`Kc0y3vaj`ijI
zJCjkq_vjT*NKUU0ZlnQ5Y^0EuPR)G&x8f_gi at 8~}n9m at K`AD&tnns&V=6<8fr++Kt
z+#6i_#+FA?Rr7+;(Mql9c at B1Vsii~oF``hu_afR(h|8oxDk)~^4b&zki-k+AW`?~X
zYUalBwzp+Yf+gl-LhrvxNNki4VC_aBvHAus78vApe{e1Pb at r3ozkmJ;bz82~&1hX4
z$_U5a#y`TbH{nf;HMhv0Tb@?lcBw+|QXRdC;=S}hV+ct{SdxE3TWssoC2WEVf0D<j
z+^^)zIm@{Kc^>2SJ+_g_r(L?|^T)|>`Mk6l`K%_P4~W~u^PySy(=Q<vI;6{m*7yg%
z8gwHU8V#aveyJAKgRqTeIY6%V$F$&i3YP<Pl1MrQhc}1i at ZPQ9uuGw1I|DlBhNV-s
z4Rl^p=v;UPbly7=j?T(=K&M)v)AJ1I_`=fZy$f`%Qs at +(0iCq4bh>tf&KD<TI at xDH
z=hxrE(Runk&{?6-x#A4yJQtSE7w?14bqXEx8PF*XOJ~IgpwnBSGvW;BTpX6psDFaa
zmJ>3ap=Us6|M9T(wHI{eD0KRs0i8ftI$QRE&M1XW%o)(h4NK>Is6G6mc}|C&0Ui3N
zS9dx^Gy<;tU3A$nson{j>camZmGgJ?d)><UEziY)M!q at vd(SyhU2zYN#n8}b+NYcb
zAQK`#YI at s6w6r2Wzwi?sc*DcML-K>|2Q9Smi1vJ-MfZJh-F~1~J_mM0IXKo|w`)f0
zA^8J@&Kav{n5kc&yaD2=ez#|zqDfl1G+*!c8V%(<L at XWILK)AO_u2xH^^7)==y2D@
zPddAF=P!JRX>WxHD<>re)HemDU*H+)Z=_=m{$;dt=YMD|H;H3wYB6_;j}VZ0``mai
zqB^$)pVycieE180T|;8C-*q-NGWoA-NJmz%J2E8vWJov*3I8o5JSrqSI>db}C_c*1
zRsP*?M>BQ3C~9>L+NdvudCu>O4Gbg)T3KLX<lpJBexJ8(x4f4=Y0~OdPb2EFF3%8t
zsPHWKcMW)qJjZ*F_zp*x$3C&!+4^7=w1Vj;cW*N_`O?=QkhS+~%nC%;(=%%DxAv{2
zjZ;<|*t<@U`Nk8uds}Ja&YtAv+_m4Yt!KS%=-BOSk1cHsTpt;bq{WQwa{9JLEjmvA
zuJ3mTpSN4x2paxxrU%AGc72IF-pC<U>6=M0uQmA&mr!qMn6lRNsj@#l0UZ-u*EhX!
z8RGG!KX32$bZPfBbNkmW7`Qgu`&*y);F|Y~FKx27x4)T}YG-6z9eU3jN6BJXFH`_-
z-n1U<!H+$4z;6 at XU-$a at pX9Smq|(r5NxGdU<M;Q_eR6?x;=R7h6V>4OP5x5TL)rLS
zJp)7<7Cy8y|50-8%wI)6{``%rOAxR#e~s{6D}3KvUCw=<7ryI+Z`0}u?z>(%x38`t
z#`1Tq_VC~LSI_0YdsZ*tzXxJo>sgDZQhJBS7T22BgMYEvcQ}#^O45Q+%E at 55wJ$d^
z{o7*d=<;F6)U<mu1 at I*VSbeReBk#<OY<ddAAjx-UZd41}$m%Q<c4rTY8W@;I&vayr
zmI(%|t|cvY(glHmb at Y%sXmueEAI=y5CK>#>#?{M6r5$)T54WtIL6tr!B`~mr9&&A~
zYj}b at ks!;TJ2o)z0mNP1$SD`{+V<y8X!JK<zDrzNX^?hDW-qH7NO#p=Gw(Ytb3ea}
zluOyqFHqs4_49i#xIF#!^x=0QOMZcZ5GQ~6MwV!;EYUhmqRSfU#|r(imDb~8Uh5#a
z9`R<I_Mx*~LgO86{E*!Fxs1b+5PhqObiHl<OQ?~+p80z%|Bd?lD*BZhjK8C`FQQqS
z{l9o$ZhyJ;1CR;+e#hbHhP=2zg<YPwK?+)vCBBcojgMExknv+ei2IfhcS?x6BE;<p
zaW4pQ*MzuhL)?WS?y({6tPuCK5ciA_cS(qQZistwh`T(*Z3%Jbg}CEF+=D{ghU}2>
zczWB@&Q9h1Nouf-G+t8NE;>~IzxQwc<Y^w}nRx9a<{4Lz&pi2Xx+jjwVeY~SlbJhb
z++<cW_C_~z=Vnh}HS}Ng=+SQGq-4(A+(K49Zqj5{mR*p|ipNeYU^B;$$zw>G&&K6n
zo5#lGWlv_~#^y~_@>?gDMgOOiEA;pO{{27yM}m%#e-q^2De`YEqw}<k(dU^41JCNh
zqI8Iq5g|kQi<EyAKj}}>NPm)s{``g4jybFEMSV>p%_A+w;4)0Et~ONKtL7PI&ht3j
zhSF-60kI8kXIYiq<8?VkB2Hno$5G{R+A9pzvmLI|it0HAXO*F*s;p?fy`rMJcxXJz
zRyC`tdQO$0)a7uv3^jI_z0%>qlN_<c?y(o~u#sBc*VwDrXva)eV0W?X8W(=&v1`0l
zKn2V8ma$2W8g^Z=hh1Aeo8>u**^m;$5VwK;H=0XQ)&C5`jQ9h+zJ?0tOyp(&mu_cu
zl|dBPFv0*z9!KR&@MAI#H<*n^YhQ!GkXv0d&*dyD_ZWs2#~VymYsv@;GK{HkR8<)!
z+N(-HXGEc++~uyW3Y#El1pZ4lWLK5A9Co)M&skCCaD|PTNHLQPW4!YW`7UR%VN!9q
zy#gX0ZW!aL_SP6I=HZ5MRmCIwGOd>Wo8r*f at Ns2T)h;Iz*gXiY at fbYS2DigwsB)Cq
zJ<iz<LvgvQx)P7YPR~5UY<q>*amq9_AQ>>089Xkhy{fFjVVL9elpE$dT-63U3d_b-
zfq=6_M4SmyhMH<;l_%K03^iUAF2Lm|3Fkeh-04vWQN!Cd2LET$?<9xELu{7WD=Y2k
zMmE7&>C`-kYqQCcY#Et?j(GU`jhDW9>_C>1UP-IUK}|!&5&0-=)YvN!+kp-+-!a at k
z1GIs+aU?_yxMw+QY8)kK!{e&l-qKP?5<SCE>8PxB&EuVirzkG>R?RX{n;)r_uet)k
zo_RG6>JxleSNn{!g1QPiOnG&Q8p at cn(q1MwF*xQHI~*l$gV&9S6;yV&8d1qX7hR)q
zgR=zH=5(X9)rJbY3o(dIxn)5FHLmJnhudwaan5yAxY;;PWDZY7#c}XPjP$(bHM-r4
zHEO2QV<<t(EQe?1OlOr4nU+K?FKXA}s<0P3x))iE0}?eZ at I@p-V-;Y4Ds}MT$xV&X
zP*v^WwKT`UW7+u-M&fsS&{Qi`W;G5&Wp}D7IAuN4bZ)5ex at xN3e2o0lc-|`1*T~b*
zq9M~g^7MHsL#x)bls1cDtISg#KE1A{N%as-^c3wlG%g&F4~j{ei`=+L<Zf?GO|{E&
z%Kkt at iKiO%<8jQT{!FTpoV*;PWwqBcqPld13&RVVt-Z3QLY{z7O+~z#kmfqC$536W
zP{jCvkw|8ax- at B8f+S`My{veEEEtmNY3O*BW+#h<|B1eHx{f2d-Kjcz_qG?(UqufK
z@#OuFQ7iUV(NxUawa0<Ug``FW;Zj45C>e68@(gn)<{BI>SG9}f)Bnh{xVnVOsB|e1
z6BUvNo<&q@@w#BG>repZTp?l1Pt{aQXlkdAtn173d9%@VXg&%KDWN#mq8&M^s=a09
zx>iFhi`a67jAS`zT`2v3!R?vS4ik+knnX163~8vfN27-9B{#SlKF*2JWai{u&OMWM
zIj7>6o~vZ{P9U@|2h$~^z+f+>A&OfC1y0dyd44k;rPRr|;h at duJc(!)kV=`$KF?hY
z+B7tBz0c*XqDc)gov2oq%TbJBzN)m^pzEdbfRg8}sc<5)Lr3(KG`c58#}uvF$)`F8
zZ$~0B**U?HwJ@@aLc at eKc*tp_!L2I2PUH+G%(Wkk15i)MWTP3*Ug4%*?QmlVV?sqp
zHw+z8GRj2yr7=FZN;UR$^3i$f^VSuGYf*|4BkMR?da at aHolWqod4>vthnz+b+zbuk
zJZvUh{R*224>?UH+<XluYo7RYvYs<HeMsqW!<>2i$0b}Ya`k0p!c`{1W(wC#5vFj$
zTcw^8O`uw_n4;&YVkK6>i<Lr7Cswlabrq))3z4<vuZ)I51XW~GF<qnNO+we&`s(EA
z5gm<YfuQ+VoixbzGz{|v2aRD(3DD(JRb9o^yl!JPdaf=(PziPZ1@;PLRjIJ4iCyq3
zRMS$YqoTx6DRWo~gG3)&o6p6(TU}MARSSiku3GrYi$;X>jG6WlrG_h24t0uyKEBIw
zyVpr-CFNe}EmlT-o#eCuPS<_9k9rE%JVeKJupXq>T=~#ouc#@vBhX$|<){c-M84p3
z6IGMQNzYKY9>L?QTFCe at d3tWN67Z0q5`@c~FHwcdg$HOt(x`ELHcTc?Sl4r9BUDSL
znNKRq!Up^EYUc}SS~fZ(ETk-YmO~QJQeF5e<RPcwfG_lE<<N-fJZbf>Tg%ZrL$l=}
zr^%KtDC)8$3n5s1-0O7A)7oUP{@mTZ(UDVa5TUQ5&j?$O>z}0ep=8x%Rp{;|!GRj-
zFiesj7nTdfGCG|t(4DS3r0|o~fm9bc>^MRa(GBmXAkA6UjVi)!hB7K<L47)=k0+be
zVI%4Wm2n06!A&D*<kf=pqm$;TlcmmFA-z`7e8Ubew2FNSy*C_<Q`oDgiXB{sy4sts
z+LnJtQ`nRGxLTEJzF`Z-SL?&BFDO%-j=-OnU!T8fIl7!4R6&JIKs8kOij7>e$~;Rm
zlD))U!xy9Er3bn1Y+SU<xo+_;XA2PN+vRM6TgQuLY|@ITt_=CY;+yMn*+Xrkks;m`
zol^)K8$3*`p2H_jPw?6>1RyVkacK#$=$3OCi!~Ut3TM>RHm+LNw5O#*I{R`{_VxDL
z7yWhhOI!DT`E$fMgUvY;XSx>O_r%L@@B8YP9_L<>kUOc^?YsZ)uWZ}@^{<fw;w*WS
zOFVTCtXaSPz at guI4jhu0KgHp#fAGmy-}&g9|MWWV%B0a#OJ^@x{?vvYAAftK_xV>P
zkGY|2&e9c6zqa#}?~X=YFf?WCwDP&j9$LF`S99yJJ{QJY$KB|h=l|O?ukZd>+wr~^
zU7dQ(O}EXz>)~hLc=zAm|K9K7VQJ%Up7oc&BhPJm at 6+}Z(SwHDCfri7;O<ACfAjr=
zhfkh$$%yoV>6Hr`9{a~zAAI)1AN?;KnQ`r{Rd?L;_zRo=`T38XF_(?XysoJF&U;tB
zxaGqye(GXbwN0^wje86;R<#&w)^$YY)omXz`GEs*C2I~@JnMgp8oO-Q1=AjC9$LP(
zHD&I`W6=}tet*y{j~*Oe@%&-if;Ue}*^9QGef?keUT$CgrRnyUe(srH|IWZE4}LVn
z@#Hs&-dF$AXPkfcg*X1~U-8ao+N|?lKYmt0!v~j4f9$gnmH+r5ec at YwMC2@f`<#jQ
z?HfGviLcDAmw)LsddZISrY`^Z%F?I4O`5&oNZ)JjdiSE69{%^$w>|rP>ijo;?|<z*
z|Gf0p$3Gug^}>%CcWmzLk?Y%b?xg$oUs3$`uM^y_{MviW(w*nuu;P=e%AWo%dCqG`
z`;8C0ck#`Sd^&8_bM0w=*>oc2x_dvotZ3yIqpDy0Df7-PU92{%$*^ihOKfA|9^<;2
zj;Lj0cMV-z-g?19)0$H@&OH`cm$yA`P067F4@^E_S?~ER`tAwu4}ZSm at SsO;IcR%x
z!O4ilId2bsV&+%p+&6Kb`DNEHeeb&F-K(Fy?fZ)!zUkkoZ_NL_*OJjYu6(NW+w+!B
z{WxjE>?8f}x%QtUU#R-=(#LQ8JY(}6ozkN0t(UL1e|h#_uitBW>Gq%d_{Z&zf5zE%
z;ooljm-Y2|$9vZ2zcb`X$2S8XobplPtKR>d)ll%kh<{Z6aLHrSKTCgW;U7JGx!bPz
zd-2!j-al!7!Yl4y`vu0oH|)7t?H50C^QUQ>{&J%C(lI-)db;ep^H<#PN%CuRj>g=3
z-G`%Itp4e;l|^4<Zn?ATlw-?~5;niWIa6Mi30dpWEeyMB9K}v3$R&IefVPxGx>7r)
zx)SPu&MGHu#E>Gb<U$nn>#-quYc#cd)%Dkq7$K{nr%JCaqtYC$EiLf!oFUJK5hK)n
z4OuK_oK9ZsQIef;I*eFqqVQ#rS6 at ohqMWYG!-T#rqKA(Qb1(aJ^tegLqulrCF6S=~
z?Q*_^-yEPub{ihm)`+USeD4R-C~rG_CqU+0n`6k5ak%+@&Kwu*s at VT@Nl2m1Wf^Ai
z9ZZ&1*vrJOgKWnr`zt|qv&%u-W<sqY8#hez;tLR>@VeHe(aW`0UFDIv=EjY%jH*J6
zBi3CWn9r)*&=)CRSvLCi8)mOdmy3{0(5iIsYV at hoo03LQh3d%g)ebc&EqSE;NqU`K
z^uLn7j!fA6m9}Ruo>k_m_Eu at jjocd3w@*!`<xVJFXe{VERnS)*dXdi8nW3{B^X62$
zs3Mg`Y1xM=%w;d85yd!nh|xTa{pq?s6;PpdQ&{>AuD9?}%t=fAH5kg=Xn2*?v(a_=
zl7bpp;Xx)+=|z{A34s|#7?Q0TXKv!D!eQqN<$p#HIXf#(7wHuHSYeh at SU$vDQbN0-
z@*;_1)T_G=!3lJ0u1X5h%Zfc-sGf4#kStD_M^HR!BFYA7s0~N^SDO8%Gh_c7TW^TT
zJkn%74Q-v>thGgtvr;z?iPd?XnWO$?*9a?!IG6+dm1NH+1wMY%RF#b^7xg4IaYhUo
zX*Rk;(vcVpkZ~1BSWQ<PHl5fHLAseF)8M^&+J at ATwWF^ghRg1nC(rHb=7^>k at JG2v
z=zKz_$sm4VUbty2g+#d#M29UfJC+pDEI2ftXY4Mo_EwZovv)ZZnT*uu7L*TTlgk}M
zhvr#tu}4+<K>=0}!t at 2B%5cg3M&4z1!_KWByMXBMEroD|&Wwm at q;X^tO+F60tHSAU
zg<Z(u^AQ<IV&j+ZF@&=Km3d2vWFSM^TO%`+Jt=qGICxd5a!|)xG2p18_13^pauiX~
zAYn|Q6=?<+Y^IrFkBZjx5Kk#=h at mEGF}z8qYxBAxp7P}M|IBD>_-vPRE^ret0k|0W
z`rt0-dw_bzhXimHt=VAcr at X|jj1YLav#eZi<0@@m6d4b6$|v|Q7iFX**G`!*L2y}$
z!HH^=O(a*oqHB4Osa-C*a=>I}HRyBN;%t!UBYZkjeb9-hy-{9nJB<On9nq;IgJGh>
zEg$O$P9yU(GL%0tQK}5yz at 37_Y$0o*J)SvljClJKzJdto*i!%g>vIhFBfj}^31-F-
z@;Dx}dCkXH`%Ez}h(hz3QXI#?Bq8>Grv~jd%FEs*VU%DuEhACGadT==>4;vn=w&SQ
z3`@Dg>w>=EESB{~#Hh_BosNdB|BsB%ryXBKLpbdK`(KZvbL6`Hug1|cC)8~$)t3d-
zsY<FGvuU{s at rk;;I;=*+AVmBujM(j*1xyFV11UgHARf?7XQ~PWoePx{bi_stq;X9S
zA<kuM!^ngUU at s{#6xtnRC5bp<E!XX_yQqM?k1O$})SN1k7AG5}qcJah#IaGkos)sN
zKm{-ZNY>%Hs)~6*3f&y2&DC?<23xuz!8}Vl4 at 31L@3WsWO-8!GoR}0gO>Vd7RFg9u
zVo;$03jHt9WDZMTmS74c2}fMNTnAhZ&|4k!Dr~I87=4?$uqR_3G0GTEvMX`IQY1}Y
zS>&Wa$$;F{!zLp``YBhmDSxnMH;B5{*&TelQ{m&`ztP__nZnhP=~U)j{aF`-t88YG
zr at DyDRutHwEDpOhyRqSiS63a~u`WZ5H??UBJ^s^DoyC8;e##2UPxi+{=Bg`pJ6ngL
z4FmLSyh8jcm^v)j9SREHGkUkP|M=a`cPEJFMEO_2=i`Ijp|B%-N|m;R!DoJO#}Cm~
z7wLt-r*Yb|<t~1Hk1;V9Ysv^$t>7F|Q8FAOyW1_FyOHUYU<7rL@`XvLN at T_td->r6
z*+whiIwBg1(PU1rBqk-NShI6-^YTZ_L+Tv6t4i!1k2DN%rvfZEMDHbZfbLPbe^`&<
z;Gq<aK3y=b`#VEDE<`g7+C$-+0>Qf~V*ew|nP)_C+h;q9gk*_<yLLN0{@u=vfRTQe
z?RKsOZU#=jI<GFnPgb^?d8d-sSHxuQK83ocQy;r8-=F?0-v7+rh5m%opKPk0a*t8$
zzlGIA3s*s2KpJ2Mt^_UuMobu&GbT6ph6MA7{IMevMohY9!ZjntOddONM8UXg$G{t9
zos(cLa>I&ul+<`!BQp3AgY<NM)S$X_DB=|5k1d)sHhW at z9@k$-jvR%5WyQrK5=L4^
zCenfLB%{fcJi<htqtI+hon at n(2`NdVKzf8AJp!~x7PB!9Pc~+<YoYRG8;08PINX5d
zDd**mk2hSNZU{MF|9}7f|NZC8-gOQAPQ5gOzi%;15*QjA!43?JV6_)Vu)<3iD_SS9
zn}8Bv3Sfj^A%1HwlGvUKiH*l|?757sga4lKn7!6wygi38!<`b#S}3t~a}ob2V~s$^
zMR-P>mI-)9?kz~i{)u$&;&&cs(p92=&}R!7%NoGgsshaIKO*g6;0L5d`j+o72OzEi
z=;(<&Mk7rl^1DT1O+aH3{1cGx4G7Bvk9RXRqYC~F__f1t0q9hM=MuyRVoMPx4dtpq
zI>gBWVrPK<t-$NxWe(DK5avQ$uf$fNOda55#(bm$k4F5Ch71Z}EyQ9rUo{Tw0JWH<
z4K~J_ at Y|S$XZ#kzU4yU|{ALY8T*#;v&oi>|48(%Q4EWaoMkqHO&;*)*Rgl#>#9K%5
zLs;Qoz&q%y1NP8w9_ZyG&(UzFBR`;UHOhpr8A#s<%m8mj3J2X5<W&fMV#neaScR}X
z$io2C03GCyv<%O&e?@#e8$rVW4P_M&3;Hwg+X58gIUD6)Hx=n7f``cfl>z$ejGMsM
z4fv(Ezh)pljJzhy^)0sn(@2Fu+?n{D4q#$xxgGhyIIEovU^26TZZgnxA=06()Bt-R
zgT}$guL=HW1C78c)IkftAeSt(Lo?Eh0Is0VTO(c#FbKFCNC74Th7|A)%(z=(GghHa
zSE4 at gTUZCwA`MVW*Z4k&ddF`p+(uwVJ${!WtO0p0$MYim-iv(yieJ=c2jb2^`<{U|
z8+!=&0%ci*ynOim9N3FzfbD^7(Dn^&kSS=cYsT+qV0Q`pP2dmi7WAW7l;={EV<>PT
zFaVf=I%x!qKy4gIU5zwo=PjvlUj~|I(aZ0kh38o4KZWo&_CdMm`&4~VHvBdMM*7-J
zf0TvzJ|FH2AOoc9=mpuLzs~4^at#KJD?k_Fg$Qp1R>94nIIlw7b)dZpc{c$ykf(ue
zW=31-xC(g=1)t!}h<JrSEYdQx%MSW-4a&XFiaaomv|NbtQ{Hg53`1O`S(kwL!%;4v
zhSHynJW#F{pb7lO!mk#2GEAn0Kn>EbGvRp@<dKa06Oo?yz}R5K7?Oo@&j8k<?pJ|U
zBjg(cS at s2b(zvz&;g2K!N~C`XbRGlEr;v`m*1QIM-VgVEC?C)Q%)l5>8wuI{2hVQ;
zZz0_V_(5jIRgej==V|2gJP-ld{fsjGNP0ZnouK;%jiYb_g|8qTc#EZxm}I^habE^6
z&mtUj)=_=0N4yu{MqI;_DBFwRi`oL($R5CfaeNL?3;2QifJcB=fz7}HpaVD#^t&vA
z8GuA!3@`<70CRw)z!Sh5z+T`B;78yDaE>8@#RECOWS|_V1s(>T0X74BfNz06fPt4s
zun|BOFa at XrYJmW-0(cU51=tOI47349fgXb+*tx)!fDM=gQ~*9;CGaw^1=tUK0sH`*
zq%>DVuwg(xFddi=)B*PZD}X0~4Zs%Qec)ffj{u8{U}piB0mFezpb#hqe88i?3qTWa
z0QeI44UmRJumQj at AO$D@>_82$6j%;C1H2A213v)KS4OZ4fh&Oo;98&zxD$97cn;VI
zyaVh5z5osboj|{<BG?7M5FioA2c`fOfDd>C*Z_P0d<y&qL=TN%R{>eTG{6lk0PY4J
z1)c}q2KE780lxqd at u+KHFkl99fQi6Nzy&M@?gO3xUIyL)J_0 at mz5|W{y{?X6=K+I(
zEZ{oeCZG~n2;2j#1YQI-0$YK1frCIBa1`h at 4DtoyfK*^2P!7xk?ggF$wg7v9Z-EoQ
zxx*vaP#_g30Ez$)uoQR%_y^Dg><8KbHUfMCaX=!F155>O1Lgrsfd_#nfmeaIflq-}
z;0VxXWCXh$NCNVJsX!4>4%`mR2krtM0iFk52X+9>!1usWpzkQ~09*ki0aJk*;2z)^
zU<dFma2$v-qWu6vfib{TzyaI|Gyo3+{{S`t`+ at I(-vG%J!3F`tfoxz3a63>7tN_*k
zF9Dl at e*#|sM}Tw8s6)UCOa|P*QeZXk0<a0#1$+d21^fZ at ONd~X03(4M;8tK3a0d_o
z9s*tfHUaMfZ2+^Nt^p&E4crLK0~P at dz!Si8z<S^<U^mbVd<Pr>dL|-0a0QS8j0L6x
zw*yOo<-l5C1MmUxHE;}wN{V3T1H*wd;2Pj2zzNg=_XBHySAp%oe&8#h1Ly?KN`_p4
zVL&P{4!8lB1<VKhz(c^(z&c=4vUu|uqa2H5Jy|c-n?<octS{@wqS;xjKa0UUa5g)K
zoy!KWf$ThXKD&Tj$Sz_Rvq9_<b}74z8QA4)FuQ`qu_5eAb`=}S;@Q<~7#q$;U|Jr<
zjLd{-F at afFB1>Y)EQMKFDkfzcOJ^A at lV!1Nmcw#c9?NH=*%&sKjf1K;o=so{>{@mm
zD`eNRiEI*^%%-rZ>;^WC-N<fYH?v#VbapE%f+}ZcGg&b!VGdTx%2+vbvfJ1!R>3M+
z6{}`7>~`j2ZsuWLHk-|1bJ;vLpZ$d`U<=tD>`qq87O}<5$Ld%;Tf&yIWz5g+g2Hk)
zYhd at Vd!f$%mEFhgXAiIk*>bjmJ;eUT9%hfQN7-ZSaki4JVyoE`?C+SCpJY$5r`cNe
z411P6$DU{ZU at x#2**f+Tdzrn$*0WdH2KE};$X;h}uubeu_7>aBwy-9)mA%cjvF+>~
zwu9|tyV!2_E_;u?&pv=T@*z~Sy=))b&knGU*vIS>*3ACJ{>?sR2ia%rbM^&mVPCSZ
z*w^e3`-XkXzGJOWX1-_b>@fR*{m6b|9qecJ3;UJ*#{R>Ou%ql4JI;P*C)i0CH=Xn*
zy(CEyQV%Io>M8Y-dP`AKAE~d at Pl}e#lKM+AQmk~gbdGecG(Z|CohO|yT_9a3T_jyB
z4U#UAE|o5m4ASM&VCf1eP8uRzDP1KEmExtVrD4)=X at oRV8YLMelVp|>B#V?NB}vIr
zie!~ir8LPVrArx7rj#XROF2 at mlqcm&qopy at SZSPejWk}GAQed0O4mt+()H3rX_7Qq
znj%e=Zjh!)H%d22H%qrj)1_ObB58(Xmu5=EQi<e{N~JQXTyjdcNn-uWWFBE0SyEBK
z7wVEMbdsaSRbApO_HZA*n!+FGOA-8mUNNHw{vH at T*o$c+uSi}7D-tI<cnCkN&mX+b
zijpF}7+d6_O(VUpaz3a?Ia@?w{QVmKV6Q0lR?t3Zv8!14lsk%N at d!nw&bf{fy(g_9
z6;;_Q9Xe0tw1np4c9zL5iY|5$G`GB(D17)E#(YOYcGGg7r--(Jio`Zak*BhI5FI5b
z@&x&Ns*7Bu#U_(EL3q20^*O^;>a23Q%T*_B>&Xs>vJEU}srTl)e}C#-WY!0Cj~XtP
z*oWyJSMM*U&_1~!oa%z45U1=}YWG$^HWgmEgo=;4c^TxZZGp<($gz4}HxVfQp)yeX
zPwAzwE_-$>ZAo>Jwuzwnl)040;_~X6;H7QF<(OMz*OCZVP{W3=*pyHlX#Tuyl+9GU
zoV>v(t{O0+e|FEYt9kQ+mpUsdGzR2D8S=@?P+yl_tltNF^Y+OPy#)nOPGP+H;Wv80
zfbYP#!)zHSUhZ;dsag(t385y0S$$c&Rr->8tAY|M+lL{=QoTdUrTBL*m|WG}N+$fn
z6;11;TI;3eu0Ck(RJcSN<{td*Q2yZXXd@>%)X|e1c6VhFoqDXayJvOtbgMq<aLOI(
zaXrOH9WoV%Zg}Kg;yj~9kDpvD;x7bfUh1ZSy#G){%g$lLLlVj#B2j&~+=^;EF4afu
zh6bk#k`OsUnC34}sSY$h5SZ<7h4JEhFp4*S3sH5@`GO+(1^8f3 at dCW+SLG>6FzcP7
zxdpTAtPU!bm`8({s&rHaMX9WuOZCO8tH at Ih0hU)+lmrELtA6rScFDq|;V)z<4*p)1
z>Yz8oR0s76G^H8`20a(G>fj)EQ4OTW-?7pHT-9Z~j%Pc9N}=oE=*)JHSIb6WRPUiV
z#22a*hn`pd8l~!>S6x+y@?jv=hkyG at b<oR(s)J6NC=M at GqA4lZonQ)aYn3eTO%=)e
zV5+wpauND~UIyG-w4|a+``loEb at b?-gtxPx6nvXYb<Hgjn~z16&SIA`@&pCQ-%Zi{
zPg#HSPDN|pDQL|LPfP837&l6wo~bIJ;#S5p*{u#~vfJ)fgsb;e2Qk^Lj#{!?9S~%9
zC>LtamfdPcklkuuP~1v)klkuyRNNu))h4O9l~yUc`M#~*tu#x;t+Y(p9YzFvGnm|J
zS)8g5X*jZ4qIu9ZeXy%2L3TT7Jkp*|IYEbvQkDE{kM1#O+LFCU5f*MoWpT|sp*$-d
zZa$-^9vH3UQy|=}){0skYCX{5fT9w2O_4g>aUW+ at vE~R4;s<9m=e(e(^K_vOS0!XX
zXYA0VD`bUB_N}D(Sv~|O{KWx8ZsKTDxZ>N*!(CnJ2=Z0O$WR-h23kU>La+MKmz^{p
z(uS0Me$_Lyq3J#Ktx4~%HYwQ?Y&m2#RP&+M6XF%bvr^O`Pu`+bGf?x=lzYujv8yzn
z;6iY(U{)bSIxf&n2>KHc<f-K;Px+d!S}DS%>pa{;k%OWulM14gQ1+v03icB($!JbR
za_W)iV3%x9Xzm2fT_c;4!XawCdxoJ7x8~vvJUD_j(*$#-J25PK@@^^{&cZccKIBP0
z>R_mjg6i<6j(cv=bks?cyY;iI=Ap#UE4yyJvP%woNr_JNc6ZZs-Fi)zJAy4S?j at UI
zZoS&8ICL7M`!p(TXn2KVwroU%hLB44XQBMCVYnbj8&y&^FKnPVbw|3PR(2XC?BejS
z;-xb&-Ku6?s)g%}PR%J4HB*tf$U<sciW;ml!Q84=9^x!g57=sqY37exued9Y5V31U
zE_a=Rmr(21tylTodPUwHq>%GrPg$f9L7GA(yMt{%oo8irRki9j%i*XArv$oXJzghf
zn&ebXT#Kd7b#A>X?$)c~+<|7S=Qzlg7an|-AXFUssYZ-f8b at K>LO1W`t<z}325Do8
zJ~+gv5Ah4Bb9LNu>$QHjUh8-3wSKo=>sK72F;N2!>e<?IfLoXcMViIIefaW%G9;-U
z!3{w8iT)$jDRl(&brG^a;MUt8ZoU1XI7lKP at fE8?aTIBzV^Di5Qa<|_K3L<BSCjZC
zW3XSC>43t-nue}6m36Mr_96UF(F)`_og`jdDN9JqNWl}OI at PO!QiY^nQ5AWq3We-c
zObgkmOdi6iP9MUlP7cDUwi3;$YnHO7s;ubTn&P1MRMZ8%pQd7lEKJHyoysA6f{BPB
z)uB!Dig#6se)Ls+^~!<lsSdrutq#7Lvs;<fVN_lWQwCDmsn(lzGC#ywBu-R at ieJ@!
zG^gCMbsh;i4|RMLPIZKooyr&~JA;}@uoTqcMQ+E+03$nt>8gW_>{Nys+3D106Rcs$
zOMyyrmYqtYmYr(T=1x_o)gCkhYd&8s{9pK+oTYuSIV(4Ub--P#^P2|0LD>=P0iEBQ
z at H1vduv7glLs%p5DDXV+Ch$Jc4738rbZMh<BG>@HkfZq- at tg%r0Hy&mfC^v%PzN*u
zj{<9e=YjP=6YxIJ3>*SFfRjKZc#X}C_&=VvNCw>uI&Mz}W0|(3D1YTSpTFwH`Y7&k
z=mzE at c9!Di?`tu31w+ at 8(+*Xh<+N8TZc1Ck*f7N{r<GWCNeP_{&SvaIHX6f+a2yOe
zG0a#TD=I2M^Q&^qb<!F0Y6cbCO<M|#J;Z4GtD>(Fvo==bte(kOtwgiHZ5Z4cdrK;s
z?XIeELDedyI0GZ>Gs&noMwE&{2!GayQZ+&<p1q!8mJw0PH>@%vL~9=tQOdgp#lJ41
ztdcgw==t^t`qrAr%M~FnL*Q?2gji&t=lKz0eSx0uh^XQ3C9I6V7+c|}BEP5U*;6f!
z=~J6O4d`7V6W`=yYyjK}#^+DGHh)5bSq@@D;rG8AmG0TaE{~GK|KwjRih-Zr#<Pv_
zMyoN;xXk#9vB}um6m1%2GMbi|Hks#JK21B6mSdY}n`v{|j-(&VIFfN*rZw}%%%hof
z_1^@fpJZHNDl^YD-(%in{??q6;7F)V_;*5$r64gf>A|FzlMW<(pVU7&K6!HT+T_j2
z2a?}RNw%6&(^ChfjY_*XGe7ePy~$!^>;n88GTokVyCo`dPogz>eKO+=A{&-rnQE!9
zEVevonUWf98<XxypPcEUbcKv9p!Q at uX?()8(bUhJV1CB at FLP|dwuC&(50(oO(-O-Q
zXD3cdawpxD^jp$7$xD)7O5UD)b&4$|KcysPPD(>cQ_4{56sz6(pfxUaL+a0|k!dfd
z-DBHe+hRLr>y at 6AJ}&*@jQotr86_FFXRgTnN9MN7Pcsiu-ZK~@@fVmXOb?izHoa=P
z$ee9<m?tI}EcupuEU#MP5{nY&C$33+EAhR=fk~5+A4uMx9GS8%Wot^Fb-8t~^*8Gq
zsk>6oPs>i5oVGJ9+IE30$2P(CyDct#Li*D5k1}F2ugDycxsUQf!?xkaY`ot1lksX(
zw&^b9xyp2j`5N;+b4tPxONPa3*>Cw7GEYsS(!Q2-Ny>th`%)I$=wtpCq<zfvgek%@
z$?}oqsAX_sP2y*XhY|-T#V6gF6q|fWa-B6IwSVf<>Fd+qNoV{lHMNa|WP9?{$v>w2
zn$jaRGxeI(medJpYtpu(O{}%;v3+a%*>=*_C;hVY#B_i9+Vqz6Ycd|m*hp_Mt-}1l
z+g7G=lJO4XX0)n!(;?G9^Y!Lp^QQ^FStcevg<AeH(Vny}X-4wP$xX>WCZ7e_oNGO3
z9ho{Nbw=vlshd;BrWK at bOy8USUHZ6;6&YV=vUQ@(tu}5q-etPS{J!~w`SOI-3ELC;
zS+2L7mozwOXp%K4DLFm)y5y<J#*|X)2J6Sx38~K19pJq*ZEo6gX<O3z*+$vc*jSU0
zi!bf*w5 at 3$rggzT!&YbW+g`SPX7i?hlKw+_X~u^cKWCiGux2)9ewNvuN#}KG0Pz`L
zG;TEhV2m?OH0?0;F<**$C^9#g-!P9#$V<33p*Ue~LPNq639lu*pYUbE5pZX)BwDVq
z6j?kLzopG`VWKaoSMreL+~kVntdwi4-&hZ)4oEA3Y`3N at u|=e(rO(Q|H}kd3R;v3J
z#>V1jgmJvlW4z0_%DBP!zVR#LF=KyIoGH~*Xeu==Fx_WbYuao&V2U&kNb}l0vJFem
zOrMnQP5&spCc~HUV8)sZ)*<S2fXQt7tJ#+LLE=kEg(<hDe4p}LO0G2_?b@{4)9y at r
zG3~9i at 6x`p6(enC#<`i9nPW2-X0FftDwAdkx|V0Z=~GjrWkhmHa$3rxXv^QGJd3vc
zz4fxxp6P3-?Ziqf1wRiauS{NV{n^?hb#?0T)ZS?W(l({tWqSwhW>`jf#%yr)dd5c?
zQ!^jRd at A!5DyKo><#Za?qJ-Ow3rzvjL#B^R$I;4%nN!Tam^UU(O8I+AU+XmMQ|LQ6
zsg0>V+dpjw(F!k5ABFO|(reQj(wR|WgFq(<BifBdzj1}}dE-Ij_r|02ZcCQLqVcmV
ziTba^2H at u-YijDFsZ-G7sh>%h=fFzprnGm{R@<JneQ*2K);GOh#$_2(GH%WALXw!+
zxE!7`b(%()A2ScNOia2l>9M4zl5R-(44fpVSEt8j+A>+AM8gvsVtUu|N8<BIZznyQ
zyeawf<bo7$$|cqmYm4=W^|sU}QeRK)lUA5knYJ<QleCVsb8R=<{%&ixC8Yl)eH-$f
zgdX*E#;{CxCR-&jx*MvWvE67kxlD^u=TDekHoa}yXZp(Yi|KrGoOzTv$9#i%rrBez
z#d!R<dA)fX`p8%2aS4+W$`Wo*csyZ4!iNdpB%Da-YdObqk!7%DxMjX&i6vlJVR_2(
zqUANqZp(+3Pb at 8#R?7(sOT0QUF)=G~eB#tZdtybRC-IKNZ5Ye;W85$&<s?l^nwjKE
zTAXxW(i0fx-%i?>^i|R?NfF8CBo9tDC+8$jOrDwSN?x42CYjDCliX{l4w at uB)*DkT
zsVS+p)U4FJ)Um1X*dy_=esa>Zq+60^B$XshwoS9$Vw+(rv6b5 at Y^+6MbQjXymPX41
zmWM2lT2@)sSdOKfOkvhYYm_zG8f)ESJz#Cd2-0FbWNoz`w(dzgkk*`bFs%h6R%_Z}
z$oIFjV`(STm at U#4WsA1O+6G|M9b_}u;%q~0!)->J#g<~T*|KbTwy_wC3vH8aEF&@_
jDkC~0He*1>1sP*ACuA08PR^W`c}wR1!rc3Rz~BD>CM?vH

diff --git a/VisualC/graphics/lib/libtiff-3.dll b/VisualC/graphics/lib/libtiff-3.dll
new file mode 100755
index 0000000000000000000000000000000000000000..aa243aaadaf0defeedaeb48dec09cc8f7a20923f
GIT binary patch
literal 317952
zc%1CLeSB2K^*Fq{xd{s_+*P8WrV?wg(xN54m4(peZ38ONC at fNCDWYz%U$uz4fJz`?
zcLUe!LR5m(*0<JHs`LwO!E6G;=0%bK+7M88B|yZWd))xx#gK%M{hf1W?!M&3`ujZ3
z^WQ^j_TG6pbLPyM^D=X0ZvKO%ngoqTBfx**utww6uz#7F|NgHC{u?>Aa-?S4(2uY4
zYG-_W-K>R=Ka;v>@$Y}T_~9p0A9?txr+#lwUGP}yV#iadk3W@~d+*HDCx8FwV>gc&
zF)WS4C@^a at GqgiAXS3eQQ{lE~MqWQ$tDB_RpwnnR1I&^%n)yb^!2h;Fnr6O at o^=dw
zEyth!r6$r#W?mxo3ldm8{9|NA=%-Q8JTe-7+Xc;yL%*+=iJJ9S{s3b9U;ew<{@5}*
z{2p4bV+d`~#dL!Gn-BlL`O$~%55x1KAsW_qJ^a3=iz}C@(fDp&%nDBI0c!XlzZZW0
z+^<~b%?qA+2A`2k8eg9V`M)BB_ZWjmGy+;_#=!4e@#P8L<E$Lf5NN3x2EX2Z<p96O
zp7{ME8cxeZ2Cuqbx$J?d_5c6-|LUJbIx(|AzCz=B)aGuoXUab^!jor-#u*Y!2Nz!<
zC%Ap~bKyo-f)bwzIok~3+wnbk^UFF-T_QdrEN86|vVNxt4uNFZ+S5>DD+TzoWrxAp
ztDR}Tb!OOMoE>)PgEo&&14&ZNuk8!m9gdMI0**Q9hi#>j-}6}KL-QJ{4VqE_xUdLd
z2funrhYh%Wf5D>mJL(AizaYB7Isg}Z1O7xBNQ^Y#c(c^)b8HTd3Wvj?zXo3fFm)OO
zR89AVHWGf=1cF(JfU)u<)|9hTdzFv(p<kI~DAQ0=ig{M$Cu?<@QudF^-Y7Xbq0^G}
zylgc}XQaX&am&8+u)9Mn^QAYr4~u2h?ne8t^d_nP!Z}mB{SMijEL-$aZkoZX at hz~y
zgI?CbUqN2A9_Fzmqy?RSfZt9TKmzQ-9;wY*BN at _yoBv0rar>k?$5)|BkNpM>wLcwN
zlneFLzQHpsmC!Lt<`!vgnjqQJ^ioDz at LxaIXzI+ZC_LRh(ftbi7GL}&yo#>R;aOb$
z5~W;8DdX|)>a&zGgi>Cjlq?;l^kR9JH36S>knWfyTU+ES#qyj9$~9U{{i+B{TuXJH
zr<74TOzEZi$@DxWfe^xB1qSr&{0TnE=GM4A7hk-b3cmw+OW!TNSU|`qgz&utcm}0>
zK!EQ-WZsvPY;_=8Lt_D~_sYb7{_-!WFpA!cvhrX4B at LeBq&f|zaB5(C&}vMRDUfV0
z6j%R at 8W=+jJWLH-h0pFh;4L|ydYqLVnm~_oR)(YtZRUh<BEB|BC(jn(<!{)<Z8vCG
z8gEv)4564?(i`L}ZB8#Tz1D8BNyC&!F at qCyLFi*S314OlHk<-ptSXk at J>g)>^w7Ul
zByJ16D;K#CymOM)v7<suEe%ty21vyhPtag|h^Vi6hlccPOmVO5<=v38(j=X7vKI at _
zq}~RJz$H}pe(Ll6y%D6GMUl?QPHYt_Z>7pNQRNC8D_il!8>!+|y-{M#S9+-2<w)RX
zms*Q24x=*PU5fVj4#gjBD(B|uN&{874B5cF9}B|pX|^t~DH)V8l_2~ZGgdEzXXuVb
zDWj|_C~IR3 at X5;aG3ZQEo{V|BS@{ib_?68#Nt#6WKLCJd^?sBd4Rx8QiZykaq{O6k
z`}sgf=4P9->qlZqB_vcDa5~R|={$s{^J;ZEZ!3clA9*R#TJa`ifm75S7+9 at Fc`63Y
zOy$s}$k^Nn<h at VLlyk<wYxX6^I!!w!0w0Uz(<cyL08bPg7Sf!xLY?sGL at uQRvknT`
z&Tid`&=J3EX|Xw<yCq3<8Ie*zNGzqC>j{VJ%!dfXV~1qRA#IanX_S)Ff>VF1(?~=B
zkQuIP!&uHwlP3R=Dc?^lS at _gp^PwZw`om_wY;Hbcu5TWf2~?2B9PK)iI1!!#4M$Sa
zj?7Kd2XB5+r}2-N1Zn=n4EPJ_!C{aVC_E)w`~XudH=nYN&=_ozxh?Qy+hJ=k at Z>4k
z9JEQo%xu$M$>LwW5$J#;DVD#2d^o;w`pTI=3%L{rO=_1l&OL%;gr17!*-+?ZUPxR!
zqDQ5nb1N~e?A(SunJoZC+b=T4G9Y7pg)int9JdS`sJ8rO5V_S-mH-OV+6Y2bFKdB1
zIKsihNFnIPC at 3gZ0|DGkQi0w+no4QZQrn at FGMnagGwN8!MA_0TXAAH&8Nka~dU(14
zGV5{}m*o(b)sac7{0)X1k=gy2P7~ULPuuZ{5PTn>c1j&weu6&mm_aR%A)R725Eq*D
zSn at zuIE*SR?jMwYVD?OB+XO5GQm{aee7_F4!_o at ahhLtH&-tyWe8&D19v!W6-Wb#%
zR#r$}Rj)<%u&1Lw!jd)6?_x}pbEskcV~j)^_{Hiatb*epirrGXmgbu45ROHrp`%tO
zx^IWHj#|Cw{zSuC{9qfF>W~~QqU#Sx7;`)JRxCNobw<%voM`4?Xn5G%E<4&yj+P}0
zWJ|l8ACyyGvN at kOWI0as$j=xn3xMy)V3n#QN1I&OCVh79Z;l4p+=jT$eU#xk3w{w2
z^e-QDL%aMkVjxS at jHLy@OZma2Z^)J)PLms;wC4lTU(o-2y|Z at 0L-T%PRYpQOg2*;t
zZ(O&K-e{GJ*B}%epkfz$669hoDZ($6!h<p-%!YjbBfvNtdinT&138bPkc#OsN8v9}
zFjS0Be|UtEInSVYp)6NCQT{;Yuy*2jJ9^};?_jq!s$%LSa+*~yospr01Jz;p%f9>q
z+>$I?^)Lquu*wVI3CJ2|%T#e&CV{%-RH2raqOq8q?t92u6B-c at FTFuJ0k~9VUOnF?
ztx46QsFh07;Fl*&L?ERTv|RUDYZ#$p`vbTz7Vm}00|uARewmyJGYU<vsign~46p{N
zv4+}fBI^#u7z`spT28Y>&esPLCjs`dV~lJ~kqcArFE};<1gYLXVj?8_Z@;aI<d|}-
z<qff9HHy`&<UryqN<F&wu-WLpy#QbK`fty`Uti!F|I^9-5t&#!F&F+eS3~{dSf4Dd
zK$g+J&%f{JzQEqVwTI2g{@dq5p`%Kq5oB}!xH(w=&N2Sm5l~>PoRTI3+A^Sxri!f;
z(P;1|PKVqm5)J;_XW%cxZ=b&b(5iy}8Up(egTTHw;PINJLj#bZJOiAD50Fo-MQ{Ny
zcN%%a*G3Ur{adV%HOAlIZ#de}52e22%jHW7k{AeW9plML37Czt1F0Oy6ax5~42|!D
z_Vx!d4S}pVfxSm-{2vE0_5S at wYXX@@c>dTwJq0NJQ6MuJO6~VgPYry0v^J1ACeo#&
zpFl2 at Un(5&2dV>Ea|3&c-1J@*$eJJ6f237?uL)#j9{Gy8a~E*ck;8$kTs}DI`2Iy8
zYx<Ed>HTVa4**IhpxLJdP*weuR5K~5X8AHx;|iVB7|1PN6gUO+A^;@~INFKxkp-%N
z&`-7<D{O%Zfd5y4y`Z`LPwS<G0pYlcTfrSCyq2u+*G8%yJsxPFiUuiZkcxA_+Q;^f
z1m0NktD{wss!&ZDB9D@@W|$h6Kv5|HO^gEmk|d9ovu5#^A<o(qlwvhUzYOj6w}y&P
zzVnVK3d%CDuaEeZFG0w_&tCYkmBPb6QCdaxk#`n~TE+w!>4#;9UM at 7&B{e5<3CL8G
zCocu(@7nob3*==6g7U~f-kd;{f61fwfk6{!0F%bqr8#143Do$HA3YP8CoKQX5kLN~
z55LKIGt!&X$s4eOInsib$4r0%8jKl7V3&Y||FaX?vbI4><~DzRb71Zpi*ihX!d=up
zwVr<1zhvPc?dz8>7^MAz*!KN{xBug~_WglBy at 7*`DC~%!(BNP4L}2fI>4%SgiD>MN
zpn)hDLS`GZH!HTiLxZ>XuT`<_9fJ0dN2on8R`ZPVG(pNsmZ#~ZyfMz&3=q~h_UimK
z$b|+OrmZEp7?%w-OA>d7qk7owTQ*WMw@<|+aorlUmpj}|%f#YtOp!iYk+>^Nidrwv
zNd_w^Q;>(r$y;S%hqhk)AlWFJ$AHNOxfZ>gX_W6bpk5RH1$tMqw1I+4fal~Lz&ll)
zM(tjxp_9!iXymoad3sqWg-q=MNY={cRLSV9H4yH|uYe%7tUQ72ivBX{n+LqOhKSvo
z0WhT*AiWBa4fURRV?Z%@-awZxc*Y8*z_sZOar$PBVR%+?7lK at I-itq#xGG63>_nhw
z`;)y7l><YdvJ;mjr98p&ie?DN0iQG*RL!GIyjDXup}=qu^onF at g(4z2Ts4|eP-9+l
z^Ij>>Ak8-JDnfx<cozJ5kUVDti3>@#KSAn7vieaJ`5QnOwFh7bEzQlBKw9nv at HK%a
z+Yeh01)e<XuMSMpqwInAMtBeS{8bmMjYr!+>Y{qscl7+xeIT7qff~Rv`=QLyYF=R{
zyj-yEl&!`<;v#G`M<2*B26B=E2_Uvxp`q5mzJRqhkYfN~U*fYbkRt at F^&lS*f~5_c
z+$)_08*6;^{V0VQW4_ at ZVF!TX3(SZ61^lHJvAlFPV6F|AeIV(qZT=I`$_a)KK|88&
zSSR|y`WAW6jmrukwN+>VbG>XnBo~6U)aE}P*eh<SNyK$e;3r8~C!6=ng{|V2>bSH<
zxv&|^fy*EXvTWW7`O;Y`0ogJAB21)4XRxRs4xMFy&T~I;jEg}d54{{TG+*FMv~nD1
zVDxukLJwMK#bG9D at PE$Q8GL3kwmf=984c{=KciFw6wtTw6$RkZNhieee0|7J3O<I-
zG+nUYC|~Ywa-4Baod^z&#*2SLMi?K;9PacPWFzLM`v$VFZUlQ#ssVFR`b;d(B&%;d
zGztdR9biNmWzDW4wES?P3CzI0)?Y;luCa7_!)X0F*h&`Es(1&73ysJb1J^6=U(Z%*
zsSIFKXfj%r-{2ZwAA6(ncr^c41LX&!`C|vjAEdwU^v3p=tljoOtlb88KfI}%P?PE<
zR|D<$aI-wNKcQ8&c>I6=U+}+op!^xtm=8uiTKKpUVT8YeT%@A+Q$VjF-N%R7LPoW8
z!aCSHJ%Zp=`Js~K1MrH}8^As<MU%bKh>vT~YOg3AhpD*sQ~4G?uF1euAEoAEDgju7
z%XS>X#3+Ob(bU^8)t82;lQ6XfA4 at YaRYP#6W9mdIi>rc_EtEP-O)Z{p2%{xZI)_mC
zJy2y0`mz;^o`=WM`ACj6k7~)Ii0L2mkJx%Ht*VOUdnD_5q}*FQ04^g<stI-=Hyj2h
z-(isN*2|7gsZfv0h=t5!f=41_%+hT~{CrZ^i=heWwzS|K&+9Z|d7<9vy8;`kv(O at M
zjXlqksh4sDPfoG~t~6TNIf6{1c>XzX@@9f-Z?s9z2~xKHZJPE8V7L7UpW+ve?P-RJ
zV&ID%>ybIYK0uvUC(x!`@G2)Qj(=QA`mutE55_-Cn1qI!vIYCi(gBho=VT49N!;wK
zX0yP1o;?V`hE>2|HL_09N)~;CG7LHsUEhuR1Gg8 at 5^TGc%!oEJBRcH&?8deFXnAnZ
z1n!#OH(N)mP-t<0<y}DqbBCNqx;X0$Bu1dvU9*|zeuulmQ6*o2l5Q9NaW~l)gTdet
z?)PN45p>9a`yP7?auQ7J2gLF`f!0&b&_w?xreQxH4$<`jYuamIz1Mqk$DYTg5raJj
z^4Be_^(5Sc0QkJc+o(kvK?c*M4)Np&uyh}p5xLhAvpr+MO^FoAPr{zp+BK6Bxds4T
z2L66X8AyJe2l<8UYd}`hNS1cMXNqiwA3OM7dU4AIci1tCmZENp;}!6a+b>+0V%9s3
zBWGqni&8 at 9Gi*H*p4p02Xgdmf=o=)XbP0YsOQ(qgQ>w~05Ec2%v@=Ng`Z}|LoOorH
zYL7+MBdi8ok8r3(a1mzgGMy$<`T~Th1hTB12~*{&aIAkZ2>kQC5%_)bb(DW-(0qaN
zxBZv=^@HZ?Dc>H=Cw_kdBuR0h0mWjS*~hjWjGm>blC>7tiuOs~hD0cGIjx~5CtwmT
z$wHEjl4c0F;599Ql9DKC%1|ujPNJj)GNN{%`BOfsXk{v{Q$2eX at byGfqv*;(d6$tE
zeidb)^S6d$=m}=9)yW|jfud#~POb-VImp~%lkz6Y4xhV2bmI!Wf?}8C1GGc?0j>*#
zb0I at 8i;^^ipj}5vIh52h1UDV_G6e6Uq at NF`mwb9DftNUYgC+qHGlOx~L)YV!+X{R;
z+~!<n$P!)K6L6W03V;*~UOf)i4N<iwd&kx+umNoJP?jcoe^Nsd$w+JQ2JekETv8d?
zL(J;@l`Cjih_&a)qdeJRXQvLxC$2{2Ws_#lSNR$JRZg|H(~#103=G+-P$J<gQ|fdB
zDFEla2EFsku?Jg*=DwLKn|;pOCursZj#pFvkKwMy>Teho+16VQl5F+jL`q^i7~kNM
zA52yB09@~B5Tm at w%F{3pN}&wfSxd#gB{LbM)*?*uB_X6Pfs$xP&iy(-O7}UZXv8v~
z&F!;EB}K?Du5kbhgz>jpw#Y`Z&HOFNqt&=&ghcu$s6X1jkuA0IFq`R~$x?pH;%nsx
z1$TqG(Ye0b4ZMcia4NlMpmxkblH+JSaeZX8kOA4~%w+~(B at N81*nufrjw^>xs3tGS
zQ#Lq5XmGL;XmBPeHr(zhG_dWb<V5WD8?4*3k?F<-bU6X2_5>(U_<2gXjn&YwnMF04
zSPk0Tbla(hly{>tjFp^4B|pWItERI#XrUzB7Q$&u`%_bSLnTNwYO4e{|CEm)U7bHE
zRIQ94`PgKkjZ#<J5PBI)DC3^Yk%Yj!g^C1q)0 at EW7fX6!M5TH at VRqwRn-e6oxElAn
zvQ3Rk+tm>*r+MTlq3yZ3X at WAjmt#g7PqzciqLl^>5oLlXje~cav(pIF8-hSP$Lz{{
z9L#eUhM>S}s_1%~J!RU5*_^&2(R~&W+|dq&q&GLCh&bMZ>pui=IivCl<rChCIZ7>V
zzLek$gRXSKjDBaujdDq?Cc-G{{%`(PlU{WF2s)Y#UWv)_&dN4cFH at o)kC0i_!uHCk
zI&#S`?jdDbExK}HFeFN6l>i)6 at Cd6s1?MHpW at -BQx@@+=l1&>dvSq8BO=iQb*P@)+
zgfj5DB%J44i<XHnC_ at D7_Ohf)qH8~-dvXNHTq`HY04!So at XlxTI?=Tu5!>1<n>We#
z3Fs&SMC}Y*{ND_SWkZi%$33O|twqlQQ1 at IM{PL_Mpl4WgRVEQ-p at rN;dg>Kje<K_=
z%LRh7TPv<@CYiTY)=njccI}7vsZ8ot;Un85{{SD^4*C07!MsV_(nvl4%veS<z%h&Z
zdwsr6quhLvEZPdxIW#>#9!t}+(yoe5n4`0}d)8-1^T+oBfRo*9fafY-b<;Fq!2)+M
z>BTm8$3qUEwpyCDL1-1G?H$UNXig&Ke8O^WE?zMqRg(ySmY_;0&%4<fOa!`U#nsEZ
zkx^Gn$Q0dAV~e|y_mB%k_rvhMs}vcsoEY*xhS3R<g<II<W*gtHc0s$>xDQL#ouX?N
zuHVc{Q+~{fv)%q(tT@~5U)aT^N49c_YIf9!P}M#`o~Fl*FeE<AF at tv_*D!rabs--&
z5qC=Wq!iz4KrN|k at 1n*s3BDd)#PWM4$QIwh<C0}3jaUK`zNMVSZ at Yl(vlES6m|QGx
zJ<l71dFGwea*m$mZNyog*Uf}jvSOwt at +OPr8;Z!@rntZHjiBbl*L~s#K2NSjYchLL
z!#Kx4Vb7avfBPPFXPGV5);i6#=z*l9Ico at u;2%3cb(p=f#XH5)viK9_a3^cis2u1V
zfL32?IIVnx&}tvf8t6=3s`4KaS;#f0_p;F<S~U^=BGRsV1bj#k-LG}wrgTe!Mm1b+
zRvze#jIVuJ$Fx*InwKHEvmjNPmn!EOrMwj7)=oaCw<tGuA`>5(H(j~5vk$9I?IMO;
zpa_^_-U^x>CT&+(T<?RQOQ7$DHg3|2u7A;9=w^^ANG+w6HjpEh!qOC)RTT>BbFxfh
zjG7OIQ_&(%nK!3*IJ-6S9KE=9BaSBtCTHh}r9;AL?%LV~HrcX?c?h_51soE*?@pa+
zw7^WygQ=~pF+DA;tW~l*5TZI(xGlelX>>oY9~=jDLk+Bq{s`7TVy$Oo>O)^Zx}3j>
zWqHhv0c#^78mh*0%O(}<A&>bGA`*HpQXbN6lKE?o`D?21Qf$T=^D&S481;BbI0nBp
z=A#k(jw%natVlC9Tp~3Gu^n2 at fgx6qKP8ZjnZ!}6$zt7%k2eFqE1w`aLCoDJD0{n^
zvBE^3d9%|;qHoPPD0XWH3X-l~ad#D~h|>e=Nm+t2E+Sb<NwPc#!|82b2!pqpB+G^G
zkmY<_U+oZZbh4ODlcldPM$Jy{X_NSjaQNS!0T8FZV}kQh<-PA1_Z28_eaBhyHl^%4
zHjBn6GCXxm8<8ryw_|gt!T%Ih at DW+y<Fa4^_U!=`P^L12P;EhFryQX$j}~-*lmn=b
z6Ff5o$x^E%hOzszC(Fa-hXgR{z at 96wmaN<Ci?sXX{B5WcKZ8m|CXIcVDe%mLS at 7iO
zn4SelgpM;UrOfMMd(_vMQPyp)%OW+aEWkNDWJg*pUv~gX>>>i$V<-KF#ZdJ5^N2;0
zbYOfH&W_65TCy3FfsR}Sc?)a%TJCcfqeTI8HQncK0xQ(r1da?CWk3cJqvmZypOT%N
zKKsuQ4 at o5`0F|q-*k0)3_`RVWKpL97AK>I=F2jqgJ-sqL%<VS|%t7v9lgHYL8wluV
z<M8V#-VVIxzg<ZY5x*_Is0EPrq>em8rXx)%G|FptBD;c*Y&C$tEIDZL2-l3b8C0}v
zq{i_X2#ejkuSPiumm&zA9*&M&qITc<G<YnT&}?$?MGEIe4=C34NurA5KH{!Vgn$tU
z*E~%TaOu9N?;dMkeos8fnO=-18EE}<Qh(|=_oVW*9v&Cw!WfUG1uPa!bhVN at iQ$OF
z7s-)zb&+c{hr;fdnSK(Dfz`JPY6zlZfjnBy!|*7K0%2GeUu2HuI|T1mf|pGxtH?q6
zBc<dr3`nE=lEN6xl=4@!TP`v`^?tO<N^wMizlfEn*ZY!b2`I)NwK4TCU_ at tfTJVJ{
zN!YXTh<K&3W0H^ILvbGI<d68Us8Jw6*Y6{nYZRZ at 9vvPKRP*K07=H(;v1=~mU$78G
z*B<;^l0&^^4#y5!Q8+;KWX|UyqU1GXgCwJD1!~TfbfI_Epv#8{$RCNU%%$w1L0PDa
zMsyYnk$6uxD(v(In{yZ17+QI>=n83AAmV-M`~l=A$)lBDs_)Pyo0~f2rf at Wbu#(!@
zLg+IW?wMW^(ND0RKOn&KQ_6*yki}Z6@^@`CWHFPfkUyl>l1q5JqK|4aYt>6NMXE{b
zD()oK*e!tRdMe0Vb0-!2lnOG>{KzG)I7Tb~gOaX94Z;-NC{!bXnD_NY`<s^n?Q`7T
ziNOtC$yfX_YkVTW9L*lH;nC2G!kaM!_oF0pE4WhP+Vkjit|eazml})ZB-0rC at NAQ%
zb>%7LbIi1~6+MT}OaNCioX-j1YAi^g_+q28PLT5i3QMKwi3sWe!8b2qzsZ7k)zElf
zMm-Mo5TlfoGCD51#P}u^o}Zv9WYfBKQx)=1+}<AQ#qyY;TcKo7VdhmoK!wSjcFX88
z<`u|8j*L;RxfBgwovn)ouKt$ckcUyL7kaP^bD(daGR%L@;bj&=nS)eDOJ%OssZq<K
zdn`k20+9C~RAe+2c~ct+`*rtRq#~J6<ONpxW->oVBP*=KMX>3>o7mP6Tb%|xBE(Il
zYYBxU>S7FU3PjB1B;-+uB@~7D07fDHls5sbrEvU>kUWYdgSb-?d2$9MbKGu&<WuBb
zwt at Kp*x9cY%kL9x&hD^18U9|fkA%OycD+0soyipwu;69I-8ir8DaGA5NcQC7Zk+RW
zLvc4bkZz0wg9>$K3<cJpX*v%~QwiEZqjWA9r87`y at t!6`_$O=*%1L0Fp%6PZ5)Gsv
zn5Fj!;@bR+#ED?mhIaCLVmVkTx=^k9`a!}PUFZYO=Amsz5+FkZ8Ary1-im1|^a_%1
zJ>$R*vfXG|0|;@Vo6%<u<TRsmnm3(TsgYTDcR-P9UgS|IQo)}wsP-THIT at bc?v9RP
z-Xa*JJi9y^f0n^ODHsb4zK8uDXQv>#9o>BNVeUSzK5I3KH5LYr?rSuRWWGh^(Oaw+
z6V-|d8YQh8g#}+f$9M%=A at 65z%!t|>cZ?)^BbzCmrB~ttq*PxOOq6p=QgHz?xJheg
z_J{BL?T<dDK<W4B|A)f^>3<eldE$ZD=^Yd{V%3vj1m>RS`BXfI at LC2Kh|?CKz5XoX
zGR=;UYv^$qKE8^Nt5J~R+u!KzE&lcaz3t?0d+2R5fBTHyw(>VUy=~)fI5;vn)A;r|
zy{)G=$HT>sq+uj{dWZa~kFolSr{#4hPSX#E^m)!2gX!#wpUAnxF`}@Y)|)0n7pO4i
zva+VLE1Nw_Fz%&6D#t9xFV#2{tRg at awILs?D-j0d_N`pU8|+|p-3|6?$&i+QIJn=W
z(@1Y(UM#c^AQcQz>RzN<uJJr(bR*BjbS0T5I(Z_}NBN2els*NCb<-Bnz|%Ommhqff
zlw)T(I4rKmdCp|YSw=bPD7hZwnLmO|Hd?^9>(t!4cy4%-j*lKFuUGk)x+e47FDEe!
zcWPor)%8=JTf=iPUAY2xSJ?ja+w*C^5{xgabOk>5i(l}V&*KgZZhIl1?j#;@YdP<k
zmkP6ooM~D(OiA<BYhpL!f+wLrwz`}<__{ct?ZlN8v=}rME#MK_Bs%Ir3Gj>x+{=`{
z6D5*&(a+|C$A(6~cm8C2#Q6unOKRbla0l=cwAjdPTIewRPNKKTT1{O}2F4K7<)mOw
z>T*)qPa46m%b8E8-HheN(4zfXbWWuW*uLW?=vZVa--{MC_2(w=v5IYm3n<2Gja1;F
zdB9V*rG*<q`+<L1e6N7hHYF{%3yqE(IzO52t3YHVC$4aK*<&ZA*X1N*0ZB$H{lSO&
z`44QrTiSzr-JgRT>&P6T7hQkBQNG%fqnlE)hHUlYNKzytt#OrLV6>LjD?H}2IBtu9
z0g6 at _G~${SSianR7RH<wcb)Dg&m5gS5e at LGoxUU$BE}Ukag?h<1OcS2L8%$MJ_7DX
zT0Um+#x#?Md_PJT=QM>kyaf+ahB(q`+&$K_s`D39WTTc=s_fZu{3s{w_|r#GU)byV
zsINoz!Xy2pFvIgzte&q2=bS>|SsVrME|Ma4RXh$!q=^n4$QVNOK~WH0=OXioJB&W=
zFw%MqO6^B))G;C{pJ7?cS#))N4vETQoS+!bh%a-Yc!ce~7cm9Hh}n5ToSZB&v;@Nd
zB=h;uwLHYYV>vIi2g@(fp8N<;j#e!9%jWYSwvPh;;^uh&cqKJn5!!cva7K_ecZZbU
z&NitUq;u>%-mMfLsJ7ECbq4Qc?fk-%1IAQ4G-ac+d+9#f;Bq%Q4oLSVk3Z_k3)`gC
zJv0lar4UmE(|#P4(0%xyZ4TS&GO=huvQ_E44mVSy`{QQ46&%KzQguI>-jhN2t;dzw
zf%}(&oA~8s3Y5&lbubsMtjgw~r?6e#fPDrl3Wt0;bVIVVxeq&j9GVCIY(|>L(grkr
zq=)+YE9fhfa38j3fo<k)avTL16&*1AmB&A#^%o2xVk=k?7X4;^WZNda34;_GsoxP=
zBK(9N+_i!hj-~rN);4B7v=6`t$lS~B!^txci~fnRsD1M8%l7~}%hU9sq27sm7<cYC
z&Zbh#?3pp2vlg=CmT@{w=&vZ;Hqa at SJUm@uA0}^LXHFdVjN5V=O6D2RhRVJGkMO$}
z*OT+O%wv<RBr5YtQ0CENT^<vAB`Ee3j0nOhk#Y;EsS-OE^F^%PP+8n~%lQUpr`Ddk
z*oYFsN>O(#|LsN9kJ_A_g)2kpO{VI?ktRdgB0T?kdA6x~`B}-}#<$GBU at 0q2v>K{G
zg}orZ)$+%we7Z06SNN|nZhZ#YuhWpCYWZ}5t^fR?d=uq243aO?p$Vg`GimK3tXKJ*
z^;%xc3g*3hpMHE}G=2=r8?iiX{K9WG{MB2Px51?=rS&w<(S>?EwYu8NEH^Egw1wJs
zRer4A%Ex&6EqEwxD;1Dx?Ek|Gdkjv=+ at 9_;wHJ<t`NrufU6$#r5}eh^ruOCMyqPoR
z+bTGh8IT=;y|wKU)yHLZRFU7Zz#BG`h3y0c_Xj5eFG;}S{^JX5-aB<%vz|N7qn>J5
zm{aU|D!>9`L$<PmIvC1~Vkjs%{Gw|e&Cq5NxkcNE$)QY3XlU5nEIXR<_|mWOh*-YA
z&+#SgS24$zTIIr4_4raNV)^>d+3}^apX1(RJ4iA4Wo%xSsEZcAl;0BilWg{5;YF+v
zjKC^7+~jD((^7z_!yx737^%mY9*7<zvQ#8}h4F=~lRTc^09pf=xoNvYAKZw+KpSWP
zn?x5zKE<5xEg^K0HzF70rrqc at 061Kna3p#!`-*6p#?wZ|q@{}G+30(u;BIYh+8A+n
zHY%!Q_!VePO@|sahjiB%Rt3=sjsR3lZy+j5-Mlw__!;>Rl%%tJ#L`jWw6YmUUR=87
z{k7IuiQ4M?<de=yil3bohmltIX<SenX0uu+zOa?x*7P}##m_&9<pnc3s)vYWRaM_6
zXb-^aJ<e{Oed3BMo!trcsm^Y}i#I~p6Y0lVbC;vT*`+1;OU_uGT?sG=eL_tsCMIEG
zvzj=x1~77V382B8zTtzN&zXw at 2|l64D3^HI)YF^Bh_1C7l9V^gyO4+=X1WW<$ZK&7
zxxFB~WEx|CF5A?-984Bx?OY;p56Jw&`U<>r;@ta^wccZ{-;HxmGS}`P-nBG>C^zCp
zpj@&|t4jT?+)VYDYboCBejPi_r2{9rb}rX4?k4+2Q-NM|KZen-9*NLZ8;<FZ8KsH5
zkvenOjv|3VOLB||dffdOF<`%^)ZO8j3&RhL{4$#%KGVU%o3JuX+ftmv8E;U{X;d?G
zAB#f7GhjJWtiI((plu$X;_k2~nx4 at +-a~Bt15m=z2$aD10aV<6?;<1#aIZHilJtoY
za#-~8sy-CCwqPKNpg->ARFFEElNgDQW9QxCBJ5~8g|8g+Fq3Ck<h)-E?auD}imyx`
z`Kqsd`t2MIT1}^Lq6|yuD+YHKs3#%0{loT4;@gkeDVfnbVEa7)ea9FT`ZcY6k$7wl
zt-0$fs9_e&iWmhm`nJ#QOW9$7BB-&0kN*^8WDOW~hwV0W`I0qpE?@W0Ap2GftgXut
zFe)l12~>NI9v%!?nmsuqwR>_zEdWbJU?~VJ#|T}x4nrcnH>s#HK6~<B$o7M&N?sNS
z=AQ9rAB0ZE*nd3U7!+e<X~%k=1Q;Hv0~*aCQw=noDEZMTPy>x?_~}LTVG(m98Yu9<
zjFuW2W~ly$PM9Yjsq?*}pq0mm(-yRmTX=@b%vK(J6^RtrJb;0`1DqeF_|k)s#VD!H
zv{+bdSvsnJ+;gc|u2XlxpT at JL_OxVqrm(}s8Z)9rFn8eilIjVdaQ_igKRsH1SA9%<
z`@r>AP0;n**kbxws&m$*lKuj%%+`UVgWxRCcJh~K_*{2lLDWtle{}VW8oq2`rX?U@
zCvG3FoTz21IHC)Aj)Hxccm(%I4Q&!dZu1Dgyh%&vm(4+YMx6c;%X4%H&)$V&EV?l2
z9Xcp(sRpZeNrKkg2Hu9V#vqorgQz+nn^8xPuY#r*=%oBM(RG at P@F}k%exma=#A4n0
zsQ#kB;g>ww;5aq1LW|o%h2&5F1pKwj=|pln9`6406*MiH<Y~zl%Gbm|eP*$^#m|6(
z|Bw<7>@->#*{LJoSu16y{v9uAvd at m{dlm-CH80038$6CiwrnNe_L7`ZD*3hTQ_R67
zL&sae{s;oX13-0b1I(mp8KKQ$`2&-sdg(xV(}goYW#tm>lH}-i4?Tfl67Ad|P<Kr;
zPw-vS$lWSGnZ<2*WkFbVeEactWXS?d4;rEa7?$xH0qicnxTT5(J2n6Zft!XwAdX?c
z8h^OZW%Apz#quHQq<kJ1b~D+ at 54(y<QoJ;KbtXCsamx=Kc_Z}pJLCtzRREqEW@=pi
zzNvosyKHG=<(n~UB-J!&*^=x%Fs7lq`I^Nv{XmNr(?D}tDUbp|$CO~<^K4OI3iQhT
z3n+!o*|X!s@@YC}Fu~b5bm>)K<!nSUPZMI6g7dDzpq+Nbgn*|Bay~VUTs3zL%NfgZ
zV(R>v=OjkzXnks}637c3XZ~<ijKpEr+yIg87r-J~nqBm)LE~|>W7LzmecAPNqC0~v
z=;ho%)4#7gLV>t(G at YFYH3FMr@h^f&bn(ae!Ov?zUcLd31a-oY7xu7ItoCf1^Eq9j
z{rcJQr!A??z}P-v_4lVY&1T0m at 4t`zh7Q?CK61z7zD|;FMwMH9D!24GU-bBW{deqR
z&sWg;-CekZ2Ug$G$85!3+``Gvx8LgQ(uuBrp>?<rj6>1&7S2tu3|%-C*)$;BX%Uaf
z52#{axHSJx$JgQq*~4w6YZBu10hJGZf~u_w)YO9@!^&{g;vp+r&$!d^4=~xI_^n9@
z?T5DQ!=YWr%aFAuCjtIe1>r#lGi}(K94)pK+JJu{lcnj at GFsd|svNYxx~1l5e at B5a
zY<~)Sa3`VpYd{K<W<ZkTq<p{LCe74UeQUHyqax$Y`tvFF=gh@$_}6{=1GS{asvy+K
z(Lue?e;@%sgm$R%7NL#`dE at l^9Q8bg^f_>lSib1NIx{ZmYmgh?>tvGuWh5$Ehd!7M
z&dy;X6Ob5|Z+{kkq;5QH;SUaDC+~9Qdj-=cg*xdBp=_!bJtf5IKC%4D7=O#*vze0f
z9F9z}+y at fmG_*`p!VGvCWh+`i*LWQDQyf0~C~O57Y|eE$O*G!UHhy9ND^{Ea&aC81
zwFWXXfLv#{(IEomE)p()g)#IB%E6ShU52l at b@<eGOc)MwQgGcp8jZ4$9W0N#-@*Bu
zpalV8zZ`|buR)?VsN+(D4k7b{8n}LUwk;fh-rH1qPreXKZ?9zD8c*-7jNV&SdOyeL
zojn-6x5`(>oF9XCQ*ud!-0jdXCpS`iD^UAK9*1{|W2^lNYy<7-vAVeXueJ?BZ=nyp
zSN$95y_M5 at t2_X?!{@%2+^P9|tt|fh+XJ(AnE?VW$)I*a?PqD@`@nR*v7O9JJsv-@
z1JrCG#x8367ul+N?DOCacYDq4!A+f<V=ZmzVLUEy*ggqnE6pdmCI^b;_A)3!FV=%f
zPTV~;2caH#MQziZHG*lGu(T0J(0eUvj$mYwrvH5)ar`pA^S|+n9u*dp3}1*XSsFQ?
zv=EJf&&bjR&H|Cmga1^^^wqP7>rOcj_(;2CxmZ41=j=8teI%S#W(P|0(jIHQbQXnu
zXRt)&Df3PiWxiP8VX at J*^CT7evtLl*EBLvgKJoJAc)J1o5(04+S}8bB6`RHKdqA{S
zIXewY8$o?<;_R{GVR)#(H3 at 8)^nXTL at Mr&w#5R)8 at dnNUgw{m&I{>_&MzF?1O60 at m
z34L(>D8Nn>9Tr^=^2J!)k97U8C2s}M*r8=;kSl^{yt6e94be4<?PC%uqrq5K7PFm+
zOsbF7qA(DHNBRP2>Wu>U8<zpNT>;4N5yohg8 at TsWf$-v`8{m`N7o0N&+)~8ncrUBZ
z$SU+9>!B at u>gUAN9}SvD`7^K2=ppo>$NIkY6JqL5!;?7+dSmey`rtpSZ~dA}(fV~*
zAH$Ap#k-mA6kWS%752OaU6cc0qsw{v>uMyl&-vj09M^!rSO>wPXlSQtCq*m^Vj1`@
zL)j#9SKHr at 0a`^ncX_}m4f3l9TTXf5I=@XapMu&fM9EHIPZ8L^qs!s!8ZNqz;8PUN
zLlNZUf(eLOwPb0HY#(^ct!&Mth4!mcbee#<C17cUHazA=YR3I3l*NlOVtDql&zS=I
zJ5a-8-Gh`tzJ2aH;uY!+KP0yrO6)P$X*kmMpWsMG*e~?H6c5<@8IboB#s$Tvzx5ew
za1u6X_Di_U38V4sIc(5j^lCIkzmm+`0_JTLFNfjQXW2eVGn2S}R$&fdX#bCFJ{0=T
z5kHacDdg<c?R at y=>19JHBiO+ZJYKg?Nyl4T%=JhEWgP_)k=H;wc&ws4TQ5(az-xUA
zkJs&`d-dd38Q1{cy<vEb4dlTfJYH9?OpNR#M%G{0)i3C8SPf2JD*DCdWY!NO+lZ&Q
z$?71wqWX at k5qjy@M$t7{N86pAXLM8k$@X(QwXr+I0I!rBpo6%UgnO_sSov4ulD59+
zIovS)50v$uXVT6PIcAHylGH4d`BOHNo{<ZK={|Q at bnQ?#m-A_JIhhXbdW2i16f-37
ztR4>s<?Vk)vCQliu8+|X%GalNAn5jHBrAX_3`*wK&}C#lnp>T9hUrLcb1U-FaGfTK
z at h4h#Ny-{D8cb)F91zP#+uThy$#UHOk-Tv$;npMz|27$)xs3Ev9+bL<5*D9_M<cX%
zTu%PC2 at L(Oas3iqw_VBKfJA9#gcyTH0<N6X4-ZBK0|8LRwT`*5L8!mF29Kpr(=oCQ
ziE-Zk+7`RiL??`B5O4aLd6v`xI<ocv;XIllFDICcq7x%@Rr?a~7fbMvCF?^w{9stE
zhTQ>Ys~Z9)N<A{2cGvVsFYJ8%5N(<WviIkr6YZ?cU<;rax6AzC=*?>A0Gs at x>v6U*
zPP_UB at 1k#*pS6p_=9jRB-h(zbet(-sb11;g-C%cf21vP5r%@c?$bJdTbz1$W34iZU
zohI_;nMUW${|IS{KDz&I4T5<zoK`{7f}dQ0dr=uYPUAOh39&*CHPR at oQ!l@^mC=q7
z&9x7eKsAQnnVWIsK(w}ixUiYbE%uv$KgPpLC>4kfJR+7*sAl;P6Tfi}#5WbhTM41|
zT>_nS!A)~I>q496KUU97xb9>$kh)>KgC{~vq25iG)9Iz|U`+=IJ-qO;Ux-A0?2xEY
z5~HCryK#hR;fBmr7Ezn8M<-uggWKD5<bMavXs%i#lbNyQQ=8aiwgl-ofa}yHHUlG3
z2znf*Spy*<mRrtxlJBoNuEW#PD3TE)9Qv50B=0w|OG!!>4npp~d-#D?K2?lS)@tVE
zy?pY;-0%C<XdP#7g~e`)<yn)J_jxeIr%5ozBY=%4eyImnYoX3>j&sY~Y>+KIYQND!
zfXtWCEn at dINqcBN74j_Ycm)8AQhPA_TWDsi`>^BZU_%3n-l0J*8CAVW=a+x>F0?U(
zt&fYYat&>a0;u#bQh`%3_-QgN-T>F>5=0lqWYLP9FvYCrw<Mq?a#gUeC4&3we}e|<
zP}th%!tB8Hy7u4|XSv((tMsNR7JcC)jBU>ZMqF`oAA47LRT5sw#xluJ##A7zY>U-5
zXzOgeT&I!RRrdhVr#Ak11{&TYwTDhH#9~c6XiHtN`)L%voe})XPILU;WcY22;I}p&
zKe1eRfFme+eow9$A^8n0HQFNk-NkJwwB at Ro+^BKWee&#NX|@rWb~}N|OGyXTtw$NU
z_J6VC^TwdOHzn^7U3h=sG*j2gvzaz2F9mc7-y%oO`PnEs3tPocgqP1wk at Ci17;)}P
zJ&{NVvAhJsSL)0dp{L2j#YUS%NurCk-{%=U&+De_LY22<3Xchzt}^q4VBhVS&wh!r
zx40Jj#8!IejiK9l*yOjgO3?_cWFCPfT at 1c?xf+9YB#E?cE6s2~bNBopMSB?d<v>F4
zm3LrR+_*R(mn|fUxtr`BtP`uIuU2EfN{4X06cb1$Q+34mhRbytwQ7pflOynIL;`uX
z!PO+L$;W#w%`WHh-Mg_{(rklgcB+(@ES23BW|1PsPucHAG#oL+N_E~av1UKJrqi>K
z4p((b9=w9g9bS2ZvL7kz##dYMq${+d>wT!_qy)pgV1um1%>r6^4eZcq_~DY*pWuGf
zums#vB0I?G6KLNZ<24~Q^d8rEdB%ZOe)EiW8y`wkd1R{b_hmqBB^BQLgv+s!@|az8
z-p2?s=@=;(m=RyKGl?HSij`4k>HsGNiL;xD{8p0W14hM(?sqS-)n#$bCS&~A at 1U`t
z8#DH={<;6yi!Kin?yWJxoegkqzZOBbw?>6~uNaAQ^A66_x(pnpg<;msYf;qGSfXWj
z$4K18Q-)uP8RPUO9Obh4ScJwpG#u}ji5XT3vY@|HJXmbWaW<+L1rPT7A$bEc at O<*?
zm at Oy2HbwW$l`;tk#Nm at 9iYanqCWr8>{012Sl*WcZ7Mx=F<&s-~XOmGX!vNrC#;f*L
zIJWi_nb4JmS7a&%2G}v4mC8Xf at X1cbuVT3dEz7#dm{%a(cA$Mp>qKN;>X<HMs*nYS
zs9Ssy;+_Crl06J$7Pl|8ssx^XypM5-^XcGWJmf+_2%H3DUj6~iXHEm^{V2jwq61CO
zTo>2fQ3G^0lEke}^lBMmwmMYtc*nS$ms<H}=;tQr`f~{y%_c!~XC|=K#GWoKkb)$_
zD%=pmu$Jr;IXgqjPL;FANZDy1PKu9*@u2-|gY3qV@)|6Oah#Lz+5oC;b3V5Kz+Vqy
zOMace$+!mxO`{VG{h5fga)n5y7q+r_;0{YP3M;QtE<gtAhgg35LZ^uk`7*r!=(t#3
z&2J6R(fO4n at H~|cjIF~{O;hR2i)SxjHI>~tvl}leST||}B+%WCu0M$C(1Q#()<zK+
z?nk4{mk9%TKcG7X`(&!NG5)j9VMDNVM(7?kBy!Ba0LL;IVoA54f(HhY%P<kG)2}F*
znn4?t2A9m#f61>?#qzrcGFHb$j8$Cb!i7Z@^V`2<Q|dAtUQQzIRJ!+noVX6pmQQ7;
z5Pv!X32?=5jpil|i7u_U`o<o$y8!7hw|ozv6~}}+odm)7N5+^6UO?|*H)vn#(Q1 at Y
zUE%OlI_<R1fj2hLAt=u{KyfNNhFCEi^PY#lQ|Y9l`vpXk at eVOZVktMVWGC%Q$MozX
zTdr`QgGQAMKx!&GQMZyt at +llzcA)MKgvsSkjt-B~vrC88;TgZ_qWfQ$)LwercE0%5
z9{ke@*4_0ed_QnIA|sFU8xrj7QP1W-g?Lna1eiQ}DWYu9r&3mTGu`<j=q=9h)D at g9
zd+CaVkAZ+-m<W~s3scXLSXqe at x;;4M7(&BMRnW#|I4fiin?TRr0$sQSUARD#1%PQq
zH-4mo!N-p&&>a%4Uk#^QHekA)9Zs{@i|4*b^nBc`?$)YDXX}H5YKT+=vm)4J<n%d4
z^jTAlr_euSlhi(vmjM5;X9)E7o>a+$C>DQ--}iA`$q<bFw1Z8`$&M8k&Mxhe8)=1!
z3B`?g3PIjTI~Kw#rrcM0#MLK;X*AiU14~a8eMtQmB{OvXPH=YxzTHg`{FV5J#j)<j
z#~t*(i!LvHBN_j$MKK_4Agc$4Ncv8zkxHJ>vhx at z027A=tbQHKR|GIfN>V7_K8yv4
zpZP8_++!3N?%MBg{ff+ptGl&0%F0_Eks=w&pfuh&OviO5v#v-PDjl7`8+!!rN(EWN
z>t^+hyI+Kd9SDRDO-CK}2)LVW1LSUi+Edv#NS?#Xme%1d^K^xZa-s)Mb|ry)yo3*W
z(fxjRbQ&y*472+yHVr&<tjxVQtcnqu2IZ_I(`w3jfXOEIx<6>uDeXB5%6uxFOn%XS
z0lM@)$`2+EbLAd3F(ZCuj&27h4YDQgRm8iDc5f{%Cg7bFQ(KF0j^E#{&T;4S0&srO
z5LF`-n{-+Mk9O)+fs2<mP~Yz4eG7Mxef2dpp~_ at +QnywC&g(C#v(H)aBF#6~Y;3{J
zCgidOFahy=rqheLI<e&29!j4G>Bmq$maZq2DWFk-cLl}G#jHTzxwsWs>GyPs?!n1Y
zeR|V{bE at t|WvP4u0~?wALS?&xmp9<iNTuc?6F1flEu8?H9Ti7C2sG^+(2QMdhWEgT
zFXlq$Z#n@)RE9E1MMrrn=^zb{i4V5;kTqzMzJMK6N_!$uQ@;hMpMY08mEG}D->J&(
zm}zb+?#|Ro<|6xWMqj*U at mf9_LM9sx`3p80*V6?gMOq){Gjox5`nTMH*QrK(R>X^a
z^i>u!Cc3`8KujA^5LX|e)#AIjc;N#Z`GN at GAi9<hWlP!6AZyN(oZ}G^Fye|ac*Is~
z-p#y{G?3%U$_p{l7zeoo86?jzP6K}CR1LA at GniCN;|{ZV2BJ`0%H9B^dwMu}fJ6wM
z>eXVLb4_uVCN&}fa?#@X5tvVFe*&;7F-L0r!-X#B?3Mt_=A+`lXVYC7V#y_%#n_rB
zcT^Y|2S1`Dy70Itxo!);?YkHP+%k3p`W=~w(u at 7_m$Qj*u?)*(P;;5oG(H1%>(NP3
z?}zyXPBVf8q#wyjqCId at 3*wDx)8%_KUGWV`dI0j2+-|iu_&F10(gnII=)u4#HgHE?
zUj~2E4@>RR>v*N2<e9 at E&-62xrgN%Y;<2uAE)#}{t8YlekXZ0(&P9!%EFEqSVhr<y
z5QtCJBvOZY`=>M)BdXrW&3%}Y-wqtpRC6=M-HIN|8q*hc+OgJPXUh;xbl={B$#KNJ
zEFwACZcL;_=ZAPn%LO7ugm>>bP6T|H+xi89sSNvDm?YCL%~8_<(Q_3D*CPo>gnjIj
z1 at 8H{yzs(<cz;)xRxGbK9aw&xk&dcJ9z;sX568E*l^cn-N6p*2giumIkdLJ7yYtx#
zw9Xq_VRs9wAcR$#%hTg3<o2m>EwdI}2P0-EOdK6dz`7(=EJKrbife|$(_sP=Iui at v
zQZo-`hywt2&|mrhz}xwc33vAcu>UXva9?l4e046<0muHm4*&_b2gO~&a9hDKjC0Z<
zsBfmSixE!Y)h+Ar28OBZmViXOW`#_1Rooe*z0NPkR(+d at mmzLQRdD@)FKT>Yb3U(2
z6kYEDKYBA!dq*tF=z2tUM6^jS<BTidb7uItc=5LH2(y2S$nc|5!0IQ?Vr%%O+;cHz
znFDQ-{>ueQ*GUlE>>{-QbZsi$FroaTlg&%h8L;8+J`Ks#SJxw0f^H6QA3qzh(`n8o
zu2=1Jat at W5=W)$vm%5FKOORaCm$04InL6BR<=m~m?x18X63c6pXHoe7fyCq#+ at yL9
z-z!Lnj)h5fClj}>26U6=>7m2!Wu1LQ at ox#ldbY$8+#XWhR{5 at EaZ8mcL3Els`zT=F
zfxZg38MPV?wsQy5_a(dFr7{IXhBE(rysd$qjN at tiutpzK<0w~d>rXLLBQo%@{=>5s
zY(yUej!}MhO4Xz3K6VyY89}yXk+he=?B*Pu$zT?7CL@>$O2&m)d1|6z5nY|<)Ly)H
zjt{2t3osE_<c)sdg<@?ffUQyf)g3pcf7SkgF;%s0joMWXa;=wjbr0~LvhpNe0}$=l
zb-ZK0JvmUvKIx4?qt0AJi_tFAf5pam5o|9!rRKbt;1~iG(U<_ek1f&ZIJC=qIUD0}
zd|M8<;d(g1Dxsa?hiHGfBzAupKT*aev#0-Lj at l_Z*Q$2Py*;V~N^d|ayC)$lb!tLC
zk;`!6%EAljO;TA30;A=HWB<UvffPB*<iWB_KPQu=uj-my&Zg}u at H>=mFXCleil+O&
zq5nWc9;yHf)Y8B1U%H$=fzq$(m7jzovA;YhtDm0y<4=Is4t8R6MiIGAMRd^%ji0it
z1Nq$4`OGg&ug_qLj(*3}U%8A74i7UJR>@^(JW0vL+AlICdJcWWM1c27Vgu4XWT;CO
zYc$bV864H*4<c66D)nB$0$kf70L(<gv<yt6`Nzx|X6{H%ti$ZHSEwkPnkA?P?i4~s
zS&*ZjDIsNeQu#$E%N!||3wQJH)=}1JB?YshGI^6$T_%%XBOy3ye4}ZIxEe*dGW;S_
zvsci5xJ~>ZPDNoupIpE%BdF({D4tl)zyE|so*a61ZH7&{vM!JA?^|+}tu9X|Xry_1
z{&gdEr8UBbj0BBb#9~hj*L`6tuHfOO$<plD;(R~1n0RKo;oxz|4jt>;zC+JoiRD%U
zAOIj)3mlW{4#vWt_kHlc>XRLbKUMbwrGrJw44P+e!Ua09yqX7e{}_+0p~;sM8=Rd8
z`hnlqgtG)M(~xrXcq<%a*4G2YpBKa}oqWF`XTV7F9KAgYB$GNB7Vo3UP%%Hmj}@b1
z-e)qbO=ElbDUt8Dup=&g;p3 at bQ>WwYOlM24mat=SyC22(V#~KM<tHQC<Oo`ylER*1
z3hYv#K;QesACT(k1UVgUgfU?Q0xr at F^(xFfL4Fk*onkdemiEOdvc-URzUEO7WS*X%
zc`)!x+JX6BQ)7FcWXGM3=RnoPt#Y0a>VLlG0qJwPF<deq0;{L0B>^$r_8mH|(jL);
z%Lno_A^k8)XuPB|F8;C3+^8i1t`D3F2pjoFyOt!|oGa19`VjI0El?<oqVrUsf$U%P
zLs8Q)<S3to9AR2Vt=Vx4e%3NevS3;$p)}CYyf at HL^<@Hnl?w8~!%6oQccI)9H~8Gu
zj-&XMlEdc4KtrJLYky*L8*UAlzs8T$9L0~+v<9ARJyz%sJoz=oFU>eANW#$^({BWE
zbyk?{57~T3>JH{!q8F(qxc9u4j!?0iv&Hfu0jrk{;UOf<H4V at av$tY1^04I)co7sp
zuQFJluj)S8snrBdDLUi?%OP)jXyA|UCjFQ`iSPpd7BJ1$gEU|75~MwN;Im7&^oEGK
zwf|f!H)5RmENLbi{g{a;nQ>Z5?fhN&9j#v&tBzw0$0uTWrfz6;g#QKrfF-J0j6<tK
z$8FL3{qcql3`q4*0EEGV$96GDbyoBoZl)J6FTEABzOdEhpj62bbWD%~FJ6a4=zD*h
z`h7q3{J at fHQFr2%h;;5Sv6At2veftx9Xmimd$QR|8xZbe7_89Yn0R80#08jA6%fs?
zw at UTO?*Nt+y!~v}(f<5zRi<5x#Lx7v|I`0gpLW-qaU|XNtwg4k%I2d&FQbnq-bHt4
z<mzbOte06_S+rMz+2BmSK9_!-RjHB(FA5JC!fs5;ab8 at x^fq}r7L)u^pemRMK8-x9
zBsJZ4 at LT7_EV?Da?sr}kmVWG{DmtvQWIs3s*m98%t!B!Q%kVE=*p|Y+4e|OM9{bS%
z{)Ob8#Sn8nfg3K=qMT>M1Z^VjXL|~gI;z3S_6TaWr(lS*fdn<iw@^<hW<wuy3XN_A
zp<c?{XVIytV%+hTwim$5F1+&~(<V_8LzqX73wSO8M)&ktQ2yq6T;INsNLT!LW{~4a
z5ZMuP&vZn*A(R}Zr?8t!xTmx3tldE_55s_RoGgH8t609wAh~nVigkvwMAuB(>G}`9
z#mZf;-eR>$EU$BRri-g at fqJ03+E4QH@O)U%sdF#y?Y9lgFOm at 5g~sT(+kY+-k6`Dr
zx2p`|Twu5m{q!ky4p&sZ^rGuAi;vQ+?fg!l;#%Z2ChPG#pGL=Q)<Gy0eg*e-WM>gA
zj;}Cc#l1=F0P(XUq616!QjApZr4ZeRN78;5;?lB3$~GtugE$-)MsqydK&VY3h>kMv
zgf=e1*dS=7xN9V*{)h!;L{Z$1B$lt_*Sxv#a~86P(q1nhj>t-~Np1{gwn?Mp`|$HK
z&h8O-Qbt at YX^`Y)-culI-37$N_}5maxmIhd%hV;}*O9dm?s57aMbDfl9K4<%aNJI|
zTmjqALMk1!)nyyTYMnI(r*9!Vj|3>$MlBOle0aVHw(?UlxML|1rcT1Z0A?*a{%5c`
zJArT96ctb}?Zt1OhWV0%@4DPFkUW>vM$-?2kFgaeqqA2duBERlm*R;W at Qe_gNyqM9
z$r at VYtTvcFSs8R6R*JC{8!(!?a$Yh9Fi6C0qI8D(jqG7_H%Ww?eY#Due9d|riTk7A
z2;2(F`clh2Z$o7<mIDUtMMy+_$$RH1KxhuH>>+7k{TevPCgpz}+}5Jia6X4xd*Cg-
zgTBe4ii!a&G8ED=H!Ss;8alhB at _{z~_3A!$S;y7LtHk=?D@;16#pnn6r~-*fn`HeO
za8sTow}3{h6eW at JG;NB`A(G9CND4L9EG7aEQJ6vnMc2)sAic{}wq~*-=H!a<Kji$g
z at GW*RaNmxiSttPs+|6uuxj<muG7LW{oGQ9IhpBT*UWNDMAXg<AP+Q=4*gTFso)7UM
z<Y0QZOvM;RWlzj)M)5+G#*sP~b#nU#IfCr*T!uV?#n2QN*Ax at a__?V6>rloa{JvR^
zV_Z8^sIchXgBzFjNSnIB+SG~eKMs#;QyRz2tl;9KVEdv6jUjVxe4$+|;yavqSMrJb
z0y`_=ei07|T%b+i+ek`RvNZ<xcWC_)e<J9W&X7R at bwTP(3E(y;%}{we6Bwii6PSNx
zlaj>pRd^pF+Rm%q!iTd_k)h#peib&FC*b3d9+ioT?=;}bKRa^+N(;aHBbEdVn537A
zQGh4`WWVjVMTDD7w?5nI67sdoBEqx#f~;N+&71AQ$kk!t2(liknw<eUpz=z-HpYwo
zFZj0#?P$D?MJw_4Sk_SxNVjm$hnLlzg|cYb#DW#evnR4mB|}=MiCYOCCJ*M=>a<sD
zrM<SgER?KSLYzztHl1VCd9)|eJ*tlP6kMZq`sTs|%F-N?r669F&E2#nh=^v>f&f*@
zN}=2Q4N+8?d<`CGSE*Nt_Xy)1uPJFtZ*L@(PJM7mqq2?DXJE3AWBFpcswMDZ&E&L7
zyoFV%h!kM at NGzZ8p!`dZW24P^aoCb8Ji;|7b$mh9=Q%Jkc8Yn-8%TtJPPYC74O3h~
zFmJF)!fbXn-Ddh?@kx$SwKPYtNs~}LCGdHG+ at E$HZ!y~_)tJuOX|LxIZ0xX-9MKV#
z^hE(81qv&tZ&78Ymhb(fsDtn^GQiQEh-t|*X|`dUhCWZAy~^io`8W|>Hj`F#D;<%c
zA_ at W%N(pkwi^P;UxZr@?SQ<CX7XeXa`S-WblxXHHto}hQ;9^baPh5o)Ky2?aWmsf(
zA#ES7Q0K0+$3v at elAFSz7$Vn5ud_>xAAFET?MEKrh=#8cC4GY?YzCKW=U`HL+>Mc{
zEL0CG14Gc-z=roxq=!ZwVWm7+^GHe+9-_3F{ELGyK<Pfuhe533o`ht{1!GLyQse9_
z5Lbt3&zUAouR$)$B#pF4XOoOD_TuU at iD<QKZzrn-iL#59I7zYK#%FO2`_x6jWU;&m
zW!k~7$5$^KhF9g at jd$?eNP3lZny+-M+Rr<B@*8APVim{rRF1DNkkkI3nA}7)noVHy
zyYeP2Ux72EDgS#(C3VsBcnC^^J5}z|Ue(|r56^vErCnrAW!`&O56hut*^aRiBz-bL
zjOJlDuyP|E?P2yDeQYLmnEJ7qLm1#%hK+jMMRCd*++hQ2;L_i5IuvmZp?R!)+8vMV
zt at Qbt53vb=`bRyY?u)YO>jQK^tDbp({qGU<80M%5SZ&tWIa(E_#^}_Ulo;FChN0Nl
zTM;?Zr<tS}nFhl#F{Uwsj$iPh+L6xjNw);2^^mUketsF(bQ2BH<{#M4?VASb=jH*L
z-iNy!FLuWF`rmO)+lOG&FaE$@Pu?_8ud%jrV{d#jrxRkEnLs`C{=jAqzB^De-T``e
z6>e_4cR>YPv;v#{MO at RSL~MHh4<zoKcLyTw{sEf4`4lw$b7<Q8C)K`;wJi67ims?{
zW9yU3duMTGH1qyF@~IXt@>9IusbVa>VHZtlJNwATfNnN3<(xqw&Mjjnk@|V9&Ao$p
zt at cUYlN@317<f>u=T*@lmY1OEGo5|SjjSO0B$TrR^*+~_a+Xo4KOI4wt=g_Ks>Vz_
z<_s^-0C>gQ>vVJI(y%%@L`j3!a54tZC~c91TSwxTkIu0`xO3>T_|n7uu1b`4EyJ<6
z)Q%K(Uets{c{}L?;gdkhx-8Sam8bDoM(nV at dXk*^;XFVD6@;e at m4&I>PN!c>T5#8b
z(rK$`3TYV8H5}&|L03AFA+wFUvGcpgh9~cU(TZ%3J{G at S^|`;FK+i*7#cd}!Pu+xD
z-0Dy&WoK35c?)96ri{eM3@(~W2NBH+-T|z`_<bTaZM33mr!FedYX_<Jvv-hem`ip`
zwDOBWwDQ(LDxdlbR>oZAhPcZ2CPXW*AEfd>sWRp&FLuXPzFVN(DXP3PR_DcNIy+U~
z8I>+<|2PD|eshkQbm?2kBtT9pIZBpeo#<}85FzpJPxhbk>4&lSXajz~4nKic8pWzW
z7scwGL9jadXT<8AK3M4ytA?|&T`Z5Gk82S6yhOk-S6SDo at -}|O_!y+z))Sd$%xwFR
z{OM<m<2$wOPTw%eNgmHPr?7?n5n)+Bh_oI at ZPmvLYo(zZ>u!$iYAl3Er<J$+*PV!;
z3}d>2dKu|oEQCl;-;F|G_H~Y+G<HQ<zGV;!{r+u~cV#V+imC{_TgUce<&-tJBNy3>
z->g$DL#aTo>^+IVegCzC`T;ul+Y4Ct#UI$gJ#Y2z;F``z2VdV5g)ld^-rBdwl2g9D
zplUwP>l>r^&LyqKv0U&Lk0qi8+UfkXGP6Bu&Gl8B5i}!;b8Hk%Rc|UIJ0cLc-~N3D
z=#e-3Ykg%O24pa+><7^5wKx0I%GMF>|F*&U|7M^5w_^WKM<z&2)A-%5xHfNqy2=ii
zrry;jG2BRHwW!i!2Rt<=qj<=J;PJ&9 at px2z4Y2o}Qrq@!QpHZp(ya1so2rbx`_+71
z$ju`R3~LS^S8~Y{&4`sPT;2Jh1*t|!@8TMAMRwrB=V%_d at dvlsY?6B!)nuA;Z{Q#J
zdieDx;BVj`&yg6xXYiTtMV0zlUzIAHfL`FmE&r{Bh;F79j=lc7NDELHU)BiXfGxa?
zE#yU7xc!IrA!Qu{k3hfb3-n_IdgcNLDz3#9sUM1Z%Dpjwl~8X4NcQ&uaWf$G|F!?h
z#VADc{{_Sk7sZU(B4Pxxf<9O9^Y-ffk#w)7wUd2R25g~e_#N-ysaE8a$nqe&;j-_l
zFz4f at Q@GD610-u_G`@iD+c~V&gtqYeoS7R-my|2(0Q?~L$)?Cw at P%o^N<o%>1&t|F
zwdg9wCM|7Jqo?q!$I%vgY_RL%RkJbt3OBc6?gx+NMV3}yf`_8#4Vq<(WpkS;#|SO)
z#ocE$am%XlaHp8t_(v%*3RpK-13J-NrC|+-(p`MfbYg>6qfF(?sX6cxa+RVVj!U#^
z3`2UyZY_gO-$3cpdU^v|g{pfHpU1zuK<B4DImXCRceIr19LQ1UAnkNtqk9Va0+CO~
zlbsnl6#1qDnY)scS-QJoW1IWaU+<xE10x~2a8JF$beb8uasma%l6a+)&wcsBz^>3M
zb%$3hmp7p4FI|+^qUG-qCY$P42-3ds2i=EPJRz4Xr(rVK$DstY82GI?Lh#|wz^JFH
ztRgF^^^ZR$(UV8GT5C0!>X~P;ybMPvKZJ&%L!#p_p&_=?xLA!kA#FZ%pmHLld2OfJ
zUI<N&6J0zWCgywfc#AtuyjKVXhtYI)xmk8%%cgpJ3RWZ6(2y1^N8gbZqkL`q__Go{
z at sKIXirj!J(}y)GmYt3Xl<9MI*JG>#-T~O}zCyfyAm1Rb!V^2<mMZNkY-s$dBDFcT
z(XW=T%>4U&8_nkmdMd at sI9TEuT(_(!+JvbyFqIzHWJXh`V`>YP#qC6?bWXGpKHhIn
zEME}$J_|ngxv%T(qUz}PTkv^+`@AsT!DBVjg|h~!u!msEg?bptE2%y_+z@}U)Lb^-
z at Qe42yomh>#w*~tVmo7T{=I^5<3Jz&=-+-awQr2JZ-8b;%Y?MM$uVwl1k^J2=F-^q
zSrAgVDXwB^X<vDYqSon4Wx)dj+~18?RGals!rin?Zz{!7EA>|5 at S0MqC;5K4h(3rd
zl**bK4lfbENW<?xWA`KDb=d}aV?CsYt{_pBLm^TZ>BNj(#P8`kzH!zXQIY_U<_P>&
z<ALHY*!MT^{_QvW0ep`Ee24*rF~DQr!9$H&cHh{2@@lLip@|v17Rur|nBaEEmU8d|
zO!vlsI*ljOs0F+Q88PB9S8;F9#8#L}JAR9k>ci9g<16^JYZ1Uh?#DRie}{Aa!`L~0
z2B4R!@i0K1jSIDOq~T7RbJ=WNT}~$Uw=O4x{p8YS7`r73 at AIuigeS=}3t-p{a*lz2
za9q+kYm?c1E`-_iE@&G+=i;5&71OrkyQsW at _S2*q`7Rh`L&ry`DpKrs%d5t))tfPp
z<ek?==inac;@=mB$^1kY`!t5cF2hyjNF>DRdOYA(n+90Ot8gPH^zZ*i?Zq^Ot3ZG1
z>U-zzzk3F2kAE)|+Eb at Ewn~@n%}v87$yEE}k>*qSH$MiNHyuShye*KjIMI8mi=UN?
z-rOQ|_eE$ylQ#Z~KkR-_hFn?9{hj}B&?BQ?^Isj%Y6hl9<i4yrGj20z<RWA|xxj$8
zRZpKJFUpWCK@{?HGNt at RIWt$TL<ujyKw8AoE}0K$yQEGjzeT=(mSpkE7Q9wuZN7lf
zfo%lQd`Qms*O^;2WFkrV&5oIByw$~FE3cVS*s>TuedBr!Anq8BY^&;*3wv<4#h!Ne
zfm5M_AV07aF5vB;Zzh0zZFl(`k2*v8s#ALB#UU$C1FUDh5I-2QCLmiHr#Wl%;s=89
zV9U at wp+gj3%5xxNnwo<+yo&W)1J$D_18DvNe*H~j|E|t_2oZx6I{$ugIN>j at I<IA?
zoLpc4?LZmB?wf2M7Zx>|s+I&#sqfMwHt~bIwBiRv_&9#w!Bco~oeMvsC9Zp$44WaM
z`y7(>E|AvE+Wb~Izm?NX(qqVmxmnJ}%fGZ>bXwX(Pmfj;cmKTeqJiUcImhQb7 at 0dp
z#NsnHg3p2|J_|TL!^L%v6DGsN7vE2y(~{7Z*4!F;N6rtL^4shSaB`C+2{`U2BT4Ul
z0vIm%Cf#BbB*gNuuDMON_%Ae8b&kCbZ((a5-?&Kt(VpLocO5_ at RRZvWY!1r#ZR6`@
zOEXBTYC*Czvs;r4P>@}{#;#MbU?`HD-yXhiI$np9ua_-{Bw$Kl(1Kj~C1grq!wND#
z8pjvYA%ofsQcRKfUKrtNa(*KWu6|7bMwyMjL0pHQs6)CraYt}KKBz)7yK}fBKSC0v
z_foWMJVyZ;wJO9 at mj;1&j1K)8*auJX=5*@iej+Az)uInRftz1=a~s~@3UrBZgOPIs
zjfv>OkLEI34Fn~Lu6)9hq0605HVZ`ZW_jrN{5BJfk@%+1WN8*(trkCMayL2-bFiKS
zh8WD=*io#9Q5*yvybKG9w~lYr*5mMLBV$bJ0EQTSqI^H&9s_Ytd-(q8Ve@|ccubal
zyxFKVgXlw7Zrx7$geOQb5;%|#1ODqw>AqaN{_W`uscU at I_!lCErbKc{y^(ETO8hB?
zo`_bY11h47eO=F83bPM-=eG^O=pS at pkS3#Kv#c49Gz5zJvFe+?^d?h2(h>-X9R~`F
zo|Brv35lQGiQqAe&wyA$Dqms@@7k|%deO)cwy|?a+1ta<k8j6ioF6JZc41-YbXE^W
z+)PAjXLaJ^IQ(FrqDRPA<BsmyDZMncfneH3b)w?^JAeS;t6bfS$4Cw#PRiZL at N0iT
z=(b{WjmoqzyY^SrH#11z)DEO?mc{EEnC36j at Pp#{Cpm7G7En1-qxLLG3Q{&B at M06Z
zB5Rgp_Qhx&i!Z8mEPh9RDd`*NvMIl1 at j?`jpQ|c|Nzn^+s=hfL(Kp*-^-U+}n?lq#
zr<uM1LYvGj&wMUhT1c+wvLmtu5QS-87uq*?9-{Lif~XdqODITuu#)^fFTm?UT^~hs
z8jxK3gg_LKy6<)#*B&@6XBJ3RGUJYV{7C(N(e<!S!}JxySzLv)8$0-SfvYTAsni+K
zS6i9Bx+g|oohE&?i}ckNRbMT at ef@jzdQjxJ7?A*pz;s%eL1w=?5B_K90Qw3T%47k2
zM6R-~61d7 at _>7I<vmlDk0*(&|TECv_t4D at XfL26bQJbKza4D+6`)oJ+bc<}M<-*|f
zcdA$vJx*0$`Jxll&-Inrk5{a)`>&`g_~|N(e|$UFSN at 2;@-rFi`#yao|A92sGSXV+
zmhpb3s^C#7W&&(RRA<RxRat-`w8RUjIl^YnIiR$T;;dwY>D<@*z3lUEroBY>dqZM~
zq_kc7zFMTmluN7;VA0RNx3sdGN+Qt<3!N8}R$iqJtilJj1_u^DC?$0|TUN3`EqpXG
zsPM=Jm7NS<0|OS3zqMTc;wT1ZpNo;=e*6|06W^+hsY-Fuim_5W4odquCdK{8yHP3b
zi%M~SA1NN-Qrr>8B>#uIcMpuJy7tHCOeV>IqbF+AXme|9)0SA;5=&bmQ3GK at 6r!k%
zq9qkArnbH)&Inopgp&z5Jq)BOimh7P+Lrcu3%*DIg(O506g2{^0i#BZI>V$jpbdFI
z=C?j;?=y2|@&Lc}_TKyZBboEqXYIAuUa$RHt6OOCwjo-)O}I8OnaF8 at _G~+0wu!i#
z*y?q{1xhof%r>r^rB9h9%%pzhY*@;YG~I)Qk!zAiGnV({6DP%4OS;#8F8NIyby>~F
z52Gg0 at WG@h-HFDgjgOTJwp%y>-FiQ1dJYy7x|bb|5m+{qGCGT1#Fl0w%mz9&IJDvi
z_}y at Q*>pI at 5hL^jda&}UqY*Qhyif=noU=)Hu|jzJP?RGG1Gq<QhwJevJfyav9 at 59j
zBk7GZz*UJJlBqq&uy?~lYSR^wtHe!}w0Wnp(I at 8Jtv<#axLbXsF+9%jv>0Q_bZd=7
ztQLGn!n+%7q5_XK=8<-Pgu`FA`pD+BXzmt=ahl at U%>nVrvD!^u1X*Hti%u<?z=*Uc
zhxC%&p&6|9j#oE*MSjBtvik0k>jty$&UuNN7jTT_*2$iGg&j%in0h!pYULAB_eWI(
zVqk%n9=A!|e_YM)R4ZE$WNOuu*qIm{%dxT^cUVopqiofVZ_~W0y83C}-$)AbAu9;j
z%k3tP2=3&6)A#4$S#S!ro|bg_cO8cXU+Wu<1;79C3A12mvCy}1)<_#jqPmE#?Bl2_
z79<I};(RVgc|X#uV&=$SorLi at J8W9m(eSY&^k?|So-R2avnr}#T3d*%O^f*pU`5=6
zz86eU4<331XokOLl(ZP98dDrv19_8Be<eX?pDr-YV~x4>%xB=9ziPJ=+d`Cfljo4r
zsJGIXFiJ%!EW}RC#%=I8NM#eVDW0xSB`f{U3z0Y^P;qChc2Tv0S_u(InyD^r04KD<
zszEHi`#SwSYUP4H=>~Txt$8iwXTe#!#DRVQ>D9_}`Y^rlu}~JKmI!^jPx#9`JY1$&
zhKEgpX at mz;(k1IL4PpFnrp+{j_w^+VXX5(uqplM*grUQ|a-6}o;zYeZ4%<c&FqOv{
zi{W-n<#ERCbg3OAt<n~{>7S#R4t7L%Pm1(*zI=34Q!?i0sKCf|dUPNLY}LT1z!na~
zhBj+3JFwc-V;v2(Sw=&l at IOa|wUqJhiphNFYuI}+Z09aGNFsI}5A0Ia%7@~ZfQp3v
z-ovkaA<|Za1vI=x>ENV7BeWP17n=4Ap~V(n1#NI4HR*)4EE1NhtBP>ENorX>;~dqp
zzZs3v%N~^@q?%Eva<_nYyhfZ9ZNv;T!bjTYGbs2?rU#6R820N&W4dKeNbDaPWqh}M
zSkwt`<SBudSI^_^Hns9C5qkSyR8OG?qrAKDG!WvpKGXmD<LI1R9XsecB)_*ijXY0t
zz>{Vf at T4`nyM<GomgjM)nqs%i&tm0|#x`dwZIj*Uq$DPn(tplRhj~7P%+6`RJkQHI
z!o*a*%Aa&^ciO~w-Q(2WP0e|Y+>(Z1Qr<g(iD|0#6b1`qMC%Y$P4CkW at 9ikcvJ)i&
zbCY`YcN#uU^4_Jl;Vf*ga`#0E>r+Q|V)wf at b!UpL=nCH<y<b1naL^ubtY!DRxhCpP
zUgrB$e^ra5F3OH%ztBoTx3eh4wzDXi{v7m|M1OYrQ)~oD8PwiSMVNd>se1q3-mDZ(
zFs+~oOn~bh!%!eCo&v=Vkl^WP(}@t&YHBmlfGEJ}dUIOx+U~lSnt!@z{^7m7PJ5BH
z at oFVzO`-(IkMGY|`y(T?A45xP`|qaqcT at Yts9fEoJ>L&CP|`&;b1Mr-Qo1#_%PARP
z1+oWF%koOPeV3a14&uJ+X$`$eWr(8mmrQ>S`b(leJN+pU!c9`N&K3bZeGh~mY<6V7
zNC4`Pb7=e3aybXfDZ%{*6kB3`Jdv1>vnB?nXBoAaK`PT0k5_bexA&WMX#;ZkBOyoU
zWA9;$v_apsT2dcQM|8=}AZmVg at Yan~8$7OVV`^qkQKq67xkz5+oRWTx)91pP$Br`X
z-U$vL$wn7ADlq5VhH!Gj`^dFYS2SSB<{6mwg`{X;>5Gf8>1`&Cwv+n8PL874WDWd#
zeAhM?%@UJV2y#CmNo4FM&(7cDa~mtszUG3tT%z<--V<XsKyNMG0mQHRZ4B|W&{R3!
z_IfzrSf>}w3jYE2>eqmS-Ozu12FrzW{q??$M(WmiK=|hav6V`mtBq3amUqbxy*P;Q
zsF{jdi40zKX`AMi=_|2zFE6LXF0pnWLUaX7esUx;B+SHAA9WqM7{vv~g8aPK?!HQF
zRS18B*TZ<5f_^x+hciW0r-_#lemqr+IK}3LyZ-}n^_t$dH#lbJ<omH5V at VVC!n9*s
z%ofA(!tx%nV14JgyZ7GQO=ZXI^zZV0-Ox}nkIzS!f77gsYs&4ZP7}36wB^#&F38u5
z3(RF*Kwk>zEyLxT8E<J{MgJvZZ8q7&#rf*$H(7f+D;j at d=jlsp{x(tr<bu>b{S!Wa
zUSQ9Al{)e6%Oy>6B#!;LkzwgEXrV_i=T-d>(WBW)kKHYT9?vm74xQ%??!B1?48bu+
zh#udv(nAd#h;A6s`vpxR2{fTW(Dtd09Cvp`c{kdqu0b>&jc#NkS+6zprUWJy1ST#F
zJa{k9*LJGguW~eWq~tZKeuN}dYd77?B<{@Pcod&&iw`sp*J3x78rov0*yFUgQ?{6M
z?OsK#Q|i^)*=cq$N3GUQOv`)q?kgnn=hytJ*k_K0eLVk89vySy-^GG|$4B{h+fKxv
z85GC2o}!!ZR$ToNk3Yo(z9ai#QUhClYERrCF#E5HP0ruT{MJt6v0LP{-XCn(kx;-!
zy>M=Hi^3fIkc#<!PhqCw{Z5&-Z8<$i+F!K9d*}Y-I;v>@t^*t{<~p&}u5f;_UN}!{
zN|Om_N_W&W7tRM1e$ZSvkBzt72O{DT at d-I|r(xk-=&SXl!o!BlFAA?b{QI_(pQY-;
zy4(R#_pDv)JgbwI#u2=W{CladawFHsWQ0PVv3<}Tl=XR>dT&E-QcgdywNb*ux<<qX
z-4BR^+K1$+zY0;_WT(#U_zFic-?YxwOO>*H at 6Ky0x9dA5mv$~qGD<rGjxUl6ufMIX
zUXQn>om1oOxmMnJ$<nKO8k4;LA>t!#vRBf$X$hwCZ|`)HZ#R`*`hryMT)lPaSG5am
zzVoc{P;T$c(spE#BZm at 8Q;anK9`8ZDk?vBLexa;J!W(aahgZu!;>on7>GWRRv=Qh}
z_5ovGr}ByZHj#1p;hV~^-f&ns5<Jq6l}@LsWi#VpW+SIpXLp#1B`AbsY?4Bol%W(l
za$E}i*`$zl{Q&g2GLAm^5!HW(GCY00qFosAWsOXqWNlK!8<ynBBz}<azNidOpA1Q#
zBTOH4wID#JvV&>V at o|hsd;0{9R%|&Y#*R}R>uG2Yzf8Ng!09c*jBN#rcZE<+ at 3OBP
zgifvDDcvdg)#L_uN0zfjS&nDTQ&`q$+|WFQ<!`;y>jorV4ex1Gyx)rl`mh8Vg~b|!
zAxc;h5IJ_SG*G#3hVDAX_MEPCULdch0T$RIFfk+a_hYO&&|LZA2){7f{zk8C`!<~E
z$2MXxQRu*+IQToRQ4yKJar1>n#TIRH=*q~@eA(BU(iuw=DhFLX_T{R7wHTG;zNz(H
zvh-qb##xfdvrfUebf*>)JQ33Rz!GOeWYV>e$p(F<lyngr^rbG%j?bSiK>hXPC at 3nk
zEacxMMTKdS*P^bzfl4SZ>unGNWHaiqS#bmCOO{@=K8D;wC&NB4$m1b5$saM1Grzv>
zxcKaJNqm~)+GCWu^4?LkFDX*B>3uXLIr2J<NO+e*FM<hUeNEr5_vZBJCGAmh-g8n^
zoSRP?U7Xcb*NjE<vUUh`drYAJ!~)$u)hdtW?UyVq8Y0i%azXyut at 7Ls`kVuKK7-yw
zg}B`+#O<j|zm||MNx*yOq!>IDBYF0<`+MT$xm{h|i8#vccF1!e^I}p->WUd-S;Y1J
zoW{V^Bm{4-S~*q_l3r_#>;`p;#e1S9$jI~*w0r~r%ZVjAa|Vc%`Ws3!CIl}U!@h?0
z9#J!QjE%P`y&k3J#uznQ^SVhn?#z38shv=ATmVWQUV2&1C)2foOVl;CF_>0QU3#v$
zpNs&Zy at Q0Iw$rJFozt;u9rC{k{-8dt0qDE~>gp#5yz;hwm at o@u+SS_RgFT3(c19Qd
z=pse#gipnEv!_#O_1AmPHTNh4hcwgwO{y<yB=AK}BOtu`X;e{wga^daI(o{PK3#e4
zpsM|t6Covn)=N5~M4XN_mvWbZZ-P1R2$qbft9zWhYQ;Qx(0P0llQ%$A9EkDb<9PQ@
zynTsWvUC=+qd7ii{(0Xi<n3cql|(Go#VTLg$0lb+BxC-a7&DT(G#=jlF?jTn`X>@K
zz387ob<H${;UcYRlm`WIltH7UgUF-%I<3;`|9X;zI3&{+`s_ at N(PvBQe<ywZn)><D
z$DevU`eY|b`Y>?<`6+ZEnMb?1gXmMzA(&?@n`jp(Lq1BobWljh5iab3l&DhEQ%=N3
zNmOaSlPb-WKh|eM{gX(_ at cL{R|72v<X7Nupqztdm&WP7%YY@`~R8o$F>^Ku!W1$50
z6~(-@`;()Ts7^i+e>R>HOCJRl%4)d%L;crq^6>2+#(#}#zr}xTxB9QYN*>aF(V?dz
zQl!O)C7pg0(^tNB<r5zAKvYUhQF$#YDwU3ys4R9Izx|1#;v<)cM5PAuab>)G0N?$N
z;p9WMenk0*`6VPEnO1u0jzsxTS9c$^Hl1W-bvr##2FUYz<7hPhXRP^MmgfIHDc1al
zlRkU%uNmOxmyOi^=A_TJ{fm- at w!gJMvHj2Y%l6myN83LV|M$nna~~gPJg2T&pbY2U
zymW+!0QV+tyfUmjT$uFv%ELkX2=XxTNTNKf$vh(c at pG^eg#g8HPmJ=eoKHXv_D}w4
zi}@!Z+fe_ccU1pGU5y0jrjPQhP53BZko$3g at 7?x9|3qEAfKg>1rI&q_HFJUK-}J+w
zYme}WRE$LE=Xd{%L~?rod$o;T9BJk$@N*@7h5w^O;fvS454C}F_1>i!+9eU+=~_5T
z+sQ;7h+3iM&@(+zxCnnO;eIV)Jiz#G8VUZ{+9hz{t?*L}r+*i5adW7L4`e1kAv~==
z#5}E?SouTrrWzV=ZALKEH$zV&^aAex)X(=TdgcAYNBRD$Be)MZuEGRW%|3>?d`}GK
z!h^g$0ZS1jK{#3~9_rz9gRx<r7~kFVsepGZI?NNJxlqNC#3zUw5I+<wJ(Bq3*2FSo
zd#XN3fD}Gxx`m!j_Hep$`h$-jWN(q3NFTh#!=YEGtH~K}3w`GkdGW~M1n}gibKZk^
z_#w+}`UK(RhR*zF+_&iy!XL(N6%5@%1##f%Su;mkh>PDW*3ZhFVwxV)M!b7@^-LaA
zb at xnl*i}FFYKj6zaRKIr7vviSnb-<*D|n}mE^gux`X$J$H^q_HqVG_vIFR~7Jhym(
zI4`m?aekcNMplaX#Q~?z_i9x;r19m+5AoFEE-Vl<JgwNm+YQH~JhixAPA!%O$GpuG
zqbqruV5OKQ_yF~;Oq?F)2a%O=)8pJgEDPL+r<ctk-Rb`tE~mP%lZ_+);`BKU7^YFT
zHW$p{#fyS at SpL625t~*U=`m~Lg89Yz)Ooyy5x)~0r}E|5NwMIRvp*5%i;s&ljVPvO
zHoJp>vtHq)WAEA25?%>63g%En9EMYC!IX5~%W4&}9Q?o0pQDn{=;UR6Kd(`Uj;KdR
zOnQnsVv{+aNKF;7 at TSg<670;6MI<wo_f1fVc_0ht<Q$YwM1%pi`6<V*`;}q~A>2e@
z%F)pCV!lSej{^P=kv-7=ODYw5YEYaj#(Zh$6nXP2+&njE+DGg8Qye~h1{|y{EpU3j
z9XA>MJ)<b!xF1BQwp*v6n~TJxQjwS)F6|Y255*}`?5EDm4vxco?e at 6(a4d`0_sWkN
zRj9J3z=5?r-;a6<G8I1J-0bc`2l{T>O1 at t-zdJU#^y}T2NvilD5}9$&Ka46ylMm&V
z&&1r=gVEWv2p`;yR1KZ}iaV)ARmF2iulAZfyb>n{Z`(k)|Ct&R(+5N6$DhH+g%k8D
zEN&Ww6ZNX+`C_KO-gkk)%W%_0GmTl<{yo0yIX>_ at g~JrFPVqU#taqrZKm=6Drnmg1
zcW0bE!aFD4#lU%=viJ{J{0ly0zDMZ;4-HpOWdZBn=Lg8J=Q<K6%Zpx6Y(x8tM3on2
zT{vF%AUA%GT6sJ0xPBt&05VrZ=2m0dlSUsenphDjg0xf~fhk at 2Hyhq(^Ai`B{R;i}
zO)k at x&T{y!LlExF at KqI&8yLbX_@>I>Z)j9QPhRJ12VZ0M6#Rve at TcfU!tb())TcUO
z*;N{OSIQs3%rbLpU2-djhIE<t-{SjX7xQdGI9a>g<wRWQjxp07%ObFnm#y*4D<Y+Y
zoOeM*<OlTYTMqc+!jDx%rc+t(w2BChFsuHXA=vaPJ*?p;Lxi&Bv+jYZ<Iycw7m|ej
zP!@B9e*qdKg^ob{ZDsn at G(J&*cf}%(s{A%P+$g(kyO+9c8+Vxu1`u4cmCv6xVY$~w
zZ at 2JUGrinTw~F(pmTVCvd~Dv6R?&w}6AbNLx at c-epXfFu3cq_vMc;J3Ls-*_K5k&;
zR-4EVs}qPB6Le1+=pT(SA9=T;51r^;v}jgEA5+X*(Z>{f)i}*492bjEZ>O&Won?4>
zyw3`MWKQc<wDYzeWzkx^$PB+)(FbPme!ZfP8Nq)qs6(%c!_Pn;(p5(IPxu)h{w;p8
z!@t6hBm96`TbO2?R;Js-2A-scSCrMn*>|7Im_AM{q9cIz9c9|GS&n9RcN-B at t>pC$
zZ?>!MG at FzcMO@(E_W>#r{MHr-Z6;=EaEKUreX)CBJ-G+zVnNEa<?jQ?jgiT5^(TtB
z`gNP>v+3j3J5 at i95#h5J at tdalAH{E$@1FGqK2K%+;@qAl#pkl-v!G at +yIseywoeMx
zohILf=5H43d7!nZrp|R#N_VlSFZ?v<RhVtQKi_;mPQG8w at 3YMJ1?GFFcpv%^=f6ld
z-_JMS2kXT9LVllNzOORhx5)Qjz>)w6deSfieS}H}->yUS>cTX&wpHsVAB1xsuEvsp
z)^ArU5gu2q#nPY)rOb-fn-$$4EBf<bbXyea+l&qraYv+VP<@+F-yL<L0}1vOa7fVc
z;Tw>|s!i at VsoP}&w^Ld0#!>E1IC|;q5_Fqr9573^)y9=Xp4elt at o6^-Zw?+6hgYDM
z*4Hu?q20$gvz`BJlTIna(CH|B82%4#*6G7EE9n?D>!Dgf#?Whn64DvNKst+xhW8GQ
z2f+4D$Kmo at sBrM!Unn+RW9?tB?<6Np#OeFSF-f4yjwOZ+ac;*rBzn-_si(wx{PBN^
z((n at s=8;V*%4D)=Fr}M2KA2b5T$F_;Tk3=J%Jlo20JCU9-NujTjtd#u^X!LY3qNE$
z_j1uhBSkl!XC!^86*F8MTbQxl_V at +@S}+sk>K=b_p1>NqBpUy*gsAk)wAdHjomA=>
zMDO2>kGITfp?d at FzudD^$4_{9v~I$G;c^@<QCQb_6HV(YxSWW~`uA~(fcteF9k?ur
zT^7eKXE89;tRd*XjO;O9i7t>^&ex~Idut1VXR-IlH^$7Uf%q}}<>razmMa7*_}dS7
zivTlA9n@)bAHdw1=&N+Skw1^=N9%dM at -(?_P9vdNE*$AA5J&pD#bTJTkPr4<hJz^v
zFF@)g`;1 at m*}ewd-LCBSNA!|5b at jVqcmSWRfRDc5Y+nbf{izP)H1nKac|8Jv<FrE%
z+w=oiN!JEbmVFr~GE3SQ&cHV83FIYi!_lMo^&lDv%9BXz#7U$X%HG>Mb6%Clk#H0#
zCz9>Ig_u_O|2V7}-CU_3qCvmzX(x}s-5Gvn$nNU7kgh*%<Gsi<=0DBwbm(WvCTPtL
z=udfm_W at hN`Q0Y|SndQa+8#Z>dy4ikPH-BjIpPc__GeEnuNV8X-#1UCY#MSZMejBD
zc6LYv^i)CtGk>LBgr0nu)26iW3)7!2-G}sk&++NPAbS#gj<;UyV0Piug1b91D|%F^
z!<aH#KTDib(y7>$v-QTrW4+%SOgyR7ssFS<zcL?3mad$J6R93&P6IQhII)Dexwykh
z)MW2eZefr&$R=*3o#HUgmRo7tM&0S(LZd=HFC(_^x8S at Ced)l7nGVCVn;__(F6996
zm*{`qP`~OCK6=r?8BbZQcMutsw!GHzGl|<)4-lvIxI2-SkP5zjd*|gi-j^D(@tN>?
zZ{hH$kE{7Crxb|e<GSuZz%f=&#i at j5hhk}!a22U9m<80zGaa$<k~WC*m+rPace}a*
z9wTH0Nqe at 5^Oqza(GBA3#0GJTgd9VLbEjH~U|8y^_bume-T=cCiapjH;fDpA<+L$t
zX at g12&Nl13Le^QM$T+A(HdXb{q05HbJ003T9Ol;hx})atl$=&-rl*S~gy6*=p!xGw
z1pGWI==}MfN|_Nom15Ey!a|Q(kXmwHB654Wa){!8J!aPbub=0#)~yU%w>XVrIrkOv
zfIUHeV&SN~pCwC|bj8N2+Tckfk1XAyKkg9y;Xl<O2Gc|J*>zh at eWqH0g9cKWtsGUE
z-LvI0Dl^VG^qG`dREyPszh at YpHbghjzAZF~*zM1{TkQ51`Wr>FOfno%qzEMVJH(SG
zYyUWTbX|x^7tFNo)5+3Zmak7`OXqGkScQRq+GTt!Y{pJJg{gCh0<&R!e4g9VoGQ&m
z=tuoge|4Kn4zyzSEP57Voj40&mDeAZ$- at xy6?xk2QpF;u#0|?{5F}Xm1%Hq4H=#cG
zm^~uJFw-N{&&qp5E65DR=Q#*WqpE#BGHUVAjM3jyr>JWd4Mf4+JTN-Ana6qm*g)KA
z8w*?7k!Mst&gaLDB_7{7qgS5KS)wGK&*?v6p3fOs5-s|7;q at SN^-)P^)Bisa{cB_W
z`$NkKooi(lLR0^aO5tS>Gj;D;Ia<>(%OJQdZvW5;^4os%@C`1ah=s~Wr#JZVQGr|K
zXt>=S8CBgurBqJkg!ccc!w?$40>|p#4+xt-jBx&(&-k$8c^WztYmFSZJrq7NI&-~z
zgyU<<cxEC%8u`*32P}NCx!={LACB#HrBcBVXI}Sy6(c7v at 7;IGjj$X17$`cGojJ|^
z$g-xm*n?)gDH&f=Oj?#Y#RRY3X2wa&Z{>MFS9IvuM%I_Qa_9{3cTQ*q*t)rw=Z7%=
z`%A?ZZivn&#>OkZJ~ZNZg$HG6=6vK=ucE<t$KPq_g at 2pzPmZf5^hHNd;<7k)$s?%8
z`=X;QF at nOdO*b&Q<2r1Xf!__6SO-7D#LsHsE=q`JQsB^Gox5qwqZ3!ruxDYuaeV={
z+tILxx_OHXq$S2e2%_cg)EksO5lc%aQ at cl9-NVOqdAB2RS1t{Z+N1HOh!gY3Yg%!>
zoNvBUiN*6cf%sDhN2;!Q!zSZ-+>E2zGJ;HyL_yYSi6EmiPcA3Be5c)v-@)}Syc%_X
zVw2~$Wjxmth&L5hWc&`d8E-16G>3mL$6K9453_a3s7=d$gPI%fS~GH~(9a at L@%WV(
za6Zj48fe0*QMmOmIvYnV9YVxx5nr)I`bm$#Ps)9oSAaxFf_4ibWr!cpkoW(>YAlh0
z>uKSSrA at m0DY%h{8icdoCGFv}IOY(}lD8YqoYw#%K62AL+%vzyY+`RT_ExhQdP~GS
ziXsvX&IBKoaLnl?x5*5_#l9b at p>}~++ptc~K5XN=o}8R%Ix#glIZ+R%a~Kat1ZLtR
z&0htELuppNAx1OAmx`h)<4ZBkI1hb^pc#9aaUjmwC}?H|wF;kU(u`WF<TOi~y&ff5
z2a^m_*hI1tE6G|$C7CBk^lG(6Eo19HN|37__il$c0I2WBxknO!2nL`-Ry$AU<I7Hi
z<G~0*3o6q?CUj>`W6m$cI&7yIH6}l{kk2QyA03QEf{K%4dMK!=Farhth=RpOv2y!g
zFkZ8IF{}7ngn$Y<saWVCx+L7m(I`Q067K5Wf8 at NZ`Y(>)1%|mumK`A*HXi$}Rv#9N
zp9WaBUFjVfuIhC at M!inPFYs`&)}h4~9gCg3{($o(#My^s;UV^+uA at Jy`^Dw7*d<hZ
zU8-#u&F;^$YIbY9T5Emk2=#5ozb!mxIizN;h35i!4o%i~MqGXI^QlyygQHoy))#oc
zg#@1`>7~x=zF!)O+^5(?R!;H)knK}u<?M)!=dRDK7m0G?@E7n9zgA@{{{3h(VSlS5
zGTUyjr_kl}zJ+I%PsnHc!mlLE_ac6#Sf4FFij}^qECLx=nnloau==;Hy<&cuTAQ4<
zVt(0XSb|S}U#6$#*2gWWs<l^)*ZR^Hog#Bw|LIIcvH8w}Ja0{>4-wB&h)(d~$H_gY
zH}^Bwu3Sz(o5j at r4HwEe@thqZFR?SY^%8hPzH!=sBF<2114-WWE%k&`og0AVOlJ5u
zWzFuxb^_u#jO^sS$!cXf0bO<;qHlB7>!rzBZ<6mTW!kcv6z>&`Xy|)vPMqFD>Y87$
z!Awyr=QA#iTnEo}&$ZMe8?o=#iY?TO$m>)qwWpd0aABF&r+ELU)=nQ!ZgT3PN5xu2
zhFaUe(M7ct3@;67&;eG$ch)^1UYM{K1NI|>yxxD&%;i{q>m%GQD#4{6al@#J3CXJ#
zb0#ht93(Nq({JLt$}e+)`mOJyzj_5|mw6I2lrQ3q2i)CTXG)(4eG^Pd=fw<w at Lo)x
zZ~mGlTR#C8NIr86KL3DSUDF_v7`V3INUydnz<aqQ8G4JiKusr7^d_k**YREb7TIzM
zizvx^6=Ena5aqbY`zs_>9-*?lC9JGs*#z%Owem77(Rf#ig|)huG+C|<<!;0~AHCa-
z=i82omub=BAg#m^BtGLYB5~d^_Rpj8GzmK??q{bwpIC0OQCL7f^Nhl2^iymU7SqoJ
zqcEF(oO4Wh!+F}p3a`7-Whq~d*WD-(x`OWTbUOVu7Z!ux!`t!TyZnGd{)Yd^`BeBp
z0Y6xS2kHEPJ?)S;BK8Q__}L_Wc3mv~UM!wCR%MSG?sQ|u1R87jcX?-PKbvUtenF>!
zhmU02iO~G+bgbU;iaGo-PBho^kysVlGOkkekC9|7H<xqrevfU0u~^~alO5(KWy5 at u
zlJH5K{!(jaWorFSgali=oIcLoQ>wR;0xA9?<VSs=o_><m2O4qYp0%6r9eQFHFH+1G
zyeV%dJxQV`^phIuV|Bt%5)0$dpzmQ(7%x)epe!#f!+tFW<D>#(T66cTSJbtQBcla?
zsvmK)h5 at SZ%dgSPA%L|G1vwY at 9NDA2mozf?B!=+8AcIeAi~!#vUYgKLhk&;e_}F^R
zTt3F<H26sQRTG=ttvovNbfUX{beG`MH9j0U$G*}^9yGXvxjkE_%08WnLepd#0&<Dc
zvxDj)g_8mY#G)o9(Wu~<3nP)u$oLs>cge%&PDDnd5B`w{CF2bCAR4E8Hx|x$zRHu9
z3+0p3NJAuZp3I%jv0OMZKOd^bRN!SZ1L=xR{d43Ky)B2vU;7MChtfFNlYaL}h9 at 22
z_Xx(m+ at 8t4w1x9SUu2JpeBU$$A!oC44k4J=OT?}j<ep5+&cp)6%xok_NS9I7T_SLX
zx}jO=4mef_wajtW5w)#b*-4O9?M0h77+E}%PpYQ#fBLQ?;5b$Ij80?fEJc!~T}&b|
z3ASE`K;?^Xm2J9gX6_!P<%q9K5KrG5+(M&0auL-HZ2`xblig`DItzJs+yoIkH<K&O
zz?9_dY-CVPXT{FAcN^vDO6!rfD-d_+FYLKFjX4hgn_h#u-4;K;NN%9w^%}l?IY)>V
zil;-;eMPmH76i)G)bmu%?wyiLo_P9Q7g9C3J;<}+ZqnWL95JIQka=ccX2#L*DaPrB
zq9<uP9QvtR$dUK*!haYg_0yGC>C1&QylB;$=88y&rTdh3!at{WZ+`+RggEEU_k~X3
ztn;2=EZFs?$KhVhl}RXuJFmY4`#Dm<+}9FwKhGOXrn_*am&oqM^j)xGfnp0x^s~>r
z1MBXOF9f@{f!zm^c&mVU?wDwde2-rA1dYv_uw1kc|5}v;h&;Mmt=y0V2JhYm at z`2u
zT2jb{kb<P|v5j;Dco1O<z~8 at 1PkVzs{owyP at c%#Tm<MPVERWs;SGPnbi_ at _Js@=lU
z*kN2TlY}5a0_um8fO;VTOF}OGa<?e~;~@d9IWO_eIAR~Z$VSvB$z3g0;ixx-13c_C
z=f~634UO1=n4cXLkvQQ%$`e9$1j(2l6^k~DSUhnJ#6qn`{OjCZ9Q=l;myY_4YiClc
z7$xi1`z&9V$*(^UU)zuWb*ts;aq{bDSz9!blYB7&Njg4|-4-D4djt>-KyDzZ#s_Uy
z!G8DFM8W<c3+L|KU7~LYtI_&pW_AYmio4#FdB`VvrIn*j9<N_k+=7rF?mEScSyP{b
z0MGS2%gTJV0s}ZIVfVU)q+cA9^o_dvNtX1Drlg<7{=-mdcRx9uDkN#=P+CNqVrVq?
z^IFpqA^4s&tP#7 at m6wW-9Kew+PfO^eW5S;?rgNU|J{~AOFEkWk?7v(rc`Bav(51K(
z#nPxn;Wy;Xl)>mX;g{sIg_dWV-~)>&JkT+O*cGG^LL#g&%k0N*OP}Tm)2Fd2q1;EH
zgqD~}C>q~CW?yGbl!IGik})R at VFvQEgXhl^#`S_bplv#V)v0!lO_SRbJb9kQsFrkM
zn=9*ovXOgwpd-lON6$pJ at qo#{O5v|JpUEb++cdGkDNeED_w2cfEw409$C4B4mAl{>
z=Iqr=+o2WGRShRT%>4j_c4;@+u|RrmOsfRaQ}i8BDal4 at dd?@nmGf8z9JxH)-Fdwt
z^7xcEjVos=hxtoiH(36Fx<RsICw&GY2G>i`ut`%s6*jM1l&8`-U*AXtv&0NbCUgzt
z4)%>41Lk(4B*<iHAr|LpERV}H&Lv2Z6Y+HQko2gP$W)zE8dTm!Lsxu}=QCP|<7Zed
z-cQZO%XMa8uJdSEtuam|_m(GxPS?VYy!}?|wHIw7wpn}|dT3wNkP$x<Gw)$$4kGm3
z4`Tbz6yOrNGkWYD6q~}Vc~}J4W^aCu%m{TyyJWx at Oa_bw?Rn;5s|idvuTasoO7<n9
zP?48s+>?eg32^l4nIWgRc*jncw1sO+6KvrFw??`1ccv{ADFFmmX5X%eW6(`FN6~?Q
z<d7f`b(>mwEe9QS2G7O8U-$E1*?od#TLjA at u_#8IXIe&_m|dfG8OdS=j*yy1u2Eh&
zA>Jx8R}kZtq~*M(m+$88Q?--rL-+ec`8UtXzo{1f9SBU!6Un=T at 5+@W&52{-{wNE#
z#<8%Bu}Bnn?<&E?=h$r`o0z$5Apt&p?Fj(vumJpp1c+eD4A34A at WwcRMoDWFCIG%J
z0Jd8I7D#~Wqjv0ShMN=*cMQRW)a)D?%{Cq<#~^=rrGWecA;GylLWX<Ahb+TwY#qnL
zPi+-8OxVk8i+HyP@!o9_Zz0_K*o=)V+`%4l>BRI;4%|jC!wQAX+4FX9u at LSlG2wnf
zcRy~P#~}HBVs!a_JVCy(Ku315qG^>m|4M8~CQ{jT*^&L^2<jy*p>Ilir2w7KZ87;K
zek@@5ZetTx&+_dV=KUDhuD982IIyoCvm4=8WAAa`B)knaYa81vIdk!=ACt{mBjP4+
zWjjUv^W8RS)aG(8$81*l+DJsSLn at BA^~h3}Q8Lb0T%gu2ILB~j7VGZr0`FypJEItm
zv^$$=*%iM&><Na`)J at 7|$|1wCl7^G8{aSy-7mmQDcPTpzcb3wim3K#cd!uWUar3XT
zevE&zup|Ad0>d{>_jK!x4F}IvT3_#l=3;DuT5rTVHzB at 7MmSU5l%j?0MtOIUk-pNf
z>k78sP?w@#wE<<(J2cigl?oL>HKc1OL2n`@L8Ckyq4!*ym7Q97FyebE8VoG){1>T-
zERd+g<=;aTLVUS#YBeI(L`pIndWkOGT6t!~dso7K65#g@#?K*;!%~7mKMju9RRY3E
zi(Vy!&j7;OfStbbUa;uA8Q$-)Kjh91xGLC(ql!_b?~yrTO<*9&_pXGGD7uy_{s}h)
zrY40hj|E(b8!tK8STOwy3aE+H1LR7ys?`H#6O*VLP at h_fp-A*R4z+I%x6c`+|8Pw_
z(W?Yfq%Qg$k>YypyYg<jrwSI$h-5$7Mw~u;V^8#oe`-v6c17u_`p01oxXCG4b!sZl
zbJisIcNTeBkgwJ*{_OJ7XE>^c$_w>@vO{_Oxbl)N>nAR(opla2;F>~0D0m13WsmOZ
zDCP~h0*|1%-l`vh#7t2x!}5)gSyIk~hO!e%x&hd{!`K9c^zLMAUeub>t;6kje60MF
z|9^mgdjE&{CtjcA|4-@@Qi{|B<?X0Gx&Cv|Csuu)|L at f2q|Ax0mBHiab7xe3g|W+0
zH|&gw5aFd(UP}H~jZvNvIvvX?BrxixQyV&*V;bq&t{iIUNE_2w at e+EBe1{#5|Cthr
z at 0CL+p?&Q9??*+8q^c`BiMRbkECe3m2Q2T|FJ$<!+5Sobp)|bb9MekI0P$YhnAVdS
zLK4^U|Azu`{L6YXJCLbCC9vD0`s<Fx^nuBLX;NR7yNm^s)Y^h`h!aU5;PF}%`HjMs
zbjH?8jMC2V1%%EFbyNBT(MOI6(M}RK)J>$jWlv$>E+H}y@$E7#Ot#Vx$bX2H`bIuW
zasxIy#p|aNkdJ#z`S|)U^1)cpMH2WXV@%`7%=_;vL{jm;0WB7j-BNBcO}T-RA-S2v
za`V5RmjBI#qWW6M6KQl3DWy-yQ}r<Nlp*B_{!qa=LnKM9e3A!SLYgf0$|&y)|5V*{
zO;TOO^5x5~AfHLybc(v+r6ccRGHTQ1ioUlYoT_eU;rINs;b5xnX{UGghMU`+4L5gW
zn6Jl_wsQ&n^@dO?jWiqHO&e3vJ_fU@?Yf<0lJ^n0$f1fvd_U)=k)6yAIBIlk4eAn}
zmg at fzI}jP%z!CDHoBKygg#QQmjME&~QCkD~rxiy7n at 06VF#KgwV at Wg652jK}R{AVT
zEk)bufWl}K#0O4+iB&vMn&R6QbxJo`^@SCm#R8vZD?XQ-UNO}_4!u1CdevltWRnR}
z1Fm}n7n~`P*gG5&n at uEY;`-k=JTc?}ec=;#GD%|kv^*I0s<qdo)SXv%aPbvt?I{fh
z9pD0!1!^z1g9TLdF^ZT^9q9OmgDO}-z5+Y&YvKd2fJ*&OTtF;flynjoD6cXf2qpjv
ztc<b%H;=qYOvt$c6R%PIKeX_`F#i7p(|!!g at 2sEi91H#I$<X?VUpqq!ld)fvl*{y_
z&6q&gihnr`YV9s{Q)<o*{cUx_A;IMT(7PLY&s7dL^rz-fr%YGW+5=m-bR&868ya+X
z6BjgmO-F8TGTcpZrR{3%VJ_Y9p>xb9iJz2MK6!~g*(~6K`}Pv8Dqdy|Jcnq+_z|J7
z2m1|1dn9DJZUQ(evZ7i9f at _MFmWTprE3%B!DBlsXh}ay%S80yJcvNIhh_e5ukd3lI
zTtEE#+2He_tSn79Ge%=R`QOY2C&~fnfPW(!{10n`&s)Gg3kNW&N;4u!L&cYOl4JLC
zGb629x!u75t?413w=L<6WC!Mu!^iF67B;&(@WV5_IXe&?t at h=dou5<ls8whjwaneY
zOKsAr3F$3n2MkO5II?dRXtrBT2+-VxeqeZn?dOLmT&EEc9hRd_W|oMy{hJVNGu&<e
z5~BM)A4EqML&4PUeWI9WA6%UO7erhCO%!eArKEp>qPzc1i0(GryZ<F&YWX)I+G4m{
zJ~Kt**H_`OVp at RLO)?ECR_YRimiv(Et!aW8XfVNF<;hN8rco;At0!Hq`$V{iEZsxS
zYip5?Ja(yyIZA6c<CnIFfDn<ZP>_pTeudQjNl_B)lO))O%`!xSeK8VXCS0oaLghq0
zFbzQ=nOKq%NiQs1f?5rI=jOb`P}`6&Ws}Q}vnZP!DTc2T0~+c=#|4Hjh%pT^Lsjfz
zf_@?oSi$pG{WwPfT9$NS)a1!lUKS&q2X&uI^{24&pJm-xGIahj6O%{2anj#6O2-=|
z6V%F5d%}6)420-(cZE(<;QtfJ3e`<#7Riy9GQ~Qphq<E9r2xGj?scJlR?+8G#b?2R
z-)gsaIYo&n`dNj*Lo4qhQ+$v&Hg;jj6}>JVay(RbS0vlNm?vaTFT`}S94?<a#WGk<
z<=XylzqjxUk4Uqy5|kyEZq31W{z}#V7t72`{P-W6VvX|gM(G4&!6b}Ai6xP%YeC}r
zMM;K#S2)k`jN>S^n8Qq+ZkfYGzd9yF+~edlrb~7z&WBw}!sB}p7-H=tTk(uj-ca at e
zIqVQfUqQ;s_v`CMobM-j8E5#$N9ARLQ8H1j>`jmtIbQAxT`%P&rAXa$*7PWPa;5?-
zm%#|iqie4Jrjk_9ELSxB|6c8oy13GiFMP4`x4hZ03w|-q<_WpGh&Pmw+^t>5a`!(>
z{Qnarhps<l!Jsq`kz<#fWdd~n=~hu5I=__0 at -k7*pS9Rbv)q*^&%Um3IpHbCbK|C8
z4s*Wg>?wN5ICaB;BkvpT@%mnMlT&(~!H9c2PpI<r+610U?WEU;=6`div*G5TWj3`l
z;+}wFE}l^3+0;&>Bshi>(wfcJ1|uQ}Ae&Qax=Se;r at W?=jE9aWnZS)^<sf#Ankybd
z<}YLRw5vc^Q}11%Ts?O2nfgTL$_#%ynt$VJMcYA|tVq#z+DXAi+}%8-s%Q=N1T{+(
z%yV}y+#TVZ&*&RoU=K<i+XWr#du+t{)tLSQenNY#<c<+I^7_7sUqKW<Moiswt)eyC
ziJ5?3BOD>Z+MIP|Tobs86k(pHd*SwoOi(THeFOB3M_MS}s)WD;L;b&Th6h9?t`ZZK
z#3*`6r{u6bQ4VXD?dcHv6 at 2ZXDzu~aES_T}hl$#8dBZ`6T6;F3jpWrOU6Rv+nmZ_G
zYipfyJZ8?>c53cUd&5EbM)&M%xOtz`EHI{&Zrd`Vyrwd*?K4W+ at ZYm9j@N!_@>&P;
zS{HaN$h_8R<+Z6+A8v?0JQGri*rnqFjshH8;fdQeqQuT9C0el`)z=!r5ww7(`*Iu|
zn4O&wAi80foCn+Q)75Q-c5FkZUj>``NL6S%l6bS+)M9M;y8fNPNWk40 at N{5{U4Rdt
zq#^7ew()z!7Jhjq!5y at GcVEY#2!YWK71T-+m%z?UjQLEAHmrH(uY at PPLo08Kh@((u
z$eW at 211h>WK(2>I5gFJbP(Ds+ZRoHo4SL`<WRGf4TJ*pzoQ5<*_s_ at nS;wV;^csEb
zJoeVI0**aOy;?o-6q~J~*WTmKOw!$1zOg;-j3l-45R!?MXWG=tF{cdOADZE>*ZnwP
z82&Ek%a^%5`g8bY927s};J=0cqjCf}eH8DtX3odE4B41ozylJjMQQ4$8%|X#e~L5;
zD>GBgSBhGBaxx=gS1YmaT3wkX5TiE;jExhM0sjQv$nNC6;ZXrPHNbmF&{5b3Ny9f)
zbj&n#%;xu~W4NdhKrv%2V4#y)FpLWTW3!*8xI``4)>^WnwPeQEa+0N%tGSjehM&oG
z-7+X at X*JdYoP`_AS~9G)q(^H>i?1csQp?}pMJ?$JKaK0kh-=Gj!?eX^t;HFw#Svdi
zlBJfFT#J+8qZqNAY=|qdA=d7?DS2pj*{qc#(}<|NcQCH<Q!JH_<;poJNdU!+wYHJF
z%PDI4bkI^uceIwS_*%wVYIy?E%0-Q}U4seT1#s3@%36ZfS~{b(bi~(^VyWd~uBDUV
zcW_<7!4bPl*3xdRr7c>^zW7?~mRj20K`m_zf8U_ByV?^QV(qS9Bn|DZR%_+Eqm{SB
zSAMdk^6zuyySa%ij6&<+h~4E7wKQ34sgKt3e0(iqEVcaeZPZfF at SjiYuBL=m%3A8I
zwLBZGWn+9T$(CBya4pX=e2#Ilwr=F^lC?Z(tz~_*mM7wCQ7pCOa4qW@{u6QC^<-j0
zM0XwF?%Jc6-Sw?#cRg;c{E=wo>*6bSSt at _>EmZypH*p=K at c4+`rHD!%uvStNtz=bv
zB~D8v)47rw2EQt?w;qUZq^zXcT1jQJlI8K0I4qUC*N#dm8T at jts(QrE5|sqJFpT~s
zfH^ZeEwFYmuA*i=LsVi_w at bN>#SGmW*Hug6S|Kc0lCG##ZzBGg+m)uVRivL=#Ls;G
z`7e}ngx>BocL7q5CaL~!($mmtY<m><cOoxj>rvbb$g01y7e)G!T^J=E>qq9u=xqny
zPU)lD+cO=8pRImrmN3t5m-3F)M(f<k{9RQ>3f5IJ8bWqGfQo8hp93YqfV&%3I>4db
zm_9Q_Cor9enDKPF=FLGFODswuPq(#`$(st4;H*V at 0Eb|P0T(ACDQ^m23b6 at 0qg`6!
zlJElLVNP)bN?HZLHa=qLaV7w?s>tUK03f-htuX}K;xuEx(-J6Y5&(A(kD=8>&S!uv
zMoE+5**zSF&y#Tsl++1;^}}OmW#`iw;PZy3POz>-vOb=Q8v`Xz3XsnZkE2zc)$a$$
zjYi3nhUeK~1tZ{jf(iM!fVqBnG_4lxHir3x;dwj`&GiYiTo)*LK)`%tcs#A#lff|8
z86^)Go<~N&a}|@bTEMIs9#5+ZYH9<_Rfeb9s(d^(@#I_{2rP*R9T0F=4v(qT4Bf#{
zmmB<*;i-%vdy56xwH$DQ=o(mH0{1VD2&FR=YpYjs3gG*_?079mbRrig_+HMy+FP)j
zI50n2%Wcxz8rll0tGfOT)N%{MpU-vO7UyBbwPh~1g_P%<Xf5+bY>U;>OyyeUGW<EB
zu2@^<#kWNXtewS8nHjBQ_J~cfdLM874VBDd at H4rp*&{iNfwj}jZYhY?QaoZ)tS;#y
zu4Nj-FGy at k@z8FW#BG at vttEfNwphn0r&2Aj9EKm?8_(f;X+?~+`J!3UoQ&y~D8#wq
z4QVvqim)CRI$rgE17;%F$Lij3_cx?vC}GP$cHy<5V>cKO)t`JA=bkX=6noq2lR{00
zWV|UJk9OG-$D;v9g)T-}?u<bCEPXAHwJ`L&4 at 1x7)FDGpa%DP_%%SIj6wXf~$D0_T
zh0o{lCN44F6oWP%Z}PAYV at y2Ln#W>{c^5K1zJLc9W0D=eVT at XNKX%%#oS9_4q8hKT
z3pdI;n|%Uzjp=o`SFy|Ct{!3NwQ!%%C?(ZUBT)_mE(s$pp-C9#a^c1-8F{Srg?&P$
ztX*OqXpw437-cEmGT|vLwvMR0(c#>J_$sVAyKZk(tFT6rs$}>k$Wh2`)>>|f)-pf7
z7ORQ9YHw7lteqb>XuK^^Lafc1XRT;%w4yoj6<N(%XirqJuu_uRWccPtFMYPPmRZqS
zX2#cIbwRW}QO&Y;W?XY-M}~UoiuYzwQL(k6Y0-)bA|v{-=j at 3p7gkJCqYT>|>BmAd
z2(2Rg*h!J&__3Q_M;)wI)=rFTOnxNZkA;-5AFCZT{a7GCo-5usLI}qzOR4^6;ik?z
z#!AC(@ElB>*Qqn|JZPyx{z%i)#OKlZ)<w>!zd7ba{ml<sKVN_I!Pd{&-*mTr&i>}7
zuYJz`=I>sM`J3Y-pNqda>$PG1O$!5mc7OBet1*Amg63!UH_1#`!2bSKX=};t^hvi<
zV%nW(R3pr<f|phQ3}W|?>zHNyX21J9$@^Bj%A8MPq55<BU`t^zqqg*uUQ0eX8GnZ?
zY56#<gRJAa`1RF>gLd8XNK9T3E{X(&<Rw`cnV=~%qRDAP<z>?=ro6-ni{WvJcG^iw
z at U>;qJE~67hLM-DSB8-n3%scgNC^YnCjhn%1!$F*GhQ*}B~Dmk0G%Wy0$_^(*fbPi
zlGbcxorc{)WPGN`Bs6-eOKVJvlsv+#4?Gc5y3YTmcY;>F4laZP1Xe2_qOyxFre}(n
zH^T;z<`e=#T_u(-#3C9NG+v98WSYwvg at YXJM09!ix+LFD;TzOPeS_zPzfm`WJ+<!^
z0$NfBsT_vJ!cq&tWPlq5z$ZtrXivQ?#MASnr17(fohAUTj{<x`0DL?K(8^RdzAQwu
z^l``|flTN#dk8au!=A^G at iv72i0x5XN-KGWO2DC!5a{G(kq_y*R4=K7C+Vs7IgzP+
zpJF<Tw<g8n!NXs4*Mz at p-q$p{Yj6co+ at X+HNAOE)sL$Xfp344ajS}nM^)~4bUU>rj
zW7Wtvy<{rTIMr!*R>hO^g!|{zmxfWFas9)1&N_ZC#qrUWU8V+&)16T~?E>B-q(lY0
z2NKjte6QcSOAOYdTC>z;Rhb~Jo}^Y`wu}_4Q**C!YPZ+eLyHHco8YcCN-AaNkfzj2
zR|yB<AztCic>SR6sfn%sp_5E~x5$y8?+EeXS#xL03FtdCdsuxpv}^8eIT3xw0Eg3e
zLp$XwEhFf=RZ#?Y3wXn+JIRdk>TXXnn>2)fHcCyE2e3xzD$|}7I<y_mNJ$M5UG at J4
zla4<YQ-SuozYyyfHel{m!g~Gcs2Kqx?);coj~$1F=a#thVeX9AgSvZnP0U`|1D@`H
z8}=$GVL4VXSo%<VmD2n<*ehhhiGh4(r|3eT*@cPL0Lf<}CA(R97ex>nB}4Ij38 at f<
zD)%!ZvDI32)3r&|`|74E>;jj4LLOx(7=hAE=FoVI&f6(?pp?6R82u^slX5D|A^Wq&
z$FGNXM&kqcG7|D}U#$d6y0JGC0nh>*#XOxnZV{eKxJp<Kw=9E;@z0CHc0p`8`*Pp!
zjFRj?{u-mCQ+b()<I}XJ at gwbznW@$mXJIE<Uy4}D5aE9s_rBNDIA8U at LU%olG^BXi
zjti$+`4=<Nceim>wsGk={SEz9-P6i>19lr%jo0_;9)t>4YcI<HnD7L(me8`7T@;}q
z|D!3`0+FKal=lI?rzXn#a=O=BFZ0(g+eI+8*7*_L0L>nMpCu9u)vd&WvOe_{gtegx
zi!(SL>B^JP3?y+-Yj-_-q>oYSh#~B0=O=B(z2h4?#wObw0?bd&L!_vERE`YSlmfN#
z@)S-hmfKUY17*TzYvmne?W!HvPghhi$a`zoJjQma!;WA-nNO*e50fQZ`d515P%E?f
zoJ5Dy_qt9!ogk0x>ZbH!Z0^|PDAwKea(|TLip1mT;RmST7j>bKtfK&}!BJQ-z*ww4
zW|JwJCviTFEJQ-;Zl1z1bx9y%5!Wq*@_r~|TGLG$jo8)73lVv(PyvX!0t84gNv%XW
zPr579?#Z$dFW8W?I`8deU)J|Gyz9)_kKA{QC+RH at SA>AhkpbP^RPFd)QQq52JLxmE
zb_!M4o2IVBmJ<L`)RkrM+G~5cpB_FEF at 8G9U++s68Eh@RvhQ4u-$iXBRHo*W-zQF-
z<i1(aV6)^0!^W6Mn(kVsuKb8pXC(WDf-2%2!H1#Kd9Et&ZFSA<xY`v%xM2vwq02C2
zP`0=FMexq2*Kh^^F^Nqiw#PW{2qzhwDMJwP#`h3bL6Oh5t)bU}eWAm2oZg1`4;?CA
zhrWziK`NXwT491kZtdtL?8hk~Ux%JPCMrxF9bAe=%sy&~<l~lb9JfT$aZA{bQ{wgB
z;}npuLtDsT>fQB0B6Lf<^hHHaKh)6Y(B4gwdv at F7!bl8X-2PdLn`JEpL!S%?v>c<M
zrM;^T`EZN;Fm?3yq-gIdpP at a;pRKs#vlUPJY{l)LrTFW8W@)o1eKkr~C_^ZEOMfIH
zRifT_nOgmqKFl4os+*==sgNqT(kR(&xo(MGUv|&_(9clTzU`<~8s&yGS6*qZLOYSM
zf>rB{^lo!zl?*<Q3{9jjOnZDA;+?zG44<pHkW;&oZx|@dXfB+Eo90519ky_s_~9h6
zWzB_OblCK7>j)ZeS7gN#vxCm(21&)v$QYWx;7h2wE<GBaKOK1OzXS=^wWixxn>81@
z*jg2yv;7P+x}i)rzVX>X5o*6_^Ht&%jZ;3<&7`cqpx0$u`G;gFHlqO(v$r4%Lf~gv
ztVWT-d)wQCNPdt)sAs`UyFV;LjQWQ--v8C-lxh8BJ$EJZ$7<~!gwXe_&vCC0xZmSe
zCdpO?zha`&$<H&*=O^Pi)mE2cp+_;-s`_i#WUp7eZu+03R<1}!Hd`}k0g^9-KHzN+
zO=_(j`?}r0Yt^^mT=v at 4HRrSGvg?Je(76$rb)X|2ueaU;={+5Rse@(s=D~)tivFbK
z2xi{0o};3xo9fH-!mOx2UR#*O*`aCZdv!7#3+$HU?9i{G_SFs8#MMup*cw4o8WC?V
z5Y?rLF|kXGiMgACbKeqe{bve?9B;Oj{P?cBnhP91zT-z(%>~YdH~-YvT;Tfg!kgze
z7o=r<sqoI`g7n+&TzGqPLB@>>zC=Yby*K{I7V0{NkWb_`qFX|DU{KQU^!`j;a~)ip
z{uH(HspM$x>KF~@#&g!PixgYvH^_^k{p=hXgoY48u+YVcD&9H<V!Gecf+@(3jx61=
z#94Nm2o)I&>?58cX0e-z0s at 6;+i?;|<`R%O24wC5nUjD)*enb%y<KoiVLHE3%-;G|
zJ97&OS|$^aitc`jnYh!gu5ARbsE>&-^yGyUI=wfc$featYO-Zx>WyW-<Sl9Hjb-}P
z6ZE#+p5U)PMQ#uB1!cz~&CN;-)gsyc%$4&A?s{UQ3wTX#JyY&RGwB18PJ}oQ1=aA;
zO0J=1EZ0zTYOIEfxCZZJB50P~H<2pI-~@ZGpj&#=Xna&SX<PlI8%eBuXBver&PH(%
zEYxfFC2z~RkU-rv(ce=ig6^kstYG4jtM6R6khtWY at mW74F1hiJtUHKH?(}BeLR at m=
z9rJG^F1b1D$IK-^y4e<bWdNOry3-bIpvD!fL`D_d6W>l^Ha>^`7yItpR)5xwWnm+V
z=vNq*G}Z3|6|SDNZNZlb**&WNX534J|0EDrdAVoX^6VSSLKp#pAF1IPPSuYzC&pdH
z{vO|1&5rEdMK)XTx1_Fg<g_4PF&W`mpJc*bEIV6ddHDN=!N~sP3_{m%Ke^wtdw+qW
zZBpB={iQAYgKb%D^Bipp907L=f0_1_Oaxwt{lsrmq1NC<n;>3WCQQDuOs#$$zUtpX
z|2fDE4zzgx7pK<%S{WIH)=7-kG at y02186<Vz&T`c6s>DEV2|@gev=;eCVvA at Lg~D{
z`B{Muj|U6u1~~zaT8;5&z<pr*X?9a5x0~uf!07!8loGiLwVneF9S-8>;Hg^gx7C%Y
z4ra|tB8P0iJDiu5dgUu%A+_=~y5E*HfjZztTrD`8uD0T;JA<yC!c|%(UHuVP6TU!K
zkK)R94qe?39m0&N`p5T2C7)TZtl9k`>4r1<BT~FWpU`DRzsL at Qd{GtsB0bEy0ih=>
z>0zD}d8I_Em4Kb~&}O7r*%HkTBNNDn?i!GK`t9vAE!Hgf!GAGH-WD)kWO=RMiWD(h
zCTNxnGl20ez(~(FNXyFMK(HrW;jw|i3fLi&rF2A}im3aA<MH$*dJ2uAsQyXZ7PfO#
z>-kcMkXuJxnaOwc+mKpjvs9=V$l4>5=^&p&8kCCJHk~)Vvz|R`60*PaGPrX at rkYp!
z8Qf-o<0gf8*Q-gj75yV6sJRGTQc?b%ccnLTq~tVb_cK+afq3gOOnv><t3qEZ at J=$E
zwvfBu%wq#s+aw$WnBIC+<k at lYw9{M>4YuTa)RH at o2qv^mWG3`qHo&T3+v9Z4*yjzf
zMc&r>JrcvpuMdDTbBW{5V;auL*pA4<dp|-1>Q$#g{IYRb!I$H3c{g8<H?Ge1 at A0a}
zjB);5UMH$bACwC53ZIvZq2tc7EK+*Tn{U69)T8U3tTM8fX$!M{7-u%2Gc)g8aE~qY
zT+c{^X?n#pWTE$9O?w^Qd7K69cBJ2|KZCIUA+9>kq^s)?a$&}#Z4=HV0_;-#m-Y(+
zw4N&oFsWY<VELCofb;R;Mu=e+uIA;@)tR^|05BJNpt4H#-+WW4S+d)VyBN8&NRz!w
z&TQRAv*<m;6g_qkFyZqRQ`5+8+!JouW`lnI1AV%s;CeDIe+&H**ESDduf}!#9KK#b
z*PDX`ehY&(WfYSGTPEalksG-9Wqf@#uG6mK>*;;cAMp^PA5?T<GDal%+8n{Tg-yw`
zs|oGWPXmtzA+F^|jq<c=KduA*&;T#Y3#lQ@=X^(`d0~5hKO5BZFiD9sJu*RQz+XKe
zk`#TPEw1ldDE#YXmdU6p&?NUwl=&zhLu(`tEB#dF4>Q~uWxD?l;9UPB^gpMW<rRro
z`gy9)ogQ$&ZF9t`vOPrDuI0NOh}%5j!69HpezOdM4wX>n5PSx466zpL7z(lPi_^RW
zUm|wf6^oCz1 at r<5*Ey_oLjt+-qq&hdn)!M;$oLXLw(}-(KDywg%ix`OzeCsCX0MuG
z7OY+>0<3eTn#n4ACSwKfQ{+rCld55UBr`kUuO#4`qp{O5cJQo+H6z52JcpMgm1m-=
zZxZA!m8(ST`0%gg_s?+`Q%?m?xlcG;IAKK(T)FK02VP(rqK8S=e|eaDm<+xvcNfx0
z1lrIm0rZOQ-^V?KI+ez}m+nT?Grc88B*tLdBM6#?*#D5 at xobJHy}l!O-vit`)}(O)
zzu at 9>%OFsTu}S at f_#(VJ?mQ9r`C4XTEW<sCS*}v2*)Ni5<2r=^J#>NSiS6Z_UT*?j
zZ?8vB3@)+ESw(xInCi`~uV?~rak|*-1kU!N%X|&N)<2Ltj91GCWX7Xt|2+4Hg#PiV
zxJ^6q+;Y)fX91sORQ;AuWp{-ZkzCir_ty_<M1Qp at vcKvr!X{0?!ERB8vzIU`NJt>N
zYq8l;CsE}&4SHa4wEwUy5a1qbmR(6=@EXY-EV3^Rch7NeKew1cF&DUDR$YPTszpz;
zO1S5Kyj~(ahv0wS2WCM9d9SIJ6M)oOAeH;(<VOKW)iBsK7_-2{7kK>foEJ9^|51z*
z{qs?3L$kgUSrvAMT>_eb!U6pKD4uhGN#R(FkJJqfh|k{2>xEROv6epxprGEG(~E$}
z)1ujZm`FKovcf{nnv$-xh|edJ(-m+qUO77@$}8 at Pm<SmBM1MW+<+~<}T5|U1_5iIy
z!o?g-1snl^R-;iukOBAolL)N<K;*r=@I`~^6+*rhFv8vU3XKrD>sYiRE|IsE5%6!r
zTGvlRzPgGo<O2~Y-*n&6z;nEJBMGS}3601sb`Z8?t!B0≀`BrKm-^^?O`p#f~}j
zIC4hkAu1Nj!R!eB>RXB}e*I&l`k?wVvt at moxxSf0>zjNswVS^6S at p5*KAOBw6o{OW
zaTpWOM|FGM^1H}*t-y=AZoX_snbu^W%K2Ho2@^`nY0NIYRpe`~TP(${?qb;j!+n&&
zwo}V?i5%Chaq$60sDCq8X+^@U`RDDjEq4x6f9pu~cZ^)W6ZM;oI>!X+08sO5=V8m&
z@%<t3=kGne0P)5*;z9IU at o-on)eQUnLkZtIg%Xbg<BCJ*?osiXJ{mrm$HymiwC~f7
z|9$g#q^sCMY#JG at N!fsel&!~W&!Q89mo*Z+xc)wW{BZr<b!e3Sj{E-L*N6Ll+-KpJ
zKYl&h9^V-WjrbG_p)tzeL+k&^u=S^ZmioW;^%J7!(L*QLKX06WLhyP=f*04mpAQ8l
zKJSiwK3e}=cK&em={({79Xssz!O^}S!v8q}gzu}Q*NmwSIB9Y*pI6O$*)WjGO(*s3
z6uljb2hC}}S&3J8q1;xi<7-y5D;}Zi(xLs~JBs|lq~;&v4>@b2t|6f{%-dP#kPXln
zSk=1N`zin<+rY+08i=_1xn_|LTh#w`u3xVJV6jY(@@}V5lL0TihJn{)^0mM;5x*+D
zOb#YVU0ucB5y>Vx(ChjR?_~WkJTo3d!GPl&fpJA6KB?pH7;RxNxlqiy87VZrosWst
zg7ojAO)2CNMbg4g#?cGyTfrax9FTHabiRwVCz1Y7 at --84#l}SXGowb6S{q4J^<o>7
z9i1GR<)|A6%d7#2$S|Y<hSroW7Q2V$cR+;N5*pnv%`kp}qIr!=(v%8(pVO%SLLg8Y
zu8QvejNdO2s6oliH9sROIxAz#Jp6v3*E~xPw{+m98dz*jTSAvL$O~nhVI$p9s#iDJ
zk-Sf at smJdgy#_Vu)qobyZ<hXk($e1>&HlbNH^LD#^u01ThOzM$o&j^_HJ8swjAv5l
zGOl*28(JGW#O{&8OvTf^MJ%slHc;;lt~<&jqA%)|+uEp->DrFjlgph;nv9Ze!3L`x
z*p at d^JPfU?SmxI*{S*W3$AC at Xnk==JTx?I5|4rT9tyVSw#h;}iMmYN(ZNc9R$n4}Q
z4VsWJ!W=dUHP9Bs>_zULVqXUmd$_xd2Yb=jWodeO&{&+F^F~k6$qv>3iH$?-7*q4}
zdes$gi&c@}r+)`0?Bnc^U21LdO)}AJ?w&HOyxXR(ZS=Q#zpd8Z|Efp?8<=K~=$=mM
z7k9 at IUnjk2Wqs2bn0;Xc0aG}QRHxo-c!GIXXR4L8sJ1W*vvQlyCk`aS(#RssC=ben
zb?KPP+CFKuNFFVw2U!0lDHfa*<LYeh54C>9J8jEPg-h$)a=z)?Mn76R9;68E#ezU{
z=nHUAXJs0Tu}Y$Qg2A$Wn=N!Qo|bnZJ$Igl{AAv*)~#7BCU3(3Dc)R|*BD+)XcMXY
zQ>Z*|UgEUg^9&97_q4 at M#Wz-4>{8Uq8>sTlPp*~=l-Q`z?8ttZ?(3emOQ-N}0=^^I
z`DMjMZ#(IJ>oX7lej}4|2Y1q2wN_(V8>l94ic_r|<Ym6CtvqAfEao at 445%m2F$#DG
zp?Sm6J?b25<c!q$vi2CA{!3BN{bC$hx3p3^{oifnb;j8O&UWsvM953T6lz_ugdPJr
zhky#SjVVr2HQbCTF1iBh)PdA}+rhI-b40Pa*`VYSr&Ce=TQR%0#7XqzlkL;B`q_E?
z%ifb5kQ*txRIO~bC9dTXLzijy-lTZ%kxN;1k5`aFsmfQPm(yaGGlf7+I3ff}t^7|&
zbi_B7B`NeMR&@%qjr)O{5c%f@%%aQb<z{TY5mIN^NYq2O9tBryMMD+uLPCKj>X&Ob
zmT@~J9=Mly;4*X<^U~Jc^i_)L|2mdQw`LPKYWf$!JcZ+uL<^y&Ln4j4+534 at T&f>w
zlS3PL`GlV<zRC~+O$@VNEfZR at PUyX~hmUNBq$68jQ1vgw!|7R*-NEuC5uqJBi+LG!
zJH)~z)uvi`J4%*zTjyU;bStoQWTT}4Pq*G1JgX-XDOUXr=$MrNq4l~*qw$5)J11^G
zS7|r$wjfzdFtUObR_#7+ipyWW>^J^5y(hzCIAZ`?mN*}%H}}mvUKG4*BBzDbnlkk^
zu}5oqcJ3bIiUsP1mb{nBe@~zhzs+&F;d50x&YYU}(vm~r`v|>^9 at gJG`Sb90vTr!2
z<L=UXWh;W${1XkRyn(kxX3Bj^vi|Jc9^+c7qw)1%-cH@!sRsBQQfaqQ;wq~Nq~BGf
zZn8H79n}i`)^|9nk?vrsQa#14H6%^;buMWSjm5Iu&mcEm-n3|lt+dfBZD$Qqe`6;r
z)yC~<Q0nnK(ns&z-MsfWAz#OM^zU-?FBLFmWl`TEp5|BZput$q!uT-El2NckFAWy!
zh+5ihEC>5?fXG&L%>u=edbr#0bema+`E%?ho0_fl+SJv*wQ;~&epk|IT<6Lw-DliG
z_N=Y^UIW2^S`E)Wq6ns8N;;HQ;{l_MT|1ZIT7is!J2V_!tY<fGw>B8 at e#@L+&D|4r
zBFI^_<MgR{{YyS2wz!;%4 at P_+U=!JWz*qOQMzG<qO(}2BE7`YX6^LJ$9dUPP?#|hh
z-5u(hAHWMj<f>NQbLlJ~b*`_#$B_zVvR^WjmAc5juK9#FEp+F;X-xIztzgztMaJPa
za|fv28hq~)=9;kJn$GC{RN${x-U{j5q+C9wI*G%20ppK>B at vPl6{IF~LF!e1!~Bh#
z&(?Jtznp|#dR=b`+y^o>ypOq?;FqYryf)uiGDkPHF}Fv5hSklrgP4#EfjvFOw3=f5
z147IRA8EPGbR13jH)ht%q4&GIW1B0|fjVH#thog%Hl+6X*)Z`EGl?zXkQh%hPracv
zW4EinN3HxWn5ZZXt38({aRSqxDex=yDk7Wd4e7?UX$Di7STKjAGC!|PT~Wte#WU*F
zA7CYN*-du63ca8{(3o2<y^MN)BdH+oH`Uq)*=m$@u}d*FqPMEGt6SL<B)1|k`|Jn=
z7EZ<?eMd!kS0qA!9;&Yx5EqSOT9HiKqX-y3$jW_FzdRF_D!zQ!^)hW6>s`GlTdgbw
z;}?w+{72gUkN+^WeIC6D->UBjO_A&8%|)ysP)vRiyeC>38)!|yM$t5EmrWxd%1<r&
z8r?S+r18iGSLxBK4CXYG{<-9F=~a9%rwZy{e-OQo(;}EpUJsW{-Bhnv)k)oZlx5H<
z{LZS4Fgpc5Co at xlJudRHICeQpkxhI+BJI7Np!hM3om(#~S{17VQmU;|sb(5CWP#YO
z?BF*K5%(dl^5%7<y|(^gP0VNEQH-g;&ipc<$AD<tgk7tA#l{q3LrL^YVzcsl`p;6e
zh1dPMgJ1i*MD7K(wu<@SnrZq}C;g{;_A{rtaB4PER+C%5eSv;s*=GC`?I$MN!gqDN
z&8Hfz*K5%5kR1Z|U>3;QO{$)IZ=lQUy%G$Zx`Th_{f<nF;A8LvxF13lY-YEynN|HL
z8^S+o1Y2kDhf$OdL><}4eXD(9!u=;?{jtHAH+a~Q=nekuZ1x75h at N$y40&5eZxiz~
zWy*XjY|=4EsIn!R_AY&gZ~6?ayvr8O)qUM;noR at uS88>!Z-)QPrDF(CWI5}^hw!D|
zHbeOvnci2Z_hQ?hH+QZPZtXDE>c>Y&MjndUN!iS8KS`!;<wnQ_>fp!3>m%f|$&cDE
zqXuRQhoHK3&px&CZQ--f;OgNcn`PT}Q0r9xuNAp at dm5>F|C>hf61^lC_-RD<wWzCo
zY|J`^jWR8n?rt-#%-8zKhPBvY#?IGf6uFG0PEyTAQKnJCgFhI^pt_+s$GtnRq+Jbg
zs6}5Vj2Ns+yYh+Q>o!(HT4Hu?H551*H?ni&Rq_`tuy0?Ew{K+Js+B3izU?#Z8@(Ds
z{>qdH-c9!GUh+xA-ER0=mGaI!U%R?$8Si@{<DSo!u5I>Y4_UfN(ulBeD-br04EnN}
zWbynFYxjDP{R>9%KDK=xa<G<OCFsY(M5u;wZsPK4g|M0;ZCHpm7X1>(J%^a6cMh_N
zDkVaYDPhGCuC5bKS-#L7KIe939SrGG;>RAj|0KD|x5&k+<V4Qjb|$t~hMyW5KN0*7
zPe%;pxflGq)YVPgt6kiyB#NG(u{2+cP<Q{#Cc^xZcWYej!r=2|b;AMf=gxrRulOLZ
zZRs?<IdMKf?2yEOx$;4FVy3M-%I%Q1j&+4-O!i>{@XoSUsxRX1(%iw>lgqo7It6B7
z-FOT*1^5%aTaxeb5Xk2p8xtKkGS8qzP at Ua)6nZ(7=+BGrtUjlhIDirO9h$2-c`^#=
zy$#L9*BoR~!- at nA=DuTS87x at 78AjDDvJYPP7>ZvP_dX}bMlB8fXx*UcU(zt?$6;as
z`K`Apfj$7T_+wZr6XZ{Z1({ADsh{mN)X$#|>F2+ZIgHL9X<g&Q{0P!PmmdvWo`v;w
zZmd!6LVJ(UWkuu%)i559(npJ~tB7FtmRflQhR9Wr?TW};et#{OE#>QKSn~w at QHP80
zGz`$px>+FdF0oxjM6uCWyfOq!Rke))+xf{!3^<9deOpK+YOoSzHDd14x~PqJlahE{
znU_bmG-B)29G7|jXTC3Xi6b20WbJa7Q+xN^y&YqwJ(d;TP!ah)+T_0))~VI7;Sd#k
zN|HEo;npIMC-{?fazHbuFaP?>!H9PGI0s&9m=6mt7xb-&+yGK=v_$ixeECs5eZ;A$
zfikRQ=$mx2S&VbXv*VrC>~?|DA?%7ku?Z-4p8N(z-nhn9 at m^#*pI5m_(XVlNztOYP
zQO9cwXX{niX&icEFjo0QAXfoG96Cr>Z_#HLq>xiBM#8=w6))KesOD>2;X3xeq;VOW
zl4xA+J58~b)kyv+{giA(`B5?YrmkQ$LGCD<bz^m_5{=|bL`<Ad11+8?1-q+$-6p22
zAK-hWF>}(-c=8h(-<M8G1J@$w;`ME<N+JUw$hGezqYz*2^hdmn^tFS&4%cIKUvyyI
zS&E!{Ij|9PFWv{K>*!~V0W{$B^@cT3e2ZHY6<fmplZz9d3+sSO4(}2DEOb%ac{_n8
z5or!@@^NC53Ss+eCQz^G6+MR$=AtYJ+gs3bh3xNl+oSU?dRud$a3wA@>2SMRTXcce
zn^dN2 at PL<`ru911)#pK*^`@wmUscS#i(*E|ycQE0MdQmbH!#WERF_#J=d8xo$T_Q(
zrrp?_feI7)thsO!CS`i2pX~51Q)@LbR0z0UWK&R-b>t8>$tH1KT)pLGrg#aLyobd&
zN%fx%w0|^iAfREoe|y@!H<oRiNB{J~45naR$31kTJq~@o^$GlcW<BJBt>rcOldnm?
z>lulLtVax1{Cm8=LQeaw(`tn896CpYQgPLJ=}E}RvpiK#&<C5blT{Ln9{nLkE*zhg
zJ4>)bXZ>Hqp7l)#kyLy6c&6+YuG7=9w<9nsa at Fg-TLA4%M>bI~;BKLd{kya#hsj0+
z2D^DZ`}UW%@AtIsFKr86^#{@hKNPVAUE9{z2vG~&3fZl_MT{e&{DPemiJtXu-W3~B
zX3-ad>$-z)$!9S8!m-9MEmsU}{McA7mSE7F4?zQ7VOb3gMqqIh><_}UNmI5gcTe4G
zK#f;km|;FL8Kx?J<H3qEc}lqHm}pVmQIPxLV=?z*!4Sv$l2f8?`L>@r5*5yQ^fth&
zL3&X}T at 9F{3j9#FkuSj%bp=@As9MifKUnadX#6FJFmuH?hjxX_8T!>Ru_x)<K{+MO
z!!vg`k2d7gV9-LruhSb=pj__Q$FXwWljKn4DNFHoDiHq2;y+=(6t95s3Iqv{X<NDD
zcn)uAR`9ugLY0L7HJd5?mG42kipDv7SJU|U0+QAgDd=h?j#i8$+WKK~A$mTDMCv+j
zxru1;q)?A?jW4QlQK}WCmM^)njBwPR<*`U`=DWO8(`#(b{>A*VEt7u{+tn5GB>$K`
zWUHK7yYdN}MSNC5d_uQa=H&fD=HzF&qI2?fRYTrh;Ih~k;h(r&Vxwe~h9KE``n?Fg
ziFfg$D=!jm$s6oFRM7v6gjX^bg at jXbtHOc8WdG;{%`N;9=WzbWMQ}&FciesLMZyco
z0w8umUNp`!SbK$?xMG*XK9tfI!JY7}Ly=5T<XVUD?!t&Sevxnw_;djkfol-1GuRt2
z&KeG0pePHAK;1F9zo!?|=V at 4|qSlxWLk=Kn<AvCMM3$;dTTF)jEirS!FW>}>zlMds
za=FbGU6^nLdv>z*-6%Ec|3}-qz&BMTkK;*t+Xf8Ys9i<H6}7I^MVBh;QbFm1 at UE6e
z6p$z&X3>>h)I at NlFVaA+w}C34MNv^%7yaUjuQn~(rVnWgRSQ%%ffg%PO-vUnYALVg
zKQrgtyjsv*e}6t7ntShg&6zVZXU=10DwV7H%K67^Ql)Ube9yhq7YwXH*hw`x-p4wE
z+JwK0zo5?H|2$&l at pMA$Xipf-4n~^jJm$0AP~dUAkH^oCl?$IT>W;lkXUEO4e-poq
z*d~bf*KprPE86q$S8tuSZMgNOZRyr?qjZB3c{OQYxmx%PsG0`!%~K6}$l%{RNDU$p
z2eWeClkAj>U8U6e3Na~bMBsIKHFl_C1>=oS`a+(*T3(H);GbP3Px3Biuyoo+War>Y
zmba8FzvWp*NAOKeKU at tR6tzD=_~~Wwqw%1<gs%*o%Z8)e3_hjDjnIinQr)9hisfsO
zF`Y>t5%KTGV?~%Ie}EOWa~PX8Ju=i`>gD%CL;9UkKQJP$5?CwF6~iNL!v~*AiX+}f
zNg&nM9F9ZHIZoQEZkdd8F<CjU!}i5DYdHwGB8-ET>VB370l`lR(f3pbT#wmub%~<=
zdJRog={Qy0ei)}Jq75MFmlzr<F)8&R-3-QQ<iM9eG9*3Nu~LB((E1L}U7<VIz!%9N
z)MZ-Sr8co`G8sv_f)2E3>F4Tx8s{2X|Ix}%T94A8lI6g~jVos@=D;*pcPT#B)4rcX
z?2o at l1g>eski+?>QT%r_{~gDFkzrjsHexL}Yq&<`;^PQ))FGQ|$CLOt5+7Ua_&6FL
zmlfmV7<#0AyY%qmWP*PI!oL<z&DhSK4Qa-ue-?8rpd5=a$J2P2R=LcHIdH69%P_~<
z97;nOD^b2wcj0Y1GH9d4FzsGj428EP7tmIPp6_#+>dYlOKLXmX2s|0Fu^F0X($A&n
zA-Gl#9qZ#F%hi&IRdXc;Uwp<6{6c7LV#!=zlS50i!(V_*S-}{q7us{(0@<oKQ?U!h
z)$zbs(f^eFkNH6VW?OEON;&lD6z$*BP8mg-6f}I(taH<`$F#OIHHDbaNd}MQH?pxc
zZH8Vf?qk{UU>BnowyNC`cVdkmyg`5K7Zj3Gt72RG6?F6FExdW6 at O$XIs5Q;dCT at 1a
zN}xx45ibio#_S)<5{ulT<2}eT={B*<W4Udb?PSn08G$gi<)({e*&VW>Er^EL7fsrK
zSkCr{<+_YPyW!zBvy_x!xr_>2#9CPSN$ma%)f3sUwOGz>#T`5QlQ=$0JG7#72XieL
zy4i2+#H&s-lR`V^)H8{CW~-kc5w!y0n<SRCKtG)G3Mbi)X!duMN`@AM$wvM?spC%a
zMrml924G`f%9AqAF}5K57{mGigOaVSv)fX#TPv14g(h^Zbfk_u=X6{$J(-2$h}mFm
zJO_*6$P54`P|wRxp;%UNvHaRoTr3yHkvj7Zrq)7gHBVs{T=%lnD)?4~0qS;As-oK(
z;?yeTzF%m+EsEZ{VL3>O038a&MQqX{y=kNdBDXHf`Du><t*QA|?M%Gk0#&8<r1i<A
z*bmu(ePRQ65C$-Cy;ydhEfB}Tlj}oa;%zl?XwTjyCGD7))+cVRO?6{_Hw^g4fWfpr
z=?Oy4vskI+PbtUfb_v5PuC6 at 1^RdYN%izc}UfQS3))A+IP6KmDPEyoHxPtE9eh58Z
z6GHdS<G6I8ROLp;kLnP*D^U`$VVceD;XYGG?0>QITtc>JZzII=t#R5E7mL2`hir_a
zsKbLZVD3(0?hZ9O#6{-z0hdSLcsKfxyBD<6X6aDQ-ER?hZz_n=M^l5*_m{@zc813a
zxcnZmECCt(S>hG<#A%YD&2oT6e`~YsErI;GdmxW=Vj{3o*QEU&7{Ez*a+>A6V0N1=
zw=HOGi>cGPJz{>vH2V|8$X&q5ONq_+maL9e0omP>E;%?O2{(jy5DAnr{umh^HEbH%
zcZ+2g+I;yF0W at 1cv;VMU?4U^L*M$9dVtdYu==8Wv>LrJq9g_y>RuQC!{ii``Ov&v8
zxyoHVMo?JN`hh8IkXB(|!mzZ7gBM9pJ8=$;rkL8GN};F9-}R%Itt=Jk$#tDNmi1Q$
zRWbC$&vTQ|k^^+sq-3BZU$6lR)=5A{C++(z*969xOUN_}PYT!tpV`SeWP*}$M12;m
z`ty`S_8zMjn6F3N;0D%EdXWRYug0}S6+y9*PhqF}6i6cD|C|AyPg?)q!sGf&Kg>LM
z26#p)@~y$(qX{irCzmdvomaGm#D(3bsFLBG0{y0Ak85pXVNUI^3{T6_%d=3biN*V9
z((ND}d>Coc!C6TShHhp0+=N$F*~LxyNhF1oI?3co?HOzB5S`bmX|n0&p_TXF2h8D#
z6W5{_1IQp*I|CWOmH-~Dzf7GNIy4t%8e#4gy<&B*<VhcE=*T@!tQIn0j=7>Stye6H
zCn<n5tTuF}Wp}Q01M{SG+k6`I8E~^~;#E9CRfyFS9)T5J+ZCR)UgzB!>m_4Nonp~u
zHJzbDy>p at 7EUeh_^;m0XZWcRF=}h^-b}~ONerG-+H7jnc!6U9i)!lJP;Jgx6@*!mY
z?)|+EO)%RtEfeQNtYT%2E!PKqJVe67;1lv38Yqwnm11*BnM~VK55VP9A3{tOcarD5
zZjc5wWNiup+ar|_Yt_mHh-17$%bASJ^`OC5nCnAzFaI*sd7v^6qDzk`09~P4U>*B6
z0|*1Z`1fM`2nuT%TYWF99%bnC{}3TA#qp&p$!uh0ser*@@c1$M4yP*rO>|XA%P%~y
zr>sU#N=x`|^vN!&a2U%X%S0`dk=52sar;KnhB}vRAP;{S;X&kO63T+oNyjC!wUhAX
zpTX9-G;8Jc<A?btLsF(XzaRJBdNL$scCPLxp at yG~<mX(j9{}U538 at I^R)wnwzu~i%
zsT<ix+Jp97-L^3r%VlZH^zs~?h^EG5^@KC;bhd)aNs`wf9&VGLp%JM0{W==hzM%DL
z9v3c4bDPZ{2ZR%sS>w~vudPl%s_6?_7TAt!@()T>nAHSWTtm1Xm+V^?AY9Lt>C0{M
zIzl;RPN{)PvGRc{w*FJO|3j6s29&B(Lvn~lDe%35e!R#Vtu(YB521hOr~MFIeLRHz
z%C>$}z)O%?@(biw?-}HmCRTnueFph8^q0u55kD`##z)I90}3BmR|=BricgRkFF=td
z6rNdn)kaFM8<_Nxg?HrX?+75Tt^k#jN?I=>!SxCgT=4NKVN(_`w;!d}^q6>XXO&<2
z5(4QhCcb<T;_Dj}U$snHeBNJt$-*Y3NR0IQIwZa7{uk*rEK+)jOnS+Jjf9tnfzyP-
zYahP``g8KD*!N$_uhCq7<$5AT7*rUNUt at j0T7G>OCBG&y`9+$JP7^D?Hur=W$R)(4
z209eZi|d#4;V;mSKCk+v`bawIBi5hMM=H=Jr;<S6TRXnCpZ*K|=*>O<Z{ex>vnF=o
zH@!bR+>}J}Tpa`!vHUUTppa~<7d-I`po+F3OYra2%iwQ24FCH-;g;RiDj-%fkb%bA
zVXIHN%Txz{y+`ii_BUhN4S2ZU9=`%gd7Ik5_`IXt`+{h at AE0iJFTkq&pLf8Ah4jG@
znd{LkJgdX~1Z?gWXs&HY31-Oc at y3^~M?X4-o<lX}Au63WelxtACBu)0n!HPYJZS3n
zF71KIrKzqxen+U0)o6c=(ZA6`!P|kge)FSJtB0!e48e-pO&;F|kiz at lHe?HHwjBgU
zs7=q++jyH%Ee=r?1cSJLiPbyKSpD6<ym~)+(=wN|dzw<+bqwrLKmI~w_%Xl)lyu>M
z*3m-{t!g6H`#KUF=ueH7kX?Z*xIb!Rm-K^emmpSaY_%GgHpt!%c-niZ)O)+#oquTH
z__cIj&7_x?>DWqD@=UY4^R6!utI??`R`L{@I_LVlN1T&Dv-Z*8Jp7w>PpaFINV)U(
zE9C3-g~;LIbK5;Tf{w&M8*9(&_MT|(fTDj-v0l^e_2wQ06dd&oabf2H4S)a`lkS72
zF7MK#Fa<%$m)kvvy?sYjs=y~v at P_-}9k at p6KXjwpX6V+)nRI&U1^5Lle<k|qlHwQ^
zJPN3ce<rZqYOl(hE_l<m-db;M+mJ>asCw`2wjpkOf?p5*e$+Oko8AxAV6GN;hNrr=
zAszU&xot=<<vLW4sXmtTL+=sqp0**X4e+)HG2?B1;ZUu&`B1I63K!4q2UFeNCP!TR
zVPY#hr2ri6Y5x*%co06^1bhZSG0cfiq><imBQoDXA|>qxPD*>cyEzua^zB8rppGmx
zV<&1aynjIBm!+}QPq>Tr at 1fb|_D*QF4Vrxy;iwBW+m7?79f50ai*B~ryXOqe at -D5q
zj^EF1KR`X@&^%HQK`M`o4HL(0*6Bzbk!>{fYk|7OK_ at B;y&T*T^lzv8r|k!J1Osas
z1(kFI1-%Z>9%yq|GBR{7d;$jc9`R!oMo2o~-3>{QZt}F78hs{8Z}c9)OikY1e!Q0x
zC4ap~$Rd>8JGrXe6Oz8V4Jdu}`1k6e8<_OH6{>5Bjkn9>ZF~Ii4N<}tFO9XwkJ!NF
z;3Ec53}MQcfc1R+9ZHf>8 at MDHvmsiNjN34<SVj3p@(AmAIaG&-D)0=!Vu%#HFBXz=
z=^F-;a+7%rffq<R#i4YHkSB#*EAc?`H^b`}lk>BmU>>WwS4AfiML#v33I_3hbUHjY
z!}D!)z0!qN3zGf)Q&IQn4$=pi{(9r5L$ie+;PcD0w$OdJ;jKkxZ+s2{xm(;&D^}Nd
zYMd*00ncu_WaEjS4e9L0xmQEiao6s}bKmM3sczb1_xn-v=4xmAW&%&%h~;6~`RUWp
zfZ8Jo at 0HXpHm95v9o^K8N|mZ(yksv4b!FoQc&yZJe{g&|ePwCvGyCG*J&RSVT<&P!
zxQ#xyZ$yj5Lp6tXdz(DMrzOy0+tqV$FhF@|yLtg9o|^yQfGxqUey|InE4S~W%1h}l
ztIHF=Y=a_6?e+NS4g7m>qnn<wfczdl- at yj>Q0<{F+S!l*eSZP;M^a+VkHikpUrA4M
zQPBB5MdEp%{AAeg>%-x&KvOiVyaqmDe~){wxQf_$xjir=kTA&>OwG at 9>TZ=9j|HSg
zX=5?utvL}dZN%t4n^NdUroT?%DW_0S)1gVJX)pSSL8T}bF1my6yzSmVV%8Mf$<+J_
zF0B8U|CdxL?Z!%L+lxMpuJpaM&jGNNiPHBeUR%v#rADexe!iFn5^IqfH`SbsPucGj
zo>Ksn1t-!3Cym=E-1ZNIHrm*H1&JRRJ3N%_27P!me+UdXn%>a(0joug;PbH~D6 at tO
z>yg)JG9#ojsurbnr%9lB`i<Rd7)5D3Uw<%rSCl^ny|;<%u7|dpeBSsKB#k6fZ at aN0
zES1Qx3shA*P7Q5KJ3um^SZEtk5Td$B0d49oJc*o|zr-uFBVD%}eBK&PVsFv(gO%aw
z2c#VOg4Gi$5B%4T3=Rr(T1#Fsz9Ks+2hQpil=~rbZa=zVX*YCW8z8^+?XV6CrJ<7=
zntu!(N;4?mo!>@?I)@_a8Y4wr34HZm9pwJG+PzQ%R<DH?!qvx9)4s^6Z}??Zldd>8
zG^-e0%s%|iJ78rotFUj&c$I2-UTV`$oDKqmOQgM$C#7+6-Zjpoi=|_GPbeZPrNJJ|
zKb$*P+E3~E9g6?eYT=`&Nk(o!5aLVWZ^|y1t&smcwH^>SAJM=JMZHg#9Fhu6p7_n!
zlcCDV%ih2{?0g^9uXJ2wT6L1A#&_=3L4IP|-3tVIgeis>0T*EV(nPH^QIHaB_33yj
zTjGSJ@|VH!>@Fp`m&LslAsG>-MnPj}w7XaQg^yzV4ulzg-zE9(X@>uMyz%ej+sEEJ
z1n-_hUx237>}~eMyQq6^qFT>sZ_}YYZF at kV?(rP<d;!J22QBP-NC6QGUw`YpTgxG8
zkKcmbjNis)Um|v+FJOzjFEN7OBw at Eoti8DZ=FK9lavb(KOR&48UEcV5f}s)r#u2DZ
zo at rY6Q+ue!GDyM9EsQDK<6Ed*5970y$$C^t02{vh$$Wi<q2_D6i!x}J)Gb5vR=QzP
z;*Ia1Mmj^q4()-i9zS$KDSj;#f2 at Yl6Kf!~2`a-A5fVeJWdJ at 1R6A%F-qeg}qMto{
zc)bB at U6W2;p$lLL4M9${)#)(A1PuLGcuTJPHqflU8hCv%BC344!lvHbL!dBIU!W%R
zSgE{nVbbPZ+V=US-ld0Zb()ArYAbJ+oG8`Se5)%wd|Fhgu12ydtksOhYh at Q;CiLtC
zOBqgS0Okt}H-+u-K0<zX)S&wxBzw{kk!}H^>^DR3{|>{iOdu5S{-0tFzTi8CwZM31
zKPVX49~q`%V0>PJ%a%;s)dQ5$zDW at xlxn9sK3A|B5f3GD{nHkhqr at Z9?nHi+a|Ca^
zej{y1>OY?-cxu{)jM&KLq0c934k at od1;>xmwMPf}`O0pq`SM)bu7p8#(#5tKLBdlu
zSTN=NNi0t=!|&zhTfQHbzX`XaW(f9u)@w?grRPFdYffqcYw^52Tbp_ik^+T1UKx*C
zV$S&-C5y&$wQ3{kn!-jVC3Rm#NJ;HRl#*XFDfu;nANaMF(?VyP9~Tu`@6yhLrVj7Y
zuVqsQ^wWPa3Xb at pkeQB8Igt<N-Ma+3=TBDTcj!KlBENd|I9l%=35%{_{Y00ZE|jqK
zYy2o|XP;QsFf(<Z*Ow!f)qOq^z}L>qVZZJ1V-W24>G*e#=R+o`KK3-xIxs$cBdrdb
zKxQ?0<0nuikVq)p;&a#=$SaU(Ab=+$s!p__Ec1Jg!k5GFAEe5mqY+Y!fa_-;I-P>G
zXd@)ml}92Z)og6(h&O)DMiQ)hKwj-(vZ at Yb)g`d at I)YO^EZn|8A>s`TQuJdF%z)nZ
z_yvgF_$5 at Faz1=VyEpY9-xqpXMOwD~WBBz9S;2;t+ at bT43=g59;}+bHe)NHwuk}DI
zHD786{oukcgP74cRzo{KO}q+LU;m0s9Xx2rYIMv;fKcQLan-{#_zL`~?ueFnBcOHB
zm{}OXH6LoGDPs>#8D5w&{1++o!&+}QxqLGZM^J77el)la)p)LUz$0B0X8M8$R4Ilf
zlj~3ulKjP3(0e4ZXqf1s5~O%0|5#;F-2_<9A1FT0&&cQapOeo5xe(N{@|06ti=)Ul
zXuR>oG~gwKrqb{LbjRNJ5mWbJn~gO-y;+JA%RU4)$tnB-M}qMO2<Dm4zzlf9Rgl(G
zPZK5kyPN&@F6~B1f0TrN=n<gb!Y0o-{p9J-$mjTe@;UCvuaeKWtUH^09>?uJNjT$k
z4ob at zfpKE>M2%Q|;r;GsL0QKOG`_^ERe+sAuy&m&faK*VKJjYe0*nzM>1}R->d^<Y
z_0U|UV!v0Se9HTeSbZyGt@%bTK_A@$T9~$3b3xX7<2Oe$U|SQAR}Aj}HxzzJaGZqM
z0yhrA3<^NWMh^qWBWaW-#kG&(dIFop?)7WjVuQxphV0;y{>smR?19QFRa>O-p*_?v
zWRkHSupHV(<%FN=4nZOr-0cQ8%KS_r0$jXKHw6G8u(6?vLy?=bQQQ?<yZ<-g?VJ!l
z#oQmQk-ie&+->X9+R+>c^lS8^xXW^Z)R?;OSdX+T)tz=o+~7XuxuQmf^hO!eyF&cs
zoIG4nA*BYids3{O at XU1{{F)0NyJ32PXnzn7ViM at S3mT@{dexRpaV@$OM~Bx%2jH8l
zaU;LNk{E4rGx4jw{w6mi%pP8g_RsQ+adL*<hxTI9M13Xsm8$b$ln1-pa*<QGl<rTK
z<D{pvGedLh4r)c`I>j4xxi-d{`h48k7YwWx%V&%f%QJ4SIh;__5eI}^o^k!4+QJiq
z1z7o|7M>Uczqw}kg=Q@?3s2xFk!30^bV{TIl4k%Ww&}-M$B;q5bBt7X;fZs!@N|$J
z)3#!NDE31i6+q{}<aLF)qfYSS!5X_RnBf0_ol4=kQ`HMX>?uk at 8=XpxczUt9;zc3$
z%*S^ye19 at LexM!i;vS(wM%`cW at ymwsL!(Essk5ZI7Cg;ScKg$@9(|tsa)6-%IfdiC
zgN?gbgu%DOwWsJ+W4VwB0FUZjrMzM}A+W7s5}_dGyp#>J0p<N9eWkz#`liz~(3d-f
z=Si~xIA*;Ezmt@~7VQt<$zeh at 0j#(VQbs-uef#0QAQ`Md;|aJTT?d0b(wRh8!Ig0@
zQYnU?`SWcjCWu8V at x!`Y?9Pb{%R at VZ;rm=jH%RI$p^ug+lp<X&dHguWIM#z%TNty&
zKb$?|X#11U66avy3B1^7smz~Jcml65uH3p4NjvbG?WD%?HdTb%z&o)>V1siNnrM at Y
zeRLB=+eu_KfVm}VJFu$ogh0FNXs<_=`R4{hq*T${k63nk*{x#0o9nm`d;IylH*{Rb
z<q0#hQ7*}|<z((D=Oe=<8=2nhq)P$i6K}YM#R`z2&@C7$z><bzQhgj6sv7zXjS at v>
zl$js2kT>L;zvzoKwvjx((ToDVHW%iNvaS(}@b0ZE=Ow(Djd!(>05LEHe9ika4#n*L
zhO#72psJLURMm5?WzUC;!-or?oVBrGQqu4p3(ZtKPz`S_Zz^wZ!CObI^7e||ZG9HM
z)F at w`balKK1(4;sym3hT_P^1{C#8SDv-<C4ABHQn`Dd~Z1 at 9{#GJ=eNM)RVf1oVa*
z;}3B}$X*0S!}<7dW-o$fRD2N1LW3|K2cZ%N!9{~GJDIs8j~RsbKJN?m#~{T|^S#FK
z*I_Qqr=h^BnXZD at u;=M~4p1{$koPdMe>r4?8NziBv}cKTEq;c at Z*VPphI403+iB2t
zsykp;#_KV*zAJi=IK0BW6<U(n0kkC^+6p}1FfpkG#*8Aw!Kkc*_fd85elrSJ)wU?e
zEWZ=inK^E06ecE>z_9qwWzWm7oQ6HO;P;*we^=bT6?6uhd$_r91 at z1kPZkqqDd%Q$
zL;6U)3jSWNQHAYEBK=h|GcL=$a at J68Op!H=TheENG_ziTmmJX1h+^Z8TZL9F->187
zZXa3m-M53?hA^EeqcE53;a>$DyUOEZ*?QNfs%U$7w0F at lZkCPuTPQ37OcXNKYq{c<
zi_s|TFA}af(Oyh4>T$ni$}lt~L&Gr{Z_G$)i&<Rz2^0Eakx#{EesnN{175Y`8SarP
zX22)6<A6uoG at sAhJe*KVGlWMw@!o-}gVRf(x=Ige6hwktK~rokcB#mB>Mtz7ROKu+
zx7)(=cKFznHH2G<|4y<E<CjV9ejd#zNOS3LG6?Ba+tF;z?yee+4dNhMoPLaMUWIoq
zX}g+*8|5CYDIcL4Z=*5maKyJ60PyE<`>t7dcZx136dp%JvwKvQM0wiKyAYRg^7)cR
zah4gie at 9k<&Nam=pheS<G!dX_D~vO?>r4Mv*c?cz6N@@j)XUT+mjV{u`f7R;io_u*
zKtl;)?2m at 5q){I(G=mmcS<-|y$bxIjD+|rl?&gp~xlzD%6 at +nScr$!Y$neI!U9qci
z<-7rpPvc$V%5<c))o3Z>Dxqp-BhIVHXl8VBX!_Z{Qn5RdvWB`^K8`Ul${OZc at R4Fv
z)PIc3CFJx&=NeYZ6_#^KV-=Qf5A>T)(0&T?xh_tKWsEoWsiG}n2JnYrnJrISY;UsY
zA}xE+$mT^DgZH;1)Qi!fFY2K20kfR7*fF~$f&C=HkGWw&i-5QF$?w)w+lip{VBj67
z0QC;v<J-f7XiamKC>?vFU&qdaj)lyHDl4%=1*JR`!>0}D=oePikWTUG(86ogUlcnq
z^vIOPl!DKoKowq(-T6gngns$z-U#{7-yaB?AIPiGS!}@=m33H8x>{|yP|nIhDUHYT
z=7y{rg6e=C<R3ovsT;C#I`%Cz!^@~aP!jKKg#v_8*f6w#%bE_z;UU5rvL*x}Q at mb_
z=$!BJJ;O$d+ZSZbr+6H102s3tJ2QKwtT}Sl1m}cWcv=uSEEQd)+^<lKbC{$z(Z>GY
z3(b}IhZ8wHK8 at 2i_u)7?IY`uu at IxAD>l|yY(+aD9!AHiotVOX;luPK=K1i)f{U$af
zvYxC7LgwPLJbf7UBWgbs*4x>7ZUAHLlCpi=AR}Gij)*XNmfb{-%eu*@VYgU5Wt99B
zU8!3!MlyEFIpZ*>?&Jw_`kZh?U5v3iA3Y9DSs)o(rR<i_{)=qz;YwImGjood>FD&Q
zcndjR>#X^PeC62;ZCWY2b5H}UrPB;;xqA2rNfF=4mciN~n>;Ds at 9&ke+ph44<=qqk
zygQ{<nlas6*rx`iAeq)1edwvHN6q`Rc&wq-Ijmb;lZc*@k%{1gxcWHu(%39h<X=fI
zXDm*u6<497Q_2G`wtvul(q=ikRV>R%bj(P^K#=7b0(?j}OBq7i9!JX~f>@T7C>vWH
znF(@si>+1*2uR!g=pWF>QErDWFR{VUf!aA5VlnAr?B3ro8BNvzahZ#q6B>IZLyKf;
zHe+aEaW!3}FV7Mv{?;XA0NOp)>J!&}#GKozyJ5*~Xbi>k&PtdfU+Pc;-)yW+b&t*N
z5}$F~Ypq`+7h-U%6su1*Ho`cdZ(g^!&f3S^FlBe5|LhfG at OtGF>>@V?RF_svkaJr=
z*BAxZkyb1~2e*^QL6_}8DQAu}c|LU_?{TQGDrXaq<`l9cu?%bhw(C=zft9^(dERWX
ze3p<>JJ#qE*P at FnXhaRdvs;=pIcC3Xs(fkMZgK68DwGV?@40iP>7o57w5a;tp-m5F
z`y at k`---SZ3>|~8&Wyzk1`l$%(}8Rr-!0<(;a1xT^php7#W{Ka8norM4H}pN`<$7_
zVDN1ILHqlF1Pi|oGHO$+rOfGK(Kf;>g9bo>p#_+nqq`+*v%lw5FsL?mrJy-ZS4=!`
z7{94FfEEEd2sGW at kWM1Xzv2}0VSp|*oVs%<r$a4Y3e}25c#sbHzx98M&E{(5H6c5m
z;!Oi at f@HMfAow5cBXb_^;V`OznhF$Rfxt&Js62|I&h@^MCuU?vz7CMSaXKuv7N}#z
zR>dAB)z_S+`@%kq-sS&0y>v at +X3Lji;sX>8GD{e1 at a6wUMvto9NU~EW1H#lbk$tzk
z1N}bYPdiQB*x3z$@xIJw#7CEWWBtvo<nqrLl7Af_zEJ*kibWnKj^qrIe-ky_J_Y1o
zr&xa1C|M%*$e92lP+m3;1>WR2lBrdmGha>zf!88s*8~3oQ-Z!=XhV5tW5gxT0D0Fc
z7Eh)IJU~^__qJWypuw}hV^G6bYisTWAk*lZSQeKhndm!+idNasaz(FLj&`m4gLoj_
znu52-3r|w;%AD!Ub3)-s93Zi%m)N(Hgk7^!=aI7A;+mH=A$iv<uHHcMuAbysXGq at V
zMasK}NWj!nxZ9jWu{>P>nJ3jikqommS#Y#~L`XBb9|1Y&7Rxd~>NS(pYb2 at H3{vm<
zprO^4+e%Wel}o)=F7-M|>a~E7M5!k<0=i^_o1IBWhI(=BmDsadY?egd%jEaMJ=V}B
zt}~*;H$z8?0VbS|DE<LZrUEPp4vl=V{h(xWTmQp`U|lZJxrZ)1cA}{&7jiAq<74FP
zdeA~g$+^waBjaR4qcm%RY;1$MonW=^lcvp)9-l9+C7*ea0IS$&mYMKuf0m*BpB5(Q
zRx&|1cQ!x-BqXHNjWxB2YY&sGYg6}18I$>WWUhN!+J1Swl<Us_!I^YnWPi|v4?5Jv
zg&wcd(BT-Gj!A|N|5_4vtt9T!LEN>FxGN=b*NfuL)J)>8QC$01^*|(O>l-v62}&nP
z*mV|ui8a;)2icAc0x8GHPb}I>xb1LU3`3cLuw-{Qhj}DZz5f(SI#WlAiAL&C?BCRB
zV%a3 at P@-gTTaQ4k4Vg^BJ$;I9<5xKVo3brx0*P6|**_uK^-3Q%Kk6 at +VhU{d2h at K$
zLN29fV&&2m4aB3;jM=iuEnkY#2ha`lmj4}$Ioc^e$8sh^Kh(Pi8W#Txr#UnsvUs19
zg?}7*HT*dNO1m-x_}3p`J#U15OuksH^6lJ$OUeQjMTkYhu;_4M-oisRxUPDREA&av
z#VYjaALB};H+3K7m0D<3LCE>IA993U%-^7~@`|g_3sC{>O2nsMtd8EVYe;Xzm0m-7
z3;Xe~pAPopV?W*Or<Z<I_}Au3w|%R9tcH5PK25dxwDx`ZM at _N!Kk5EH;PP3Hiu<{m
z{{$`&<W*><!4?GYceF;WZnXL0rL2|c;VW_p(2(_@{u=yQ#@;OK2ZKwfe0a{$khKJ_
zkw-+5P|(w%Q5G;0_yXpudR4T2`Sd9N)kgGgw@)m}RdZDu=XH6?3VEhQPJa*;XwW%9
zUc>h(<M7~W<`|p|vq={<ddRWIlu;lGM~me%Z;-MZ at jJ*)1Ik$}RX|4P<x`f(GgpG}
z1XbRg0n2O2=uX{d%hjvM5LvXN1yaoZw}DQko*}^o%K at KQc7D*H3ufzshEA!arUOl>
zoa0dSuQ?o_x?A3XBkvscnH-naYng%fAn?egA_b at -Wv_jo^>XsB7Z|EE!*gDPIZ at oD
z?0zgzSc}<tlJ%>|@kQZCFi9p*aqkZ at XP_{18akw at 7UaOp6{H9}h;~MqOHhzc1^L|~
zWrE;tHcL}S!vtiOGH*ZwGHEJkt at X@WC`wg?d8iRpePiSP`#jF+`d-LZnC(%~vc$uT
zG><1rP&T_Y?>zWq^K0oV`y^v&ojSWiEK`NCW$^jmAlKXOG-JKEri0CQsA|J{0NNRZ
zZYdg_(>1+NAvE~2&4}foKaPdQpd~VUZwVS&aJ!^1x1~=+!TT`{VRM?HCGU!$q0yGx
zs1w)W9t}3kL%pMKbUzDZ+Li_yOtF at L>@2KB`Y+7w3<mR6p#0?BE1Nnh0OR>JC$$z-
zb~YV53DZ3+>Gq_}TefnZ)Z#mhk=wGn8#0J#0*gs0(#jIDUP^X7A-jN!7xg>L%#IR4
zCGvmA+O0XPm0C6(%k99L>!9Y`S4s0*=KmX00)5X=_`dFj%w;N$L&fv0p%o at IGQ#{H
zN3Oxp93&=$DjRX01m^P}J4N%t_~+13R$Q#;8&soG4Sauq#UCK*l9!JY%Woeg-!mrd
z&XrPjx44Q}YSNNhP=;8N$q?+zK`>o+JEte~N&u<!F at rUKQNtvXG?)j{_kUTq2dCB8
ze0e(O6#C%MNFQg~d-8PTU<X#fUpg+yR9t_^n`kT!NKZ1GJAQc~qGX^%c2J((;juEl
z#oRKKU;;UE59`Z{z0|N|U*0^(W at DR0mV7y9F);jfGI?o-CvqG+_F3jnheV%AOV(2U
zuQU7ju`$}{4SiOrMJa0eP|?pZy?2w6PWx$_2B>gjCT%y*z!Ced--z8=9TIb4_-(nm
zc+q}LMf;bu^;NJ5r%t|qSt}O3qY7<cRTS)9Xy$ub(D*6 at Q_j*#GMa@}q#s%c5+>bM
z(1QCp`*6RXd<L<{3E at ZDx-4nKN7}mF(vFYhGidl>d?cSiRNeY<w2OI2IXrObzr=F~
z^7g%+901v9FB3*##GI&EDZFR5SefEOYL96b?%5@!y4mct4DqEBV)1oNRcIG7;ywnb
zxVp*GZk#?OLu){{O9RZ=ni+(pzdQdZTHc~6t;NNrRnPZ?o+I<fYTV(r_ej9srdBBz
z7WD~izeg-XRkam8 at 537JZ4}5S)5W5}l&ZyWtX*>YC|HAq_)R)w`*M6uUxMVZeI17;
zR^z2(P65s3R5jlSQf>#{<+~s+2M>O- at E~p$v&0%IHQGAjGHktS>tV6X(4o~Zn=4;h
zc4yw7Wm78xKyIWXp$e2h-Zrf!fMJQsq;7WyXn27)U<$??pPo!@Vqgmf0KzpKMhT&f
zwrsNQmQ7taHeID`_ae7DB^Ra_Uy4x=3w=P4y+>Skg49(OR0$<xZmYD33|T7}uW}#L
zFyWa1D2-S)Q(e=cb?Wr6-i5bWarib&@5E(sYyK at x;bL4K|B-Aa4c&O>g`&ZAv51 at t
zOG#kL0E)-C@^ZoE1AKwn(CS~TXrm!TwdA>hm-Cm^BmIoycbf5hsZ#Y7M!bUIs-P!w
zUBNy&kn*LH>B?klssnlg?)fVEzFqWvk&5)qi_L{6va_Km8WMt5X&GXwbR$4$fTXG`
zoUB9kt59vGFk192vOeT*I*bOCie=}CRkgO>hb`0dM%#LqTSk*_Ov`58J%f&W^&`3;
zUq{>_dF~4Pzv^9RZ7w*md?!va*26nB=rHhL>cN7?)W5gxXQ$=Ok?^~0Sa-;2fSwHj
zTCMsP(CK+l+9ehh(v+n|>GnV+EXMY7{GQ&R9G<+Xp)aZXDk$P6o+M3A*7}N{22n;{
zzN9!7^-qxLKGp?LjkJ at -sr%|6-mc2h(s>iek5f!)+3;kZ-H)dQ5`Sb=pJaE-hN0qy
zS~B at z#y&Mfm&0V^aC;NRdDsWZEajh6CK=b^o9PiUCCS-CCEFI_-4W9IQtIMx=#9)=
zY$QwTw<37*Hd-SlYFI{FF_jpJb)BX%Bc=5vT(o^K4o0L;eQ{Ia7b=+CGRVqTnx?b$
zX*eua0|w15(-gTacL6<$Rc at Ov)7Ja@<%VFgz4>_<i*d=W4Sc-W;NVctuIY=4;856v
zCcRK|V28cOI;ikoT`(W*-!iFc>oySfJ at p!~=qnX-c86B}a+a<V>9okbBEE9U6g+`l
zkEf1B?#gRb^!6>PD-INAsqSi=oF!Wq8;kH+f+CxP>k)MnpW5c*6d93-I7AP^sK-{-
zZsvz2QNq2z4U=G&mdF`!H{-g#pnoV{F)JsqBoE!+#-t19kq_p54Ox21eV`!=ogm;k
zX&B7+U*VZE0YT at C{aOmr;9_|CqMz7A=tmc>fN5a4sx}VXPD1v4B3zyC%W8n;391;e
zg76NvLt9_srK6m07MlG>LEEcd08i3R9De_)(-hU-)^W<#sFAXCnf_(Cso5ji{|vu{
z({wmunf|-_!r9c2E%0y5G6A!|ARY?_GyP+Dejxfx|L@`D*e<p&_FI;K;w005KCgWc
z&#lFexJ6JA+{_PgvgriVFOehScYL%y`Pf`|JUd(5h at s>Pk58GxLdl(DF6=Ypi1tKU
zhkXXPzY>(#g2#1056 at FMLW3D7m3bF~r)xz!dAgs5ajy?Z6hJc74U~zZz_ya!j at 4i<
zfKDayKOov^pA$HsN&})wEZRjf>tWIU1AZrJ>-kVCWhF5yAsqbI@|Z{Mz38c6noiHe
zzyaps!0$g5IYhZO6gOS`Z5_P%Gl`<;qB!pa%@{+US43(IRet*c4E%k}D>0q~R7`#z
ztt}aiD;^-BhCp-W%IDcxm4AI7qtn0MiJ(dcMEguMy1M){!sg&R$WB|4x*wYqtC at 4<
z3xc8X_a{d0_X30_Il|r&XTEGak{Hb5HB)-J5Q+!O(=!EWs$i<?AK!!W)45t5`OoF~
z*_`<V{*9jRSpC|5^=qZ6+B4RluB-74wsok_*gi^e-afpG<pn78!~H2xsUy?nf}zpx
zSbySK>c{kR&zg>jq58~)E*xLr3ySB{zyAfLG4O1TdEXNAzBT53Tg-cL%sYyZI)aaG
zXPdMz(c^7C-?L6d%O|hym*T|?>!nC-Esvus4_a4fxV!s#cd?5YzmZ^`|5CY6qmA%b
zXC2Z+$_=L{x=#Wv at Q+M?PVHe9_c~?SYDC);+z5ht*tRn{E|GTQ!4TGstgkk7p{4Ds
zG$(d5+r+Z-X>S1(LcL`4*$?Jjj(b668qoW!Nsu&&rP&YWf5UfCG9az%;T5*rPBl8n
z$nA_%Ch?+f28y&t>Q4EA!I9Fa4!KU5 at d}&j*x9U>IWi=zS=ycV+tB%9!bFE!@?@Yg
zeUz4rl<hM`e}Z-`^BzutUzk1LU|- at y`}-=2BO?|CR20XCZVKLx3KD!=`$YI-VGyOW
zxE8~D?ot<K*cuANGNaFNUIyJ~r0hK`dt5~J`pE1CpF^GD|DOC^p_<DaAgP~Fdiv*=
zxd&TSL{I4k98{mbeHRGak283y&<?5Vh-7iyz1+tQ>vUsE3)Igr$S%?nQWakb$nOP@
zp_%JBC_~E<#^s7 at aBox4jLUZ<z!ZX^uMC|SBgc`^=TC>qcc`TkBU%7_-iyF$bk`W+
zTqdE<9WIP8LIsGNyVy0oe*RW+b?8tSsALr_xK-%;;`gvvNjsFQk$%99m-)$|;FnxQ
z{S#e&T=5&`Z6$wil*h;@cuI_s{w2s=q3l9*042W|x%X(9%l(g5U3mLM+ll<Vgu-u8
zM1hX!K-zH5Q;#+2#dRy0{(&mA`VfMa@;Svnl_|Piib)?^vGol(ThEV_wDu<HZ5o+M
zgdr~_Vue%i!oVw>vE}T9W?0BRVCTCpFrQT^wa!d6M at ww62~MI3x at 2WLQ6LuK5EB?F
zEmCcoLBH~HSo+;AR-HRBFbFzBhrl|iWh$^uxBn24kv^r?MQ!oe)dN7+UX1<H2i^(I
zXBDG<;OnnSdUB9cVR|ef at 4@cx at GCCDD)im>bu?`(;G+Y#8!FsK at oPHe#m9(<VxeVQ
zq`aR+iz~5w^7UeQ`be8kYwI1l{2I`<$Go`MY&$N1e3_ywAxQck^ITCE+RwqYmF;+(
zwP$C1_!Y{yr*OGsX`@wDL<&XfWod4 at iab!MS9c0ZO7!`_ue3i1-+zk=CBlP;3?a=e
zZ;_f^OJ1{GK^hBKW|p!Zl<xpN$?d~nsPY}-d>BZP><4 at cgJ+0$j064SYP@)~gr=wt
z+vAp?b%@mM%R{{=%aU%nzhVa<+nF`0YK)?wGmmn<OaDo;Qj%@jGBr(NftSSci8uQn
z!uGQ!SC+lV?_?x$M{7FQ<`-k_5^j1IS4XrjfT2q$m-|J&hU%X^k!AlQyPb62mc?e5
zQ#mmjwuP^__Whqqi7zk|H#?rB`E#G;8XopLa}<yHojKZ>If~AsUWIv-hk0?=@tP~~
z79gutaTK at W|5P#Y;|jaBtJszb-E)*BiaF&Tj+^Eg7Ad>a)*CObse?Q~w%V5#n`^$+
z;BBSsP8n~*bc*Fu9+dCai*N3+?~}4UVo}HW`~ZE4bKWRAT4+<drOfma<>n;;lK&5G
ze{cyck502o{HTu3qB*ovPEUui*@KtavO5d%bSinu65Q8!d`dG|2U8B((u^HSe?;f&
zDt`IELO^dzB%p at _(0jl2Pr^~P`f!k{#%&2L3I~!<i{9=F7S?a4<!3~^SGv|9VSr at -
zYBd*+dVZ~O at fJSjzuyvjSa<<chnmsjTiM)+5q$$MmarDWvjbXR>5>UMh09 at 5y@<A&
z0Fmif2ydxi+ttNTe-$<od5o@?)rzM^>Qm?x{h7C5NimAL-nr8ar7EcC#L3EKBaPx>
zkjjNna1WO2C0W}kn_6Km6w8-AD3{>wZ<^I38Jor8D-+QDVw_mCJ{}(g>8M!rff(99
z7R%$N%Gu4fI?dHV7ztS at Br7)izI+hDo)kQVi#q?r!?aKE{`2>IzAL|A3OXcJ<7El6
zBs>BYhAUgeDr?I3q*z;ILrcIN1F1uS^j)#|3xPv=Z9)jrf1ML!FTvn_S7`#8&M;#m
z8i4pq4zVj@{|e!C2m{0WZVbHeJ(E|~l>b?Z)g>ETfhvU9${?Pj;MN2XZxf3TBE%;F
z;!6<XlY&_E**RzutO8<|4tV1Q_zetg_qu}TpzKVv?a~mW;@SoQn at fPMY@?>VLLu5Y
zlI859AERw6nOP3x0V_}zg+sueSo~@nN8Ok~A=DkkXhbE5FQtDWM16}sOpi*&E#?vg
zW=UKmeuPH=K^Lf7VvrL;OnZuTi)`Ey_%LQDi<O~th{bnkI6PM*hTy@#QVbqB+Yv%}
znV at wfP6C*|=7U!peSVAMhZbuCjh`cS{K^D9R at Rj7O|cfshT=fYnPA)?7Qe0LFy at 3|
z{F^rR{FuSJ;mq)s_J?<ldSG}roDJSm*-#4b;!P-rY-|OIogiBsV);x#a;_xxT2M>I
z0*4(9lw?DzSf;xH^c9U{C=$z(M&Xz8QI3t|*B*wTjPgOsg^rEO=$p==aZFW<W#sza
zF;xRuFu{=-2h?EuR*;Ov_I>`1xQ<y`EZFKmq(k#r324*0TWv=eWcnLM1Z$%_OHdmM
zWJ3W@&}q>RtJ+W`8;ZjHv|A`|oO&1T=Z3y6BPgjN$L(rIqF6><aNG&-ISIbo<6tE5
zf)j at 7D#75)**XeZ-3Dx_&hBuIzAeqrAz54fTaIHtTge;%2K)xIlq!}_)tIHp8pNYn
zLZj4HiQ@=zq$fy*&1NYx0gq9Af at Ihdm}^_Q1v_tR&_)6a)K8tNksA5?Bn@?(x+T+J
zB|$)}sSTTD!)E0ZG_VB}<5$cjbSK#ZFiTb)DHvk;Iasqi`U$-Dpj(AEMI{5?Ta%1#
zuTUc0F5pdoKY8!b+Wc{_0LX3$+-_Ui0#uX$A{WW2L8r#MWehTT^eTpasG^>I!AfzA
zK=``3v{{As!u|wx+xJ1m`EM#<twpe2V6M+Rh)AQyshc5X>u8S<X6B04Ex6kSI at I)J
zt$!hg4gy(n0K=D)8~D6kk~fgVMIOjIMQr5VCYE1_oNzaC!ZzT9yA at Evg0GPTACx+i
z><bB at w^K~pWy5y6JFr$PzY(f^m_}$CloY0tWM|_emM3LOG&*MKPJswLPBOae`vUjc
zmbw at Y-z6L-gb5SMn5By-A!5kc=Q}m*d;gJVO%bmdT-X{6_;Y?8ZLR*6%?W at vfao@j
zS9q394$yn at wy>MQ2v5Qj-reZt&%65tPqVoCFbE{?o- at t{M!*QMH~PWQ$@FNJ^vuWJ
z>P=X9_gM;~**B98;leo@=ICMd-?hxi!p}7wSymuMijxf61NWorJZ0kJ0DY%A8$j5H
zE*v-xfLC=^04T3OL?Eus#=YOA+v9AzKwc%l%&G=WZJTtU at Gv7Xn0F>>JiFC3_;q*W
zSHZJ~52az7Orjx_>fM8Id-t$@(s*FxfwS~rH=|M3-8JVyX23!d$AZ$aHCPGf5I=?k
z-j%2#xsO6$Aeo+B0Aln!CffB(wBs5(EZr5c4r^OQV&;S-=HxhK7>WZ+L6`$|gGfuj
zW{i&h;#waP*D&!EvED-qz&~-UMc at oTw}YiHWPtG2fV@`Po)iZHo5XbfI{(}gNb)yA
zmJ1z;1U$&!GT}U&f-==~D`^AXdSx`vdZ+{N749qr?tIX;w3Kn at 2I9`JB$oJ;k)(HA
zM5z%h8j*IVnkDw<)5uH!b1A_5l>Z;c31)^jv-BqvB`_VBrQ0<mkT)tKBrp*s2!xEt
z?0=jf*lbYd{|+atY=)0ikhX*}^?!vjAR9=TnIIWUa7?H`oHCu229^LGX)fn at 6r!i!
zXqf5KB=x}3jnXu1YAcZqB at tia7#279 at 9E|Jd6)Nx<Z`G(B$|O^GBwnrcd<ud0S!GO
z34&dE7rO-cb0p&qRwOh<yO1_qtWQjGYa=8#Dey638^4`lFnA)Lv3JOZ9g&}*O&9d5
z#6Jn0dXWSt^<o<n-XJi<@=LtJCR8#|!GMWOaG=}(LDuSN_BJW1#x at WgplqPDZ<Y*O
zNxnC~;Q2_TKyYV~?}je#9_qg$6ESAhS!E(eFc-LAXwEtVK=n<mfWYg==$OBt{?KS_
zCxx;7pm$G5)U%54w*JovZv{#`PyYF7K>_i{Uob5s at M+<uV>B%Ywp~CiFj@&nEp_M_
zo2eektiWl7eF at J9VM1Xk37%%PVXJJ|s(kY{M~o#}HlKMcVIbMuz~+FCzR(;H#>5(|
zB67yyeO{xBm at zI3awY>l0kRqdln2_QgS5vI)Nj#m3euYZ07|IzwJOAigDn}}m!^_R
zd4qQzsFbie_s-LyR%r&UlJOPOD)s-pR>}D2ecAAS2tzP>T+?)ers=&$mtX2%`xADv
zlDe}3hN%4@?=XpG{~wM;;D&vACj80&*y&ISe>-{^J;0tvoet;u=~Q^@?(=?IcNdjL
z-k&?$eyBdQAIdgCH$-oO{`Fh732OdU*#w>cE#CyaFlG}}*)JB7eZGgnd!gRYUg*Pq
zz8AX8HAdOg-@*4N<*XG5xHF6P5gVV3-4b0-TcY=}Em6K3isj3cJ<c&N#qM!l^&;(Y
z-VwPaI{l?HX8-X8%6?6FOSIx9j8;fERg90TpY9j0{Ve;V<5&O#DKnk#k9L#{us`aW
z9~V1(bDlo){wNx8D*L0g!*LIEhDFNu*iOWYYhKjiR^vt&?vMI3biW+dIBgAvR<=@4
ze^8#Qm$O^MH|u1RCk=1RHOpB`(454H7glX21hL2z#|#CO{eg9VXQw=NgC6%fJ#-+|
zD3;HAP=2D6_KKRN>{79KlZx*Zy`$_E`35m_OJgHUm1>XElG*26sfKy5ImLs9TATAS
z%q5aHW<R3rqA4)l-VXC-j#;`87gQ-NT(J=DwjII6(ZLkcX4$yezAwK<IuJ7+Vp-x;
zIUCF4##sUu!2KXov)ZJCzpyL>mRFlvox+?nV=H#Ocs|+3dgP2HXgHGvnrMsKEoF^%
z-Zd&P7*Uu$8iTT+Wju at is$Iu6iT}bef_tOZ&q5I^B(^QCOZHXU+1W8vzKUofV;r+@
zkTTMhimm^Q-GbfgqmxALPY?#yzWZEq#8;2=vj^8BxsCD at B{ZfFKS<^R at 26Rty`~*v
z at e*a%=P+$i!7yNaRFI3_BV;Pp=$x?X6k38B>YXcR^x-ZU-V<AkcRAZV-Xqcvfd{?u
z+ku4IzoqHu_k70u+LH~c%KK+>YKJNXcS05VY+G6n>P`o&H6e9*co>)4zSGzb=8b0d
zp7qnbDrJFeZ}+C|<N2|4Y?=I)6f4SO+%7>|8-R8$hnBfw{si|Y{})){GcLZr(_pgz
z+*OD#4jNYdXeoNqi_DVWjs_QoW at pkW$#@3Za&9G)B9A=Fg3M+A*C}ShX7bRM-INFA
z=TPDTL#1UmOSE$(nYM|=c(83d4x@;!q--DHcNod#iD8CnR=Z`B&S}y2u|=J8<<P#A
zy;AmedsCi4rkYs1%kso2vS}MY4I%-UDocKzsrm!6R*SOlkiV1F3*~VWS1BLCR9}$?
zkY?ztWYGCfaknSl_#H2i_dl5M+Yh|(sIJ{xiB0%_N1HC5AvyKvQ7^ro9FY!7Zhsy_
zj{4%C0`jxtBaEK+h_{Knm+j_m0ps6&DaI`zkd?m`qdce-$BnCR)S~0YR5$JFG<q`x
zT>WeC=99t2v-~TZ1<lPdmlkt at KFP>uyq0-PB*SnIWS}i6)E}j6w;xY-qIlyz_5aKp
zWSs4iS|p<@MOjh7VzM3sGBj~;Q2-!ANG&Pdp+y(ukv_wi4V*3~0=$^R6S4YoOZ!nf
zoR6CZhI(LqSj^d$y5q2ZRjB$@Qo3N$!=uh9F8Y`1f8`<=mSy4E7?uiEzXnVGK61St
zMOEVJ+IU0_qpWws8A5)$SAT;UJS at YZfoixpqK4;i6RRvyHkNV<mtfIZhATxOL#i`N
z6JfE6D=Z;Xs)0Aaa5HT`Yz~-gOE=^4P%OJM4yP=s<@bgSl5qncjEM;>O<-w!kfi;P
zqGc)Zu=eMPe2u>s5 at FieY}=IpZ1^IZy8P+1fCmt_0c`>+QZz6j3mBfj-71z(;vAaA
zAugXJzz2I1TkK5~n5G$cfVPnu5`d|pK4^r=g$#szt7P2DAx{WZh)I!vD>Y+^OdB#l
z#k6S>BIJo|+bVxUl!)-2Kv~!ZIyBS9#__|-0nR?n8)MEsp(2n9VcH!X|Fg^<Kj at 6i
z&N8fu%;2F6I?5n$Hn?C=NE(nR5O8IP2!&SOMS<Xn6$tkv{QoKt7Q~-jAh29dgmXm-
zg?eefH(jR$JXpO;pw8`+v){!=-<6GS-mZNgt}w;5mmMeZp-1td1 at R$7i;p-(d>Ghq
z187~csS(W{h=<~chceadElVTS!J7u~NK93OXr_zccszq_mkCLdp at c2In`!aAIq(>;
zmk`B5(d?x#QGfOt%u*8i^OlaKB$EGaR%MA~EK#aFmsn2=)NA9c_u)@Sw>n}yfIg0~
z8Ss>v_%4g{T_!F*f%P&p#9G+BMm}c(g|Yr_<C}Bk8E9r7swe|Ec#G0&U>u4hNbC9r
zt-`0;U&E(Rh#F>m8sbvOp|HQ4y#>i&OA6=~+e6X|h<zR3y9)F1dB at H+laGDk7tQ4U
zp(oB(%TLlTt7Us{FnFdq-ioY)%Ey+Ta6D$Jy6#s@=!On|;jx&B^m6t8u8#VbAB%x*
z$FG=3p}vIJ`aTkVRec2~2AEb)qge5}Xj*-^XMhY$hOrEmo&jcVHO<^-$$&val?;=A
zjKO%{uTfpPPsCto at 2^u`X2;g|@~^A!+JP{BsXDC4R30AyU+L<wDs=8ZHLO>KYk2AS
z02#(bH1X>3GjrVd)j!8^#Yb_j039GRMhD1_a=qa{c2*hlZ~HHk4u3oAn&Zh|Sj*hA
z$e3*V&-M7Z(`SQW$S;K9C-RQtson at 5s#fFXd<NSGGoh!9$V*otJB}-h`-1-Ro)`+e
z^w&waH+y3Et?Pg0H>mBEXy_hY at GBs@X&_;PVKx<Ev-hU~GHh0dGyFJEhCfDRc>AXT
zxa%`jSQ_pB>1<<th3%J(^=oJ0u=Z6yM{gC!&j!Qut9}^_b!UNL?$5$-(OLQK;$H}Z
z?W~-$zwnpU^6#_O;{1iR#2pXE(+I_v<~!+GqZ+bC)84nCyTm2%%cXcTAGomX?{vjf
z+O>SVJS&|=XHKiNT$$1m4*OjCkV+-5p$)>UaXf%?R{Cw$ccSj?NAG;Qm7AU|{kF1G
z9B36gjIW#qwEsa at v<>Mawd8qL9b at m*-+$vXSo7#)-}p<=cyJ~6xJgcHxTj593BNdd
z1HEnFZ at 1E0DSyNKvaN`}Jw<O0{<f9giuoJveDq{3Q(K116Sepuo*^2$_xHyl<2lM%
zOE4Wz>F{=I?%c3{Tgl3!h4`=0^aUf%C+5tJfTIWpKU^QCkC__*S&_M4`p~%%uolhk
zm)<)EWWg=$Go6RbVZe3F83?#1)XYV1?VJeA7472tX_&GN>wB+{HN%i_-wODoVuux9
z0tHm86=Dx7&d=lbw{bj&;{wf!X9tBRhM*5w8e7Xlg(ogVSG^aLBOEmB8=V|nkK<&k
zA5QVBWFW;AGzgZ_G$PkCW7y~un_bJ<xS at 4n^nO0~+Cr7lelKuCyp&~m^mjcI6$iUl
zN~?!)3Oj8;l6p|Nl^^&pm~2<Q484N1g+}<$x)Uv6>ALXf<d7#{-yf6ug3JVLHl^$&
zcfRP^=Tb-staoV{TWSN1kQ(xD>!J#9PyfdY`nX?x%=7_f()Y{s31-qLnMxIoOo-;l
zz)P`rub(L*Z&&D1ko at _Q>tytsOhdt(Cjagh8VNo6N}jS3ZB0yCa_^h5BGSLFoMDN4
z4cYIkgc=KTb<P5`F}1{#lMJ-<_T6;{3Z_;&_rM_*eIGJZ$8;o at YE{odb5+i<g=Qig
z at 11Cwo=i93TPt?p=XcO;MkPL0x9Ap`B^foss^M2HGFPO-pN91LIMxm6xK<3hs0j0&
zp+9Gl;yYs*7G%CN7F at YV@tr}{F^3tfW^$6To-APq(>8JxtjB}Co#aO29dZoJZ3&RA
zHYNAbwMZLErG`x8=b)6i(zWGxSTz$>?^6=FqhZcKT>7gqm7E4c9UGG{bl9?&SqP=&
zkE2p^*z0Tio at Ru@ToD0XqvN2d#k=%yyU}sb&~oT_yUFE^UjfD1vRzm*`*Doy=fLn<
zZukV1VDYvg1uusp$aJ)ucC;H at p5xxjXf}#>U~%gXZ&RDqjiF$m2 at f>ky$q);+2Bc+
z49#jc+4IiEvD}I-5DL)$3B7K?S3s5TA$r}6c9THgzD2W%2sA*(QiE?cC2ofgYG4JQ
zfnK-ChOOvEU`wPM0qb?LVKcqigNn`mC9-w9Y}!WF{4gOX28p}rP;#ri$#M?VME($F
z;bGGj`#$($+=8}f0sMj$VxG;I$2$wn%Pd-)`aYu6?UZWVj`?@emu)QnHq8GT)!CZr
zP7S8^q#l%3m8h6gmks<E=NG9G<+=1WN^R-c;;`glUiK=70+L-fzZ|wg2`kFS3&?+b
zD^@<%+7dW_Ru+$@lD)$_tbF2FQ_IRO+0+ua3gmA%%_Uh&C*qjTg$b!G8_-zl9k!<M
zBx-_r9&daxG?sc$UUTYl+$1b{8HaiU0<cB}!xLD*<7?#}hK~26F(QDPLrpOJW=WXm
zsijS~<#$l_Z86zDHywiP7);I~T#{9I5-s8LZ}kc<dh0w*o;nO~{KBJ8w|l%b&=iSW
z(AdJYKKgpQ2P)kW442NU#i&;dA<cmiv%>h8P%e0M<=!Sw;{iH;P*0SNTR}X}%NlEH
zUiq0f5es=I3EucpB>56v)bqWkF>n#a<2}%RV4_zj$BHo0ly?vOufteKT%%szj?iqO
zDgl|}0hpaE2vVqSrOqFqPCWt|st|)$)hhRGv9d3)vdv0mD(V?kMu(xzfR7sA<?6=0
zy*VK3ShW%vZQx#=i%5zt)k7z}m*D}dR8m5(Tci>?xifB-N|64Tr&=L-I`q0K4&?97
zVTySV&O-J_xrZLIZ)4$AoXdts##fOqvYpUa?#R2vb|OwJ`UjiKbd?>PW?d~W^Jyhy
zR+FCB&r^Ac?F75ZVXckwk1v+rJ<@DDsby{tY$x^P^}xC?eD}lhJ86>8lQBfFT!ly1
zt<#{5N!tD{)bS=ppcS*sxD{Qi!29)Pblmf<Snl2_yuyMt-~{c*C`Is~tD5i%LxulO
z!87<rjEG0Uf>D4_c0N8lc*h8CZx<8Z<Gnr>-UCB4Xe<w7`{(zMKY{KW8Yb$7->}Fm
zQ<M#9qTaRO#zjiZ4RZA)O-yp7k6y$bKgl$2NfU?iZ}|4uKdRAMklBsxM3cclsaQT~
zB)a!lXzSHm?!$(DO$(wl9xvwR=?YR8nL&w0#cra`J!+9TP=pVEfQRSc0h0qy^^2!{
z7W|DI7=PB&k@#D92K+&bIe$Xj;rv`(Fb1akoU}#eO8f&Im1%C4cBZpF$~KyxnaeBa
z9-)g|Uj<%M&~+}L%lanNyW=M4$*b7FAK~Hoe*W169*+#vRx;d|=Ll(s@@`K#WIGvW
zxsC3Zps8^QJUOSGTCNW!KVJ+~Rw9;Zrl^EVGVM+IKf*IU4){Zc(X}kDnpkzSST#>A
zR!!BE*lOc!N8-dPjk-bVb!fz at Otl&^WNIAq)an|0k7KGP|DaM#gWlGw{thMQLC&dh
zAm41Yg6)Wa<<T#dp_^BMm1U~29;z+QF;By4i_8CL&Oq at udBg`icVPWrCP*zHtDNIB
zdxL4m^0kU*I5hoEIfgpS-tmZ!KEZk0spS_3li%Ay_=vK1!k}_Z`2qYG`R%`bPdR1}
z=5LG+tQX}k;!XrTTX)B-0fEo6rW{l5HzB-tGkD+S at IEw6EI*IhddOCTmp%~Qha$iI
zx9<$zsCacF>GFnFGIkS|yCq|nTtcwsc8TTb)8&VS)O|I0$m^30UB|3wrjH7X4&|bu
z1D9x at 1NhLHX;J;h{@g+I_+BHU$GE8~;l?ccKBUJud>rs6<roZVt!(T{4U$tbLpRBK
zV+ZO)cTQKS#^!deJRiMi!s?yH at AH>TMSks$YCpAUY_{)_YsqJ2=VbBCT6A}N!kMHG
z`G3$j1kkKHGg4|H=fmGY&PnPzti3+E_8X?6`ZQ8;92Olvh$4&7twKG at o)=jBAVZS<
zpk<LfOAq?rWAZE=x=bx*%OxFdQlek2(PUg2oTaB*g!<SRZn4>5rSxNE<P5~!+_nL7
zX^~g)%`42>pVonw{f(5~pD=ZHztrGgDRt0RNHz9L{Q^=;2J*k~6w!rMk48Y<mSyPQ
zZRSwyTLJGI at oG0s_AAM%J2-PF-G00o-Neq(+7ISEO0f$tV9#ZKI~H4sTSVFv@{s^(
z>d&c|4y00NCDU9LS651JALs}1A6S1bh5oqyqUNjBZ(iZo2+w1wqcHVv{ZfBe8p1{O
zGF;733g1cgeY!NpAFiIu<LoGT{8uKA|3>oIjZ`>2H9Ec^%I8_9mR|t!dE8dw2jSwW
z*Qy=D#Z!PKzQ<SgcJ?O{*YD7d2}xcxN#402Tpv?Qrp_>Zid8e>q>~`R9WB>_^v#Ha
zA%ky%qec2R{Kk*)I5GrG>vUwq+iK#_%VB4JQ&i1eP_r8S*H&e~Oz at Z{(w`yLh4oV%
zT~HSY4y+eneNd%jgkm!icyo!^Tmo+{(N-g{<|>uu6#q9rFE5?bAM3;Mh>({#TO;IU
z3X^sINO>9h_TRn_ATNjUV5udH(^pK#Yp5h6zl%F|48R9D1!Lmt!VMgX5yHX=VO&<o
zY4p(!6UZ`o5?ao8(cYb*JI&CQJ4H76LikN>N;?kX%h>Il6eQ`Ti!*kC_zKzAmkH-&
zI5bc+r8e#O!`(qcm--}RPcwF{tV74bpck(&kY8jdo6_x^k6thJY27fac{9u<Ts{Lm
zzPFgu<Be0VjdKV$PUG}=BYQjhQ;M}K&Dxd!mg09LQh(v{(V*)uB9UrIN&+;NObXy-
znJZ`M;b$3>eBEKmC*|tVAYqywqjZs4CV at OMVCZrsjusaUt}pwschUnP_I7plOYONo
zEGEC|CssW7$KF3?@n*>Zl8#&+>1AsdPK~)f><=&q!o}TX)8zOejc<pXuEV!Y%G*%r
z=|lKLLUD>M*QW|xf)Xd?bLK9FZJR at mV2%!m5bEuuUc>y0*no~>4xmM-WAacwKM^8O
z&Q)OGgi7j+vJHC9{UI4y^%JD-{N|O2b=iNGgwgb4KQw*9QVGRB^h<qf37aoS|L(;T
zOp^{By+0Y6E-d5a%;C`EI|@(Uf_r>P5=c<%Dak}G-m|qhh8<|NF=d3n_w;O2bWl$(
z_x{csuR2!~3;1XT+6wHnsEO_Lg-fF1wGn){<4Ew?6!_ehG<otcdy^%n at I*9x2!dqf
zvDz+_Rc1*8U-(Ke5;E77npm_v`)7h|9isHAeyJ<}9CCP29l<ZOegU!y2QH&kOivad
z#?Wm|lW$A5H(AdgAU<O*5(M%Fda^x*>IBq+aC84&E0cAuA<9m!nmq^@=?>uYoeR*g
zCD6>gt8o$Z08Qr!py^Tmceiq||6ztDKE~NbhqMQ&()a-?t;R|#%vfpQJ<5e{8Y_4X
z;x5SbA>;~pFuC$#Wur>jmV)F%m|PL&zX8r;RJ2>Jw5)Z#&-Vs=PO&f85J%%ghcuNt
zu3Kbo$imPas)`+BVcC{7%%#WQsHkbfUCVA>q(n_yT~FVV<<+<cEUjg)BV>x+#-g=J
zStDKD*DvA`-D2aK;mA+wH}b3Q8`z)BXgPD3R7lWd4wniEgv?~Au$~@9NQJZ$ojFn}
z9H|@&G%3wg{J9_LUwU6uM79wAOel`UvU7@>EGr`H8(!Labg@~i+G`u5w*L7g7re-5
z9+z|VooX^dSt6Fj|LN7m=1Tli<hDEjRYcNn=9osyBi!le51`9apEF-&eTFg0@;$H^
zXDw*gx?TxhpOjp2r*d*}*L~!SyA*|>SQSS;xc>y-0(*GN(C9zKDtG1NS9!bw=w;v^
z&|=^##a~#}bVyTz78teUIHyt0)GL<)n4d at TY1?)$GfBuCzHPW@|4CG-wrNEB^Y|->
z_BRvZS1a0w;jdn_cP7AZx at dohYzVYHnaOI=UXq|xQREgK!E=F4>*2HZTsi}C<ekg&
zUJV5o4pH)=H&*)>I?N0WJ)+~^ld%p*BClgFwhM6GtPK^*yrKZAf%n(Yk)~*WpFL{e
z at eB4Sz~haB=ur!ga|S6 at W6zckVm*6K`8pi3=^<MMD^UQCmk*{#6=a(}SSj375B>jU
zaHz2~G2{Vw@?U_-m}kIJTQAOd;#%Z6I^RMAolaDSkmhg2=#oeXyI^D*3~eNlFn;xU
z<R`O1EJELD1uH~opq4^|O%}|y<3VwQ8-7lQHrg at Ri@CvYRIQTl(PH%85qP=JZ0ikL
zehYt3TZY2lKFj%LTkcV{xO%2KbPOkpg~wCq+$R(M79P)_=bPyHe2mCbbS*vS(D&aW
zRa!7?yif5B3eb8~eIb9Glf|NUFq5M11aa!`Oam0GQwO<M>UuRh4ID1Oup0CL|Eo0r
zYkShK(r{(KsC7LIMB9@&1Xd0gh<qJoY)m~UuPRo=+6vA`oOXvV#Da}-B^|v6EweBl
zjj^%H2H9jf4UmOWI+3Fz0(=3DB8#oibi at o$%Yg+{OBx*#EU%6^A6EiQ0Q&pHqE+Z)
zM#?_wx1)Cm5!&O}#BEfLOmZJPhhY<DQo^KVGH%GYb$vmx+;|l9SZsLj&7>Mb*MSm3
zQvyN-G-U~%4o<e*Rl-%+_aLu-3-_wJBDx-l)g#r(lR`DY=b4ZT`>XcwC8^Tki?M3!
zt5`!}-}~gn*@qs{4Xt945tvn6b3c+mA8kYymD88~^yOCivgrJX at kZOv)E?C54K4B{
zy<}{rk$NtAq#nITr5bB(5p8ecI3URa5uhxvolF#qR?<U)SY#i<ZN{FW2d(lTC=Y|g
zq8I2P9^J~F9ITv2rPxlMV at bB193mF|K<PkM3opP2omjN&TzohO1l0vN(#>As?RLP6
z>*Z(|_uY;2k!)z0oYuYkx`_zxsu}DmGm2Q4VSxEnzW=)i5rz?{iu9+0L2_RVX(NfE
zbrXrr*FYXW+OV2S$oHX9%NR)KG#pjdJ?l at O4*IK31%risQ&uBdUjx9Gk1p)nX~QF1
zioj&>RBn5fw)=&e4!jbt^{*!Z+9;N1-fWf(NByTxVhxY1!5Z*{y0CBjQ&@g6m2U;$
z+f}YsW&TM@#-97WF#&wI_g>h?_?(qYLjJd3%R1DDOk~u#F6M+u{!3F2(uT%t^apLi
z4mX- at D{h7gC`z5NwQA@;@rY9Aop3;amXf@}0a`@>65y54{1+2-z?r2M%RT0_c{eX_
zpcv(fd@|~3zl$NA3D{tZ|3iu((#Y=#YF*d<GivNEG==A*qGiXa1Gg|xs?TFupSFq^
zgU^7zWRrr&>&5aG+ld5m%|8c|xuoz0mTN>4x%4FfwceY)*mXO$$FRrrzxm4a;qO8x
z0EWh at d;duY^QO;dh30TpCX8F>bAfkdIxGUH-38Px5b7s-G^_j)X27XpQTlmgoyQzB
z>zLI0XK3_%*UcwodN89l0_74 at 2$Z?xo~9A?CS-Zgqp*B&G_JnAOTiUPXiuCIu8*PI
zw>#W5HPi>KIt at n{@pe&t=WF=&hn5qkK at PD*3T=a_Z$`Ja@~-d%3S;w!UK*QbJ~qD@
zaBLiR at v&L8jU)`935t$FHb#8KixfC6grCFFEe;N~2%1CDu44+}<S{TaS5l$w=t7^)
zi&8L(UOYx{CT$})={|=TtKa)N<|#BZ#*EI?SHDKS6x`JuqL7}&HUWLhLX9xprDy^J
zt}1yO`pU_?nPWiF&C(<DgU(TOIfE*VLB*C4pfm0~SEUL?NAyi)P|2C&Kpg-vIGBSy
zd0SMEznmLUIjBrUAN44hN~iqU(fQwr%ny21(Y8?jOv-;>bbi}hRaosRl6r_qP#mRC
zcI9p(Zo=He9e0NFf~dbQB5#iC>6pB~kAwphx1vcsgp at ZKQmTgzNK${Cs|?j5g`P(1
zI6cX_v(i)LoQMWNJuLd-C#B<m<s|hWm1~Sfz^ce{pi36L`x60rD1xT?Eku3Ab4W*m
z?6&ww)@0(hhd6Y^ToS#Y9FE-oO<JGmoc9yw`xUTMStg+~$V>}=)XSO6=+Tm_ok)##
zMZ<aEPL(RHZ)J5@%`Li^L8^I;Ag%mOcs;5MLwfj5f)o%KcScC_=0reB>vIIRm%<S@
z?xbbus_n$%3_xmO=xb5%-FzqIHrxJwv-;6LVmFJP4V6LM{VqEH;5%a{m_1>M$>!&8
z?nG+ at c3bZEuf;IakVs}aeTPCfHz{<pZxE-OKMp=C-K>J5{t-Vgj^&ut4~WUqP$Q$2
zIiY3{I>A1GZVvJEUv&;ORTV2(xJGx;9U+nZucOr9RMueC5XJ;r!gckW*LXk&?An#A
zRr&4r37PY5wjZ>NFTofPz(sR8PJNs2U|fW=1I#}kbi<4=Iytq8)~f3u(YZ|R%z|ma
zV?SuEjhUMA5d}jSMDt$@ll^b|k^M%af`S{EDBVpCBU=hjOfNtM<z-l77M{qa=RXf3
zWK_l?V>Uy^V55Qz(9xt--*aZATV51+^l#r&0EE<o3?B%`<IyD4Fq at NHWdZ59_Wv*n
zFJXNk3RhfghwlIR_ChKD`AU1t#e?b7)7bg-SU(yqR$e$D1w1{QZRDH>?Z|P6YlQ0c
z*TNJ3=-HtmexaLldlH-F^^|!>bQgr#$}A7d_nU=&vwUZ`z6-i(fIf|71f1}yzj}>t
z1S83OH;Yd#BQS={`*Ccupg4{#sTaoalRetzi3Z0yE7aWP at 2I(BF}MWP5>axVf=$~j
zWeo6IqRKinhPJLkY(LIWQ8nmwT=8w;i at fMr^u)|4dGIV&w|sYC2atd)*msmIGDjhs
zm#UwM{_L5yBEC+V-Oj;WGK5e>itqu<>G>|4lN0&ienh at wrZUa>%OU?%(LRE?ZMh_(
z*m?bmJ%$Zj202|LA)o)tZX(}`Sn}uoqtC(IOOGi2BG9=_nQ#Nuc;o9)UHoDOu2OzL
z42JXE1bG4n at Jki@vUBX~OlSle$x)8*aNuoxsD_8n;i2MI1YUTXd+XH(Uc#vB!rPUZ
zud|g4eJqAvPGr5 at IV=*5Y}iSfJPGiOHF+Kx5xJihS_rfPK$p;NSjtSw_i!gC1^+ at a
zBEm+g3-=<Hl9+UVfDK*6Ic&tVbcKrVuL{1)XV6VT@&9A*O#q{+uEy~@$%G6LOq3v?
zs1GCx8kS%XLP$t5Ngxs+k|4OCnPlE1QztWV<_!czjfMczF*b^&YOR%Ot)CmX63}7*
z%VIY~ZK+E?yZD(H+D58CQOW<DbMKpZ?`6PR>u>NsGs%6+d3QhO+;h%dHz&}p&wn+m
z-3|zf)TTdO0abSVV=~RSZmw1-ZyxW&?|-Bw;8*XN523=+eGhMLfYy3XKx<1dR2jE$
zUU>*}Tr^fRFDemFMK6_~K;sLlO~*5OM2 at IX*|K}(=fcY`z{@M|=>7FB2>B}){;)}U
zPaukW$NhG~{ziQ++L{rR at uT_(e+(YGAO4JLde9SG#0`$vz`cMz+djp;^%GND&*oC`
z%qLF9Ew^Kkw10-1(-X+qv(Vq4j$v0k2+lL8*UWrXfR49;`%00O(NE|?{dK<DDv+$>
zO#`;}sjG(`<N7CUeT;DsabVxatq-(z`ZrMhPIy9x`0qn>JsY7+xx7rTq(oFhp9XK;
z*KzxF&J#qM+eT?cG)ZS{RaT+TM?WH;GLMsQxUXw}FwU#c=SuGL`X?d?sNrgpIvIT~
z<UU)TI9Zc30DX?*KEKcN8Tv>plq#^?_3k|6h;H)vQ{gjR7he^j&D`@i)!SA*8kS;k
z<#?E(_Q3b<$BF9R?D!kJ{GrH9_H=>>MJ71z=Y%1Be<zPX9tm6(=UkikBt%le+t%Sv
z^2!?+vGUHrSbp;{`5gV^$td`r<>2#5UeF05&Y=<G+>1V6<0M}AWVo8o0#Dtek8y42
zNnTZhjaAiiH+-!ZIf<++I5Gb3 at c3^PJ}nV_&O)EPy`o82i?uR`PfNX5ldpaQS6#^%
zZusBG=YyiG>Bh2lU-SiE2u at voq@;K-+^-H&xaXdXKsG5V+5B`a_`HM*%}(KSY$USj
zx(R(Y at i;$tG6H$4c6rz3==0N0$mgdb*MlQs=tA`Q!r!rfPCZYQmS9lo(o;a8qj-P)
zw#yjKoWy}he0}8uK7lo)^J&NW#zDBQU(+P1^s7T>ZiMDz26l=mzBhj!`2FF66v;mn
zXZW<^Xco;4THG=>MGCw`2Z|rf+JEFlns!_|Gj-#>ARQ&fj}Qy4#*Xd4I^1JFYk$z(
z!O#5)9OVHZx7;Q%_pQT48i5^#8CCt(e{JVA5O|}d$zoDUg9Thb^5d#<4k+ihzSA)o
z%BIi|sCHE at vf-~T=jZUH2lic!^H(~q0k1u8ZC(8opQhaNn+WrJr|at at cyr3(f+0Bf
zPN~4twAb_A`tJsVcvP6_XwIJ0HM>N6ir?`I9vx=d!`lRE53Ctj3AzDcv^T}-q}4pi
z_JDS#KR>ZgBsZ@&*Zkeo*2mR!Ku_cTxLLuE%*#2d{4jv#H9vH5UK)5s$(R;QREewO
zp{K+W=FozI$10BZ(KP$+rG3PUqk<*9+up@~#+kQchi53p@&AHoMhHt7Bds#7;=Lvm
z7w)zTzSBd;)1!aPz}Tln1~}D*!%CsBZ-w>~3y-&R4uHyAlos at -16tZ{k^&{Yfdhd>
z2ebBfy}@S)-x6Gd<0QEyz02kX*YGLty}^|B*1fm*TaNe9KuFGSQXjzC<QMENNt^#P
zGU7p;4mU4Fpau|j0IBle((b?ExpE)({Eo6ua~xATs at 41_>a%ZKK-1f)1e(dqRb$gS
zRy|E4z9~JsL-f_QM8f?IcSWGDbt-+`8K$p&diq*V^tDezUw;{MGWu%K(wDl<t8YEg
z*E%hIZPU=#YAt=O*U;C9;OcafN?)U1*~BX(T^#SRGITVCSZWqtSe8Fu#c(C3Gzlj|
zjJjPD=c2Unf6zo$K6ccWULHTjra8|q9BbD+HP$bV6U~XZG|_~Yz0KUHr at l}uKMBRM
z`MB;pKb8J)elybF()6G|1)Is;ExRQkKCZ8q^mbKzMkLt8Nie5(St+N$md}9hb_7#4
zWp(EKGWCJZ)*b$FKzh!NM0$ZkNO at wu6wL_%Is?+%{{@ZD{GsPf%zekojWnBvn^Qp2
zh8>9hS{{k`#QX&@UxjADV$OMc9lRN*)SPkHIs}a5AU4-~13~=IdN_3z(gdDwi1hyw
zt?+%0!mLx&Ne!+0l?d}&`f>XvQQsX8Y_uB=i=JGL3z_&qlg26k$WP~nv(#OWD>2se
zf%cri&^Dkz=<8zeg{NuK8J6UA36j=feS1#xe^D2PX5$uI#v<AV;0T)hcV`NYGhUH$
zc$Y;PmAZNMrLFr?TkirNhj*D$TTyVS<3CHgavsFAZ_c5*KD;X-uzCayQf+5^s4{zO
zQaGQXb6C5)$N5gA%EXTMR2p2=MaJW5g%<`h*xU7o&(LFTNmuHsJ9*7$<s&4hoW(;x
zTxqoa_Z-SQumA56=KkDA8~LRKu1LWw%{!QAzAtw*HYdyG)A3qa`vVV-=pTDKSGrVY
zIjAD<Jr#K&cJW<?g0<(B;JhwO=T1W6yn{jWeZf10 at S{u~-XZyi<1*d#swR=TYCKL%
znx7(JK%R at mqi}Hcb<@5%pjmtjnZwSgBmWG}mO#A-tS4!<SPITgkKpIJQKAA at lm0=7
zP2KoLU_Eb7QUJ-|c{QCB4gofk8j>ASL)MSu)exGny#uFgQ}IV^A|-)3uz~}+Kclk)
zW?u?*jpQ+g&=2G>l6C;@qEoq5RCb-8Mo0;5G^o-eZ!M51vEfF(Ob_#A^C;p=K6B9m
z%}dwkhp|oBiYQB6)rQp|8kf}7ck-r1xh8jM at 2!jZA$BAREL;?3LaBR2aY4ltUBP?+
zQ+Vy8!?SUcH>F_QA{XgtX>ZRXe4-<7FZqb)-MFeK at V4<_F`%5S1)D at eRTXiowA?wz
z`zW!VyJ)_4s6M76>G5_7OOH)0$;J^hfipdIvwsxMA~?|1{V5f13?zc`hX|Y+^n<Ee
zd}JsUYH0rkv3++*Izez!X4;8kkZ}${iK-Cb{6bO(@{dPc4>moto(V*Go0SAR&M&1V
zCc6XL(>rl;f3T9bFCc4EHy2V9)6AO~|4pjA$$5?%m#Lw~rG=j){5;p4+g3+vT81B^
z8o3Z at U`sXD|1mmFxJ3{nRN7dmG$5K)Q~I~HkV<MRWwoT2HynY=l;ApSEP`vf-mt~g
zo3k%<4Q_f6pbQ4rA&=vSeZ190>2(a$CO)MRs_Nl?^8Ex>h9p7bCefHwZ!$`P3rhQ~
z3{>0O7T(gOuDTYRb?|%H2&&2M`F#GuN>#m5Wn*H`!|*%;@`m5GVPda50GIJQfFjdR
zwEN5>CCB@=P{Y_62r_+(uyiLLg1WirQd}YeNJ~>09}oT|zEdl at YeEWIv|9ZEm{2n#
z{pJ*!?1tRkHTs_#*6tLVDorNJIm-8G0fg{Ds5vu(jp;cb`v$cYpVo)1UtlN1d-TXZ
z+pK+nm{sc$F|UPZBy?pY<3XtDeTqM)B>mP#TD>vPf~z3sQsa=i>S3<*Q8dr2Wuc)W
zU^On9cr!tP`tB+wB;0aC<gZUsLz^C60um at m?+KDTqBiJb+>aUY*S)xp2sf?cz$RL~
z!BIA^pV>C7_&DFc1mdI`5)rqD>oXJDNm}tj$BhP#cD?>_s6LeyZ40DeVLCRGxSPGB
zWkpRw>Z(Z?I~4iI4Ks7raK8GLYW~jzedKc?p)U&l03}Y&A*B>&*7lAkMZ50 at ON0dT
zj}Pe=t@{IS_-AC{D)S$AwpFpdmRB>?ywZH%%^1^Glklp%Ww38i|E1xSl;9eds&4by
zynR2Q1)4is-)So~1=e6Z%6j38`w$(>eLp}1&~)E+HRq|T^Rd=;K)sCYg^C~BC-&#S
z%Kv<mhF_AY=0m%&{IG~N7FYd4Lp8&J*3{X-+tzZEera#&#sh%W8)mkd6T6?InKixQ
z#O{t!&ydJW>3KM0zi~mLTR+Q}j~w1%@}G&*%4zM0IpK9^HB<I>Z%L-npnQmFiyP<5
zmOrDJFWZx&+wXf(#}$hfshuSAaN6vV?!cbyN6#C-qs_c9XFCwbBHWsSIz77Y<WVn%
z2s at VH9CeDiSj<sx&k5y^R%1Mt=+9{FY)TC*vTQ$^KzX|vcPqphtBES)dLE^WQQo3X
zA{Nn_yYg}j=jG|*Pu9erNU^o4 at h7X0n|S;_jDK~%_}`nZn>~#ECHv^a at 1>@FJH>h^
zuKx$#z@`CO=|7OonY!^cP~Zy#zo%nLkK`OsrsCjQyIR$JTDeZ+yR85yW3Q2ZA?7_A
z`AYmr$_>rk_k)UaG<EaRw6^&Y5Df95GB~_opgnc-<ue>PZ!a4b<c-kAKf)K&0i4f|
z3dJ?pX}W_b>oI{UW41n;McW}fp<6$|*ZVE~gqlxC8%6WwGh2 at JDW^fR5coY;B98=i
z@*Jgt<noj8%!|?S8YcEOCWH)tBDA;b88j|;qM!?lxt+T63IOCk+IF4fXt}Azq$ojO
zTE}}B(IFm at H4`H`+Eot`0q(~~{5TgrZtqIeiJyob#~dex4gCs_1yG-m^ppY0XbKUm
zOcOz7 at F4#{*}kj04&~SEAqD<FKs&;x{H3%}=Z0qT)VjC6KrP7ut=-s;zpHg`Xe`|M
zv{B3g+9PyN(3+OD-?V2Ah^JjV%b5Dck15ZGcotk=VA+*xBNl1F7gYAP3ey(Lv+((M
zfnHRqQ#UW_4ZLyRk<a)JE97<T7o-hrC4Wb$)jZVI2Mu`l4yc!iv44z8(~j*QCH8DE
ztPh<YUdG|KwBVlRpR`>oaU+=H@*>>OC+)Z<&0b3LSl16fCp2hmZp489w}(rig7-qO
z6IJk(H*t0vs)8klQa5hL69&3~CjNc`GEdASGQTHyQ#u*L;mS_kxTk}%q?YzIu=hC0
z9{&t$n=kw%Kfy%@wUyG__3mf9%9ofRFNc76LC0K~(+5hy$AR6c8~+uG847%?>uK<P
zUts4e2t0Cg7sm&mJqB^Le at 6AgarZX$0rhrW55Vqs5GN7SzXrqX+}@Mey|PdAcawau
z;L6S0pC|2eEodIedxbnLADgyi#Is^(xxD`g*6-vV at 7qh-bGZFO4Wq443RcVv7NqCw
z^Cbj!5cWVF`W)zJuYSES=w?fUYpWr?zCX2#@Fgjbhs3>TACrldM6}epzk^92l|Kx;
zj!GG@%6ogMZ$z`cuA>k$8(I{DbhWuMlk#j$<8`nE)ORAYz;<O)*8azmc^Isx at 9)@-
z8)sW*m|o+4GjSl1FUz3%;9g(T at _BDp@-aj^#CAG(g$UXTP3nGD2<S?r;F|r_QeVV#
z%hJ|b)>fE|=Ua>KiQ+rl at hq$g)7m+vwG{~=MO{;W^DLDhhkJ&S{_x`E5VL9R>1zv3
zE!z|3g2C$V!QqE+|C-T%g7BZvvOO`P|3%#YXzu^AL|h|2Xl)VP at f6J>)7r~SYl{+E
zc9<#jdspk$gY&Tw)E6v#M1}Tb`YCeM(4f^Es5A!>TVAzXE$UaS$Fbmnj7u$T=1bKO
zxCwpFY3-UoJ1z5Dj`#WhhM}(wo$uXIP58&d;`jTLI;x+uI}Gd7IkESw;O8H_n9$M<
z_1%oY)>3iQ7kny82)*IA#Lyc&6`4bC at Klr(dV{B;0iic|DoPH$CAaLbwEWAmd`(%)
zzxtGP+>auZcoD+<e>0xXuCA|4;dVOqp7k(Q&4I#Xy_0nqZJl|&!G)89&Dbe}yA^=;
zQPLIMirp~U^MLz6Z_e7E>pw_+@`?v+ at dZF?1!(K<%RsZJ<!C|bs{cdf;Cp=6KL2Y+
zb|IIguIj++i>A`cEC*6wJh0YOX!;$*baP72fVCrAK1wKT-GA%hB7RDC%U at CrY5DH~
zG{6fjf$0iR&H}e%c2irwW8za`Zbxl<d`X%~E$a8q#=fgpGsF8F<~37R-hgW!W;eBU
z9BSSmv0C0YL8_&ywZ+ at 7J%yGL-2>3af$i^`2kxX at XUf1|^XT60tH{#Xe$?FZej={&
zJ122eYxDCcZ6K~vECR%Z(={m?^qFunpWh4n<la(O-GN#|I(ap{0iOSoivDr+OAVyG
z_CV+R=C!77M`-*7(@1Q2Ke^?oSs4jwRO{1FazpW>m(*36JpO8mzvsbrHO2~IPpI$T
z38&Vx9i at UYHXYhzYWZ(hyO3|bq@(?L-qd$I at Vwe*+ONs)nu;4pW{M3YJNALko?oi%
z#g<Lp8V5CETj^;n8CC7YYB#oyy4%~on!Zdqd;j^!68rM0|Bk+l>CFKhfcC_hhbd;g
z1L?JFmx7m%LJlh&5nO at 848a@5;>Mh~ekncm`#X1+bYb?7yfb<yQ1}Z-;n<IWT{Jk(
zwQ3#p9~=bC;*eKsA7A&=*m_uT1uw^?$y^2Y9|W0S@;)fVrlWIkVf<eMCGWNsPr+V>
z!=xMsN)9OYV9C3<_5S;yYXlA)ISe;o2ds$TB7p4xO=LUvt@;m|wg={QY4{sA_R#gD
z`2X6C2L}gNq<7;^l#mxFTXz91WO*0&%f&_X2e8){&n at f4hXa8{9hjW}r13K5U>=@m
z7M#~%+TQK&Qz<pV`rLV_(zR8R_Fn|jH!XGZ%_DO5EVBiR(sO#3ogXY3kz10!>=sAM
zjbH>^-GB2aS|5`_yC!xVeIEA*i!|_8e at VaID;(_O!A86Q)VP<{!{i)Y{s8uQfUV5G
zO~-Ff at l6@2V<n~I8U)>M&`(E%#&3`^c1ppyqk=vuc+*&Hv*!W2l{`Sca!Ko6j_ku6
z+2+<he>QHPbrW`e+|K&-_TzfAn at 05P3Hs7|wu$z8Zd%XNVcimlV|&NVFNpp+Yr3g-
z4&dQ6TJmn``YmcfyTacqN0^RX7T8CY)gj^MiO;!m13H(#+0nj*JeP;G74))}tI&ZR
z+C5XW<8LEErX;9OK`Sm%PYzl~;eISo=^<m1_g7SAZu#B|G*OIO4_)IwSJkT>O8Vg)
z$%+MRfVLu2&o8j!A+cv$$M;?cY0pA~`V`gD9X+qB?SX1f;`k9{;pP;|Me3?Au*xb&
z;pQrb at X<OJp&zPtgFl(uV})owWbqEntv`N2V?Nx0v(rja2(}x72aX9V6!c75CVp^f
zcRlzab7D*C<{&b7Th*XGs%FytDeS!7kP;{~>nWuBD-Ha6_!ACw_jaXoy}uxJ^SVc<
z^Dl^N9&s;`jj!XrF<t)3j;CIT+^{uG4zI5?(0$~@es+u!>$$tFI0qV*SI`sK7uYEY
zEr0r0Fn>TJ at 9nx3{B6OH_XTz%>Ov+4703o(+sw(`zdmjp-@}EU!HNR(hFwH+j+0KW
z_6Kl%-X7BD>FkfRU;=3LV}mBRUK~t#ELE|zbb>7G4I~6jnm15~cPCJPF!;RnckR1P
z_|o%hjl5Xez5D|0`Grfn7aQKE8QzEM-rGv{fC$hG<#%Q9ZpNlWXcG4Z_UZc1vO2Lx
zO<R6_|5``EN|bk%Ti(B^#?f*x8{!??F&SW7+m$*PJa6516HWCT)zQlzMs#%YhZG!n
zDJNOX$9qa>Z#?S%xt>ND5(7)jEw5%@&68cUWglWZ)CrOjW|eZ at tNPk^uvZnA{!Rxj
z7=k;2Zhg at dnhs{}>K=<qU0`QZ7In+7<f&cKhp7d2DW?Yx8Hbrb{eBYy^?ZP>bH^V9
znRe_Gw1*pv!mn%J1RA2;ZjcX9{~3CGd^k4zzNMSW6IOD?yyZl-7<{7`O*sVOs(8L{
zx`0ZvJ9RCdwj;8V)k*V+N5OqB);4M*eSEjU^sK{Z(~8j?bynFTh^6JAgw=A(T#U9@
zR7dJ6ngN92LU9uQ`gqT}SV)^DmQh&Lx-jzy(U3h%9iF{Pw%YH#=L=di5!l)Fcig7%
z9VI33cANZ(+LsSL9OpxAe?<1?KT$yaLPU#+6>Cw at El|)^l}UBqAv|`l7mYrqa3AaY
z*^f)RFErri!m;}IBf59sf5<(uw4e5~0wVl8XYW5BO})D_^#?nG at Ckb;4vyQgG<DmK
z2>Xjue=KeoeGX+Xo9EQLVbdYIqoosDm98t!CsgLZrw|y+J&+lvCc4hYT1nIN&THeD
zIF{nE8sq6VU$1NI`M7O_qksM=+!o3tP^O6Y#W5#Kwc~t!s=Q4FdR3DTrTX+3OjTDu
z9Tk|=2ciCg4cVJ(xIMcxFbtm!`{`|{e$^iOj?ew}+vECK+tReqxHrWayxD at sv{HC@
zxIm{is;hK?82k1KFUos3zKF|q#YSd=*82A8XF>HJujT3Uard-v`ncQK at E~OxZ1s#2
zXF&C%yxXo#UyP~m*UyS+k3eq*eFC=@SNw-dB{S$XrFeR$9~B06SXG_22Wb0t<%R%l
z^WJ7|V_YnDWul_OXLpeoT!)S0X9T7}U7Fqnc{M}nE;op4NBiN at F$u~=!CSIHS3Do}
zA6<g}?}0uwBk+6F=z3bneuaG9+tt at chufn5NdEYGE0E-38F&{?ZVqQCG*Zp?i^mL(
z#g*mrC3s8hzmKPWyom1yPwG7G=w`(Y_UYi?U}Xwwa5N8ek21A&Z^u5MRew^)(HA4n
z(0k=V>_b&|cjx-9ReCHz at j$7sGAS#>l1<ttx&@Cf0#tYp at 8bKur?%20&lcMI9Yl}`
zs-b0WN<p9{y#M>d!Ne`2H;2bi_~@{j{wzqp`zADX61Ns?wyS$Pr}P}4(2hV0D(O9|
zFm^tl(O;X at dDuF{9B834SKXVbe7?<MLR_LcklnFjvvF4E{tF<n(<m|WagXppy~mis
zb|A0r3Fx6RrF*!r&-=|6OVi93!|lIL!}((Vl{jw;foOc><K7lQYf1*6Ek at uyU_k_|
zqG_Qi1A%qa!Sd2d<KQ}$PnjKj4(s){<9+8bc5Bi$>{mrvD?dtdZ?`f95*UKByn22_
z@(|!+ewvyUI>`|WX88!slAh-P7r%r;Z+m~Uoo_@{ZXET0I)lb98p7NBhWfVxI|GY)
z+X^H;1p?=wq~8Tx<O#Nz`P3_!x3m^61GTeu at sO6>l9bd{f5f61C&Z<92uawt**Fd2
zybNte2A|Ib2{-ej8v-~ZY?FyjH(o`X4EYZRU!=n-4yU%ZARG4K24%~}Ywd4;Z!mpJ
z(ELo!j%9-rOHy)nq|&PO**Q0NE&ns%sESV~G~Z<?#6uzh_;x4OK(6_&)K%}W2nEW9
z0(D;`=m+fmIk_dhN-DJMZRRPs(_QghX5V^}Ii%niYs;8Wz<gJ?J!I8q?IqzjTV1|o
z47lhZKUp|nekS-VZN%d5f}(XxB0nL~8ft(}k}g)3`I!J=_)D?dN&|574$?^#y{2^(
z=r(MZOzE3+J%k{aDxr=#Zi2kL;t=RZfzfsD*~arHBG1>nIsLFTr9hb$q-G$eciBQN
zZ_ at a%+JUYTYApiC{7I1}asg9xcvZ3s3HuGlLh~j3kM`gqiFDK)1y)z7{zX6ynKq44
zr*Qp1(;tlcnWbPhQ&+9QK3<;`T&+%KnVNumqot&!uHw5)t8;oLn)J&CK#shG^8o`v
znyr`K0UVdQ+uXr*Xn~mdQr7-pX}a1!QF1VF^oSqrR=(&UIDZs=PcwXn<^#MuCI!~v
zv_StTsFS{RxI-6}1T)i0;vl7EkCf5(51JuqO;MLE&>5P&qVK<NU3NH}a(QrGdh6a>
zt_YG~$Sp}<dAT}E2Jpk at ll85mDKdNld4#VOVq!^ZD{c}Uo<ibi=dt2^n#XznF`!bY
z`s(bjvM?T%S9#rb|LnLp{|Ej5tRLzhJsO^R)VdJ-_5{`QX0UkEwbkOL!QE0m`AJz2
zq~#o7HJ?wlaZEeO?3H7h8BLcW9nwdrNoxCpi_$r=HFIQe^4pU<PEKU%Osc>9ALQz8
zBFdHhiSlRti1IJz38L)&dB6UF>3n}nnnEb16w(YsG20NQ7vgY(m<<@vPX&CuhtOQ~
zZ_XUN7==&&nS*cgKCVdfvlm|x*wwO2!YN|3y*(1zqJyce1F_2Pq}}{W4x09GMas;V
zieQOfKLjc54z5>y><jr&m8^~6qqQ%vQ+r&7a=Chzh3R85_ADqeKc$7ry;*%Py^J-x
zjp9sD7gno{V5rA^*}2*yn*tA#Hn#L2u<tg^-S)pEsGD>0HlWSC27^sHL?*9=#E$qB
zTz?OFxE(#5hAU;EDD*{lniRC5??cYEEy7tl)P|}%OTIl!d%n^M^y`!YJivU_25gUB
zqK&jBiEh#734}bp%n6AM-U9X!@kwu2_3<!c<p;JgPRd7*JVz^^thDk8D2HYz2afT6
z05PQd!VwG#1RuFU4qDTLl`~B{+Aiy(@dV#YuGn|q*hi*#2WCUV;)g%c at M|u%yia#X
zTO#+)y*=u9U(a`q`=O5F?K8B>yotUNeCH6FQ&$tA%}qJHJxv*;w$1(vBeXRC`>BS%
z_c98_SA<c$XjX(B-Y)UhICa%oCf;^8hgyDZi_hEmGt at SIKgLL+^tL~VM)+u8ZpxQ7
z!n3||lRGEW<o<|hcdtek1hP2OL^ku15IG#^y8QDnIs6s`Q1A*32A9nYtR at UT$2UO(
zy=93&5OqRlYbJZPwqT2UhuS_H#Lx{$E^|{__DWE2n$6O`O`fM~ljonTO}<!*vtcyB
zmD*t=I>I%8P4ZKbn&gT<LAKXzCBmzUu>R>RwFQ3qcz=BwceC7Fk}kGV#s;`F<uM?{
z<^<Zhan&0{5~^bG3)CR4m4b`Xaw^kP*WjMNV2Rc^X!DVe5@<_iG8;?M3If)24*xZw
z6hO#NxN%)q&N@!vhlv!ra#r(6pPh^w7aKjt!*x?i5~?e(o_c$!MacPm>iW*C{Vg{i
z<lE+ at t~ySvG80m<h7^$9oOdDqBS%2RfW}7RZ9?j*gP}rY^<muGs8abl1#X?=$~07Q
z+J%a<8fhQ9vpAvmt<Tot9nWLEZGH;FwFQ(!?xHlMY}xscHqfB9UE=Eyc+*7bQJiUF
zChPho8s4eE*}Qy-1)XHZcXSR-E?v)O_u_y>N at NcO<RPs{B)3DWzhGl#XhrVR%+q}{
zjO5j4)A9;|<km~*%}SF`Q&;aG!$V9!o!8699|6rY+!#jmn&F{=YatJShuxYcy-ln5
ze1!YsE#NI~*8VN-En-6mu-&^>{X at ex7b8oSrgT@)isCM8rDhs&-I{)!BI;YO<7S)-
zj!RwWL{u?JR$WNge1aBy#Bi07p2c}n51qi<$7ibEf;xVqsj$%6lMW4<X)#pe6}+V=
zJ-o}TxPt3Q$1d0KHZ&9oAB)+~BO|reVvm2mj22sn7j)sfvfrbA1fD3Q;=f<?udJi-
zlDl>DcSxaVM at o;}KQ=Bj-ly&%tTc8^htOM+xAMBcbNocd{C6!Rug+|l>oSS1q|kui
zGGK=}TZe27tshjEpda00T+j6IFdW1^ioIj%hSBK|uHzbEKX#nARdifChcKqsFLnC^
zUl_cNDy3+0 at HS%iqU<)l+0MRX#`cmTmil66C;?Bu1S~`P?`Ix9zZ3W28N?0LHs54C
zffJ;fwLsP1!`m#IyA~wVVV;T`w_F{CvhE>jAqt?reiz}e&h+4#kZsS8?aUVS-7#Kd
zE<E?s3j~ji=-UIRJLG?`V{Md(3=&X&j1g|Za4%g07hTlXXgXs;5spr$8ID^JW$h};
zl0zu#pM&0^6kx4dlPmkx<hH>P>}%ei7~Y>+xq)bl5>e?ZXsyQx#Bq at yCh_$|NMbFo
zN}<i8Iel$G`r7(%n8+e7Qne06m03cSIZRv+^~-U};0XJTN2aft!P}@`t*AiI*W{!~
z^z~f7G#(oiiN5f(%@kfIZ8rg3O(wd^?nw?-W<#>L5<)cKcxEhAM`3VoLF-=s`@z+e
z4O(D_1hE2liXr&}A(1}mdn=gJ1^%r at s(a;SB#>vrmA8_s_4>*iaE8|2Fx1aiI^Xv5
z#4kVJwgWd<`HJV;wyTV?zaN>FoqqE3ZME|o!h5FQDs+^a9`5TqY;~D})<&@hx>eyD
zpDSn3Ij8<iL8YfB at _y;@f1y56I<^(((F0<sN$cJh{Gw0zeJg?c{o>Cj at cT%RHU at hi
zO0xwgIcz2BQ5Ru2EV}*rslBEHTd at duX6vx<nXTtwq;nOFw<JxoPrr~4P_^~E9O;JE
zoAhHWy7GVO8LnEUOh}-1=QY5?OI>055wsIRNSKJWr&4qApm98k&NrP$=bKWt at 1txd
z2j at 1@d8Uv(%>kyN{n_cbjJ#)?X-8$;67KuRb*(#6Tg$lV&;$Xx+CXLIwTnZ!sjE=t
z?JlSw&7`1;-<I$j9Z4GABLA;KLLm**Z31Li>&cKL8rYKd{TfH$PV5BU+6j+an(xJ}
z@*6vve`we$pH{bS<)4*~&imC}^E;&V_&78CSR8(&qfi at vpzfF7Az|><bQEgAefUU6
zp|bmNt9}<|`z1=?K{{CNPC8F*J)Nz#`Wn$DeDGtMwj63XJ3dwU<&2k%l6d54$S-N3
zmQn&A9afXE75j4%E`90CC^%$y&>@HP>&uvKcrQ1+XB*y&4ev7z?@J8ta}4iQhW85H
zJJ1V10$@i93-P;UL&0WHbEh+9cwbs at 7{0U>nS%?>594F&et$PjNk`hO+|c<*4Q-sB
zffS?+0eD~fj}SQ5f4JpfN`3E-Y8+iJc)tMc<@3EeK?>)+3Lja|;P!%GN-I7?BmGIw
zc1Qc74UIH#8u&ml<Jj`<Bz&jb^{flGM_VSpY<KjeIogAln}a6P?Tl4BTDDtm`xnB!
z9~s7nH at r{dy-S00%zb}?G`1EY1%FTpx^BxsJ4)}iMUQ2 at qwaoqM-t9MNCDOQJSI+>
z at F(}=nf6}RbXxPuVUHF1KN<K-cw2F(CAZ3-j2m%$PRA$Q15~i}2(rklFNH?V%w6v$
z@<|quwU<7|80o8eGR(Hb2=X7~#cc<1Q^{Z+<{i7k+T>4oFH_0Ah49<Z2$8hieDCg(
z2k>=w$wPPxlyq!R;KS~cM>zB`4t;q;6G5Nk&`liLxnU(ipXaZyZfM4gmF(HDitfMK
zu$J!oHrzq?H&Zt!wZBBCw;w<mw2JnZgeo+n+SbUM6l^fMu1ZiFlRG)XWbNICA4s86
zz;yW+n#WdiHDI3VcemBj`CyG>Lpv09cOrTX4!Z}Rt>Z{aTGKaF;Fx~ph~TiQ&2;3(
zhKJ~TCRuKk5-0;3mf#Tiuxsdh_J&P}^vdbMVb9}(b>@an3Q)`gfJr_lILr=yH&j#1
z6@=}8wY)uWVDui4zau-xN~XQ$!nLc0&4D17t at x1YJkW}b9My85)rF5u^oS#SRG)!X
zJhGYBWh<VX%&W5%7mtV<Z5B1UDqN#$+gj)F$#-3&X#cfdtk=W-La=xC`_Dl^h^Hga
zd3mTG95h4KcV*#d=FY%5NF;4m^TYe-Zh5#D?}A{!q#Oj^at;Iz`Je51wyQ0{upX~3
zW0j$OxWn+?Y<OR3cwcLHzsK<2Zg_vl at cyRZz02_aq~ZOj;r)Q&-SSWU`#8gUrr~{r
z;r&;J_}(?Vrx^S{X81nV at cp3SyV>xa8Qxzu`2WQ4zQ^!B$`C%y at ZM|izt8agSHrtx
z2>-s}`}2nP$p-(Q8@{I-zIPhFziN1IG`zbE?{>p`y-}Vm?Ox;hqEDr7_-#UYgMQ)1
z;=ix-TXW`p`9CQ+bJkl;-FX~xs}(L*!#(t??yMn+o%VROLxyME9B<!WYz`+rH#7Fo
zCpL!{p2x#;wZF!33p^hOTSEHK=4gTEWQ^p8Hpg0c2E(1TpH=Pn0X*X{c?GjMHo$Wt
zgzbdqr|=oz&3~(Qyadl^N=-gi?br*?@){m?KRlxnya^P~x8WH#`orfB;kgaqy%*Ft
zdf{0C|LnIm#}Rn;i|0u75p*pmSiSevSDNSaZM)^1rdNI;_0HO9zbNmGmuvH?Kd9KY
zd+wT9jO{5>9TJ at CAg8lbcmI7O3smQHI~8kLNx7}Y>TxfVy*{VM%_0IByY7cK=VLju
zH>}7Xz|1Uh<?{SwHi+ea-<Lm-oz9lrbwmCjb{1Q;r6E6sjb&%Q<;*{gO=gXo>he=r
zKFfKbHve=skBxuMmVXAjmi4}Sb^b8c$ew%s%KS4~E1R`@asF`jLzer&<@sl^XIc9@
z3-ZrqzhZwLP at aDd`;fgbZBG7q%xt<hyEI>7=bLPvqWm$;YO3FupFft#;vO(L{xu{2
z0``=ty?k2!IQE9=nx`(wzleQivW%XbpUE;3`2F&PhaSt!pU7?&_a_pvn=j1IVt+_T
z at r}vPW`h#>Jzw0tiBI2lPX09ZsJOqE_~$1_<j-K~W`3V<PRKkXKcB4?_g&&{PWsvU
zA^C- at NZeb*{nez^S0v|`u%rR}e%XK@=bG}%*!RT!fVhuNuK4cZym{<9;=Wnj%@%&Y
z-16fkALcD&4~l!QxEBq4<+OM6u3-0w`$ytlFo at sR58BZD>%6PkL2;iwnBRXg*!B93
zyzAH(;(kpEzrQ5zXAMbt?fE=ATOsc6iF at H`{QlF^)_(eEo|6qs<#(^Rza#F&X<I7p
z%X71*#Qp5k`8^=+M^4}HPB72M<TLpFfVj^c%J18Twokb|Z#m0K=l93N{k&oPzJ6HK
zwcp8G$%dTC?*Va78qV*x4S)2lioDy{7vg@)2!8Jq_vVrOZaV9XZPW5rv)jepayGx;
zDemc`c2Bq<@4M`NaUXjQzdtSR)6dO5ke+uZ+ac~1=kfa=#oZ-MdL%LLZgx!E?-<SR
z=Z at j`O=Hgf_^&h9v!e6){eZZ;$IflqG4p<A&fxb4#eMn({J#H!w|D(`=7Y?2A- at kA
z$M27gD?B|oa|0_K&+i|K``U~6ef-709lBuVPuXkY?#bl$^a*pHIe+G3Y>T+tCi45h
zNe4C$o%uL>M%=HS%<oBA$2R{m_bIkf+^?DPviWDZ8`;21_`O5i>$1-n-kkdkJ98?(
z at 1DBxs*!MSy7U+AqjDc-<EM at JJUHVK_Qtdu|L4GrAF<`rPx~}?#(I{X^Y$HY%=jLA
zJZJBnZ8>XM&J5f3FLG{U+h=_D?)Disv7+1`zV?$DKKAq6$6x&6j0QG&=GvB3GwRrn
zW=?t+{4#T1;I}`@xsu6w+ZUaiyO3?md+D at Ax#cV^|G?I&+!A(8{)}hV<mR&t`6cqs
z+-dB8^Oe`rW=>*f&MNrh#WTmTl38q8aOQceVOHzD?K6k5J7$F%=%3mh7I5c)n*#1K
za5dnTgS!LVBj8RZ?_P%Qd%^t<-231X9<@8t!JP|kEV#@^Paa-su5mQqS`+fK?~$5*
z{#8B1cs~_?^F5NU(N-%<8NTqd!{e34RC#S~pF{SR`rWk(2&XZUVyk2K--ka_0qeVU
zHUt-V=?&qh%2p at o<9Exf{Hn#Q!d82IkyG)ps(QcME_*9$ZEiMSUQ)#_t0<Yx7P#ya
ze98)!EYYjgT2 at shEi5kyKTTRJo@aYK{zmB%-CH&*t6U&mR#Y~d70V8nO_5ol-BTm0
zFBQ%vo44Fk$0}!+g>O@`S%y!l^)xhkWgiM)$>(ou^mrA?>66?Z1wOeQ&N{zWwueiE
za{pHAglC5oZrX1vK6}!?3VxY4Bp+mcAsEN-?U?o6_bT&O6KsxE)KLL^SL+L4$BR_G
z3etyv*<I_gJKc3^y3U41m)sz`6-wBu&0uXke2_ByUlz;<_3Ls%<@*$`vymxImmE&d
zF8 at dAojjN>oXu6|@j8|I2FdP`xo@>@fv)VH2FX at i3w~KuS!wA)xz6cRWUqBWafww!
zlZr?3icfkhiA?z*O`99z_R0;OWpZRsxf1umBZ91Al8fAiM8)qq{CGvBtdu%smz_2G
zWWU`r0qbpsROVi0b2;r0C2)c?Cc`&I8mB3kY?o?QKo+2u#*_adn_Yqse#nHK^ArSu
zG&FFRKlB0FOLEq^Jw$E5H;{_kZu8nD#GSO<X;<nYqD&-8&=(cSfhg_g&n3I-B6&1q
z$fe1V`pJPsmXsBZh79BPN{`pO0;1&A?UsFtROzoND=qfv>!!?o{d`*kV4Tv)mE@*I
z8JZ8E8Hm!2Uos(PXaV4z5D}_s9#5$aGHXZ7+gvVBE%2_UO>zOkB#%R?_4^c{AW8z#
z-#WG0;l8xmf%iw?-VOH*xCbuf at I~PAF6A(ELsUPIo}ixwplinpDTLSM^;G9T!H{*z
z*dq7!ZqIVJKz at c_P|ECZ_Squ^)sFSx at V*Az0&rUeY`p=7?kVw(5f$2(+1#~qvC|9H
z<?*gyqCQHzUMRRjR%+|967A}DK(61de2E|6|LX;{<6}7T&=X=M#GrB$)Gy<)iJ}`L
zLw+N_eu`1^+35xrv)Lzj+^!Xz;^<e>)ada+16t*5kXh+`e?yJz4FM~>o;t6sfmI at n
zcx|pq+3ka5mpPRc*q#GewlB0{K74FJqvDZW=+9XjwwOw7m^wu0bX*~9sA8ZQOl^VJ
zS?6 at yTp>U)yerNdfxEDw0=eW?d{)uG+fc%V8Zg<8lBz=Xg4mE<tg_y(Ktn;<xdLg9
z6*dB2K>_$%5u{YF08jY%yIQ;=r%gcS*_!l0fOozFWhr(d^VWg~84`eU&V$y2m1A_3
z9={hpl)7xbdR7XY;3_B1R)ZEoZ9}}*%ij4O5O9lp(2{u?urWp-m2xfBc=$0?9br(o
zLMW9+XOmioRPH6k;Kv<)zcT#3P)4b0uS7;JMO;$^C2rYUw*s&UwP|yedgUAZAfZ+)
zlzmX!KAD%I!ew*IO919^`Ki*w&?_TC!@xygGONWe$F>1Is+C;^N<|YR3W92sm3j{p
z3$iBav9eZn%T>^{F>7gIg$?lu_@;Jbp^W+n)PfonAz^X7Q;~~oE<z90l+AUO2Yh3)
zT7;CjFPYlV07*6QM69+(#51Ke+vaowi78%>i_zT%3|47VRD!Flw|N_pa6oHW=B$;W
zF+^%FmVLD#w7C~Or7X0$>tt5eV5^g%I-r8fichNF-G4hCrDtN;Pg4l@>RmOC9~oc`
z02{NG!x9C|53sRox$c at EV66bVP{4#g(|rINCt%3}_CEk)?RaXQnF$!%1+YYbrNf^Z
z-+q9Z4Y0oe%ygGN?56-rxJ#esA-lof-5fSZz{UbB;cmUZO97T>@K+2lvjJ8Gup~oR
z2fzjxV9NoPe7C-?)&R_6fZYSIfd<$^02^e8?@@rI->t9HX92eIZhf6 at 1K4T<Y!ATN
z at 7Ck!O at Q5Hfc-DP?l!;<0gOGQujc`Kp#C1>`7;aHnHpH429{{>cYy|$sDYUu!nMjn
zLioKDV1s|6uY=hDOZkbuY?S~z&EU at kuv7!=c7Ub*M4#@x089S~9toKcf;|JUVTQ2V
z0XEza_O}3I4|AAWFYf`&WPo*Hy*#YX^C9&2h(5kA(4PU8vKQ*g02>J~^CSBFT>!8o
zgTHA28(@IV16Z;l?6m;182o()U;_;>AHW6~V7CBl at FV)Ntp!+$!QTdeNdOxSe=2 at o
z1Q;|~r~pt42zH(Jl^U+asLJw3A=8Aot+b&*p|vAeMZE`_Xc?t`8Q2+K_ at MB%v#K8a
z)Yp4lXpu0h>~isV at kvArjk0Tj7aDg~?5XvmY((9Zr>t#bQH(Nd^+7tKwY0$D at X27R
zg3N?4qN%35g_VMZp5>HfvaaY_v_g at ssFnHHJg1xc4~c*6t5*7HWgdz<n^&)rR6tfK
z(@QEms2gFB&=ZJQS<NdxYjQB#YYPcplABt9)$d&<GlO8Il(>Fo^|(A<U1(!x0IT#k
zl;t+B9MY~>p;tlmagN8QAOih>EG|SVJWfzbD!k4Hn|Fn^-s@?AqSZnPKzFB<=GhwA
z9GlCbfKE2YiMg)=dg0i_CxK0TR7;D`n$mJpgn{t^5|pVn2;;?B-~a$fSdYSmXO+!c
zCo7O2q$d#iAe9Aj1(HiWUdSS=G+?pPfJUp!*$A3MJzJtaVO9CqmB!Z^D<D;NIH1s|
zb8-k|*@uxK at e)AADgqYDP}iV4$we+(?e$cPY{|TG>_dU_%|rDCy+PgE!faJ6H;P)~
zPXsLWt9%i9RjX5OLOn$kR=h3t+8U7&fS%B*S>U+BDKEEr6s$NmrR;S!E%ta__9{<h
zEs&gB53 at qOdu@Q$#ucO#vxUyudbB{wDypoUnSJ%1Mpm+<tQ0WD(aFlJRtanYvKnSr
zRE9rPDxUdRhs63G(4cKKP8V1QVIRfwXNMI3`Lm0lf`BURDu}B{JX4&%QEzmi&Z`BY
zN{Ff^Q6s*U+g5n|3Mk at k+2(cLNUT_8tAXqhLdxZ3vTLE-DBD0UYtX<nkHxY}vCT08
zuHY=eJr~Oko8P5WLXIF}FsU#1+pu&TAii3m++26pLMovMD)V6VXK7!iFkUz-#8$)G
zk*xlpDL`d*KXJ1fhXF8!6 at tOwsZ+J!LSH2yaK7wETTQ%Cah6=kifld^yPH%UIs};S
zar(k<VTHHIwnFyKMhdC~CQ$2IZFI_=4FKbLt^~`-<`PX45U;Py?eH+(kQBN6-i0>1
z)9-`4D$YU|m|V~p3rnfqX7?-?wK;z_aQrf8tdMEKhEt^t?B*3rQ!iyMm%jllCAX3l
z84ML?TaK}W6mZqH0yvr+)Lt84lxiVV?lM_eZocbfJ3jhEO#&0BJiq}JWFRAeqXWzp
zFO*E{Q9%0n4F8U^u%4ELdhTy(94ahP1M4%ussRSKP*@!E^=M#;8kkAv&%|!jz!EjE
z1XEbg#j)Sj8kkuFOC%T%i~7es8kkuF8=y%8$9*5tz|0z0vc}&)xNilRMFYd9JpdbM
zfb9p^APo#{h4%n9#H81yKLprm2G}P6OEtifeha#)0X7I=r)%n9B)BvUEKvhHLz5Rg
z)$JUB4b#Bz^yKjXJ5y5!cy?iq29~IS4cDZL$AXt?V2K(SuGTm%U}r!aR{(6J1~wF6
zGQiF<g>}$GxGMlV+W>0@*eFe2 at YuXN0CtX{ULFG2xtg$Mxc?8p&NINC1DK>K2mXEz
zu+awCUVx1;;P(K)&exO|Vch^5r}1|t+&=@@cvIM(7>;<`SL4Vu#5W9J6EyK<0_;M7
zWf{sg9bkA4hSu&a1X!-Y-(>)sX at Ff0uzZo1kggA~StjJ40U?+ZU<I1IoCUC30amCf
zM+U&w0<1_wFPP4H4J=Uuvl{$8q=6-BV8t3<McRD=U?mzD($!`SEKviyOyn64=FS4U
zW0wYI*1*a&=@x?fHNfU+>S`kRdlO*ub^gGX16YMgYa255kp^bcz%Dn`{XYS=P*bPp
zLDZ(#!!VNuR;lqPfjbRgRf1=bT1G>BX9H}J1~vv at 7XxfDh5e#W<i(T=uqC1#14aId
zH84vA*Z>XeN<-L64a^b&Hb4VAJpuVPQP34*H2}jc#MS!4Nv#UNh9-pT8K-r&0xUg2
zPm}94FtY~sGQhsjl=pFf{iQh^AI{x;9$<fM4!1d2r#}bS2hCxcJRjUH4J=Uu`#+68
z+@<Mt4J=UuOTS&;ukjARh8bWV0qo4%^|WyeV8abC%YJA(McBatHWFYXZ^yPeEd-kg
zu(J%XB7og%i0=x3z0|_%$}H-t8enCs_4U^PFy|U=o*7#XFy9*PFIo6&1z5&fy}!Ev
zHcRwTr3l!A084sE at 9$B7ow1AeAE`Xk39z9C*e?N=zDr+ at KLTu+0oJR5@vtTn!p_ve
zm?`NEsOMdJ-X99E5xcZ~Xv}mDz((%U^Z8_eowY06mY~044J<JNEJ*`9Tfhbh*aCo!
zGQg?<cFr!O)8lFy>;?@iQ3E at 7m$n^eY$d?1*`@8rVJrZ!^MpS&zWX(>#0an?4NNkG
zeNqEUi~vj0z(yO&_A<c67+`w=cD at 1jJAjQfz`6mJVSs%OunP>ZA#c_=E;Q8rxd0ny
zz)_|KmZX7=H<V)rz%JUQ?dxT14!|xp)bo`9%QV3105)Nlp6*uwY@!iI0Gni>=N|!V
zvfu^P-zI=%8NzM>*c1coHGo}WfV~T_Yy&TJ0c@&)7mfhzDg!L}ts2MG2H3d(Te^$4
zIV!JC1z6BfjuH(_<x7O!u}j-O$V^uPtWA_xt*ZtNEKviy)4+pG0Q;UHzEuEgH_*oS
z0d|+c-;)5l+u&~-z!axrLOxusqd{#aSd7x>JZb)-@^XeyyVHxXiM4#f3XY-<VpR(l
zl`t^=D at z!oU{_~Mu`iV}rn>x at 5<IGx(8E-pdhub}1q-Sjs+$dN3b?T+fNAeF;2MNe
zz&V7A1VeX|xKpnPn3$4`L$;ZcUkp*>0QKaij3yfTrGA{nPNg0S3Z-fcRRd!u3!mZB
zhbEgA>ncMt6$XCuoIV_ITPWY)cj6ct)+7ehjtu*x2JTDp3U7Rn-600fo$gwX7k%?V
zZ5rz5a}oF)iwvxP%|rs1e|#=w5^UXu20r)XKaNA4aZ%z^oDDWbHg at IGGzbH5jAZkA
zZJ{xGF^9m8W4H}Yw=DUbH_A9qL0h3>S_OtNj at R21n<2lTXDz9AtOU0n+*QJ9VR)aj
zgwJ81AxXsJazK=HqwMuSUfdq+tpEf_<J|rRDUXWG6c0~VYLvYbsQ*z8O`}lf($w4B
zb^zO*4(fzd`ujEJHWVvW3zpm~vg8YY!%CpwY~OX&jytQX9lrs0uC3Z}Ew~45kzs!X
zmkclrb5%{X<HA~gKNs9HHIZTHl<WAsiiNVx&WCx!vma<$k<HHORLmu at YbIV`ovNtg
zrKE}_wy;a%khR9s+$+DEPbdo0ftYHfM&56_2A at kK%hz+B6O*8j3iSTJEIyVoF>CVV
zFY^Q6mwP=bi5VyM=;<G!G*wK{b_j1Ah;#qc`qWNRp~xb1SC0ut6Dez7KG&zLw3z1m
z=*Ee(Ljbywny=pO;9MqGt=~n{OC*OEXuydn@%d8}U#*TGh_7gh6|%RAbEla1q)(fw
z)(2G}^O<jac9_#G*?hIKo2JltXj}^8^YJNqz7wVCrk+pastoRDG2v8O6hb1#3c*fZ
zF6t(3ur;drkB}ZmxG3a_{D|3wp}J7<e1d7CL?^ZNp2kK*!U>ww{(b~{HSKM!I^R#w
z)OCgPuhdbtrdgtSZJs*6??0?7qbRswWwpb6OSJ><J8!Ob+z#&Yn<K*{aL)qFFq<k;
zQ_t9%YRAac)sDm9vW3&a at czHx&^ykwbI_0t&T({kd`c*CKC^FJM%{QIGijXP?SrDq
z_VLof!m6?b^9xbr>*iKsKsod^T*vU6g>_r5n=_`$twu<5LTKh`jSRVwHC#uLo^TSG
z+6<n=1GK4F*<m^9^83Pa@&xIrvWpif^fgoR_-V!<mHA7iwrS?lsb2WFqS2?`4{?4y
z&?B&Of7xy*dH?F?wSMv`d=c^1UxJ_1kFOpYA*j|nfhO+(`U3Z(b)ZAQJHoyT?=A4Y
zcpZN~naf<q{iD;u2d}SoZ2f+<V+pvi-;W#?!;D_foi?2Iu64%+?Blz`Fdsa>2KUGB
zt9IP~gKEbe_k(VIZ?)s}`#J0r18fq&p1+sBcRf(;$a;j|fBSH?<JO<@=LzE81>e?*
z?@xhy`e9X%pc)Oc1IL)Z(Qb=C1>v7t%9kc{lf&Q8*x<3tU~|B)7~XL3u^6XR%QK|;
zIRDb^@z>Rd8;MXOtI at e>)}_{xk((4gDG%bsj}!87mTkz(AU2I*4<7bxCeWQ*{`kl3
zvLv`BP%m8~OQySp`sW71n;F6<17t8<lUWLUF|#3XO=hRT_Yo`=z7Gcrau7V94p$31
z1N_#pp>VBd>2P(iVQ`(s&V=hY at H-gX2)K at 5BO$)m*jaG>B|96gzha}{`fGL$T<h7n
zaCNft;QAdV!S#AJ8m{}<7`VQ{&WG!pY%E;gVi|D#9lHRozh at W1)dlIKum(0Bu5Yu8
z;Q9``7_L<;6RwNc1h`(oCc<?wn*>)on+#W(Wx;hJn*!HLb_v6^b=h#8#-_q`I=d9E
z7s6W##6BIaOIQwEuVgdedNIp|YbKis*Q;0_TpcVQu61k{)JZBUfag7|8LoR-CtR-v
z8#M*eD1d7=YliDo)@d37IcEt&Am;^ey^J-(buR0KD>U4RL)bi409P+-hO3Wt!W9})
z^AP4|1#n%)n&G;fb;5NaV at X4x6a{dtV$E<}#5&=66=MU2K<Wi>wX<fp%B*w1VC(}<
z9t`;^fa?&}oSXt!?1bx3#w;m-#R9kvW6f|qlXb#%IAa4-09yrcJ%=^J^<35o*Yg+~
zlmc|t*N3BQ$H5-Q>tMQKU*hoyt6(fpcI**OraqQr>Z!62Z4M^-Od<L_jVLmeXmKcf
zPl8+xge$I$M0y<z-!0&G0E8R@*K7(g6+#RE3P^+N#Xz6QfWb3}j)%h40&yfmS%$$i
z5lV*CJ{+#&fHsrC|46tF1^P_JRhDoa0VTFT{?4KNoeS5qpu`sVCK26_hU-wEPmK3`
zxDJDG7Kk?kuET*oEfDjCa2*eK3*>4%TrY;Z1t{lYxK4mO^4A0^-$b|$0{X<VO@`}2
zpic|nbP8OnfOaf^(`>kog;H7|jZ5LW1nAQOG&vovR{?!m0M|3%dKu8C1!!p|T&Dni
zS|EHrT(f~blOX>Ea6JR)a{%PC6G{p#hRFgk7Ql5H(5D5cr4z0oW)m#Hn+0&K1Ns~Y
zJlhG^Ujuy(1l}xw>l;9y1A#X?;rbTP=Rn}i0=WJj=yM=D0Q5PK{Q>B6An;}ZT;Bou
z9LVkk`W(pa140<c?g#oD0JYr=&p-TsOrNE;CYt;Ucbq$hIxMc%fLENJ;A2*oY;(gK
zjpkc%qC%}7hxE06;9;R$yR5?IwKdQiC=rErJ5Fd*zwycN5KXPGKSvmUCf(a<pW- at b
zJ?u<?m1 at T3ir_v*154DvW@}(p9D4xR98K6_xaVqMi5l27nz4csxGx0QQq3IUQh-$h
z>{^Y#*>HCQ>^hCVIRLxy)9|`E6G<pOu8-r|INpN`rEm)>Y%+}H)&7zhpG}a+_&60$
znM*u`Cy<{6#z&t|y`Sl8{t~|AmuUEz#V-kd0|q2pEXe}~;Ij%h`v0={zi$4cUH`Ov
zFna;b14U-c(C|VTdiWRc4Enhw>}RaO&sgx|Yt(6F4qMYDppen3JH7yqvCujz)cB<3
z9<N=pDH2!kTz+of)6=*n-dV?&9o2>wrEtwqzvOKEm&8%wl^bxqfh?6QD5ptQ>I$(2
zrw_i=*7JNpuoFa72gzxAPazu=u_%u={?aeW3$%EbaD6wcSo1OkS1=T8t#*w2d9@>D
zTeag6xL at B{?fCO6)s9Wz at SD-u0M42_-|s#8`SHFcDKAfQ*?dY9+r6vWu>;&Ta9hE>
z2<};MPlJ0L+{iuEj&yKo;8MU at z?s1 at aG&q4cHm6pNy21m at Pl<-BTHGNjf-Wcld?n0
zE+?t$A({TW*YD<Lo#>a+t*g~|Q+v&*&Zt5vWyRlEso;uLMV^ok5dpHWaF=FZG!Ei$
z=jUHKo?Y|3F$K`-TRF{5X1>M=`OAE=(rBaZT7pSTQj?Md<<4N#4KC&3;DD=X{2=fG
ziAu%R${93*!Cyf@$sp1s6jCz?e<0;TU&F#IQWz3?*bR<fCr@`Z;jjq!(TGao01QLY
zk`lmJB10*AK=hP#k#nALvFtZowhZ5t3HA_bK%>g=0mVy=HoKiK;qx0giAl96&Y9#_
z#}42Fb<6q~Acsoi#dV{yTlV5|r~b(FA*!Srm#3Dmvn#_*J#bkvA`>y1%}JcGzx^HT
z;@)aU;Nxn?P;j3es&?E2ZUH#_W^~B_53>j^gpT~f{W|eyN#HWnlE~$$C4tY!v6%V1
zI_-C}_WJ-v^FmG*KIvrPlli>3|2X|5F8BZA^ewo)<m;8+@^#W5$aR*em46V<$%`)j
z2S>U5r$-b2kolA-mVYo-esXm2A65PzjPo(0i2uQS4r?^aKQfm2ACPxi4D-MGi&_4U
zviu(e$Zw8j`62!3QO18%`5(%EZWQq!ZT?63Ul7akA1Xg5n)rwM9~R~EUmDB&AD931
zi&_4Ub^9NPFFVTkkGA}u98LU3TmD1h1(xXIKicv?Gn)8M;cLgDRerKROfk&=arsZb
znC1Uy%YQ)rsA!fS(w`Y+{6|~<kBcV$PX+luFuM4UD*q4S`(8v1|1`oKz48x&^b5Xb
z`M=ftAD91MkN&>x{2y)kA8q?TKK>uu<NuI&XN>p%Pl+b}Q*hs&=#_sEG=9wkVwnHq
z@}GV&%m2}q|0%e)T9o-eDTetU>R*Z`{-Z7bq4Jw!T>j at png1_}GXEnWX8AuZ|LGUA
z{2y)kA7%TW_&+g*`5%}sKbrWDw){u?KgP%ZCq@(hkp2bH=Kq8k=Kr|-r(ewSf3)TQ
zVBG&cisc{7_fC&l{vV8c^hXi at r-J;CkN-yx|MBtvxcrY|`Qz*VW840ZkN?N`_<wx;
ze|-IaEc1Vi%YXG3v;2PwtpD$fV)?26FUH6J&x<1dqs{;E_5X~`h$jA{y#Al&|0KpR
z|HtJ&{bH8?W8D5H{!fTu{!hU(VPlv7vH!n0#>f9BL=*ohc#d)u`5)~MQw;NeT>jH9
zX8Awb@*j|YP87>e_Wytw=6|UF at zKQpsUZL3<Nwjae|-EuF8`xge)Si#{2y)kA0PjZ
zkN-!p{DUd+=;A-x_Wvc(#6P5eeiX}(_J2X#{*PJySAQ|f|IwEJfc&$gS$;@AH_G^r
zw*5akn)r{l{EzYV|0w_1*OY%>m;W!0X8Cda&m6=2AD931i&g%Qy8Mr}{SU-9Ez0<h
zw)~$JP5eh&{$t{?-2V^dpA=2}L;4p+x%^XOng8SRpMEjR|IwEJ@%8`l_5V>UKgs_=
z(Zzp!{6Bi-kB|Syw)~H;|BrF|KR*5++vET7_5bnp|FO*fF)shrU(E9VDX{*(Ihy5%
z^ruG||IzOMKR1f_k2e3u*Z(t?6HWX_dHp|@|I%3I|G508U(E7<tlR%UeA!XPf3)TQ
z<Y?kQ+VUUgf5-Uz|IBFOAJQKi#qyK=VTxh?kIR4h#Vr3vTmA#`M at 6&zkp9dl<3HN+
ze_S;2e=5lTSf2kEAOB|sU$gw*YW|PQ|F1`X-**0ww)~H_{U0CykL~e)-2W}c`~Rmz
z6aSF at m?)MX*Z*}6h++PZ%YXXCEdNJa{sZ#QiemYR|C3^v|Dpb+XyQNG@;}Dc|0DkM
zqRjsnMVbE#%rVUWarsZbnC1Uy%l}hg|Nnx-80LRqzWiw7Kicvi?f)1b|DPC5{6qQ|
zM4SH;VwnHq@}GV&%m2}q|MB(z@%8^vEI-Nr`1pVH at E;%lkIVlkmOsA!Kep}v`1pT}
zkN?Nl|Hs$=$1?xNxcpatG0Xp_!218rD3+i4|6+Xn|GX&TKid2sU;oe8jA-IN%Ip7W
z{!d~I^M73a(=TTEKgR8U;{Svg=6_(mtZ3pt+VUUQf5-Uv|Ac7bAJWf=CjX=TVTxh?
zkIR4h#Vr3vTmA#`&xvCB$^IV@!~75RKR%lHKNaMEeEdIp_>YhO$K`(%%dh at omj9zI
z|KsET@$vsCmY>f5iE;b?l4#-|(my|n<wyI!Aa4K1EdQ&&nC1Uy%YQ)r+0iUNq at NpQ
z{72jVA018nM_c~K`1*g8f9z|@zpu;x7e}-FIR0mjVg8THfBMBL|3_W^N8A1f;+qy_
z{6|~<&x$7gqb>h2 at mTKvhw@K~CjKG)3!_~Asj<xearsZbnC1Uy%m4WL|M>d<D3+h(
z|DfpNKR*5+z4FJ$|6^PJtLy)h&HQ_E630if2$wv7=MUkC=YjCvJb-`4d?hFI^{WHn
zd$V{SA;O&|-bab}%;KIP?#bf&aBcd at ygxjYzJ=?@7$5TKKzJ`m(5F9C<j*4fPZRkm
z5b!}KOW(rh|DLe?7Oo$M%5UNGWkcy(`1oC@{1!f*i1|$w at 3T&p{s69jsOb-cL^_l7
z>0d1Tovwa2YtkRU at vW90@zePg%YV+-!M}y~pKHsXrNzI6 at 2`5Y^e1W4xA5@@ZTZJ*
z at jsBSSJI|`o&o<kU#0xXT>hW1{K<TO=1}<u^7Rth^fL_fKT?B#qF2+ukADn*h9Ui7
zTKr=mE&Y8>{HyE#Pi6ieXTX0!qCR~i|4;vl^gr=r__y%$akc!<4EP^wp#N+Q{_&li
zEd2=lUob$Qex?@x_&w>r%m3$|to;85|Bo at 0e~K3W7QVmc$<m*!P2a-LBh!}uA|w9I
z`t&6O{%3rZ at _$wShxnTf_`iUiod26oVg6Ttr!xP?n*3)5{x`~h_Fv}zZ=3vQ2LAtl
zE&rK8|M<4c|AKFs{BQpMx%}_^68Ya8<MO{bF8|~5|NqDGKW_i)%OAJ at zd8P=^M5U;
zHvh-%e?9-l?SFmxk^%p5`5%}6-)8wAxBvC!kK6y>9RHL2A9!l>f874p^MBm_*QYNT
z at E@1|aryskmj7}4Utj*X{r}DJKb`;cE$jb}+yDPv{{Obg|G54C-^0K9JC*rA*5rTO
z{@0g3ZvTIC{I9P6Kb84EZvX4~KW_i))0YhRkIVnK{Qow~|G53HFMr(r|K|9g?0?It
z&Hr)xU(f$>`(K~FWWax1{>SD2w^{zj?SFmw<M#hI$Nwb%<KzFQl>Cp||N8RB?f-9%
z|KscbPd)h`xBvC!kK6y>9RJ7H|DSsDKW_i)%OAJ at zd8O_f2T74$C~_)+yDCV$L;@b
zj{oE9|4%*nAGiPY<&WF{-yHv|zf+n2V@>|Y?SFmw<M#hI$NzNxujSO{|G53H=l{6<
zuTNhx;6E<^<MRL8EdS&7zrOr&`~REcf0F<4@&8jw{>SZqefi_||2N0~>hDzM|5%g%
zar<9i{<!`B&GA2-{}Z?WPbv8yxBvC!kK6y>9RI7oQ<?u`P5#I2e|`Dm_Ww7>|MB(z
zr=I+e+yDCV$L;@bj{nu)sm%YeCjaC1zrOr&`~REcf3p9-W&Qtg`~Sbo|KB$GAGiPi
zd-zv>r!xP?n*5L3|N8RB?f-9%|4IH2I<@&fZvX4~KW_i))0YhRkIVmmzx*je2}m^Y
zdr~5gPkm2F)PFY{zMITnFMQGfo}Z|tpUmq$TIrjkT>b$uj(>BE<G-Tbqj(x*#p|ps
zb1Sm9(JL!9#p!Xww at Q!KyCPHa$~X9BpCa3(T2BLf_xa$n1YznucFF0J+#UtKxE;<q
zzgM=0!`0f{^sV0Jw!37>*<h=aebRELQZHrLC)79<$!BY5bjdz8&k1q5>m;`<+aZ|@
zpQPC8P8yGh#+R32XO%pbNsZ1X*~LznK4ejWEPDJt$!=3 at niw)A at WCJHsmQ7LCh=G?
z{tB1PZS$%n6qOS>jdD+2xqq3ysFcSt_w|*sa>Bg%<VG9B3}x?EI;+R!@k+Je(Ji}t
zCkVfAc2WP3C-8fvwZ`g=kVR`4x#4_bfp~Q__<b0~GFgpX=LZTM$(ICK=YHpVq%n<t
zWsKzY_!Xxci>&w?UAa=D*HdGwajl4qW{1byU{fe`ooozEc^F`G{1{v>xCO~J$CVM@
zA+)d2R!gx-iW4HQ at jD!{m+3zEfCn1YFRXKf&CvnwX>gB#yB}OTxYgiRf at 5df97oTx
zIsOjrui)MWw-4Mda4&;PJJ06$^SL(1c5n}YyA|BE;PSwY0#`l8=9mI*2)M4%HpfnI
z4}x0(t_oc5B%31#T>C_u<HHFyM?SdkXWASGFSa>K!0o%l=J+YNR&X-75^x#dlE8g1
z1;R~(vV)rhE(zQ_m)ac9fLjA at DY!zP&)<MNH=Q`K7OAYk)~K(N#&F|+?6XYv66-5~
zFPY;s?6>HG#S%o&h;a%Jy6+V>m#iqV(a($5KpkFdbKDFLpDV;&bq`#le>Xb(u1kl=
zdqO^PgeJ>AXw)#vtkeehw at Zpga=M+0)8=yCC`;C|5~=(m+eI}OMGiR8P?mqgKVy4}
zX4Kgn=<2{-2JVo<=CC+zj at kA6d6R%G0 at z$9e=Zbv)lD<J8{Gu>Ufuxlehp^_x8!Ta
z at pasf!L1X|YrwJiFaC at FV)kdXxi3^CzfYE`%1TQY$~HSRvW1l>pT~{oDvLs`xC5 at x
z)-Locml|z8A8*$qg(0=11{!at7ap8$$;QR~#1o`d1re)Bk;lexYLwn25SS-OQ-oEM
zR6L+YI#9xT-LhBmI3R6Bjft_#DoSQop(ymBY-(C4*Dk97Rj|Q_Z<YR<Lc1N6GWA=P
zvq8q^;#waMe>LdwU-W&^hh|(6sP+YIc87_XG_`4Ba{-p1gE4|7Mu1(j7DJe*ufPiT
za)2!bSRee*PALZ1RRFtI<F5qn^#Hq0<F6E83c#>@<<1(`_Xm8c at XEz<t;a62GEg=>
zjZh&7=5;)YR5Kq4<V;C!YLshHAI`8hp at LoqiXlB30-{CYam#M3U%y*1d?l3>l-gP+
zX|;wlQNc$|#9^ydJYFC3HA<uNr1^`=%bDVIT=$(uxo%=D){C!kLVm5&?eI*5<QgVA
zeb?D#)fDo8u6XizA>Wx9_CbY>pyESDLDTisd;Bgt5(j-EN+{OE2z2LiNs4y`m|iwJ
zM#TwHjaY<ocp(8Om(3;lKzVkdUW^Jf24bSNOWai3mErnTJRZqq^K#vqa?D15NdY4z
zWOu@&7pyf=ZIda*N>s~5nm~_WM^(sPZb?C|DR(xP%d;H0Nll&jiTsfQuJTQT-=#P)
z9B at pA&ijdN){~?`sG$m2?zBT?Movbr=4p5n85{}XI#OG)ete21&U)EdSFfBX(jreC
z7 at gtRpe2!A_Hcy>mXIW1Y^m5<IRlKRLE;sdUUq^xg^Ukymmf@@+R)c<1Hr>ELnvxW
zWT+ziK6$#U2?J8Lc}`|X<1osa6^iT|Kd67{xjHM=xIDGjQyr9n(o8k#tF4zCWGOFC
zvM!icv9P4FvTVWp>r at Pdf0eV#z&<PnMl5Ym#9N3!7>*V2HYicFRnpyd$4CQgBEZnd
z%(|4<)C_4pAX#>M{B`x5$8A9MAOryY<AAxm*j7l?9pD?!e3;3}#L_PRGT>+ppCjQb
zVDh<Sx0IhJxp^2&l^eA at y(!sWEk$kEOQw9au(h=r at D1}rxyBz3AF_Ys96Me#(J_nP
zOAFFEAA9?kfBc74+;_gP_Pf9R=#zis9>4u!dG at d)5T+T#L9?})6=47PEHxhC?<M?(
z at 2x$TcbwarRPg$kcm8$DcRqRLgMIk$_A3`=S)LqqRqrc*_|1{Zzx=ds*4DC=gp1ca
zIt!up+>NtVbYB2Ie)Y<4@$(N4%@Xm6{H>nldm?w%vp<mv)?0(F4{w at OFswY|^`ti^
z%?jtQpb+zD$lt7 at YB_iNFTOkTEZ4A~uRiqJtOrMS-1Ga2KhB!=?uy4>dUH|%V{@Qf
zowLvn=D#QXfu|bYxuM|SjR(R)9L<G1{WQ!2yf at -|0mj$gKYmXu><`D^`;h2 at 67Z96
ztY_7q8cwi7==*0wH_bAAR{J04hp}H1{*2`g$IE~d=gl<ci+&FUW^sN(cCIAT7+K%n
z*of4K%+D=a1*Hw>MqW<0yfX&%9SqG_h7W05(`0b=2FYb}`&_(5R{K*FJ8+u)I&F^v
z5O~F$1yu{?l~gS(vtC!eV0O7+op829i=pdz1QDd^Cvtn-6AWE at Sj4Yh9{(~7_wVI%
z(G^T>>tztl5Fy5}=nCxb;&oHzwl$(w;B{gHs*TRsPh at GTPE*cYXwlh~nNm4ha^+QU
z<N1qFAEKNf?>uhME-<zXUnXY7Yg^7MM3vEuEplJ)_AGbnDnMjG^yAg)`T<q{GPc=V
z`8bhhRX*@6vIz7c0%?UxWI2LSESNndTUxnNI++iUcjZ?t)(TO5dRHyhB?j+d4YZ$6
zgo<t{gDU8{aXD&&3taXIK4k^=^9t`!&4RMXIzYK`)nZjhaj~yfT&CpmcpB060D94+
zl^fQnu%}cLK7!cLc-6=bF1~ePtsbw}--tAUS*3&w;q`gtx|dL&fIb_XZt9LE#j|8V
znWRc=O_;@A56}aMsygrknvR{|c2efubu(1$TkYNr<><uuz%FQ;@*k8uLLC1_4fG51
zUn-GGl0whvM`-mnU%enScMa&s(#$-msI02;x_O05klvsL0-~eDh-+2Gg0Lsx7yQD1
z^W`N~Cn6x~<qqZ3WoQ4T-w1I}Gr&d|U?=+ZF>W{Z^{IDy6mShp{KjPX#sGWS>{0{P
zFIJD$<pkSmL8FXq)&e(a-o$4FN1WBlc0aUKIADc*Ej4<mA)d%eyk0c9yiSr17#XPZ
zHaiF{Y`+%x6^yGvZt#FTHjX|6IrwW8h;2M}AE+jmE-1sgw{Z}*44G05_)t5E-TsCe
z*-NB6xhbOw30UJFax<^EOcSiZRtIvUf1s**CzZ!06*=odNlla_`XCy2%w9-B460cH
z)dC;YoIufB&Ke*$2Uwwx_ShVEfny)(-K{<S-~SQ8-`91≧@$-5<U;LR!!F at P6V7
zTkZ8|XMPo$H--_mtdMThrl3+_Tjp`vg#sgapvJs at _m|T05JR6z?}K*7nGs-<Keah3
zgtLRYMe~mCe#84$b&K%sY_fSl=4$0**2F0jFCog#AUj9(W7M!N3 at KRDLfPd;rGAoD
zX#oE<C?wGTIQk4x+Q%D3XCub%@?cMjnv}>1=m&O;97JNH-$17*CROiTkDx$^A(_}!
z-{NNS!f<`#tBDQ_b0e?-kC)eqKBF at vzdM{Utc^*0+<Jx>+ALwcvr0ZXVsoH-;Aq%=
z2=D*++~$}I?$yt1jw#@pj{%+k%YYjpD83vQqQ<Z^Hg8C^@P$H(h_F!n(W@;N{0i>B
zZ#&oyY}TM5H4bz;PYb(bcvoYp at c0xFo2opjpRRyBmr@S~{Dxmp<3RVPj2g#maUTPB
z{n(#cut?nrVLV5cZ53rp3Kx>Dhrh=^-aoG<t#=kHc;HohcP>s34tgc20L#YuZbe^U
z=iF*#pWj*<i9bRAvpcb04xaN&yblxm8NjGyn|@+<guYku5#})=z!+(n&E*gEV}(e9
zu~L`EM#6(+ilhyqr)n|xL92XYp5}PG&KtpmvALir!qx^5i_v{)M7l{7jE$RI;}{L@
zEO0}?rGS&OY8;Eem4KTHE(6 at KDK(BHaG%2S2jJcU*8%U(fO{O=!{8nOXJlob8|p!s
zkWbX*S+46!X>|DAwK at p;q8>682tlxiSIP&1`u)@z$FITd1h)m;MsOw5AfMnezzqYJ
z1g>s+jbkaeN^oW1W=+SuO~_y7lNH{ns!MZOT|clSg{pFf#4`Lsgbre0J<1ZRKLG-m
zLyy@;H4-Vr6q7Nk$>XtH(q!!HM~lD(kFI)Of1o!6tnnyd5q=pw90@$BK!{HOy<Y<4
zk at b&3z(L8M;Pg#cUhf1;TfEe`KsYi!sO<tSX%xfu^d^nN4-T)VAv9rNJR at tL>brIY
zs470N>D1XQj0WS`G_0d(pe%)k&DlW3QZvLm$US%&yC!4uB_6oeQi~uJJH0Yi at d|9Z
zJq`!pSOR3Zny9N1P=@0xKENn;TtY*KJ(}=xiOWAjx;kUJ%MZc;u1gV)?I6n_JwcKd
zI&15x&8eueO4uPeLz;=LEYL}QrWEQ19fW>Gmo+E>^HKU~#`k%rKD4J3vt>+Tq0Gre
zmWr_ECN0LwR5LZj4j!l0p+ksfUJ=0kgTe`wQd<C-1w!@soG4Vm2iS}mbvzND$K}^T
znKaH1Z70Mc<w>dz35p-G+G6bB=6%KVUQYH50l*8N{!{6%QHK*SE14oY{G*x$`l#g=
zN at I@A<xr4q<^W4T1-q#08+_Sq-s?p?3%say|9|a$33OD&wsxhB8j-6JQSge_77+p@
zaOQc)$RG*CBuolqCW&Nd(g_4ajfjc at 8W9l`H6khsY7|sJ)QG5fMGb?9f*NHI6%`c_
z74&^|PIsp}!Qubc{r~mWTdx-%eQKYoI#s*&-nDmC^+~?l;!rpJ12gF=XRz;d*?*uD
zc+#hoJG2Z;`~jYfqSiK;H-j#ApM;)$k^&{}jgBRp8}4Z?gok0rxm?E6^G3rRC!5xu
z;6A`TewC5$bMjy$shnLV)&@cI<WLQuPU0Y#zfgU2`~#VZ`=57ES$X-0>LU68TC5b(
zS6WqG<nr0;9a=fbJ3POFF3S at V@3bjw-6(Ra!zqwf2jvSgmp0lUmfPqy{~_C%R4Io8
z`vXIrgH>Td;u0dI1oA;+32)9cU$I8;EN7p<bTzSWCpX8?L8;ymj)wX*;;@Fq1vCm-
z3Q&GZak)3Y+I7J?xw}w)2o$061ow}QI-yRv*E=R7ox0^v_P8+_ncfU^lg^TTp-RYH
zTV5C752j_xogi<(Ki{7!v#SEB0soXf&fn2sUFLUoY!ZBw5k*ynwH2s`3<MnpzZQ{W
zLUl+3-GgZ)z_qZ7<H{gW(8*%T9(Or^U||L72q_S*;Y#|73(F>!!8khRu&RWMOGgRn
z@|73Yd55N at rFkQ#olb-XB5hgxWhIr4i(FG&Qe54Mpw4!b_UV&WdYM1p at 2@IM$S?Pm
z=2Pybq+ph;qQm}&%=9|u4F&==P=!ixbt)CkNmhPkNpVPV3X7?<BH$zy{(^*>s)TZX
z0c}@hN$6;w4~hsAS{gJbP_rUuEtM{~IPy~N7OilK2IiFT!hXsVm at 4`h%G&V$q-2a8
z)+wCDFqnPfr}POMoU+QoQeuQV_l{py1Cgik2c0W2tI<)5xG at KH4Ql=LVXpCo&bez(
zJ2K&`jD%kTlmV~i6ioaYxCd}2p`N5?C)fW>37m3tRt%_T<ag)O{I+uju7I`A8;oK?
z`Q0NBZstK{<?h~Zm9Mzcak&FK$4)3fPbQo!ZYr<U-Hr9&2#4>xJF4<$W#a=UCjYV;
zr=INM;z at s54+)*4$e-#M3qmbKaCNfEU5cruf))?Ot#fM+<QZBC_q?nqc#LzJ<FnLO
z)`V9dh!G?E<ZQ*27rDL>F8)t>(!PAWyCwXWHJywve_U5MYjWJBX1CvteLFd8f<=;@
zB at 8#9>98j6$b4XtBXVTiXVN(<@IWUH56e!E68J0f=~;y;FP+HRS{peg?wQ-LAqnK8
zvQb|2Cw*vZLO>k;MjP6OyWLnhr!)Va#0J{+$8uK`;y*on^aqmZ%C75!oIFchVWGFT
zm+jlOMNRb<5f;61nU at dTaI;0G<i2e?#9^PIuFZGWt6=e`QcFf-|G#bv<+SVmjF=dh
zsVONtAQ0Jz+DLFfT|d#^=0rMKM>)lujDKGz9U;y4W44HRQs`5k*z9f0YmIHlY+;&w
zhhk<A*%Y_D^g#DTV|FTQ>W)RvO5NCNS<&9E3v#v#t7{H-o}0coer5T=9!tjUHrCHL
z?wOgqq36<q&%4ae+R8m!{X?hQF8_DGC$9eLpZ8w*k+yF7FQ?r+=#AcwPTYU~!cjY<
z=cgP!>-ORA4tT2a+kZVU;S=lS>wb&6A?eji9?JjhoI9`B!ag(k`!jAG`c~h^%f7r|
z at z@X5wbOn+^`^AfFMFhT-+6bBd|!O7_Q*fxWxSK{WW_fZ-9P?g^QCJ~oN{BzYnMJ;
zxaZuvvbXW8{6C&KXV}~QS4{f)!uzh;rN4O1uczNK_{~0#m3-0dp3xu3FHHUE>^nxh
zH}L7I?=F5Y_fz|o>whOvo>QVvJ?-?EGdi8w`5$MU9eYlfbGx2*ez)!y{PV&d7yavE
z?<GAi?R8o2K5>2f^^Z>&Fpyz6UJxZ&Q8nE#EjuwOIVCl1(BL6MFCUhkF?>Yk6<OIi
zBS(!MGxo}>#*Lqlo0nfuSX4Z*q_phnN#zxlRldp9{+ik;Q|qQpzh=g@*Ii$K!^|6J
z-E{LUvv0j^&fIyo-_daA{JR$1z3`qzi|@T}$^8#J*!a-WhnGF_=wr(te`3YTC!cz{
z>6vF&t$yzL7uKv at _u~4OUVf$d)eWz0eEp3#H@)@mw>Q7@?t3j;wr<=0{*DiJe)!R@
z-5-DQY3pa7 at 7cR={}%_o{Oaq2-+cSsq3?hA@$iwOKOOt|mtT*c_>FD>IIE}5Z)5@@
zapL#ifB&s*n;^8hO4DuYe{_Akwi3>Ea2fA1|4EhvVK5xm7Qs9XFG&vUNkuIjgTJFs
zf2I2f9{%rbLm-diVg3!3b;Dvxp;u^`qehNeQo>)TZ|Fk{INK=Hcm{Sis8bQTF`Bwe
z&YrLp at KO4>2d)aKch)wqP(QK~!AyAY95 at W%gyp02t1F#tQ8J)YnEgs0noOS*?;RB=
z!w*mfaGg at BeAB9(Kr^neua{L7C4p5{iE<E;%fyN0aC6(|QQ1JAvhp%C!aKM+-&a~z
z2xC9AvT(r376-$8F1jC79B|O+UO;>IEHYo4bLQj?cg<*LJGy6q?Iw3V%b-UI=sHJF
zC#Y~jv!339Vq`21ZA>})__Si;w4~!i4)M;fuFjw4Z&#-q at J7VDC$F6HeKhUPpZW`s
zM7mrb7)n|u32dn>%Bc!Y(M}nsqLVv(f8h at Xk6=_f{q#F4g>+_gI6a`St(hTDh}M at A
z at F@O7Q=CHXns$*>Frsf5IQRhc=U?vJ6yRm>JV at AYz?=gi=}E(rvQkD2A2f7uF1~Vx
z4vuJ8h!;UQDWR^N8 at m)t^9H&$wG`q|>-_XB6yLa!O@{`%6^5w6xe`J2pP7-O(DUgJ
z$nb1e!rWND=bt at 4{BvHr^Te%dizZ$<H1iL)mD;TvPcQRf*iaz2@$>(AKPTAKz;*_b
zf4WVA`zP7_0JUx3BSIl?=cM}@pra3QC*Rb-l$@TFlh&6WaQTBQNvR`}(?S`8+)sdk
z9GsFen&%SIh9vL_*_WqZo-jCPNLE6|(BXqYMxLoWm+LRhM<DI1sZOw*^>$QFzpEz3
zAy01FklgGcNm*&BPQ3#L48*^Z!omc8fG|Kz;21_?SXNG8DRH1H^#jXzMH+~z6Wpp3
zP&bBkaB)piO;rV5wo3BG<vVNFu&{w=`TO<_9z6Qr&;QuZb4iWPUfar@(T=6~D1f+@
zXwtAPnjG5^O&V84kvxET3ijj4D3bVM6v<o{MGn0ZMPdQ6k`Nz#5ygdsWKQ*vmPZJQ
z?M?`DAc}aujdEVX&~i1rz$qT$#nT#w64C^EBhU=A0I?$oIh2ZfRUVRejfXTnf$}Q|
zY5mSanoj`NMw9v<==CWibB2fbvXK7@)cXzE0W=q)T&{<-UW#W!d0R8-yBpAEAaeok
zC4)BELt at d^`tPDheH`kiv~GknBAtmgWa8TgGyqL_b_>vi>&AMNr)9oDnP1RHaH<)I
zMH|U|X#XDc^9$rVjJEVfKi>ntYSD-LJcL2HR at z7Kz)S0({GfG$2My`K5Y#sbe5pg<
z(65GTJ*3eD4-F4FWO+z^0m??BO{d};eQ5=MVkwU%fCq?V>nEX&W#~sS^5^53m1uhf
z+JWzSAKG;l>Kl)Cl%QSUQT;HKp)X~sMjek5(u`;4fhP>w<psSJ?eU>s4V3>H(%>z@
zy*$8&Hn(7mn!t}1;1KwF=mwNWdm6!8259l&Ir#PgjkvA{ywf}+5o78F&ztGkC!wBm
z2uW1YmI~y<{X?kFhq at YOA>WP2kGAFA4xY^Rkj#1LGrn6J at T@t=M_)>F3EJlcPoKdU
zHz5z|I|P}?gd8=ZJw80I at pbego1Qa7exS7!_4EeqGPI)?()ex!T5;V>Ujzgs4#$1e
zk%)YG8K at Iw63fso;1IyPfIe-2EMlCRFy=mdCteRa;00naX5KOQ#<i~>+S4EH1Y&^}
zqz?fNfPi}PHb#@!XHd^t at P17cSqB|_184zu1N(uaK=g;vq$|)9kbz;qRX`bV127L*
z0;~X at 1Kt330AB&W)3P5$lS=^sNCmQh5?}_<0Ne{a2CN0%26hAA0%TV-ITN at D7y#(N
zARq_G2daP at fW^SWz%xKIuoc(``~<}8jwW6p0Z0Kx0R=!cFcX*$JPND>-UB`Xz5}8@
zjwa^<y#NUq4CDZLKm~9ea0l=J at GS5$@Gj5_90j630dD~>zyWE%c)$nD1m*yD15W_!
zf%kyVfggeBPr);wKVSfvKq)XCXaF7o)&g$>`+%Q-nAT`=0niuFfWbg6Fd4W3SO`1@
ztOec%_5w$MGd at Ebfds$=h5 at 62Nx*f$0^muY8E64M0S*H(pJQAA0Z0KdfeAn*a1C$=
z at G$TUunE`!>;rxTeh1Fl1DOCgAPu+*@BuS{yMRZ4RX{Va4fq`R1|WN*$vHqjKmmpW
zg+MJZA6O2o12zM at fP=sZ;Ea9Iqz5n%NCL8f5?}_f1ZV<Y19kvk0>^=~_M?qJ0-ynd
zfGl7Fa5XR;m<QYotOS~YZNNU at 2oUo{H0cKP2a<siz}PS7uim1Fhnzy9$*JTtayp42
zXOK?hOwyVBgPcXqCb8rk(uJH$y25)tpL8SL$px6gE+jq3MdV-PV&aAI=}9gny<jkU
zlRhMl^d<dBe-cj;$N(~sFoY!>;fX**A`zJ=L?s&0i9t+a5t}5EB$7;0NGeGqgUDbq
zgbXE at lVLDX8Duyaf%)YMl0~vf4jD;Ck<nxf8B4AtSCMgKJefdpNgl~31*DJ^kzz8D
zl#o(VMy at 84NI9t>m86RJ$YfGY5dV-`GKEYfbz~ZuPOc#{$hG7;ay_XhH;|d+Mly at s
zL~bUxklEx`avPaL=8}2jc5(-4Aa|1a<Sw#++)Wmed&nZPnA}V5BTLBr<N@*^X(SJk
zrQ~6<j66afC6AHi<Z<!@SphfTN%9nVnlzDT$g^Y>SxufJ&yyF(8nTwGBQKKm<R$Vl
zc?EOlt7HRtjcg>ZlQ+nlWD|Ld{F}T at Hj{VAyW~C6Lbi~tWE<H|-X}ZA2V^JtkOWRT
z!pkixFL!=wz%q0*Wo+QOrYdkHg;Av-wRQ?8Q2Lm$SBBCxRc$Gri at eKo?p-HDE-Wne
z`*ZS3GMu-jxZz#O(6sdYf}E<X!O1jUh at b@vrj!;JPI7|PP|Df93!Rb(oPI6NudMa8
zKMC8G48`{;<yHPbT~!r`<BQwk$^fD5Vb#S5YT7-hwwj)+0ny#}ZAa{wGplN9crxs1
zE+O<Zx~A_ee7LFNiTSnV?WznA+ZLI_h at mAeN^?&1wq2#wx$PX3U+0|BNTCP!BPh;~
z;ewQm{Ibdjg0trtQOKc$<tYlW+ldcHm(`TgfGCoJ(GTus6o=g{M|9h6mm^}^#Z6Qe
zrHn{TO9`c%T8CCntm;Tfp4L`-d9A;+?J6}W1)&t{Caa6vjWeRU<g%Kq;wf#N1j&`9
z&{G`>#3{47sxU+dy$8r?uRln4<L2;0VBm^F)Qo%|<wkgI8NuV-xTYI9;rHkQQbZb~
zAD#xg)64v55dB$jBrUD7rmdeND=RuaII#E_Ogc+0q5D)>Q&NWJ<UkVm4iq7hl9is;
zfiOBmNv*B$g*qAfZDsg*|KK$}*WY$zGH`&o;~C0!zrhJ611sTl)hJ?p!nyV*mzAVd
z7L^6>`ID!?E=<j*tDOOgGnj2-8=z)nCv)l9$$=D=*5I9yK6g#ZO{eGk+o^I!adk;?
zqznhwv4a`Q0_t{>Evb%6-XkJcsNJpmz*)U;;}{}_46d`oAK5tiBYtO at EV;O(tTK`W
zK1C7+2aI5dFk;vrZE3mWsgd at p{r+r_mQw4lsj6t#Fwi?v(#8xObP{U&Wy3IH$gTum
zS>QChBgH+%Ra_KtC$h%i3lBQ(+_&Ga4yHpZmq9}KT|Yg!0xiv{8d_3WRUM?4lu>53
zSwI*jC}?p=1+t2r#o<UUbl`n<2MZRWgyu&|X*)dSo}CKbXjgr4jWfFpaZYAepNtlq
zc(TLopOXli0RrjDP>VwL0N2^I1s$FW_MqZos?R}EU at xUzQzEHhjd9Fb*aYrKUig-8
zgoMHp6eQ8baOh at LZE!jWqo!8{_J6}@*>qX9Ju#=c%oo&HN^VzOL_KX4wBOE(nCeGX
zc9f2hbl4|F@@-Va95m|WlhCM$ff^ObhEWmE4e&PnI>_J-TPPu-<G!^eBU|_<i~a4@
zHgc08oD!KOLe(5f=sx^Q$MJL$&URp=AL@{5oE*sNTyO%(rMHr6%gSrYDjj}jyCkP$
z8O|nPfZ+I!NtIQVZARX?L7fhViEgUBM;A^F@!KKNxppFaqUzd8e}Dp~XGC>y_}e`P
z1DsY at HnAhM9c6eGUF#2QOav*_j<**~LiQr>gAmvp2oR_%61t{+iOlbiB1_P|MP{Ou
z at I21E)UL7aoSIWb4dgUmAR{$QF2lkNm-FN4;Qd-(`--4otOWDvc!VJmCv+h3TnCaA
znX5S52zH=QrErK7;bXd2B>@xXBr3v$rlPo_u)^1N?VA?5rk2XN_EEMZ`3uX++NY^|
z?T{dPZFQm`^=2Fc6r#9xCz9s;h9i<h?NKCUc((IH&`{bjQjuB0b4-mi%O{~x_7s)*
zedYPna{W}<YNzD7KRTsX#bNKs`0x6eaVWYiaV(nb{yv&)52Fd72|q-W=<nNTnV=Pc
z)+3BI1GE{SC5F*@{2Wahe+a9;-ADN`nq&f{Kpij}Xav>+Ex-YQ9L9410T=>|18RV|
zKqIgQXaNo!ZhOvgT*n-VCf$KJKmmpTIY1Fm1I#+omVW`R8-bO;`Y`%-T(<%Tfnz}Q
z(P+{c=z6p*j~CYrkO-s$V}LxM9H;|k0S&++pb=OJtOlBaO~7_wH?S8t2ppqz|AglN
z-GN>J0~kOmkPhSkc|bW(1Jna^fknWwpW52?zx at 4w$KQ*H^Ex4Sq6}JYLf^$6MsIs5
z6uH=?=NC}7h|s@@;H2q$h^nim(RZjjX?g<PUz!^#M%V~?+iRU at 9hbZJ=#j(R;O~})
zh0&_>r{)IVr;#2;51n=aJtIi>Ppd4<t*N3{HTiBEN4WQ36?2`R3psn{RR7!PMefw)
zC)sVZ$+h|AWi{y2$N-Jj7uF>*Dx4nHr7=NzQLZxw(KcKapw;@EJc0K&5t8T9owy;q
zqxs?Vu#Ogl(*u>9PSE^v_r;=}g4Z-cB=nv6fi!iga_R4a1L?rq-OdiCvx at 2DM&d|W
zWw5S<;B}xbCYTP?#Rb!WvO+MOjWHl}Wjd*-i0;ZK5%M&lev+Hm9kE+aNdHqtmleS)
z&4=@sL4N>2r%FQKE1z5FtP at iGA-NOj=?1qQx#bWfr%gPr{nYOv^nLre&JnRh;>ZW7
zBrc!my<Q|Yw+QobWpQ0ujax@<ML}+1ZFO!%ejOq3Na$Pi9D!Lx=(r&g!sknpTUJ#-
z$k+Jx7t%BNgp@?(`U01vK8ni9)fM!R&393`Q>)yc{*&`Ou8Lgf!FX13#Oo>W7w1<y
z2m1PZitA{8#xrrEvoeN{<e6Ar1yNBw6CGcI{#Z=Ib!|-{(VcHUu|1CWLI!&#hWb_I
zDR<s+G8x~MC2l*aJpp$HpE^&#g~4YUy{@R5LJLm!1l$>XuJib+rsDf1&tyMs^DUn0
ze9GO~o}dpy$Xy<Ps9g&@{>hY4i#$;J!cs at R7dzL^<H>!_wfoEm>2<lwlXadcZJncY
z^M4S|Tk_~~IzC;I{yU)ObJ#$kIHbcdEG=tzS~|}K>oh?7BUJdO6js-`IWv*|?}qU9
z{g3^`5<-RVbmknUFQYQ4%xq>A)6AUCc4qst40|Vglp}l$|E7>9wuoPevC>4zC(V*>
zlf1G=9j`6cR%$<J7wVj@=)?7^^g`XIPtotwoAkB%2YRc1K>t?%m(j=IjA>>vJ#p$K
zgeuR?>_+zAtj#rWySYjH9zIGqT^KFQ5jF^)3m$Qpc%wL9Tq<r5KNr)b(Ncj_A=OE@
zON*st($ms9>2;|^+9mCmj!CD;AIW>=U*zBAo(iK}p<JoVQNCA>DxVk!jbDvubE<W}
zMgKraBA(fg8Nu}7-sf7m@%*jAwc_*QKv|P><U)C>GD}&ZysQjRpHN>?Th%Yrqw4Q!
zjed<jPhY6h!t^ZIFlMXpiI6V(#B0Rc#T(@YxsTFY>#wcTUf15$9 at 1Couj+5=+w?v9
zKa2$9HzV21G+#xp at 3fX!k62CC9?NS_pl|WYblWqXnaB3w7;Y#xntP0Uj%(p|ae2H)
z_@{7- at TSmP{8;)?x>inAR;X!4t?`_>*X(WiX!$(nC<8f#>CD{4Y-28E3)zR+J?!_w
z5%CxCMX6ajSMDJXlm+>I<uzrXYN?g#RP{`)LOV^@jZ|Z~ahi3$wahx(?rzh;r)|k(
zMluR}qp(U?C$OR>R!etF4 at mDy?@OOZd!)7UX89%MpwdMxRX3~MG1fheD~yNec-Fgr
zKgUA(3)z8eB{z*fPns$Dln<4&)GfvqGu0vuZk~TJ%b8!K7`-QCV}qV=Ty0D-XPJx4
zhs<9s(nttZvsnIOzM7xU?~p&0iIS^SDPFaox<c)u_0algoMvi6v}~<fyH1<0J)pgz
zZPkuwgY;~Ds(#cUW>@oHW`lXJxx at U}{L&m`WmqNF>(*xL6KkJ!%o=5nx2ID6HMxE6
z%ywg!u#d3^SdqVmze(64te4-E)0NSXp-Z%Q&CssU?$HX3CB`7 at 3ai1o&)RQYY;U*e
zA84Wc&tV%`mS4%gz)u!t2#-pS%B$qB<#<I>rYMJ%M<7c()jjIB>NM?E{Tf3xpD|xF
z|7qQ7&9 at q@)9p9x4{2Lk2>c%SgUo*B1oJU_kUh$N&)vWu<DVA>i4TeE#8<`N#Pg)N
zQj)w<&R5=1ZdN}~Z__@|Zqj$?HyIxo_nQ07G^>~0->$Q-w>R25>;v{MHfbefF6|@Z
zW#X9>W)f4++`&A?JkR`_S-`#`z9UYN>*WRV1M)s4MrGBT!Q;2puOTJ<wXxa)?JeyS
z?SS^Z7NuXP_t%H$H|UM}+xi(s7bDS_fRU>+RvE7t`;0 at z5#w~Ti+Pb5XY!_H4mESk
zT=Q{rh4rHKruCbp(>@+@`TY+2F*}}nmydz&%@ZG#GUV~{H}VO2yf#VmX|-CtHb+~i
zJ*3Um at 6kIO-Hf9KZ}zh)Eb0+a{hQ3pU~XYP1E-EMhuL3Qft$_E;|_91ID=2;NAfH9
zCjKk_NB%6~TtO0Sp+J}<+$P*5EEOITJ{7x2Bczeqek!xEQO at 7IDq(LI>y$NGcgHS8
zIe#Z9lTFeI<6eKpjg?4dl=BXxh5A;r3(c1oMMaei=6u{?E=uSmq=~~tO-ho=r0b>G
z(h})mX}k2TG)T^uZ;&6BkH{B79-`H5YA<zws;J3ox;jdIOMO at Uht@^A6a8JPwQBpc
zQ}oVyADz*wU~`t}EA^N3P5RA7gK at v{r17%xma)zF*!Tk6?qXhOrkEM#ShLuiY)&y}
zn+wcF^DQ&Vw(W;0uYFOD9xZ0xVzSuB`4;{HAzK(PlnPG>+k{=PuKmPP at mcX_F&SFA
zS?VE=kr&CI$=#K5WxevNqNsK1Dm~6%4AU55<QSrrY0a>1vfi`Ku`jU);weMzW%iTy
zKKiWsC}&(f%wlF4^EA_gjb~+6<L`o0JuV-^$lj>TRu;knnQDf5m3lxuU-N308iS3I
z#z4!2U5IjI)X!YYjN$URFEExrb1FZKKfvE8%!eg<L)b3t6}}bD5W9*Oi~Xf5q^qSW
z={e~&X`A$!^s4fnGD4lC&QYIL-&em;e^s;edVP+*RDV)mqyGkJ?P^?X^fN at r>@cIi
zs4!+3cNklY9mXJ7X2qUm&$pM_EA3|c-!^HCBD2w!$C)3Yhv%@=mZ|KSd<vhz=kt^J
z>-l;78IY^Rkfq1v7hos0$ou5)<T#a62dSBA5o~OkG1a)mxZ7B2G#P!N4QtKU%;ToV
zim at y!+bRMVZ?_(>)>yl&&#W)3<5m}2vlHz>_Eq*|wB$Z}g=3qds7WBp8J$gIGuV-A
zK0Ar^v)8lp*!|F+SGnnYJ%2M~y_w(5 at 8gf~UZJ-TFC=01yiRymXchJgr- at 18<>D%F
zt at xU_Mf^b=FHMk(<!j_w@}2U7^0V?MvZ|EA#x*IgDlJMkH6Bt~t=^*EukKZ&wN6^B
z)(f`pWmwnk+LzjQ+NFA5y+Ze6R)0v}s_)c2#(Bmv=zn)u+Y at GI>q1zxMb?wnOV(G`
zFIJXaV^6p5v>$|&ykyfqwzv}g>Bd~ljA14)vzYBn96Nx`VoTU+b{4yoeT5y$jo?Od
zrwTKL2Zc2P5ziOj6;q^i>38W2`69WGJVm}<eotl;Q at LEt!3;D-ov&_Dcc>R><Fp!W
zrq%!*dP;i-7VA4LMjr()WI1frR(+S=#fUQ$BiSf2e8vpJhTd#8&$LQyA8h5d_H26*
zbml30Ev)9ZjxCOIY_W&w!!T&=M24_uuzk_mT(*pTi%sOla|K)lcPn={_b^7n6t_vy
za-5tlUn##T%dp7J`d<A9eYjBuDf`HXGS4=>RzHihMv-x-_c+^$dx~EV`*)d;AaH^y
z41sP=5Xyua;d)rA)xt~gFAfSnNj>FwS(dBi+46nz4w+M4R^L$HQx|HyZs-%?VVw&3
z$~G(LA7(rh<;+DN^3j41mTsl+0(_`<gq^}3=uN!X7e3P#X|L2tK3C at DBzc~EkGw}-
z1aIdz<#e?~EmxPSkEz8NU+N5coWJFk#7tvvV|973{H=CedkP-hPx?hhZ)1>=32XGC
zaf-Ri8e|`~Nvwy=K>nHRLzqQ(umzmP&*pdXKlA?-R)~ISk~&#!RG(2_Q1`1xpq;%m
zUb|7-qFtg-*5|`p+O8kbQ;fTeJ at C^mGY6R^=+Q#+Y4bhveKXoR4{~+6HP*_tW?PG`
z2d#IlPp!Syd3LeA%KqI(U`SR|v&|$i1<Xy%9A+IX-h0e3<_z|1)`I3_vooMGcd;AT
zZS03^40i!{F*lq$z<tmCD4Y<siPNPUB at zDL74kUP>T-E9^y3csUilHZNq$lOKt5CH
z3yG^y?opmpRw<j6?%GA#ZQ3Gu9k=P at jC$iXXN<2m?>4(yJuL}s9c|5m9;~!pfyePa
ze2z?Lb{^Wh+<wOXmC6_6aqQih?2GIi?g0M-f0__0^b!ULJD|6R;rDhCy&?ne>pt;o
zsXzSK-<7k~i_`>FR)2wJcGr4pl9sCFXa(TnE=c>&+9Z9Nek<n7zQ%ClI%wr<m^EX~
z9%e67F|RgnH19OOG7p<9EKm-3c at wz!k#&^LV~OtAtzh3_53^JG3x#IkR8bYH#1G&@
za?)T}+SlM+PnH)#Ub-umQmZ_oY*#v|ntHW*xB9C3rOIR8p0Aw?nOp^*_Yz~0akKHR
z at ssfnQ#NlkcbOMiz2Sk~Y^}GxwEDr))!B>f{f__Zapq7jB92t1l6i!Ahxv%<jA$d7
zEnug!bJ!o*-w_++a&w_+&%k3p#+~3U<>UF`d>Oxl-v&#3sW1leey^|*Qr=xm7R$v3
zu}OSMJR(L({iTtZi|@fa at u_sC+znDc4KwjO@=wsDtCc~J$~v`LyI1>Bt4GWC>l=+;
zm`i^(`@$}NWgW3eo`<^F<N^3g_p at 8MEa7X6PMVl6P85$xwXm80#B5%xUaxL~6^g@{
z+ at bZu7_{mq^xno8<5A;7<7ZgMM02#c+C0Y^Y)!HrvYxlLTVGqE{W*MYk2BYt583^k
zJ;YwX_2vXFnakuRaOK=|ZXwrGNEfCGO~MC)SL`chiv{T4YvL1_r%%YS$}(jmWMiay
zllr52x|X69YD=^h_`zNDEaOUJqEU@`sNT5M*kGiX>E?X%8S4$q-v_MkEjr6QX+LZ4
zv5!z6vED=IVi3p3%vgAcK4vNNEb}t6mHC7 at jqSpU?9I at h7uezOt+qj{2M8i8*409;
zScF;SSMfFJ3;BDwOj)cfRf at C$x~$)6^fyI#;N2|EdeGiQ$GX8o*5hjxQ^?QZkMoxb
z15tXaxI}zHJRzPbJt!@gTBUtbH at P3|%}8kAM)@uIXZdtxyfR6NQcnYqx2O+lkHgC!
zt6yNqu;zn}5$I*5G0mCJ?=>F5eEXvDrg01w_fnHJlg%u%z^pcBqVG%1XUz at fR`VxV
zl(V6yvXu-?$g?V~>#POV!_d|ZR$rU92isTJ*Vzm0r|s9#?yu}0D1RC~WQj8$bY`x^
zY%qzL%G?Yu`X1(Scsnm3O5VimVp^F_?0Kvg(XzxQvFU6MI|0$y3U(FyIr{_a;ks}=
zIS!+ng}I}eo5{`RmU7Q>8 at R39=iCpRhwsAo<T*Z>&*BRZ`OHM at vy^|9- at tF>KZk|z
z2wjApm at ATnEcmn4m?P)I%5M}%lZVt%lfo#B0WBKBWHLF-I3|xNWy+ZvrVjr8EM_j#
zz${{xz&l&cG%>50^-h~NV-DVlcJE~lGKXL>o21p!8fiV^#*NY at _=GLeA?Yw;>*ErU
zqvaU6vm7fkh$a*1A7*ZL?e0clldxH6fq%AB*bVEoS2%!~>k#zh7$W3MF-IIDjuZ1R
z)}@eLpI9T-i8I7{@sMN3;<ZFru~KaY=I&+M8f`Ot;KP`^d%y!u)yL at N@Z%O>7GJNo
zU`9QLXuxX- at JGjC9-n0_GFBSR#&+X?aU8aeTDo*I&#Zwjyu at rWH<~-mgC?=MT5*;E
z at 0HH$9 at 04qQ>7R!b(i9$L at 7rqm1al{(lYdWGvx2E6oZJFkyGIfmpgIMa(TVnBJYJ4
z+gb4{f-*!Ir}&gv$|7Z@(hNIzKsm0&!U`zx=kwGWb+)=hZBjQP;yb7kt*aIX4=PhD
z((1IiTBEjF+obK*4r$SPcRgND)N}MweTLqkFN2 at D8Fu5a9%J-?&z%bEQ4ZZ*fEazf
z(PHd{Om{ZDreF>+$C*AST3%^3o7>F;@GN7kUY25|Lz-(aM=r6Ntc})A>!3yKu6CSl
z*qL?_Z0=mU(OzwDvUl5us6MtrrooG7raR)oM954jqN)Z+$QsB+D|48MVSB(5r?O+%
za<-mbz%FOkvn}ji_88ll^TJLI;l?5MnZ+&QR&veUb}pUI<a78j{5U?3FXBu2a^A<+
z at OAtQ_^Gqt56tBo_yznT*zHDs8NVFyaudIrU&Akg4QLdXiOa>6u-vP~HR5`)MykWO
z)JwAvNzKLhERYr<qH4rAEtghG9p!Ypv{Q<Q%m})IStt>*Gel3<Gr`|6`Z#@-K3ks)
zE-%m*A*N~sx0maOFdH5N?}!x*zr3>*3pwd-^{~9)Wt<gnF_r+H8djo}Y7GHzGhr>p
zSmVIsBCFIYw|wAr9U`K7%=NRaxmE+L$RhB*(OPCLhc#)kR>Q+zZ#82qHo*^Qfz{t>
z?Y3IsyBxsS9I_5u$Kd-DJKB!1JKM1stL}CW+v~*1u1+_J8^xXCL6JyZr8vouGNmH$
z#jB>Ovms3lh|U+m;x|HbmTN1uCP>#B*#GU?PRLlRwij{xLCD%+?HIf_qDSj7h%HOa
za>!4OS!d2L>mf(8&AG7C3m{L#`GdS;AQSb%EMc}VS7;Cx2#bUzLgPtv`#AjbXfa0Y
zEXE=x>n`?y$I?rT6XW5x2%;hyVxpKT4iW#%2Fwy?i*qqwFA&?yK%$f?4T0yM2 at M@1
zjg#`w^HQl?@<~C-=plRMUhui&9gC#M2CP!5JOn;?rkn%q9Vh3>MRF;$*eBP>b at B{o
z^DOw$bL9qT^&)wR+$b-DcCUn&w_08UEpNt*vq|0zZQm~Mly}Rm(E0=NLHUq;7}|ea
zCQ7stqjXkcm99#6r3b7*FC|WiR~T3YMKP2_B^A~oUCC4$%w^^pL>R4*u^7k{X^3{_
zk4&zJ+ibQ#Yj>Kvad$7Y_n`TokwmX8*a~z#(N498*y+&u9D9sC4t{5mU22yj(y4(B
zm|@o=+MNws&|oh>)PqJfM$=_E62o?8W7)23cWAwr?Zw6+hG$rTT?4IeW;e2%*v%~A
zqPZBZGZ)Ks<u-GFq|fUSk#6KS at tgS;emkN7Lr4 at -;V+~MnL-Y{wQ)k8P$ZNJ<?!2T
jglIFy>}<xGUCr+BR;kcOJ8Le7)xWuJ{lB08$mhQRG_iZi

diff --git a/VisualC/graphics/lib/zlib1.dll b/VisualC/graphics/lib/zlib1.dll
new file mode 100755
index 0000000000000000000000000000000000000000..0c3ec24cd01e1e4a1049a7827444c88a4f6bab05
GIT binary patch
literal 74752
zc%1CLeSB2Kxj4ROvm_e`oK;p08YQ&RvMqYqO4~%R-DI;#AS|JV4JZUC)s(i>Lb6L#
zNFbbDl5t!}TLjzd1>4$N+j?uNn1mNGo6u}PY6IbFc)1!Cbq~pvfHovSvcKnf=Imw@
zKyAPG&mSMno-=1=o at bu-d1lTW=L5C6IGs*sfd9i`ovu+Q{@HY&|8FDwKVkCT3A){h
zf1A=M&HdYy1uK78mb$w1r#~qD-cM4$|GkGF{;4~4#Y3s3o`+L^_;6}=L1F4oe)`};
zca0xEHcjhezC)**D;aeU{kUyTq~9*xgfEYi^y#`*xJi|CI=xP}+yvJqdI<kQE9hD;
z at Rl_E>0hlxH_x4rXk5^NXor7Hq6+=YmvrBbhu`IrE*&ebmUOjoR~w|HOS at Y6|Kq>A
z+z&nChTq)>HH2DY2O<6~hyU(+ at O$p>A$nNQrK2(H4v(y7)9IS-Disx<u|q*G{GSc~
zAGxBQ?XDGNWq93A1=3Y<+lc)=B>E#70j+dK#B*eQ>hFi59?@{QpuH~nih6)wS?TxT
zx>ln#)l0cry at yu)6e<$UH){1#uc()GRmA`QfB*D97kj^OKEFX{Q&;$oxo!Mb6I}V%
z>XdFnMn~xlJkHnT{y5w&YEWTWx6+do{s!KM4m9g@!7+G=eJKY`@aRXn&<-f(#h)H(
zDXE42i?}CA8IlU!cNc~|rlPRN7`o#C)E<&p%l+;ZzCO={2m+o()>9?5tkeHc|Kg>G
znv-<3(BaCB(08b;nE?2jev4Jz-wYD^zeRLI)zDpNDg227`0FbX0G?g7z9!G}p^4#e
zxchgZ6vSAU1Wm0?-A at sI2m-rVi5+9(wtyH*zci^y8^aZKo`pJxT59oGvHBr^t`+~_
zeqm7|cNlqb5^I$k+5#V$lnRq1d&h$2`c5^XD7&+uNG^YfyG-3ixjxP=1*F&KD1%|o
zg{pyGu)=HOtJL%G%X;^%*_g2L;(M$&a8~}|F)XvR2f9p&ZHt#KD{g6|r|-}YRv5$z
z7eBBJL~krZRTZWeZqVuE&A$c6RX;J+!Og3S0gYO}`wpF4KhbZv&To#F>+>bKzDzH*
zNzHH_C-vfQnL)cBqus}A_X*m)QM*sn?#F8P<FxxE?S8y=KS8^f at m^^$75I~k{uyIs
zUm5U6od$n+g~=C|y?+O6)yGk)equ5KmU8_%DT=9H>Zjh~p!7-%>Djsjt=y=UCu-$a
zVkpYTYvmKPav95|Ho#G8_9smTB#~)y^(w^iO2)m4JYfA7-(meo{F53dPDF1kZvhjL
zb86;LI4sxC^qVuP1~qP<#TtIYjrY?1m^<-yG1hKJHY20_`@cf^O1wsaOy*7_^Yn9%
ziB){cia!B?yZC{4>gtW*zuYhoP)*De;+~NF!o`ap;In3Y#$6!`h-iz{ALur*AanFc
zC#r&of#qmbm at x8M@n`KMUeQw^ipuZx*CQetKKH&GmJnh5x%d1q at _;)p{v;95>*s)8
z4-A5uK}S{RE<lCuzY2ZXlMbago|QmU7zwXP!cjTQI3$mePiC&?_Ud{=E12VXR@~?>
zevWx|2OVwLS<rDr{E#<ebJLR8f;1y{B(sz>mYrq at -DU%wYjTh0*jEG*c(}(P>Kj5w
zz6ui7FR at m4DwK!rg+clHSg+ at A(4_GavO3z1d-k($VWniK)cw2|&p(BKBlH*kVuL{R
z5!RCLeBKDgjvT?dJHEgOiteBhfLMXO;x1z`YY&8yr1rqs3I1%;xR%=JKUbp(aeqI;
zKbN%$EF5<w6&3o9$=)@3WT}ZA1&ikkvzCh;?mI`wM_(Y$eT!T#Wlryu>w5#;Ms9u?
zd$e{Gc-{j)!(LY#z!tHS{5I=Jx&E+R-^x?`rcXmFxWQ-Y53LBC1?@i^IBT?a;)74%
zLDG}dLnmKqu(nyD-!{4ac%+s2Noo~>R&CakT9ZJ?$di23>Lg!kv>qM>3xH_gt_>^c
zvta><D7Y9{rq6|?oJ+kLIP<?WwB&zjXerh<r8RXJTm%j`Qy10_xxO8%3vkxgA^=}g
z!jt7{8<;aC9Je+H<%xCj+mv$#rPc67yW?i9GiwL*QhtD4 at P)f?l<UW4O+O*m2T){Y
zh#DUkctWi6VmrA$|L!}q_yzoJRS$-epnxco#c<h}sx<!Z9`v<)@elKb07>@5llYS*
z9a07-SDyF3vJ$kz+T?#3OSyTo^%Oe~LD0>b0KZD|+bp^DcTZ9RhNEXa7g$QQP3fOp
zdCc0x&DBtU;PdKl*6N?q at a5*6pg{;`BKcoYUy9T>?6NDDCRd*5bC at Let)NuaLu?TA
zUw%$<8~DxE6H2q;XvlM(IgQ+DIy%7oX8?Ei4`TY?1^o|Pv;Uo1|2}LN1##gTAfCip
zM+ce9B>OVRlq6Zfra6pN2a({!h}seVC{~(E?nv`azEi>~y5l#lTT<@69?jCwNV8;z
zu+Dum^O&HFRU~0?F$7Sbz(e&<Uxz{2^Y&oW&kJqLj^;5*aCI)&$pv614QZiIVB&f&
z)^R5U?dfP|gLV_%cRx469%=XioK`>*F<WF%E=lE&`cBEdtr%zyHeiHEw5+t%oY;$<
zP}J5jNQQYm7-%rgyfRz5gtqiYjcB1+v&YPr+WPECsj~0S2v6h3QUlM)mO9u{1jFLX
zuV+gajWFh1w=sRP`zyhmMF?cXBe0Kr0=H$$_1D#yAnpu at Yd1b3aZd*?nx!=9{rN*I
z9)jk1zC*J2PG~)w%`?dL$u<@rbo3$(;Nea9a2;w#ym)Ma#}FYXmyGVo!JPEV7#B0R
z!1}5a9n?I-KD_DP+vn)*@|@yJXT3T`hrz4oI_&IKJ#}V-dMv)+(Gb)!$lj+Vtnn%~
z^q8^Q#<*da=>XGrYVYvFVBAQA0`D57H at hds7G=raJm|APfndq|ZR%b2eG`8VdEN{y
zsE=}KsjU%t1WYjsu|Sbnl9t5hWwWHT(BXRGPeAr|V(px47!Ql at -X6@M>2_#reGI=z
z%uud|djft#Bb2d?k)C{C0TO8K0emoL7S=}IgY*eX0*8o*YAMKi=s#cnqA*gTFwlBM
zVB|z$*kWL4OjfM`B2u$5S~E8mo29dWOGfuCz(WuScUdf<!B)g&dESQ#Cii5ha0 at bM
zn{Fh7M5TA2lHUF0S0y11BwKf*Y~AS346^{sG5E726pD92*e8WAzNvh8nN_B%cYu_I
ze!V+}2&7S{NBf8xON3%+EW7FD2+Pv+!z@#0!$?Alzi=-{cSm|L#P%{3d%0n_mm=F9
z&6pUXa)c&^FU>~v=2|Zv`!F;1VS^Zs$liZ^iYyR1q{20FGhXH53S<FpmT5OjXQ at qa
z8T$E4F(_PRAPb at cF-8XB>(#}|#Fc0$L&Ip4qu|{c3nVId)DVCe2uNi%o0S&&?Mo3L
zztw%7;Gsnz7*lZ|hhB`r$Qh<3*-b5yjnMKt8Vt`jKSz0%&LUf(zJCcdiD>rkmm}l@
zTDDw at x%uU#Vev1D_LnuXKlRqjU!+zF)EezCimZKwtVQVoPezW*UBK=0eND2j7W=ZN
z_?kSkx!ndoE4V!!9 at I3@gKVtxG+pN5Wffg6fO<djopKwIAeDc?Ilgkxw0J2vQZXO5
zFPT;D-Y~1w^Czsa{t2kjO5MAEjqx(rh|phXPVn<k0bD5Qx4LT%kiD+bo==5h_4`nw
z-6z9+_Y-1RcyGk#rNhtr>)?K&cHgRIp$`Di)|(M at w=$X at 3;h*OVaSC;V;#(~4F<QZ
zIq0Y*k8?`i))aI+fprtxt;e2|WM2YWOG6r_J44R{EbB24f>zmk4lSH56{}j01#OfP
z4%()QpKSWkiJLs}lO%pj;>RF<Y~m+f{LB(R4~n0a;s>Yf5a>nbRe%dw{^=jXKy&7D
z=eA(Ze5#qVh-d^l_X*%>L*iU|0Sa<}YqIxEv~<pGP)ZZ8090vpa9#He@`0nu+3Czx
zYxf><7yF%|i~)C%Tt9B(K&kA#8Cq=|C<n4^9QYm(DzO~{EofL?(>87Tti-i}jRPgJ
zH;$^Ul)Yo=;y&412^Tf8J=c54^E~U*=r7k7bML8|rAvf&+*rZOW$$}BA~0%PC?D{B
z6^XIuJn}IodtWky4&d at JZb7>OsIwVqA>}71M6yp0y(pF0I@#M#6ri9f^p8JBbs8pi
zAksgEYQT5s#ek6=h{w<WjD)cvVGcmOjg?CPlm9{T^@g_hp?(tm*1dq1+Q2SY`dQBM
zs)HmoS_lvF4s<A0{|D4ci<dxjP%+gPu?U{SJ!ZVs- at yG|99AO^M~rPjTFO35OYb!b
z<C)AWo`}w$*Qc3bxF+tXh0#(nK>AvgN-P-qGNGRblh&Lh_m=?Y>%o=@^sL7;1OYgv
zq1D>~xUWe)fpZ8$+P-mE=MeNh&3eol28dIwr{I1;S{k%mpO*TnQJB}1eOwsB<UNyh
zWDL!FZ$oAXmv6!#1<i5j2T1Ll<zunZ1+^20?tBUv#a-K&IW1HU&(&HeE~%yYx6+fx
zJfCupkrns*`X0HRxzmh|cSFzq;<iZQ;N$;-&Ss>+Or3Rxa?tk_Lo^<fi4pS^oc}wF
zL5Gnnpew0Zz4=oz1hMgQdQ3c at MDaWY^QCU{UW())kZz9&X!FyRfy*H8%0O6?cM<u$
zX+1XEeT;c}F=KFnl_kLx2I!w}lD+Y$TJ}{+f7orQiRXn$Ibr)so^Qg+_SIReFljc}
zjC at njPP#1n5=9{BQZacV6+UQflJZwZ#$FDx&FtxX-GjW)0KHh=<b^BQx(6+XF;P+o
zN;aeu($C2z&%(=%c$sg4=;%>ixCkbaK4lC}ISdd)@1#1O9ijjEQ&cbPwrKqJD#_G(
z&DZ6V(=L1-aWIIPLC{X_hUeS*GI4 at 1DIRXtW#a&6s^6x`3I*aYaNwoEa)I(#Wphzc
zAO8rX&OR6F&UBjGx5FgYa(EQQp>=est3HgA*>&keawQCWXvqa$BzB at DzHf+fmzKlb
zukd^U>O4xI25NEy)GS_>6m*2hpda$2a2y912n?ep=E0~S%9HEwVR5V?<U1r{{z+OT
z`HD*16$*R^;XSM98C^O1DwTTzADXc88LhJHD<I*Z24{8Dz&}TVHrQYsO%HJL!yRV=
zA0|uvGwpL_-}5-o!db}0(&5%FoOO)L^FNBM*-U)8VEE}tJv~KaG9?y=Pro_*beaB&
zw#ma!aoIH57N%<~E=w3xP(F5^7~+GGqznny`ay{>MPzKqbdX&R?d%Z at u&1j_F=T%D
z4^eR|9G>MwV=M~a)=~I&<_|)kZ-F5O?IO%sXVc_Pn+u3}@vGrsc~gTJBpQdItg}Vq
zwrEI7A+-?dN)5^h{V<gLD3r_?C=mdkB7omN7X#ob!$1Iq*=Xr*)d1wi04R(C$cg~~
zLMmd=|3E at Hp1T^MXr6*DiwGr#u<tnmp;P+2Aw(gpL<sNwJ_;fKY7@@6QC8fqLHL#Q
zd92V>3;?MwV<f%d_c7Kb8m$kHB0EZ_fBas+_<{7fbSj*s7T^HB^!qQ$<)^gHFY7*+
zM9}$h#Qd-S`9(3GsddhDUj*~}(Q%a-GR~Lj+3UVO+4q8u?EVJsFj?9p`-75wB^c%e
ztvzd2e>#9I!L-g|6V=~bin&=SZs2NvZ1FU_$<GF8Y at FI9Zs2PAr!mDJ#@6Y_n{~F4
zDJZ0#rx%Ur1OG{W#1a5^rMhq&>ymgJx at Zs%3Ph5jhUDp$?zWT}xU-k#Ct>~bSbvI8
z9WneQ_1r)-FpBtNp*8ROU16msS(7}>$YHEi&>s%xk>PhI9AfR5Ka%TRVZ5vz&X;m$
z5;(b=H$J+gRDQBasW3*ov?pG9bXC}$R7~p>Vm=a{z0%smT}I{6bcua;6?hWxXql^l
zNtq(z&YY!1i6Wj8`B<eVi5Dk{<lo!arcd74ET#h<=ZN{lJYQdB8cs#IGb)Ql6hh at 9
zjKz~E*H5%>931O;vo%ha at irR-jIpy8^k*Ku^_X%nDH2WAYvUvMDG;yl3W0)_c{D2r
zQ)mJgn?D9i-p9_fGJ|^!FEo|Zg0sK(3#1!;&uZyL&oV8~$n(XNSIWm&q%azb{MaO7
zk$eO6Z^?hqQiuX;02$s!GJyg0y18gKe*FO%f7S~E52!A-^im8eq at nwmHonHG*x~!3
z_kIIE#h>_{CJ~t(z+EH|nfYG{oePIs9UszC5{7@^<x%oL*+buc7N>N6Tln4~S*I(H
z-&paX&MgCjW3!G?f?Xw5J4~)p7!JtS7o?Z#w-I_R`5b!9l&?)Mv?M??o<A2QWX=1+
zS*|m%UQ554KCC+3{~et#iTUcsMF$Y0h+H at zh^=vatPOKKi91pp>CI*WTrf;nUySdb
zFEBpOZzALSkv2XtxI)yPd;<(JGQPzVK689g9pHs?(Of=pCNfCN&^+1qT?~lo9UoJo
zHZs~^?E0|CZ;N%vNYswf_2u7S%8s>agTCoX-jcopgPT|Y;+TI<A3VQ~jQ_#U;qT({
zUsNA{_TI2Q0E&RHr56_ndWMzaZ?xaS8jfguRCLGF*djcQ`WaKL at Z7DIH)P+>(3L<?
zc7Xhw2?&N$h?F!$A+$S*>LYf2o-s=QC3gm3ZN-c_hG#I3aOc9GwJ+cmgn*u3 at G={k
z|9{_wJ`gK-Hd>q1M+KiK(u2nCmhSN*)=Qu&dCBe<we at kkmO^uDQ+4v3c_<3kJ)_fQ
z^m=ZN5Ex3qMcjitgm}?CED$8mYFNw{+512n^Du2n-AT$pGgVm(JlAmJ_H64RaH53g
zF>RKmkqyFpjnk3D$;EfHFm;iy$vrJ-r)-P0DQKsB3rTPOa+<$_!~o_AyKqB|c`>bA
zht$O|+`}W*?=-yxTZZ#XnmXz=rzHD+snaM5fxcgdi`|!HuUCh;kisP!2g^nDJzMrB
z;SQU=J&5`vtN6M_$lSkBjJ`6Xcf&oFR`48Ng}9xEnd=X54%z2+E9=1PJq#1hd3 at b!
zZS20Vdx<u!>MjJ*-L!GARQCS26kXWS^lgu3JDAvzQ(H9@{toV<1O{!;vtFUec_>vt
zztEq1F_BPt7*W}9oae9XJ_v$81}3VOp$O(LLZE at zy-V0t+D5_?{lBX9e-X2cr<kKx
z6Z<J7_BbJV5Pk{D>pcHKb#XY7)@182<bYZCIJX=10p$7HUqHW~{0~jPW#1+WIX~0J
zl_y?H$7^wx%pJY7f+j57AKw;g-j6n}U;PdV-YO9nXQNOFAsk16fjcTwFFlQMB#}(6
zS%>qgvX$VO+F03x5w!>UO0TPDG4ZP<$L at L>5zC9T^9{i>_1i;H71bbKT at A)*D+5tA
z=zUAG%^+#+$F8adh0C!4M2l$9bcC|ZJP5VrGNoA}m~H!a#4J04nfDKuDc3}drmPY{
z4*d<PsUKX9s=E5THly6O2p*uZ8D(E0 at gf9^)?*kZ#xQjwgt&)VM#Y!39|R0l{Km(?
zRv4^JK*u?=$Snc?E)-jvl*iH~P*LG8ME(fOK>Wr>us%F*Ddx6CEmzTR&}^>{la?r|
z6HsY7kx%MVp(v3-UaaBR{8Ws+mLy at X?~=$~ze-zw!D6o$LZ?rNvDk at Vv1RWr9mydY
zUfK6z#EeKlT{0um+Fzsf#{8!5VU)Kr+pC!G!=zK$T+JT4dRg!7VI5`810M-4eC1a<
zUBRPgfUUgjK~~X2t+e`%9(KO!9cqw74KU*G`z1DbZ+OVR`!F0P`o;JL*;{-i|04c@
z96qiGU)w*N|K-*E!{H&}AFdzv4{FsA*{qmgcx1jWnKFGCCqW1S0bj+ZBFD^&(tXF6
zsd1)BT_Jn7LrIqG{RAIWCgYwx^r#!Zqm#WgSe8SJBxt>3;uAh^0mg1mLNNxVEg=q9
z{_MCo6v(YlVNP~F=FDX8<J89j7#WeU at Rzt;G#@#=2rf&4hPZoDTeIWzG{NMR^HIYd
zev06ZTwgCr-=i1!SdRLd_$<FE1<}U^5Cl571E~8 at IKmH|meKrmD%2Y8<=0d3Hn!i;
zQE13%0VM(P4ypstG^!7GD37E|Fije<Fu`p$1~VnKen&)JuDX9>rHJ3aA7TjSGVY^2
zX2=sWb3Vrt_Si6s?Apyd&-*>kF-PObtz at xj{#gsJwts9!+CGD*Xb8<&B=(QBxc?0s
zj4OrPOM3S$%B4$gnRQ|-Xsgk(;(1@#bGDH-4Lr{s`&k0Ed2<bT$^VGpkLqp`0Y?JQ
zPXViuq(x)2%*EFjl%cP}JPsyrLk{`LW?#E|k}@<~D_Kk>o`sS96Pcu*zoSc9QQJh9
zxZL(bo|z6m^C{A>PX$hd3)6!36jG>D%Fr75$rb?W&t7~vy1u3i{Xhe>Mu6T~HS{YG
z53#cMGg<~C=afGc<P`dY5p?eq?rJK?qE_Ogk_b#FQGY1(b97rZCoC2+V&)@AplP&4
z7=uob_TpaIJCPQbjC at TBL@6+14oBmk0TSM1rC%?5{}-<FWbbKFgyaa3&jF6foBx|i
zr`?Ik^o-831c(bPEz;Y3X*y;ZgqfuEh8<7huDxEKlg^74vC37<ak}Oxt6U=2C!@x>
zLfmzlEzRqA58D+Vm+K#sc+m_+jbn~ZYsGP1X=BcwDURc;;ta3M=EcXEs|)Jm-fg+w
ziLE;xI?kQYF#BdbcXe9ZrnGZc7k8dvj^k5KvYb4*!H`?R4BzFh<0UL*p*^Fxr|h6|
zaGJG=?2%Gw_^Rx^8Dm)?In%`4Y>75O0NUkEM?2y_h6!yW%bKoUjKsS_|5Et;6mVlV
zD32xUsS{z(vQp5a6;lbCJy9Q1B26Hz*u;~hJr(nz$M at eD+5ZCrFy&2YD`A@&Z$zRO
zx5U8H8YgItp-1j8vBz;ClsnCA(?)U*$?S1lHD+1svAKX>h;@sN{_iFP&c^vOzat$E
zgyMat{Mq_(ZWAxWQ6wslO_$yAP#<Dw<+1s)=OS|&7Z<DdzH#MxwdQY~M&BX#aty1>
zgh(kBNd|eB$n at l);DsN_1lsXAm=2oE^)QG`KF?4!fcgOSK}oO$X-PW2SJ*=%t4to@
zpJV4)=${@i_)d9_cGpMr7vSUeF4>!g0$wy#8Tcx%pxyD{S-;JePL;jS#e>NiaPXyO
z*?Z3zyoO- at R$P}HSS)+LMi)Pjy&1Fz$UU8KPT^T5e!n at RQ{MEJPV5ajU=*3fe<a{)
z+Ens%E6A7|QP}e#{-jZ5R3yneVNkNKniR%xFAdn6XrvJ5R$k-=M&3vif*A)q(<*Gj
zC4lWX^T35QXOiD=ADW)9+4mH#y)7DI0o+QK5X>=P0|G}A8Om0P^=?%0M@?Wv6EqZI
zj`#|?V<ffrr-<%1rU9jC=PoNtR-eHDuSLBD-FHqZS@|5pY(hMRo#2n8U`Vt@>=jx(
zT%3l*38MH1<abl}qtkFecj2m5QIg-T&uCwpO8B6#u!<1RH1Q4QjQ%n`3u5zJAP7~H
ztGyUS0NdsndG7QY!#F<A3>SPUNUanI8Cj9pdaNdUl4Ly<&M|8{ON@~?xvc|+fVItl
z%o+ at 4zA+RLTRwjp$hR@$HM#mIE{cudEg;f at oW&i&(0b<5Bz8jfel&(gskJXk<+e1r
zewLo+7_(SWDjTdZ$3bN~TWZGP{#De5ww{jepVe~PG>~(GcPyUrmOL+o+eX669TN+0
zLi}iWDW3uF{SokHd*%aYf%g*<NouShe>gF)o}$HH3?>I*J_mK;WbY3X(JUKzK?=_u
ziO^;t+TPnQqri}?_^L5MU6d>$^JDUsa=2Fp!AI05h;E9^f?cd75K68wj16>~L>cbU
z$}!h087l!B{r5|Nx!ka9I<GXcPGDwDc80_&sp3KjI9szsmXJ=+HZKK+YzEYTV#C;7
zjMuzT<(P||EGOC81o&)g61#T*5fH0|V($UY4<S;$X{%0WSq7yk(y}CJnVDyq`5cp_
zQ#t|8Fv~3ax*<B at 4;a}4Ce?tVlBow#1Ds*(_vrXz(=ZDhcE>4Adj6P6Tp9RdDdNh=
zA4?NgCKO3tnS#=~6i8vHF-(fR1>uF^(2!&5$ql*j;>pP3`rL$=;v#b$BITbWDb0E$
z3K<4vFwre52QdDX<SmPV6Lq72CgE)k-Oe`&;)4R*$>-zang!G|K8LO!lNhie&m2&V
zHFIy4K*-<$${Ej_2FAtrJu-9=o8X{0JcTc$P0()w?O`BhR@{@3liEEU<Wcs1fCg-#
ziC3lqbLD!&J*dgh9msTLiaiT at 27#6v3d|XYOJC;&0K}a*v$#jDE=CS7G-tq5?^@*Q
zJcC*^DCX5PRR(#+HB5{rPyStKdyW|ds at 0G_83#m!V)M+c*)R at GxN=bnTeD>eL<{NR
zJBDkgJ{b+3Xbgg=(?s?GBvfnmSSYBZ?zGmEMUBd6|My6!y4b{yHR|-O+2cebVh}bh
zkd&YvNIQ~Q`Ee0u<zVwxgK?au))A|<VE{C&G8t6NfOdM`bVW4=-bvDW at c$Cuk(9Tb
zq=1Y=R22xk6Q6j3MDb9n)=8t!lw|}YF1}+qdQ|n#x-M|e0Apu^fp^DP29 at T?_$G!C
zu^@TD<>pE=i3M_hmA_B|6)7^ize^fU>Ky>}4yYjO6NT((#HyLAzf!+X2F`+zWk{n9
z0a)z_FAo7P=h6;ZW9Y6!n%Or1N7Y6BaHokm5bP%O{DWi20Lfd%kuOsQ<8e)?Nv~cS
z67$uo>OUW)|BsRWzYY2yW{-jXFOj19?*=iW889lvu(KEt$pG)I140^4UKEZ#-=KaK
z(TovZNq;TBGI7|iKt=C6ail@&iBECcgY5kn`usIIV|0(1$>fq%)5WXe)21aS{-}%U
zr1~R3#PS*r9GC*gNdcOv<WuDO(h*D^O;^Xl0N5Opnlf+=V|kW+rm^(cfl%NtkXA!|
zQGi7R at MsLcEDd0y2JjY*ay$Cy9s_|)le(|(8fbj~v(b=!Ki5Th_S_K4!W?<)pMjF<
z?>`l+fr&w35_C+-ENxal9(!GfQLeNuNm^&-4^Xd{qygV4_5k!c4Vm|tkv(Q2LzSfd
z_#%!GV}3zbji?Vy$IQUe*8mg at 1Poc`boKOQG15sGyf}McSW#|Bjvnsnq1 at auYMJ&L
zSuM5W@@I4(J{;Tqc-l-uq<U<aRI}1T=`}*&97gGZBz|9tWsyl*gyRA^mrhvT)`a~2
zsE~s;s{8r{mB^TJI|Nzx;I)0aux%J*%>&PKk0ffy4fd}KlNVD~Z at +tV8Mhlp7TJy0
z>~QQ=Ivh7#re3^wjREIYivd?e2E5FK5&{Fx!U1;*K`kE^)alR at CJrXt1!|Ir-8zUp
zG{XbKBsrt(0RxBYt%n44DpNp&f&S{l1Dc5K1iGm^`lI=6;P)}Xcckh=7h{Ec4+=LZ
z_!JcVoVnIRFnjec&<&LYvvY^E-O6*tkRIF&nEe!0BdSe=j-AlyYZF=mf&en}NIxcz
zqWMnDpJD#SC|=40ZhQKJ4&1s8bBO;!Eh)zdnfEtnNH2j6`x8wKO)%fOlqm0L4umEr
zHp at O-s8A|Qh7A>b3))=2c`-LXNiz+@?3rTD0kh6rn0$KHW}I-}%XU(=S&IW7>g9&5
zKgT3pLv=0v?AS&>yS8KEXba9o*=C%Yvh6e-UAi7~5sqHAlQMTB(q~t!6Yj$!0n~h)
zpUg^&ZsG}TIu8YoUV*IoV=e6w$tOm4E6U!PWOY+88$2B^b5bd^#mjkVXm at X>Y0ET9
z+7%juIc5>z7>U1yU at Ve@ImuLJr$-R))Lbu-SDMtMbmb~dUxh#zH;8$0ZaD1Nnkf5?
zcE{C>LB{l;opu|eZe!Yr7fu72u+No_`Q5r9Ryd0nW`k^G4aMYJ!4&3s5%emW4k%v2
zV~Ie=O%r2-EzkuVs1qEh5ge#R4g~Fw;HcP3$N{K<>;SAdvEmoRin8 at V`*J<?CU!5|
z^Ta$lvU?M*G=_-1e^=Q?wy+g+;#R10 at gyruR`DgS+AH$$j#LmzNt>d3%*cZc-~czK
zTWMEFS~|@9MFMJN9KE?dL<<wkX at eP&pXaB-e0f69o|;-4TA|UBuS=uZtv$^Kg)mit
zHo4eApIlQAhi~P}^42 at h(>jx9D+5Llc#v`<z!bpjR3|~+*@QKBX(-%@4JwkXhXUs&
zL!XKAu0Z17W#5fh>`1X51D#PSQbc+~_J#G>hf((Sz{TFC8+E$aonXdDel8WKxs9LF
zuo%>2<<r at Du>ij=g}Zt?x>)WsKr at f!&fuQp#y|b>kAGwfla)Y%SRX5x-|?=}n#dN;
zWk+XU{NMnwwqOC9eDo|^xM(jiF_*HDK}V0aQ4D5x(_-_LsVq00_B1S<M)oC&TCS~;
z`omSE^0{K+Yw7{Y+F}+GChmYpe8)pQEH at h$9jc$cQAjD at L07Szi6UN}&H at bVMW5gB
zB#C`4%n7<s at 5*hcn7F#hb1}*4JxtqcWpA^DyS4o@?o+ykq&C0V$~`dob(&c9v)ChU
zq+mOqLU;{mIaoESLrp=N_R1M$p1gS62Va+p;o3vAc0*eJ0IeemEiW=^svNWnEiVG=
zovewOW&lvj)Ad(qd5%H6-xJXTZGufx>z^K=kSCZUv>Y5xaWbVyLCcrU#W(nx{0nYD
z^S=yLJZDy{2UxKYK?^P4Oj at 2Jv^+;>`79gR*<C*;9R?FC^n5Gnd5+NYokGur+1*ZB
zzNMD>AQcC at 8_W?}o<myRJ*IJRWIhda6l*FUnbg-nQfq^bBs9N3R`#N}C&zN}E%kZ0
zJ&=gDckJa+%R9kbN=Wg0aS;PJwl3M7N11td=GC(C-yEHdcc)#EHosn^&D~>3f7Cf>
zkT6y6xtr4To)scRKU<{er;E)1S^`~5(TkR*t0mm`jZUw3AE1(TQ-L#D$?vG7Y$~u-
zD|uqr(uc{?<3^7B006monQUQEvU*_n1s}2h9n2=~nBgunG%<r4-ec57*S=GtuNE}Q
zLVr!TqYBsD9MNUeKMck!qekB^<sNPSjaWb1)`a^SMDlekp9i#O&R);;joNC{uy_4*
z&jf_ at _Q$_#95!6pTHae5Z7OT^^%42pEvzg>RE$~+7j8o&`G27Tif*GN_jx0&4jCtw
zlTH??avF6WH9a{orl)AGSily9PZh at w<Yd#P!_8!9VwOfy`Mh)(SdiryAu=hl`Hp$k
z`cAo*3t7AWDzYZ~$nT3qo`093i#%jKP=aLNV!Fils(ctZTvL)pMlCtejaxyJvyPti
zg4XlGbQq!36txdq*ON8ig*HCVCN&X5lW<~U47usiT-+r(FMH&p``1%kg2}a<q}T_x
z^<pDYAx`iuNBMT7kKZtk<(Sw}zu`XRogt}38em({cKQ!&BXh-eqWSc1sR7mX?_56?
zMtC5392$x={JV2H{8dk)MvqcT+51<_8;?><+4};N3gwi&zlCd|W^WB?Y8Ja at RTn9Y
z(JOk-<cd|S)sey&eN*R)^-hW>rt;P482v3;&ntSF=Sa|ThAd~nDqf8iPkNnsdU*LG
ze8V*62>GiAp>0NBZ4zs<^pC*>E9N+ZS^8WXws&-KaJdynnBz3~HvbbczNN&RoxGw)
zuAe(ST;qI`JA37N!?$Ms1+8k0<Big|K(`(Wd8RwV5n_(^wNn64cM7jK&7ECS-jo~6
zkIr<RkvG2%_48#f?pBuT9dB^w5$R~U!RmPf?%qt#wuU`N2uwn{<Y|`cbEWi5$+JfZ
z>Xm?AuFsTm(-S;7aG}SGd*LDuFJ{1n0WZD=7h~|^OK=g77n9&30WVBSz?du7OK>@6
zW<_V|U$~=l501>zZwbKlois{EPsVw9ivyT86K2ewURJc4y<TyPT%T=(IY(!W<4w8#
z33&+USL1wxqP&@&cGkN#jyu|wgHx|u&tJ%bBI2`6;|tx;KXaW?U(tzWc|MsJ8dz}%
zbB4>w|EIGKsg>utrPi4)?6tVpdI*#lf{c*mB+pA>^9`(-XC~7|if>@pjSG`=v8^k_
z^=NyvsbT2f9)&_rh at HUhZj+W8{WFZpke+$YuyXg>DSTNvU$}}FECNPOWVv}AUBKLl
z5?{8!+BT&V3aW<2K(}%=@`@+$)dq|v_Tml1Wd*Z%@flve%5uVT9&9O0 at cmvRiB+q-
z>2~xgXrs#0{V5X!PKMB~M`(ivG~xwwExD`t!fZ>cC3gucU*$K<5$nStz4esbV4CUb
zDNSG<FblPGl(6L4o)0jCkZbcB@<yz;eMbGs&_V*lBJ}k=GZeGU6sMJXQmHwVo at sd*
za|<C%EbJcArkzC3;VK*VhQr;buGp`m#q$+LdLJB#lca>k+>4iGCeX<d`0{0L<&q?C
zexIlabXWo+CUrt&=Qd`v%bNmd-xsd3v|CTHT({*g7^o#_Nj{oeJTeBPLu!l6`U6vi
zeoto5Nq!2qoA?@YMsJxOy_4*_UTo6=!(XBSS~iU}TMk!s)B5yDdDH4Jy~Jm<qD4-!
zHu(;Xg0KuBOhy^WPhks}jE2yw(;$Es5!uJce$QODh;LVQKhF9?{g{AS=BAB>w5X{A
zPwZ>=yiSW3n5z;io!gq}9nmBXpq8z&boh=T7X(i25u9H83gMJXIOSe}(;=Dy;R#l>
zXF*%6+14aAsY`K>iIxI$52wJ!t_1^7Mk%neB&jTtSnHL}i?oT8m*Ocxr6%>y^itF4
z_J=*A+KUw0$Iu>AXr7y*?c0Y$GGwy)VDxIgw)WVFTbMw(&|%Piqq?gCEB+i{<D<YX
zMnU{9UiFQV*SSJoNhEW at C>_znx~k#`>HOve80uFX(aW1v3|({cz)qmzE?m&j#S7Az
zr(LdJV%7748B<>81=-flDeYh}_%a(9`pgn$F5_SoUA-l2MkYwOuh0Dr?rg_6VBs{&
ziK??CgGb9 at YJ~F^f7TG1v+9>|@;MkMdk at BG=cDo5<!IkFyJ_iUbxjN3`V9DMi>rNO
zcN`b9pa%5da)YZKz~;@7>sxA4ta8I)xxUtPow_1i{R}<cz2hkeo^nd62Ew`$Chp|w
z{phFbt4!CcE9i;e?Aw@#4+6sv{4+#Z!;)_q?Imo<O-4?$y}S(S8c>wC1?2kkyub}k
z))JUmjnfY1Ji-dxa`l&xkOMG;NjQXpyga^e5zAeU#<zR{bGD(UEwC}yaj=FAEb6jV
z%+m?3lR3MX>oiREj{EHrcbx%kVsEjQj)&T~vkknFUhM1un+242v;py_oM6s_+<BV2
z4$2LNOmMqkeQ1{lfCE6T(|Nw85|%Otz<d7Fzf_O=WtOc1Gl}y-Jt-pTU+xm?F-wcD
zNmIXt=~6SrS)hJ%(>_!E{v%>^WG}wph5pWUBqCGQ&tqb+KNO+`0(aE_m2PhVN|B!8
zrUze(?As|OzrKpg|D0*4`|@YvHb);d4R`2cOoMW8?qaDavVQ`o>}XeKU)J`cfdk{k
z?R*C at n#4`6Pr6NrTuIO{AMa1pBz-+1Wl!wFuo4tNTnIq{<EP0A3?!cwACc=Xuw`yy
zb&p+r1UJCuE*I_r{V^z+)Pj+~vQ={ZjAT}x*YN?k=48qG`jj`|PMsZHzh|!nx)Vrp
z<$A?55rkC};LYEGAq3O}lwl}Vza{p&Ud8^c`D~MNYs92zrhe*>F!ghVA4L<>eFi5z
z{h^=!1C#j6!6`9kyP64Rf41zq2d#fDQPI=uHz)g(rpxtu|F1CEN|)T@#at(Mxq98F
z_-;iO#d~L!=19Dkm9F<VFy6z9Ss3r(#oZY1;l)=m-ouM281LalGRAv&Aw#^Eh4G%=
zW5_sJ`l6*{FGYJNl|em0t*qgWBM`G at w6lWM^5$~%hwX^U=1UR!#@Ob>aKtu;uWFkE
zKmDS%dF|zhZC-Vi^DZ>|?26jwEU?eVqxSi at u+J@IpO1rGVFr;yEL+6wc{s;94;DHf
zSkNiguOACm!f5TsWO?ZVzHG*nUiSKww^$Zf>TEDO5YU3Xwxg{oZUghVhD`P>J0|SG
zR)2SSFq1MRe9dYY#CIQIYaVnjnfWucZ)FR3aVJh0GN)NCi9K&E<u>+r&d8##8B&J8
zqQ7B4>jxIS-yk;MWP&{(Q=Y8s5zD?_3vM{-hYI82qNEmgP;7pSPPH>;EL<*EAH(Zq
z4{kgg$32}EfLP$JalNNmepjdTI#|f}l#k;0E=q%W&hQ3Qv^jFaF&NM4IW<YQkuPw(
zr>Us$3Ub5K<N at rOKX_X62Q_im@CVC>AK+#&gXR+4amJhy=ALNe`$*Hv9^rO(LB>8!
z+2#7f%-LgsAas=tn8 at sIf6fqVWv=$f{;Z1j+?f?;SVeoe6IZ=DSk at za&LZ~MDh at ol
zFP&oYd-S|;f!M at nWcECEiO-oa<uyLX#_!8!&L)QT-kb%)y`L8!)HvwR3F9dro}K<&
z3FcFn2nh%6kBB6nmf03bF#9Um`#UtXeIU(Ayl{!7owmp{`Hq2swQB|z*Hh5`-}ad{
z_8H_>A?<)TBMGt0cQfblh}c%o9+m&$4r8eE0%p@;La(_5s4s7ijTB|y4$UQCYK?Yj
zu7rppmuIH)M_2Kmk#YWuFwRTT!@Nqf&P7;osU}4qt`gSy={;za!H0{BU?vg5dP;bL
z77=VC(uELFud*BkH#3*qOq2>9Bc?HPZUun1 at gkx^(G^tqa$MBYe0p_HgJZaVB`(37
z(ouQ^6!FS&?1>%6$2BSUM8 at I$3!-l;Vd8 at CLD?(F*h5c!xSnM_ra8>-F5&mbI?T+G
zBUzuKspTp at iDl9}qL2o20S5C14u&@AIgK{H#?3NU&0}laFkI$2PP_Im#rgvBmtbhn
zg?6fYF5!MqB&Mqqw=b=8X9aC5(S8=N!d0x|I9umd at 6@&^fjmv_{$-52dJ3EY`+MLV
z6jW2e!=GNw<~n~g%I1ol3>U%X;v%odgKM5nTI0nLs&|VQd-<c$UNA?QFuIqKmRt7y
zLeKyW_#`yolTZxF<*olnxV(j{7z}gaBWm&`VcT6sp0$eKtOmeW<jX$kk`P?YWTyL*
zlKm;^;GFz_Ax9YJ{tme$T<5eeSC0+inrtVST}$u1_-3iR`Q1V4K{Lo|$Dn`%lucF{
zxz0=}-7a|=!EY)p;5zLR at ETpGU5^*wI_+_I0j|?-zzcAl_Az(?uG1cm7vMVW33wqZ
zEyhf_J`OGo8Rx-uzAh3a=OL0MJmoF-At at claX21hMjNXH4~j==ur~Eu;pl7AG5+(v
zDJ?#iT&Q?I=n8gLuKa9vnuggqN&VHQf&ySUZd3i3jHmZ)rgq_ZsX%}KCe#hK3A1_r
zO_<+fkEg=*9y8Y1lt#sr at Oyk37VD@O^L?N?kEi4BA#Ja5Bc-7??Y>bw!!60$_^`?o
z1ju$TZket8$l4TZ-^6nSZd3Yit?acni4uehCD&K>5<LjgHiPK?`5Wncn@!JY;Ofw^
zZ9?5HZlU<V+E-ZBvma4v0o%_XGxD)P2fb3b_g<Q;C9z*DFryL3Xa at hlW#-t=UYZXj
z7535Zw>X+glv%aFo(}N8%+<*EVLfY8jrZn7aFNTl?OOt*$eQWe&*;(mBV55>oUm=V
z3pb{D4sur`D>85b!7c{QP4*kUeYBtX9uaTDZNXzhwEdfYEaP5|owCEsk1xtGM_u<S
z?fL#+;1mADFP7tvqlvv@!y3-#VM^1;E1F6&3|r+*4~;>Ix*PX;`fVhLO>)Dm8t$ws
z$(U7BdcW)~!e>6}{Ym^Q>aiyj>|Q#S at y7ZY8E<T;1wczQK%yi18`D?W?h)}>Sm5ud
z<F8P!PvR}}5{<y?ZB4;K=YHnYngt!t(wodhVZIMXq#?8WC2T<N#jsxxH3#+V6?})3
zd7fi0Va at KJl0EfuBE&W#822<WUp9770pp#qy(D8swY+I15yOE4u4v+p=b#o0U<Y8o
zxwK#uzh&<ns`o5&J}Vu{5absuUjJoryMafbjqa^1P|KZA at GRel;>DhzQSg@$Z%%l!
z-TM~7k8)1Wv?}|wo*+Wm3M_1pAc)xwlhPe>{kGds!sL4IB>YWpF4foI!=Z at mA-CCr
zt$Oa<Ent+exeXA{?k2hg9Z%Ehxez+nGu-h^7IW>!{H8+m`>{qpLSVljqYLP_9EVKY
z1DrOY0%VvQ<xQm+|9NK{#JHbaPHcV#s=(0A)ulPI_xt$F at icQj&0oRCK)=`7eiEql
zU&(lV!!IJhDl{lp^isB$yPko#m^+_lg2wVzTwCBTA+b2&%_|PhgBd)dBIXq&&NZNx
zjb)B)JjV!un)4}cVlS`9-t!Fn5hHWea+`@cpI{X=%;B{*MfMw5foS{fv&NCNkt=(-
zLXccf@!f=YNih3GG#MO=GnsQ^)xa#cue?e9k%aMh*s-yyVj~vGTmPNnwT;+Vs1by}
zkL%@z^)KrE<<d-#w=yy8Bb+>5Uhx!!#as0=o!d6-lN+{`Aqo(piVN$pna-N^<GHJb
zwegB4EbZJ}%^gpn+W8GPa!;-NLQqoB{$a+MG!DudvbX2~AE{k_p<mjERx*OxmWN1n
z5jLhCUZB9*>t7gVN4urj5HIB;)DmBl`-0rCKmXfslLx^Ql`8**&Gbr8&k1>;7ggX+
zuiUVks?5W*iMZVGU%o@^@9z2VXdT`|7 at 8S&0!=n*mIMcU7DxoxKCaK`ci+YaEzPW*
zO3aVTFEopB!Dvg^`WpQ_U!UjI0#9943(@5e?QDp7UkRvNIOLy^A at u<{U2R#)pe#4M
zUKz6X&Ga;GxC!Db(5$&H=`lFQ_o;KBxbke(!TnJu>uCZWZ`TVGu6`S%2r{W0OlrM%
zGO3=>K)L#b!O`cPWN|MIi}|pPx+U8Dind#E<@__PqxwICbe`3>)y-)4M8|-i^%%ss
zn<ZVCBV}r~B~ynD3##<O(^!6iyheYswH6O#nJ-~P-6#pmxuHJnXylH@?mvs)NWV_e
zZ<Q43QFJDNP-ph5bQb8|10xgW=M}WH>0+32^)rJQ&t_`2QGI)m at +r~Ep6AlN!k$&{
zghv#g3H^^$iT3pLrQ!WRnP8cSzGP9<s!LI;QSr<b4L873buaBKU*K%Bp7Li&B`n+7
z79%h0&DqL_QsUc3&-xDeQ@*p|9MIutcL_`ROOE;uSQ;0--;6;7Yc0fc>|DKaLzaGT
z0$J29>cVk`7oTawm1f^5&)B{AA}ED$K}V06vKligdVm)oQ?<ATRME?dL%g_0ZdkG_
zKJ4hqaCNcbGZl#$#Ua_d7;0rWx at 7-L*mMhqPW$ix$?j5-Uvq at OI&8*pi07D@>vYGv
za>Evkxe^cadBzg99j|N5FgrBM^_%x#<V7z5 at FHVP_H`29jy<vy;T*H&Xa}w}o-Se3
z-aq%A-mtTa5lGqlOPr26LhK|MfX$Tv&N7&BbOR_Z!1r!P_;Lfm>gY;rFJYVUQX1%f
zg;#`d75h(^-*Ccs{z^_DL}QQ}o}jLRj^lW1c at 39H30}qtd22`??UMt2Fw^3t1?CYD
zhEZ(TegGc6Y9dM>!5`*o=Z<zuFk?X8@>O(C4F~oMLgDKegE6Fv(kYp?=^7)X$`_kQ
zCrW(te!`>O;y41dlIxvEI>P?B$-O1)0Jc;HCJ<zK%dg{b at mtjH0#HhK96K2W#fsYi
z_6UGQ;_VCpP}{9~vj$LZaJ3<8f@}aH)s8_WG(l?_Isb>MX_Ch)&XBZmXNUyO7j{nu
z0o#i^ZZb}|Cz6zsU`E$7!nAP}<#EdznqTCJ7Z at wL#>!h?A|CB*2Ab^^WZiFyN}=T>
zD{jg-DsTNN@##PlQWmW#F{a}~=|o~s85pn8M<dRI`p+WH7Zh2IG94OWkSgP~R%#D^
zo1|f9D<IP-P_BzXxsw&|&Irg`&(pvT93+%?k3u<dB+B^y-bj?k{hy$m7(qD$v!Nj1
zAXN?fNx=Vk>D;+rr1LDr$AxqrN9mjxkxumuoZxB$1~W1EFIfqTt4?%Yhn?R%Ec%Ip
zR9pXB5TC>|Gl5rhDd)y at e3<xl1PeUJEg~uZ3Km2~i(|jQV*e-w9Is*V^yL^V;s}el
zSS$_^Er{jOhe3a)KJxqz^n52-ii-A#aJ(lCB({_=>Q<eA$rO?a)pzNt??)%Yv^wbM
z9hN=7Pu}u9y|&S5<nTvZgwHZT7Dq1(A0!?q(AyE#kd_;6_<6FrLRf=+!%!I*%|T0l
z2{;Cj`z<<B)f;M)F at f6*rEjt3VbcVrAjcd<1UT|}tUzgQsX5V6(c{lf?-jtgvqy6v
zk#U=3Zxg)(n;>t!j9z3r<^e2+mF98Epi$n6 at 5KfkAw-&pG~tU8>9fqH#Sw}UDHKB_
z=V^hYW*WN4NjT4N*BQ+~v?G<C$4qNO#asW9pCC=N6n6<3?TP{i+w9Mt86gt=Rr*b0
zbE(pwQ29+wWW}3JH7R4Yu5lcH#@a^B<&BIlUqzG74j at I9gUMvOwT_5{9Up=U42%AM
zlWL3+{NFBU(%JD|33I&VH)JGsXxI at gG+9Uf`D~=vLM-Uzv>Nj`K-79jLo)idpEZn3
z0Gu@$upVLuNKF#7^N=H>oQLmc)TCqxSTSQ&jZ6biqg7uY*5<2?Xewb={1%Wms;N;u
zg)xn$x36~CMv3?MYEoqUT1|8)l}3M|q`eS4QzH5fkB5nHX#~BmTz{g_Fr7bzDJKXJ
zwY_ARt^QxkY}XJ)@F=K~T8{DK`b~OGB2QBs)Q?j5u3jgiyOd3+2>-Op(M<MfA&93t
zE at 42Y5k~W8I}yQ|#b at NrixDr-g3XjXZ<sZoZ>Hs-iXPfaX3%H(!pwDs0Y2W at Vd1YF
zy>k6Nu@<zgG2Rf>s^cQ`>g2_pmQEbWQ#2A7=hKY_gHY>#&4HqWb3`2+49FB25I4M1
zceA>}*Tf)H_NM5mWIB|PPXKH!Ev)}*5LyE|)1xs6I|;b_OLUbRTG05t$p*lMbo575
z6DX{a*3~noYLHIRaUGPaA4Q8&zn2!jTt=AM?$z&&jZ+=%7+Ic#Xo|uO?tnTejsH5K
zVuI955egNzqqjstO%jA^lD+t$7bMiAD4`AtLNy_wzAXLU5~^tgq11BRBLMPGLT=a;
zojynd%&|Wj;R^)RqRYa5Xt$Y>{RPnp0#MAb4+e>o1L;J>dW@&(^ua(VL9TD4b&&PA
zn at 4oAFvhACgLr!Pk$4t&j_l(Z5w&QxWtg5_(g}6K(AA$c!LuEhQWwe&qihrtp1pbl
zvb`;$=ap;ahF|IaRjtr;9H$8W?0Y~Too&M4bzI`kh;GOYdk|>EXr*gTLIgl)ehB_Z
zvxx_%Xff+m8jp&1NOX!I;3?$A=9p*)KhOFvNlr|(%sMb$22b8`Ni*dYNfB#ql(#hL
zqK*o^HMCDLT_Z9eg>aaxhpfjU0m?ixoxd-PIy7cGag;TN>(D(F8O5u|yx1hy2MMov
z)I${4zILq?Kk6mdpB^5>lI!SwXQv5YzwVwW*C*s+v0)-0X=5;|mf6Zc*z+M#6BGO^
zC~>B_Mtq490swj`Au3$x^)9LXL)YBzFuWgamsfb3Ew^E++DW at kCg90`J7{BezrO+3
zTSDhQfWCInF75u%89cnz)5CY9P#O(lBg%8&?0%^p=6xc+5lL!HfRe{W3C=UQ2fRT~
zNie%E9uI{kZ<paY(>)h=jp2mGZ?KjyFI_TM7w*R$*@1f!+|w-eq<g|hXkiD0XQ2$&
z8F}k7l<)DJVJBxg_X9w=VM$$lg#p??LF4+L`;NK4KhxFazD{m<f?(k`q8%bNQH|le
zt%T99iaS;KP0C}_^s?^*+K*GB?5{?u=sfW at kgUpcN`Ip4y~l`hmMU*+k?UJn)--hw
zZZ{l&sqqWAouQ!tr!qMujDE%8$BuR+9N#q+m&dAU)y#1k!k}V^#20-5N_KMBX-p~;
zC65bA9=`@9+y6;Q9tQ`S;X1zI2SCN+8Wm3uQ}HdN;&!0oS7*A~zW^2S%>*LG7X6jP
zz}=$$9n*z$Z9WqY at 3|fgVEr#m;B0`}yD;$s)CNV+ZwTQA=pE0I?U~JYVY*UkS6asU
z^KJ>Kae?kQ|LW^9USkbdqg>BUaF0o8HDtUlZ*SIizCGFGYnHwEeih#uodb~-`aQiq
zZ|1pXUT#E7v^5gS?+|8aI$wy7<ofD}!6*QO at pXw;YZ(}GI9JSbFwwv|7?pERlBhs-
z=ypBYp<SfE1!lew?9g at C?K0?gD|MSCv0O7Ag8`il+o7#m3t at +LP{#|6Y*)k%QD10>
zmc`nkf~Xx at h|e`UR1j;2=mFWGWx at _EBRdqIgT-Kna={MeM(t3{ddH~}_H^}UtjG41
zu-(;HtjAVgu^x*RtG7|I&ul%#w$h^PF~LHJK6cTfENu&P&xs-ApD0aNO=KbZ)fjHZ
zAuNm%vP@#-K*)(mNPJrkz)+k(#EWdD04^UCqD#MOJI(1wmX%_zxY(q$j8XrHsjpXY
zM-^@}$#^Y#<Pja#MgnypB2ZgRr24xe`2~+zY1MapkoXozJ|RMb*;{K?R|E}dCinpb
zc>m*YSlvD(R&y_3Mq at 98WuXyR0ZvPOpP~%v0Vvkd#aa?ShVIoZxV$wAgS+)tU|_fc
z1HKha5U)<5b-Uh7|7r<$%TiZa%yUE;7zeTG0g>do0mkHiN{1%@Bp?)36S?73R8x2X
zB?M6Tsv|yIh#5*B!9+!AW#>CCDWP%N2n8}CC9ze62IJ%{>rp8^Z2)Q>^E9ywF?tDL
zqN;gKXgh>zwj#g|(9C}2?6?tvFoI-B@|JGeO?40eD%}PVX#GD9Flod9t$p1k5OSb#
zgLzIh8aIFy1LzA5j5^zcXd|cqhVKLgEe}1*ndvzw`#+2!=lBhqqmXxqF$n}fHXy3&
z(0b^86{9m4e~aN?L<=J_ZTuqTO085sN~qSg{{Ob?I?S`Vj`(RWFa|DYc;?`4my at B=
z4{!|*WQX<R%O&6cfR1EfCuu87R6B6pSNSMbJJfuN*-2LX_mAPOHns~<n8V&+t|qA1
z8mZVgtde)?BwBaq)r8ESIY#}`WueaHm!j}sz#NQI$^>;86gJ|UklkbP3##(gmoI|S
zM}iD at xB9z_wEiW&&5j2fy6GznM%v_r=l*lrtH$@>jGSF4VJW#{KU<ACU2J26=;3Z)
z^<N at e^2AoQpV2nTlr#?g&Ee2t#?QoF$^h#rmg at r$$!y0-dw#g8jtIZ|XSA=s>Qb0u
zX>q%DAs(fbAPVLBjWIi;%kRUT(zvZZMcc!<ev&b_gss2M`1!zVwYH*Tt;e;04s<7I
z+poL-FzP(f#`F|5_WR9^E)<2Bd)fm+AAz>C<ClV=`pEakxWmMqN%9K;I=ZwwYsC66
z(VtFMG^B-IfM<tB9%y>4^AUqt;>CEIc*WZ$-u|{3#m{tFh2AtBw*+OaVp;Q9)?8~-
zP)|>@#E0Lq#Mj`m%({*ElPd1S*W<FLiJ$4>M;yVLMMtn+nQs~;KXe)-_%*;eOPnD&
zQyDOA_$Du%<)1Y{38$8SjXgF?I}tLEouAUu at t(CwdLUin8?r6td*>->;vL^Bo<zUD
zCC*EA&_=T2r0Dn5v~w8D!{;#k9z)(f?HmR?+gLjWgBPU&Wo7L(_q})+11n0U!!+=i
zK{|+`ar*6G7o#r|<4d$T^d{&r*6ceb-X$(zMR+Pl4Spw;od^sVGT9uXa_QgXEqf4O
zd%x13AXno_v+RL1Utch52I*n~FG9{H#~$*ky~a-08mobSBTn)N<`9>)G5B9ZX8)gX
zn3b+#rSn<oTn)bRo=m5Ti}QW62>8WQ>NN58nSn2z3hWOTr3G`u%fvVgb;j`dC3Jqi
z1GnXZNKB0I#T4O-J4qWXo^M|p`9@@K<cy5MRNRbw7%%e$L+saLh<!9e{xnRw5yvA0
z?L<0On4&@P|B9%WWh9DbrOEU|?D at YT=>x0S1M}GfbHymNqdtVB6{f0R8s2XinNP15
z=Z~(YeW)pzE~|5YKYH5e{rqO%DTrGujC>(@m^vP>^pA7TXU-6>sKX7G#XY>Zj=9e8
z*(S_{mZ$S|v+#u^&uQj74s%2VrSzwio5E?n{dcG<_<aUY)R#+YH6dIt-UE!s;Wpx*
z?%yh5x%?~Kc?LJ=Yz8`oooCnpcl9Vi2#xhw%+=G;B{@z*wY4XB at oB(n<0T_oYLdOv
zZ@>u97|cpG-L9 at se+h0$36F=)iqBw9IwRVdM|2jS!#t7B#zSZDdu{?uO9MYSJr;(g
zbWIMN9Ww at xGv_cK`*P*o$vA7ue~`QCln-R6X1Mn@%r`7Gum_fuCn^KC$(s+GDX+<$
zbzn260UnLFAb%wMtM<_+*e6F(`cK_wpfnj!a-PN^I!*^3I-ML)jQ}{%om};fE==1i
z0Il2cQhF`uz at vtBfi9!e64c|2Q~H=akj$1%w?fQP#|x8Cx_@(H?B~p)-`NbEdki;D
z5kqs5gYo#?M3y-n=9^<=AMTyR_kqO0V4g1E1b3Wa`AMwI#3nMk0R_Oh4KQWvX5kC!
z`RTr}CsmnwlUyyy0?l00OviCC+Q|G1N%TkxUp9jk??y_ at rIQP%f_=Irm`jq)3({zl
zQ!tn0z2jZBa4H?fe4MW~Sw7A<DQ{kD!sv54d&AP2 at zz>Bd&^S1jk|W!=_<}`QhVeJ
zpaq~DmXBp$ji?WBq~45n+50wriU;m<r)9L4jgfls7#TVT7Zt$MiJ;~fEG?GTrBY<5
z^njT^YLxEBqg?S_e!!c~*!Vinq?2>Mg`bR}_klr|k}RFHeg4s8d>!H^l^Dd;;mZ-3
z$p{kE2Q(^o7Jjc;X|lmHC1afI4UQ)fPJD}HO^X}_EaqtLTe+v**XOwrv<eTnyJCNC
zdqkV4Z?I<WaVR(;qtYcYJ+QYg=Q_RYE1pQ}FGOKaoi!Yc7u(569&bdgyq3P9JVMvG
zsrVHE)QHu{`#wANdfRoQd!?iHW6qNo0A9ZQ831GffN(d-^{CsY at nrr7jI1;X<+I4t
z*9yQUm_`FbquJMLkiAck&JP<9M-*PMfOoeYY*xnyl1GCFy#kz^RJIhq+#AmpnIllf
z4 at 0ryR<)pROauyjn*_L-X`2bE(1I`D!|2 at K!`|klg5A8AuQB=h+}~uyNBDQme0H*>
z*>AWxqiyXN%TeY$LVFjFkeIr9P)PBRi$7+FPQNR_f5(K&t7lN`z{qCWK%B%m8>Mti
zUmd=F0Z7?wWd3#Wgqu<JK1I{uGpO!)P}6!U`n?0_O0J&~$1_vyFx0z5%=8rmIomcf
zFO at lK%O<g2%*MFt!daufXX5LVpA1-!;Ue14n|((;FF?D#Ok{o51VR+B#J50>UlOLI
z$b=R!Q(z}05O!dq|28&?-5>FtkW*26;Oqh9#z7-HAPD%~#^<L2em4<vQxUl&ft;f*
zY_rvl#^=>2K59}dKG`Gik&J|hUiS7S3PHIudj2)Z=M9%4^5PKkGCk}V7MGJice$Y~
zd8X&I?EO<>#M{gVD<6zQ15dVIH4O+3mC-o}MNlsohwh&ZG~$o)PJ;4bf5%Tws~`4@
zO^}Q7Kzi&Mm)72{i7jrQ9HAy(kD!rpsr*#U32;&(u>Hwt%iA4YFu=Si?NW{npa$d2
z#O}HS;>@r*p0|h>&hPkuxt{VDg}c9^$%7d0?St1EFW3(5d1^{KPk~wY-{t!A8AIiV
z`&xQE73_pu-w{wv%(<Vv#axZuU(z_*IWS7u;z-$0x!DEoXq4;UlIvfS0-$k`uzX6V
zT>m;R-ro`8&ZneKo>C>(x61WR1oEiVp3z_a8`dk=9{~h#uovk;OXTi3o9vyPq!Zq$
z4uY%)(eck7qn!l5FA}zaFX?!XzFr5Wxs;AZxi6JDc0;_AJ45zur!6pb!32!r#5pYA
zyGRB*DBVcZ?4s|g_6sBKI*xuYGuv_joXF-M;2yztJZfV)+$w*-Oz>-b_EbwVx6iN~
z#o^X*yA3>yo;A;Ob%C{Tby?uQc3>OJu?c?2^-?A;4%Nij=dj|Crx(Ryz70>Kcy9vg
zHzt)E at sIjq9|=w5quILaG-Kqd<7*z|4=jgk=6RMCKPP?6*R0HVOIGk>&-}aMg&ID4
z0dqZ%6Cy_&g%)kx_52hd{3fDoAftb6h9-oG{i9^VgtGCj<f2y4c2vXiAkL*tB}%_6
zSI<kpF(DH(2G`zI0{-a?k`S{4*RcPQ+U3V#D56i~aWK$rDq%}XSNn4$BG^jS%8Q at l
zu4knV7~H0Bg at v-kDgC#|-r9fQ*HaeY at mj2N49!dJtC)RmRSO=^1rlI}K9tr4V0%q;
zwTj+lM6<gbA|sNQHl=BGG&I_MJ1tuy?&HUipn;S<c00b at S*Ip^ii;P+j))c6g7FhH
ze%x=vV=GEXI_nxSrV7U4U-kSanCz(w>XDsF#hEekjwb7=s){a*H02#FzE0Wq_;~8F
zF`~os7VyHk9bL at zw10lMI}P8LBmI4-FG9~N0!UKer-v07IdsT-O5}PqMP_f29v_tJ
zPqE^rs3OaKpQ*@A*H+|%sK`%$K}BZJ%Tc^}6XV*COx{zh)F%5<(O~LtLV?FWYT)B2
zm91#YgYh>bF&*vnj`jEdL5orJ5!;3MUim=OzKTd&2;QuJj3U%+M5y<qViDQM4K9ka
zL#A)wfh-x#viD2cxv>B-D|tH_mRwq5spAhUA at 9F3qf=I1#E&9`_2n~0`b!P$Uq88)
zA%`~LPe26E#Ub3EoQ~u3Rw`Wya>KU7`6=p(5|&-G8b5HHv$A_f#7W5BbN~mA;tq{d
z4}Ee?{)4B0{!iDOi1id8JyR~AKg`LNnpsgcj>AFb?EYy|r==Ihy?M+f8aE93C3I}k
zuw(nyg@`j%KM_`l&o`+`pD>H}8-1rdrl1s^%c%($aJnN$nb7d at Xlju5N24*;X+3r{
zR8?_$GN-qqea*7(;{+|%N)2Y3C=zLMj}6+U)9T~>#=aKGJp=ds?4tv_Az*yR2r;8{
zp0!<kkF~SImgb{prRKm{1A8Oz!5GUM8Rup19Y*Za7|cvQikj at KQ*YF)h#e0&^X|AT
zMkK;|c3Di??jG?zvY`L_7d~68kXpcsoD`UTUXGA8gk+5$CTmwO83dk1z`ukqx|8Gz
zGrZ|@L3AMtT}J%sVx5#_mU3Vo at BTNw)Pw?ab3){}xsZiU=ioWXm;*euM)1;wb3T?e
z9Y^o%!dG^k$9X<|vc`;aGPLug8QnzPv&mKO;gnO%J5S<-vpMiVvUDNiu<Tu=y}J+I
zDKj~Yqtp$La`0SKV$S~~Do1&E>FmOR{_?yi#Vx`%aD-uJ7kNDJhrxJqeGS81e5((c
zqL-`ZCq#ppMdz>ST)I1kEeNt1BTSQ)zYGi}D(^~c{<N!2jd!mWqTr#4Th4T0$R#r5
zQ_qE?y~*CE(Gc0F2Nm6r656O*FKDkVo76v?kFEUnCs>)1Mry|=kz=G{ri}nn%p41U
z42CUm9+T?0jS^p3f~)Jqhlu3*pj_XsG$(+Q{Wncs?(6*w7aOf!ew4d}%RSL?mJP5s
zl at B*qPAI`~tm2u#*#zq;<~r?v6kPu^-1)5E9M2ukNo`;qs_(<S7OrRJD1%{7l3LoY
z<?FyHJL~3vkA`w^*K1a@%$1(A>im9uujNg-zFBF~Lu_%EhU9;p8;vB|MS)|qcKI=Z
zAQ-NnoW at YPX$(cS$~nEr(&*)eC95A+-i=e5<CyCibzWG5c326-WefmGgx&eh70_Zx
z60Lp}k|ZEW;)o=18c8mzA at B<p*ETwmk$zwryc>@u4t))?6(V_&J5~Mj2=Ul^9yv}H
zO#SnD at sfA>44x?t=$?@#_#S!|`e4hZWBZ5CiQ^86l9+3o`u0b3?ie0Ghmj#`SL^-}
zksEOWcP8m|+`}ZWAgyZO1w1c?@KKXBWD2uYBgFhl|Mlgm{`r#J at bvZbaN(gH+GIg#
zNih5V)jHkU4}gDAf6qj+br4!FpbfZhRW(ykRk*6El_IJ_Jo46D_0iLK13{J2nv4;Z
z(n{aE#$<iu>oPw|iAGZQqS8BzL0hu<4sfeY7p^vtdwvof$bXz4j<Z}4XYnlZ%JGwM
zWch>0bk}Km+0*an1-UTRxOy>vP*Z$9a*{MJO2#9h-(Q92NhhP_*-PZDV*$%io-;!V
zs0%)!0*E)+(rkw5Xtp#j7=Hr-sp=O%=<HyB at h}kQ=^E#GdNmzq7swidQ?Uvazm6|7
zvD{?!<#X8Di6RTaN8a98<LsqFI<Z%}cbxY-1lFz#HN_uC5yxJrPYdD>y>0slduw?v
zRrdV`2#Ir`Qp!;pgE`4}Vv^NUr#?NP(bUsJXA+}(A+o;r<6*J_S{H$=UHINp>;DRA
zgE>!5@@!;_zMtq3Ir%moWmk>6i02)iR^>tAv*xS{W-Y?x1Di7+!)w-|v at C)P6UEh8
z50dLC#n_rCH at 9>(W#o!)jtT>X!?>h^fL9>ky58Y0mV`m=)~6Z$o?bc`@b({*7>gI8
z?a2{hA`xpGy)~}$5vk+r(0W?Kp^txrXA6tZ?`Sd<jHAf$hbo<wX(X+p#6Hg1lkv2R
zw;sZyIC1>0)5^QDGH7&rF!$)eq%I|wXVJqtAtn#x1@)*X>Nk1?qxZ&&2_Asy0QAmB
zKE1-{CF4r&{XZgER3GjUai$aF%t!8sgk0(!5G`SjSvg071 at 8Vm*`IIB$V-zIW0c`P
zM~ZC&Y-Sdpp+wZoVw_?Y|9|X#2|SeD`}aN8k!292sHW0FDI!Y<SrZ{dA`D~6Sh6IF
z)KI2L(ITyAlc$nM6bUVeA{0uNl4hbPDk^!ebI(wDp5OEQ{_p?)em?K}et!4(y3RTG
zeV_e0=Q_)Mop#hCn!Np;v%*-AIzlUJ`8>|#k};ZGQgCT!lqopsGkF+cEcR*^%Hfs-
zhY@@LkxhR^c+6sK;6o|pMJfqn-BHK0(~^LnKS+vwj7Blvc*7>*$Ax8=o64M at J31ed
z5cva%_ADNxAe4vw at y#zqy=Ckvw$4XRW#VDizTv9Bz^9tgmbf0qCNxrGtP_D)F%0-P
z>!1>h4VsK-9rn#PczwX<I#f#PyHx5JAyVVde--x}8QDQ?!EkLsXqKBE)j|MHVi+iM
zYXnkM%|kB{VhE~?ur1zj>b(G3ondR?J8SV6*|!5Xp~La4#Zl2a;xST2Tg=S(7*3ju
zNFBW9xe!rja2zR2*(!qc%tGv=SWI4|U=k#(Xida^#yyOv7A65LokZxco4fGlqFhiE
z1$qAmXYRqkA`zPAaszxgTW(;TD35H8{I~>y3q&Wzwn_eWe)JNiArb)>Fm2Hknmp4?
zEv_<b{x8a6>$nPe>35}6O4g(E at z7b*xE^YkJHM`Rfk)s;_uWLUzGRmHq)<6*kP-DA
z@$O3QNoh86adqgNxTmC8b>tM)$8^Pyk=4QLY2QtJwP*PRQk)#&=Muzc7%_8?5@*pU
z_$DPzWfd8n6J3j3E&Fbw(Vdoo3 at Hwu$}q-7r64(`lQ?s=8q(0*LyG-~?yQ}Ugz`Du
zSQ&^b+(F9(`uLFr%8W*Z8m+d?Jd8Guq=o7hG%X5Ega at OCr_6<jDSU%bJAU4QGWbUr
zL<<Gm&<<a)o1ldPLBgO{BEw`M)3}dmHecIPoJ8lxwW^9Rqr{o|YN!b!d{uZbs(1SF
zY&;Lp`sId&kQ%6?wdDpPoT2?Mx{z;jbxcEF{8K-&aUWfC0x7l<Rf*MV=*VA`Tu3=7
zPHcpG!c75JX+Dv;TE4y=FXl*GQ81e0>WM31n5dEB+VRnBUpWsd_?u{stNUQN2}f92
z&0T3R;jXlxg`l<bNAquY33 at dGsZb^=G~z0#U3yRzADo4+4&z>!%xANIa1=P(i=%u9
zQNsl!V-dm!g&~gSWj at yZS@=d>c#5%VA-nGfhuNdY#2}qfG3ewhq;*{xd3yk9z2k(!
z-ui2OA3G0nHfJhZ?(+&F=LpGA5r#QgrKH>de+$>w$KB5GC;gTp_$kVySRNiu#d5^Y
zyBOfspa{OWkuVZ{tBxRks1Ruv(!x*Io|X{e17k2!>{YxsnT9gJPzU4^TTMnOy+g46
zCB1!+0Tx4@?irl;#@j9KV;X9jqT^i3(3#tYI&?6?|3Sg<mt0L-DwPSgJ|LN at eAXHY
zp4Ghy(xx0+$LZcxDowP0kPaYqS3|s{WVG(IfOOq%X&-%v00Q&odR?^BB&^oNVBBM2
z%^ZD8J!lL=Vn(A=IU#@_Od|dmTFYJKGv=q+*!mm`_gG39JSXk`fpHGDLsL{JMi?hX
zKlh)E5A-%#a6m`Ruoy(9Ig#*1A(#&a<;&<>efUUmwH!8%d(O0$3f;tQj1qG3#qqz|
zVluk at gmd_GxglqD+>o<6Zb;_XIIH7^oYiqd&gwYl)MoBU;fxR(BgC2!V!@e+gZ>Hz
zdR9b+gB1O)2)=a2U6tlqP+$rbj8gVaaK^Kj6o*v$8JOVTTiitVO at PlIvwz@9REeDP
zc5nZ7-uCEz8r*A_JLqIQ(XcN}a~)`s`&@9=y)(K$3fD&u)eculj~`2k+S$*e`siix
z(^x{K at O>nqqReP?f(Q4M&p#`u$M-DUM!OgAgPeZdNdgU*eIGv04gNeB{aoKx4NW(n
z0wX#U2Ul<3e-6njH;^Zs(!q5#NA;nB=~txT&DKKeWAMxb`ocMA&MbT~G;a#em?72#
z7)$jjv@*;s2u~To)=WbhY5}1Rf@>22ool~>7D{HWlE)jc`Zvr~YN%1+MilQqr{mi>
zajC0^VJ!zm6|BZaN6q4G)$Or!I#$Wozrh<NPU_Zj+B{MmJ~7Na!G3h>2xo5p2}d6~
zI`0PcXHw{p)3Cufl-Wo+i4y<0dqiez_lP9Ed*rtq9y<WIRHy=qN0R;xKMv*F=y52a
zl7Bvw=hv-3p+W!Uy+5SbNVFYhtz3L_F=r16&I2I$lrWs+8Nu at zk!oW*LvT*`Eym-v
z9<h-gld<*`Zx3mlQ{{s=>+^9Vp<d;JIJ4Lj%S}1l$61eOP5@~Yw;Q9QjWPV7giryd
z6VjqR`klUm8Z&%8SH^;N4QX8zq_c$SgW}-<Bl2<ImD!Y0{a<%!zaMjM*@tI<y*N5S
z03-rq7HWUcE*X5jVFcH?j$~~#=Seqi0jZ=9jp*A!xDzGq?!ouLvf`eHJ?YK`{|bMM
z{Pz7a5>|~_=<^>_K1LIR1mSbGq6i|v3gn?E7C-4osY=O?s7}tjd`Vm>DHi|44>%OW
zHYB3<pbBOqj*eko$H&+t0zxapL5JxuU&~=3gTM&a44HuB#d?J*hAZdX80c9+^pBS0
ztXV+=86tvCy92X>Ci*T#7-`iA;bVZTX{rM`3L-hk&TMpq0Mm3nzM!RT+)3J{gV(A~
zg+6=)<DiCn9)-p{Blh?iLFgdbLi{8=3ACq*Y1u-jwhW at q$-li at HWB5Y3pf8J8shoq
z(uWpzQ2xyz?cU4L6Avxd6EyZha;>pAs*BvB2rFje=R=wDK^x~>E{LY&A&de<e+I-x
zheRfTV2BSs#L>FjSW$k*@Qo#-`Wb$S5ARrfxaG-1+I{4g^2|cziBI^ekI4gc{}wSc
zWN>LO^>3d*@0wBC%?|=Q{nd;e_fh$QD__DY0u1ID;cf{|d^>)iojVLGPll^AY4;A~
z!_ain?k#u)$2(&r2cQFONA<h5 at N8bhMuOm2{rkK4TH_J~3%L8qU#35-nEMqIr;PlE
zM`uL(7K4y4_;cFy;dhSyn0%-a#_hkZPvAN<@iCwj at KN^zrl|$e6m5L1Th0qFUwdx+
zcvj%?v**N*@c}Yv^q_3}Yi2*!@E&X1w~%(N8!P$31a9*=uH;sry61`q=5nq3FhmRA
z7t{jd#5?pZsP=p?R5XXNVyFUXXAKW`oVbJ^A19JxMFpTZSUmK%Fe*f<tJ$n?Xr9U<
zXda~8lrz{dwGKl0V9FWn;5^w~#dLM1qji#SA1GNUP+n4gthzG1WkP=`$O!k*YV~5+
znFf(|TH)N{gC at CVCRh_V-%p;9Tr>|&ba7|7T+u8Sn_=n$L87Uxg#D<0D at Mb3hGj{D
zgI$6tjbTMgNX4hQtSl0&f*3A$@hJ}bT6Dk+!?+r$!^cN3mKCV68Xa$<y}l@)hQ<cz
zDo{Y|xezO~{)Y6;f4<X4iaUYAYDM!+E=}E2|E9z~;tOtN+%>oMacgc(XwB`~Z)<L7
zPLoifZQQb1iBpuPM~l)@9F70RiV}UB3PlO!i1!6QSLoUm!q8kO;~B?R`c at nqAog+S
zKmvw?K6lFf8{QuF;PdqH5(a3J)v||EUhIiT^Q415<0-c{;PwOErno$c)=xrxwZm9w
zvVt`_d4Z4rMr&OUnu<9%2~Ab7m{$4(mp%oTPK9R1BLavDR{C+DL#dEDMn9x4`!CZM
zc9fm`ozv_?o6Iy-!$0lrVc=(Yac0*nW$@?mCNprX$!s0sPO*hfhZJynKz!z(y&Udv
zhv}NboXIy_*9*!Kv@~pvN?Hf43v*f#rmH8@%8gKkmI`xmor`wpm at wl@e^=n(c8R<6
z+m4s>=o&8K(9t3-`4`-I7A at bo;-R=)>OMBMCLg}~?}LOo^AT-q+2z2|fCSlBJKFUB
zo~t+5`rk&^BlcsQ^@y+;>;`T#{&xY;?+fB#Oy?O5<KbV2ah=_Q6leW)tu4iOt^5pW
z$yi8Tgs}Fp6$GgNq+MUo7yn_bxX)n^yR%2b8Yfk38t32mn3t2T_tEe3;xTXG9c|db
zKUAy2 at mdu&R;%!?QU>oTQLTy#M>B;E`s^pTesdovN8os1DPSxwhO=o9)74EMc#9eC
z35^lMrGNn}UO?#AYGyweMs*FJg{nrpgytIKo-<s{I1?}0E)X3ir}A~r{?`H#{+!!b
zhClrm{V@&gT5>h(zRp>s^im$}hd^XQTPut{qe_i8&rHh_q(IsV8b}Myo{Cz0Lxp`c
z=U4zY&a`U9=#C0B<Lk%AX%tW6M**UqE(WoR1kO)*FgX95K#qw0n5ZD}wV3y4Z|O(+
z%k8D_1?gqN4ErL5W;$Dt5!SBqoMG9*wDMtw6+xg0QYsAN0?0=KTE^bJ6!lW}MfgIM
zAb!*>qZBgSD##qIszdJp?(f+9e&CH1)76?8?#OV-?k02k`+v9p%pTW&j&kSif5Dvs
zs5XoRb`<XiPXFu&8vc#&|Gqb9K)pfsU+lp6H+lo#FL>l2W`ErqjPATb)(iTfOE^V#
z1r^!KFL*6iaA}E0E7I`HSiJfY)OZ--`s@^x)z27rpfCAZkqa<xMfOADn1j(jR%Cs`
zKUL&2pScy8TYvo9p^8An(7NMRT;+|kRREF={abiIir^VtKP+Nj8~&?$Cs_KP`v9tU
zym-B1(~)X^2P3BId at a|7B>EYgD>@lX3Kd#qo5`GvxrZ`F`7`G{1?aCJ{9!cH?K+>+
z`<bGXJem}sWI97s(6L4KorF?_GNvhavzUT?r$Q~mR3DdL at cm&uoc&=vVSU|M at PY!2
zvOBwL&}kshx4{Sl`Zn&FPRuYFJX7!{XrLbtwR^wTGqx*Y3kRdWEGR-5B#AvAeco+~
zFX}MEX$hu|NXuxrHDooKSr=zoRs%zeK*xr6*5PAoJ9gng_ at pforcpUuMQOz|;uXq>
zd1H%ysA*xR{YjtH&-rUXeEvF2_?Jm(&Q$jMUyeo_KZiZ;dn%PW7}2VfthL?Ia{?dl
zi8F95licwpNPxx_9A&4Q`&BBtCo;oCNcnQB4M_P$E*1J-4EV1#6wEF+K1;%fzcS1T
z49m2!`9r4VSugrF%L?>mH^cI5STED%td>jKW?qI%8W{1xISf`bnPE~l at G2W6!<^0#
zW==|2!N(9_nDfyE_{s%2pAhf3i%WtPoUt!Ae)Mf&$a53=57Oq3T48A+Q1R06qQYkg
z5~QFW8(CH$ouQ<7J!n)7=tHE<z}?YP at l3>bkDn!w4&##(xHiYIWUq4LKe!%@*Y^va
zUBJ~v5^9mI$Une4vCV9i=UU%F=A+Nb^7+;wy{MB(`6cj}@r49)f)~TW_yW^d&Wj;u
zZK(AvxCsW;NCzV4$O$3=*bN;*YaA=SgiXQKPL~_USc4guJFVO}1y6k)Gb)Y2(FSWQ
zRZmS}9LBW-%P=id%8l`l2pKN%E0K2$%e|b*5spq?bVk&UsFW-GxQbtnfSHH_AsxYw
z0yxh(*nYIU5^$x-{mdviMVAvCg`<!rtN2!JJaA6sASGNyW5ssy9WT-T7NIhZGt=b+
z;{!hJ#56vn(2S45>tB(s<7$xWUqW(DFb<<rvg%nJg}z>iOq?n_<La at FiYL^@)iFeN
zhjk at v;LKpfH#1JU;qQ0zc_lu68)ttgYzR$7&%#@{LkW>1Gs_8$jHpA9-(eLaaVP=i
zUU79W$O)?mo2DIhmK5uU4>9DJC-F?fi)jNXU(G-}ERD2_h=+WLX}@=7qjppxDfSCK
z;eG;S7XhYm8pHSm(>|UV7sN?ng3eAxALqc_sCb2 at _)<n3CwXW?AB-i=hAjR~->kE7
zg~BtaZc|3^=MtnOIcl^=9}jNfW)OFZj}VoDR|<4Q54YUVq)HhnZWYcSdzmhWW`1M1
zBr>C<n1b;lDNI3BPvR|72uu=0RN+DCR~|_FQ6BbUv?Rc(9PBnQM=#uQ4rMd`S&U^2
zGb)yJT?#mv&r}F6KPXTkT*o+j3HksBFA_J-D{k-#TMiw?h%+Ha>nVp5nJ#h#_;AoA
zhT#&+HXX+652rlC4nZwK-{F9FmHP27Ncqh$9Px)-#W^1yV%nd825Sz}@(|N_ at 61wd
z%fwI_ZarmMO6`G4k85&eN-*r>Q3Zk$heSdJlG}-T_ylg%;2EnJp(OAtVa3Qy;82F~
zp|Dd(zp at L+UTLK-d7ybAOk`-VuRyDcGYLBb4XTY}_rWl_0K+xU#XJHtJBFhGe{{aj
z2+erfi!fKqq2&R~KBfS31D_eAoX`fH3B8w}X(EmmFQY}6F#0O9Vho`^r!V1}CYlIG
zD&-94GtC!5pNLLCv}{5LJ8n=$tGzbXOamB!G%z>mFxP1^jB7coRQA<q2Xa~cO9t|1
zCHhj|+z|vRb2T%D at m;VN(SL}A&q8Z+AJ8E`^fDfXeGlonWPN+WYGMK(Fa5rF{mTS7
zai(#_%%<+?pG(EVtUs6Plj4{J?n)TQ7q~c-z{i7*5|iS{K^67g3Xfn|43)pi6dsA6
zjH_GeLCY4E+EMMK1Ep~lVLRFAa784cbdVVKB at D~#&_!C0LL^6^XZ=9Gj~3EF9s_CQ
z4pI-vZ4$EUUn<-;pZTo5n_yq^Z%6+wM1Kk%^W%RR^Xl<2hopwqK)m27tw#{EkcDHh
zGKL^9hVeBNG3~HyJihoB6$JeLXncQ)iVy;ll_BcgAVMhIXACOTY8e;6zzm<aDo}t5
z+eF$ug3kptpmhPxsIUbjYK00ynYLvKiJk{e3YH}+Ojkml#0!Rfh8G!M6&|pW!u8Lk
zWKtZi%NO5hnYaY01nVp3!9{(@o<7EhQWmd5S!p}3LMb<52|*(>TcP*Twr3$dBD at Kv
z1csqVh`NG33r&?8v*;!KP*jW+d?8v2QSE5fG^&pYB5}AT{+S-bP at G|<L%(ap<zH3-
znm$r^rhpE_;k+1Jj;5<zhzjKe=naKIw3-30g=_x$rez;@iywY?1wJ0S1PNd-!`nAJ
zk*IXzO$nsy<~$%A##`~w%X#r^p!=8b(xXav!e78J3CVnihB at a|nZmuO5&~%#9d|J2
zF^wnT%E7cO8$!a-R|Uo`Nb5bG!A#=@R0bs>w!i1FaS1%2W!w;=&9rP#s9+fXaue72
z#g!lajp(tR at lLnlXOV_<{T3K|;SbK<2PijvnKH-#PVupIesB)a`2G8FybvqPL@=(M
z-a|~+Z)Z{Hnpo)M5pkw8vVi!*T*G$;8DSv8uH>$L+1jS3HNc~TBcXHRN*H%SMZtYU
z>LhYp7516lBjS_&h(%$2GC+OR_e!*mrh67{V%@@t`b?2HWCqqA=q~k2v`;7N<Er0Y
zhw at e4@k%V`M|M1R-3Nch_ePp3o6;=~eYFiAlR(&sVGw~*;*KHY9{l$A59ICB6ZP@$
z^O<IRBOMUN%@wFQdu<Ey5WU9}jr<erFTjA5yXb!jooCe}5?69_#;C{^CfKb at s5IXq
z7PC$If<f4TP!-rBKGL=A!UP#jc&b2@=7Yd*enIn1YG4}MhpNMe at 0$n$w?d at V_Xd8~
znX^p9n$9;~UnZx0=bZk*)J1WR8wn*QPzN}x9L6aIaHY3HnI=SmpmhRS%Z<|zfrcTy
z6BV}cS&r)kj%!gm3wOQ5an0tqmZbOKuGcu$yXk#kWf)ha58$*qeGsR$>EChMK+5OG
zRMGZ!<0iC<cotVO16jz21}Z_E-63{p78R*mMpc0nyAQE8pS((Cu^o3d0ZqEHe0lH{
zVQVOPJb%j#i7_=SO1i#2+E|1hWl9?%GiPO(VJMYujgD at ym0?QTA%me at x;1`(A>QlT
zk{O1|>5g!RDea8kS4($8g>I|Kl=eghL!I;>`~@S<3;GO0Gq?rMrn})jTjQn8FtkWy
zG|jA_4-%%7$dd_`d<OBc(q>3}i+F?QIU~*oY<Mm+;%Lao!i`82!}F7YOM9HW#3dI_
zcH*KcH%DW*IU4&jN8=OXP$;PW;l~~1_o00K9A=<W2h27NEvsHb at q>I{h-CC0KFE5O
z3KDGYFs7kOl3>VpCI+X(Giiu&D-5HLg^twHYGQm0%jwQx-9qaizg{+s4&WX92%=!|
z9c)DDLYNYw-E4(YFf-a2)l4E&pKqico*$Xh=f<Waq9dpAYh=#%adsK^-|Y*>+4;uV
zb;jAn$Js5$+3m*J<;U5T$Jvd>+4aZSrN-IkkF#rzvzv{xtBtdh$JwpN*&WB(<;K~G
z<LuZtyT~|u=eYcD8E0?*%?|C03p+z+tRFxOk%-!3^ehs^|8xD1U&^v<Jb%%k1T9%1
zom)uBDRP?*Kob>69T(CNi-a2_%aOS6W^>Et*K4$##?${?|My)gi<T@>9p{#;EEvAf
zUF`i$8=<39?)nSvAJ`bQ^qdF#%wf+{OX8o4oh at jIn9hFE9^YJdWP!zXp<COoMhhwx
zyh)mNJJC}-f7(ZK_C~W!H~L!*iesZ1o=xrUeBp1C*Dz2XS5IG?LYr7}!Ot^th%($$
zN!?@ROpt1(33zzulD>WtB_>pm1GG1Y`&x7wxIGEp<bC>aC$Ela1K+CQIMF)4yb0&N
zUdUTYOUYUBw6gHI{!r1SSG1-jVa{#FHKI>j*6BXJcuBc=?lP>^CdQ_*Vv>99?Yx0&
zGiTq;U3>KK%^K3VTLq^Ic;*x1`CW6GMefV9g|F`37Pwf#!pHIAH1|?nC9ms=1}&Qf
zHa#a4k?T?v#h>&t;;wF*k#}9-T<7gn)rJDr=}N&ZYC{-l-vyy$nG~^(LeY)em2~}y
zM`)f&1ZR(~0UJL*iaSlNNtqhA8l!xCcUXY7^&COAbbz?i;V$XZ{pM_{H9KGOZ9y?}
zTl|ghZPQ**Rw_M{?%!6wmuk`Q&Cxx_@{vv6vQVt(%uD6M27_~L=8cD&bp7u>KKpIp
zY5hjFui^LR05y|%@5{9XZqGuL_>5jp<5hLFnD9sCHqjS4oA|B&FyNUdE-qZWi!4$(
zC(p+rH!hGY)Zld^wbT8P*ih?+l*(p>St+&I*Df at cPu9&{w?p*WB5mhe`Il)oOUU$s
zch_ at o9}{_bo%dMX)le<dCvUHW*PWD}`<#zHsU<{G*yB~Kw&$Vc8~sHuIBkp+t`X}z
zIU;m$UKTdt>M6k}ql2Wrx--PxJ|79wf0POMx;Rk2RC!ZlHmTF5yb<sV*eu)dqkTa=
z!zuEac(wTp at 4&VjLqomA`wWZoCqLPj?Z!Iu^l9|L$LV*=nl#sZY_s~{UHI7Bq3HYz
zfjqrc>N#f57Kk=k$WFNO*_>D1Et1dRPOn>=eVg}%-hBZo5yieHdvo2ZrqaEN(&_@|
zsK4}Cb2wb2n%7jg at Wv#bS&QfL+ZSu!yf<I?R?Y#ZYYX@`<~nDLG?uB<)aEfyH7}f&
z)w({r%=7r%j~+cI&TI^uaL}J8Q$Xm1p1N3foVQ@`L<fw2r}^!}QjrBOvld+4swsP2
z<oLe21ER%GUg!6=Y at 6BkT)3gGe%FeZ4Ic(`U-$&jpUrqUsd&fwxi>y{gl7kao94 at O
zIT7Q7Hj+jjXbX5b3lk(pPEq&!W>E&~NBrE4YiN_Uyqu8szD~5!j?TBbESFcyeXe)L
zmq~85mZrWdpN9u5H{bX;tHtSQvzKt2exG)ehHX|+=Dkyet=nsIOxYuO%5ooX-P%)j
z^MUfgT-)<!uF3PO*WNrR(D+cnq1EoTck}E;kzTn4=I(cSWPMx?EeKT9C>Fk!zE9+i
zY#YB*LNAXJ;(r4b*(p0I>Pzm}DlOo<NAolu2#?y8;k33q*}#gpr at 3NfVcFw7tlqCx
z%>%DQtnw~dMrY;iQ=*@$kxSWaBUxrHKD*hrK4 at Ue0fSz5`^KzAQeAl(jd>|@$+2|)
zbt$qtWiqkj&%Y{VAFEQ&ba4sqlB3Z^+Vl(>PKh}^JS`u4_?2|(Ub0C}hI at Es@%awc
zhc~tTEO~nC9cs?KXMbe5xOAtQ7|pNt3-lch+MMO5qSfo9NM0x;DD1B(C)uxV(v~CW
za(|Ou&^u+S- at uoC#lq`lDyPGe<QQscf{EXXQYYU`h!u-y&77mzo1-%l(H~N5#@ZMq
zd(S{evDJ~^Dx%LQn!?_#WL0)w&h9y3kMtq^La_uoYxeoFX3g88_tG>i1`22H&q$u|
zC^=!G5LWGMrqXE4q<jr{VA~OH=Tdl6nwECvsa`_-5wYYX>y*Y;iOlNqy00BQ2dln*
za&DvqPwR^CYt6IMPmQ%&=O`&QY07MA(z75<`Qrw&bu;{isa;N8+vW&WIe2Q;u0E5M
zM0lCHM`mVqhN|0ek>ZsO`OEKX^{y$=B~xiRLc1=?n^nG*wyjk#iT>sjPJQ_~LT_=t
znY?<atkATjijsUEi)>frCYY at WYNbY~^hUe==<j-SyKMN!wxrr8x at lF_U)A@}3k8#o
zZLur5szuGXuquVFJs~q?R^`_`q4=sSaVwWzS25av$wR$n|Gi>mp at x!9{XDY`-j)W@
zN at EPdn@k(kj|g-r?YozUor{f?Et<N=VAJ|SC!Z8nxM6cM&1t%olC*2Iy2uG7*?BMI
zu;r3i$_-l;dRihSi}~0#@4%#c11}r~dhZ^}DC>Qa-29ncB$#y}K`!5~Rpo?YuVUQ0
z2)_rH%!29zWnBgrDVlV2sJD8h3Etc8VaKwYMeVnI-JipAwk%WDJ1JIqZd$5BLDs#_
zq14vlW!3#pw+^#viu^KThMjVbE*DD8*{&ITF<V}4;Rk8KrAtf{r-y{A2wv+5GW%5P
zXQNIxi44zi at mSsXwTjf$QCFQ;J(LjJ*lsSFd_{P6!u5)vw37^j!dMfR*}Q@@&8c_w
zq*da?#OAL^vGV54w2LnJ8ezYqiefS2p5~4X1G7_3W{BmsBuoDxi`l()QnC7eltO82
zvW<8&*{WmZ+UT#=hm{()Hpo>|Chkd4T2q*;mc%NYQQMp*(9<8i;c^+(G$6^0wm8i;
zjHNEQEK^Wu_C^@6FQDp4bVg((pEE1k?<JdbcAny%TkS<vAJY?RyD6>1C9`|Gns0R!
zNqw))5Y?manH!yxq<2HUHfT_~%2(T at Yei)E at cKMIYRiCA^gRtB+xMF_&AwdC5-R9R
zl}uNy*4q<2ERPPF#WXgS5ds=wdDj)2 at U&bI66`Lk63E$>z!x{kiod{SqS$`z$E2rm
zM?^b%?L|C?rV7~}Y$8rjIyFJp)LA&_%v?Fs%Fb!i!%xppnC3S9lJH{L<L>XKmbG1!
z`IP57rQ+jK$&r*V6VK1RDv at LnA}-~mBRyOBhg9Ugf=QO0k(1j^EHxV!?$_FPpi=wB
zpzt!C_eOfcvAdS9SyrM$wdT=voV-CjFzSSc`kiM>37Il#v9}#ma-SSle(P7i<OM-O
zHSx8de8&FFIX_f-=T)v(nrmT6nZ0#h+N at beyU5c0@-ydO+oCw5_2vQ-x9<v at CM=&n
zAh${B&gR^O$0|N8x_nw=aY at 3lpf7J6H)XAx9&%K*C0K6G!SDrEHk*S#Ob#_Z{v>Qm
z3nSX<`l{`dh at w$5DK*>9hQ>r3oW5eqgEYR#;RpA(W-ltD?KX<`Z~dwn$WHtkK--n)
zx4tKQBhMNYpQW1pzQpZUD0<TV9$pt0xZ9Mn-5MItQ(xWk^t{PC%PYaR-J4w1Xf`=r
zdgbaFwyPq-lFYw*v|3dO$*n$+?__cAMT%w0vAZT$`UFfruhus%mEUP(wB(^dh$Bf~
zv1{duX?vN5);=HXym?gZmluUO2tCbTySHS}w(yT-YhFrivwjj?Y{Sxe>C|RRUcc*|
z*Sf2_&pN6lb-VC>Q*d at N4&30s__Aw^?9z_>O<&sI*Ia$sd at kgbbFNO8U-OSQOS}tS
z^NU7yYMRgOC6PPduRV3T$9=%<UFXZitorzO>^<riyKg!BzU?cRI9y)$`1>i^ksp}?
z_9F|$r+$@<Z2Gq1?x~@$EayQpHrBtLUiNXWZfu`~gUN?O20{a87F2!udN|?B!x5{`
zZZ2Dz9W-t>i7~!E(|Wc1dC{j$t<2Qiwz`?0Uc6qV(b6R1*VyZo`Sf~IZ^Mopr6+u6
zDYdGP(jIRN>Z*5{Dqko5W5d09hfds$R(y7UrM^sg^;(CrZ#swXoZeYqdYC0qa^Z?)
zRqDO{P*Rl at A0&h;Lj{eh4gGgLoLXN}qjZDkk$&=(r10<liHlY&I51^C`{0S?=aVnm
zc^>)rcGls0G3|#2%ZpNLE=QkAo~U^uJ>u(0`M|uCiTvS5%?nkIM?LO8ro5DqAn3Yk
z?}iT1eZI_^{XHjR_B{Wxg1K`gA0uz}{rGs#WAxi%jyt=ur^h^g*0RH{`e3Zbd7HRp
zGLv_U20z)AR{JvZ$W8KvM|@s?3<aFMxNS>!)+$MbE0UK2FVDGu`I5|z4;hQQRnKp>
z4?An1mw)cA!eCmz;j;8UhPRzLd8GJsZOGlcH&X<z6=&#QXFS}QFY^3hj`mejE`_x6
zsy&sN?K7*f(A7-(rod<00+ka<H?HkzEuy!}-Fmjc>GnId6r_0)qk0z=Fe`-qcz-2N
z(%}eY|B}8|jTTqGIX5&LPxj8gc5jarG0L<3Rv=+Fp|RlhQ}Y*18$YUsx3#Yo_i#*g
zm}31^`5a3sRs8Fw!AmPDO18FL&M5abBnF4g4Se)4X#3^E(lQcC-}2AuovM}DJ&#p0
zb;bUW)0fEivnx#_iOa7nNn2mBPbSY>dqOR?JI7bkda;OW&ykmX>*97Fd9C|+_b%$S
z_GK at etoGOF%~uWICEoe=Rk-6C(WZC$KDTWK(+3yy-Az4Wrl>s2$;#o>%g=!;w;v>a
zDv!$0e<D-z-G6m$>e2=IvlH&gB&VirSDZJ+bok~rvH{P5{R84(SY{V=9i@&t>Rp(9
zJ#m^!{g-sc#+uDiqzex&bqH=Rj&-{uP#2W8A%C)5*Sdnt0i8B!i?}yskK1FSeZ>}6
zZS^w?zjK--T2=0IHAJDD&)p)ep!riupi$yT{r6~VulKSV&(>PbyCF7Tpa1&(-t4ny
z;zi`9W<TGtz0q4MX-nOLff)e at dB4on_DVcPkJnqA^v?01f}NYuH5I`@k+ut#({I*%
zIN#HD;0L2%k%{-@<90kj^Lh%+`Zl#Lwy0E&8G3I2#@ORTnx5ZKIlX?ek9uh^X-`Cz
zhD&Fbb%(S5h~4TrDXh;S at yx7Ay&97S^>^}}oVUD4eg=D{!4~_YR~p-y53-$AwXd&x
zx8d<?`|N0I(<f7UMrbp&DMBW at pS@u(so1%1Ur at uTck{0f*(AEI?cBLc#c>&3Xn#gm
zfa(ll=`K<K^ULzicIe+K-SwS+vBJv9=Bqzl>EAqSNwUPLJzI(wq)cl*LS9uluw_w}
zSxE_DxbB>n!A7|a$zLM06s?XVr at DOnF#9$C6hBM1=*Ca`9#h_QUvG6?vrni at gPj-I
zY=Zd|%`B>YtI`&~f31hI`_R)_e5W=ZyLJASU{fjKwtB#|%eF#9>0_&dr;R8)Iw!Gf
zYkp`)Iq6}u_<;+>mlRDTrfAOId at d%;>wc3sA=2$fR!#8n%8&=MKAd$hO_u4+)Ve%e
zy+OiQ;JxK$55|W_33H8FSO$ZhHW7=5)TSRacy at KJ?d_+>y4m-Ka`&bi3sc1UrU?34
zq!-&9*Lki!FLvqC1IgAu7A-n@!*1^PR at N!WO)h)GCv~VjTBM$NapfKf<1Rg3@(z08
z=A`yl6F)nzA6~~^nX=se!%TslG$Z%r4Szgh-ml5jh}JaN{?ujeoq$}%=50^kKe!wC
zblSQJSJOK>r%Uzkh`6w-(YI=1j#&6b=k&50TKA&~F+Va-ygn)|FRY%X9$+K4FJqF|
zuCh(fmM?4#T)6T^{h_`cd_sr23a)NlDSBr5qN}oI%j*o4)&+dK^Z7aZe3G}#jLhun
z$VVcfhum*?eGuSpMf at KwsGR&>%zfceA)A|m{&%MYZ5-Io_Bglnl;`0yV$b83M6?u~
zZGXa^ex$BBUg)~Tg6ON;ZoMf`5=^{3EooZ5xaY=f^2h!go6KU14O*u at Yl!lH(b+xF
zkY_`$k1L- at OIhpbccEmMG8DOoTG=B-aJKRgpf!Ib>3Sp(ML%f=kSi>F#Wy^0Gw3|+
zy(w6SxAXBTz6R4e(YWDr6Y~6)=3V%@A}59Rys+}=rJ^DIB~7$f#%<1FEl)*jE<V;>
zH at 8{&l1(eNtfJ8-=60?7q?y+S^48|won3SD at X>->=ScH;3QoE5#}n_1H0N9uX3H-Q
z+_u}%$3mjiecHwAUP`)~TMQBj&o>FA)RBvNpNK1Nx*Eq2xSls7^>*huRzZX67QxEX
zBy316S?I#P4zU!O?Hff4iT=7uNuIPLT^`N^KR=rRIhs2qj;h at Bk%FzJ2^@YWOE|Z6
zCvl+k6X~u4HM{w~WIo%PSzPe;`;GW*lo!+5q at O9R+*`k`|679v)iTH3aao?tqccTV
zXhWg$OY^pK2D(j$8_zzz>tFwL;G3Z at d!t%F^Y_c%@g~pQ3Tln`ltNT_r at j7Tf`#h~
z(QTF1{F`*<@fiG3EG#ZwDMH at m;FC9p92l2-!>d8)k$Y$AhSni5h33kX?AnxB<&77v
zt;^M&yy%+fj{IBB+9fw>m){l8$;WQzUgy33QY7?h-Lbb%Otntdg<s)&K36)VWfJ|B
zhp^-!PwiMy|BcHdH#%MD6sr+FC^T|%0+ux|O7PUxKGH#>-NZ9>(+MAad<DvWe4#kF
z#8ADfrqI+k1^5ZP`OzS|nNh!>UHn<3llKer>Y*ELf%}SkhbHG28 at grhd-C+@8CLq^
zgVCBzWp}OGKCXFO=>6e*k%PBhp1=#U9Q9RAq6?l~nILPS&TIbJfG^Um&8_#&1 at AU{
zm4JP{CcecHRqnZai at fMl=LFWJt?_xOUM&)SxKP-XcNWj28}|Hj7vH<7U7T}Ec>aQG
zP6wQGH}aJ=j%4K3)~GCOKE+($nl<gXXIXZS$H%#08_%5J at jp1>gpfdHx0t$Ku%LGw
zKjtv;@NM&*FAE~2wq9M3C30O>^FZCc<FB6-i*9S_%@=;&Hgi{fUBiclmn(c;<POew
zMi1CgJn7-*8*|qOW`}pk<eP at a6P>z7NE?H^1hgMW5QLrgQ%{WyQnGyA{YL61(Q1s-
zCcNCzC|dV^H6Pthi#N9{!+WlKt=pt8D}7BZmj{GD&w9Mky!ok9i+-E1mqwFzUuIF3
zZENAFd!{)x+m-W1*tc$dlzVWqY>#d3L1p=CXU^ZORp)=$C~(lO)j?r)v-j;>ugFDr
z-OUSJd}MhP0~Z{+CS0s>M`T~R6Mvhm5>GEWR1KRVt75Q3ow9R*lI<N&+C9Fg at B!ns
zP8qwb43f($n)eVNmldx3+RNJWYM{C5Ql6DaURJc_DZ0|W-6?W4=4FyLw#~D}w+sZ;
zyZ0I#Sd`UhuaVa!C6|)d$WM<=-YJ{1?l_hyldbgid8T^Rv953zmk}CGuE9XB?V*#{
zsl&1Ir}w5xzskrlAs1(cyMJJHoM-jdzPZy%mw$FIhw9>z^@ov3YImSt_5962!@gQ7
zepzHir(R(}p at ouin*MDj>izd!1asa6*=-u|qbe6F_J298Qg)pomlT#Ln5H&4wdk8z
zY{JbsnXM5zIlY=8{ShM at S!Trs_hh3STNQQsBCPn?lxU+eE2Z7f?d0wslHNl|5G&L_
zKbu9rt=U|rnRZWfX5oOvgyf9<6BCjjIagys#*Hdw0beQ1 at DAGtHw#_t&ZN<#;}i6r
zCMAm<X>ClgF0am%=;`=c_vvfZ!C*?GvtLBlG=00g)^%2~sguMc9ZAx&r^sstJ=2|S
zaGW~qm$9wOsmq~CXwK?dO;18n))|>SsV`MCs%I(|4ZB^I at 3?YJul9YaBwcBjP!6rq
zO#Wi6t at PV((IyHnso_40^&&p2%bVp-6Os+(lT=)~%C_j^8ncAl2x at DPTXe6=o38#J
zKZeV0KdDXHR$Y~*OW&jZ^;nW%;ngC$Ef+GVTH5rKRkKnuCkW+ztrX9yig)dGu`(H;
ziTO9{Jq#@q+uQFXY53M)Hcu%nsI)2EAm)gAqv<}SE`f7c-n}B(*w{@5d#3t06|Of7
zXQepNnwzDStfq^oN4w6GRXVX8lY4O^1(QsptJpHLD2WI1Y#+ZExHsu;?|?&ZS;nEy
z&B;%)1dG`DatRkssI>aUDfTKp at QZj?A7plE&_y<|!$fhBSF3u*_IrY9F#Pwh?5ED+
z$?1PBn^|^NIX1~#AvJAo=e?|g;nvilr~TE-YFNWtV>11Uj^;QG=cEcPzZk2zeW9Fu
z_EJIV57QM*mI$hZhnNL*T(j}3{S;|JSNCwq39tIvxVo;Ri!@Z7SKZzin{Xvr()@bD
zY~hn>K^3uu1`OWWE+$hoX at V-!dUxlGiN$$arL2gy%jC6>_*!B?soJqa^WKb<*#jGL
z#WGI*A)Vav+76TbZl&VXNTD2k6k*%6vcqb!_1EaNTN{-QQ>x_}loIw#R7);gGoz4|
zB#_ozyCJ&2$CO%jnP!$05N4aUc$uU+YqpSJCQ;sQql6xHL2^b!=l&wIb7zxey>9JM
zocFP+sJ**3A-!a{mD1eRJ6o!#<CbVf?f1ER=z4ldInhD2@;7{|qz6}YnP{&c4v%c1
z`sLk=b{cqZE2QzoOmlOAP}bFS$<)3*dey22<%fe2{}akKYVgK31n`&?uM-ry&>~P(
z*3Fl&Er;J~Qk>XCn*!2f?fs%h;+~4w_jU+P9r7eL9kiWrN@;?yv#GA!+%rMbIx9_Q
zoDQEp-EEqJ>|)_dQ{TBCm$}$hHpMsZljPEm6%)Utj7VIadtN-mB1u}uNlNO6^6W_k
z`ywYtc3Ns$nzU=}U)ZQ!d0^i%;lUevM(=f&?}`=HDOt8gm&cl_zG1SX#)+uFrO)oD
ztI1>%R2*){Dj$B5yQJRlt*Qj!g}mSE#5tM!Gv at WG{Ftk>zH&Cj(qdNHyshM}qqAnp
z_e(2oxi){n&DI$T-`z~+FQ2eUX_MT*!raYw7JaHXwpioz<)C8;C7T at Id<mJpE-Sc2
z^=SCPIdYqAtQLe${tz7Y<hXG(qh-tXRoAVeM2VBO)lg<e#Dt#RvSRwdNWQcOTkk&@
zrWGy9_K!B&9jN)WHQ;L^+b?eyZDV-PdLNZFJih&!ODR{j6FvN;_1qU+^m1dD+EC9o
zHh6m8dgV2X_ojEdZ-QB46?vs}`s7u%Ggg}?g+*AkdVF6kCsbwOlz+f7<;6LZyT?*Y
z1^TWS>#zQ7v{Sy+;NcP at eUf9yij`f8hRnUw>^}Hd+pF?;JA at T2Uz`6_$ab(~@0w+Q
z6k2bSdTCP}{lw{|7Hd7(wr!o)yIqcFcVBhsPEvDL_{O^-(AdfK@?!svrLr;YUpD2x
zyjt`ARmi#KE}dNGH$R&FUKe;T>5LTR at 11L|`M#4(>N$OC?K`&tch=&Uo$Pn<_1zcM
z_q_FWzBN3tpzr(Ry7C`KXs1T(1v0-*6<_$RDN=Um)ZG<>&RJpo7~AY)8GU<StnS<o
zCJqt<LI#IERV_I4CE at Vb&sHN3o42^QHQm&3c=nwk_I&v(t=3JSirR8hnJ+%gtZUI&
z^}5kdr0Hp<S8qda)Ac7xIXh}8XZaqdJyNaj3ffpFKh@>lh9Ba0PaK+e|CwTRxs3kG
zGKaO*cMj`(E3Myox<rC?xXSX%g$MiZrB+mKy<aIT at uAvCF!bRrf5V!R`l*k2ZYU*P
zN!CyF{~mr|!HPu(+4H9)pI?6Bh^O7f!?WIgJk%a at FSV$A at Kp5WniHB6lTUt)NKeTN
zls_8IKk>Lqq4}}?$59E4rOJC(xeD$R?bxuthUvQ}=420Z#h2#{zLh)U at 6XPoAM=dg
z=_qzPW_otlj+SSSV-Hr_#o3(q*gaWh*{&zSqM0vi(=L#29{IzI at 6pAx0Yh2cTee+M
zkX&^+ at RH=E%lGGGeApp#UbTDi*)aRf=koOo(gqdorY|$>KeKK4kJH6RPUhVWsl6sJ
z<;`{djN<&A4;eWRpNr&@u4-RhNup#ksrH49vwUt!o4FR)eipcqbV8-5b<ee1a_#in
zP8*&Tr>MO{{9jPyP5nctf+?AI<^6uj5eJRdz9n<~Tw6{yYTmeaZGLYQ(P~fNt#;2w
z!ft~3)7u3fH#WU!Zwps-^blWbJ;foFbx!%~SMgM-6_*A#wQVh_ at Gj4|92QJ8eE2AE
z?%~VZgOns>r1j3`f7>lndunP8Yu at RQ{VTHXlP?h?O)JxuTv;x&uVVcKZSTCC-B|5n
zYfaxHJ+2~g>-t{mzCN;>x at -627t7kO)$F%&3Rj)4_qJ1f*BZz0SNiXoL<end`}8ds
zOgB4{de>=|vf|5A4p!S&27WI8L_GLJKO at Tjdx^}_)Y{bvv-20ECd=HLr?@@s=CJ7$
z9s}|=@qzsZE|{^t9G7y`oqa*iQDs`<bw>J^da2Dd8!tV$Kq}rY*dcJoEp|g%P+gbY
z<otomf^`<sZ90$3-o*Jv$Fy&)S}b-a+{~{^lyo}es!zE)U%5haL7Ih8V9KZO^&^Sz
zy{x0xKGTpDyD`u5I=}w>v)R4(<wWAo?0B9%Rm;0^`+~YHNe2UF3~0~&!b?Av=#{is
zFJ9rG<GX7{ZgwJrf-2K3FSMQiP;>Lgfwmr#MFkAI<CDF6<^}O=>N6{>v{>Bwd?-fQ
z!}yK8pI+LDdV2X#sk+bPh&`m>P8W?T=ML+v)pjHLpIIq$vY7E9lQeoK@$J+fELuMA
z<V^Mq`J?t*44CbWS5%#|AG}+4UEBWk;|-?P(b*$CQ=U+?XVRYSHW8{=!hRF9Z{N=O
z?@l!&+6-OY*}2wrnWM_GjQv9N8L9zYqPt3odCSiG-_q|m%l~~>>Ex9Pi?4iIZN6mI
z=KejWB$87W6mKCPX`Z%apmJ4-S=OSuVM5791Fv&mk~hd%DQZQyq$VGEJ^RB)OTQ`n
zpBkgx-cTOzb8WreT_&_|O=KQh!v`~It}U8b6yK)uR at r0i{#j3l+>dQM#V2^{{H@!B
z(x%JT0 at S66LblU_S06j~NMR&@>n;gWc}M60@#cq$mx?cFPLVK)Ik$Os(|xZnw at 89`
za81^a2O*Wm9nOB3)hm;1I(%6x(^z6d^=8ZW0*^j0JX(zACU_1Su!a^#*ccp~u4X&;
z>a*@+PjBZA-De9Mr|+H8Cq_xP at D<cKZc`jPPyKoFful<oE&5?S*Y3vAQ>@nSdtEk3
zs&z~X&s1OZNMg^*i at bVW#)b49<X7!Uo7X#kp16{|Zuo=!@)X)mftd}<-Hq-uAN>)n
zky-O}yMboFow+XCHZyYXK6w9h-L$8H9qCsm^h-_eTy-I0$HXe%#*5)%IXBAEoe9zR
zwN7OIh>@2*`WlA+!u#ZG0(N;#%2 at tvQ`y46)`f at aZ>$vJ+tGKmpzH7%(Un_euP&Ny
zShw8lTfjOc_VdqoY`l}sS7&F=2o-r0>2<^XP%FQ{2ei+OIkqogj>n&Wn2wj{vN at j1
z|9bxb*^}x;a}TAG at f&2rz at Ug=UvHmKvWk}0Ql%xz%1g=SRQCWST3}cZ+0@;aMvEZ-
z)xLz1^(+b>#)lCBK^u^n9}@=~$1H%6;m0xafjj&>Srj5r<UVSSfgi_AM#?M*$c#)p
z1dNYk<{^Mt9GS<`LEz!#;};Ml5`}~&Ob`|pflCxFF}O%@iE}Rr?j^~+CUP&SahLSC
zYtp!D^0-UpAFe6?a83P(OZM+CIXwM*{QLrN3BpC>UP9b!!njL#+$Hi4m*_uSV*kyH
z^xwQNOk4t$=4jcCFQ<PhkN;-=%gX&XuWA3y3&Z)0A2^L4lK~*UlLCkU<N!PXNx%fa
zRDb|r5<m<v9Y6p`0E7Tj0O%(T5Cu#F at B$_RgaNVuLBM4E1Psn40wM1OSOBU43jvn^
zG(ZnP4sZhC3}^x90Ez(H0N(*TfSrI9fHJ@=z-a&l at Dd;iH~?4!r~@nk<N$&J9|02p
zdjRHu2LMIDAApU3w}7dDV*n?>Gr%&yO+X~zD?k9S3t$4c510!$5AXtX0VV;G0c!zI
z0qTJ3fX#r<05QNmz-quFz#>2vAOP?lFdc9TumR8tSPm!#L<4>R2!I^`13)QYCLkT)
z4(I?#0FnSUfX4t8z*WE|zz2X3fB{$us01hgG6B8-Hed?iC}16+8K4EY0f+z$;kAZ{
z#Q}@~_W*MM=Kxf|Yk)N1Fu)%01h5p42M7av0*C?<0G5D<042a>fIr|JU>e{gzy<IE
zpbNMKhyn})CPE4(5`?gWKo0`71!@bl9%wyKRiLUsbAjdp4FMVgv>#|cP+_3LK$$?9
zKvw}>1+)ri70?Ah7XZBo^de9{pngERfp!Cx1u6^lIMCxj*8^P-^f}PyK(&Et11$tv
z2y`pZtw6s4{RUJJs36eYKz9Q*1!@Yk9B4Vvc|hj@%>bGK)ElTb&^JKe0G$kUGSDMH
zj{tQ5>HxG6Xd_S!pc+8)f#w4Z2O19a3(zk>NkB<J_XFJz)C#B-&>EmMKo<jD4D<@n
zD?kH*1_JE`+6#0B&>28efu;g=1?md44QLxsJ)n9(Zv(vzbUV=PKu3U%5Rei8K};V&
z2Dkyl0oDLzKoEckFayj7_yA-8jsQ)-762c>2p|ve1V{nw0BV3x05AAJ2N(kG0A>Tu
z06YM%0MPnlL_r~e3H-u*BD|tJVg%BkWE1pJ0Qxc+9YusxSD`POiFn(Ep?&EXQeTCH
z8l)~uAK(UvK{5^Z<(U5+5B|kP_$5B0UXFT;z|VyM7lK?6xe(%F0vEzuh;Sjw#owi$
z{};cBTz}BJV%+3Nag!v+P1byF(loirv*so-h?`Go+`MZ4*UA3J{1~4v<MU^HK8??>
zQT$I|qj3=Y7xx3GR8O*}uSckFV1RpY1Qrq+Om+7sQv*CP%*&TXB~ycg1B1t$af_#W
zs5{r_8xRua<>l+)OAQDm`&0b`!3zqwP=m)F at Cft|au4;TfM1)b!66XNui+=kvMFhR
zi-1dje862m4d4}^k9+U0_6?&;9C{d}rH6>OWCFOHAPhMx0;v{-)Qdr>{F$SEUT%0L
zf*L^-$E1iMn4}<#NQh7~h)`pMN-%Ljs9i)i02%CQ+=?6n&<A at v+=rS-bOb<+6H3G;
z3TlIS3jk`HP%S1QC;?_40MtUEY at px)F&<zB_C9zYY5~y>AcaX2U%~qez#IxtgZmZm
zK5zpO3WF#Q_6tDK^RWOUu(RNO<exJDYP(PhCM9SK=4}8Sus1<^CWDy<SP1q4puj1_
zy#Nca55oIUJBVulk`VqG2!A%1g8 at t6{#^(kxRXc$%mVvapirZTI{_=e-U;tR1`?eB
zQ^9 at +!Z!qSBw!iX8zB6NVBQE&1p76hC_ncA%)veY??bI8t_4iO^dTt|1)-FQn*r)@
zzZ$}a(j$5S=7RkaP?X=h048AXf%l;`A#MOn2m1*K-vi9i02nX|wLti?V1_D3Tm<$a
zpwLPX_W at Re{X4h(Z2%IGemb}OHvv at 8ck|rxcL&S_`)Q!S<-{ET1F*m3mj61y6tExQ
zmVX353+#2=^7jQOfISB&iZ27O66_zj<!=v=#>9y{1Wx&f0hXc at nYrap1<V2aA3#xl
z#Q}`L{+3(*E&vdvg^qE{KMJ4=_GjGk_Xj9}{U%W4Ujo1q>|eR%kKUOG>A%A*{}2F_
zgV23$`J+4qccJq@(ercwl(SG5xBS-wAfJVjx#hnV0Qn&Flw1CO07#e6b)d*U81WNV
zf&DYL{2c(3e<}ZPfCk)u#4Uesz&x;L0Y%~M2AG2VJ-7T_0Z?v2r?}<69iRvHR&MzR
z0v3b47%1{@Kfns?KmLLLOULnlI`%vNcZ}ozq;dTJcpU#<#eV1i5C6dbmE-t76Z at V2
z+2i>C=s5mw9>@PTu;2NA=pXq1-Z=h0hyBj~ugCHK;c@)`WE}tJVZZbLr+?u8hvWGF
zGWI+FzZ=K at C&%&si*fva3;Uh_hyQ{9?~LRBGuZF^|7sln9~{U3_2c+I7yF(6`~QLe
ztH$yFMeKL}?;gkh$H(#i^KtxNi2ct0-~NIB%g6D52KGDuzZu8>N5=7g<2e4$$A0Jk
zFaN;*HRJgI3idny_m1QL)N%aZHje*qW54tN2qw-?z$Wt(2ow1wFj;<rxCB2xHie(S
zC(UnwP2(r%i}UkhGW-M{DgK$596y09$uERW<tGp)@$bO&A?o7%Jn;Swcz+6dUq*so
z5WO!T&F_xhcN6F5L+|rS at vETsl_mK_(fcBk_)GEk!vg#Q0>cByNJ<K(h9L0><fu at e
zKw$aMz(BIUdq4!4Mh)-|^&tlagQOM`>K@=hC5J@#Qvzurm=D$66ND{~U=OmtZ-~Ep
zsD}^8T$|l#zMelH_6YQ(j=9o&L#e^;w8b1xL&zc2(6M_Vp at G354^n7>9)8?VL;ma?
zikFvrFqz`+;fD)&!NF9IQ1WP0e5k)Ub0a_A85bf)9XSD at Xp;XbTE9n`lbq3v<A&-*
zbNBxJrP1jA?n?0;i%~E&i0c0HPPlJ?XJ9xv#5eM1UU4!aG$M$KWX06eEXvzMEXs})
z7Ud=25ZD=j$7flT`v9SHEXsq!EQ)qAixL9JKF*>jq_ZelsVs^HxHG^!{S=GR1omdQ
zxA+8$@&nwWPO>O1 at P7Ll7R3V~0dCU(8^QfQ^6h`*+yBV7|B-M1Bj5f<zWtAU`ycuC
z|26sc-;rVeE$Q>WBpm*;wD)&X at Gnx|-;2`!N+SL%0Tiwy1uTkwK7dOV^SO3F&@bk{
z0x!HHe&f%&FUY<D|Fr+X(mmLZY~V=)Df!RxAuqn-DuAza2!V7d3{oWtWX_4$WK0&D
zfz8GiV5*olW{BBh9#{xQ$If7PuvchL19$%Q_n!p!C&~Ry<o=|%KWXky9IM3cVrb5s
zhZ_eZ--^PUQ?Qws3TA-0V>_@?j6m2yAn*`)348<r0+Ap>5GTkG$OL7AKEdtR at JGWO
z4GV=a34W8|Cj-AJ at S6%hS at _ApZyNmc;rH*<qW?<aD_N{uVQOgTpt?lK*i1=P$=2M$
zT*=hVY>krT%GIXe3~>%uUE&(z;|_H_C^T4UIT~@0b#?KPN1)eyc*fP(%+=P+V2!bn
z0!rheMT_Cj+rvXib&=X4yj0bdRa7*TRFLChkH7#gU+=}fs+#JH!D}Us*Gk~`A`i at z
z8fp+4=)c<CpK3s!?+(U=<dB7<VTC9tkZ0<WmH%b{@qgelGOsX4bZ`v;Uo$b|V!ky2
zGqWLJKHx4c36LOQiO|(z&>dJq6B`4~atU;8*3ji-L$j+d4Q^<$XA*`f14=+dsfA`S
z24D?cjx~q~eb5YI$PC>92JUXqEe1i?Q48ItK6*}^fRW){YiQ2hK%~(JWJ6aZ4pbbv
z_!20vZ0K67p?k%ki_V5-wjJ`T7P?O|*xR8wj{#A}8pMNkXwv)O*;;tk`VjaB;$S;e
za%&I^+M#PCgLo$nB2r8en9-NdK;06-4(`_Ao(<1fs}L~j2auk77?uce!r;ER9K;c*
zKA;bp_I3b|Eddh+Oa;gT)Bw7G)c{9;8z2Y}0iXkt07n4l0G9zb0rvrq0d0UDz*m5v
z9RZU9C;*lLOaP7mFTf^11Yjp%4<Hec0!Ra70I~pifMUQsKsBHq&;ob`=mmTRi~t1f
zVcZIk1t<cv0j7X801v<>Ks0~}NC8|1+yFcPv;f$EF94pk1WX7Z3786)30Sh0 at LS9B
zYwIQgZHySSaGY`VM7*V#gtrk>@YVsf4AY_ABSR}R3tB&UYz`FrJZwIufGI*-xDZpq
z7GaAqWoV<8K+C9xEydI^4NMc$!j?fhse|ca%b}v_LkqS7T1_L&7&F04u}GRPMP-pE
zjfT0RhQk$aN?bXu4c8JH><SHwcK~kkqJ at R{xZ*t#ZubrF4aE(dPV$#Kq3$$V1m=#~
zcW7O>6uk7O_y$n1(RrmY!;&%6iomb{Ps}6O175 at bkG;g*Q#VRE4{|N2hZ!{+|8!mn
z at mu2ht8L6;?H=szA2MbO_Vpk0c?}hHja-W at HPq<mLgY_JGkk_;)WI(7X9OX_-0lwZ
zrb3<udq8ebXjIHQ(t}2YRxmgiHwK0vCr at 8A@q`S4LDT at C&;p|W_&TL`B%b3y!6y$6
z2?4@=G$`0NAQU|v6o%ggg6;-G)Nq0(kH8Q at rTXC{G>DUE at 5oRpl(~0gSOC}G at L=d^
zFmA6sN>^~?hA}hB*k7!i?BqJ&1;91`@|@{dMsXduCGv}H%)%)Hu7y(uT+8oeFzOf)
z;PI>3IuJ5r)Zv#h7<KV-5BX`~6i8UWSVfF9#xp$96*AsG#2btBfC?Pw0n{s)O2rw)
z5T5m=QBBaC9`3OA&kM)@x&EKL?A!=r=1UZ4%fasRi(3h}^?^O~7q^8T1nm1S_VJgS
zI{~8swz&U%CjJ-mAuyi>WCMx-)qn;-JD>+Jh at ORTMF3I&Ie<K1AwUhF53m3 at 0z3gh
zfNg+yz#$6Z|EhQpFau9dB=N!U{R(CR%@W7b@|z at xL67I^#c2mI=;K^np=SyVpl<O+
z1C>C`)jcGH8jQ>-7~<1_K;-u=g6rmx0B%zVmo$$%B at mvP%`?{8VoE$-oc0zjWgah1
zqY9TMj~5=A7LV7M2g|^Wn$zVxUU);Q$Ah;3m?4iB-jEvec;T(5DUTPY)r2dU$Dh+&
zz_o?PpX%=ctsz{I$jlvQ9pnia3*!h+NNBK!JMMlQH*=mpiOig)A4^4M8kN($pnAr|
zD&sY)jV)A{;N3P{QsCwvve_dzl;biV?Efe6Ygqq3UHV-4AJtaw_OqDr?x;2^|Ao5{
zA7`xK7(~D{d4Kw;$qPa_wiZUIuJGR&TLY$*m=(4f>?`5F31)>qcZ;w02S+wUA at Gh-
zJ+41|_`Tn+WZc0P3&o&w#XuYY-+VC|Mg^Y(FfR--M=<`3GRT9<APFLBjG-8Lf;34O
zd)^2Dq8RQ^5cuZ{?{cbLB;5DKC?I!w!pJuiK!)c6F at Jb27=J5-`!t#RWH3AvjG at ZB
z5G356VXOrNk3Eep6_8k$0MPy^HIRY{c)UaL=K{bN8sv{Vghc%%9_SrUFr%us4MKpH
z2kv|0PaA^IK at c)Zg*WDdA?BJ7t_l!06-d1n$izwzqB5QjWXv4ibcc|X;N3th4BjP!
zMC^{omj?cjLBb|umUw#nz+`}jjADm at JdNUO#SP1s8{g5i2K;Tj74iMy*6?m1xP?J}
zhW?V$pYL!=PT)_^j?c+o^KmDnk$~rfKkgsO&k%4of_$=oG=$*k41)W?aEA<`MBpi-
zamy0rhbJBy8A`()FY6$<7mC*kPL7yza|pdbhS&t+Hg`NM3=a##>paT0Ki5dquA?1>
zc6dz*06%DW&H7m{g!nr7{tb5hpS^(LQS1ekC6pDEwUmvN<CSxjOOypwL{t{2D65=T
z^IAGfJybne{iOO8_3P@@>h<a`)qB)=G(<FHHD+mOYUpX$XgF#FXl&8gqmiVMp^>F=
zOQT%lg~l6=&l<xTlQhYi3pF)0shWYBTQ%b}Gtj0_GG|}tE7cseprsF%qJ{-c8!TNm
zuxzTfg7$SZ&eliy1$9Q*MCFjmOs#C)o4U_*J9JsPy}HhN9(o(~qV>?mQM9MjM0vgP
z3e{DrYgD~d->YuW+pU+Thc=X=dzMQ)mxL}ovNU_?L at jx(HQJ%tOl`E$6oo%Qd#UzP
z-55R8s-d%ICn(D)UshICF;-c)BuC at uvb1IUb%b=6>Uryh>*eZI>%BycQX*#$tAujB
zN~cPgs;=4{wM9#>FFm0>Pd5SGPviI%qw-EAY{~yB){I@^h=MS_cWhx{amW^T;Udd%
zge{IR^WJmbx%=)tkt3x-2wJ2wRfs5>BCQ?>f?cY>H6j)vq!0-R!3!c5DhHACBq>rX
zr;wARh$g6oh0pbG2u?r4%=i6fsu|}^JLB{6w{j3pg+Ifks2k<fN7Ygn6<0fJceUby
z5jvvN!H3~-coycOYV;*~UvZKr*juJ%;1Ie{XP<aOG)05<s2o<qEj3 at M=?%T3zv_;@
z)M?`x-#j+jJhS>tnwmK^e~ojHw4C^>VGO2W0qXDp*5Na3LlYk0BkQxoCpe1Z_!6h_
z4bI^r)^Qp4 at d#u5g%_A&z070%>;-$pUb7bKuydB?eZ0UKAGW$r at L68tZ}|#e=i9u+
zJN%rdMV}}LCWggRF(GC}O|0G?;P}pK7d*&903{d#CzDG4f#1O at tidMiLK|ZE4Oie|
zMtLf$^2%356{wN|C6wc*5?wZFi*{(&GI>C4`c6M6rW5K~I{(l=x}s}xq$_(YsTt|X
utjtSa7G)qy(k4SH@#z{Ibg{?Mo<R?@m`5Lr7+}e=FR+XX|N92sYuo^mtqZpR

diff --git a/VisualC/resource.h b/VisualC/resource.h
new file mode 100755
--- /dev/null
+++ b/VisualC/resource.h
@@ -0,0 +1,15 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by Version.rc
+//
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        101
+#define _APS_NEXT_COMMAND_VALUE         40001
+#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
diff --git a/VisualC/showimage/showimage.dsp b/VisualC/showimage/showimage.dsp
new file mode 100755
--- /dev/null
+++ b/VisualC/showimage/showimage.dsp
@@ -0,0 +1,106 @@
+# Microsoft Developer Studio Project File - Name="showimage" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=showimage - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "showimage.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "showimage.mak" CFG="showimage - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "showimage - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "showimage - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE 
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "showimage - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib SDL.lib SDLmain.lib /nologo /subsystem:windows /machine:I386
+
+!ELSEIF  "$(CFG)" == "showimage - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib SDL.lib SDLmain.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "showimage - Win32 Release"
+# Name "showimage - Win32 Debug"
+# Begin Group "Showimage Sources"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\showimage.c
+# End Source File
+# End Group
+# Begin Group "External Libraries"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\Release\SDL_image.lib
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/VisualC/showimage/showimage.sln b/VisualC/showimage/showimage.sln
new file mode 100755
--- /dev/null
+++ b/VisualC/showimage/showimage.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "showimage", "showimage.vcproj", "{FEE80C5D-762E-4E57-9BCB-928749E8203F}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{FEE80C5D-762E-4E57-9BCB-928749E8203F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{FEE80C5D-762E-4E57-9BCB-928749E8203F}.Debug|Win32.Build.0 = Debug|Win32
+		{FEE80C5D-762E-4E57-9BCB-928749E8203F}.Release|Win32.ActiveCfg = Release|Win32
+		{FEE80C5D-762E-4E57-9BCB-928749E8203F}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/VisualC/showimage/showimage.vcproj b/VisualC/showimage/showimage.vcproj
new file mode 100755
--- /dev/null
+++ b/VisualC/showimage/showimage.vcproj
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="showimage"
+	ProjectGUID="{FEE80C5D-762E-4E57-9BCB-928749E8203F}"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory=".\Debug"
+			IntermediateDirectory=".\Debug"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="false"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				PreprocessorDefinitions="_DEBUG"
+				MkTypLibCompatible="true"
+				SuppressStartupBanner="true"
+				TargetEnvironment="1"
+				TypeLibraryName=".\Debug/showimage.tlb"
+				HeaderFileName=""
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+				MinimalRebuild="true"
+				RuntimeLibrary="2"
+				PrecompiledHeaderFile=".\Debug/showimage.pch"
+				AssemblerListingLocation=".\Debug/"
+				ObjectFile=".\Debug/"
+				ProgramDataBaseFileName=".\Debug/"
+				WarningLevel="3"
+				SuppressStartupBanner="true"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="_DEBUG"
+				Culture="1033"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="SDL.lib SDLmain.lib"
+				OutputFile=".\Debug/showimage.exe"
+				LinkIncremental="2"
+				SuppressStartupBanner="true"
+				GenerateDebugInformation="true"
+				ProgramDatabaseFile=".\Debug/showimage.pdb"
+				SubSystem="2"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+				SuppressStartupBanner="true"
+				OutputFile=".\Debug/showimage.bsc"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory=".\Release"
+			IntermediateDirectory=".\Release"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="false"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				PreprocessorDefinitions="NDEBUG"
+				MkTypLibCompatible="true"
+				SuppressStartupBanner="true"
+				TargetEnvironment="1"
+				TypeLibraryName=".\Release/showimage.tlb"
+				HeaderFileName=""
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				InlineFunctionExpansion="1"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+				StringPooling="true"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				PrecompiledHeaderFile=".\Release/showimage.pch"
+				AssemblerListingLocation=".\Release/"
+				ObjectFile=".\Release/"
+				ProgramDataBaseFileName=".\Release/"
+				WarningLevel="3"
+				SuppressStartupBanner="true"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="NDEBUG"
+				Culture="1033"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="SDL.lib SDLmain.lib"
+				OutputFile=".\Release/showimage.exe"
+				LinkIncremental="1"
+				SuppressStartupBanner="true"
+				ProgramDatabaseFile=".\Release/showimage.pdb"
+				SubSystem="2"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+				SuppressStartupBanner="true"
+				OutputFile=".\Release/showimage.bsc"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Showimage Sources"
+			>
+			<File
+				RelativePath="..\..\showimage.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						PreprocessorDefinitions=""
+					/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="External Libraries"
+			>
+			<File
+				RelativePath="..\Release\SDL_image.lib"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
@@ -13,9 +13,9 @@
 
 MAJOR_VERSION=1
 MINOR_VERSION=2
-MICRO_VERSION=10
-INTERFACE_AGE=2
-BINARY_AGE=10
+MICRO_VERSION=11
+INTERFACE_AGE=3
+BINARY_AGE=11
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
 
 AC_SUBST(MAJOR_VERSION)
diff --git a/version.rc b/version.rc
--- a/version.rc
+++ b/version.rc
@@ -9,8 +9,8 @@
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,2,10,0
- PRODUCTVERSION 1,2,10,0
+ FILEVERSION 1,2,11,0
+ PRODUCTVERSION 1,2,11,0
  FILEFLAGSMASK 0x3fL
  FILEFLAGS 0x0L
  FILEOS 0x40004L
@@ -23,12 +23,12 @@
         BEGIN
             VALUE "CompanyName", "\0"
             VALUE "FileDescription", "SDL_image\0"
-            VALUE "FileVersion", "1, 2, 10, 0\0"
+            VALUE "FileVersion", "1, 2, 11, 0\0"
             VALUE "InternalName", "SDL_image\0"
             VALUE "LegalCopyright", "Copyright © 2009 Sam Lantinga\0"
             VALUE "OriginalFilename", "SDL_image.dll\0"
             VALUE "ProductName", "Simple DirectMedia Layer\0"
-            VALUE "ProductVersion", "1, 2, 10, 0\0"
+            VALUE "ProductVersion", "1, 2, 11, 0\0"
         END
     END
     BLOCK "VarFileInfo"


More information about the commits mailing list