From 6920073a1cd747cdaf5b9dc393d16a43d4d1a6bd Mon Sep 17 00:00:00 2001 From: tangtingting Date: Thu, 26 Jun 2025 15:42:34 +0800 Subject: [PATCH] New upstream version 25 --- ImageMagick.spec.in | 298 +- LICENSE | 3 + Magick++/bin/Magick++-config.in | 3 + Magick++/demo/analyze.cpp | 1 + Magick++/demo/button.cpp | 1 + Magick++/demo/demo.cpp | 1 + Magick++/demo/detrans.cpp | 1 + Magick++/demo/flip.cpp | 1 + Magick++/demo/gravity.cpp | 1 + Magick++/demo/piddle.cpp | 1 + Magick++/demo/shapes.cpp | 1 + Magick++/demo/zoom.cpp | 1 + Magick++/lib/Color.cpp | 7 +- Magick++/lib/Magick++/ImageRef.h | 1 + Makefile.in | 38 +- PerlMagick/MANIFEST | 2 - PerlMagick/Makefile.PL | 16 +- PerlMagick/Makefile.PL.in | 2 +- PerlMagick/README.txt | 4 + PerlMagick/default/Makefile.PL | 16 +- PerlMagick/default/Makefile.PL.in | 2 +- PerlMagick/demo/Generic.ttf | Bin 0 -> 18444 bytes PerlMagick/demo/Makefile | 4 +- PerlMagick/demo/annotate.pl | 4 +- PerlMagick/demo/annotate_words.pl | 5 +- PerlMagick/demo/button.pl | 4 +- PerlMagick/demo/compose-specials.pl | 5 +- PerlMagick/demo/composite.pl | 4 +- PerlMagick/demo/demo.pl | 5 +- PerlMagick/demo/dst.png | Bin 437 -> 0 bytes PerlMagick/demo/lsys.pl | 2 +- PerlMagick/demo/piddle.pl | 4 +- PerlMagick/demo/pixel-fx.pl | 5 +- PerlMagick/demo/settings.pl | 2 +- PerlMagick/demo/shadow-text.pl | 4 +- PerlMagick/demo/shapes.pl | 4 +- PerlMagick/demo/single-pixels.pl | 5 +- PerlMagick/demo/src.png | Bin 400 -> 0 bytes PerlMagick/demo/steganography.pl | 10 +- PerlMagick/demo/tree.pl | 2 +- PerlMagick/quantum/Makefile.PL | 16 +- PerlMagick/quantum/Makefile.PL.in | 2 +- PerlMagick/quantum/quantum.pm | 2 +- PerlMagick/quantum/quantum.xs | 26 + PerlMagick/quantum/quantum.xs.in | 26 + PerlMagick/t/input.pict | Bin 10428 -> 10290 bytes PerlMagick/t/montage.t | 4 +- PerlMagick/t/ttf/input.ttf | Bin 0 -> 18444 bytes README.md | 31 +- aclocal.m4 | 5 +- coders/aai.c | 10 +- coders/art.c | 10 +- coders/avs.c | 8 +- coders/bgr.c | 30 +- coders/bmp.c | 64 +- coders/braille.c | 5 +- coders/cals.c | 3 +- coders/caption.c | 134 +- coders/cin.c | 10 +- coders/cip.c | 7 +- coders/clipboard.c | 6 +- coders/cmyk.c | 36 +- coders/cut.c | 5 +- coders/dcm.c | 20 +- coders/dds.c | 15 +- coders/debug.c | 5 +- coders/dib.c | 12 +- coders/djvu.c | 2 + coders/dng.c | 110 +- coders/dps.c | 5 +- coders/dpx.c | 6 +- coders/ept.c | 5 +- coders/exr.c | 12 +- coders/fax.c | 8 +- coders/fits.c | 12 +- coders/flif.c | 4 +- coders/fpx.c | 86 +- coders/ghostscript-private.h | 4 +- coders/gif.c | 13 +- coders/gray.c | 22 +- coders/hald.c | 3 +- coders/hdr.c | 18 +- coders/heic.c | 216 +- coders/hrz.c | 47 +- coders/icon.c | 730 +-- coders/info.c | 5 +- coders/inline.c | 5 +- coders/jbig.c | 41 +- coders/jnx.c | 2 + coders/jp2.c | 78 +- coders/jpeg.c | 115 +- coders/json.c | 34 +- coders/label.c | 127 +- coders/mac.c | 5 +- coders/map.c | 8 +- coders/mat.c | 12 +- coders/meta.c | 70 +- coders/miff.c | 31 +- coders/mono.c | 10 +- coders/mpc.c | 15 +- coders/mtv.c | 8 +- coders/mvg.c | 18 +- coders/otb.c | 10 +- coders/palm.c | 3 +- coders/pcd.c | 6 +- coders/pcl.c | 25 +- coders/pcx.c | 12 +- coders/pdb.c | 10 +- coders/pdf.c | 9 +- coders/pgx.c | 8 +- coders/pict.c | 22 +- coders/pix.c | 3 +- coders/png.c | 238 +- coders/pnm.c | 9 +- coders/ps.c | 5 +- coders/ps2.c | 5 +- coders/ps3.c | 5 +- coders/psd.c | 33 +- coders/raw.c | 8 +- coders/rgb.c | 28 +- coders/rgf.c | 10 +- coders/rla.c | 5 +- coders/rle.c | 11 +- coders/scr.c | 5 +- coders/sct.c | 18 +- coders/sfw.c | 8 +- coders/sgi.c | 56 +- coders/sixel.c | 10 +- coders/sun.c | 8 +- coders/svg.c | 59 +- coders/tga.c | 43 +- coders/thumbnail.c | 4 +- coders/tiff.c | 959 ++-- coders/tim.c | 3 +- coders/ttf.c | 5 +- coders/txt.c | 8 +- coders/uil.c | 5 +- coders/url.c | 4 +- coders/uyvy.c | 10 +- coders/vicar.c | 10 +- coders/video.c | 14 +- coders/viff.c | 8 +- coders/vips.c | 6 +- coders/wbmp.c | 10 +- coders/webp.c | 71 +- coders/wpg.c | 5 +- coders/xbm.c | 58 +- coders/xpm.c | 14 +- coders/xwd.c | 5 +- coders/ycbcr.c | 30 +- coders/yuv.c | 34 +- config/Makefile.am | 2 + config/config.guess | 70 +- config/config.h.in | 377 +- config/config.sub | 239 +- config/configure.xml.in | 4 +- config/delegates.xml.in | 126 +- config/english.xml | 13 +- config/francais.xml | 13 +- config/install-sh | 10 +- config/mime.xml | 8 +- config/policy-open.xml | 4 +- config/policy-websafe.xml | 4 +- config/type-urw-base35-type1.xml.in | 50 + config/type-urw-base35.xml.in | 74 +- configure | 7351 ++++++++++++++---------- configure.ac | 396 +- filters/analyze.c | 6 - images/donate.png | Bin 0 -> 1423 bytes images/examples.jpg | Bin 968674 -> 1332140 bytes images/networkredux.png | Bin 0 -> 3233 bytes index.html | 186 +- m4/Makefile.am | 1 - m4/ac_func_fseeko.m4 | 72 - m4/ax_pthread.m4 | 2 +- m4/version.m4 | 8 +- magick/MagickCore-config.in | 5 +- magick/Makefile.am | 2 + magick/accelerate.c | 7 +- magick/animate.c | 62 +- magick/annotate.c | 35 +- magick/attribute.c | 118 +- magick/blob.c | 55 +- magick/blob.h | 2 +- magick/cache-private.h | 15 + magick/cache.c | 172 +- magick/channel.c | 60 +- magick/channel.h | 20 + magick/cipher.c | 11 +- magick/color.c | 23 +- magick/colormap.c | 29 +- magick/colorspace-private.h | 9 + magick/colorspace.c | 112 +- magick/compare.c | 116 +- magick/composite.c | 34 +- magick/compress.c | 4 +- magick/constitute.c | 23 +- magick/delegate-private.h | 2 +- magick/delegate.c | 145 +- magick/deprecate.c | 16 +- magick/display.c | 89 +- magick/distort.c | 25 +- magick/distribute-cache.c | 116 +- magick/draw.c | 203 +- magick/effect.c | 27 +- magick/feature.c | 5 +- magick/fourier.c | 46 +- magick/fx.c | 17 +- magick/gem-private.h | 23 +- magick/gem.c | 12 +- magick/geometry.c | 12 +- magick/histogram.c | 200 +- magick/identify.c | 27 + magick/image-private.h | 35 +- magick/image.c | 75 +- magick/image.h | 22 +- magick/list.c | 12 +- magick/log.c | 38 +- magick/magic.c | 13 +- magick/magick-baseconfig.h | 435 +- magick/magick-config.h | 4 +- magick/magick-private.h | 32 + magick/magick.c | 30 +- magick/matrix.c | 10 +- magick/memory-private.h | 3 +- magick/memory.c | 29 +- magick/method-attribute.h | 2 +- magick/mime.c | 3 +- magick/module.c | 3 +- magick/nt-base-private.h | 2 +- magick/nt-base.c | 104 +- magick/nt-base.h | 31 +- magick/opencl-private.h | 7 + magick/opencl.c | 7 +- magick/option.c | 2 + magick/paint.c | 70 +- magick/pixel.c | 5 +- magick/policy.c | 209 +- magick/prepress.c | 2 +- magick/profile.c | 30 +- magick/property.c | 76 +- magick/quantize.c | 397 +- magick/quantum-export.c | 335 +- magick/quantum-import.c | 317 +- magick/random.c | 9 +- magick/resample.c | 6 +- magick/resize.c | 94 +- magick/resource.c | 99 +- magick/shear.c | 14 +- magick/signature.c | 16 +- magick/splay-tree.c | 16 +- magick/statistic.c | 172 +- magick/stream-private.h | 3 + magick/stream.c | 24 +- magick/string-private.h | 24 + magick/string.c | 14 +- magick/studio.h | 6 +- magick/thread-private.h | 21 +- magick/threshold.c | 10 +- magick/timer-private.h | 48 +- magick/timer.c | 49 +- magick/transform.c | 40 +- magick/type.c | 17 +- magick/utility-private.h | 79 +- magick/utility.c | 6 +- magick/version.c | 8 +- magick/version.h | 14 +- magick/version.h.in | 2 +- magick/vision.c | 2 +- magick/visual-effects.c | 54 +- magick/widget.c | 11 +- magick/xml-tree.c | 20 +- magick/xwindow.c | 63 +- wand/MagickWand-config.in | 3 + wand/compare.c | 168 +- wand/drawing-wand.c | 16 +- wand/identify.c | 3 + wand/magick-property.c | 16 +- wand/method-attribute.h | 2 +- wand/mogrify.c | 27 +- wand/studio.h | 6 +- www/Magick++/Documentation.html | 34 +- www/Magick++/Install.html | 8 +- www/Magick++/index.html | 12 +- www/Magick++/logo.png | Bin 0 -> 11882 bytes www/Magick++/magick.css | 4 +- www/advanced-linux-installation.html | 169 +- www/advanced-unix-installation.html | 8 +- www/advanced-windows-installation.html | 134 +- www/animate.html | 138 +- www/api/Image++.html | 12 +- www/api/animate.html | 125 +- www/api/annotate.html | 139 +- www/api/attribute.html | 163 +- www/api/blob.html | 163 +- www/api/cache-view.html | 207 +- www/api/cache.html | 183 +- www/api/channel.html | 143 +- www/api/cipher.html | 155 +- www/api/color.html | 163 +- www/api/colormap.html | 131 +- www/api/colorspace.html | 143 +- www/api/compare.html | 127 +- www/api/composite.html | 127 +- www/api/constitute.html | 151 +- www/api/decorate.html | 135 +- www/api/deprecate.html | 343 +- www/api/display.html | 125 +- www/api/distort.html | 139 +- www/api/draw.html | 171 +- www/api/drawing-wand.html | 663 ++- www/api/effect.html | 195 +- www/api/enhance.html | 207 +- www/api/exception.html | 187 +- www/api/feature.html | 139 +- www/api/fourier.html | 135 +- www/api/fx.html | 127 +- www/api/histogram.html | 151 +- www/api/image-view.html | 199 +- www/api/image.html | 287 +- www/api/layer.html | 167 +- www/api/list.html | 227 +- www/api/magick++-classes.html | 12 +- www/api/magick-deprecate.html | 1837 +----- www/api/magick-image.html | 1191 ++-- www/api/magick-property.html | 403 +- www/api/magick-wand.html | 219 +- www/api/magick.html | 143 +- www/api/memory.html | 195 +- www/api/mime.html | 147 +- www/api/module.html | 187 +- www/api/mogrify.html | 127 +- www/api/monitor.html | 135 +- www/api/montage.html | 125 +- www/api/morphology.html | 163 +- www/api/paint.html | 143 +- www/api/pixel-iterator.html | 195 +- www/api/pixel-wand.html | 379 +- www/api/profile.html | 163 +- www/api/property.html | 167 +- www/api/quantize.html | 175 +- www/api/registry.html | 155 +- www/api/resize.html | 163 +- www/api/resource.html | 155 +- www/api/segment.html | 127 +- www/api/shear.html | 143 +- www/api/signature.html | 127 +- www/api/statistic.html | 167 +- www/api/stream.html | 127 +- www/api/transform.html | 191 +- www/api/version.html | 171 +- www/api/wand-view.html | 187 +- www/architecture.html | 192 +- www/assets/bootstrap.bundle.min.js | 7 + www/assets/bootstrap.min.css | 6 + www/assets/color-modes.js | 78 + www/changelog.html | 1408 ++--- www/cipher.html | 138 +- www/cite.html | 134 +- www/color-management.html | 138 +- www/color.html | 151 +- www/command-line-options.html | 1388 ++--- www/command-line-processing.html | 177 +- www/command-line-tools.html | 138 +- www/compare.html | 144 +- www/compose.html | 134 +- www/composite.html | 138 +- www/conjure.html | 138 +- www/connected-components.html | 134 +- www/contact.html | 137 +- www/convert.html | 136 +- www/defines.html | 501 +- www/develop.html | 152 +- www/display.html | 138 +- www/distribute-pixel-cache.html | 134 +- www/download.html | 230 +- www/escape.html | 136 +- www/examples.html | 134 +- www/exception.html | 134 +- www/export.html | 134 +- www/formats.html | 246 +- www/fx.html | 138 +- www/gradient.html | 136 +- www/high-dynamic-range.html | 136 +- www/history.html | 138 +- www/identify.html | 148 +- www/import.html | 144 +- www/index.html | 184 +- www/install-source.html | 168 +- www/jp2.html | 136 +- www/license.html | 138 +- www/links.html | 158 +- www/magick++.html | 142 +- www/magick-core.html | 142 +- www/magick-script.html | 248 +- www/magick-vector-graphics.html | 142 +- www/magick-wand.html | 146 +- www/magick.html | 770 +-- www/miff.html | 138 +- www/mirror.html | 164 +- www/mogrify.html | 138 +- www/montage.html | 142 +- www/motion-picture.html | 136 +- www/news.html | 140 +- www/opencl.html | 134 +- www/openmp.html | 134 +- www/perl-magick.html | 178 +- www/porting.html | 138 +- www/privacy-policy.html | 178 + www/quantize.html | 138 +- www/resources.html | 212 +- www/search.html | 170 +- www/security-policy.html | 156 +- www/sitemap.html | 195 +- www/source/configure.xml | 2 +- www/stream.html | 136 +- www/support.html | 147 +- www/webp.html | 134 +- 418 files changed, 27413 insertions(+), 18822 deletions(-) create mode 100644 PerlMagick/demo/Generic.ttf delete mode 100644 PerlMagick/demo/dst.png delete mode 100644 PerlMagick/demo/src.png create mode 100644 PerlMagick/t/ttf/input.ttf create mode 100644 config/type-urw-base35-type1.xml.in create mode 100644 images/donate.png create mode 100644 images/networkredux.png delete mode 100644 m4/ac_func_fseeko.m4 create mode 100644 magick/magick-private.h create mode 100644 www/Magick++/logo.png create mode 100644 www/assets/bootstrap.bundle.min.js create mode 100644 www/assets/bootstrap.min.css create mode 100644 www/assets/color-modes.js create mode 100644 www/privacy-policy.html diff --git a/ImageMagick.spec.in b/ImageMagick.spec.in index e94a58e..d97858f 100644 --- a/ImageMagick.spec.in +++ b/ImageMagick.spec.in @@ -1,65 +1,130 @@ -%global VERSION @PACKAGE_BASE_VERSION@ -%global Patchlevel @MAGICK_PATCHLEVEL_VERSION@ +%bcond_without tests -Name: @PACKAGE_NAME@ -Version: %{VERSION} -Release: %{Patchlevel} -Summary: Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition resize, rotate, shear, distort and transform images. -License: https://imagemagick.org/script/license.php -Url: https://imagemagick.org/ -Source0: https://imagemagick.org/download/%{name}/%{name}-%{VERSION}-%{Patchlevel}.tar.xz +%bcond_without libheif + +%if 0%{?flatpak} +%bcond_with perl +%else +%bcond_without perl +%endif + +# Disable automatic .la file removal +%global __brp_remove_la_files %nil -BuildRequires: pkgconfig(bzip2), pkgconfig(freetype2), pkgconfig(libjpeg), pkgconfig(libpng) -BuildRequires: pkgconfig(libtiff-4), giflib-devel, pkgconfig(zlib), perl-devel >= 5.8.1 +%global Version @PACKAGE_BASE_VERSION@ +%global Patchlevel @MAGICK_PATCHLEVEL_VERSION@ +%global libsover 7 +%global libcxxsover 9 + +Name: ImageMagick +Epoch: 1 +Version: %{Version} +Release: %{Patchlevel} +Summary: Use ImageMagick to create, edit, convert, and display raster image files. + +License: ImageMagick +URL: https://imagemagick.org/ +Source0: https://imagemagick.org/archive/releases/%{name}-%{Version}-%{Patchlevel}.tar.xz + +BuildRequires: pkgconfig(bzip2) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libtiff-4) +BuildRequires: giflib-devel +BuildRequires: pkgconfig(zlib) +%if %{with perl} +BuildRequires: perl-devel >= 5.8.1 BuildRequires: perl-generators -BuildRequires: libgs-devel, ghostscript-x11 +%endif +%if 0%{?rhel} && 0%{?rhel} < 8 +BuildRequires: ghostscript-devel +%else +BuildRequires: libgs-devel +%endif BuildRequires: pkgconfig(ddjvuapi) -BuildRequires: pkgconfig(libwmf), pkgconfig(jasper), libtool-ltdl-devel -BuildRequires: pkgconfig(x11), pkgconfig(xext), pkgconfig(xt) -BuildRequires: pkgconfig(lcms2), pkgconfig(libxml-2.0), pkgconfig(librsvg-2.0) +BuildRequires: pkgconfig(libwmf) +BuildRequires: pkgconfig(jasper) +BuildRequires: libtool-ltdl-devel +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xt) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(librsvg-2.0) +%if 0%{?rhel} && 0%{?rhel} < 9 +BuildRequires: pkgconfig(IlmBase), pkgconfig(OpenEXR) < 2.5.6 +%else BuildRequires: pkgconfig(OpenEXR) -BuildRequires: pkgconfig(fftw3), pkgconfig(libwebp) +%endif +BuildRequires: pkgconfig(fftw3) +BuildRequires: pkgconfig(libwebp) BuildRequires: jbigkit-devel +BuildRequires: pkgconfig(libjxl) BuildRequires: pkgconfig(libopenjp2) >= 2.1.0 BuildRequires: pkgconfig(libcgraph) >= 2.9.0 BuildRequires: pkgconfig(raqm) +%if 0%{?fedora} || 0%{?rhel} > 8 BuildRequires: pkgconfig(lqr-1) +%endif BuildRequires: pkgconfig(libraw) >= 0.14.8 BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(libzip) >= 1.0.0 +BuildRequires: pkgconfig(pango) >= 1.28.1 +BuildRequires: pkgconfig(pangocairo) >= 1.28.1 +BuildRequires: urw-base35-fonts-devel BuildRequires: autoconf automake gcc gcc-c++ +BuildRequires: make +BuildRequires: gnupg2 +# for doc +BuildRequires: doxygen -Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +# allow smooth upgrade for 3rd party repository +# providing latest version/soname as ImageMagick7 +Obsoletes: %{name}6 < %{epoch}:%{version}-%{release} +Provides: %{name}6 = %{epoch}:%{version}-%{release} %description -ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves. +ImageMagick is a free and open-source software suite used for creating, +editing, converting, and displaying raster image files. It can read and write +over 200 different image file formats. ImageMagick is a powerful tool for +working with images on the command line or through programming interfaces. It +supports a wide range of image processing operations, including resizing, +cropping, rotating, and various color manipulations. -The functionality of ImageMagick is typically utilized from the command-line or you can use the features from programs written in your favorite language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), Lua (LuaJIT), NMagick (Neko/haXe), Magick.NET (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically. +ImageMagick is widely used in web development, graphic design, and other +areas where image processing is required. It provides a versatile and +efficient way to handle a variety of image-related tasks. Additionally, +ImageMagick has bindings for various programming languages, making it easy +to integrate into software applications +and workflows. -ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes. - -ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under the Apache 2.0 license. - -The ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to prevent security vulnerabilities. - -The authoritative ImageMagick web site is https://imagemagick.org. The authoritative source code repository is http://git.imagemagick.org/repos/ImageMagick. We maintain a source code mirror at GitHub. %package devel -Summary: Library links and header files for ImageMagick application development -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Summary: Library links and header files for ImageMagick app development +Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: %{name}6-devel < %{epoch}:%{version}-%{release} +Provides: %{name}6-devel = %{epoch}:%{version}-%{release} %description devel -ImageMagick-devel contains the library links and header files you'll -need to develop ImageMagick applications. ImageMagick is an image -manipulation program. +ImageMagick-devel contains the library links and header files you'll need to +develop ImageMagick applications. ImageMagick is an image manipulation program. + +If you want to create applications that will use ImageMagick code or APIs, +you need to install ImageMagick-devel as well as ImageMagick. You do not +need to install it if you just want to use ImageMagick, however. -If you want to create applications that will use ImageMagick code or -APIs, you need to install ImageMagick-devel as well as ImageMagick. -You do not need to install it if you just want to use ImageMagick, -however. %package libs Summary: ImageMagick libraries to link with +Obsoletes: %{name}6-libs < %{epoch}:%{version}-%{release} +Provides: %{name}6-libs = %{epoch}:%{version}-%{release} +# These may be used for some functions +Recommends: urw-base35-fonts +# default font is OpenSans-Regular +Recommends: open-sans-fonts %description libs This packages contains a shared libraries to use within other applications. @@ -67,40 +132,63 @@ This packages contains a shared libraries to use within other applications. %package djvu Summary: DjVu plugin for ImageMagick -Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: %{name}6-djvu < %{epoch}:%{version}-%{release} +Provides: %{name}6-djvu = %{epoch}:%{version}-%{release} %description djvu This packages contains a plugin for ImageMagick which makes it possible to save and load DjvU files from ImageMagick and libMagickCore using applications. -%package doc -Summary: ImageMagick HTML documentation +%if %{with libheif} +%package heic +Summary: HEIC plugin for ImageMagick +BuildRequires: pkgconfig(libheif) >= 1.4.0 +%if 0%{?rhel} == 7 +# ensure we use our on EL-7 +Requires: libheif%{?_isa} >= 1.4.0 +%endif +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +%description heic +This packages contains a plugin for ImageMagick which makes it possible to +save and load HEIC files from ImageMagick and libMagickCore using applications. +%endif + + +%package doc +Summary: ImageMagick html documentation +Obsoletes: %{name}6-doc < %{epoch}:%{version}-%{release} +Provides: %{name}6-doc = %{epoch}:%{version}-%{release} %description doc -ImageMagick documentation, this package contains usage (for the -commandline tools) and API (for the libraries) documentation in HTML format. +ImageMagick documentation, this package contains usage (for the commandline +tools) and API (for the libraries) documentation in HTML format. Note this documentation can also be found on the ImageMagick website: -https://imagemagick.org/. +https://imagemagick.org/ +%if %{with perl} %package perl -Summary: ImageMagick perl bindings -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) - +Summary: ImageMagick perl bindings +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: %{name}6-perl < %{epoch}:%{version}-%{release} +Provides: %{name}6-perl = %{epoch}:%{version}-%{release} %description perl Perl bindings to ImageMagick. Install ImageMagick-perl if you want to use any perl scripts that use ImageMagick. +%endif %package c++ -Summary: ImageMagick Magick++ library (C++ bindings) -Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Summary: ImageMagick Magick++ library (C++ bindings) +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: %{name}6-c++ < %{epoch}:%{version}-%{release} +Provides: %{name}6-c++ = %{epoch}:%{version}-%{release} %description c++ This package contains the Magick++ library, a C++ binding to the ImageMagick @@ -110,66 +198,85 @@ Install ImageMagick-c++ if you want to use any applications that use Magick++. %package c++-devel -Summary: C++ bindings for the ImageMagick library -Requires: %{name}-c++%{?_isa} = %{version}-%{release} -Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Summary: C++ bindings for the ImageMagick library +Requires: %{name}-c++%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: %{name}6-c++-devel < %{epoch}:%{version}-%{release} +Provides: %{name}6-c++-devel = %{epoch}:%{version}-%{release} %description c++-devel ImageMagick-devel contains the static libraries and header files you'll need to develop ImageMagick applications using the Magick++ C++ bindings. ImageMagick is an image manipulation program. -If you want to create applications that will use Magick++ code -or APIs, you'll need to install ImageMagick-c++-devel, ImageMagick-devel and -ImageMagick. - +If you want to create applications that will use Magick++ code or APIs, you'll +need to install ImageMagick-c++-devel, ImageMagick-devel and ImageMagick. You don't need to install it if you just want to use ImageMagick, or if you want to develop/compile applications using the ImageMagick C interface, however. %prep -%autosetup -p1 -n %{name}-%{VERSION}-%{Patchlevel} +%autosetup -p1 -n %{name}-%{Version}-%{Patchlevel} # for %%doc mkdir Magick++/examples cp -p Magick++/demo/*.cpp Magick++/demo/*.miff Magick++/examples + %build -autoconf -f -i +autoconf -f -i -v +# Reduce thread contention, upstream sets this flag for Linux hosts export CFLAGS="%{optflags} -DIMPNG_SETJMP_IS_THREAD_SAFE" -%configure --enable-shared \ +%configure \ + --enable-shared \ --disable-static \ --with-modules \ +%if %{with perl} --with-perl \ + --with-perl-options="INSTALLDIRS=vendor %{?perl_prefix} CC='%__cc -L$PWD/magick/.libs' LDDLFLAGS='-shared -L$PWD/magick/.libs'" \ +%endif --with-x \ --with-threads \ --with-magick_plus_plus \ --with-gslib \ + --with-pango \ + --with-fftw \ --with-wmf \ --with-webp \ --with-openexr \ --with-rsvg \ --with-xml \ - --with-perl-options="INSTALLDIRS=vendor %{?perl_prefix} CC='%__cc -L$PWD/magick/.libs' LDDLFLAGS='-shared -L$PWD/magick/.libs'" \ + --with-urw-base35-font-dir="%{urw_base35_fontpath}" \ --without-dps \ --without-gcc-arch \ --with-jbig \ + --with-jxl \ --with-openjp2 \ --with-raw \ +%if 0%{?fedora} || 0%{?rhel} > 8 --with-lqr \ +%endif --with-gvc \ - --with-raqm + --with-raqm \ +%if %{with libheif} + --with-heic \ +%endif # Do *NOT* use %%{?_smp_mflags}, this causes PerlMagick to be silently misbuild -make -j3 +make -j6 +# Generate API docs +make html-local %install %make_install -cp -a www/source %{buildroot}%{_datadir}/doc/%{name}-%{VERSION} + +cp -a www/source %{buildroot}%{_datadir}/doc/%{name}-%{Version} +# Do NOT remove .la files for codecs rm %{buildroot}%{_libdir}/*.la +%if %{with perl} # perlmagick: fix perl path of demo files %{__perl} -MExtUtils::MakeMaker -e 'MY->fixin(@ARGV)' PerlMagick/demo/*.pl @@ -179,20 +286,20 @@ find %{buildroot} -name ".packlist" |xargs rm -f find %{buildroot} -name "perllocal.pod" |xargs rm -f # perlmagick: build files list -echo "%defattr(-,root,root,-)" > perl-pkg-files find %{buildroot}/%{_libdir}/perl* -type f -print \ - | sed "s@^%{buildroot}@@g" > perl-pkg-files -#find %{buildroot}%{perl_vendorarch} -type d -print \ -# | sed "s@^%{buildroot}@%dir @g" \ -# | grep -v '^%dir %{perl_vendorarch}$' \ -# | grep -v '/auto$' >> perl-pkg-files + | sed "s@^%{buildroot}@@g" > perl-pkg-files +find %{buildroot}%{perl_vendorarch} -type d -print \ + | sed "s@^%{buildroot}@%dir @g" \ + | grep -v '^%dir %{perl_vendorarch}$' \ + | grep -v '/auto$' >> perl-pkg-files if [ -z perl-pkg-files ] ; then - echo "ERROR: EMPTY FILE LIST" - exit -1 + echo "ERROR: EMPTY FILE LIST" + exit -1 fi +%endif # fix multilib issues: Rename provided file with platform-bits in name. -# Create platform independent file inplace of provided and conditionally include required. +# Create platform independant file inplace of provided and conditionally include required. # $1 - filename.h to process. function multilibFileVersions(){ mv $1 ${1%%.h}-%{__isa_bits}.h @@ -216,81 +323,94 @@ multilibFileVersions %{buildroot}%{_includedir}/%{name}-6/magick/magick-config.h multilibFileVersions %{buildroot}%{_includedir}/%{name}-6/magick/magick-baseconfig.h multilibFileVersions %{buildroot}%{_includedir}/%{name}-6/magick/version.h + %check +%if %{with tests} export LD_LIBRARY_PATH=%{buildroot}/%{_libdir} %make_build check +%endif +rm PerlMagick/demo/Generic.ttf %ldconfig_scriptlets libs %ldconfig_scriptlets c++ %files -%doc README.txt LICENSE NOTICE AUTHORS.txt NEWS.txt +%doc README.txt NOTICE AUTHORS.txt NEWS.txt +%license LICENSE %{_bindir}/[a-z]* %{_mandir}/man[145]/[a-z]* %{_mandir}/man1/%{name}.* %files libs -%doc LICENSE NOTICE AUTHORS.txt QuickStart.txt -%{_libdir}/libMagickCore-6.Q16.so* -%{_libdir}/libMagickWand-6.Q16.so* -%{_libdir}/%{name}-%{VERSION} +%doc NOTICE AUTHORS.txt QuickStart.txt +%license LICENSE +%{_libdir}/libMagickCore-6.Q16.so.%{libsover}{,.*} +%{_libdir}/libMagickWand-6.Q16.so.%{libsover}{,.*} +%{_libdir}/%{name}-%{Version} %{_datadir}/%{name}-6 -%exclude %{_libdir}/%{name}-%{VERSION}/modules-Q16/coders/djvu.* +%exclude %{_libdir}/%{name}-%{Version}/modules-Q16/coders/djvu.* %dir %{_sysconfdir}/%{name}-6 %config(noreplace) %{_sysconfdir}/%{name}-6/*.xml %files devel -%{_bindir}/MagickCore-config %{_bindir}/Magick-config -%{_bindir}/MagickWand-config +%{_bindir}/MagickCore-config %{_bindir}/Wand-config +%{_bindir}/MagickWand-config %{_libdir}/libMagickCore-6.Q16.so %{_libdir}/libMagickWand-6.Q16.so %{_libdir}/pkgconfig/MagickCore.pc %{_libdir}/pkgconfig/MagickCore-6.Q16.pc %{_libdir}/pkgconfig/ImageMagick.pc %{_libdir}/pkgconfig/ImageMagick-6.Q16.pc +%{_libdir}/pkgconfig/ImageMagick++.pc +%{_libdir}/pkgconfig/ImageMagick++-6.Q16.pc %{_libdir}/pkgconfig/MagickWand.pc -%{_libdir}/pkgconfig/MagickWand-6.Q16.pc %{_libdir}/pkgconfig/Wand.pc +%{_libdir}/pkgconfig/MagickWand-6.Q16.pc %{_libdir}/pkgconfig/Wand-6.Q16.pc %dir %{_includedir}/%{name}-6 %{_includedir}/%{name}-6/magick %{_includedir}/%{name}-6/wand %{_mandir}/man1/Magick-config.* %{_mandir}/man1/MagickCore-config.* -%{_mandir}/man1/Wand-config.* %{_mandir}/man1/MagickWand-config.* +%{_mandir}/man1/Wand-config.* %files djvu -%{_libdir}/%{name}-%{VERSION}/modules-Q16/coders/djvu.* +%{_libdir}/%{name}-%{Version}/modules-Q16/coders/djvu.* + +%if %{with libheif} +%files heic +%{_libdir}/%{name}-%{Version}/modules-Q16/coders/heic.* +%endif %files doc %doc %{_datadir}/doc/%{name}-6 -%doc %{_datadir}/doc/%{name}-%{VERSION} +%doc %{_datadir}/doc/%{name}-%{Version} %doc LICENSE %files c++ %doc Magick++/AUTHORS Magick++/ChangeLog Magick++/NEWS Magick++/README %doc www/Magick++/COPYING -%{_libdir}/libMagick++-6.Q16.so.* +%{_libdir}/libMagick++-6.Q16.so.%{libcxxsover}{,.*} %files c++-devel %doc Magick++/examples %{_bindir}/Magick++-config -%{_includedir}/%{name}-6/Magick++ +%{_includedir}/%{name}-6/Magick++/ %{_includedir}/%{name}-6/Magick++.h %{_libdir}/libMagick++-6.Q16.so %{_libdir}/pkgconfig/Magick++.pc %{_libdir}/pkgconfig/Magick++-6.Q16.pc -%{_libdir}/pkgconfig/ImageMagick++.pc -%{_libdir}/pkgconfig/ImageMagick++-6.Q16.pc %{_mandir}/man1/Magick++-config.* +%if %{with perl} %files perl -f perl-pkg-files %{_mandir}/man3/* %doc PerlMagick/demo/ PerlMagick/Changelog PerlMagick/README.txt +%endif %changelog -* Sun May 01 2005 Cristy 1.0-0 -- Port of RedHat's RPM script to support ImageMagick. +* Sat Jan 27 2024 Cristy - 6.9.13-7 +- Port of RedHat's script to create ImageMagick's RPM distribution. diff --git a/LICENSE b/LICENSE index ad5c338..73c0a91 100644 --- a/LICENSE +++ b/LICENSE @@ -1,3 +1,6 @@ + ImageMagick License + https://imagemagick.org/script/license.php + Before we get to the text of the license, lets just review what the license says in simple terms: It allows you to: diff --git a/Magick++/bin/Magick++-config.in b/Magick++/bin/Magick++-config.in index 67aa72d..19450ab 100755 --- a/Magick++/bin/Magick++-config.in +++ b/Magick++/bin/Magick++-config.in @@ -7,6 +7,9 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ +libdir=@libdir@ +pkgconfigdir=@pkgconfigdir@ +export PKG_CONFIG_LIBDIR="${pkgconfigdir}" usage='Usage: Magick++-config [--cppflags] [--cxxflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version] diff --git a/Magick++/demo/analyze.cpp b/Magick++/demo/analyze.cpp index 50f82e2..13be24f 100644 --- a/Magick++/demo/analyze.cpp +++ b/Magick++/demo/analyze.cpp @@ -8,6 +8,7 @@ // #include +#include #include #include #include diff --git a/Magick++/demo/button.cpp b/Magick++/demo/button.cpp index 88db625..a51e467 100644 --- a/Magick++/demo/button.cpp +++ b/Magick++/demo/button.cpp @@ -5,6 +5,7 @@ // #include +#include #include #include diff --git a/Magick++/demo/demo.cpp b/Magick++/demo/demo.cpp index 14721db..d1df1f0 100644 --- a/Magick++/demo/demo.cpp +++ b/Magick++/demo/demo.cpp @@ -11,6 +11,7 @@ // #include +#include #include #include #include diff --git a/Magick++/demo/detrans.cpp b/Magick++/demo/detrans.cpp index 65932d6..743376e 100644 --- a/Magick++/demo/detrans.cpp +++ b/Magick++/demo/detrans.cpp @@ -11,6 +11,7 @@ // #include +#include #include using namespace std; using namespace Magick; diff --git a/Magick++/demo/flip.cpp b/Magick++/demo/flip.cpp index 61dae19..b32f903 100644 --- a/Magick++/demo/flip.cpp +++ b/Magick++/demo/flip.cpp @@ -9,6 +9,7 @@ // #include +#include #include #include #include diff --git a/Magick++/demo/gravity.cpp b/Magick++/demo/gravity.cpp index b853fac..af920bc 100644 --- a/Magick++/demo/gravity.cpp +++ b/Magick++/demo/gravity.cpp @@ -13,6 +13,7 @@ // #include +#include #include #include #include diff --git a/Magick++/demo/piddle.cpp b/Magick++/demo/piddle.cpp index db415b8..69447ab 100644 --- a/Magick++/demo/piddle.cpp +++ b/Magick++/demo/piddle.cpp @@ -7,6 +7,7 @@ // #include +#include #include #include diff --git a/Magick++/demo/shapes.cpp b/Magick++/demo/shapes.cpp index dde7469..4eea6b7 100644 --- a/Magick++/demo/shapes.cpp +++ b/Magick++/demo/shapes.cpp @@ -8,6 +8,7 @@ // #include +#include #include #include diff --git a/Magick++/demo/zoom.cpp b/Magick++/demo/zoom.cpp index 8db2c8e..dc9bc32 100644 --- a/Magick++/demo/zoom.cpp +++ b/Magick++/demo/zoom.cpp @@ -9,6 +9,7 @@ // #include +#include #include #include using namespace std; diff --git a/Magick++/lib/Color.cpp b/Magick++/lib/Color.cpp index 2497eb9..28d07bd 100644 --- a/Magick++/lib/Color.cpp +++ b/Magick++/lib/Color.cpp @@ -219,7 +219,12 @@ const Magick::Color& Magick::Color::operator=(const std::string &x11color_) _pixelType=RGBPixel; } else - _isValid=false; + { + _isValid = false; + _pixelOwn = false; + delete _pixel; + _pixel = (PixelPacket *)NULL; + } ThrowPPException(false); return(*this); diff --git a/Magick++/lib/Magick++/ImageRef.h b/Magick++/lib/Magick++/ImageRef.h index bb18299..e86224f 100644 --- a/Magick++/lib/Magick++/ImageRef.h +++ b/Magick++/lib/Magick++/ImageRef.h @@ -14,6 +14,7 @@ #include "Magick++/Include.h" #include "Magick++/Thread.h" +#include namespace Magick { diff --git a/Makefile.in b/Makefile.in index 4ff40d3..f17681f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -265,8 +265,7 @@ check_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_4) @MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE@am__append_5 = magick/threshold-map.h subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ac_func_fseeko.m4 \ - $(top_srcdir)/m4/ax_c___attribute__.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_c___attribute__.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_framework.m4 \ @@ -305,12 +304,13 @@ CONFIG_CLEAN_FILES = common.shi config/configure.xml \ config/MagickCore.dox config/MagickWand.dox \ config/Magick++.dox config/policy.xml config/type-apple.xml \ config/type-dejavu.xml config/type-ghostscript.xml \ - config/type-urw-base35.xml config/type-windows.xml \ - config/type.xml ImageMagick.spec Magick++/bin/Magick++-config \ - magick/ImageMagick.pc Magick++/lib/ImageMagick++.pc \ - Magick++/lib/Magick++.pc magick/Magick-config \ - magick/MagickCore-config magick/MagickCore.pc magick/version.h \ - magick.sh PerlMagick/check.sh PerlMagick/default/Magick.pm \ + config/type-urw-base35.xml config/type-urw-base35-type1.xml \ + config/type-windows.xml config/type.xml ImageMagick.spec \ + Magick++/bin/Magick++-config magick/ImageMagick.pc \ + Magick++/lib/ImageMagick++.pc Magick++/lib/Magick++.pc \ + magick/Magick-config magick/MagickCore-config \ + magick/MagickCore.pc magick/version.h magick.sh \ + PerlMagick/check.sh PerlMagick/default/Magick.pm \ PerlMagick/Makefile.PL PerlMagick/default/Makefile.PL \ PerlMagick/quantum/Makefile.PL PerlMagick/quantum/quantum.pm \ PerlMagick/quantum/quantum.xs PerlMagick/quantum/typemap \ @@ -1475,9 +1475,9 @@ am__magick_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES_D magick/locale-private.h magick/log.c magick/log.h magick/mac.h \ magick/magic.c magick/magic.h magick/magick.c \ magick/magick-baseconfig.h magick/magick-config.h \ - magick/magick-type.h magick/magick.h magick/matrix.c \ - magick/matrix.h magick/memory.c magick/memory_.h \ - magick/memory-private.h magick/methods.h \ + magick/magick-type.h magick/magick.h magick/magick-private.h \ + magick/matrix.c magick/matrix.h magick/memory.c \ + magick/memory_.h magick/memory-private.h magick/methods.h \ magick/method-attribute.h magick/mime.c magick/mime.h \ magick/module.c magick/module.h magick/monitor.c \ magick/monitor.h magick/monitor-private.h magick/montage.c \ @@ -2939,6 +2939,7 @@ am__DIST_COMMON = $(srcdir)/ImageMagick.spec.in \ $(top_srcdir)/config/type-apple.xml.in \ $(top_srcdir)/config/type-dejavu.xml.in \ $(top_srcdir)/config/type-ghostscript.xml.in \ + $(top_srcdir)/config/type-urw-base35-type1.xml.in \ $(top_srcdir)/config/type-urw-base35.xml.in \ $(top_srcdir)/config/type-windows.xml.in \ $(top_srcdir)/config/type.xml.in \ @@ -3000,6 +3001,7 @@ AWK = @AWK@ BIN_DIR = @BIN_DIR@ BPGDecodeDelegate = @BPGDecodeDelegate@ BPGEncodeDelegate = @BPGEncodeDelegate@ +BZLIB_CFLAGS = @BZLIB_CFLAGS@ BZLIB_LIBS = @BZLIB_LIBS@ BlenderDecodeDelegate = @BlenderDecodeDelegate@ BrowseDelegate = @BrowseDelegate@ @@ -3023,6 +3025,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ +ClipboardDelegate = @ClipboardDelegate@ ConvertDelegate = @ConvertDelegate@ DATA_DIR = @DATA_DIR@ DEFS = @DEFS@ @@ -3095,6 +3098,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JBIG_LIBS = @JBIG_LIBS@ JEMALLOC_LIBS = @JEMALLOC_LIBS@ +JPEG_CFLAGS = @JPEG_CFLAGS@ JPEG_LIBS = @JPEG_LIBS@ JXRDecodeDelegate = @JXRDecodeDelegate@ JXREncodeDelegate = @JXREncodeDelegate@ @@ -3110,8 +3114,8 @@ LIBEXEC_DIR = @LIBEXEC_DIR@ LIBOBJS = @LIBOBJS@ LIBOPENJP2_CFLAGS = @LIBOPENJP2_CFLAGS@ LIBOPENJP2_LIBS = @LIBOPENJP2_LIBS@ +LIBRARY_ABSOLUTE_PATH = @LIBRARY_ABSOLUTE_PATH@ LIBRARY_EXTRA_CPPFLAGS = @LIBRARY_EXTRA_CPPFLAGS@ -LIBRARY_PATH = @LIBRARY_PATH@ LIBS = @LIBS@ LIBSTDCLDFLAGS = @LIBSTDCLDFLAGS@ LIBTOOL = @LIBTOOL@ @@ -3187,6 +3191,7 @@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MAN_DIR = @MAN_DIR@ MATH_LIBS = @MATH_LIBS@ +MKDIRDelegate = @MKDIRDelegate@ MKDIR_P = @MKDIR_P@ MODULES_BASEDIRNAME = @MODULES_BASEDIRNAME@ MODULES_DIRNAME = @MODULES_DIRNAME@ @@ -3279,6 +3284,7 @@ ShowImageDelegate = @ShowImageDelegate@ TAR = @TAR@ TCMALLOC_LIBS = @TCMALLOC_LIBS@ THREAD_LIBS = @THREAD_LIBS@ +TIFF_CFLAGS = @TIFF_CFLAGS@ TIFF_LIBS = @TIFF_LIBS@ TextEncodeDelegate = @TextEncodeDelegate@ TraceEncodeDelegate = @TraceEncodeDelegate@ @@ -3388,6 +3394,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ type_include_files = @type_include_files@ urw_base35_font_dir = @urw_base35_font_dir@ +urw_base35_type1_font_dir = @urw_base35_type1_font_dir@ windows_font_dir = @windows_font_dir@ topincludedir = @includedir@/magick AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) @@ -3470,7 +3477,6 @@ EXTRA_LTLIBRARIES = BUILT_SOURCES = MOSTLYCLEANFILES = M4_EXTRA_DIST = \ - ac_func_fseeko.m4 \ ax_append_flag.m4 \ ax_c___attribute__.m4 \ ax_cflags_warn_all.m4 \ @@ -3532,6 +3538,7 @@ configlib_DATA = \ config/type-dejavu.xml \ config/type-ghostscript.xml \ config/type-urw-base35.xml \ + config/type-urw-base35-type1.xml \ config/type-windows.xml CONFIG_EXTRA_DIST = \ @@ -3562,6 +3569,7 @@ CONFIG_EXTRA_DIST = \ config/type-dejavu.xml.in \ config/type-ghostscript.xml.in \ config/type-urw-base35.xml.in \ + config/type-urw-base35-type1.xml.in \ config/type-windows.xml.in \ config/type.xml.in @@ -4793,6 +4801,7 @@ MAGICK_BASE_SRCS = \ magick/magick-config.h \ magick/magick-type.h \ magick/magick.h \ + magick/magick-private.h \ magick/matrix.c \ magick/matrix.h \ magick/memory.c \ @@ -5047,6 +5056,7 @@ MAGICK_NOINST_HDRS = \ magick/image-private.h \ magick/locale-private.h \ magick/mac.h \ + magick/magick-private.h \ magick/memory-private.h \ magick/mime-private.h \ magick/monitor-private.h \ @@ -5764,6 +5774,8 @@ config/type-ghostscript.xml: $(top_builddir)/config.status $(top_srcdir)/config/ cd $(top_builddir) && $(SHELL) ./config.status $@ config/type-urw-base35.xml: $(top_builddir)/config.status $(top_srcdir)/config/type-urw-base35.xml.in cd $(top_builddir) && $(SHELL) ./config.status $@ +config/type-urw-base35-type1.xml: $(top_builddir)/config.status $(top_srcdir)/config/type-urw-base35-type1.xml.in + cd $(top_builddir) && $(SHELL) ./config.status $@ config/type-windows.xml: $(top_builddir)/config.status $(top_srcdir)/config/type-windows.xml.in cd $(top_builddir) && $(SHELL) ./config.status $@ config/type.xml: $(top_builddir)/config.status $(top_srcdir)/config/type.xml.in diff --git a/PerlMagick/MANIFEST b/PerlMagick/MANIFEST index 36fbef0..27dbce1 100644 --- a/PerlMagick/MANIFEST +++ b/PerlMagick/MANIFEST @@ -5,7 +5,6 @@ demo/button.pl demo/compose-specials.pl demo/composite.pl demo/demo.pl -demo/dst.png demo/Generic.ttf demo/lsys.pl demo/Makefile @@ -19,7 +18,6 @@ demo/shadow-text.pl demo/shapes.pl demo/single-pixels.pl demo/smile.gif -demo/src.png demo/steganography.pl demo/tile.gif demo/tree.pl diff --git a/PerlMagick/Makefile.PL b/PerlMagick/Makefile.PL index e260163..15d8521 100644 --- a/PerlMagick/Makefile.PL +++ b/PerlMagick/Makefile.PL @@ -161,11 +161,11 @@ foreach my $delegate (@tested_delegates) { } # defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile -my $INC_magick = '-I../ -I.. -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I"' . $Config{'usrinc'} . '/ImageMagick"'; +my $INC_magick = '-I../ -I.. -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I"' . $Config{'usrinc'} . '/ImageMagick"'; my $LIBS_magick = '-L../magick/.libs -lMagickCore-6.Q16 -lm -L' . $Config{'archlib'} . '/CORE'; -my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -I/usr/include/webp -I/usr/include/webp -I/usr/include/libraw -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/libxml2 -pthread -fopenmp -Wall -g -O2 -mtune=haswell -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16"; -my $LDFLAGS_magick = "-L../magick/.libs -lMagickCore-6.Q16 $Config{'ldflags'} "; -my $LDDLFLAGS_magick = "-L../magick/.libs -lMagickCore-6.Q16 $Config{'lddlflags'} "; +my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -DWITH_GZFILEOP -I/usr/include/webp -I/usr/include/webp -I/usr/include/webp -DWITH_GZFILEOP -I/usr/include/libraw -I/usr/include/libpng16 -DWITH_GZFILEOP -I/usr/include/openjpeg-2.5 -I/usr/include/libvmaf -I/usr/include/rav1e -I/usr/include/svt-av1 -DEB_DLL -I/usr/include/openjpeg-2.5 -I/usr/include/webp -DWITH_GZFILEOP -I/usr/include/freetype2 -I/usr/include/libpng16 -DWITH_GZFILEOP -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/libxml2 -DWITH_GZFILEOP -pthread -DWITH_GZFILEOP -fopenmp -Wall -g -O2 -mtune=haswell -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16"; +my $LDFLAGS_magick = "-L../magick/.libs -lMagickCore-6.Q16 $Config{'ldflags'} "; +my $LDDLFLAGS_magick = "-L../magick/.libs -lMagickCore-6.Q16 $Config{'lddlflags'} "; if (($^O eq 'MSWin32') && ($Config{cc} =~ /gcc/)) { my($Ipaths, $Lpaths) = AutodetectWin32gcc(); @@ -173,7 +173,7 @@ if (($^O eq 'MSWin32') && ($Config{cc} =~ /gcc/)) { # # Setup for strawberry perl. # - $INC_magick = "$Ipaths"; + $INC_magick = "$Ipaths -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16"; $LIBS_magick = "-lMagickCore-6.Q16"; $CCFLAGS_magick = "$Config{'ccflags'}"; $LDFLAGS_magick = "$Config{'ldflags'} $Lpaths "; @@ -194,13 +194,13 @@ WriteMakefile 'AUTHOR' => 'ImageMagick Studio LLC', # Module version - 'VERSION' => '6.9.12', + 'VERSION' => '6.9.13', # Prerequisite version 'PREREQ_PM' => {'parent' => '0'}, # Preprocessor defines - 'DEFINE' => ' -D_LARGE_FILES=1 -DHAVE_CONFIG_H', # e.g., '-DHAVE_SOMETHING' + 'DEFINE' => ' -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES=1 -D_LARGEFILE_SOURCE=1 -DHAVE_CONFIG_H', # e.g., '-DHAVE_SOMETHING' # Header search specification and preprocessor flags 'INC' => $INC_magick, @@ -209,7 +209,7 @@ WriteMakefile #'CC' => 'gcc', # C pre-processor flags (e.g. -I & -D options) - # 'CPPFLAGS' => "$Config{'cppflags'} -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 ", + # 'CPPFLAGS' => "$Config{'cppflags'} -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16", # C compiler flags (e.g. -O -g) 'CCFLAGS' => $CCFLAGS_magick, diff --git a/PerlMagick/Makefile.PL.in b/PerlMagick/Makefile.PL.in index 35cc33a..4a82d86 100644 --- a/PerlMagick/Makefile.PL.in +++ b/PerlMagick/Makefile.PL.in @@ -173,7 +173,7 @@ if (($^O eq 'MSWin32') && ($Config{cc} =~ /gcc/)) { # # Setup for strawberry perl. # - $INC_magick = "$Ipaths"; + $INC_magick = "$Ipaths @CPPFLAGS@"; $LIBS_magick = "-lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@"; $CCFLAGS_magick = "$Config{'ccflags'}"; $LDFLAGS_magick = "$Config{'ldflags'} $Lpaths "; diff --git a/PerlMagick/README.txt b/PerlMagick/README.txt index dcb3f7d..6493fb9 100644 --- a/PerlMagick/README.txt +++ b/PerlMagick/README.txt @@ -110,6 +110,10 @@ Testing PerlMagick some of the tests will fail if you do not have the proper delegates installed for formats like JPEG, TIFF, etc. + Use the 'prove' utility to execute a test from the build folder: + + prove --blib blib -I `pwd` -bv ./t/read.t + To see a number of PerlMagick demonstration scripts, type cd demo diff --git a/PerlMagick/default/Makefile.PL b/PerlMagick/default/Makefile.PL index febe9be..be78c75 100644 --- a/PerlMagick/default/Makefile.PL +++ b/PerlMagick/default/Makefile.PL @@ -161,11 +161,11 @@ foreach my $delegate (@tested_delegates) { } # defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile -my $INC_magick = '-I../.. -I../.. -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I"' . $Config{'usrinc'} . '/ImageMagick"'; +my $INC_magick = '-I../.. -I../.. -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I"' . $Config{'usrinc'} . '/ImageMagick"'; my $LIBS_magick = '-L../../magick/.libs -lMagickCore-6.Q16 -lm -L' . $Config{'archlib'} . '/CORE'; -my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -I/usr/include/webp -I/usr/include/webp -I/usr/include/libraw -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/libxml2 -pthread -fopenmp -Wall -g -O2 -mtune=haswell -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16"; -my $LDFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'ldflags'} "; -my $LDDLFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'lddlflags'} "; +my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -DWITH_GZFILEOP -I/usr/include/webp -I/usr/include/webp -I/usr/include/webp -DWITH_GZFILEOP -I/usr/include/libraw -I/usr/include/libpng16 -DWITH_GZFILEOP -I/usr/include/openjpeg-2.5 -I/usr/include/libvmaf -I/usr/include/rav1e -I/usr/include/svt-av1 -DEB_DLL -I/usr/include/openjpeg-2.5 -I/usr/include/webp -DWITH_GZFILEOP -I/usr/include/freetype2 -I/usr/include/libpng16 -DWITH_GZFILEOP -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/libxml2 -DWITH_GZFILEOP -pthread -DWITH_GZFILEOP -fopenmp -Wall -g -O2 -mtune=haswell -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16"; +my $LDFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'ldflags'} "; +my $LDDLFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'lddlflags'} "; if (($^O eq 'MSWin32') && ($Config{cc} =~ /gcc/)) { my($Ipaths, $Lpaths) = AutodetectWin32gcc(); @@ -173,7 +173,7 @@ if (($^O eq 'MSWin32') && ($Config{cc} =~ /gcc/)) { # # Setup for strawberry perl. # - $INC_magick = "$Ipaths"; + $INC_magick = "$Ipaths -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16"; $LIBS_magick = "-lMagickCore-6.Q16"; $CCFLAGS_magick = "$Config{'ccflags'}"; $LDFLAGS_magick = "$Config{'ldflags'} $Lpaths "; @@ -194,13 +194,13 @@ WriteMakefile 'AUTHOR' => 'ImageMagick Studio LLC', # Module version - 'VERSION' => '6.9.12', + 'VERSION' => '6.9.13', # Prerequisite version 'PREREQ_PM' => {'parent' => '0'}, # Preprocessor defines - 'DEFINE' => ' -D_LARGE_FILES=1 -DHAVE_CONFIG_H', # e.g., '-DHAVE_SOMETHING' + 'DEFINE' => ' -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES=1 -D_LARGEFILE_SOURCE=1 -DHAVE_CONFIG_H', # e.g., '-DHAVE_SOMETHING' # Header search specification and preprocessor flags 'INC' => $INC_magick, @@ -209,7 +209,7 @@ WriteMakefile #'CC' => 'gcc', # C pre-processor flags (e.g. -I & -D options) - # 'CPPFLAGS' => "$Config{'cppflags'} -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 ", + # 'CPPFLAGS' => "$Config{'cppflags'} -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16", # C compiler flags (e.g. -O -g) 'CCFLAGS' => $CCFLAGS_magick, diff --git a/PerlMagick/default/Makefile.PL.in b/PerlMagick/default/Makefile.PL.in index 5c2ae76..6276f48 100644 --- a/PerlMagick/default/Makefile.PL.in +++ b/PerlMagick/default/Makefile.PL.in @@ -173,7 +173,7 @@ if (($^O eq 'MSWin32') && ($Config{cc} =~ /gcc/)) { # # Setup for strawberry perl. # - $INC_magick = "$Ipaths"; + $INC_magick = "$Ipaths @CPPFLAGS@"; $LIBS_magick = "-lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@"; $CCFLAGS_magick = "$Config{'ccflags'}"; $LDFLAGS_magick = "$Config{'ldflags'} $Lpaths "; diff --git a/PerlMagick/demo/Generic.ttf b/PerlMagick/demo/Generic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8ea647090f75e7d34bee4c511921299d1f3c1055 GIT binary patch literal 18444 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 -$image->Write("annotate.miff"); -$image->Animate(); +$image->Write("annotate.pam"); +$image->Animate(title=>"Rotating Text"); diff --git a/PerlMagick/demo/annotate_words.pl b/PerlMagick/demo/annotate_words.pl index 3b76b1d..acf0bb5 100755 --- a/PerlMagick/demo/annotate_words.pl +++ b/PerlMagick/demo/annotate_words.pl @@ -65,7 +65,4 @@ foreach my $word (@words){ } -$image->Write("show:"); - -exit; - +$image->Write(magick=>'SHOW',title=>"Annotate Words"); diff --git a/PerlMagick/demo/button.pl b/PerlMagick/demo/button.pl index a771e01..b60f496 100644 --- a/PerlMagick/demo/button.pl +++ b/PerlMagick/demo/button.pl @@ -11,5 +11,5 @@ $q->Rotate(-90); $q->Raise('6x6'); $q->Annotate(font=>'Generic.ttf',text=>'Push Me',fill=>'black', gravity=>'Center',pointsize=>18); -$q->Write('button.gif'); -$q->Write('win:'); +$q->Write('button.pam'); +$q->Write(magick=>'SHOW',title=>"Button"); diff --git a/PerlMagick/demo/compose-specials.pl b/PerlMagick/demo/compose-specials.pl index de54823..322bf05 100755 --- a/PerlMagick/demo/compose-specials.pl +++ b/PerlMagick/demo/compose-specials.pl @@ -247,6 +247,5 @@ my $montage=$results->Montage(font=>'Generic.ttf', frame=>'6x6+2+2', shadow=>'True', ); -$montage->Write('show:'); -$montage->Write('compose-specials.jpg'); - +$montage->Write('compose-specials.pam'); +$montage->Write(magick=>'SHOW',title=>"Compose"); diff --git a/PerlMagick/demo/composite.pl b/PerlMagick/demo/composite.pl index 987be11..5571498 100644 --- a/PerlMagick/demo/composite.pl +++ b/PerlMagick/demo/composite.pl @@ -35,5 +35,5 @@ for ($angle=0; $angle < 360; $angle+=30) push(@$image,$thumbnail); } $image->Set(delay=>20); -$image->Write("composite.miff"); -$image->Animate(); +$image->Write("composite.pam"); +$image->Animate(title=>"Rotating Smiles"); diff --git a/PerlMagick/demo/demo.pl b/PerlMagick/demo/demo.pl index 80abde8..00ca12a 100644 --- a/PerlMagick/demo/demo.pl +++ b/PerlMagick/demo/demo.pl @@ -513,7 +513,6 @@ $logo->Zoom('40%'); $montage->Composite(image=>$logo,gravity=>'North'); print "Write...\n"; -$montage->Set(matte=>'false'); -$montage->Write('demo.jpg'); +$montage->Write('demo.pam'); print "Display...\n"; -$montage->Write('win:'); +$montage->Write(magick=>'SHOW',title=>"PerlMagick Demo"); diff --git a/PerlMagick/demo/dst.png b/PerlMagick/demo/dst.png deleted file mode 100644 index 2569f632db5c2132c6a085b8e51cb58251eb7ae0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437 zcmeAS@N?(olHy`uVBq!ia0vp^4j?SR1|)y|Tss#?u_bxCyZi?O&WP`KfFhg)9+AaB z+5?Q;PG;LNFffLCx;TbZ+-Hbqu3__Z^-PvnPzcLntds)`b*UydKSHITI4UpxjJuApj_-JAafGC!c1p{26>}42Zs6+B20{bl$|+P3LKsYa6D+~P!u@8I?+j? zflUxd@Y%FGFvwQ&G%~P#04n5pqR7HD<3JGyi^0UB0vrj9-ayq()0`R@x9+RWd;E>{ z{Y^o~7+%JMb9fmYWr6hD)&`Y%tqm!1&Y%EdNH}iZ^!Ls+3#QZcAg-sYpUXO@geCw= C_Li>z diff --git a/PerlMagick/demo/lsys.pl b/PerlMagick/demo/lsys.pl index cc1194e..afd06b7 100644 --- a/PerlMagick/demo/lsys.pl +++ b/PerlMagick/demo/lsys.pl @@ -77,7 +77,7 @@ sub lsys_execute if ($translate{$command}) { &{$translate{$command}}(); } } $im->Write($filename); - $im->Write('win:'); + $im->Write(magick=>'SHOW',title=>"L-system"); } 1; diff --git a/PerlMagick/demo/piddle.pl b/PerlMagick/demo/piddle.pl index 1e8d125..5d22a13 100644 --- a/PerlMagick/demo/piddle.pl +++ b/PerlMagick/demo/piddle.pl @@ -61,6 +61,6 @@ $image->Draw(primitive=>'line',points=>'200,260 260,260',stroke=>green, # $image->Annotate(font=>'Generic.ttf',text=>'This is a test!', geometry=>'+30+140',fill=>'green',pointsize=>24,rotate=>45.0); -$image->Write('piddle.gif'); +$image->Write('piddle.pam'); $image->Write('piddle.mvg'); -$image->Write('win:'); +$image->Write(magick=>'SHOW',title=>"Piddle"); diff --git a/PerlMagick/demo/pixel-fx.pl b/PerlMagick/demo/pixel-fx.pl index 7970aad..aa75814 100755 --- a/PerlMagick/demo/pixel-fx.pl +++ b/PerlMagick/demo/pixel-fx.pl @@ -48,6 +48,5 @@ for( my $j = 0; $j < $height; $j++ ) { } # display the result (or you could save it) -$dest->Write('win:'); -$dest->Write('pixel-fx.gif'); - +$dest->Write('pixel-fx.pam'); +$dest->Write(magick=>'SHOW',title=>"Pixel FX"); diff --git a/PerlMagick/demo/settings.pl b/PerlMagick/demo/settings.pl index 121b438..f997f1c 100755 --- a/PerlMagick/demo/settings.pl +++ b/PerlMagick/demo/settings.pl @@ -28,5 +28,5 @@ die $e if $e; $e = $im->Trim(); die $e if $e; -$e = $im->Write('settings.png'); +$e = $im->Write('settings.pam'); die $e if $e; diff --git a/PerlMagick/demo/shadow-text.pl b/PerlMagick/demo/shadow-text.pl index f04f3a1..3385a30 100644 --- a/PerlMagick/demo/shadow-text.pl +++ b/PerlMagick/demo/shadow-text.pl @@ -11,5 +11,5 @@ $image->Annotate(font=>'Generic.ttf',fill=>'rgba(100,100,100,0.8)', $image->Blur('0x1'); $image->Annotate(font=>'Generic.ttf',fill=>'red',stroke=>'blue',pointsize=>60, text=>'Works like magick!',geometry=>'+4+86'); -$image->Write('shadow.gif'); -$image->Write('win:'); +$image->Write('shadow.pam'); +$image->Write(magick=>'SHOW',title=>"Shadow Text"); diff --git a/PerlMagick/demo/shapes.pl b/PerlMagick/demo/shapes.pl index 4d97d84..28b9e77 100644 --- a/PerlMagick/demo/shapes.pl +++ b/PerlMagick/demo/shapes.pl @@ -35,6 +35,6 @@ $image->Annotate(font=>'Generic.ttf',fill=>'black',geometry=>'+280+120', # Write image. # print "Write image...\n"; -$image->Write('shapes.gif'); +$image->Write('shapes.pam'); print "Display image...\n"; -$image->Write('win:'); +$image->Write(magick=>'SHOW',title=>"Shapes"); diff --git a/PerlMagick/demo/single-pixels.pl b/PerlMagick/demo/single-pixels.pl index e364c0f..8f476ea 100755 --- a/PerlMagick/demo/single-pixels.pl +++ b/PerlMagick/demo/single-pixels.pl @@ -43,6 +43,5 @@ $im->Set(page=>'0x0+0+0'); $im->Scale('1000%'); # Output the changed pixels -$im->Write('win:'); -$im->Write('single-pixels.gif'); - +$im->Write('single-pixels.pam'); +$im->Write(magick=>'SHOW',title=>"Single Pixel"); diff --git a/PerlMagick/demo/src.png b/PerlMagick/demo/src.png deleted file mode 100644 index 100dfe27553f4d007262e3400390560ed5a525db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmeAS@N?(olHy`uVBq!ia0vp^Mj$M}1|oEH6H*+?CGT zVx0b=ZrkrYAuk6+{%4ckwS|une&Rstx)36K2(r#LtSRvB;zyyj|T*ch57 zpz!S!3zJJmr(=Ufl#+nLIWb9=j@7PAj7nkRjtw1mJp~kkN(ERtuCO*SOk6E1pis1( ik;!Fcn1aKUcbqxr%dI&b?mPwtB7>)^pUXO@geCy7n2sF) diff --git a/PerlMagick/demo/steganography.pl b/PerlMagick/demo/steganography.pl index def3e06..7c736d6 100644 --- a/PerlMagick/demo/steganography.pl +++ b/PerlMagick/demo/steganography.pl @@ -14,13 +14,13 @@ $watermark->ReadImage('smile.gif'); $image=Image::Magick->new; $image->ReadImage('model.gif'); $image->SteganoImage(image=>$watermark,offset=>91); -$image->Write('model.png'); -$image->Write('win:'); +$image->Write('model.pam'); +$image->Write(magick=>'SHOW',title=>"Steganography Model"); # # Extract image from image. # $size="$width" . "x" . "$height" . "+91"; $stegano=Image::Magick->new(size=>$size); -$stegano->ReadImage('stegano:model.png'); -$stegano->Write('stegano.gif'); -$stegano->Write('win:'); +$stegano->ReadImage('stegano:model.pam'); +$stegano->Write('stegano.pam'); +$stegano->Write(magick=>'SHOW',title=>"Hidden Image"); diff --git a/PerlMagick/demo/tree.pl b/PerlMagick/demo/tree.pl index 57b9f81..73501e7 100644 --- a/PerlMagick/demo/tree.pl +++ b/PerlMagick/demo/tree.pl @@ -32,4 +32,4 @@ require "lsys.pl"; $changes = \%stemchanges; lsys_init(400); -lsys_execute('A', 10, "tree.gif", %rule); +lsys_execute('A', 10, "tree.pam", %rule); diff --git a/PerlMagick/quantum/Makefile.PL b/PerlMagick/quantum/Makefile.PL index 5276243..ebdab95 100644 --- a/PerlMagick/quantum/Makefile.PL +++ b/PerlMagick/quantum/Makefile.PL @@ -161,11 +161,11 @@ foreach my $delegate (@tested_delegates) { } # defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile -my $INC_magick = '-I../../ -I../.. -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I"' . $Config{'usrinc'} . '/ImageMagick"'; +my $INC_magick = '-I../../ -I../.. -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I"' . $Config{'usrinc'} . '/ImageMagick"'; my $LIBS_magick = '-L../../magick/.libs -lMagickCore-6.Q16 -lm -L' . $Config{'archlib'} . '/CORE'; -my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -I/usr/include/webp -I/usr/include/webp -I/usr/include/libraw -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/libxml2 -pthread -fopenmp -Wall -g -O2 -mtune=haswell -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16"; -my $LDFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'ldflags'} "; -my $LDDLFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'lddlflags'} "; +my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -DWITH_GZFILEOP -I/usr/include/webp -I/usr/include/webp -I/usr/include/webp -DWITH_GZFILEOP -I/usr/include/libraw -I/usr/include/libpng16 -DWITH_GZFILEOP -I/usr/include/openjpeg-2.5 -I/usr/include/libvmaf -I/usr/include/rav1e -I/usr/include/svt-av1 -DEB_DLL -I/usr/include/openjpeg-2.5 -I/usr/include/webp -DWITH_GZFILEOP -I/usr/include/freetype2 -I/usr/include/libpng16 -DWITH_GZFILEOP -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/libxml2 -DWITH_GZFILEOP -pthread -DWITH_GZFILEOP -fopenmp -Wall -g -O2 -mtune=haswell -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16"; +my $LDFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'ldflags'} "; +my $LDDLFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'lddlflags'} "; if (($^O eq 'MSWin32') && ($Config{cc} =~ /gcc/)) { my($Ipaths, $Lpaths) = AutodetectWin32gcc(); @@ -173,7 +173,7 @@ if (($^O eq 'MSWin32') && ($Config{cc} =~ /gcc/)) { # # Setup for strawberry perl. # - $INC_magick = "$Ipaths"; + $INC_magick = "$Ipaths -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16"; $LIBS_magick = "-lMagickCore-6.Q16"; $CCFLAGS_magick = "$Config{'ccflags'}"; $LDFLAGS_magick = "$Config{'ldflags'} $Lpaths "; @@ -194,10 +194,10 @@ WriteMakefile 'AUTHOR' => 'ImageMagick Studio LLC', # Module version - 'VERSION' => '6.9.12', + 'VERSION' => '6.9.13', # Preprocessor defines - 'DEFINE' => ' -D_LARGE_FILES=1 -DHAVE_CONFIG_H', # e.g., '-DHAVE_SOMETHING' + 'DEFINE' => ' -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES=1 -D_LARGEFILE_SOURCE=1 -DHAVE_CONFIG_H', # e.g., '-DHAVE_SOMETHING' # Header search specification and preprocessor flags 'INC' => $INC_magick, @@ -206,7 +206,7 @@ WriteMakefile #'CC' => 'gcc', # C pre-processor flags (e.g. -I & -D options) - # 'CPPFLAGS' => "$Config{'cppflags'} -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 ", + # 'CPPFLAGS' => "$Config{'cppflags'} -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16", # C compiler flags (e.g. -O -g) 'CCFLAGS' => $CCFLAGS_magick, diff --git a/PerlMagick/quantum/Makefile.PL.in b/PerlMagick/quantum/Makefile.PL.in index a5a0bfa..9e09459 100644 --- a/PerlMagick/quantum/Makefile.PL.in +++ b/PerlMagick/quantum/Makefile.PL.in @@ -173,7 +173,7 @@ if (($^O eq 'MSWin32') && ($Config{cc} =~ /gcc/)) { # # Setup for strawberry perl. # - $INC_magick = "$Ipaths"; + $INC_magick = "$Ipaths @CPPFLAGS@"; $LIBS_magick = "-lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@"; $CCFLAGS_magick = "$Config{'ccflags'}"; $LDFLAGS_magick = "$Config{'ldflags'} $Lpaths "; diff --git a/PerlMagick/quantum/quantum.pm b/PerlMagick/quantum/quantum.pm index 66fc6f3..8743e0f 100644 --- a/PerlMagick/quantum/quantum.pm +++ b/PerlMagick/quantum/quantum.pm @@ -43,7 +43,7 @@ require AutoLoader; ConfigureError FatalErrorException ); -$VERSION = '6.9.12'; +$VERSION = '6.9.13'; sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() diff --git a/PerlMagick/quantum/quantum.xs b/PerlMagick/quantum/quantum.xs index 93e1b1f..6422938 100644 --- a/PerlMagick/quantum/quantum.xs +++ b/PerlMagick/quantum/quantum.xs @@ -2173,6 +2173,13 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, (void) SetMagickResourceLimit(TimeResource,limit); break; } + if (LocaleCompare(attribute,"title") == 0) + { + for ( ; image; image=image->next) + (void) CopyMagickString(image->magick_filename,SvPV(sval,na), + MaxTextExtent); + break; + } if (LocaleCompare(attribute,"transparent-color") == 0) { (void) QueryColorDatabase(SvPV(sval,na),&target_color,exception); @@ -5489,6 +5496,18 @@ Get(ref,...) PUSHs(s ? sv_2mortal(s) : &sv_undef); continue; } + if (LocaleNCompare(attribute,"registry:",9) == 0) + { + const char + *value; + + value=(const char *) GetImageRegistry(StringRegistryType, + attribute+9,exception); + if (value != (const char *) NULL) + s=newSVpv(value,0); + PUSHs(s ? sv_2mortal(s) : &sv_undef); + continue; + } if (LocaleCompare(attribute,"rows") == 0) { if (image != (Image *) NULL) @@ -5594,6 +5613,13 @@ Get(ref,...) PUSHs(s ? sv_2mortal(s) : &sv_undef); continue; } + if (LocaleCompare(attribute,"title") == 0) + { + if (image != (Image *) NULL) + s=newSVpv(image->magick_filename,0); + PUSHs(s ? sv_2mortal(s) : &sv_undef); + continue; + } if (LocaleCompare(attribute,"total-ink-density") == 0) { s=newSViv(MAGICKCORE_QUANTUM_DEPTH); diff --git a/PerlMagick/quantum/quantum.xs.in b/PerlMagick/quantum/quantum.xs.in index a14c5a2..0b63cd9 100644 --- a/PerlMagick/quantum/quantum.xs.in +++ b/PerlMagick/quantum/quantum.xs.in @@ -2173,6 +2173,13 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, (void) SetMagickResourceLimit(TimeResource,limit); break; } + if (LocaleCompare(attribute,"title") == 0) + { + for ( ; image; image=image->next) + (void) CopyMagickString(image->magick_filename,SvPV(sval,na), + MaxTextExtent); + break; + } if (LocaleCompare(attribute,"transparent-color") == 0) { (void) QueryColorDatabase(SvPV(sval,na),&target_color,exception); @@ -5489,6 +5496,18 @@ Get(ref,...) PUSHs(s ? sv_2mortal(s) : &sv_undef); continue; } + if (LocaleNCompare(attribute,"registry:",9) == 0) + { + const char + *value; + + value=(const char *) GetImageRegistry(StringRegistryType, + attribute+9,exception); + if (value != (const char *) NULL) + s=newSVpv(value,0); + PUSHs(s ? sv_2mortal(s) : &sv_undef); + continue; + } if (LocaleCompare(attribute,"rows") == 0) { if (image != (Image *) NULL) @@ -5594,6 +5613,13 @@ Get(ref,...) PUSHs(s ? sv_2mortal(s) : &sv_undef); continue; } + if (LocaleCompare(attribute,"title") == 0) + { + if (image != (Image *) NULL) + s=newSVpv(image->magick_filename,0); + PUSHs(s ? sv_2mortal(s) : &sv_undef); + continue; + } if (LocaleCompare(attribute,"total-ink-density") == 0) { s=newSViv(MAGICKCORE_QUANTUM_DEPTH); diff --git a/PerlMagick/t/input.pict b/PerlMagick/t/input.pict index 0b9d7ad95c1acb606447aa321fe569d76b499b8e..a59960f7fda4eeed09a2ac05b50acc92c71a875d 100644 GIT binary patch delta 291 zcmdlJxG7)(6C=}PMy5)}OOtDuE&<6P=1YvHCu^{rW;{3fJIgu7%ac#CUIvm2*e)|( znOx3(1<3a20I}6LuP~mU{EzcIkbRNs3ggAeE4eQM*>yZufMggiNTnVhNG~ftNc|mt zkoXn>ka&+ENIY5SGSCDo;q#1VCi9A%0kZFkfK1yU3R2l222zvz#o8YJeL{0G87Vv#FxhR5&F#|Edv)&a zwTj7NW)Zy4``tcyp6~Ph)!7a9Zk=|)gXf$&nFMFfi~ErIhn*}zq2~6C@{CV6G>{?~ zh%H~YL$%MqWCna8Vz0yb@mC-UEvi9 N*Q@gR;|4$f`v;0LsA2#B diff --git a/PerlMagick/t/montage.t b/PerlMagick/t/montage.t index 7e3bb33..80cf913 100644 --- a/PerlMagick/t/montage.t +++ b/PerlMagick/t/montage.t @@ -154,7 +154,7 @@ testMontage( q/bordercolor=>'blue', mattecolor=>'red'/, q/background=>'#696e7e',, tile=>'4x4', geometry=>'90x80+6+6>', frame=>'8x10', borderwidth=>'0', gravity=>'Center', shadow=>'True',background=>'gray'/, 'd4de864f9004b185297c9c2351f811aaeb779095bdd8fd5f29bcfbee79f09da4', - 'c45f922b6f1f94accacd3946bee3f60cf84fb7930866f1c9bf0d18521218ab5b', + '1228bfeb109e22d89e382394f8da80aee93978e7a3be9ca8769f2aefec017284', '803c926764df2ad940f36fbbeea274e05467d729bfdfb2f28c479cfd27245a85'); # @@ -165,7 +165,7 @@ testMontage( q/bordercolor=>'blue', mattecolor=>'red'/, q/background=>'#696e7e',, tile=>'4x4', geometry=>'90x80+6+6>', frame=>'8x10', borderwidth=>'0', gravity=>'Center', shadow=>'True', texture=>'granite:'/, '8418407b6d56d2c1b67bc735004794d9eb20609d30115a93255eefcad3499e95', - 'a67fd0b6e03bd5610bb58d66f99fc0e8b3a0bf5dec7714ea2ac9f8032eb4d7f5', + '8908c2b5f7d6af5a4064c84f79a60cd34d7c394b59d50846be5bebbd335388d2', '5793a1de15b5d73df297968af79fa01a110c1585cccd46dcbef794674ab5f174'); # diff --git a/PerlMagick/t/ttf/input.ttf b/PerlMagick/t/ttf/input.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8ea647090f75e7d34bee4c511921299d1f3c1055 GIT binary patch literal 18444 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 -ImageMagick logo +ImageMagick logo

-Legacy [ImageMagick®](https://legacy.imagemagick.org/) is a free and [open-source](https://legacy.imagemagick.org/script/license.php) software suite for displaying, converting, and editing raster image and vector image files. It can read and write over 200 image file [formats](https://legacy.imagemagick.org/script/formats.php), and can support a wide range of image manipulation operations, such as resizing, cropping, and color correction. +[ImageMagick®](https://legacy.imagemagick.org/) is a free and [open-source](https://legacy.imagemagick.org/script/license.php) software suite, used for editing and manipulating digital images. It can be used to create, edit, compose, or convert bitmap images, and supports a wide range of file [formats](https://legacy.imagemagick.org/script/formats.php), including JPEG, PNG, GIF, TIFF, and PDF. -#### What is ImageMagick? +### _We recommend upgrading your legacy version of ImageMagick to [version 7](https://imagemagick.org/)_. -ImageMagick is written in C and is available for a wide range of operating systems, including Linux, macOS, and Windows. It can be used as a standalone application, or as a library that can be integrated into other software programs. +## What is ImageMagick? -The main website for legacy ImageMagick can be found at [https://legacy.imagemagick.org](https://legacy.imagemagick.org/). The source code for this software can be accessed through the repository located at [https://github.com/ImageMagick/ImageMagick6](https://github.com/ImageMagick/ImageMagick6). In addition, a more recent version of ImageMagick, version 7, can be found at [https://imagemagick.org](https://imagemagick.org/). +ImageMagick is widely used in industries such as web development, graphic design, and video editing, as well as in scientific research, medical imaging, and astronomy. Its versatile and customizable nature, along with its robust image processing capabilities, make it a popular choice for a wide range of image-related tasks. -#### Features and Capabilities +ImageMagick includes a command-line interface for executing complex image processing tasks, as well as APIs for integrating its features into software applications. It is written in C and can be used on a variety of operating systems, including Linux, Windows, and macOS. + +The main website for ImageMagick can be found at [https://legacy.imagemagick.org](https://legacy.imagemagick.org/). The source code for this software can be accessed through a [repository](https://github.com/ImageMagick/ImageMagick6). + +Creating a security policy that fits your specific local environment before making use of ImageMagick is highly advised. You can find guidance on setting up this [policy](https://legacy.imagemagick.org/script/security-policy.php). Also, it's important to verify your policy using the [validation tool](https://legacy.imagemagick.org/script/security-policy.php). + +## Features and Capabilities One of the key features of ImageMagick is its support for scripting and automation. This allows users to create complex image manipulation pipelines that can be run automatically, without the need for manual intervention. This can be especially useful for tasks that require the processing of large numbers of images, or for tasks that need to be performed on a regular basis. @@ -41,7 +47,7 @@ Here are just a few [examples](https://legacy.imagemagick.org/script/examples.ph * [Distributed pixel cache](https://legacy.imagemagick.org/script/distribute-pixel-cache.php): offload intermediate pixel storage to one or more remote servers. * [Draw](https://legacy.imagemagick.org/Usage/draw/): add shapes or text to an image. * [Encipher or decipher an image](https://legacy.imagemagick.org/script/cipher.php): convert ordinary images into unintelligible gibberish and back again. -* [Format conversion](https://legacy.imagemagick.org/script/convert.php): convert an image from one [format](https://imagemagick.org/script/formats.php) to another (e.g. PNG to JPEG). +* [Format conversion](https://legacy.imagemagick.org/script/convert.php): convert an image from one [format](https://legacy.imagemagick.org/script/formats.php) to another (e.g. PNG to JPEG). * [Generalized pixel distortion](https://legacy.imagemagick.org/Usage/distorts/): correct for, or induce image distortions including perspective. * [Heterogeneous distributed processing](https://legacy.imagemagick.org/script/architecture.php#distributed): certain algorithms are OpenCL-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors. * [High dynamic-range images](https://legacy.imagemagick.org/script/high-dynamic-range.php): accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows. @@ -55,7 +61,7 @@ Here are just a few [examples](https://legacy.imagemagick.org/script/examples.ph * [Montage](https://legacy.imagemagick.org/script/montage.php): juxtapose image thumbnails on an image canvas. * [Morphology of shapes](https://legacy.imagemagick.org/Usage/morphology/): extract features, describe shapes and recognize patterns in images. * [Motion picture support](https://legacy.imagemagick.org/script/motion-picture.php): read and write the common image formats used in digital film work. -* [Multispectral imagery](https://legacy.imagemagick.org/script/architecture.php#multispectral): support multispectral imagery up to 64 bands. +* [Multispectral imagery](https://legacy.imagemagick.org/script/multispectral-imagery.php): support multispectral imagery up to 64 bands. * [Noise and color reduction](https://legacy.imagemagick.org/Usage/transform/#vision) Kuwahara Filter, mean-shift. * [Perceptual hash](http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/index.html): maps visually identical images to the same or similar hash-- useful in image retrieval, authentication, indexing, or copy detection as well as digital watermarking. * [Special effects](https://legacy.imagemagick.org/Usage/blur/): blur, sharpen, threshold, or tint an image. @@ -67,11 +73,10 @@ Here are just a few [examples](https://legacy.imagemagick.org/script/examples.ph [Examples of ImageMagick Usage](https://legacy.imagemagick.org/Usage/), demonstrates how to use the software from the [command line](https://legacy.imagemagick.org/script/command-line-processing.php) to achieve various effects. There are also several scripts available on the website called [Fred's ImageMagick Scripts](http://www.fmwconcepts.com/imagemagick/), which can be used to apply geometric transforms, blur and sharpen images, remove noise, and perform other operations. Additionally, there is a tool called [Magick.NET](https://github.com/dlemstra/Magick.NET) that allows users to access the functionality of ImageMagick without having to install the software on their own systems. Finally, the website also includes a [Cookbook](http://im.snibgo.com/) with tips and examples for using ImageMagick on Windows systems. -#### News +## News -ImageMagick best practices **strongly** encourages you to configure a [security policy](https://legacy.imagemagick.org/script/security-policy.php) that suits your local environment. +Creating a security policy that fits your specific local environment before making use of ImageMagick is highly advised. You can find guidance on setting up this [policy](https://legacy.imagemagick.org/script/security-policy.php). Also, it's important to verify your policy using the [validation tool](https://imagemagick-secevaluator.doyensec.com/). As of ImageMagick version 7.1.1-16, you can choose and customize one of these [security policies](https://legacy.imagemagick.org/script/security-policy.php): Open, Limited, Secure, and Websafe. -Now that ImageMagick [version 7](https://imagemagick.org) is released, we recommend upgrading from version 6. Learn how ImageMagick version 7 differs from previous versions with our [porting guide](https://imagemagick.org/script/porting.php). Want more performance from ImageMagick? Try these options: @@ -80,4 +85,4 @@ Want more performance from ImageMagick? Try these options: * reduce lock contention with the [tcmalloc](http://goog-perftools.sourceforge.net/doc/tcmalloc.html) memory allocation library; * push large images to a solid-state drive, see [large image support](https://legacy.imagemagick.org/script/architecture.php#tera-pixel). -If these options are prohibitive, you can reduce the quality of the image results. The default build is Q16 HDRI. If you disable [HDRI](https://legacy.imagemagick.org/script/high-dynamic-range.php), you use half the memory and instead of predominantly floating point operations, you use the typically more efficient integer operations. The tradeoff is reduced precision and you cannot process out of range pixel values (e.g. negative). If you build the Q8 non-HDRI version of ImageMagick, you again reduce the memory requirements in half-- and once again there is a tradeoff, even less precision and no out of range pixel values. For a Q8 non-HDRI build of ImageMagick, use these configure script options: --with-quantum-depth=8 --disable-hdri. +If these options are prohibitive, you can reduce the quality of the image results. The default build is Q16. If you enable [HDRI](https://legacy.imagemagick.org/script/high-dynamic-range.php), you use twice the memory and instead of predominantly integer operations, you use the typically less efficient floating-point operations. The tradeoff is increased precision and you can process out of range pixel values (e.g. negative). If you instead build the Q8 non-HDRI version of ImageMagick, you can reduce the memory requirements in half-- and once again there is a tradeoff, even less precision and no out of range pixel values. For a Q8 non-HDRI build of ImageMagick, use these configure script options: **--with-quantum-depth=8**. diff --git a/aclocal.m4 b/aclocal.m4 index 10de731..5c4ef63 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -14,8 +14,8 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, -[m4_warning([this file was generated for autoconf 2.71. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],, +[m4_warning([this file was generated for autoconf 2.72. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) @@ -1267,7 +1267,6 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR -m4_include([m4/ac_func_fseeko.m4]) m4_include([m4/ax_c___attribute__.m4]) m4_include([m4/ax_cflags_warn_all.m4]) m4_include([m4/ax_check_compile_flag.m4]) diff --git a/coders/aai.c b/coders/aai.c index 3c06e46..aa5af42 100644 --- a/coders/aai.c +++ b/coders/aai.c @@ -236,7 +236,10 @@ static Image *ReadAAIImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } while ((width != 0UL) && (height != 0UL)); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -417,6 +420,7 @@ static MagickBooleanType WriteAAIImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/art.c b/coders/art.c index ac77694..5037f43 100644 --- a/coders/art.c +++ b/coders/art.c @@ -203,7 +203,10 @@ static Image *ReadARTImage(const ImageInfo *image_info,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -366,6 +369,7 @@ static MagickBooleanType WriteARTImage(const ImageInfo *image_info,Image *image) pixels=(unsigned char *) RelinquishMagickMemory(pixels); if (y < (ssize_t) image->rows) ThrowWriterException(CorruptImageError,"UnableToWriteImageData"); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/avs.c b/coders/avs.c index d5f741d..c86b5b7 100644 --- a/coders/avs.c +++ b/coders/avs.c @@ -239,7 +239,8 @@ static Image *ReadAVSImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } while ((width != 0UL) && (height != 0UL)); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -422,6 +423,7 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/bgr.c b/coders/bgr.c index 510b8c0..366740f 100644 --- a/coders/bgr.c +++ b/coders/bgr.c @@ -109,7 +109,7 @@ static Image *ReadBGRImage(const ImageInfo *image_info, *image; MagickBooleanType - status; + status = MagickTrue; MagickOffsetType scene; @@ -720,7 +720,8 @@ static Image *ReadBGRImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("G",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -792,7 +793,8 @@ static Image *ReadBGRImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("R",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -866,7 +868,8 @@ static Image *ReadBGRImage(const ImageInfo *image_info, } if (image->matte != MagickFalse) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("A",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -984,7 +987,8 @@ static Image *ReadBGRImage(const ImageInfo *image_info, quantum_info=DestroyQuantumInfo(quantum_info); InheritException(&image->exception,&canvas_image->exception); canvas_image=DestroyImage(canvas_image); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1099,7 +1103,7 @@ ModuleExport void UnregisterBGRImage(void) static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image) { MagickBooleanType - status; + status = MagickTrue; MagickOffsetType scene; @@ -1367,7 +1371,8 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("G",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1393,7 +1398,8 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("R",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1422,7 +1428,8 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image) (void) CloseBlob(image); if (quantum_type == BGRAQuantum) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("A",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1470,6 +1477,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/bmp.c b/coders/bmp.c index 14522ab..4f28257 100644 --- a/coders/bmp.c +++ b/coders/bmp.c @@ -212,15 +212,13 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression, ssize_t i, - x; + x, + y; unsigned char *p, *q; - ssize_t - y; - assert(image != (Image *) NULL); assert(image->signature == MagickCoreSignature); assert(pixels != (unsigned char *) NULL); @@ -356,7 +354,7 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression, } (void) ReadBlobByte(image); /* end of line */ (void) ReadBlobByte(image); - return((q-pixels) < (ssize_t) number_pixels ? MagickFalse : MagickTrue); + return((p-pixels) < (ssize_t) number_pixels ? MagickFalse : MagickTrue); } /* @@ -434,7 +432,7 @@ static size_t EncodeImage(Image *image,const size_t bytes_per_line, break; *q++=(unsigned char) i; *q++=(*p); - p+=i; + p+=(ptrdiff_t) i; } /* End of line. @@ -647,6 +645,8 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", image_info->filename); image=AcquireImage(image_info); + image->columns=0; + image->rows=0; status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) { @@ -835,6 +835,8 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) (void) LogMagickEvent(CoderEvent,GetMagickModule(), " Number of colors: %u",bmp_info.number_colors); } + if ((bmp_info.height < 0) && (bmp_info.compression != 0)) + ThrowReaderException(CoderError,"CompressNotSupported"); if ((bmp_info.size > 40) || (bmp_info.compression == BI_BITFIELDS) || (bmp_info.compression == BI_ALPHABITFIELDS)) { @@ -843,6 +845,11 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) bmp_info.blue_mask=ReadBlobLSBLong(image); if (bmp_info.compression == BI_ALPHABITFIELDS) bmp_info.alpha_mask=ReadBlobLSBLong(image); + if (((bmp_info.size == 40) || + (bmp_info.compression == BI_ALPHABITFIELDS)) && + (bmp_info.bits_per_pixel != 16) && + (bmp_info.bits_per_pixel != 32)) + ThrowReaderException(CorruptImageError,"UnsupportedBitsPerPixel"); } if (bmp_info.size > 40) { @@ -1030,7 +1037,8 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) image->rows=(size_t) MagickAbsoluteValue(bmp_info.height); image->depth=bmp_info.bits_per_pixel <= 8 ? bmp_info.bits_per_pixel : 8; image->matte=((bmp_info.alpha_mask != 0) && - (bmp_info.compression == BI_BITFIELDS)) ? MagickTrue : MagickFalse; + ((bmp_info.compression == BI_BITFIELDS) || + (bmp_info.compression == BI_ALPHABITFIELDS))) ? MagickTrue : MagickFalse; if (bmp_info.bits_per_pixel < 16) { size_t @@ -1117,15 +1125,15 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) length=(size_t) bytes_per_line*image->rows; if ((MagickSizeType) (length/256) > blob_size) ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile"); + pixel_info=AcquireVirtualMemory(image->rows,MagickMax(bytes_per_line, + image->columns+1UL)*sizeof(*pixels)); + if (pixel_info == (MemoryInfo *) NULL) + ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info); if ((bmp_info.compression == BI_RGB) || (bmp_info.compression == BI_BITFIELDS) || (bmp_info.compression == BI_ALPHABITFIELDS)) { - pixel_info=AcquireVirtualMemory(image->rows,MagickMax(bytes_per_line, - image->columns+256UL)*sizeof(*pixels)); - if (pixel_info == (MemoryInfo *) NULL) - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); - pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info); if (image->debug != MagickFalse) (void) LogMagickEvent(CoderEvent,GetMagickModule(), " Reading pixels (%.20g bytes)",(double) length); @@ -1142,11 +1150,6 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) /* Convert run-length encoded raster pixels. */ - pixel_info=AcquireVirtualMemory(image->rows,MagickMax(bytes_per_line, - image->columns+256UL)*sizeof(*pixels)); - if (pixel_info == (MemoryInfo *) NULL) - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); - pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info); status=DecodeImage(image,bmp_info.compression,pixels, image->columns*image->rows); if (status == MagickFalse) @@ -1183,7 +1186,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) y=-1; break; } - p+=4; + p+=(ptrdiff_t) 4; } } } @@ -1430,19 +1433,19 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) pixel|=(*p++) << 8; red=((pixel & bmp_info.red_mask) << shift.red) >> 16; if (quantum_bits.red == 5) - red|=((red & 0xe000) >> 5); + red|=((red & 0xff000) >> 5); if (quantum_bits.red <= 8) red|=((red & 0xff00) >> 8); green=((pixel & bmp_info.green_mask) << shift.green) >> 16; if (quantum_bits.green == 5) - green|=((green & 0xe000) >> 5); + green|=((green & 0xff000) >> 5); if (quantum_bits.green == 6) - green|=((green & 0xc000) >> 6); + green|=((green & 0xff00) >> 6); if (quantum_bits.green <= 8) green|=((green & 0xff00) >> 8); blue=((pixel & bmp_info.blue_mask) << shift.blue) >> 16; if (quantum_bits.blue == 5) - blue|=((blue & 0xe000) >> 5); + blue|=((blue & 0xff000) >> 5); if (quantum_bits.blue <= 8) blue|=((blue & 0xff00) >> 8); SetPixelRed(q,ScaleShortToQuantum((unsigned short) red)); @@ -1578,7 +1581,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) unsigned short *p16; - p16=(unsigned short *) pixels+(image->rows-y-1)*bytes_per_line; + p16=(unsigned short *) (pixels+(image->rows-y-1)*bytes_per_line); q=QueueAuthenticPixels(image,0,y,image->columns,1,exception); if (q == (PixelPacket *) NULL) break; @@ -1706,7 +1709,8 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } while (IsBMP(magick,2) != MagickFalse); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1840,7 +1844,7 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image) *p; const StringInfo - *profile; + *profile = (const StringInfo *) NULL; MagickBooleanType have_color_info, @@ -2029,7 +2033,8 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image) } bytes_per_line=4*((image->columns*bmp_info.bits_per_pixel+31)/32); bmp_info.ba_offset=0; - profile=GetImageProfile(image,"icc"); + if (type > 3) + profile=GetImageProfile(image,"icc"); have_color_info=(image->rendering_intent != UndefinedIntent) || (profile != (StringInfo *) NULL) || (image->gamma != 0.0) ? MagickTrue : MagickFalse; @@ -2266,7 +2271,7 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image) GetPixelBlue(p),31)); } *((unsigned short *) q)=pixel; - q+=2; + q+=(ptrdiff_t) 2; p++; } for (x=2L*(ssize_t) image->columns; x < (ssize_t) bytes_per_line; x++) @@ -2618,6 +2623,7 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image) if (image->debug != MagickFalse) (void) LogMagickEvent(CoderEvent,GetMagickModule(), " File_size: %u bytes",bmp_info.file_size); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/braille.c b/coders/braille.c index 278d277..5f4e3f6 100644 --- a/coders/braille.c +++ b/coders/braille.c @@ -379,6 +379,7 @@ static MagickBooleanType WriteBRAILLEImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/cals.c b/coders/cals.c index ea46da6..83cbffc 100644 --- a/coders/cals.c +++ b/coders/cals.c @@ -582,7 +582,8 @@ static MagickBooleanType WriteCALSImage(const ImageInfo *image_info, if (WriteBlob(image,length,group4) != (ssize_t) length) status=MagickFalse; group4=(unsigned char *) RelinquishMagickMemory(group4); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } #endif diff --git a/coders/caption.c b/coders/caption.c index 23cf4ea..c4714d0 100644 --- a/coders/caption.c +++ b/coders/caption.c @@ -110,8 +110,7 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, { char *caption, - geometry[MaxTextExtent], - lines[MaxTextExtent], + geometry[MagickPathExtent], *text; const char @@ -129,13 +128,13 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, split, status; - ssize_t - i; - size_t height, width; + ssize_t + i; + TypeMetric metrics; @@ -158,17 +157,18 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, */ option=GetImageOption(image_info,"filename"); if (option == (const char *) NULL) - caption=InterpretImageProperties(image_info,image,image_info->filename); + caption=InterpretImageProperties((ImageInfo *) image_info,image, + image_info->filename); else if (LocaleNCompare(option,"caption:",8) == 0) - caption=InterpretImageProperties(image_info,image,option+8); + caption=InterpretImageProperties((ImageInfo *) image_info,image,option+8); else - caption=InterpretImageProperties(image_info,image,option); + caption=InterpretImageProperties((ImageInfo *) image_info,image,option); if (caption == (char *) NULL) return(DestroyImageList(image)); (void) SetImageProperty(image,"caption",caption); draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL); - width=CastDoubleToUnsigned(draw_info->pointsize*strlen(caption)+0.5); + width=CastDoubleToUnsigned(0.5*draw_info->pointsize*strlen(caption)+0.5); if (AcquireMagickResource(WidthResource,width) == MagickFalse) { caption=DestroyString(caption); @@ -190,8 +190,8 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, AdjustTypeMetricBounds(&metrics); (void) CloneString(&draw_info->text,text); text=DestroyString(text); - (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g", - -metrics.bounds.x1,metrics.ascent); + (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g", + metrics.bounds.x1,metrics.ascent); if (draw_info->gravity == UndefinedGravity) (void) CloneString(&draw_info->geometry,geometry); status=GetMultilineTypeMetrics(image,draw_info,&metrics); @@ -206,8 +206,8 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, AdjustTypeMetricBounds(&metrics); (void) CloneString(&draw_info->text,text); text=DestroyString(text); - (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g", - -metrics.bounds.x1,metrics.ascent); + (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g", + metrics.bounds.x1,metrics.ascent); if (draw_info->gravity == UndefinedGravity) (void) CloneString(&draw_info->geometry,geometry); status=GetMultilineTypeMetrics(image,draw_info,&metrics); @@ -221,14 +221,12 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, { caption=DestroyString(caption); draw_info=DestroyDrawInfo(draw_info); - InheritException(exception,&image->exception); return(DestroyImageList(image)); } if (SetImageBackgroundColor(image) == MagickFalse) { caption=DestroyString(caption); draw_info=DestroyDrawInfo(draw_info); - InheritException(exception,&image->exception); image=DestroyImageList(image); return((Image *) NULL); } @@ -244,36 +242,59 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, /* Auto fit text into bounding box. */ - for (n=0; n < 32; n++, draw_info->pointsize*=2.0) - { - text=AcquireString(caption); - i=FormatMagickCaption(image,draw_info,split,&metrics,&text); - AdjustTypeMetricBounds(&metrics); - (void) CloneString(&draw_info->text,text); - text=DestroyString(text); - (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g", - -metrics.bounds.x1,metrics.ascent); - if (draw_info->gravity == UndefinedGravity) - (void) CloneString(&draw_info->geometry,geometry); - status=GetMultilineTypeMetrics(image,draw_info,&metrics); - AdjustTypeMetricBounds(&metrics); - if (status == MagickFalse) - break; - width=CastDoubleToUnsigned(metrics.width+draw_info->stroke_width+0.5); - height=CastDoubleToUnsigned(metrics.height-metrics.underline_position+ - draw_info->interline_spacing+draw_info->stroke_width+0.5); - if ((image->columns != 0) && (image->rows != 0)) + low=1.0; + option=GetImageOption(image_info,"caption:max-pointsize"); + if (option != (const char*) NULL) + { + high=StringToDouble(option,(char**) NULL); + if (high < 1.0) + high=1.0; + high+=1.0; + } + else + { + option=GetImageOption(image_info,"caption:start-pointsize"); + if (option != (const char *) NULL) + { + draw_info->pointsize=StringToDouble(option,(char**) NULL); + if (draw_info->pointsize < 1.0) + draw_info->pointsize=1.0; + } + for (n=0; n < 32; n++, draw_info->pointsize*=2.0) { - if ((width >= image->columns) || (height >= image->rows)) + text=AcquireString(caption); + i=FormatMagickCaption(image,draw_info,split,&metrics,&text); + AdjustTypeMetricBounds(&metrics); + (void) CloneString(&draw_info->text,text); + text=DestroyString(text); + (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g", + metrics.bounds.x1,metrics.ascent); + if (draw_info->gravity == UndefinedGravity) + (void) CloneString(&draw_info->geometry,geometry); + status=GetMultilineTypeMetrics(image,draw_info,&metrics); + if (status == MagickFalse) break; + AdjustTypeMetricBounds(&metrics); + width=CastDoubleToUnsigned(metrics.width+draw_info->stroke_width+ + 0.5); + height=CastDoubleToUnsigned( + metrics.height-metrics.underline_position+ + draw_info->interline_spacing+draw_info->stroke_width+0.5); + if ((image->columns != 0) && (image->rows != 0)) + { + if ((width > image->columns) && (height > image->rows)) + break; + if ((width <= image->columns) && (height <= image->rows)) + low=draw_info->pointsize; + } + else + if (((image->columns != 0) && (width > image->columns)) || + ((image->rows != 0) && (height > image->rows))) + break; } - else - if (((image->columns != 0) && (width >= image->columns)) || - ((image->rows != 0) && (height >= image->rows))) - break; - } - high=draw_info->pointsize; - for (low=1.0; (high-low) > 0.5; ) + high=draw_info->pointsize; + } + while ((high-low) > 0.5) { draw_info->pointsize=(low+high)/2.0; text=AcquireString(caption); @@ -281,32 +302,33 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, AdjustTypeMetricBounds(&metrics); (void) CloneString(&draw_info->text,text); text=DestroyString(text); - (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g", - -metrics.bounds.x1,metrics.ascent); + (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g", + metrics.bounds.x1,metrics.ascent); if (draw_info->gravity == UndefinedGravity) (void) CloneString(&draw_info->geometry,geometry); status=GetMultilineTypeMetrics(image,draw_info,&metrics); - AdjustTypeMetricBounds(&metrics); if (status == MagickFalse) break; + AdjustTypeMetricBounds(&metrics); width=CastDoubleToUnsigned(metrics.width+draw_info->stroke_width+0.5); height=CastDoubleToUnsigned(metrics.height-metrics.underline_position+ draw_info->interline_spacing+draw_info->stroke_width+0.5); if ((image->columns != 0) && (image->rows != 0)) { - if ((width < image->columns) && (height < image->rows)) + if ((width <= image->columns) && (height <= image->rows)) low=draw_info->pointsize+0.5; else high=draw_info->pointsize-0.5; } else - if (((image->columns != 0) && (width < image->columns)) || - ((image->rows != 0) && (height < image->rows))) + if (((image->columns != 0) && (width <= image->columns)) || + ((image->rows != 0) && (height <= image->rows))) low=draw_info->pointsize+0.5; else high=draw_info->pointsize-0.5; } - draw_info->pointsize=floor((low+high)/2.0-0.5); + if (status != MagickFalse) + draw_info->pointsize=floor(low-0.5); } /* Draw caption. @@ -328,16 +350,10 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, (void) CloneString(&draw_info->geometry,geometry); status=AnnotateImage(image,draw_info); if (image_info->pointsize == 0.0) - { - char - pointsize[MaxTextExtent]; - - (void) FormatLocaleString(pointsize,MaxTextExtent,"%.20g", - draw_info->pointsize); - (void) SetImageProperty(image,"caption:pointsize",pointsize); - } - (void) FormatLocaleString(lines,MaxTextExtent,"%.20g",((double) i+1)); - (void) SetImageProperty(image,"caption:lines",lines); + (void) FormatImageProperty(image,"caption:pointsize","%.*g", + GetMagickPrecision(),draw_info->pointsize); + (void) FormatImageProperty(image,"caption:lines","%.*g",GetMagickPrecision(), + (double) (i+1)); draw_info=DestroyDrawInfo(draw_info); if (status == MagickFalse) { diff --git a/coders/cin.c b/coders/cin.c index a79b800..490eb4f 100644 --- a/coders/cin.c +++ b/coders/cin.c @@ -794,7 +794,10 @@ static Image *ReadCINImage(const ImageInfo *image_info,ExceptionInfo *exception) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); SetImageColorspace(image,LogColorspace); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -995,7 +998,7 @@ static MagickBooleanType WriteCINImage(const ImageInfo *image_info,Image *image) offset+=WriteBlob(image,sizeof(cin.file.filename),(unsigned char *) cin.file.filename); seconds=GetMagickTime(); - GetMagickUTCtime(&seconds,&utc_time); + GetMagickUTCTime(&seconds,&utc_time); (void) memset(timestamp,0,sizeof(timestamp)); (void) strftime(timestamp,MaxTextExtent,"%Y:%m:%d:%H:%M:%SUTC",&utc_time); (void) memset(cin.file.create_date,0,sizeof(cin.file.create_date)); @@ -1226,6 +1229,7 @@ static MagickBooleanType WriteCINImage(const ImageInfo *image_info,Image *image) break; } quantum_info=DestroyQuantumInfo(quantum_info); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/cip.c b/coders/cip.c index c8d9090..20498cb 100644 --- a/coders/cip.c +++ b/coders/cip.c @@ -237,7 +237,7 @@ static MagickBooleanType WriteCIPImage(const ImageInfo *image_info,Image *image) (((size_t) (3*ClampToQuantum(GetPixelLuma(image,p+0))/QuantumRange) & 0x03) << 0)); (void) FormatLocaleString(buffer,MaxTextExtent,"%02x",byte); (void) WriteBlobString(image,buffer); - p+=4; + p+=(ptrdiff_t) 4; } if ((image->columns % 4) != 0) { @@ -283,6 +283,7 @@ static MagickBooleanType WriteCIPImage(const ImageInfo *image_info,Image *image) } (void) WriteBlobString(image,"\n"); (void) WriteBlobString(image,"\n"); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/clipboard.c b/coders/clipboard.c index 65da1c5..dd114fc 100644 --- a/coders/clipboard.c +++ b/coders/clipboard.c @@ -169,7 +169,7 @@ static Image *ReadCLIPBOARDImage(const ImageInfo *image_info, ThrowReaderException(CoderError,"UnableToReadImageData"); } p=(unsigned char *) clip_data; - p+=BMP_HEADER_SIZE; + p+=(ptrdiff_t) BMP_HEADER_SIZE; (void) memcpy(p,clip_mem,clip_size); (void) GlobalUnlock(clip_mem); (void) CloseClipboard(); @@ -191,7 +191,7 @@ static Image *ReadCLIPBOARDImage(const ImageInfo *image_info, offset+=12; } offset+=BMP_HEADER_SIZE; - p-=BMP_HEADER_SIZE; + p-=(ptrdiff_t)BMP_HEADER_SIZE; p[0]='B'; p[1]='M'; p[2]=(unsigned char) total_size; @@ -356,7 +356,7 @@ static MagickBooleanType WriteCLIPBOARDImage(const ImageInfo *image_info, ThrowWriterException(CoderError,"UnableToWriteImageData"); } p=(unsigned char *) clip_data; - p+=BMP_HEADER_SIZE; + p+=(ptrdiff_t) BMP_HEADER_SIZE; (void) memcpy(clip_mem,p,length-BMP_HEADER_SIZE); (void) GlobalUnlock(clip_mem); clip_data=RelinquishMagickMemory(clip_data); diff --git a/coders/cmyk.c b/coders/cmyk.c index 48fa2f7..9f83e8b 100644 --- a/coders/cmyk.c +++ b/coders/cmyk.c @@ -108,7 +108,7 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, *image; MagickBooleanType - status; + status = MagickTrue; MagickOffsetType scene; @@ -799,7 +799,8 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("M",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -871,7 +872,8 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("Y",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -943,7 +945,8 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("K",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -1026,7 +1029,8 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, } if (image->matte != MagickFalse) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("A",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -1140,7 +1144,8 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, InheritException(exception,&canvas_image->exception); InheritException(exception,&image->exception); canvas_image=DestroyImage(canvas_image); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1250,7 +1255,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info, Image *image) { MagickBooleanType - status; + status = MagickTrue; MagickOffsetType scene; @@ -1543,7 +1548,8 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("M",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1569,7 +1575,8 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("Y",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1595,7 +1602,8 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("K",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1623,7 +1631,8 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info, } if (quantum_type == CMYKAQuantum) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("A",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1671,6 +1680,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/cut.c b/coders/cut.c index 4959fbc..04078a1 100644 --- a/coders/cut.c +++ b/coders/cut.c @@ -677,7 +677,10 @@ static Image *ReadCUTImage(const ImageInfo *image_info,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } diff --git a/coders/dcm.c b/coders/dcm.c index 32db5bf..d0767f8 100644 --- a/coders/dcm.c +++ b/coders/dcm.c @@ -3161,7 +3161,7 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception) while (TellBlob(image) < ((MagickOffsetType) GetBlobSize(image)-10)) { - for (group=0; (group != 0x7FE0) || (element != 0x0010) ; ) + for (group=0; (group != 0x7fe0) || (element != 0x0010) ; ) { /* Read a group. @@ -3169,7 +3169,11 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception) image->offset=(ssize_t) TellBlob(image); group=ReadBlobLSBShort(image); element=ReadBlobLSBShort(image); - if ((group == 0xfffc) && (element == 0xfffc)) + /* + Check for end of data. + */ + if (((group == 0xfffc) && (element == 0xfffc)) || + ((group == 0x0000) && (element == 0x0000))) break; if ((group != 0x0002) && (image->endian == MSBEndian)) { @@ -3670,7 +3674,7 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception) else index=(unsigned short) (*p | (*(p+1) << 8)); redmap[i]=(int) index; - p+=2; + p+=(ptrdiff_t) 2; } break; } @@ -3702,7 +3706,7 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception) else index=(unsigned short) (*p | (*(p+1) << 8)); greenmap[i]=(int) index; - p+=2; + p+=(ptrdiff_t) 2; } break; } @@ -3734,7 +3738,7 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception) else index=(unsigned short) (*p | (*(p+1) << 8)); bluemap[i]=(int) index; - p+=2; + p+=(ptrdiff_t) 2; } break; } @@ -3827,7 +3831,8 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } - if ((group == 0xfffc) && (element == 0xfffc)) + if (((group == 0xfffc) && (element == 0xfffc)) || + ((group == 0x0000) && (element == 0x0000))) { Image *last; @@ -4365,7 +4370,8 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception) redmap=(int *) RelinquishMagickMemory(redmap); if (image == (Image *) NULL) return(image); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); diff --git a/coders/dds.c b/coders/dds.c index 6eae27b..8143c19 100644 --- a/coders/dds.c +++ b/coders/dds.c @@ -1798,10 +1798,7 @@ static Image *ReadDDSImage(const ImageInfo *image_info,ExceptionInfo *exception) image->endian = LSBEndian; image->depth = 8; if (image_info->ping != MagickFalse) - { - (void) CloseBlob(image); - return(GetFirstImageInList(image)); - } + continue; status=SetImageExtent(image,image->columns,image->rows); if (status == MagickFalse) { @@ -1818,7 +1815,10 @@ static Image *ReadDDSImage(const ImageInfo *image_info,ExceptionInfo *exception) } } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -2699,8 +2699,9 @@ static MagickBooleanType WriteDDSImage(const ImageInfo *image_info, if (mipmaps > 0 && WriteMipmaps(image,pixelFormat,compression,mipmaps, clusterFit,weightByAlpha,&image->exception) == MagickFalse) return(MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } static void WriteDDSInfo(Image *image, const size_t pixelFormat, diff --git a/coders/debug.c b/coders/debug.c index 7ea225d..3821c4d 100644 --- a/coders/debug.c +++ b/coders/debug.c @@ -267,6 +267,7 @@ static MagickBooleanType WriteDEBUGImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/dib.c b/coders/dib.c index 29b2ffe..fa791d9 100644 --- a/coders/dib.c +++ b/coders/dib.c @@ -381,7 +381,7 @@ static size_t EncodeImage(Image *image,const size_t bytes_per_line, break; *q++=(unsigned char) i; *q++=(*p); - p+=i; + p+=(ptrdiff_t) i; } /* End of line. @@ -996,7 +996,10 @@ static Image *ReadDIBImage(const ImageInfo *image_info,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -1429,6 +1432,7 @@ static MagickBooleanType WriteDIBImage(const ImageInfo *image_info,Image *image) } (void) WriteBlob(image,dib_info.image_size,pixels); pixels=(unsigned char *) RelinquishMagickMemory(pixels); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/djvu.c b/coders/djvu.c index 066f8b4..708935a 100644 --- a/coders/djvu.c +++ b/coders/djvu.c @@ -609,6 +609,8 @@ static Image *ReadOneDJVUImage(LoadContext* lc,const int pagenum, if (tag == 0) break; } while (!ddjvu_page_decoding_done(lc->page)); + if (ddjvu_page_decoding_error(lc->page) != 0) + ThrowReaderException(CorruptImageError,"CorruptImage"); ddjvu_document_get_pageinfo(lc->document, pagenum, &info); image->x_resolution = (float) info.dpi; diff --git a/coders/dng.c b/coders/dng.c index 611f524..37a0428 100644 --- a/coders/dng.c +++ b/coders/dng.c @@ -71,6 +71,9 @@ #include "magick/utility-private.h" #include "magick/xml-tree.h" #if defined(MAGICKCORE_RAW_R_DELEGATE) +#ifdef _MSC_VER +# define _XKEYCHECK_H +#endif #include #endif @@ -132,14 +135,14 @@ static void InitializeDcrawOpenCL(ExceptionInfo *exception) if (name != (char *) NULL) { (void) SetEnvironmentVariable("DCR_CL_PLATFORM",name); - name=RelinquishMagickMemory(name); + name=(char *) RelinquishMagickMemory(name); } GetMagickOpenCLEnvParam(clEnv,MAGICK_OPENCL_ENV_PARAM_DEVICE_NAME, sizeof(char *),&name,exception); if (name != (char *) NULL) { (void) SetEnvironmentVariable("DCR_CL_DEVICE",name); - name=RelinquishMagickMemory(name); + name=(char *) RelinquishMagickMemory(name); } } } @@ -229,93 +232,33 @@ static Image *InvokeDNGDelegate(const ImageInfo *image_info,Image *image, ImageInfo *read_info; + MagickBooleanType + status; + /* - Convert DNG to PPM with delegate. + Convert DNG to TIFF with delegate program. */ (void) DestroyImageList(image); InitializeDcrawOpenCL(exception); image=AcquireImage(image_info); read_info=CloneImageInfo(image_info); SetImageInfoBlob(read_info,(void *) NULL,0); - (void) InvokeDelegate(read_info,image,"dng:decode",(char *) NULL,exception); + status=InvokeDelegate(read_info,image,"dng:decode",(char *) NULL,exception); image=DestroyImage(image); - (void) FormatLocaleString(read_info->filename,MagickPathExtent,"%s.png", + if (status == MagickFalse) + { + read_info=DestroyImageInfo(read_info); + return(image); + } + *read_info->magick='\0'; + (void) FormatLocaleString(read_info->filename,MagickPathExtent,"%s.tif", read_info->unique); sans_exception=AcquireExceptionInfo(); image=ReadImage(read_info,sans_exception); sans_exception=DestroyExceptionInfo(sans_exception); - if (image == (Image *) NULL) - { - (void) FormatLocaleString(read_info->filename,MagickPathExtent,"%s.ppm", - read_info->unique); - image=ReadImage(read_info,exception); - } - (void) RelinquishUniqueFileResource(read_info->filename); if (image != (Image *) NULL) - { - char - filename[MagickPathExtent], - *xml; - - ExceptionInfo - *sans; - - (void) CopyMagickString(image->magick,read_info->magick, - MagickPathExtent); - (void) FormatLocaleString(filename,MagickPathExtent,"%s.ufraw", - read_info->unique); - sans=AcquireExceptionInfo(); - xml=FileToString(filename,MagickPathExtent,sans); - (void) RelinquishUniqueFileResource(filename); - if (xml != (char *) NULL) - { - XMLTreeInfo - *ufraw; - - /* - Inject. - */ - ufraw=NewXMLTree(xml,sans); - if (ufraw != (XMLTreeInfo *) NULL) - { - char - *content, - property[MagickPathExtent]; - - const char - *tag; - - XMLTreeInfo - *next; - - if (image->properties == (void *) NULL) - image->properties=NewSplayTree(CompareSplayTreeString, - RelinquishMagickMemory,RelinquishMagickMemory); - next=GetXMLTreeChild(ufraw,(const char *) NULL); - while (next != (XMLTreeInfo *) NULL) - { - tag=GetXMLTreeTag(next); - if (tag == (char *) NULL) - tag="unknown"; - (void) FormatLocaleString(property,MagickPathExtent,"dng:%s", - tag); - content=ConstantString(GetXMLTreeContent(next)); - (void) StripString(content); - if ((LocaleCompare(tag,"log") != 0) && - (LocaleCompare(tag,"InputFilename") != 0) && - (LocaleCompare(tag,"OutputFilename") != 0) && - (LocaleCompare(tag,"OutputType") != 0) && - (strlen(content) != 0)) - (void) AddValueToSplayTree((SplayTreeInfo *) - image->properties,ConstantString(property),content); - next=GetXMLTreeSibling(next); - } - ufraw=DestroyXMLTree(ufraw); - } - xml=DestroyString(xml); - } - sans=DestroyExceptionInfo(sans); - } + (void) CopyMagickString(image->magick,read_info->magick,MagickPathExtent); + (void) RelinquishUniqueFileResource(read_info->filename); read_info=DestroyImageInfo(read_info); return(image); } @@ -327,6 +270,21 @@ static void SetLibRawParams(const ImageInfo *image_info,Image *image, const char *option; +#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0,20) +#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0,21) + raw_info->rawparams.max_raw_memory_mb=8192; +#else + raw_info->params.max_raw_memory_mb=8192; +#endif + option=GetImageOption(image_info,"dng:max-raw-memory"); + if (option != (const char *) NULL) +#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0,21) + raw_info->rawparams.max_raw_memory_mb=(unsigned int) + StringToInteger(option); +#else + raw_info->params.max_raw_memory_mb=(unsigned int) StringToInteger(option); +#endif +#endif raw_info->params.user_flip=0; raw_info->params.output_bps=16; raw_info->params.use_camera_wb=1; diff --git a/coders/dps.c b/coders/dps.c index fc372ab..97382cd 100644 --- a/coders/dps.c +++ b/coders/dps.c @@ -528,7 +528,10 @@ static Image *ReadDPSImage(const ImageInfo *image_info,ExceptionInfo *exception) */ XFreeResources(display,visual_info,map_info,(XPixelInfo *) NULL, (XFontStruct *) NULL,&resource_info,(XWindowInfo *) NULL); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } #endif diff --git a/coders/dpx.c b/coders/dpx.c index aecbfa9..c5c1118 100644 --- a/coders/dpx.c +++ b/coders/dpx.c @@ -1330,7 +1330,8 @@ static Image *ReadDPXImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -2083,6 +2084,7 @@ static MagickBooleanType WriteDPXImage(const ImageInfo *image_info, quantum_info=DestroyQuantumInfo(quantum_info); if (y < (ssize_t) image->rows) ThrowWriterException(CorruptImageError,"UnableToWriteImageData"); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/ept.c b/coders/ept.c index 339fbd9..9c56f2d 100644 --- a/coders/ept.c +++ b/coders/ept.c @@ -499,6 +499,7 @@ static MagickBooleanType WriteEPTImage(const ImageInfo *image_info,Image *image) ept_info.postscript=(unsigned char *) RelinquishMagickMemory( ept_info.postscript); ept_info.tiff=(unsigned char *) RelinquishMagickMemory(ept_info.tiff); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/exr.c b/coders/exr.c index 83615e2..7e4b676 100644 --- a/coders/exr.c +++ b/coders/exr.c @@ -218,6 +218,7 @@ static Image *ReadEXRImage(const ImageInfo *image_info,ExceptionInfo *exception) if (status == MagickFalse) { (void) ImfCloseInputFile(file); + (void) CloseBlob(image); InheritException(exception,&image->exception); return(DestroyImageList(image)); } @@ -233,6 +234,7 @@ static Image *ReadEXRImage(const ImageInfo *image_info,ExceptionInfo *exception) if (scanline == (ImfRgba *) NULL) { (void) ImfCloseInputFile(file); + (void) CloseBlob(image); image=DestroyImageList(image); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } @@ -309,7 +311,10 @@ static Image *ReadEXRImage(const ImageInfo *image_info,ExceptionInfo *exception) (void) ImfCloseInputFile(file); if (status == MagickFalse) ThrowReaderException(CorruptImageError,"UnableToReadImageData"); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } #endif @@ -621,7 +626,8 @@ static MagickBooleanType WriteEXRImage(const ImageInfo *image_info,Image *image) (void) FileToImage(image,write_info->filename); (void) RelinquishUniqueFileResource(write_info->filename); write_info=DestroyImageInfo(write_info); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } #endif diff --git a/coders/fax.c b/coders/fax.c index 844e9b4..778a6d5 100644 --- a/coders/fax.c +++ b/coders/fax.c @@ -142,7 +142,10 @@ static Image* FaxReadG3(Image *image,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -402,6 +405,7 @@ static MagickBooleanType WriteFAXImage(const ImageInfo *image_info,Image *image) break; } while (write_info->adjoin != MagickFalse); write_info=DestroyImageInfo(write_info); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/fits.c b/coders/fits.c index 6a3ad01..95c661f 100644 --- a/coders/fits.c +++ b/coders/fits.c @@ -294,6 +294,8 @@ static Image *ReadFITSImage(const ImageInfo *image_info, (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", image_info->filename); image=AcquireImage(image_info); + image->columns=0; + image->rows=0; status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) { @@ -345,7 +347,7 @@ static Image *ReadFITSImage(const ImageInfo *image_info, p=value; if (*p == '=') { - p+=2; + p+=(ptrdiff_t) 2; while (isspace((int) ((unsigned char) *p)) != 0) p++; } @@ -562,7 +564,8 @@ static Image *ReadFITSImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (1); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -909,6 +912,7 @@ static MagickBooleanType WriteFITSImage(const ImageInfo *image_info, break; } while (image_info->adjoin != MagickFalse); fits_info=DestroyString(fits_info); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/flif.c b/coders/flif.c index 9a317aa..01f5c45 100644 --- a/coders/flif.c +++ b/coders/flif.c @@ -494,7 +494,7 @@ static MagickBooleanType WriteFLIFImage(const ImageInfo *image_info, } else { - qc=pixels; + qc=(unsigned char *) pixels; for (x=0; x < (ssize_t) image->columns; x++) { *qc++=ScaleQuantumToChar(GetPixelRed(p)); @@ -531,7 +531,7 @@ static MagickBooleanType WriteFLIFImage(const ImageInfo *image_info, pixels=RelinquishMagickMemory(pixels); flif_status=flif_encoder_encode_memory(flifenc,&buffer,&length); if (flif_status) - WriteBlob(image,length,buffer); + WriteBlob(image,length,(unsigned char *) buffer); CloseBlob(image); flif_destroy_encoder(flifenc); buffer=RelinquishMagickMemory(buffer); diff --git a/coders/fpx.c b/coders/fpx.c index f53134f..84e5a10 100644 --- a/coders/fpx.c +++ b/coders/fpx.c @@ -111,6 +111,29 @@ static MagickBooleanType % o exception: return any errors or warnings in this structure. % */ + +static void FPXRelinquishSummaryInfo(FPXSummaryInformation *summary_info) +{ + if (summary_info->title_valid) + (void) FPX_DeleteFPXStr(&summary_info->title); + if (summary_info->subject_valid) + (void) FPX_DeleteFPXStr(&summary_info->subject); + if (summary_info->author_valid) + (void) FPX_DeleteFPXStr(&summary_info->author); + if (summary_info->keywords_valid) + (void) FPX_DeleteFPXStr(&summary_info->keywords); + if (summary_info->comments_valid) + (void) FPX_DeleteFPXStr(&summary_info->comments); + if (summary_info->OLEtemplate_valid) + (void) FPX_DeleteFPXStr(&summary_info->OLEtemplate); + if (summary_info->last_author_valid) + (void) FPX_DeleteFPXStr(&summary_info->last_author); + if (summary_info->rev_number_valid) + (void) FPX_DeleteFPXStr(&summary_info->rev_number); + if (summary_info->appname_valid) + (void) FPX_DeleteFPXStr(&summary_info->appname); +} + static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) { const char @@ -201,6 +224,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) /* Initialize FPX toolkit. */ + (void) memset(&summary_info,0,sizeof(summary_info)); fpx_status=FPX_InitSystem(); if (fpx_status != FPX_OK) ThrowReaderException(CoderError,"UnableToInitializeFPXLibrary"); @@ -208,6 +232,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) fpx_status=FPX_SetToolkitMemoryLimit(&memory_limit); if (fpx_status != FPX_OK) { + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); ThrowReaderException(CoderError,"UnableToInitializeFPXLibrary"); } @@ -228,11 +253,13 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) } if (fpx_status == FPX_LOW_MEMORY_ERROR) { + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } if (fpx_status != FPX_OK) { + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); ThrowFileException(exception,FileOpenError,"UnableToOpenFile", image->filename); @@ -241,6 +268,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) } if (colorspace.numberOfComponents == 0) { + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); ThrowReaderException(CorruptImageError,"ImageTypeNotSupported"); } @@ -265,6 +293,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) fpx_status=FPX_GetSummaryInformation(flashpix,&summary_info); if (fpx_status != FPX_OK) { + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); ThrowReaderException(DelegateError,"UnableToReadSummaryInfo"); } @@ -284,6 +313,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) MaxTextExtent,sizeof(*label)); if (label == (char *) NULL) { + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } @@ -308,6 +338,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) MaxTextExtent,sizeof(*comments)); if (comments == (char *) NULL) { + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } @@ -322,7 +353,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) for (i=1; ; i++) if (((width >> i) < tile_width) || ((height >> i) < tile_height)) break; - scene=i; + scene=(size_t) i; if (image_info->number_scenes != 0) while (scene > image_info->scene) { @@ -335,7 +366,8 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) { width>>=1; height>>=1; - scene--; + if (scene != 0) + scene--; } image->depth=8; image->columns=width; @@ -349,6 +381,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) */ if (AcquireImageColormap(image,MaxColormapSize) == MagickFalse) { + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } @@ -356,6 +389,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) if (image_info->ping != MagickFalse) { (void) FPX_CloseImage(flashpix); + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); return(GetFirstImageInList(image)); } @@ -368,10 +402,11 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) /* Allocate memory for the image and pixel buffer. */ - pixels=(unsigned char *) AcquireQuantumMemory(image->columns,(tile_height+ - 1UL)*colorspace.numberOfComponents*sizeof(*pixels)); + pixels=(unsigned char *) AcquireQuantumMemory(image->columns,(tile_height+1)* + (size_t) colorspace.numberOfComponents*sizeof(*pixels)); if (pixels == (unsigned char *) NULL) { + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); (void) FPX_CloseImage(flashpix); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); @@ -379,15 +414,15 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) /* Initialize FlashPix image description. */ - fpx_info.numberOfComponents=colorspace.numberOfComponents; + fpx_info.numberOfComponents=(unsigned int) colorspace.numberOfComponents; for (i=0; i < 4; i++) { fpx_info.components[i].myColorType.myDataType=DATA_TYPE_UNSIGNED_BYTE; fpx_info.components[i].horzSubSampFactor=1; fpx_info.components[i].vertSubSampFactor=1; - fpx_info.components[i].columnStride=fpx_info.numberOfComponents; + fpx_info.components[i].columnStride=(int) fpx_info.numberOfComponents; fpx_info.components[i].lineStride=image->columns* - fpx_info.components[i].columnStride; + (size_t) fpx_info.components[i].columnStride; fpx_info.components[i].theData=pixels+i; } fpx_info.components[0].myColorType.myColor=fpx_info.numberOfComponents > 2 ? @@ -421,12 +456,13 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) else fpx_status=FPX_ReadImageTransformRectangle(flashpix,0.0F, (float) y/image->rows,(float) image->columns/image->rows, - (float) (y+tile_height-1)/image->rows,(ssize_t) image->columns, - (ssize_t) tile_height,&fpx_info); + (float) (y+tile_height-1)/image->rows,(int) image->columns, + (int) tile_height,&fpx_info); if (fpx_status == FPX_LOW_MEMORY_ERROR) { pixels=(unsigned char *) RelinquishMagickMemory(pixels); (void) FPX_CloseImage(flashpix); + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } @@ -458,7 +494,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) if (image->matte != MagickFalse) SetPixelAlpha(q,ScaleCharToQuantum(*a)); q++; - r+=red_component->columnStride; + r+=(ptrdiff_t) red_component->columnStride; g+=green_component->columnStride; b+=blue_component->columnStride; a+=alpha_component->columnStride; @@ -472,6 +508,7 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) } pixels=(unsigned char *) RelinquishMagickMemory(pixels); (void) FPX_CloseImage(flashpix); + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); return(GetFirstImageInList(image)); } @@ -887,25 +924,7 @@ static MagickBooleanType WriteFPXImage(const ImageInfo *image_info,Image *image) /* Set image summary info. */ - summary_info.title_valid=MagickFalse; - summary_info.subject_valid=MagickFalse; - summary_info.author_valid=MagickFalse; - summary_info.comments_valid=MagickFalse; - summary_info.keywords_valid=MagickFalse; - summary_info.OLEtemplate_valid=MagickFalse; - summary_info.last_author_valid=MagickFalse; - summary_info.rev_number_valid=MagickFalse; - summary_info.edit_time_valid=MagickFalse; - summary_info.last_printed_valid=MagickFalse; - summary_info.create_dtm_valid=MagickFalse; - summary_info.last_save_dtm_valid=MagickFalse; - summary_info.page_count_valid=MagickFalse; - summary_info.word_count_valid=MagickFalse; - summary_info.char_count_valid=MagickFalse; - summary_info.thumbnail_valid=MagickFalse; - summary_info.appname_valid=MagickFalse; - summary_info.security_valid=MagickFalse; - summary_info.title.ptr=(unsigned char *) NULL; + (void) memset(&summary_info,0,sizeof(summary_info)); label=GetImageProperty(image,"label"); if (label != (const char *) NULL) { @@ -946,15 +965,15 @@ static MagickBooleanType WriteFPXImage(const ImageInfo *image_info,Image *image) if (quantum_info == (QuantumInfo *) NULL) ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); pixels=GetQuantumPixels(quantum_info); - fpx_info.numberOfComponents=colorspace.numberOfComponents; + fpx_info.numberOfComponents=(unsigned int) colorspace.numberOfComponents; for (i=0; i < (ssize_t) fpx_info.numberOfComponents; i++) { fpx_info.components[i].myColorType.myDataType=DATA_TYPE_UNSIGNED_BYTE; fpx_info.components[i].horzSubSampFactor=1; fpx_info.components[i].vertSubSampFactor=1; - fpx_info.components[i].columnStride=fpx_info.numberOfComponents; - fpx_info.components[i].lineStride= - image->columns*fpx_info.components[i].columnStride; + fpx_info.components[i].columnStride=(int) fpx_info.numberOfComponents; + fpx_info.components[i].lineStride=(size_t) (image->columns* + fpx_info.components[i].columnStride); fpx_info.components[i].theData=pixels+i; } fpx_info.components[0].myColorType.myColor=fpx_info.numberOfComponents != 1 ? @@ -1117,6 +1136,7 @@ static MagickBooleanType WriteFPXImage(const ImageInfo *image_info,Image *image) } } (void) FPX_CloseImage(flashpix); + FPXRelinquishSummaryInfo(&summary_info); FPX_ClearSystem(); return(MagickTrue); } diff --git a/coders/ghostscript-private.h b/coders/ghostscript-private.h index 5305937..94b2836 100644 --- a/coders/ghostscript-private.h +++ b/coders/ghostscript-private.h @@ -235,11 +235,11 @@ static inline void ReadGhostScriptXMPProfile(MagickByteBuffer *buffer, ssize_t count; - if (*profile != (StringInfo *) NULL) - return; status=CompareMagickByteBuffer(buffer,BeginXMPPacket,strlen(BeginXMPPacket)); if (status == MagickFalse) return; + if (*profile != (StringInfo *) NULL) + *profile=DestroyStringInfo(*profile); length=8192; *profile=AcquireStringInfo(length); found_end=MagickFalse; diff --git a/coders/gif.c b/coders/gif.c index 5b1758a..86c678a 100644 --- a/coders/gif.c +++ b/coders/gif.c @@ -1321,8 +1321,9 @@ static Image *ReadGIFImage(const ImageInfo *image_info,ExceptionInfo *exception) image->transparent_color=image->colormap[opacity]; } } - image->background_color=image->colormap[MagickMin((ssize_t) background, - (ssize_t) image->colors-1)]; + if (image->colors > 0) + image->background_color=image->colormap[MagickMin((ssize_t) + background,(ssize_t) image->colors-1)]; } else { @@ -1421,7 +1422,8 @@ static Image *ReadGIFImage(const ImageInfo *image_info,ExceptionInfo *exception) global_colormap=(unsigned char *) RelinquishMagickMemory(global_colormap); if ((image->columns == 0) || (image->rows == 0)) ThrowReaderException(CorruptImageError,"NegativeOrZeroImageSize"); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1963,6 +1965,7 @@ static MagickBooleanType WriteGIFImage(const ImageInfo *image_info,Image *image) global_colormap=(unsigned char *) RelinquishMagickMemory(global_colormap); colormap=(unsigned char *) RelinquishMagickMemory(colormap); write_info=DestroyImageInfo(write_info); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/gray.c b/coders/gray.c index 12fd530..ffc742a 100644 --- a/coders/gray.c +++ b/coders/gray.c @@ -108,7 +108,7 @@ static Image *ReadGRAYImage(const ImageInfo *image_info, *image; MagickBooleanType - status; + status = MagickTrue; MagickOffsetType scene; @@ -575,8 +575,8 @@ static Image *ReadGRAYImage(const ImageInfo *image_info, if (DiscardBlobBytes(image,(MagickSizeType) image->offset) == MagickFalse) { status=MagickFalse; - ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", - image->filename); + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); break; } length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum); @@ -649,7 +649,8 @@ static Image *ReadGRAYImage(const ImageInfo *image_info, (void) CloseBlob(image); if (image->matte != MagickFalse) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("A",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -763,7 +764,8 @@ static Image *ReadGRAYImage(const ImageInfo *image_info, quantum_info=DestroyQuantumInfo(quantum_info); InheritException(&image->exception,&canvas_image->exception); canvas_image=DestroyImage(canvas_image); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -871,7 +873,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info, Image *image) { MagickBooleanType - status; + status = MagickTrue; MagickOffsetType scene; @@ -1088,7 +1090,8 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info, (void) CloseBlob(image); if (quantum_type == GrayAlphaQuantum) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("A",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1136,6 +1139,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/hald.c b/coders/hald.c index 64524c1..ade3fc2 100644 --- a/coders/hald.c +++ b/coders/hald.c @@ -184,7 +184,8 @@ static Image *ReadHALDImage(const ImageInfo *image_info, if (SyncAuthenticPixels(image,exception) == MagickFalse) status=MagickFalse; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); if (image_info->scene != 0) diff --git a/coders/hdr.c b/coders/hdr.c index 80c2f9f..38668a4 100644 --- a/coders/hdr.c +++ b/coders/hdr.c @@ -456,7 +456,7 @@ static Image *ReadHDRImage(const ImageInfo *image_info,ExceptionInfo *exception) count=ReadBlob(image,(size_t) count*sizeof(*p),p); if (count < 1) break; - p+=count; + p+=(ptrdiff_t) count; } } } @@ -509,7 +509,10 @@ static Image *ReadHDRImage(const ImageInfo *image_info,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -625,7 +628,7 @@ static size_t HDRWriteRunlengthPixels(Image *image,unsigned char *pixels) previous_count=0; while ((runlength < MinimumRunlength) && (q < image->columns)) { - q+=runlength; + q+=(ptrdiff_t) runlength; previous_count=(ssize_t) runlength; runlength=1; while ((pixels[q] == pixels[q+runlength]) && @@ -650,7 +653,7 @@ static size_t HDRWriteRunlengthPixels(Image *image,unsigned char *pixels) break; if (WriteBlob(image,(size_t) count*sizeof(*pixel),&pixels[p]) < 1) break; - p+=count; + p+=(ptrdiff_t) count; } if (runlength >= MinimumRunlength) { @@ -658,7 +661,7 @@ static size_t HDRWriteRunlengthPixels(Image *image,unsigned char *pixels) pixel[1]=pixels[q]; if (WriteBlob(image,2*sizeof(*pixel),pixel) < 1) break; - p+=runlength; + p+=(ptrdiff_t) runlength; } } return(p); @@ -834,6 +837,7 @@ static MagickBooleanType WriteHDRImage(const ImageInfo *image_info,Image *image) break; } pixels=(unsigned char *) RelinquishMagickMemory(pixels); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/heic.c b/coders/heic.c index 4ac9000..cce794c 100644 --- a/coders/heic.c +++ b/coders/heic.c @@ -69,16 +69,18 @@ #include "magick/option.h" #include "magick/pixel-accessor.h" #include "magick/quantum-private.h" +#include "magick/resource_.h" #include "magick/static.h" #include "magick/string_.h" #include "magick/string-private.h" #include "magick/module.h" #include "magick/utility.h" #if defined(MAGICKCORE_HEIC_DELEGATE) -#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__) -#include -#else +#define HEIC_COMPUTE_NUMERIC_VERSION(major,minor,patch) \ + ((major<<24) | (minor<<16) | (patch<<8) | 0) #include +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,17,0) +#include #endif #endif @@ -88,8 +90,8 @@ */ static MagickBooleanType WriteHEICImage(const ImageInfo *,Image *); - -/*x + +/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % @@ -359,6 +361,73 @@ static MagickBooleanType ReadHEICImageHandle(const ImageInfo *image_info, "heic:preserve-orientation")); if (preserve_orientation == MagickFalse) (void) SetImageProperty(image,"exif:Orientation","1"); + else + { +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,17,0) + heif_item_id + item_id; + + heif_property_id + transforms[1]; + + int + count; + + struct heif_context + *heif_context; + + heif_context=heif_image_handle_get_context(image_handle); + item_id=heif_image_handle_get_item_id(image_handle); + count=heif_item_get_transformation_properties(heif_context,item_id, + transforms,1); + if (count == 1) + { + enum heif_transform_mirror_direction + mirror; + + int + rotation_ccw; + + mirror=heif_item_get_property_transform_mirror(heif_context,item_id, + transforms[0]); + rotation_ccw=heif_item_get_property_transform_rotation_ccw( + heif_context,item_id,transforms[0]); + switch(mirror) + { + case heif_transform_mirror_direction_horizontal: + { + if (rotation_ccw == 0) + image->orientation=TopRightOrientation; + else if (rotation_ccw == 270) + image->orientation=LeftTopOrientation; + break; + } + case heif_transform_mirror_direction_vertical: + { + if (rotation_ccw == 0) + image->orientation=BottomLeftOrientation; + else if (rotation_ccw == 270) + image->orientation=RightBottomOrientation; + break; + } + case heif_transform_mirror_direction_invalid: + { + if (rotation_ccw == 0) + image->orientation=TopLeftOrientation; + else if (rotation_ccw == 90) + image->orientation=LeftBottomOrientation; + else if (rotation_ccw == 180) + image->orientation=BottomRightOrientation; + else if (rotation_ccw == 270) + image->orientation=RightTopOrientation; + break; + } + } + } +#endif + image->columns=(size_t) heif_image_handle_get_ispe_width(image_handle); + image->rows=(size_t) heif_image_handle_get_ispe_height(image_handle); + } if (ReadHEICColorProfile(image,image_handle,exception) == MagickFalse) return(MagickFalse); if (ReadHEICExifProfile(image,image_handle,exception) == MagickFalse) @@ -373,6 +442,33 @@ static MagickBooleanType ReadHEICImageHandle(const ImageInfo *image_info, if (status == MagickFalse) return(MagickFalse); decode_options=heif_decoding_options_alloc(); +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,16,0) + { + const char + *option; + + option=GetImageOption(image_info,"heic:chroma-upsampling"); + if (option != (char *) NULL) + { + if (LocaleCompare(option,"nearest-neighbor") == 0) + { + decode_options->color_conversion_options. + only_use_preferred_chroma_algorithm=1; + decode_options->color_conversion_options. + preferred_chroma_upsampling_algorithm= + heif_chroma_upsampling_nearest_neighbor; + } + else if (LocaleCompare(option,"bilinear") == 0) + { + decode_options->color_conversion_options. + only_use_preferred_chroma_algorithm=1; + decode_options->color_conversion_options. + preferred_chroma_upsampling_algorithm= + heif_chroma_upsampling_bilinear; + } + } + } +#endif if (preserve_orientation != MagickFalse) decode_options->ignore_transformations=1; chroma=heif_chroma_interleaved_RGB; @@ -452,15 +548,15 @@ static MagickBooleanType ReadHEICImageHandle(const ImageInfo *image_info, for (x=0; x < (ssize_t) image->columns; x++) { unsigned short pixel = (((unsigned short) *(p+1) << 8) | - (*(p+0))) << shift; p+=2; + (*(p+0))) << shift; p+=(ptrdiff_t) 2; SetPixelRed(q,ScaleShortToQuantum(pixel)); - pixel=(((unsigned short) *(p+1) << 8) | (*(p+0))) << shift; p+=2; + pixel=(((unsigned short) *(p+1) << 8) | (*(p+0))) << shift; p+=(ptrdiff_t) 2; SetPixelGreen(q,ScaleShortToQuantum(pixel)); - pixel=(((unsigned short) *(p+1) << 8) | (*(p+0))) << shift; p+=2; + pixel=(((unsigned short) *(p+1) << 8) | (*(p+0))) << shift; p+=(ptrdiff_t) 2; SetPixelBlue(q,ScaleShortToQuantum(pixel)); if (image->matte != MagickFalse) { - pixel=(((unsigned short) *(p+1) << 8) | (*(p+0))) << shift; p+=2; + pixel=(((unsigned short) *(p+1) << 8) | (*(p+0))) << shift; p+=(ptrdiff_t) 2; SetPixelAlpha(q,ScaleShortToQuantum(pixel)); } q++; @@ -527,6 +623,9 @@ static Image *ReadHEICImage(const ImageInfo *image_info, Image *image; + int + max_size; + MagickBooleanType status; @@ -543,7 +642,7 @@ static Image *ReadHEICImage(const ImageInfo *image_info, *image_handle; unsigned char - magic[12]; + magic[128]; /* Open image file. @@ -565,7 +664,7 @@ static Image *ReadHEICImage(const ImageInfo *image_info, if (filetype_check == heif_filetype_no) ThrowReaderException(CoderError,"ImageTypeNotSupported"); (void) CloseBlob(image); -#if LIBHEIF_NUMERIC_VERSION >= 0x010b0000 +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,11,0) if (heif_has_compatible_brand(magic,sizeof(magic), "avif") == 1) (void) CopyMagickString(image->magick,"AVIF",MagickPathExtent); #endif @@ -575,6 +674,12 @@ static Image *ReadHEICImage(const ImageInfo *image_info, heif_context=heif_context_alloc(); if (heif_context == (struct heif_context *) NULL) ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + max_size=(int) MagickMin(MagickMin(GetMagickResourceLimit(WidthResource), + GetMagickResourceLimit(HeightResource)),INT_MAX); +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,19,0) + if (max_size != INT_MAX) + heif_context_set_maximum_image_size_limit(heif_context,max_size); +#endif error=heif_context_read_from_file(heif_context,image->filename, (const struct heif_reading_options *) NULL); if (IsHEIFSuccess(image,&error,exception) == MagickFalse) @@ -727,8 +832,10 @@ ModuleExport size_t RegisterHEICImage(void) MagickInfo *entry; -#if defined(MAGICKCORE_HEIC_DELEGATE) && (LIBHEIF_NUMERIC_VERSION >= 0x010e0000) - heif_init(NULL); +#if defined(MAGICKCORE_HEIC_DELEGATE) +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,14,0) + heif_init((struct heif_init_params *) NULL); +#endif #endif entry=SetMagickInfo("HEIC"); #if defined(MAGICKCORE_HEIC_DELEGATE) @@ -760,7 +867,7 @@ ModuleExport size_t RegisterHEICImage(void) entry->seekable_stream=MagickTrue; entry->blob_support=MagickFalse; (void) RegisterMagickInfo(entry); -#if LIBHEIF_NUMERIC_VERSION > 0x01060200 +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0) entry=SetMagickInfo("AVIF"); #if defined(MAGICKCORE_HEIC_DELEGATE) if (heif_have_decoder_for_format(heif_compression_AV1)) @@ -802,14 +909,16 @@ ModuleExport size_t RegisterHEICImage(void) */ ModuleExport void UnregisterHEICImage(void) { -#if LIBHEIF_NUMERIC_VERSION > 0x01060200 +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0) (void) UnregisterMagickInfo("AVIF"); #endif (void) UnregisterMagickInfo("HEIC"); (void) UnregisterMagickInfo("HEIF"); -#if defined(MAGICKCORE_HEIC_DELEGATE) && (LIBHEIF_NUMERIC_VERSION >= 0x010e0000) +#if defined(MAGICKCORE_HEIC_DELEGATE) +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,14,0) heif_deinit(); #endif +#endif } /* @@ -883,7 +992,8 @@ static void WriteProfile(struct heif_context *context,Image *image, if (LocaleCompare(name,"XMP") == 0) for (i=0; i < (ssize_t) GetStringInfoLength(profile); i+=65533L) { - length=MagickMin(GetStringInfoLength(profile)-i,65533L); + length=(size_t) MagickMin((ssize_t) GetStringInfoLength(profile)-i, + 65533L); error=heif_context_add_XMP_metadata(context,image_handle, (void*) (GetStringInfoDatum(profile)+i),(int) length); if (IsHEIFSuccess(image,&error,exception) == MagickFalse) @@ -1171,7 +1281,7 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info, Image *image) { MagickBooleanType -#if LIBHEIF_NUMERIC_VERSION > 0x01060200 +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0) encode_avif, #endif status; @@ -1205,12 +1315,15 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info, return(status); scene=0; heif_context=heif_context_alloc(); -#if LIBHEIF_NUMERIC_VERSION > 0x01060200 +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0) encode_avif=(LocaleCompare(image_info->magick,"AVIF") == 0) ? MagickTrue : MagickFalse; #endif do { + const char + *option; + const StringInfo *profile; @@ -1229,7 +1342,7 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info, /* Get encoder for the specified format. */ -#if LIBHEIF_NUMERIC_VERSION > 0x01060200 +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,7,0) if (encode_avif != MagickFalse) error=heif_context_get_encoder_for_format(heif_context, heif_compression_AV1,&heif_encoder); @@ -1304,32 +1417,54 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info, status=IsHEIFSuccess(image,&error,&image->exception); if (status == MagickFalse) break; -#if LIBHEIF_NUMERIC_VERSION > 0x01060200 - if (encode_avif != MagickFalse) + option=GetImageOption(image_info,"heic:speed"); + if (option != (char *) NULL) { - const char - *option; - - option=GetImageOption(image_info,"heic:speed"); - if (option != (char *) NULL) + error=heif_encoder_set_parameter(heif_encoder,"speed",option); + status=IsHEIFSuccess(image,&error,&image->exception); + if (status == MagickFalse) + break; + } + option=GetImageOption(image_info,"heic:chroma"); + if (option != (char *) NULL) + { + error=heif_encoder_set_parameter(heif_encoder,"chroma",option); + status=IsHEIFSuccess(image,&error,&image->exception); + if (status == MagickFalse) + break; + } + options=heif_encoding_options_alloc(); +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,16,0) + option=GetImageOption(image_info,"heic:chroma-downsampling"); + if (option != (char *) NULL) + { + if (LocaleCompare(option,"nearest-neighbor") == 0) { - error=heif_encoder_set_parameter(heif_encoder,"speed",option); - status=IsHEIFSuccess(image,&error,&image->exception); - if (status == MagickFalse) - break; + options->color_conversion_options. + only_use_preferred_chroma_algorithm=1; + options->color_conversion_options. + preferred_chroma_downsampling_algorithm= + heif_chroma_downsampling_nearest_neighbor; } - option=GetImageOption(image_info,"heic:chroma"); - if (option != (char *) NULL) + else if (LocaleCompare(option,"average") == 0) { - error=heif_encoder_set_parameter(heif_encoder,"chroma",option); - status=IsHEIFSuccess(image,&error,&image->exception); - if (status == MagickFalse) - break; + options->color_conversion_options. + only_use_preferred_chroma_algorithm=1; + options->color_conversion_options. + preferred_chroma_downsampling_algorithm= + heif_chroma_downsampling_average; + } + else if (LocaleCompare(option,"sharp-yuv") == 0) + { + options->color_conversion_options. + only_use_preferred_chroma_algorithm=1; + options->color_conversion_options. + preferred_chroma_downsampling_algorithm= + heif_chroma_downsampling_sharp_yuv; } } #endif - options=heif_encoding_options_alloc(); -#if LIBHEIF_NUMERIC_VERSION >= 0x010e0000 +#if LIBHEIF_NUMERIC_VERSION >= HEIC_COMPUTE_NUMERIC_VERSION(1,14,0) if (image->orientation != UndefinedOrientation) options->image_orientation=(enum heif_orientation) image->orientation; #endif @@ -1371,7 +1506,8 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info, if (heif_image != (struct heif_image*) NULL) heif_image_release(heif_image); heif_context_free(heif_context); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } #endif diff --git a/coders/hrz.c b/coders/hrz.c index 8a2da11..c731bcf 100644 --- a/coders/hrz.c +++ b/coders/hrz.c @@ -100,23 +100,19 @@ static Image *ReadHRZImage(const ImageInfo *image_info,ExceptionInfo *exception) MagickBooleanType status; - ssize_t - x; - PixelPacket *q; - unsigned char - *p; + size_t + length; ssize_t count, + x, y; - size_t - length; - unsigned char + *p, *pixels; /* @@ -142,6 +138,11 @@ static Image *ReadHRZImage(const ImageInfo *image_info,ExceptionInfo *exception) image->columns=256; image->rows=240; image->depth=8; + if (image_info->ping != MagickFalse) + { + (void) CloseBlob(image); + return(GetFirstImageInList(image)); + } status=SetImageExtent(image,image->columns,image->rows); if (status == MagickFalse) { @@ -182,7 +183,10 @@ static Image *ReadHRZImage(const ImageInfo *image_info,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -273,28 +277,24 @@ ModuleExport void UnregisterHRZImage(void) */ static MagickBooleanType WriteHRZImage(const ImageInfo *image_info,Image *image) { + const PixelPacket + *p; + Image *hrz_image; MagickBooleanType status; - const PixelPacket - *p; - ssize_t + count, x, y; unsigned char + *pixels, *q; - ssize_t - count; - - unsigned char - *pixels; - /* Open output image file. */ @@ -333,9 +333,9 @@ static MagickBooleanType WriteHRZImage(const ImageInfo *image_info,Image *image) q=pixels; for (x=0; x < (ssize_t) hrz_image->columns; x++) { - *q++=ScaleQuantumToChar(GetPixelRed(p)/4); - *q++=ScaleQuantumToChar(GetPixelGreen(p)/4); - *q++=ScaleQuantumToChar(GetPixelBlue(p)/4); + *q++=ScaleQuantumToChar(GetPixelRed(p))/4; + *q++=ScaleQuantumToChar(GetPixelGreen(p))/4; + *q++=ScaleQuantumToChar(GetPixelBlue(p))/4; p++; } count=WriteBlob(image,(size_t) (q-pixels),pixels); @@ -347,6 +347,7 @@ static MagickBooleanType WriteHRZImage(const ImageInfo *image_info,Image *image) } pixels=(unsigned char *) RelinquishMagickMemory(pixels); hrz_image=DestroyImage(hrz_image); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/icon.c b/coders/icon.c index d716b04..b478673 100644 --- a/coders/icon.c +++ b/coders/icon.c @@ -93,48 +93,14 @@ typedef struct _IconEntry offset; } IconEntry; -typedef struct _IconFile +typedef struct _IconDirectory { - short - reserved, - resource_type, + size_t count; IconEntry - directory[MaxIcons]; -} IconFile; - -typedef struct _IconInfo -{ - size_t - file_size, - ba_offset, - offset_bits, - size; - - ssize_t - width, - height; - - unsigned short - planes, - bits_per_pixel; - - size_t - compression, - image_size, - x_pixels, - y_pixels, - number_colors, - red_mask, - green_mask, - blue_mask, - alpha_mask, - colors_important; - - ssize_t - colorspace; -} IconInfo; + **icons; +} IconDirectory; /* Forward declarations. @@ -146,61 +112,52 @@ static Image static MagickBooleanType WriteICONImage(const ImageInfo *,Image *); -Image *AutoResizeImage(const Image *image,const char *option, - MagickOffsetType *count,ExceptionInfo *exception) +static IconDirectory *RelinquishIconDirectory(IconDirectory *directory) { - #define MAX_SIZES 16 - - char - *q; + ssize_t + i; - const char - *p; + assert(directory != (IconDirectory *) NULL); - Image - *resized, - *images; + if (directory->icons != (IconEntry **) NULL) + { + for (i=0; i < (ssize_t) directory->count; i++) + { + if (directory->icons[i] != (IconEntry *) NULL) + directory->icons[i]=(IconEntry *) RelinquishMagickMemory( + directory->icons[i]); + } + directory->icons=(IconEntry **) RelinquishMagickMemory(directory->icons); + } + directory=(IconDirectory *) RelinquishMagickMemory(directory); + return(directory); +} - size_t - sizes[MAX_SIZES]={256, 192, 128, 96, 64, 48, 40, 32, 24, 16}; +static IconDirectory *AcquireIconDirectory(size_t count) +{ + IconDirectory + *directory; ssize_t i; - images=NULL; - *count=0; - i=0; - p=option; - while (*p != '\0' && i < MAX_SIZES) + directory=(IconDirectory*) AcquireMagickMemory(sizeof(*directory)); + if (directory == (IconDirectory*) NULL) + return(directory); + directory->icons=(IconEntry **) AcquireQuantumMemory(count, + sizeof(*directory->icons)); + if (directory->icons == (IconEntry **) NULL) + return(RelinquishIconDirectory(directory)); + memset(directory->icons,0,count*sizeof(*directory->icons)); + for (i=0; i < (ssize_t) count; i++) { - size_t - size; - - while ((isspace((int) ((unsigned char) *p)) != 0)) - p++; - size=(size_t)strtol(p,&q,10); - if ((p == q) || (size < 16) || (size > 256)) - return((Image *) NULL); - p=q; - sizes[i++]=size; - while ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ',')) - p++; + directory->icons[i]=(IconEntry *) AcquireMagickMemory( + sizeof(**directory->icons)); + if (directory->icons[i] == (IconEntry *) NULL) + return(RelinquishIconDirectory(directory)); } - if (i == 0) - i=10; - *count=i; - for (i=0; i < *count; i++) - { - resized=ResizeImage(image,sizes[i],sizes[i],image->filter,image->blur, - exception); - if (resized == (Image *) NULL) - return(DestroyImageList(images)); - if (images == (Image *) NULL) - images=resized; - else - AppendImageToList(&images,resized); - } - return(images); + directory->count=count; + return(directory); } /* @@ -231,19 +188,14 @@ Image *AutoResizeImage(const Image *image,const char *option, % */ -static Image *Read1XImage(const ImageInfo *image_info,Image *image, - ExceptionInfo *exception) +static Image *Read1XImage(Image *image,ExceptionInfo *exception) { - MagickBooleanType - status; - size_t columns, rows; ssize_t - i, - y; + i; /* Read Windows 1.0 Icon. @@ -253,20 +205,26 @@ static Image *Read1XImage(const ImageInfo *image_info,Image *image, rows=(size_t) (ReadBlobLSBShort(image)); (void) ReadBlobLSBShort(image); /* width of bitmap in bytes */ (void) ReadBlobLSBShort(image); /* cursor color */ + if (((rows != 32) && (rows != 64)) || ((columns != 32) && (columns != 64))) + { + (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError, + "ImproperImageHeader","`%s'",image->filename); + return(DestroyImageList(image)); + } /* Convert bitmap scanline. */ - status=MagickTrue; - for (i=0; ; i++) + if (SetImageExtent(image,columns,rows) == MagickFalse) + return(DestroyImageList(image)); + image->matte=MagickTrue; + if (AcquireImageColormap(image,3) == MagickFalse) + return(DestroyImageList(image)); + image->colormap[1].opacity=TransparentOpacity; + for (i=0; i < 2; i++) { - status=SetImageExtent(image,columns,rows); - if (status == MagickFalse) - break; - if (AcquireImageColormap(image,2) == MagickFalse) - { - status=MagickFalse; - break; - } + ssize_t + y; + for (y=0; y < (ssize_t) image->columns; y++) { IndexPacket @@ -275,10 +233,6 @@ static Image *Read1XImage(const ImageInfo *image_info,Image *image, PixelPacket *q; - size_t - bit, - byte; - ssize_t x; @@ -288,51 +242,56 @@ static Image *Read1XImage(const ImageInfo *image_info,Image *image, indexes=GetAuthenticIndexQueue(image); for (x=0; x < (ssize_t) (image->columns-7); x+=8) { + size_t + bit, + byte; + byte=(size_t) ReadBlobByte(image); for (bit=0; bit < 8; bit++) - SetPixelIndex(indexes+x+bit,((byte & (0x80 >> bit)) != 0 ? - 0x01 : 0x00)); - } - if ((image->columns % 8) != 0) { - byte=(size_t) ReadBlobByte(image); - for (bit=0; bit < (image->columns % 8); bit++) - SetPixelIndex(indexes+x+bit,((byte & (0x80 >> bit)) != 0 ? - 0x01 : 0x00)); + Quantum + index; + + index=((byte & (0x80 >> bit)) != 0 ? (i == 0 ? 0x01 : 0x02) : 0x00); + if (i == 0) + SetPixelIndex(indexes+x+bit,index); + else + if (GetPixelIndex(indexes+x+bit) != 0x01) + SetPixelIndex(indexes+x+bit,index); + q++; } + } if (SyncAuthenticPixels(image,exception) == MagickFalse) break; - if (image->previous == (Image *) NULL) - { - status=SetImageProgress(image,LoadImageTag,y,image->rows); - if (status == MagickFalse) - break; - } } - if (i > 0) - break; - AcquireNextImage(image_info,image); - if (GetNextImageInList(image) == (Image *) NULL) - { - status=MagickFalse; - break; - } - image=SyncNextImageInList(image); } - (void) CloseBlob(image); - if (status == MagickFalse) + if (SyncImage(image) == MagickFalse) + return(DestroyImageList(image)); + if (CloseBlob(image) == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); } +static inline size_t GetICONSize(size_t directory_size,size_t image_size) +{ + if (image_size != 0) + return(image_size); + if (directory_size != 0) + return(directory_size); + return(256); +} + static Image *ReadICONImage(const ImageInfo *image_info, ExceptionInfo *exception) { - IconFile - icon_file; +#define ThrowICONReaderException(exception,message) \ +{ \ + directory=RelinquishIconDirectory(directory); \ + ThrowReaderException(exception,message) \ +} - IconInfo - icon_info; + IconDirectory + *directory; Image *image; @@ -346,15 +305,12 @@ static Image *ReadICONImage(const ImageInfo *image_info, IndexPacket *indexes; - ssize_t - i, - x; - PixelPacket *q; - unsigned char - *p; + short + reserved, + resource_type; size_t bit, @@ -364,10 +320,17 @@ static Image *ReadICONImage(const ImageInfo *image_info, scanline_pad; ssize_t - count, + i, offset, + x, y; + unsigned char + *p; + + unsigned short + icon_count; + /* Open image file. */ @@ -383,58 +346,71 @@ static Image *ReadICONImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - (void) memset(&icon_file,0,sizeof(icon_file)); - icon_file.reserved=(short) ReadBlobLSBShort(image); - if ((icon_file.reserved == 0x0001) || (icon_file.reserved == 0x0101) || - (icon_file.reserved == 0x0201)) - return(Read1XImage(image_info,image,exception)); - icon_file.resource_type=(short) ReadBlobLSBShort(image); - icon_file.count=(short) ReadBlobLSBShort(image); - if ((icon_file.reserved != 0) || - ((icon_file.resource_type != 1) && (icon_file.resource_type != 2)) || - (icon_file.count > MaxIcons)) + reserved=(short) ReadBlobLSBShort(image); + if ((reserved == 0x0001) || (reserved == 0x0101) || + (reserved == 0x0201)) + return(Read1XImage(image,exception)); + resource_type=(short) ReadBlobLSBShort(image); + icon_count=(short) ReadBlobLSBShort(image); + if ((reserved != 0) || ((resource_type != 1) && (resource_type != 2)) || + (icon_count > MaxIcons)) ThrowReaderException(CorruptImageError,"ImproperImageHeader"); + directory=AcquireIconDirectory((size_t) icon_count); + if (directory == (IconDirectory *) NULL) + ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); extent=0; - for (i=0; i < icon_file.count; i++) + for (i=0; i < directory->count; i++) { - icon_file.directory[i].width=(unsigned char) ReadBlobByte(image); - icon_file.directory[i].height=(unsigned char) ReadBlobByte(image); - icon_file.directory[i].colors=(unsigned char) ReadBlobByte(image); - icon_file.directory[i].reserved=(unsigned char) ReadBlobByte(image); - icon_file.directory[i].planes=(unsigned short) ReadBlobLSBShort(image); - icon_file.directory[i].bits_per_pixel=(unsigned short) + directory->icons[i]->width=(unsigned char) ReadBlobByte(image); + directory->icons[i]->height=(unsigned char) ReadBlobByte(image); + directory->icons[i]->colors=(unsigned char) ReadBlobByte(image); + directory->icons[i]->reserved=(unsigned char) ReadBlobByte(image); + directory->icons[i]->planes=(unsigned short) ReadBlobLSBShort(image); + directory->icons[i]->bits_per_pixel=(unsigned short) ReadBlobLSBShort(image); - icon_file.directory[i].size=ReadBlobLSBLong(image); - icon_file.directory[i].offset=ReadBlobLSBLong(image); + directory->icons[i]->size=ReadBlobLSBLong(image); + directory->icons[i]->offset=ReadBlobLSBLong(image); if (EOFBlob(image) != MagickFalse) break; - extent=MagickMax(extent,icon_file.directory[i].size); + extent=MagickMax(extent,directory->icons[i]->size); } if ((EOFBlob(image) != MagickFalse) || (extent > GetBlobSize(image))) - ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile"); + ThrowICONReaderException(CorruptImageError,"UnexpectedEndOfFile"); one=1; - for (i=0; i < icon_file.count; i++) + for (i=0; i < (ssize_t) directory->count; i++) { + size_t + size; + + ssize_t + count, + width, + height; + + unsigned short + bits_per_pixel, + planes; + /* Verify Icon identifier. */ offset=(ssize_t) SeekBlob(image,(MagickOffsetType) - icon_file.directory[i].offset,SEEK_SET); + directory->icons[i]->offset,SEEK_SET); if (offset < 0) ThrowReaderException(CorruptImageError,"ImproperImageHeader"); - icon_info.size=ReadBlobLSBLong(image); - icon_info.width=(unsigned char) ReadBlobLSBSignedLong(image); - icon_info.height=(unsigned char) (ReadBlobLSBSignedLong(image)/2); - icon_info.planes=ReadBlobLSBShort(image); - icon_info.bits_per_pixel=ReadBlobLSBShort(image); + size=ReadBlobLSBLong(image); + width=ReadBlobLSBSignedLong(image); + height=(ReadBlobLSBSignedLong(image)/2); + planes=ReadBlobLSBShort(image); + bits_per_pixel=ReadBlobLSBShort(image); if (EOFBlob(image) != MagickFalse) { ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); break; } - if (((icon_info.planes == 18505) && (icon_info.bits_per_pixel == 21060)) || - (icon_info.size == 0x474e5089)) + if (((planes == 18505) && (bits_per_pixel == 21060)) || + (size == 0x474e5089)) { Image *icon_image; @@ -451,22 +427,22 @@ static Image *ReadICONImage(const ImageInfo *image_info, /* Icon image encoded as a compressed PNG image. */ - length=icon_file.directory[i].size; + length=directory->icons[i]->size; if ((length < 16) || (~length < 16)) - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + ThrowICONReaderException(ResourceLimitError,"MemoryAllocationFailed"); png=(unsigned char *) AcquireQuantumMemory(length,sizeof(*png)); if (png == (unsigned char *) NULL) - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + ThrowICONReaderException(ResourceLimitError,"MemoryAllocationFailed"); (void) memcpy(png,"\211PNG\r\n\032\n\000\000\000\015",12); - png[12]=(unsigned char) icon_info.planes; - png[13]=(unsigned char) (icon_info.planes >> 8); - png[14]=(unsigned char) icon_info.bits_per_pixel; - png[15]=(unsigned char) (icon_info.bits_per_pixel >> 8); + png[12]=(unsigned char) planes; + png[13]=(unsigned char) (planes >> 8); + png[14]=(unsigned char) bits_per_pixel; + png[15]=(unsigned char) (bits_per_pixel >> 8); count=ReadBlob(image,length-16,png+16); if (count != (ssize_t) (length-16)) { png=(unsigned char *) RelinquishMagickMemory(png); - ThrowReaderException(CorruptImageError, + ThrowICONReaderException(CorruptImageError, "InsufficientImageDataInFile"); } read_info=CloneImageInfo(image_info); @@ -483,28 +459,23 @@ static Image *ReadICONImage(const ImageInfo *image_info, } else { - if (icon_info.bits_per_pixel > 32) - ThrowReaderException(CorruptImageError,"ImproperImageHeader"); - icon_info.compression=ReadBlobLSBLong(image); - icon_info.image_size=ReadBlobLSBLong(image); - icon_info.x_pixels=ReadBlobLSBLong(image); - icon_info.y_pixels=ReadBlobLSBLong(image); - icon_info.number_colors=ReadBlobLSBLong(image); - if (icon_info.number_colors > GetBlobSize(image)) - ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile"); - icon_info.colors_important=ReadBlobLSBLong(image); + size_t + number_colors; + + if (bits_per_pixel > 32) + ThrowICONReaderException(CorruptImageError,"ImproperImageHeader"); + (void) ReadBlobLSBLong(image); /* compression */ + (void) ReadBlobLSBLong(image); /* image_size */ + (void) ReadBlobLSBLong(image); /* x_pixels */ + (void) ReadBlobLSBLong(image); /* y_pixels */ + number_colors=ReadBlobLSBLong(image); + if (number_colors > GetBlobSize(image)) + ThrowICONReaderException(CorruptImageError,"InsufficientImageDataInFile"); + (void) ReadBlobLSBLong(image); /* colors_important */ image->matte=MagickTrue; - image->columns=(size_t) icon_file.directory[i].width; - if ((ssize_t) image->columns > icon_info.width) - image->columns=(size_t) icon_info.width; - if (image->columns == 0) - image->columns=256; - image->rows=(size_t) icon_file.directory[i].height; - if ((ssize_t) image->rows > icon_info.height) - image->rows=(size_t) icon_info.height; - if (image->rows == 0) - image->rows=256; - image->depth=icon_info.bits_per_pixel; + image->columns=GetICONSize(directory->icons[i]->width,width); + image->rows=GetICONSize(directory->icons[i]->height,height); + image->depth=bits_per_pixel; if (image->depth > 16) image->depth=8; if (image->debug != MagickFalse) @@ -512,24 +483,24 @@ static Image *ReadICONImage(const ImageInfo *image_info, (void) LogMagickEvent(CoderEvent,GetMagickModule(), " scene = %.20g",(double) i); (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " size = %.20g",(double) icon_info.size); + " size = %.20g",(double) size); (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " width = %.20g",(double) icon_file.directory[i].width); + " width = %.20g",(double) width); (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " height = %.20g",(double) icon_file.directory[i].height); + " height = %.20g",(double) height); (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " colors = %.20g",(double ) icon_info.number_colors); + " colors = %.20g",(double ) number_colors); (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " planes = %.20g",(double) icon_info.planes); + " planes = %.20g",(double) planes); (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " bpp = %.20g",(double) icon_info.bits_per_pixel); + " bpp = %.20g",(double) bits_per_pixel); } - if ((icon_info.number_colors != 0) || (icon_info.bits_per_pixel <= 16U)) + if ((number_colors != 0) || (bits_per_pixel <= 16U)) { image->storage_class=PseudoClass; - image->colors=icon_info.number_colors; + image->colors=number_colors; if ((image->colors == 0) || (image->colors > 256)) - image->colors=one << icon_info.bits_per_pixel; + image->colors=one << bits_per_pixel; } if (image->storage_class == PseudoClass) { @@ -543,20 +514,20 @@ static Image *ReadICONImage(const ImageInfo *image_info, Read Icon raster colormap. */ if (image->colors > GetBlobSize(image)) - ThrowReaderException(CorruptImageError, + ThrowICONReaderException(CorruptImageError, "InsufficientImageDataInFile"); if (AcquireImageColormap(image,image->colors) == MagickFalse) - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + ThrowICONReaderException(ResourceLimitError,"MemoryAllocationFailed"); icon_colormap=(unsigned char *) AcquireQuantumMemory((size_t) image->colors,4UL*sizeof(*icon_colormap)); if (icon_colormap == (unsigned char *) NULL) - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + ThrowICONReaderException(ResourceLimitError,"MemoryAllocationFailed"); count=ReadBlob(image,(size_t) (4*image->colors),icon_colormap); if (count != (ssize_t) (4*image->colors)) { icon_colormap=(unsigned char *) RelinquishMagickMemory( icon_colormap); - ThrowReaderException(CorruptImageError, + ThrowICONReaderException(CorruptImageError, "InsufficientImageDataInFile"); } p=icon_colormap; @@ -582,12 +553,12 @@ static Image *ReadICONImage(const ImageInfo *image_info, InheritException(exception,&image->exception); return(DestroyImageList(image)); } - bytes_per_line=(((image->columns*icon_info.bits_per_pixel)+31) & + bytes_per_line=(((image->columns*bits_per_pixel)+31) & ~31) >> 3; (void) bytes_per_line; - scanline_pad=((((image->columns*icon_info.bits_per_pixel)+31) & ~31)- - (image->columns*icon_info.bits_per_pixel)) >> 3; - switch (icon_info.bits_per_pixel) + scanline_pad=((((image->columns*bits_per_pixel)+31) & ~31)- + (image->columns*bits_per_pixel)) >> 3; + switch (bits_per_pixel) { case 1: { @@ -744,12 +715,12 @@ static Image *ReadICONImage(const ImageInfo *image_info, ReadBlobByte(image))); SetPixelRed(q,ScaleCharToQuantum((unsigned char) ReadBlobByte(image))); - if (icon_info.bits_per_pixel == 32) + if (bits_per_pixel == 32) SetPixelAlpha(q,ScaleCharToQuantum((unsigned char) ReadBlobByte(image))); q++; } - if (icon_info.bits_per_pixel == 24) + if (bits_per_pixel == 24) for (x=0; x < (ssize_t) scanline_pad; x++) (void) ReadBlobByte(image); if (SyncAuthenticPixels(image,exception) == MagickFalse) @@ -765,12 +736,11 @@ static Image *ReadICONImage(const ImageInfo *image_info, break; } default: - ThrowReaderException(CorruptImageError,"ImproperImageHeader"); + ThrowICONReaderException(CorruptImageError,"ImproperImageHeader"); } - if ((image_info->ping == MagickFalse) && - (icon_info.bits_per_pixel <= 16)) + if ((image_info->ping == MagickFalse) && (bits_per_pixel <= 16)) (void) SyncImage(image); - if (icon_info.bits_per_pixel != 32) + if (bits_per_pixel != 32) { /* Read the ICON alpha mask. @@ -815,7 +785,7 @@ static Image *ReadICONImage(const ImageInfo *image_info, if (image_info->number_scenes != 0) if (image->scene >= (image_info->scene+image_info->number_scenes-1)) break; - if (i < (ssize_t) (icon_file.count-1)) + if (i < ((ssize_t) directory->count-1)) { /* Allocate next image structure. @@ -833,6 +803,7 @@ static Image *ReadICONImage(const ImageInfo *image_info, break; } } + directory=RelinquishIconDirectory(directory); (void) CloseBlob(image); if (status == MagickFalse) return(DestroyImageList(image)); @@ -951,9 +922,74 @@ ModuleExport void UnregisterICONImage(void) % o image: The image. % */ + +Image *AutoResizeImage(const Image *image,const char *option, + MagickOffsetType *count,ExceptionInfo *exception) +{ +#define MAX_SIZES 11 + + char + *q; + + const char + *p; + + Image + *resized, + *images; + + size_t + sizes[MAX_SIZES] = { 512, 256, 192, 128, 96, 64, 48, 40, 32, 24, 16 }; + + ssize_t + i; + + images=NULL; + *count=0; + i=0; + p=option; + while (*p != '\0' && i < MAX_SIZES) + { + size_t + size; + + while ((isspace((int) ((unsigned char) *p)) != 0)) + p++; + size=(size_t)strtol(p,&q,10); + if ((p == q) || (size < 16) || (size > 512)) + return((Image *) NULL); + p=q; + sizes[i++]=size; + while ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ',')) + p++; + } + if (i == 0) + i=MAX_SIZES; + *count=i; + for (i=0; i < *count; i++) + { + resized=ResizeImage(image,sizes[i],sizes[i],image->filter,image->blur, + exception); + if (resized == (Image *) NULL) + return(DestroyImageList(images)); + if (images == (Image *) NULL) + images=resized; + else + AppendImageToList(&images,resized); + } + return(images); +} + static MagickBooleanType WriteICONImage(const ImageInfo *image_info, Image *image) { +#define ThrowICONWriterException(exception,message) \ +{ \ + directory=RelinquishIconDirectory(directory); \ + images=DestroyImageList(images); \ + ThrowWriterException(exception,message) \ +} + const char *option; @@ -963,11 +999,8 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, const PixelPacket *p; - IconFile - icon_file; - - IconInfo - icon_info; + IconDirectory + *directory; Image *images, @@ -1021,12 +1054,11 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, next=image; do { - if ((image->columns > 256L) || (image->rows > 256L)) + if ((image->columns > 512L) || (image->rows > 512L)) ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit"); scene++; next=SyncNextImageInList(next); - } while ((next != (Image *) NULL) && (image_info->adjoin != - MagickFalse)); + } while ((next != (Image *) NULL) && (image_info->adjoin != MagickFalse)); } /* Dump out a ICON header template to be properly initialized later. @@ -1034,30 +1066,35 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, (void) WriteBlobLSBShort(image,0); (void) WriteBlobLSBShort(image,1); (void) WriteBlobLSBShort(image,(unsigned char) scene); - (void) memset(&icon_file,0,sizeof(icon_file)); - (void) memset(&icon_info,0,sizeof(icon_info)); - scene=0; next=(images != (Image *) NULL) ? images : image; + number_scenes=0; do { - (void) WriteBlobByte(image,icon_file.directory[scene].width); - (void) WriteBlobByte(image,icon_file.directory[scene].height); - (void) WriteBlobByte(image,icon_file.directory[scene].colors); - (void) WriteBlobByte(image,icon_file.directory[scene].reserved); - (void) WriteBlobLSBShort(image,icon_file.directory[scene].planes); - (void) WriteBlobLSBShort(image,icon_file.directory[scene].bits_per_pixel); - (void) WriteBlobLSBLong(image,(unsigned int) - icon_file.directory[scene].size); - (void) WriteBlobLSBLong(image,(unsigned int) - icon_file.directory[scene].offset); - scene++; + number_scenes++; + (void) WriteBlobByte(image,0); /* width */ + (void) WriteBlobByte(image,0); /* height */ + (void) WriteBlobByte(image,0); /* colors */ + (void) WriteBlobByte(image,0); /* reserved */ + (void) WriteBlobLSBShort(image,0); /* planes */ + (void) WriteBlobLSBShort(image,0); /* bits_per_pixel */ + (void) WriteBlobLSBLong(image,0); /* size */ + (void) WriteBlobLSBLong(image,0); /* offset */ next=SyncNextImageInList(next); } while ((next != (Image *) NULL) && (image_info->adjoin != MagickFalse)); scene=0; next=(images != (Image *) NULL) ? images : image; - number_scenes=GetImageListLength(image); + directory=AcquireIconDirectory(number_scenes); + if (directory == (IconDirectory *) NULL) + ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); do { + size_t + size; + + unsigned short + bits_per_pixel, + planes; + if ((next->columns > 255L) && (next->rows > 255L) && ((next->compression == UndefinedCompression) || (next->compression == ZipCompression))) @@ -1077,49 +1114,58 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, write_image=CloneImage(next,0,0,MagickTrue,&image->exception); if (write_image == (Image *) NULL) { + directory=RelinquishIconDirectory(directory); images=DestroyImageList(images); return(MagickFalse); } write_info=CloneImageInfo(image_info); - (void) CopyMagickString(write_info->magick,"PNG",MagickPathExtent); + (void) CopyMagickString(write_info->magick,"PNG32",MagickPathExtent); length=0; - /* Don't write any ancillary chunks except for gAMA */ - (void) SetImageArtifact(write_image,"png:include-chunk","none,gama"); - + /* Don't write any ancillary chunks except for gAMA,tRNS */ + (void) SetImageArtifact(write_image,"png:include-chunk", + "none,gama,tRNS"); /* Only write PNG32 formatted PNG (32-bit RGBA), 8 bits per channel */ - (void) SetImageArtifact(write_image,"png:format","png32"); - (void) SetImageArtifact(write_image,"png:color-type","6"); + (void) SetImageArtifact(write_image,"png:IHDR.color-type-orig","6"); + (void) SetImageArtifact(write_image,"png:IHDR.bit-depth-orig","8"); png=(unsigned char *) ImageToBlob(write_info,write_image,&length, &image->exception); write_image=DestroyImageList(write_image); write_info=DestroyImageInfo(write_info); if (png == (unsigned char *) NULL) { + directory=RelinquishIconDirectory(directory); images=DestroyImageList(images); return(MagickFalse); } - icon_file.directory[scene].width=0; - icon_file.directory[scene].height=0; - icon_file.directory[scene].colors=0; - icon_file.directory[scene].reserved=0; - icon_file.directory[scene].planes=1; - icon_file.directory[scene].bits_per_pixel=32; - icon_file.directory[scene].size=(size_t) length; - icon_file.directory[scene].offset=(size_t) TellBlob(image); + directory->icons[scene]->width=0; + directory->icons[scene]->height=0; + directory->icons[scene]->colors=0; + directory->icons[scene]->reserved=0; + directory->icons[scene]->planes=1; + directory->icons[scene]->bits_per_pixel=32; + directory->icons[scene]->size=(size_t) length; + directory->icons[scene]->offset=(size_t) TellBlob(image); (void) WriteBlob(image,(size_t) length,png); png=(unsigned char *) RelinquishMagickMemory(png); } else { + size_t + image_size, + number_colors, + x_pixels, + y_pixels; + + ssize_t + width, + height; + /* Initialize ICON raster file header. */ if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,sRGBColorspace); - icon_info.file_size=14+12+28; - icon_info.offset_bits=icon_info.file_size; - icon_info.compression=IconRgbCompression; + (void) TransformImageColorspace(image,sRGBColorspace); if ((next->storage_class != DirectClass) && (next->colors > 256)) (void) SetImageStorageClass(next,DirectClass); if (next->storage_class == DirectClass) @@ -1127,87 +1173,64 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, /* Full color ICON raster. */ - icon_info.number_colors=0; - icon_info.bits_per_pixel=32; - icon_info.compression=IconRgbCompression; + number_colors=0; + bits_per_pixel=32; } else { - size_t - one; - /* Colormapped ICON raster. */ - icon_info.bits_per_pixel=8; + bits_per_pixel=8; if (next->colors <= 16) - icon_info.bits_per_pixel=4; + bits_per_pixel=4; if (next->colors <= 2) - icon_info.bits_per_pixel=1; - one=1; - icon_info.number_colors=one << icon_info.bits_per_pixel; - if (icon_info.number_colors < next->colors) + bits_per_pixel=1; + number_colors=(size_t) 1 << bits_per_pixel; + if (number_colors < next->colors) { (void) SetImageStorageClass(next,DirectClass); - icon_info.number_colors=0; - icon_info.bits_per_pixel=(unsigned short) 24; - icon_info.compression=IconRgbCompression; - } - else - { - size_t - one; - - one=1; - icon_info.file_size+=3*(one << icon_info.bits_per_pixel); - icon_info.offset_bits+=3*(one << icon_info.bits_per_pixel); - icon_info.file_size+=(one << icon_info.bits_per_pixel); - icon_info.offset_bits+=(one << icon_info.bits_per_pixel); + number_colors=0; + bits_per_pixel=(unsigned short) 24; } } - bytes_per_line=(((next->columns*icon_info.bits_per_pixel)+31) & + bytes_per_line=(((next->columns*bits_per_pixel)+31) & ~31) >> 3; - icon_info.ba_offset=0; - icon_info.width=(ssize_t) next->columns; - icon_info.height=(ssize_t) next->rows; - icon_info.planes=1; - icon_info.image_size=bytes_per_line*next->rows; - icon_info.size=40; - icon_info.size+=(4*icon_info.number_colors); - icon_info.size+=icon_info.image_size; - icon_info.size+=(((icon_info.width+31) & ~31) >> 3)*icon_info.height; - icon_info.file_size+=icon_info.image_size; - icon_info.x_pixels=0; - icon_info.y_pixels=0; + width=(ssize_t) next->columns; + height=(ssize_t) next->rows; + planes=1; + image_size=bytes_per_line*next->rows; + size=40; + size+=(4*number_colors); + size+=image_size; + size+=(((width+31) & ~31) >> 3)*height; + x_pixels=0; + y_pixels=0; switch (next->units) { case UndefinedResolution: case PixelsPerInchResolution: { - icon_info.x_pixels=(size_t) (100.0*next->x_resolution/2.54); - icon_info.y_pixels=(size_t) (100.0*next->y_resolution/2.54); + x_pixels=(size_t) (100.0*next->x_resolution/2.54); + y_pixels=(size_t) (100.0*next->y_resolution/2.54); break; } case PixelsPerCentimeterResolution: { - icon_info.x_pixels=(size_t) (100.0*next->x_resolution); - icon_info.y_pixels=(size_t) (100.0*next->y_resolution); + x_pixels=(size_t) (100.0*next->x_resolution); + y_pixels=(size_t) (100.0*next->y_resolution); break; } } - icon_info.colors_important=icon_info.number_colors; /* Convert MIFF to ICON raster pixels. */ - pixels=(unsigned char *) AcquireQuantumMemory((size_t) - icon_info.image_size,sizeof(*pixels)); + pixels=(unsigned char *) AcquireQuantumMemory(image_size, + sizeof(*pixels)); if (pixels == (unsigned char *) NULL) - { - images=DestroyImageList(images); - ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); - } - (void) memset(pixels,0,(size_t) icon_info.image_size); - switch (icon_info.bits_per_pixel) + ThrowICONWriterException(ResourceLimitError,"MemoryAllocationFailed"); + (void) memset(pixels,0,image_size); + switch (bits_per_pixel) { case 1: { @@ -1337,7 +1360,7 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, *q++=ScaleQuantumToChar(GetPixelAlpha(p)); p++; } - if (icon_info.bits_per_pixel == 24) + if (bits_per_pixel == 24) for (x=3L*(ssize_t) next->columns; x < (ssize_t) bytes_per_line; x++) *q++=0x00; if (next->previous == (Image *) NULL) @@ -1353,26 +1376,25 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, /* Write 40-byte version 3+ bitmap header. */ - icon_file.directory[scene].width=(unsigned char) icon_info.width; - icon_file.directory[scene].height=(unsigned char) icon_info.height; - icon_file.directory[scene].colors=(unsigned char) - icon_info.number_colors; - icon_file.directory[scene].reserved=0; - icon_file.directory[scene].planes=icon_info.planes; - icon_file.directory[scene].bits_per_pixel=icon_info.bits_per_pixel; - icon_file.directory[scene].size=icon_info.size; - icon_file.directory[scene].offset=(size_t) TellBlob(image); + directory->icons[scene]->width=(unsigned char) width; + directory->icons[scene]->height=(unsigned char) height; + directory->icons[scene]->colors=(unsigned char) number_colors; + directory->icons[scene]->reserved=0; + directory->icons[scene]->planes=planes; + directory->icons[scene]->bits_per_pixel=bits_per_pixel; + directory->icons[scene]->size=size; + directory->icons[scene]->offset=(size_t) TellBlob(image); (void) WriteBlobLSBLong(image,(unsigned int) 40); - (void) WriteBlobLSBLong(image,(unsigned int) icon_info.width); - (void) WriteBlobLSBLong(image,(unsigned int) icon_info.height*2); - (void) WriteBlobLSBShort(image,icon_info.planes); - (void) WriteBlobLSBShort(image,icon_info.bits_per_pixel); - (void) WriteBlobLSBLong(image,(unsigned int) icon_info.compression); - (void) WriteBlobLSBLong(image,(unsigned int) icon_info.image_size); - (void) WriteBlobLSBLong(image,(unsigned int) icon_info.x_pixels); - (void) WriteBlobLSBLong(image,(unsigned int) icon_info.y_pixels); - (void) WriteBlobLSBLong(image,(unsigned int) icon_info.number_colors); - (void) WriteBlobLSBLong(image,(unsigned int) icon_info.colors_important); + (void) WriteBlobLSBLong(image,(unsigned int) width); + (void) WriteBlobLSBLong(image,(unsigned int) height*2); + (void) WriteBlobLSBShort(image,planes); + (void) WriteBlobLSBShort(image,bits_per_pixel); + (void) WriteBlobLSBLong(image,(unsigned int) IconRgbCompression); + (void) WriteBlobLSBLong(image,(unsigned int) image_size); + (void) WriteBlobLSBLong(image,(unsigned int) x_pixels); + (void) WriteBlobLSBLong(image,(unsigned int) y_pixels); + (void) WriteBlobLSBLong(image,(unsigned int) number_colors); + (void) WriteBlobLSBLong(image,(unsigned int) number_colors); if (next->storage_class == PseudoClass) { unsigned char @@ -1381,14 +1403,11 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, /* Dump colormap to file. */ - icon_colormap=(unsigned char *) AcquireQuantumMemory((size_t) - (1UL << icon_info.bits_per_pixel),4UL*sizeof(*icon_colormap)); + icon_colormap=(unsigned char *) AcquireQuantumMemory((size_t) 1UL + << bits_per_pixel,4UL*sizeof(*icon_colormap)); if (icon_colormap == (unsigned char *) NULL) - { - images=DestroyImageList(images); - ThrowWriterException(ResourceLimitError, - "MemoryAllocationFailed"); - } + ThrowICONWriterException(ResourceLimitError, + "MemoryAllocationFailed"); q=icon_colormap; for (i=0; i < (ssize_t) next->colors; i++) { @@ -1397,19 +1416,19 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, *q++=ScaleQuantumToChar(next->colormap[i].red); *q++=(unsigned char) 0x0; } - for ( ; i < (ssize_t) (1UL << icon_info.bits_per_pixel); i++) + for ( ; i < (ssize_t) 1UL << bits_per_pixel; i++) { *q++=(unsigned char) 0x00; *q++=(unsigned char) 0x00; *q++=(unsigned char) 0x00; *q++=(unsigned char) 0x00; } - (void) WriteBlob(image,(size_t) (4UL*(1UL << - icon_info.bits_per_pixel)),icon_colormap); + (void) WriteBlob(image,(size_t) (4UL*(1UL << bits_per_pixel)), + icon_colormap); icon_colormap=(unsigned char *) RelinquishMagickMemory( icon_colormap); } - (void) WriteBlob(image,(size_t) icon_info.image_size,pixels); + (void) WriteBlob(image,image_size,pixels); pixels=(unsigned char *) RelinquishMagickMemory(pixels); /* Write matte mask. @@ -1459,19 +1478,20 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, next=(images != (Image *) NULL) ? images : image; do { - (void) WriteBlobByte(image,icon_file.directory[scene].width); - (void) WriteBlobByte(image,icon_file.directory[scene].height); - (void) WriteBlobByte(image,icon_file.directory[scene].colors); - (void) WriteBlobByte(image,icon_file.directory[scene].reserved); - (void) WriteBlobLSBShort(image,icon_file.directory[scene].planes); - (void) WriteBlobLSBShort(image,icon_file.directory[scene].bits_per_pixel); + (void) WriteBlobByte(image,directory->icons[scene]->width); + (void) WriteBlobByte(image,directory->icons[scene]->height); + (void) WriteBlobByte(image,directory->icons[scene]->colors); + (void) WriteBlobByte(image,directory->icons[scene]->reserved); + (void) WriteBlobLSBShort(image,directory->icons[scene]->planes); + (void) WriteBlobLSBShort(image,directory->icons[scene]->bits_per_pixel); (void) WriteBlobLSBLong(image,(unsigned int) - icon_file.directory[scene].size); + directory->icons[scene]->size); (void) WriteBlobLSBLong(image,(unsigned int) - icon_file.directory[scene].offset); + directory->icons[scene]->offset); scene++; next=SyncNextImageInList(next); } while ((next != (Image *) NULL) && (image_info->adjoin != MagickFalse)); + directory=RelinquishIconDirectory(directory); (void) CloseBlob(image); images=DestroyImageList(images); return(MagickTrue); diff --git a/coders/info.c b/coders/info.c index 62be6f3..846b9e3 100644 --- a/coders/info.c +++ b/coders/info.c @@ -215,6 +215,7 @@ static MagickBooleanType WriteINFOImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/inline.c b/coders/inline.c index e0e5174..072b567 100644 --- a/coders/inline.c +++ b/coders/inline.c @@ -356,6 +356,7 @@ static MagickBooleanType WriteINLINEImage(const ImageInfo *image_info, (void) WriteBlobString(image,message); (void) WriteBlobString(image,base64); base64=DestroyString(base64); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/jbig.c b/coders/jbig.c index a117c0e..1a77017 100644 --- a/coders/jbig.c +++ b/coders/jbig.c @@ -128,17 +128,12 @@ static Image *ReadJBIGImage(const ImageInfo *image_info, IndexPacket *indexes; - ssize_t - x; - PixelPacket *q; - unsigned char - *p; - ssize_t length, + x, y; struct jbg_dec_state @@ -147,7 +142,8 @@ static Image *ReadJBIGImage(const ImageInfo *image_info, unsigned char bit, *buffer, - byte; + byte, + *p; /* Open image file. @@ -169,6 +165,9 @@ static Image *ReadJBIGImage(const ImageInfo *image_info, /* Initialize JBIG toolkit. */ + if ((image->columns != (unsigned long) image->columns) || + (image->rows != (unsigned long) image->rows)) + ThrowReaderException(ImageError,"WidthOrHeightExceedsLimit"); jbg_dec_init(&jbig_info); jbg_dec_maxsize(&jbig_info,(unsigned long) image->columns,(unsigned long) image->rows); @@ -200,7 +199,7 @@ static Image *ReadJBIGImage(const ImageInfo *image_info, count; status=jbg_dec_in(&jbig_info,p,length,&count); - p+=count; + p+=(ptrdiff_t) count; length-=(ssize_t) count; } } while ((status == JBG_EAGAIN) || (status == JBG_EOK)); @@ -276,7 +275,10 @@ static Image *ReadJBIGImage(const ImageInfo *image_info, */ jbg_dec_free(&jbig_info); buffer=(unsigned char *) RelinquishMagickMemory(buffer); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } #endif @@ -417,6 +419,9 @@ static void JBIGEncode(unsigned char *pixels,size_t length,void *data) static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info, Image *image) { + const PixelPacket + *p; + double version; @@ -429,20 +434,12 @@ static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info, MemoryInfo *pixel_info; - const PixelPacket - *p; - - ssize_t - x; - - unsigned char - *q; - size_t number_images, number_packets; ssize_t + x, y; struct jbg_enc_state @@ -451,7 +448,8 @@ static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info, unsigned char bit, byte, - *pixels; + *pixels, + *q; /* Open image file. @@ -570,7 +568,8 @@ static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } #endif diff --git a/coders/jnx.c b/coders/jnx.c index 4897a4e..69c42f1 100644 --- a/coders/jnx.c +++ b/coders/jnx.c @@ -155,6 +155,8 @@ static Image *ReadJNXImage(const ImageInfo *image_info,ExceptionInfo *exception) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", image_info->filename); image=AcquireImage(image_info); + image->columns=0; + image->rows=0; status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) { diff --git a/coders/jp2.c b/coders/jp2.c index 02f826f..2fe92a5 100644 --- a/coders/jp2.c +++ b/coders/jp2.c @@ -356,7 +356,9 @@ static Image *ReadJP2Image(const ImageInfo *image_info,ExceptionInfo *exception) ThrowReaderException(DelegateError,"UnableToDecodeImageFile"); } if ((AcquireMagickResource(WidthResource,(size_t) jp2_image->comps[0].w) == MagickFalse) || - (AcquireMagickResource(HeightResource,(size_t) jp2_image->comps[0].h) == MagickFalse)) + (AcquireMagickResource(WidthResource,(size_t) jp2_image->x1) == MagickFalse) || + (AcquireMagickResource(HeightResource,(size_t) jp2_image->comps[0].h) == MagickFalse) || + (AcquireMagickResource(HeightResource,(size_t) jp2_image->y1) == MagickFalse)) { opj_stream_destroy(jp2_stream); opj_destroy_codec(jp2_codec); @@ -819,7 +821,7 @@ static void CinemaProfileCompliance(const opj_image_t *jp2_image, parameters->tcp_rates[0]=((float) (jp2_image->numcomps*jp2_image->comps[0].w* jp2_image->comps[0].h*jp2_image->comps[0].prec))/(parameters->max_comp_size* 8*jp2_image->comps[0].dx*jp2_image->comps[0].dy); - parameters->cp_disto_alloc=1; + parameters->cp_disto_alloc=OPJ_TRUE; } static inline int CalculateNumResolutions(size_t width,size_t height) @@ -865,9 +867,7 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image) *jp2_stream; ssize_t - i; - - ssize_t + i, y; unsigned int @@ -896,30 +896,30 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image) if (option != (const char *) NULL) parameters->numresolution=StringToInteger(option); else - parameters->numresolution=CalculateNumResolutions(image->columns, - image->rows); + parameters->numresolution=CalculateNumResolutions((size_t) image->columns, + (size_t) image->rows); parameters->tcp_numlayers=1; parameters->tcp_rates[0]=0; /* lossless */ - parameters->cp_disto_alloc=1; + parameters->cp_disto_alloc=OPJ_TRUE; if ((image_info->quality != 0) && (image_info->quality != 100)) { parameters->tcp_distoratio[0]=(double) image_info->quality; parameters->cp_fixed_quality=OPJ_TRUE; - parameters->cp_disto_alloc=0; + parameters->cp_disto_alloc=OPJ_FALSE; } if (image_info->extract != (char *) NULL) { - RectangleInfo - geometry; - int flags; + RectangleInfo + geometry; + /* Set tile size. */ (void) memset(&geometry,0,sizeof(geometry)); - flags=ParseAbsoluteGeometry(image_info->extract,&geometry); + flags= (int) ParseAbsoluteGeometry(image_info->extract,&geometry); parameters->cp_tdx=(int) geometry.width; parameters->cp_tdy=(int) geometry.width; if ((flags & HeightValue) != 0) @@ -929,8 +929,8 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image) if ((flags & YValue) != 0) parameters->cp_ty0=geometry.y; parameters->tile_size_on=OPJ_TRUE; - parameters->numresolution=CalculateNumResolutions(parameters->cp_tdx, - parameters->cp_tdy); + parameters->numresolution=CalculateNumResolutions((size_t) + parameters->cp_tdx,(size_t) parameters->cp_tdy); } option=GetImageOption(image_info,"jp2:quality"); if (option != (const char *) NULL) @@ -954,7 +954,7 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image) } parameters->tcp_numlayers=i+1; parameters->cp_fixed_quality=OPJ_TRUE; - parameters->cp_disto_alloc=0; + parameters->cp_disto_alloc=OPJ_FALSE; } option=GetImageOption(image_info,"jp2:progression-order"); if (option != (const char *) NULL) @@ -982,7 +982,7 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image) p=option; for (i=0; sscanf(p,"%f",¶meters->tcp_rates[i]) == 1; i++) { - if (i > 100) + if (i >= 100) break; while ((*p != '\0') && (*p != ',')) p++; @@ -993,19 +993,28 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image) parameters->tcp_numlayers=i+1; parameters->cp_disto_alloc=OPJ_TRUE; } - if (image_info->sampling_factor != (const char *) NULL) - (void) sscanf(image_info->sampling_factor,"%d:%d", - ¶meters->subsampling_dx,¶meters->subsampling_dy); + if (image_info->sampling_factor != (char *) NULL) + { + GeometryInfo + geometry_info; + + MagickStatusType + flags; + + flags=ParseGeometry(image_info->sampling_factor,&geometry_info); + if ((flags & RhoValue) != 0) + parameters->subsampling_dx=(int) geometry_info.rho; + parameters->subsampling_dy=parameters->subsampling_dx; + if ((flags & SigmaValue) != 0) + parameters->subsampling_dy=(int) geometry_info.sigma; + } property=GetImageProperty(image,"comment"); if (property != (const char *) NULL) parameters->cp_comment=(char *) property; channels=3; jp2_colorspace=OPJ_CLRSPC_SRGB; if (image->colorspace == YUVColorspace) - { - jp2_colorspace=OPJ_CLRSPC_SYCC; - parameters->subsampling_dx=2; - } + jp2_colorspace=OPJ_CLRSPC_SYCC; else { if (IsGrayColorspace(image->colorspace) != MagickFalse) @@ -1029,10 +1038,10 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image) (LocaleCompare(image_info->magick,"JP2") == 0))) jp2_info[i].prec++; /* OpenJPEG returns exception for depth @ 1 */ jp2_info[i].sgnd=0; - jp2_info[i].dx=parameters->subsampling_dx; - jp2_info[i].dy=parameters->subsampling_dy; - jp2_info[i].w=(unsigned int) image->columns; - jp2_info[i].h=(unsigned int) image->rows; + jp2_info[i].dx=(unsigned int) parameters->subsampling_dx; + jp2_info[i].dy=(unsigned int) parameters->subsampling_dy; + jp2_info[i].w=(OPJ_UINT32) image->columns; + jp2_info[i].h=(OPJ_UINT32) image->rows; } jp2_image=opj_image_create(channels,jp2_info,jp2_colorspace); if (jp2_image == (opj_image_t *) NULL) @@ -1040,12 +1049,12 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image) parameters=(opj_cparameters_t *) RelinquishMagickMemory(parameters); ThrowWriterException(DelegateError,"UnableToEncodeImageFile"); } - jp2_image->x0=parameters->image_offset_x0; - jp2_image->y0=parameters->image_offset_y0; + jp2_image->x0=(unsigned int) parameters->image_offset_x0; + jp2_image->y0=(unsigned int) parameters->image_offset_y0; jp2_image->x1=(unsigned int) (2*parameters->image_offset_x0+ - (image->columns-1)*parameters->subsampling_dx+1); + ((ssize_t) image->columns-1)*parameters->subsampling_dx+1); jp2_image->y1=(unsigned int) (2*parameters->image_offset_y0+ - (image->rows-1)*parameters->subsampling_dx+1); + ((ssize_t) image->rows-1)*parameters->subsampling_dx+1); if ((image->depth == 12) && ((image->columns == 2048) || (image->rows == 1080) || (image->columns == 4096) || (image->rows == 2160))) @@ -1166,7 +1175,8 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image) opj_destroy_codec(jp2_codec); opj_image_destroy(jp2_image); parameters=(opj_cparameters_t *) RelinquishMagickMemory(parameters); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } #endif diff --git a/coders/jpeg.c b/coders/jpeg.c index 739ec66..339aefa 100644 --- a/coders/jpeg.c +++ b/coders/jpeg.c @@ -98,10 +98,14 @@ /* Define declarations. */ -#define ICC_MARKER (JPEG_APP0+2) +#define COMMENT_INDEX 0 +#define APP_INDEX 0 +#define APP_MARKER (JPEG_APP0+APP_INDEX) +#define ICC_INDEX 2 +#define ICC_MARKER (JPEG_APP0+ICC_INDEX) #define ICC_PROFILE "ICC_PROFILE" -#define IPTC_MARKER (JPEG_APP0+13) -#define XML_MARKER (JPEG_APP0+1) +#define IPTC_INDEX 13 +#define IPTC_MARKER (JPEG_APP0+IPTC_INDEX) #define MaxJPEGProfiles 16 #define MaxJPEGScans 1024 @@ -725,7 +729,7 @@ static boolean ReadIPTCProfile(j_decompress_ptr jpeg_info) return(TRUE); } -static boolean ReadProfile(j_decompress_ptr jpeg_info) +static boolean ReadAPPProfiles(j_decompress_ptr jpeg_info) { char name[MaxTextExtent]; @@ -1219,14 +1223,28 @@ static Image *ReadJPEGImage_(const ImageInfo *image_info, JPEGSourceManager(jpeg_info,image); jpeg_set_marker_processor(jpeg_info,JPEG_COM,ReadComment); option=GetImageOption(image_info,"profile:skip"); - if (IsOptionMember("ICC",option) == MagickFalse) - jpeg_set_marker_processor(jpeg_info,ICC_MARKER,ReadICCProfile); - if (IsOptionMember("IPTC",option) == MagickFalse) - jpeg_set_marker_processor(jpeg_info,IPTC_MARKER,ReadIPTCProfile); for (i=1; i < MaxJPEGProfiles; i++) - if ((i != 2) && (i != 13) && (i != 14)) - if (IsOptionMember("APP",option) == MagickFalse) - jpeg_set_marker_processor(jpeg_info,(int) (JPEG_APP0+i),ReadProfile); + { + if (i == ICC_INDEX) + { + if (IsOptionMember("ICC",option) == MagickFalse) + jpeg_set_marker_processor(jpeg_info,ICC_MARKER,ReadICCProfile); + } + else if (i == IPTC_INDEX) + { + if (IsOptionMember("IPTC",option) == MagickFalse) + jpeg_set_marker_processor(jpeg_info,IPTC_MARKER,ReadIPTCProfile); + } + else if (i != 14) + { + /* + Ignore APP14 as this will change the colors of the image. + */ + if (IsOptionMember("APP",option) == MagickFalse) + jpeg_set_marker_processor(jpeg_info,(int) (JPEG_APP0+i), + ReadAPPProfiles); + } + } i=(ssize_t) jpeg_read_header(jpeg_info,TRUE); if (IsYCbCrCompatibleColorspace(image_info->colorspace) != MagickFalse) jpeg_info->out_color_space=JCS_YCbCr; @@ -1624,7 +1642,10 @@ static Image *ReadJPEGImage_(const ImageInfo *image_info, jpeg_destroy_decompress(jpeg_info); client_info=(JPEGClientInfo *) RelinquishMagickMemory(client_info); memory_info=RelinquishVirtualMemory(memory_info); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -2136,7 +2157,7 @@ static void WriteProfiles(j_compress_ptr jpeg_info,Image *image) image->filename); length=65533L; } - jpeg_write_marker(jpeg_info,XML_MARKER,GetStringInfoDatum(profile), + jpeg_write_marker(jpeg_info,APP_MARKER+1,GetStringInfoDatum(profile), (unsigned int) length); } if (LocaleCompare(name,"ICC") == 0) @@ -2205,7 +2226,7 @@ static void WriteProfiles(j_compress_ptr jpeg_info,Image *image) ConcatenateStringInfo(xmp_profile,profile); GetStringInfoDatum(xmp_profile)[XMPNamespaceExtent]='\0'; length=GetStringInfoLength(xmp_profile); - jpeg_write_marker(jpeg_info,XML_MARKER, + jpeg_write_marker(jpeg_info,APP_MARKER+1, GetStringInfoDatum(xmp_profile),(unsigned int) length); xmp_profile=DestroyStringInfo(xmp_profile); } @@ -2323,9 +2344,7 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info, *q; ssize_t - i; - - ssize_t + i, y; struct jpeg_error_mgr @@ -2439,6 +2458,9 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info, } } jpeg_set_defaults(jpeg_info); + option=GetImageOption(image_info,"jpeg:restart-interval"); + if (option != (const char *) NULL) + jpeg_info->restart_interval=StringToInteger(option); if (jpeg_info->in_color_space == JCS_CMYK) jpeg_set_colorspace(jpeg_info,JCS_YCCK); if ((jpeg_info->data_precision != 12) && (image->depth <= 8)) @@ -2448,22 +2470,29 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info, if (image->debug != MagickFalse) (void) LogMagickEvent(CoderEvent,GetMagickModule(), "Image resolution: %.20g,%.20g",image->x_resolution,image->y_resolution); - if ((image->x_resolution >= 0) && (image->x_resolution < (double) SHRT_MAX) && - (image->y_resolution >= 0) && (image->y_resolution < (double) SHRT_MAX)) + if ((image->x_resolution > 0) && (image->x_resolution < (double) SHRT_MAX) && + (image->y_resolution > 0) && (image->y_resolution < (double) SHRT_MAX)) { - /* - Set image resolution. - */ - jpeg_info->write_JFIF_header=TRUE; - jpeg_info->X_density=(UINT16) image->x_resolution; - jpeg_info->Y_density=(UINT16) image->y_resolution; - /* - Set image resolution units. - */ - if (image->units == PixelsPerInchResolution) - jpeg_info->density_unit=(UINT8) 1; - if (image->units == PixelsPerCentimeterResolution) - jpeg_info->density_unit=(UINT8) 2; + UINT16 + x_density=(UINT16) image->x_resolution, + y_density=(UINT16) image->y_resolution; + + if ((x_density > 0) && (y_density > 0)) + { + /* + Set image resolution. + */ + jpeg_info->write_JFIF_header=TRUE; + jpeg_info->X_density=x_density; + jpeg_info->Y_density=y_density; + /* + Set image resolution units. + */ + if (image->units == PixelsPerInchResolution) + jpeg_info->density_unit=(UINT8) 1; + else if (image->units == PixelsPerCentimeterResolution) + jpeg_info->density_unit=(UINT8) 2; + } } dct_method=GetImageOption(image_info,"jpeg:dct-method"); if (dct_method != (const char *) NULL) @@ -2611,14 +2640,27 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info, { (void) AcquireUniqueFilename(jpeg_image->filename); jpeg_image->quality=minimum+(maximum-minimum+1)/2; - (void) WriteJPEGImage(jpeg_info,jpeg_image); + status=WriteJPEGImage(jpeg_info,jpeg_image); + (void) RelinquishUniqueFileResource(jpeg_image->filename); + if (status == MagickFalse) + continue; if (GetBlobSize(jpeg_image) <= extent) minimum=jpeg_image->quality+1; else maximum=jpeg_image->quality-1; + } + while (minimum > 2) + { + (void) AcquireUniqueFilename(jpeg_image->filename); + jpeg_image->quality=minimum--; + status=WriteJPEGImage(jpeg_info,jpeg_image); (void) RelinquishUniqueFileResource(jpeg_image->filename); + if (status == MagickFalse) + continue; + if (GetBlobSize(jpeg_image) <= extent) + break; } - quality=(int) minimum-1; + quality=(int) minimum; jpeg_image=DestroyImage(jpeg_image); } jpeg_info=DestroyImageInfo(jpeg_info); @@ -3118,10 +3160,11 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info, jpeg_destroy_compress(jpeg_info); client_info=(JPEGClientInfo *) RelinquishMagickMemory(client_info); memory_info=RelinquishVirtualMemory(memory_info); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (jps_image != (Image *) NULL) jps_image=DestroyImage(jps_image); - return(MagickTrue); + return(status); } static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info, diff --git a/coders/json.c b/coders/json.c index b1d0f00..df02d7b 100644 --- a/coders/json.c +++ b/coders/json.c @@ -300,7 +300,7 @@ static void JSONFormatLocaleFile(FILE *file,const char *format, if (((int) *p >= 0x00) && ((int) *p <= 0x1f)) { (void) FormatLocaleString(q,7,"\\u%04X",(int) *p); - q+=6; + q+=(ptrdiff_t) 6; break; } *q++=(*p); @@ -758,24 +758,31 @@ static ssize_t PrintChannelStatistics(FILE *file,const ChannelType channel, if (channel == AlphaChannel) n=FormatLocaleFile(file,StatisticsFormat,name,GetMagickPrecision(), + channel_statistics[channel].minima == MagickMaximumValue ? 0.0 : + (double) ClampToQuantum(scale*((MagickRealType) QuantumRange- + channel_statistics[channel].minima)),GetMagickPrecision(), + channel_statistics[channel].maxima == -MagickMaximumValue ? 0.0 : (double) ClampToQuantum(scale*((MagickRealType) QuantumRange- - channel_statistics[channel].minima)),GetMagickPrecision(),(double) - ClampToQuantum(scale*((MagickRealType) QuantumRange- channel_statistics[channel].maxima)),GetMagickPrecision(),scale* ((MagickRealType) QuantumRange-channel_statistics[channel].mean), - GetMagickPrecision(),IsNaN(channel_statistics[channel].standard_deviation) != 0 ? + GetMagickPrecision(), + IsNaN(channel_statistics[channel].standard_deviation) != 0 ? MagickEpsilon : scale*channel_statistics[channel].standard_deviation, GetMagickPrecision(),channel_statistics[channel].kurtosis, GetMagickPrecision(),channel_statistics[channel].skewness, GetMagickPrecision(),channel_statistics[channel].entropy); else n=FormatLocaleFile(file,StatisticsFormat,name,GetMagickPrecision(), + channel_statistics[channel].minima == MagickMaximumValue ? 0.0 : (double) ClampToQuantum(scale*channel_statistics[channel].minima), - GetMagickPrecision(),(double) ClampToQuantum(scale* - channel_statistics[channel].maxima),GetMagickPrecision(),scale* - channel_statistics[channel].mean,GetMagickPrecision(), - IsNaN(channel_statistics[channel].standard_deviation) != 0 ? MagickEpsilon : - scale*channel_statistics[channel].standard_deviation,GetMagickPrecision(), + GetMagickPrecision(), + channel_statistics[channel].maxima == -MagickMaximumValue ? 0.0 : + (double) ClampToQuantum(scale*channel_statistics[channel].maxima), + GetMagickPrecision(),scale*channel_statistics[channel].mean, + GetMagickPrecision(), + IsNaN(channel_statistics[channel].standard_deviation) != 0 ? + MagickEpsilon : scale*channel_statistics[channel].standard_deviation, + GetMagickPrecision(), channel_statistics[channel].kurtosis,GetMagickPrecision(), channel_statistics[channel].skewness,GetMagickPrecision(), channel_statistics[channel].entropy); @@ -1788,7 +1795,9 @@ static MagickBooleanType WriteJSONImage(const ImageInfo *image_info, MaxTextExtent); image->magick_columns=image->columns; image->magick_rows=image->rows; - (void) EncodeImageAttributes(image,GetBlobFileHandle(image)); + status=EncodeImageAttributes(image,GetBlobFileHandle(image)); + if (status == MagickFalse) + break; if (GetNextImageInList(image) == (Image *) NULL) { (void) WriteBlobString(image,"]"); @@ -1800,6 +1809,7 @@ static MagickBooleanType WriteJSONImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/label.c b/coders/label.c index 389ae8d..b481be7 100644 --- a/coders/label.c +++ b/coders/label.c @@ -53,11 +53,13 @@ #include "magick/magick.h" #include "magick/memory_.h" #include "magick/pixel-accessor.h" +#include "magick/option.h" #include "magick/property.h" #include "magick/quantum-private.h" #include "magick/resource_.h" #include "magick/static.h" #include "magick/string_.h" +#include "magick/string-private.h" #include "magick/module.h" #include "magick/utility.h" @@ -118,13 +120,13 @@ static Image *ReadLABELImage(const ImageInfo *image_info, left_bearing, status; + TypeMetric + metrics; + size_t height, width; - TypeMetric - metrics; - /* Initialize Image structure. */ @@ -144,7 +146,8 @@ static Image *ReadLABELImage(const ImageInfo *image_info, return(DestroyImageList(image)); (void) SetImageBackgroundColor(image); } - label=InterpretImageProperties(image_info,image,image_info->filename); + label=InterpretImageProperties((ImageInfo *) image_info,image, + image_info->filename); if (label == (char *) NULL) return(DestroyImageList(image)); (void) SetImageProperty(image,"label",label); @@ -170,6 +173,9 @@ static Image *ReadLABELImage(const ImageInfo *image_info, (((image->columns == 0) || (image->rows == 0)) || (fabs(image_info->pointsize) < MagickEpsilon))) { + const char + *option; + double high, low; @@ -180,48 +186,71 @@ static Image *ReadLABELImage(const ImageInfo *image_info, /* Auto fit text into bounding box. */ - for (n=0; n < 32; n++, draw_info->pointsize*=2.0) - { - (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g", - -metrics.bounds.x1,metrics.ascent); - if (draw_info->gravity == UndefinedGravity) - (void) CloneString(&draw_info->geometry,geometry); - status=GetMultilineTypeMetrics(image,draw_info,&metrics); - AdjustTypeMetricBounds(&metrics); - if (status == MagickFalse) - break; - width=CastDoubleToUnsigned(metrics.width+draw_info->stroke_width+0.5); - height=CastDoubleToUnsigned(metrics.height-metrics.underline_position+ - draw_info->stroke_width+0.5); - if ((image->columns != 0) && (image->rows != 0)) + low=1.0; + option=GetImageOption(image_info,"label:max-pointsize"); + if (option != (const char*) NULL) + { + high=StringToDouble(option,(char**) NULL); + if (high < 1.0) + high=1.0; + high+=1.0; + } + else + { + option=GetImageOption(image_info,"label:start-pointsize"); + if (option != (const char *) NULL) + { + draw_info->pointsize=StringToDouble(option,(char**) NULL); + if (draw_info->pointsize < 1.0) + draw_info->pointsize=1.0; + } + for (n=0; n < 32; n++, draw_info->pointsize*=2.0) { - if ((width >= image->columns) || (height >= image->rows)) + (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g", + metrics.bounds.x1,metrics.ascent); + if (draw_info->gravity == UndefinedGravity) + (void) CloneString(&draw_info->geometry,geometry); + status=GetMultilineTypeMetrics(image,draw_info,&metrics); + if (status == MagickFalse) break; + AdjustTypeMetricBounds(&metrics); + width=CastDoubleToUnsigned(metrics.width+draw_info->stroke_width+ + 0.5); + height=CastDoubleToUnsigned( + metrics.height-metrics.underline_position+ + draw_info->stroke_width+0.5); + if ((image->columns != 0) && (image->rows != 0)) + { + if ((width > image->columns) && (height > image->rows)) + break; + if ((width <= image->columns) && (height <= image->rows)) + low=draw_info->pointsize; + } + else + if (((image->columns != 0) && (width > image->columns)) || + ((image->rows != 0) && (height > image->rows))) + break; } - else - if (((image->columns != 0) && (width >= image->columns)) || - ((image->rows != 0) && (height >= image->rows))) - break; - } - if (status == MagickFalse) - { - label=DestroyString(label); - draw_info=DestroyDrawInfo(draw_info); - image=DestroyImageList(image); - return((Image *) NULL); + if (status == MagickFalse) + { + label=DestroyString(label); + draw_info=DestroyDrawInfo(draw_info); + image=DestroyImageList(image); + return((Image *) NULL); + } + high=draw_info->pointsize; } - high=draw_info->pointsize; - for (low=1.0; (high-low) > 0.5; ) + while ((high-low) > 0.5) { draw_info->pointsize=(low+high)/2.0; (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g", - -metrics.bounds.x1,metrics.ascent); + metrics.bounds.x1,metrics.ascent); if (draw_info->gravity == UndefinedGravity) (void) CloneString(&draw_info->geometry,geometry); status=GetMultilineTypeMetrics(image,draw_info,&metrics); - AdjustTypeMetricBounds(&metrics); if (status == MagickFalse) break; + AdjustTypeMetricBounds(&metrics); width=CastDoubleToUnsigned(metrics.width+draw_info->stroke_width+0.5); height=CastDoubleToUnsigned(metrics.height-metrics.underline_position+ draw_info->stroke_width+0.5); @@ -240,20 +269,20 @@ static Image *ReadLABELImage(const ImageInfo *image_info, high=draw_info->pointsize-0.5; } if (status != MagickFalse) - { - draw_info->pointsize=floor((low+high)/2.0-0.5); - status=GetMultilineTypeMetrics(image,draw_info,&metrics); - AdjustTypeMetricBounds(&metrics); - } + draw_info->pointsize=floor(low-0.5); } - label=DestroyString(label); - if (status == MagickFalse) - { - draw_info=DestroyDrawInfo(draw_info); - InheritException(exception,&image->exception); - image=DestroyImageList(image); - return((Image *) NULL); - } + label=DestroyString(label); + if (status == MagickFalse) + { + draw_info=DestroyDrawInfo(draw_info); + image=DestroyImageList(image); + return((Image *) NULL); + } + /* + Draw label. + */ + status=GetMultilineTypeMetrics(image,draw_info,&metrics); + AdjustTypeMetricBounds(&metrics); if (image->columns == 0) image->columns=(size_t) floor(metrics.width+draw_info->stroke_width+0.5); if (image->columns == 0) @@ -268,13 +297,11 @@ static Image *ReadLABELImage(const ImageInfo *image_info, if (status == MagickFalse) { draw_info=DestroyDrawInfo(draw_info); - InheritException(exception,&image->exception); return(DestroyImageList(image)); } if (SetImageBackgroundColor(image) == MagickFalse) { draw_info=DestroyDrawInfo(draw_info); - InheritException(exception,&image->exception); image=DestroyImageList(image); return((Image *) NULL); } @@ -282,7 +309,7 @@ static Image *ReadLABELImage(const ImageInfo *image_info, Draw label. */ left_bearing=((draw_info->gravity == UndefinedGravity) || - (draw_info->gravity == NorthWestGravity) || + (draw_info->gravity == NorthWestGravity) || (draw_info->gravity == WestGravity) || (draw_info->gravity == SouthWestGravity)) ? MagickTrue : MagickFalse; (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g", diff --git a/coders/mac.c b/coders/mac.c index fb223ab..dd17552 100644 --- a/coders/mac.c +++ b/coders/mac.c @@ -263,7 +263,10 @@ static Image *ReadMACImage(const ImageInfo *image_info,ExceptionInfo *exception) } pixels=(unsigned char *) RelinquishMagickMemory(pixels); (void) SyncImage(image); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } diff --git a/coders/map.c b/coders/map.c index 2582066..113b71f 100644 --- a/coders/map.c +++ b/coders/map.c @@ -255,7 +255,10 @@ static Image *ReadMAPImage(const ImageInfo *image_info,ExceptionInfo *exception) if (y < (ssize_t) image->rows) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -458,6 +461,7 @@ static MagickBooleanType WriteMAPImage(const ImageInfo *image_info,Image *image) (void) WriteBlob(image,(size_t) (q-pixels),pixels); } pixels=(unsigned char *) RelinquishMagickMemory(pixels); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/mat.c b/coders/mat.c index 3fe6d1d..22f4dd7 100644 --- a/coders/mat.c +++ b/coders/mat.c @@ -577,7 +577,7 @@ ssize_t TotalSize = 0; zip_status = inflate(&zip_info,Z_NO_FLUSH); if ((zip_status != Z_OK) && (zip_status != Z_STREAM_END)) break; - extent=fwrite(decompress_block, 4096-zip_info.avail_out, 1, mat_file); + extent=fwrite(decompress_block, 1, 4096-zip_info.avail_out, mat_file); (void) extent; TotalSize += 4096-zip_info.avail_out; @@ -598,6 +598,8 @@ DblBreak: if((clone_info->file=fopen(clone_info->filename,"rb"))==NULL) goto UnlinkFile; if( (image2 = AcquireImage(clone_info))==NULL ) goto EraseFile; + image2->columns=0; + image2->rows=0; status = OpenBlob(clone_info,image2,ReadBinaryBlobMode,exception); if (status == MagickFalse) { @@ -851,7 +853,8 @@ skip_reading_current: if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1643,7 +1646,7 @@ static MagickBooleanType WriteMATImage(const ImageInfo *image_info,Image *image) image->depth=8; current_time=GetMagickTime(); - GetMagickUTCtime(¤t_time,&utc_time); + GetMagickUTCTime(¤t_time,&utc_time); (void) memset(MATLAB_HDR,' ',MagickMin(sizeof(MATLAB_HDR),124)); FormatLocaleString(MATLAB_HDR,sizeof(MATLAB_HDR), "MATLAB 5.0 MAT-file, Platform: %s, Created on: %s %s %2d %2d:%2d:%2d %d", @@ -1758,6 +1761,7 @@ static MagickBooleanType WriteMATImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/meta.c b/coders/meta.c index 2357df9..a720325 100644 --- a/coders/meta.c +++ b/coders/meta.c @@ -322,6 +322,9 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile) unsigned int recnum; + MagickBooleanType + status; + MagickOffsetType savedpos, currentpos; @@ -343,6 +346,7 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile) return(-1); newstr = name = token = (char *) NULL; savedpos = 0; + status=MagickTrue; token_info=AcquireTokenInfo(); while (super_fgets(&line,&inputlen,ifile)!=NULL) { @@ -447,21 +451,21 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile) currentpos = TellBlob(ofile); if (currentpos < 0) { - line=DestroyString(line); - return(-1); + status=MagickFalse; + break; } offset=SeekBlob(ofile,savedpos,SEEK_SET); if (offset < 0) { - line=DestroyString(line); - return(-1); + status=MagickFalse; + break; } (void) WriteBlobMSBLong(ofile,(unsigned int) diff); offset=SeekBlob(ofile,currentpos,SEEK_SET); if (offset < 0) { - line=DestroyString(line); - return(-1); + status=MagickFalse; + break; } savedolen = 0L; } @@ -506,7 +510,10 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile) /* patch in a fake length for now and fix it later */ savedpos = TellBlob(ofile); if (savedpos < 0) - return(-1); + { + status=MagickFalse; + break; + } (void) WriteBlobMSBLong(ofile,0xFFFFFFFFU); outputlen += 4; savedolen = outputlen; @@ -536,6 +543,8 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile) newstr=DestroyString(newstr); if (name != (char *) NULL) name=DestroyString(name); + if (status == MagickFalse) + break; } token_info=DestroyTokenInfo(token_info); if (token != (char *) NULL) @@ -564,7 +573,7 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile) return(-1); savedolen = 0L; } - return(outputlen); + return(status == MagickFalse ? -1 : outputlen); } static char *super_fgets_w(char **b, size_t *blen, Image *file) @@ -650,6 +659,9 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) savedolen = 0L, outputlen = 0L; + MagickBooleanType + status; + MagickOffsetType savedpos, currentpos; @@ -664,6 +676,7 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) return(-1); newstr = name = token = (char *) NULL; savedpos = 0; + status=MagickTrue; token_info=AcquireTokenInfo(); while (super_fgets_w(&line,&inputlen,ifile) != NULL) { @@ -765,14 +778,23 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) ssize_t diff = outputlen - savedolen; currentpos = TellBlob(ofile); if (currentpos < 0) - return(-1); + { + status=MagickFalse; + break; + } offset=SeekBlob(ofile,savedpos,SEEK_SET); if (offset < 0) - return(-1); + { + status=MagickFalse; + break; + } (void) WriteBlobMSBLong(ofile,(unsigned int) diff); offset=SeekBlob(ofile,currentpos,SEEK_SET); if (offset < 0) - return(-1); + { + status=MagickFalse; + break; + } savedolen = 0L; } if (outputlen & 1) @@ -816,7 +838,10 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) /* patch in a fake length for now and fix it later */ savedpos = TellBlob(ofile); if (savedpos < 0) - return(-1); + { + status=MagickFalse; + break; + } (void) WriteBlobMSBLong(ofile,0xFFFFFFFFU); outputlen += 4; savedolen = outputlen; @@ -846,6 +871,8 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) newstr=DestroyString(newstr); if (name != (char *) NULL) name=DestroyString(name); + if (status == MagickFalse) + break; } token_info=DestroyTokenInfo(token_info); if (token != (char *) NULL) @@ -874,7 +901,7 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) return(-1); savedolen = 0L; } - return outputlen; + return(status == MagickFalse ? -1 : outputlen); } /* some defines for the different JPEG block types */ @@ -1440,7 +1467,10 @@ static Image *ReadMETAImage(const ImageInfo *image_info, blob=(unsigned char *) RelinquishMagickMemory(blob); buff=DestroyImage(buff); } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -1679,23 +1709,23 @@ static size_t GetIPTCStream(unsigned char **info,size_t length) { if (strncmp((const char *) p,"8BIM",4)) break; - p+=4; + p+=(ptrdiff_t) 4; extent-=4; marker=(unsigned int) (*p) << 8 | *(p+1); - p+=2; + p+=(ptrdiff_t) 2; extent-=2; c=*p++; extent--; c|=0x01; if ((size_t) c >= extent) break; - p+=c; + p+=(ptrdiff_t) c; extent-=c; if (extent < 4) break; tag_length=(((size_t) *p) << 24) | (((size_t) *(p+1)) << 16) | (((size_t) *(p+2)) << 8) | ((size_t) *(p+3)); - p+=4; + p+=(ptrdiff_t) 4; extent-=4; if (tag_length > extent) break; @@ -1706,7 +1736,7 @@ static size_t GetIPTCStream(unsigned char **info,size_t length) } if ((tag_length & 0x01) != 0) tag_length++; - p+=tag_length; + p+=(ptrdiff_t) tag_length; extent-=tag_length; } /* @@ -1803,7 +1833,7 @@ iptc_find: } if (tag_length > (length+1)) break; - p+=tag_length; + p+=(ptrdiff_t) tag_length; length-=tag_length; if (length == 0) break; diff --git a/coders/miff.c b/coders/miff.c index 824e4a8..7297a22 100644 --- a/coders/miff.c +++ b/coders/miff.c @@ -227,14 +227,14 @@ static void PushRunlengthPacket(Image *image,const unsigned char *pixels, *index=ConstrainColormapIndex(image,(ssize_t) (((size_t) *p << 24) | ((size_t) *(p+1) << 16) | ((size_t) *(p+2) << 8) | (size_t) *(p+3))); - p+=4; + p+=(ptrdiff_t) 4; break; } case 16: { *index=ConstrainColormapIndex(image,(ssize_t) ((size_t) (*p << 8) | (size_t) *(p+1))); - p+=2; + p+=(ptrdiff_t) 2; break; } case 8: @@ -628,7 +628,7 @@ static Image *ReadMIFFImage(const ImageInfo *image_info, Get the keyword value. */ c=ReadBlobByte(image); - while ((c != (int) '}') && (c != EOF)) + while ((c != (int) '{') && (c != (int) '}') && (c != EOF)) { if ((size_t) (p-options+1) >= length) { @@ -645,7 +645,7 @@ static Image *ReadMIFFImage(const ImageInfo *image_info, if (c == '\\') { c=ReadBlobByte(image); - if (c == (int) '}') + if ((c == (int) '{') || (c == (int) '}')) { *p++=(char) c; c=ReadBlobByte(image); @@ -1320,6 +1320,7 @@ static Image *ReadMIFFImage(const ImageInfo *image_info, if (quantum_format != UndefinedQuantumFormat) { status=SetQuantumFormat(image,quantum_info,quantum_format); + image->depth=quantum_info->depth; if (status == MagickFalse) ThrowMIFFException(ResourceLimitError,"MemoryAllocationFailed"); } @@ -1736,7 +1737,8 @@ static Image *ReadMIFFImage(const ImageInfo *image_info, break; } } while (c != EOF && ((c == 'i') || (c == 'I'))); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -2108,8 +2110,12 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info, } } else - if (image->depth < 16) - (void) DeleteImageProperty(image,"quantum:format"); + if ((quantum_info->format == FloatingPointQuantumFormat) && + (image->depth < 16)) + { + status=SetQuantumFormat(image,quantum_info,UnsignedQuantumFormat); + status=SetQuantumDepth(image,quantum_info,image->depth); + } compression=UndefinedCompression; if (image_info->compression != UndefinedCompression) compression=image_info->compression; @@ -2368,19 +2374,21 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info, length=strlen(value); for (i=0; i < (ssize_t) length; i++) if ((isspace((int) ((unsigned char) value[i])) != 0) || - (value[i] == '}')) + (value[i] == '{') || (value[i] == '}')) break; if ((i == (ssize_t) length) && (i != 0)) (void) WriteBlob(image,length,(const unsigned char *) value); else { (void) WriteBlobByte(image,'{'); - if (strchr(value,'}') == (char *) NULL) + if ((strchr(value,'{') == (char *) NULL) && + (strchr(value,'}') == (char *) NULL)) (void) WriteBlob(image,length,(const unsigned char *) value); else for (i=0; i < (ssize_t) length; i++) { - if (value[i] == (int) '}') + if ((value[i] == (int) '{') || (value[i] == (int) '}') || + (value[i] == (int) '\\')) (void) WriteBlobByte(image,'\\'); (void) WriteBlobByte(image,(unsigned char) value[i]); } @@ -2805,6 +2813,7 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/mono.c b/coders/mono.c index c73ee12..6afc161 100644 --- a/coders/mono.c +++ b/coders/mono.c @@ -195,7 +195,10 @@ static Image *ReadMONOImage(const ImageInfo *image_info, if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -359,6 +362,7 @@ static MagickBooleanType WriteMONOImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/mpc.c b/coders/mpc.c index 38b946c..6590610 100644 --- a/coders/mpc.c +++ b/coders/mpc.c @@ -311,7 +311,7 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception) Get the keyword value. */ c=ReadBlobByte(image); - while ((c != (int) '}') && (c != EOF)) + while ((c != (int) '{') && (c != (int) '}') && (c != EOF)) { if ((size_t) (p-options+1) >= length) { @@ -328,7 +328,7 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception) if (c == '\\') { c=ReadBlobByte(image); - if (c == (int) '}') + if ((c == (int) '{') || (c == (int) '}')) { *p++=(char) c; c=ReadBlobByte(image); @@ -1012,7 +1012,8 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } while ((c != EOF) && ((c == 'i') || (c == 'I'))); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1389,12 +1390,13 @@ static MagickBooleanType WriteMPCImage(const ImageInfo *image_info,Image *image) else { (void) WriteBlobByte(image,'{'); - if (strchr(value,'}') == (char *) NULL) + if ((strchr(value,'{') == (char *) NULL) && + (strchr(value,'}') == (char *) NULL)) (void) WriteBlob(image,length,(const unsigned char *) value); else for (i=0; i < (ssize_t) length; i++) { - if (value[i] == (int) '}') + if ((value[i] == (int) '{') || (value[i] == (int) '}')) (void) WriteBlobByte(image,'\\'); (void) WriteBlobByte(image,(unsigned char) value[i]); } @@ -1531,6 +1533,7 @@ static MagickBooleanType WriteMPCImage(const ImageInfo *image_info,Image *image) } scene++; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/mtv.c b/coders/mtv.c index 52e0cc9..3705b05 100644 --- a/coders/mtv.c +++ b/coders/mtv.c @@ -238,7 +238,8 @@ static Image *ReadMTVImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } while (count > 0); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -417,6 +418,7 @@ static MagickBooleanType WriteMTVImage(const ImageInfo *image_info,Image *image) break; scene++; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/mvg.c b/coders/mvg.c index 777dc44..bcd74b5 100644 --- a/coders/mvg.c +++ b/coders/mvg.c @@ -177,8 +177,8 @@ static Image *ReadMVGImage(const ImageInfo *image_info,ExceptionInfo *exception) continue; (void) sscanf(p,"viewbox %lf %lf %lf %lf",&bounds.x1,&bounds.y1, &bounds.x2,&bounds.y2); - image->columns=(size_t) floor((bounds.x2-bounds.x1)+0.5); - image->rows=(size_t) floor((bounds.y2-bounds.y1)+0.5); + image->columns=CastDoubleToUnsigned(floor((bounds.x2-bounds.x1)+0.5)); + image->rows=CastDoubleToUnsigned(floor((bounds.y2-bounds.y1)+0.5)); break; } } @@ -191,8 +191,8 @@ static Image *ReadMVGImage(const ImageInfo *image_info,ExceptionInfo *exception) 96.0; draw_info->affine.sy=image->y_resolution == 0.0 ? 1.0 : image->y_resolution/ 96.0; - image->columns=(size_t) (draw_info->affine.sx*image->columns); - image->rows=(size_t) (draw_info->affine.sy*image->rows); + image->columns=CastDoubleToUnsigned(draw_info->affine.sx*image->columns); + image->rows=CastDoubleToUnsigned(draw_info->affine.sy*image->rows); status=SetImageExtent(image,image->columns,image->rows); if (status == MagickFalse) { @@ -243,7 +243,10 @@ static Image *ReadMVGImage(const ImageInfo *image_info,ExceptionInfo *exception) (void) DrawImage(image,draw_info); (void) SetImageArtifact(image,"mvg:vector-graphics",draw_info->primitive); draw_info=DestroyDrawInfo(draw_info); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -360,6 +363,7 @@ static MagickBooleanType WriteMVGImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) return(status); (void) WriteBlob(image,strlen(value),(const unsigned char *) value); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/otb.c b/coders/otb.c index f729f5d..d8ea1a8 100644 --- a/coders/otb.c +++ b/coders/otb.c @@ -213,7 +213,10 @@ static Image *ReadOTBImage(const ImageInfo *image_info,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -390,6 +393,7 @@ static MagickBooleanType WriteOTBImage(const ImageInfo *image_info,Image *image) break; } } - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/palm.c b/coders/palm.c index c1cfbaf..5885f89 100644 --- a/coders/palm.c +++ b/coders/palm.c @@ -598,7 +598,8 @@ static Image *ReadPALMImage(const ImageInfo *image_info, break; } } while (nextDepthOffset != 0); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); diff --git a/coders/pcd.c b/coders/pcd.c index b78b56d..21587cb 100644 --- a/coders/pcd.c +++ b/coders/pcd.c @@ -468,9 +468,9 @@ static void Upsample(const size_t width,const size_t height, *q=(unsigned char) ((((size_t) *p)+((size_t) *r)+1) >> 1); *(q+1)=(unsigned char) ((((size_t) *p)+((size_t) *(p+2))+ ((size_t) *r)+((size_t) *(r+2))+2) >> 2); - q+=2; - p+=2; - r+=2; + q+=(ptrdiff_t) 2; + p+=(ptrdiff_t) 2; + r+=(ptrdiff_t) 2; } *q++=(unsigned char) ((((size_t) *p++)+((size_t) *r++)+1) >> 1); *q++=(unsigned char) ((((size_t) *p++)+((size_t) *r++)+1) >> 1); diff --git a/coders/pcl.c b/coders/pcl.c index e584d8b..5091d85 100644 --- a/coders/pcl.c +++ b/coders/pcl.c @@ -169,7 +169,8 @@ static Image *ReadPCLImage(const ImageInfo *image_info,ExceptionInfo *exception) *read_info; int - c; + c, + exit_code; MagickBooleanType cmyk, @@ -334,10 +335,10 @@ static Image *ReadPCLImage(const ImageInfo *image_info,ExceptionInfo *exception) image->x_resolution,image->y_resolution); if (image_info->ping != MagickFalse) (void) FormatLocaleString(density,MagickPathExtent,"2.0x2.0"); - page.width=CastDoubleToUnsigned((double) page.width*image->x_resolution/delta.x+ - 0.5); - page.height=CastDoubleToUnsigned((double) page.height*image->y_resolution/delta.y+ - 0.5); + page.width=CastDoubleToUnsigned((double) page.width*image->x_resolution/ + delta.x+0.5); + page.height=CastDoubleToUnsigned((double) page.height*image->y_resolution/ + delta.y+0.5); (void) FormatLocaleString(options,MaxTextExtent,"-g%.20gx%.20g ",(double) page.width,(double) page.height); image=DestroyImage(image); @@ -365,8 +366,13 @@ static Image *ReadPCLImage(const ImageInfo *image_info,ExceptionInfo *exception) read_info->filename,input_filename); options=DestroyString(options); density=DestroyString(density); - status=ExternalDelegateCommand(MagickFalse,read_info->verbose,command, - (char *) NULL,exception) != 0 ? MagickTrue : MagickFalse; + exit_code=ExternalDelegateCommand(MagickFalse,read_info->verbose,command, + (char *) NULL,exception); + if (exit_code != 0) + { + read_info=DestroyImageInfo(read_info); + ThrowReaderException(DelegateError,"PCLDelegateFailed"); + } image=ReadImage(read_info,exception); (void) RelinquishUniqueFileResource(read_info->filename); (void) RelinquishUniqueFileResource(input_filename); @@ -995,6 +1001,7 @@ static MagickBooleanType WritePCLImage(const ImageInfo *image_info,Image *image) break; } while (image_info->adjoin != MagickFalse); (void) WriteBlobString(image,"\033E"); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/pcx.c b/coders/pcx.c index 28b048c..56614e7 100644 --- a/coders/pcx.c +++ b/coders/pcx.c @@ -486,6 +486,8 @@ static Image *ReadPCXImage(const ImageInfo *image_info,ExceptionInfo *exception) /* 256 color images have their color map at the end of the file. */ + offset=SeekBlob(image,(MagickOffsetType) GetBlobSize(image)-3* + image->colors-1,SEEK_SET); pcx_info.colormap_signature=(unsigned char) ReadBlobByte(image); count=ReadBlob(image,3*image->colors,pcx_colormap); p=pcx_colormap; @@ -538,7 +540,7 @@ static Image *ReadPCXImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } - r+=pcx_info.planes; + r+=(ptrdiff_t) pcx_info.planes; } } else @@ -693,7 +695,8 @@ static Image *ReadPCXImage(const ImageInfo *image_info,ExceptionInfo *exception) } if (page_table != (MagickOffsetType *) NULL) page_table=(MagickOffsetType *) RelinquishMagickMemory(page_table); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1207,6 +1210,7 @@ static MagickBooleanType WritePCXImage(const ImageInfo *image_info,Image *image) FileOpenError,"UnableToWriteFile","`%s': %s",image->filename,message); message=DestroyString(message); } - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/pdb.c b/coders/pdb.c index 0d4635f..a508c1f 100644 --- a/coders/pdb.c +++ b/coders/pdb.c @@ -635,7 +635,10 @@ static Image *ReadPDBImage(const ImageInfo *image_info,ExceptionInfo *exception) (void) SetImageProperty(image,"comment",comment); comment=DestroyString(comment); } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -1012,6 +1015,7 @@ static MagickBooleanType WritePDBImage(const ImageInfo *image_info,Image *image) runlength=(unsigned char *) RelinquishMagickMemory(runlength); if (comment != (const char *) NULL) (void) WriteBlobString(image,comment); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/pdf.c b/coders/pdf.c index 7097586..82a7df8 100644 --- a/coders/pdf.c +++ b/coders/pdf.c @@ -3022,7 +3022,7 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image) hex_digits[15]='F'; (void) FormatLocaleString(buffer,MagickPathExtent,"/Title > 12) & 0x0f]); (void) WriteBlobByte(image,hex_digits[(utf16[i] >> 8) & 0x0f]); @@ -3035,7 +3035,7 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image) } (void) WriteBlobString(image,buffer); seconds=GetMagickTime(); - GetMagickUTCtime(&seconds,&utc_time); + GetMagickUTCTime(&seconds,&utc_time); (void) FormatLocaleString(date,MaxTextExtent,"D:%04d%02d%02d%02d%02d%02d", utc_time.tm_year+1900,utc_time.tm_mon+1,utc_time.tm_mday, utc_time.tm_hour,utc_time.tm_min,utc_time.tm_sec); @@ -3087,6 +3087,7 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image) (void) WriteBlobString(image,buffer); (void) WriteBlobString(image,"%%EOF\n"); xref=(MagickOffsetType *) RelinquishMagickMemory(xref); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/pgx.c b/coders/pgx.c index b0bbb11..37940a2 100644 --- a/coders/pgx.c +++ b/coders/pgx.c @@ -234,7 +234,10 @@ static Image *ReadPGXImage(const ImageInfo *image_info,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -394,6 +397,7 @@ static MagickBooleanType WritePGXImage(const ImageInfo *image_info,Image *image) quantum_info=DestroyQuantumInfo(quantum_info); if (y < (ssize_t) image->rows) ThrowWriterException(CorruptImageError,"UnableToWriteImageData"); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/pict.c b/coders/pict.c index dcf0911..822b012 100644 --- a/coders/pict.c +++ b/coders/pict.c @@ -502,7 +502,7 @@ static unsigned char *DecodeImage(Image *blob,Image *image, for (y=0; y < (ssize_t) image->rows; y++) { q=pixels+y*width; - if (bytes_per_line > 200) + if (bytes_per_line > 250) scanline_length=ReadBlobMSBShort(blob); else scanline_length=(size_t) ReadBlobByte(blob); @@ -526,7 +526,7 @@ static unsigned char *DecodeImage(Image *blob,Image *image, &number_pixels); if ((q-pixels+number_pixels) <= *extent) (void) memcpy(q,p,(size_t) number_pixels); - q+=number_pixels; + q+=(ptrdiff_t) number_pixels; j+=(ssize_t) (length*bytes_per_pixel+1); } else @@ -539,7 +539,7 @@ static unsigned char *DecodeImage(Image *blob,Image *image, { if ((q-pixels+number_pixels) <= *extent) (void) memcpy(q,p,(size_t) number_pixels); - q+=number_pixels; + q+=(ptrdiff_t) number_pixels; } j+=(ssize_t) bytes_per_pixel+1; } @@ -692,7 +692,7 @@ static size_t EncodeImage(Image *image,const unsigned char *scanline, Write the number of and the packed length. */ length=(size_t) (q-pixels); - if (bytes_per_line > 200) + if (bytes_per_line > 250) { (void) WriteBlobMSBShort(image,(unsigned short) length); length+=2; @@ -1097,7 +1097,7 @@ static Image *ReadPICTImage(const ImageInfo *image_info, if (EOFBlob(image) != MagickFalse) break; - if (length > 200) + if (length > 250) scanline_length=ReadBlobMSBShort(image); else scanline_length=ReadBlobByte(image); @@ -1354,7 +1354,7 @@ static Image *ReadPICTImage(const ImageInfo *image_info, if ((tile_image->storage_class == DirectClass) && (pixmap.bits_per_pixel != 16)) { - p+=(pixmap.component_count-1)*tile_image->columns; + p+=(ptrdiff_t) (pixmap.component_count-1)*tile_image->columns; if (p < pixels) break; } @@ -1556,7 +1556,10 @@ static Image *ReadPICTImage(const ImageInfo *image_info, continue; } } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } #endif @@ -2115,6 +2118,7 @@ static MagickBooleanType WritePICTImage(const ImageInfo *image_info, scanline=(unsigned char *) RelinquishMagickMemory(scanline); packed_scanline=(unsigned char *) RelinquishMagickMemory(packed_scanline); buffer=(unsigned char *) RelinquishMagickMemory(buffer); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/pix.c b/coders/pix.c index 9ad2bd5..e0208d4 100644 --- a/coders/pix.c +++ b/coders/pix.c @@ -263,7 +263,8 @@ static Image *ReadPIXImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } while (status != MagickFalse); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); diff --git a/coders/png.c b/coders/png.c index 5e611f4..f5691e9 100644 --- a/coders/png.c +++ b/coders/png.c @@ -1876,8 +1876,6 @@ static int PNGParseiTXt(Image *image,png_byte *data,png_size_t size, (void) FormatLocaleString(key,MagickPathExtent,"%s",(const char *) GetStringInfoDatum(profile)); offset=strlen(key)+1; - (void) FormatLocaleString(key,MagickPathExtent,"png:%s",(const char *) - GetStringInfoDatum(profile)); if (((MagickOffsetType) size-offset) < 1) { profile=DestroyStringInfo(profile); @@ -1995,7 +1993,7 @@ static int read_user_chunk_callback(png_struct *ping, png_unknown_chunkp chunk) if (s[0] == 'E' && s[1] == 'x' && s[2] == 'i' && s[3] == 'f' && s[4] == '\0' && s[5] == '\0') { - s+=6; + s+=(ptrdiff_t) 6; i=6; SetStringInfoLength(profile,chunk->size); p=GetStringInfoDatum(profile); @@ -2062,11 +2060,11 @@ static int read_user_chunk_callback(png_struct *ping, png_unknown_chunkp chunk) /* iTXt */ if ((chunk->name[0] == 105) && (chunk->name[1] == 84) && (chunk->name[2] == 88) && (chunk->name[3] == 116)) - { + { image=(Image *) png_get_user_chunk_ptr(ping); - + error_info=(PNGErrorInfo *) png_get_error_ptr(ping); - + return(PNGParseiTXt(image,chunk->data,chunk->size, error_info->exception)); } @@ -2438,8 +2436,6 @@ static Image *ReadOnePNGImage(MngInfo *mng_info, if (option != (const char *) NULL) png_set_chunk_malloc_max(ping,(png_alloc_size_t) MagickMin( MAGICK_SSIZE_MAX,StringToLong(option))); - else - png_set_chunk_malloc_max(ping,(png_alloc_size_t) GetMaxMemoryRequest()); #endif } #endif /* PNG_SET_USER_LIMITS_SUPPORTED */ @@ -5486,7 +5482,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info, " MNG height: %.20g",(double) mng_info->mng_height); } - p+=8; + p+=(ptrdiff_t) 8; mng_info->ticks_per_second=(size_t) mng_get_long(p); if (mng_info->ticks_per_second == 0) @@ -5500,7 +5496,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info, simplicity=0; /* Skip nominal layer count, frame count, and play time */ - p+=16; + p+=(ptrdiff_t) 16; simplicity=(size_t) mng_get_long(p); mng_type=1; /* Full MNG */ @@ -5904,7 +5900,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info, if (change_delay == 2) default_frame_delay=frame_delay; - p+=4; + p+=(ptrdiff_t) 4; if (logging != MagickFalse) (void) LogMagickEvent(CoderEvent,GetMagickModule(), @@ -5925,7 +5921,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info, if (change_timeout == 2) default_frame_timeout=frame_timeout; - p+=4; + p+=(ptrdiff_t) 4; if (logging != MagickFalse) (void) LogMagickEvent(CoderEvent,GetMagickModule(), @@ -5935,7 +5931,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info, if (change_clipping && ((p-chunk) < (ssize_t) (length-16))) { fb=mng_read_box(previous_fb,(char) p[0],&p[1]); - p+=16; + p+=(ptrdiff_t) 16; previous_fb=fb; if (logging != MagickFalse) @@ -6030,7 +6026,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info, { first_object=(p[0] << 8) | p[1]; last_object=(p[2] << 8) | p[3]; - p+=4; + p+=(ptrdiff_t) 4; for (i=(int) first_object; i <= (int) last_object; i++) { @@ -6108,7 +6104,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info, { first_object=(p[0] << 8) | p[1]; last_object=(p[2] << 8) | p[3]; - p+=4; + p+=(ptrdiff_t) 4; for (i=(ssize_t) first_object; i <= (ssize_t) last_object; i++) { @@ -6734,6 +6730,12 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info, return(DestroyImageList(image)); } + if (exception->severity > ErrorException) + { + (void) CloseBlob(image); + return(DestroyImageList(image)); + } + mng_info->image=image; if (mng_type) @@ -6979,7 +6981,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info, 1,exception); if (q == (PixelPacket *) NULL) break; - q+=(large_image->columns-image->columns); + q+=(ptrdiff_t) (large_image->columns-image->columns); for (x=(ssize_t) image->columns-1; x >= 0; x--) { @@ -8257,6 +8259,75 @@ static void write_tIME_chunk(Image *image,png_struct *ping,png_info *info, } #endif + +static void Magick_png_set_text(png_struct *ping,png_info *ping_info, + MngInfo *mng_info,const ImageInfo *image_info,const char *key, + const char *value) +{ +#if PNG_LIBPNG_VER >= 10600 + const char + *c; + + MagickBooleanType + write_itxt=MagickFalse; +#endif + + int + compresion_none = PNG_TEXT_COMPRESSION_NONE, + compresion_zTXt = PNG_TEXT_COMPRESSION_zTXt; + + png_textp + text; + + size_t + length; + +#if PNG_LIBPNG_VER >= 10600 + /* + Check if the string contains non-Latin1 characters. + */ + c=value; + while (*c != '\0') + { + if (((const unsigned char) *c) > 255) { + write_itxt=MagickTrue; + compresion_none=PNG_ITXT_COMPRESSION_NONE; + compresion_zTXt=PNG_ITXT_COMPRESSION_zTXt; + break; + } + c++; + } +#endif +#if PNG_LIBPNG_VER >= 10400 + text=(png_textp) png_malloc(ping,(png_alloc_size_t) sizeof(png_text)); +#else + text=(png_textp) png_malloc(ping,(png_size_t) sizeof(png_text)); +#endif + if (text == (png_textp) NULL) + return; + (void) memset(text,0,sizeof(png_text)); + text[0].key=(char *) key; + text[0].text=(char *) value; + length=strlen(value); +#if PNG_LIBPNG_VER >= 10600 + if (write_itxt != MagickFalse) + text[0].itxt_length=length; + else +#endif + text[0].text_length=length; + if (mng_info->ping_exclude_tEXt != MagickFalse) + text[0].compression=compresion_zTXt; + else + if (mng_info->ping_exclude_zTXt != MagickFalse) + text[0].compression=compresion_none; + else + text[0].compression=(image_info->compression == NoCompression) || + ((image_info->compression == UndefinedCompression) && + (length < 128)) ? compresion_none : compresion_zTXt; + png_set_text(ping,ping_info,text,1); + png_free(ping,text); +} + /* Write one PNG image */ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info, const ImageInfo *image_info,Image *image) @@ -11617,72 +11688,46 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info, (void) LogMagickEvent(CoderEvent,GetMagickModule(), " PNG Interlace method: %d",ping_interlace_method); } - /* - Generate text chunks after IDAT. - */ if (ping_exclude_tEXt == MagickFalse || ping_exclude_zTXt == MagickFalse) { - ResetImagePropertyIterator(image); - while ((property=GetNextImageProperty(image)) != (const char *) NULL) - { - png_textp - text; - - /* Don't write any "png:" or "jpeg:" properties; those are just for - * "identify" or for passing through to another JPEG - */ - if ((LocaleNCompare(property,"png:",4) == 0 || - LocaleNCompare(property,"jpeg:",5) == 0)) - continue; - /* Suppress density and units if we wrote a pHYs chunk */ - if ((ping_exclude_pHYs == MagickFalse) && ( - ((LocaleCompare(property,"exif:ResolutionUnit") == 0) || - (LocaleCompare(property,"exif:XResolution") == 0) || - (LocaleCompare(property,"exif:YResolution") == 0) || - (LocaleCompare(property,"tiff:ResolutionUnit") == 0) || - (LocaleCompare(property,"tiff:XResolution") == 0) || - (LocaleCompare(property,"tiff:YResolution") == 0) || - (LocaleCompare(property,"density") == 0) || - (LocaleCompare(property,"units") == 0)))) - continue; - /* Suppress the IM-generated date:create and date:modify */ - if ((ping_exclude_date == MagickFalse) && - (LocaleNCompare(property, "date:",5) == 0)) - continue; - value=GetImageProperty(image,property); - if (value == (const char *) NULL) - continue; -#if PNG_LIBPNG_VER >= 10400 - text=(png_textp) png_malloc(ping, - (png_alloc_size_t) sizeof(png_text)); -#else - text=(png_textp) png_malloc(ping,(png_size_t) sizeof(png_text)); -#endif - text[0].key=(char *) property; - text[0].text=(char *) value; - text[0].text_length=strlen(value); - if (ping_exclude_tEXt != MagickFalse) - text[0].compression=PNG_TEXT_COMPRESSION_zTXt; - else if (ping_exclude_zTXt != MagickFalse) - text[0].compression=PNG_TEXT_COMPRESSION_NONE; - else + /* + Generate text chunks after IDAT. + */ + Image *property_image = CloneImage(image,0,0,MagickTrue,&image->exception); + if (property_image != (Image *) NULL) { - text[0].compression=image_info->compression == NoCompression || - (image_info->compression == UndefinedCompression && - text[0].text_length < 128) ? PNG_TEXT_COMPRESSION_NONE : - PNG_TEXT_COMPRESSION_zTXt ; - } - if (logging != MagickFalse) + ResetImagePropertyIterator(property_image); + while ((property=GetNextImageProperty(property_image)) != (const char *) NULL) { - (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " Setting up text chunk"); - - (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " keyword: '%s'",text[0].key); + /* Don't write any "png:" or "jpeg:" properties; those are just for + * "identify" or for passing through to another JPEG + */ + if ((LocaleNCompare(property,"png:",4) == 0 || + LocaleNCompare(property,"jpeg:",5) == 0)) + continue; + /* Suppress density and units if we wrote a pHYs chunk */ + if ((ping_exclude_pHYs == MagickFalse) && ( + ((LocaleCompare(property,"exif:ResolutionUnit") == 0) || + (LocaleCompare(property,"exif:XResolution") == 0) || + (LocaleCompare(property,"exif:YResolution") == 0) || + (LocaleCompare(property,"tiff:ResolutionUnit") == 0) || + (LocaleCompare(property,"tiff:XResolution") == 0) || + (LocaleCompare(property,"tiff:YResolution") == 0) || + (LocaleCompare(property,"density") == 0) || + (LocaleCompare(property,"units") == 0)))) + continue; + /* Suppress the IM-generated date:create and date:modify */ + if ((ping_exclude_date == MagickFalse) && + (LocaleNCompare(property, "date:",5) == 0)) + continue; + value=GetImageProperty(property_image,property); + if (value == (const char *) NULL) + continue; + Magick_png_set_text(ping,ping_info,mng_info,image_info,property, + value); } - png_set_text(ping,ping_info,text,1); - png_free(ping,text); - } + property_image=DestroyImage(property_image); + } } /* write eXIf profile */ @@ -12184,10 +12229,8 @@ static MagickBooleanType WritePNGImage(const ImageInfo *image_info,Image *image) mng_info->write_png_depth = 16; else - (void) ThrowMagickException(&image->exception, - GetMagickModule(),CoderWarning, - "ignoring invalid defined png:bit-depth", - "=%s",value); + (void) ThrowMagickException(&image->exception,GetMagickModule(), + CoderWarning,"ignoring invalid defined png:bit-depth","=%s",value); if (logging != MagickFalse) (void) LogMagickEvent(CoderEvent,GetMagickModule(), @@ -12215,10 +12258,8 @@ static MagickBooleanType WritePNGImage(const ImageInfo *image_info,Image *image) mng_info->write_png_colortype = 7; else - (void) ThrowMagickException(&image->exception, - GetMagickModule(),CoderWarning, - "ignoring invalid defined png:color-type", - "=%s",value); + (void) ThrowMagickException(&image->exception,GetMagickModule(), + CoderWarning,"ignoring invalid defined png:color-type","=%s",value); if (logging != MagickFalse) (void) LogMagickEvent(CoderEvent,GetMagickModule(), @@ -12342,10 +12383,9 @@ static MagickBooleanType WritePNGImage(const ImageInfo *image_info,Image *image) mng_info->write_png_compression_level = 10; else - (void) ThrowMagickException(&image->exception, - GetMagickModule(),CoderWarning, - "ignoring invalid defined png:compression-level", - "=%s",value); + (void) ThrowMagickException(&image->exception,GetMagickModule(), + CoderWarning,"ignoring invalid defined png:compression-level","=%s", + value); } value=GetImageOption(image_info,"png:compression-strategy"); @@ -12377,10 +12417,9 @@ static MagickBooleanType WritePNGImage(const ImageInfo *image_info,Image *image) #endif else - (void) ThrowMagickException(&image->exception, - GetMagickModule(),CoderWarning, - "ignoring invalid defined png:compression-strategy", - "=%s",value); + (void) ThrowMagickException(&image->exception,GetMagickModule(), + CoderWarning,"ignoring invalid defined png:compression-strategy","=%s", + value); } value=GetImageOption(image_info,"png:compression-filter"); @@ -12396,11 +12435,10 @@ static MagickBooleanType WritePNGImage(const ImageInfo *image_info,Image *image) */ mng_info->write_png_compression_filter = StringToUnsignedLong(value)+1; - if (mng_info->write_png_compression_filter > 5) - (void) ThrowMagickException(&image->exception, - GetMagickModule(),CoderWarning, - "ignoring invalid defined png:compression-filter", - "=%s",value); + if (mng_info->write_png_compression_filter > 6) + (void) ThrowMagickException(&image->exception,GetMagickModule(), + CoderWarning,"ignoring invalid defined png:compression-filter","=%s", + value); } for (source=0; source<8; source++) @@ -13107,7 +13145,7 @@ static MagickBooleanType WriteOneJNGImage(MngInfo *mng_info, (((unsigned int) *(p + 1) & 0xff) << 16) + (((unsigned int) *(p + 2) & 0xff) << 8) + (((unsigned int) *(p + 3) & 0xff) ) ; - p+=4; + p+=(ptrdiff_t) 4; if (*(p)==73 && *(p+1)==68 && *(p+2)==65 && *(p+3)==84) /* IDAT */ { @@ -13125,7 +13163,7 @@ static MagickBooleanType WriteOneJNGImage(MngInfo *mng_info, " Skipping %c%c%c%c chunk, length=%.20g.", *(p),*(p+1),*(p+2),*(p+3),(double) len); } - p+=(8+len); + p+=(ptrdiff_t) (8+len); } } else if (length != 0) diff --git a/coders/pnm.c b/coders/pnm.c index e14ad81..ede9693 100644 --- a/coders/pnm.c +++ b/coders/pnm.c @@ -1851,7 +1851,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image) q=pixels; } (void) memcpy((char *) q,buffer,extent); - q+=extent; + q+=(ptrdiff_t) extent; p++; } *q++='\n'; @@ -1927,7 +1927,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image) q=pixels; } (void) memcpy((char *) q,buffer,extent); - q+=extent; + q+=(ptrdiff_t) extent; p++; } *q++='\n'; @@ -2485,6 +2485,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/ps.c b/coders/ps.c index b359de5..e23786d 100644 --- a/coders/ps.c +++ b/coders/ps.c @@ -2221,6 +2221,7 @@ static MagickBooleanType WritePSImage(const ImageInfo *image_info,Image *image) (void) WriteBlobString(image,buffer); } (void) WriteBlobString(image,"%%EOF\n"); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/ps2.c b/coders/ps2.c index e81a6e2..1b0f6ab 100644 --- a/coders/ps2.c +++ b/coders/ps2.c @@ -1125,6 +1125,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image) (void) WriteBlobString(image,buffer); } (void) WriteBlobString(image,"%%EOF\n"); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/ps3.c b/coders/ps3.c index 945aca7..7aae93e 100644 --- a/coders/ps3.c +++ b/coders/ps3.c @@ -1611,6 +1611,7 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image) (void) WriteBlobString(image,buffer); } (void) WriteBlobString(image,"%%EOF\n"); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/psd.c b/coders/psd.c index 31b3b13..c2996fa 100644 --- a/coders/psd.c +++ b/coders/psd.c @@ -767,12 +767,12 @@ static StringInfo *ParseImageResourceBlocks(Image *image, { if (LocaleNCompare((const char *) p,"8BIM",4) != 0) break; - p+=4; + p+=(ptrdiff_t) 4; p=PushShortPixel(MSBEndian,p,&id); p=PushCharPixel(p,&name_length); if ((name_length % 2) == 0) name_length++; - p+=name_length; + p+=(ptrdiff_t) name_length; if (p > (blocks+length-4)) break; p=PushLongPixel(MSBEndian,p,&count); @@ -817,12 +817,12 @@ static StringInfo *ParseImageResourceBlocks(Image *image, { if ((offset > 4) && (*(p+4) == 0)) *has_merged_image=MagickFalse; - p+=offset; + p+=(ptrdiff_t) offset; break; } default: { - p+=offset; + p+=(ptrdiff_t) offset; break; } } @@ -1310,9 +1310,9 @@ static MagickBooleanType ReadPSDChannelZip(Image *image,const size_t channels, } else *(p+1)+=*p; - p+=packet_size; + p+=(ptrdiff_t) packet_size; } - p+=packet_size; + p+=(ptrdiff_t) packet_size; count-=row_size; } } @@ -1325,7 +1325,7 @@ static MagickBooleanType ReadPSDChannelZip(Image *image,const size_t channels, if (status == MagickFalse) break; - p+=row_size; + p+=(ptrdiff_t) row_size; } compact_pixels=(unsigned char *) RelinquishMagickMemory(compact_pixels); @@ -1482,6 +1482,9 @@ static MagickBooleanType ReadPSDLayer(Image *image,const ImageInfo *image_info, (void) FormatLocaleString(message,MaxTextExtent,"%.20g",(double) layer_info->opacity); (void) SetImageArtifact(layer_info->image,"psd:layer.opacity",message); + (void) FormatLocaleString(message,MagickPathExtent,"%.20g",(double) + layer_info->visible); + (void) SetImageArtifact(layer_info->image,"psd:layer.visible",message); (void) SetImageProperty(layer_info->image,"label",(char *) layer_info->name); status=MagickTrue; @@ -2457,7 +2460,10 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception) } profile=DestroyStringInfo(profile); } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -3173,7 +3179,7 @@ static void RemoveICCProfileFromResourceBlock(StringInfo *bim_profile) } break; } - p+=count; + p+=(ptrdiff_t) count; if ((count & 0x01) != 0) p++; } @@ -3227,7 +3233,7 @@ static void RemoveResolutionFromResourceBlock(StringInfo *bim_profile) SetStringInfoLength(bim_profile,length-(cnt+12)); break; } - p+=count; + p+=(ptrdiff_t) count; if ((count & 0x01) != 0) p++; } @@ -3292,7 +3298,7 @@ static const StringInfo *GetAdditionalInformation(const ImageInfo *image_info, while (remaining_length >= 12) { /* skip over signature */ - p+=4; + p+=(ptrdiff_t) 4; key[0]=(char) (*p++); key[1]=(char) (*p++); key[2]=(char) (*p++); @@ -3323,7 +3329,7 @@ static const StringInfo *GetAdditionalInformation(const ImageInfo *image_info, continue; } length+=(size_t) size+12; - p+=size; + p+=(ptrdiff_t) size; } profile=RemoveImageProfile(image,"psd:additional-info"); if (length == 0) @@ -3703,6 +3709,7 @@ static MagickBooleanType WritePSDImage(const ImageInfo *image_info, status=MagickFalse; image->compression=compression; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/raw.c b/coders/raw.c index 799e444..4bdcc4a 100644 --- a/coders/raw.c +++ b/coders/raw.c @@ -292,7 +292,8 @@ static Image *ReadRAWImage(const ImageInfo *image_info,ExceptionInfo *exception) InheritException(exception,&canvas_image->exception); InheritException(exception,&image->exception); canvas_image=DestroyImage(canvas_image); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -618,6 +619,7 @@ static MagickBooleanType WriteRAWImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/rgb.c b/coders/rgb.c index e7258bf..e2323d8 100644 --- a/coders/rgb.c +++ b/coders/rgb.c @@ -732,7 +732,8 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("G",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -804,7 +805,8 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("B",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -878,7 +880,8 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) } if (image->matte != MagickFalse) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("A",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -992,7 +995,8 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) quantum_info=DestroyQuantumInfo(quantum_info); InheritException(&image->exception,&canvas_image->exception); canvas_image=DestroyImage(canvas_image); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1108,7 +1112,7 @@ ModuleExport void UnregisterRGBImage(void) static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,Image *image) { MagickBooleanType - status; + status = MagickTrue; MagickOffsetType scene; @@ -1383,7 +1387,8 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("G",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1409,7 +1414,8 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("B",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1437,7 +1443,8 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,Image *image) } if (quantum_type == RGBAQuantum) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("A",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1485,6 +1492,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/rgf.c b/coders/rgf.c index e06c355..9dec129 100644 --- a/coders/rgf.c +++ b/coders/rgf.c @@ -222,7 +222,10 @@ static Image *ReadRGFImage(const ImageInfo *image_info,ExceptionInfo *exception) } data=(unsigned char *) RelinquishMagickMemory(data); (void) SyncImage(image); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -397,6 +400,7 @@ static MagickBooleanType WriteRGFImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/rla.c b/coders/rla.c index 7fa88a7..d3a15a6 100644 --- a/coders/rla.c +++ b/coders/rla.c @@ -414,7 +414,10 @@ static Image *ReadRLAImage(const ImageInfo *image_info,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } diff --git a/coders/rle.c b/coders/rle.c index 8dfc978..735beaa 100644 --- a/coders/rle.c +++ b/coders/rle.c @@ -353,8 +353,8 @@ static Image *ReadRLEImage(const ImageInfo *image_info,ExceptionInfo *exception) */ number_planes_filled=(number_planes % 2 == 0) ? number_planes : number_planes+1; - if ((number_pixels*number_planes_filled) != (size_t) (number_pixels* - number_planes_filled)) + if ((number_pixels*number_planes_filled) != + (MagickSizeType) (((size_t) number_pixels*number_planes_filled))) ThrowRLEException(ResourceLimitError,"MemoryAllocationFailed"); pixel_info=AcquireVirtualMemory(image->columns,image->rows* MagickMax(number_planes_filled,4)*sizeof(*pixels)); @@ -467,7 +467,7 @@ static Image *ReadRLEImage(const ImageInfo *image_info,ExceptionInfo *exception) if ((y < (ssize_t) image->rows) && ((x+i) < (ssize_t) image->columns)) *p=pixel; - p+=number_planes; + p+=(ptrdiff_t) number_planes; } if (operand & 0x01) (void) ReadBlobByte(image); @@ -499,7 +499,7 @@ static Image *ReadRLEImage(const ImageInfo *image_info,ExceptionInfo *exception) if ((y < (ssize_t) image->rows) && ((x+i) < (ssize_t) image->columns)) *p=pixel; - p+=number_planes; + p+=(ptrdiff_t) number_planes; } x+=operand; break; @@ -716,7 +716,8 @@ static Image *ReadRLEImage(const ImageInfo *image_info,ExceptionInfo *exception) } while ((count != 0) && (memcmp(magick,"\122\314",2) == 0)); if (colormap != (unsigned char *) NULL) colormap=(unsigned char *) RelinquishMagickMemory(colormap); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); diff --git a/coders/scr.c b/coders/scr.c index 7c0c7db..b4cd3b7 100644 --- a/coders/scr.c +++ b/coders/scr.c @@ -248,7 +248,10 @@ static Image *ReadSCRImage(const ImageInfo *image_info,ExceptionInfo *exception) } } } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } diff --git a/coders/sct.c b/coders/sct.c index 66abb4d..e085c6b 100644 --- a/coders/sct.c +++ b/coders/sct.c @@ -133,6 +133,9 @@ static Image *ReadSCTImage(const ImageInfo *image_info,ExceptionInfo *exception) MagickBooleanType status; + MagickSizeType + extent; + MagickRealType height, width; @@ -240,6 +243,13 @@ static Image *ReadSCTImage(const ImageInfo *image_info,ExceptionInfo *exception) InheritException(exception,&image->exception); return(DestroyImageList(image)); } + extent=(MagickSizeType) image->rows*image->columns*separations; + if (extent > GetBlobSize(image)) + { + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); + return(DestroyImageList(image)); + } /* Convert SCT raster image to pixel packets. */ @@ -294,7 +304,8 @@ static Image *ReadSCTImage(const ImageInfo *image_info,ExceptionInfo *exception) if (SyncAuthenticPixels(image,exception) == MagickFalse) break; if ((image->columns % 2) != 0) - (void) ReadBlobByte(image); /* pad */ + if (ReadBlobByte(image) == EOF) /* pad */ + break; } if (i < (ssize_t) separations) break; @@ -306,7 +317,10 @@ static Image *ReadSCTImage(const ImageInfo *image_info,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } diff --git a/coders/sfw.c b/coders/sfw.c index 5220c0d..8fbfdb3 100644 --- a/coders/sfw.c +++ b/coders/sfw.c @@ -285,7 +285,7 @@ static Image *ReadSFWImage(const ImageInfo *image_info,ExceptionInfo *exception) Translate remaining markers. */ offset=header+2; - offset+=(((unsigned int) offset[2]) << 8)+offset[3]+2; + offset+=(((size_t) offset[2]) << 8)+(size_t) offset[3]+2; for ( ; ; ) { if ((offset+4) > (buffer+count-1)) @@ -296,7 +296,7 @@ static Image *ReadSFWImage(const ImageInfo *image_info,ExceptionInfo *exception) TranslateSFWMarker(offset); if (offset[1] == 0xda) break; - offset+=(((unsigned int) offset[2]) << 8)+offset[3]+2; + offset+=(((size_t) offset[2]) << 8)+(size_t) offset[3]+2; } offset--; data=SFWScan(offset,buffer+count-1,(const unsigned char *) "\377\311",2); @@ -326,10 +326,10 @@ static Image *ReadSFWImage(const ImageInfo *image_info,ExceptionInfo *exception) image=DestroyImageList(image); return((Image *) NULL); } - extent=fwrite(header,(size_t) (offset-header+1),1,file); + extent=fwrite(header,1,(size_t) (offset-header+1),file); (void) extent; extent=fwrite(HuffmanTable,1,sizeof(HuffmanTable)/sizeof(*HuffmanTable),file); - extent=fwrite(offset+1,(size_t) (data-offset),1,file); + extent=fwrite(offset+1,1,(size_t) (data-offset),file); status=ferror(file) != 0 ? MagickFalse : MagickTrue; (void) fclose(file); (void) close(unique_file); diff --git a/coders/sgi.c b/coders/sgi.c index 36c50fc..33990d0 100644 --- a/coders/sgi.c +++ b/coders/sgi.c @@ -201,7 +201,7 @@ static MagickBooleanType SGIDecode(const size_t bytes_per_pixel, return(MagickFalse); *q=(*p++); *(q+1)=(*p++); - q+=8; + q+=(ptrdiff_t) 8; } else { @@ -213,7 +213,7 @@ static MagickBooleanType SGIDecode(const size_t bytes_per_pixel, { *q=(unsigned char) (pixel >> 8); *(q+1)=(unsigned char) pixel; - q+=8; + q+=(ptrdiff_t) 8; } } } @@ -236,7 +236,7 @@ static MagickBooleanType SGIDecode(const size_t bytes_per_pixel, if (number_packets-- == 0) return(MagickFalse); *q=(*p++); - q+=4; + q+=(ptrdiff_t) 4; } else { @@ -246,7 +246,7 @@ static MagickBooleanType SGIDecode(const size_t bytes_per_pixel, for ( ; count != 0; count--) { *q=(unsigned char) pixel; - q+=4; + q+=(ptrdiff_t) 4; } } } @@ -390,8 +390,8 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception) */ bytes_per_pixel=(size_t) iris_info.bytes_per_pixel; number_pixels=(MagickSizeType) iris_info.columns*iris_info.rows; - if ((4*bytes_per_pixel*number_pixels) != ((MagickSizeType) (size_t) - (4*bytes_per_pixel*number_pixels))) + if ((4*bytes_per_pixel*number_pixels) != + ((MagickSizeType) ((size_t) (4*bytes_per_pixel*number_pixels)))) ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); pixel_info=AcquireVirtualMemory(iris_info.columns,iris_info.rows*4* bytes_per_pixel*sizeof(*pixels)); @@ -428,13 +428,13 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception) { *p=scanline[2*x]; *(p+1)=scanline[2*x+1]; - p+=8; + p+=(ptrdiff_t) 8; } else for (x=0; x < (ssize_t) iris_info.columns; x++) { *p=scanline[x]; - p+=4; + p+=(ptrdiff_t) 4; } } if (y < (ssize_t) iris_info.rows) @@ -538,7 +538,7 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception) ThrowReaderException(CorruptImageError, "ImproperImageHeader"); } - p+=(iris_info.columns*4*bytes_per_pixel); + p+=(ptrdiff_t) (iris_info.columns*4*bytes_per_pixel); } if (y < (ssize_t) iris_info.rows) break; @@ -581,7 +581,7 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception) } if (z < (ssize_t) iris_info.depth) break; - p+=(iris_info.columns*4*bytes_per_pixel); + p+=(ptrdiff_t) (iris_info.columns*4*bytes_per_pixel); } offset=(ssize_t) SeekBlob(image,position,SEEK_SET); } @@ -617,7 +617,7 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception) if (image->matte != MagickFalse) SetPixelAlpha(q,ScaleShortToQuantum((unsigned short) ((*(p+6) << 8) | (*(p+7))))); - p+=8; + p+=(ptrdiff_t) 8; q++; } if (SyncAuthenticPixels(image,exception) == MagickFalse) @@ -646,7 +646,7 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception) SetPixelOpacity(q,OpaqueOpacity); if (image->matte != MagickFalse) SetPixelAlpha(q,ScaleCharToQuantum(*(p+3))); - p+=4; + p+=(ptrdiff_t) 4; q++; } if (SyncAuthenticPixels(image,exception) == MagickFalse) @@ -687,7 +687,7 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception) quantum=(*p << 8); quantum|=(*(p+1)); SetPixelIndex(indexes+x,quantum); - p+=8; + p+=(ptrdiff_t) 8; q++; } if (SyncAuthenticPixels(image,exception) == MagickFalse) @@ -712,7 +712,7 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception) for (x=0; x < (ssize_t) image->columns; x++) { SetPixelIndex(indexes+x,*p); - p+=4; + p+=(ptrdiff_t) 4; q++; } if (SyncAuthenticPixels(image,exception) == MagickFalse) @@ -759,7 +759,8 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } while (iris_info.magic == 0x01DA); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -873,10 +874,10 @@ static size_t SGIEncode(unsigned char *pixels,size_t length, while (p < limit) { mark=p; - p+=8; + p+=(ptrdiff_t) 8; while ((p < limit) && ((*(p-8) != *(p-4)) || (*(p-4) != *p))) - p+=4; - p-=8; + p+=(ptrdiff_t) 4; + p-=(ptrdiff_t)8; length=(size_t) (p-mark) >> 2; while (length != 0) { @@ -890,9 +891,9 @@ static size_t SGIEncode(unsigned char *pixels,size_t length, } } mark=p; - p+=4; + p+=(ptrdiff_t) 4; while ((p < limit) && (*p == *mark)) - p+=4; + p+=(ptrdiff_t) 4; length=(size_t) (p-mark) >> 2; while (length != 0) { @@ -1048,7 +1049,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image) *q; q=(unsigned char *) pixels; - q+=((iris_info.rows-1)-y)*(4*iris_info.columns)+4*x; + q+=(ptrdiff_t) ((iris_info.rows-1)-y)*(4*iris_info.columns)+4*x; *q++=ScaleQuantumToChar(GetPixelRed(p)); *q++=ScaleQuantumToChar(GetPixelGreen(p)); *q++=ScaleQuantumToChar(GetPixelBlue(p)); @@ -1062,7 +1063,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image) *q; q=(unsigned short *) pixels; - q+=((iris_info.rows-1)-y)*(4*iris_info.columns)+4*x; + q+=(ptrdiff_t) ((iris_info.rows-1)-y)*(4*iris_info.columns)+4*x; *q++=ScaleQuantumToShort(GetPixelRed(p)); *q++=ScaleQuantumToShort(GetPixelGreen(p)); *q++=ScaleQuantumToShort(GetPixelBlue(p)); @@ -1095,7 +1096,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image) *q; q=(unsigned char *) pixels; - q+=y*(4*iris_info.columns)+4*x+z; + q+=(ptrdiff_t) y*(4*iris_info.columns)+4*x+z; (void) WriteBlobByte(image,*q); } else @@ -1105,7 +1106,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image) *q; q=(unsigned short *) pixels; - q+=y*(4*iris_info.columns)+4*x+z; + q+=(ptrdiff_t) y*(4*iris_info.columns)+4*x+z; (void) WriteBlobMSBShort(image,*q); } } @@ -1163,7 +1164,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image) runlength[y+z*iris_info.rows]=(size_t) length; offset+=(ssize_t) length; } - q+=(iris_info.columns*4); + q+=(ptrdiff_t) (iris_info.columns*4); } /* Write out line start and length tables and runlength-encoded pixels. @@ -1190,6 +1191,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/sixel.c b/coders/sixel.c index d9c2cce..f2cc3a2 100644 --- a/coders/sixel.c +++ b/coders/sixel.c @@ -1048,7 +1048,7 @@ static Image *ReadSIXELImage(const ImageInfo *image_info,ExceptionInfo *exceptio continue; if ((*p == '}') && (*(p+1) == ';')) break; - p+=strlen(p); + p+=(ptrdiff_t) strlen(p); offset=p-sixel_buffer; if ((size_t) (offset+MaxTextExtent+1) < length) continue; @@ -1133,7 +1133,10 @@ static Image *ReadSIXELImage(const ImageInfo *image_info,ExceptionInfo *exceptio */ sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels); sixel_palette=(unsigned char *) RelinquishMagickMemory(sixel_palette); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -1372,6 +1375,7 @@ static MagickBooleanType WriteSIXELImage(const ImageInfo *image_info, sixel_palette, image->colors, -1, output); sixel_pixels =(unsigned char *) RelinquishMagickMemory(sixel_pixels); output = (sixel_output_t *) RelinquishMagickMemory(output); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/sun.c b/coders/sun.c index 779f06d..c0a6e8d 100644 --- a/coders/sun.c +++ b/coders/sun.c @@ -654,7 +654,8 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } while (sun_info.magic == 0x59a66a95); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1033,6 +1034,7 @@ static MagickBooleanType WriteSUNImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/svg.c b/coders/svg.c index 514c8df..bd48ede 100644 --- a/coders/svg.c +++ b/coders/svg.c @@ -304,13 +304,14 @@ static Image *RenderSVGImage(const ImageInfo *image_info,Image *image, delegate_info=GetDelegateInfo("svg:decode",(char *) NULL,exception); if (delegate_info == (const DelegateInfo *) NULL) return((Image *) NULL); - status=AcquireUniqueSymbolicLink(image->filename,input_filename); + if (AcquireUniqueSymbolicLink(image->filename,input_filename) == MagickFalse) + return((Image *) NULL); (void) AcquireUniqueFilename(unique); (void) FormatLocaleString(output_filename,MagickPathExtent,"%s.png",unique); - (void) AcquireUniqueFilename(unique); + (void) RelinquishUniqueFileResource(unique); density=AcquireString(""); (void) FormatLocaleString(density,MagickPathExtent,"%.20g", - ceil(sqrt(image->x_resolution*image->y_resolution)-0.5)); + sqrt(image->x_resolution*image->y_resolution)); (void) FormatLocaleString(background,MagickPathExtent, "rgb(%.20g%%,%.20g%%,%.20g%%)", 100.0*QuantumScale*(MagickRealType) image->background_color.red, @@ -321,12 +322,11 @@ static Image *RenderSVGImage(const ImageInfo *image_info,Image *image, image->background_color.opacity)); (void) FormatLocaleString(command,MagickPathExtent, GetDelegateCommands(delegate_info),input_filename,output_filename,density, - background,opacity,unique); + background,opacity); density=DestroyString(density); status=ExternalDelegateCommand(MagickFalse,image_info->verbose,command, (char *) NULL,exception); - (void) RelinquishUniqueFileResource(unique); - (void) RelinquishUniqueFileResource(input_filename); + (void) (unique); if ((status == 0) && (stat(output_filename,&attributes) == 0) && (attributes.st_size > 0)) { @@ -441,21 +441,27 @@ static Image *RenderRSVGImage(const ImageInfo *image_info,Image *image, rsvg_handle_set_base_uri(svg_handle,image_info->filename); if ((fabs(image->x_resolution) > MagickEpsilon) && (fabs(image->y_resolution) > MagickEpsilon)) - rsvg_handle_set_dpi_x_y(svg_handle,image->x_resolution, - image->y_resolution); + rsvg_handle_set_dpi_x_y(svg_handle,image->x_resolution,image->y_resolution); while ((n=ReadBlob(image,MagickMaxBufferExtent-1,buffer)) != 0) { buffer[n]='\0'; error=(GError *) NULL; (void) rsvg_handle_write(svg_handle,buffer,n,&error); if (error != (GError *) NULL) - g_error_free(error); + { + g_error_free(error); + break; + } } buffer=(unsigned char *) RelinquishMagickMemory(buffer); error=(GError *) NULL; rsvg_handle_close(svg_handle,&error); if (error != (GError *) NULL) - g_error_free(error); + { + g_error_free(error); + g_object_unref(svg_handle); + ThrowReaderException(CorruptImageError,"UnableToReadImageData"); + } #if defined(MAGICKCORE_CAIRO_DELEGATE) apply_density=MagickTrue; rsvg_handle_get_dimensions(svg_handle,&dimension_info); @@ -547,8 +553,7 @@ static Image *RenderRSVGImage(const ImageInfo *image_info,Image *image, if (pixel_info == (MemoryInfo *) NULL) { g_object_unref(svg_handle); - ThrowReaderException(ResourceLimitError, - "MemoryAllocationFailed"); + ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info); #endif @@ -606,10 +611,10 @@ static Image *RenderRSVGImage(const ImageInfo *image_info,Image *image, gamma=1.0-QuantumScale*(MagickRealType) fill_color.opacity; gamma=PerceptibleReciprocal(gamma); - fill_color.blue=(Quantum) ((MagickRealType) fill_color.red*gamma); + fill_color.red=(Quantum) ((MagickRealType) fill_color.red*gamma); fill_color.green=(Quantum) ((MagickRealType) fill_color.green* gamma); - fill_color.red=(Quantum) ((MagickRealType) fill_color.blue*gamma); + fill_color.blue=(Quantum) ((MagickRealType) fill_color.blue*gamma); } #endif MagickCompositeOver(&fill_color,fill_color.opacity,q, @@ -975,7 +980,7 @@ static void SVGStripString(const MagickBooleanType trim,char *message) for ( ; *p != '\0'; p++) if ((*p == '*') && (*(p+1) == '/')) { - p+=2; + p+=(ptrdiff_t) 2; break; } if (*p == '\0') @@ -1903,7 +1908,7 @@ static void SVGStartElement(void *context,const xmlChar *name, (void) FormatLocaleFile(svg_info->file,"fill-opacity 1\n"); (void) FormatLocaleFile(svg_info->file,"stroke \"none\"\n"); (void) FormatLocaleFile(svg_info->file,"stroke-width 1\n"); - (void) FormatLocaleFile(svg_info->file,"stroke-opacity 1\n"); + (void) FormatLocaleFile(svg_info->file,"stroke-opacity 0\n"); (void) FormatLocaleFile(svg_info->file,"fill-rule nonzero\n"); break; } @@ -3979,6 +3984,9 @@ static MagickBooleanType IsPoint(const char *point) static MagickBooleanType TraceSVGImage(Image *image,ExceptionInfo *exception) { + MagickBooleanType + status = MagickTrue; + #if defined(MAGICKCORE_AUTOTRACE_DELEGATE) { at_bitmap @@ -4054,7 +4062,8 @@ static MagickBooleanType TraceSVGImage(Image *image,ExceptionInfo *exception) char *base64, filename[MaxTextExtent], - message[MaxTextExtent]; + message[MaxTextExtent], + *p; const DelegateInfo *delegate_info; @@ -4065,12 +4074,6 @@ static MagickBooleanType TraceSVGImage(Image *image,ExceptionInfo *exception) ImageInfo *image_info; - MagickBooleanType - status; - - char - *p; - size_t blob_length, encode_length; @@ -4138,7 +4141,7 @@ static MagickBooleanType TraceSVGImage(Image *image,ExceptionInfo *exception) { (void) FormatLocaleString(message,MaxTextExtent,"%.76s",p); (void) WriteBlobString(image,message); - p+=76; + p+=(ptrdiff_t) 76; if (i > 76) (void) WriteBlobString(image,"\n"); } @@ -4147,8 +4150,9 @@ static MagickBooleanType TraceSVGImage(Image *image,ExceptionInfo *exception) (void) WriteBlobString(image,"\n"); } #endif - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image) @@ -5295,6 +5299,7 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image) token=DestroyString(token); if (primitive_info != (PrimitiveInfo *) NULL) primitive_info=(PrimitiveInfo *) RelinquishMagickMemory(primitive_info); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/tga.c b/coders/tga.c index 6337566..35cf418 100644 --- a/coders/tga.c +++ b/coders/tga.c @@ -472,7 +472,7 @@ static Image *ReadTGAImage(const ImageInfo *image_info,ExceptionInfo *exception) if (q == (PixelPacket *) NULL) break; if (flip_x != MagickFalse) - q+=(image->columns-1); + q+=(ptrdiff_t) (image->columns-1); indexes=GetAuthenticIndexQueue(image); for (x=0; x < (ssize_t) image->columns; x++) { @@ -658,7 +658,10 @@ static Image *ReadTGAImage(const ImageInfo *image_info,ExceptionInfo *exception) } } } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -939,12 +942,27 @@ static MagickBooleanType WriteTGAImage(const ImageInfo *image_info,Image *image) else tga_info.colormap_size=24; } - if ((image->orientation == BottomRightOrientation) || - (image->orientation == TopRightOrientation)) - tga_info.attributes|=(1UL << 4); - if ((image->orientation == TopLeftOrientation) || - (image->orientation == TopRightOrientation)) - tga_info.attributes|=(1UL << 5); + switch (image->orientation) + { + case BottomRightOrientation: + { + tga_info.attributes|=0x10; + break; + } + case UndefinedOrientation: + case TopLeftOrientation: + { + tga_info.attributes|=0x20; + break; + } + case TopRightOrientation: + { + tga_info.attributes|=0x30; + break; + } + default: + break; + } value=GetImageArtifact(image,"tga:image-origin"); /* deprecated */ if (value != (const char *) NULL) { @@ -1063,7 +1081,7 @@ static MagickBooleanType WriteTGAImage(const ImageInfo *image_info,Image *image) if (i < 3) { count+=i; - p+=i; + p+=(ptrdiff_t) i; indexes+=i; } if ((i >= 3) || (count == 128) || @@ -1085,7 +1103,7 @@ static MagickBooleanType WriteTGAImage(const ImageInfo *image_info,Image *image) { (void) WriteBlobByte(image,(unsigned char) ((i-1) | 0x80)); WriteTGAPixel(image,tga_info.image_type,indexes,p,range,midpoint); - p+=i; + p+=(ptrdiff_t) i; indexes+=i; } x+=i; @@ -1112,6 +1130,7 @@ static MagickBooleanType WriteTGAImage(const ImageInfo *image_info,Image *image) break; } } - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/thumbnail.c b/coders/thumbnail.c index 41b7e69..b36a084 100644 --- a/coders/thumbnail.c +++ b/coders/thumbnail.c @@ -186,11 +186,11 @@ static MagickBooleanType WriteTHUMBNAILImage(const ImageInfo *image_info, profile=GetImageProfile(image,"exif"); if (profile == (const StringInfo *) NULL) ThrowWriterException(CoderError,"ImageDoesNotHaveAThumbnail"); - property=GetImageProperty(image,"exif:JPEGInterchangeFormat"); + property=GetImageProperty(image,"exif:thumbnail:JPEGInterchangeFormat"); if (property == (const char *) NULL) ThrowWriterException(CoderError,"ImageDoesNotHaveAThumbnail"); offset=(ssize_t) StringToLong(property); - property=GetImageProperty(image,"exif:JPEGInterchangeFormatLength"); + property=GetImageProperty(image,"exif:thumbnail:JPEGInterchangeFormatLength"); if (property == (const char *) NULL) ThrowWriterException(CoderError,"ImageDoesNotHaveAThumbnail"); length=(size_t) StringToLong(property); diff --git a/coders/tiff.c b/coders/tiff.c index fc16369..949a6de 100644 --- a/coders/tiff.c +++ b/coders/tiff.c @@ -91,9 +91,6 @@ #include "magick/utility.h" #include "psd-private.h" #if defined(MAGICKCORE_TIFF_DELEGATE) -# if defined(MAGICKCORE_HAVE_TIFFCONF_H) -# include -# endif # include # include # if !defined(COMPRESSION_ADOBE_DEFLATE) @@ -302,9 +299,8 @@ static Image *ReadGROUP4Image(const ImageInfo *image_info, size_t length; - ssize_t - offset, - strip_offset; + TIFF + *tiff; /* Open image file. @@ -323,76 +319,71 @@ static Image *ReadGROUP4Image(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } + (void) SetMagickThreadValue(tiff_exception,exception); /* Write raw CCITT Group 4 wrapped as a TIFF image file. */ - file=(FILE *) NULL; + file=(FILE *) NULL; unique_file=AcquireUniqueFileResource(filename); if (unique_file != -1) file=fdopen(unique_file,"wb"); if ((unique_file == -1) || (file == (FILE *) NULL)) ThrowImageException(FileOpenError,"UnableToCreateTemporaryFile"); - length=fwrite("\111\111\052\000\010\000\000\000\016\000",1,10,file); - if (length != 10) - ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile"); - length=fwrite("\376\000\003\000\001\000\000\000\000\000\000\000",1,12,file); - length=fwrite("\000\001\004\000\001\000\000\000",1,8,file); - length=WriteLSBLong(file,(unsigned int) image->columns); - length=fwrite("\001\001\004\000\001\000\000\000",1,8,file); - length=WriteLSBLong(file,(unsigned int) image->rows); - length=fwrite("\002\001\003\000\001\000\000\000\001\000\000\000",1,12,file); - length=fwrite("\003\001\003\000\001\000\000\000\004\000\000\000",1,12,file); - length=fwrite("\006\001\003\000\001\000\000\000\000\000\000\000",1,12,file); - length=fwrite("\021\001\003\000\001\000\000\000",1,8,file); - strip_offset=10+(12*14)+4+8; - length=WriteLSBLong(file,(unsigned int) strip_offset); - length=fwrite("\022\001\003\000\001\000\000\000",1,8,file); - length=WriteLSBLong(file,(unsigned int) image_info->orientation); - length=fwrite("\025\001\003\000\001\000\000\000\001\000\000\000",1,12,file); - length=fwrite("\026\001\004\000\001\000\000\000",1,8,file); - length=WriteLSBLong(file,(unsigned int) image->rows); - length=fwrite("\027\001\004\000\001\000\000\000\000\000\000\000",1,12,file); - offset=(ssize_t) ftell(file)-4; - length=fwrite("\032\001\005\000\001\000\000\000",1,8,file); - length=WriteLSBLong(file,(unsigned int) (strip_offset-8)); - length=fwrite("\033\001\005\000\001\000\000\000",1,8,file); - length=WriteLSBLong(file,(unsigned int) (strip_offset-8)); - length=fwrite("\050\001\003\000\001\000\000\000\002\000\000\000",1,12,file); - length=fwrite("\000\000\000\000",1,4,file); - length=WriteLSBLong(file,(unsigned int) image->x_resolution); - length=WriteLSBLong(file,1); - status=MagickTrue; - for (length=0; (c=ReadBlobByte(image)) != EOF; length++) - if (fputc(c,file) != c) - status=MagickFalse; - offset=(ssize_t) fseek(file,(off_t) offset,SEEK_SET); - length=WriteLSBLong(file,(unsigned int) length); - if (ferror(file) != 0) + tiff=TIFFOpen(filename,"w"); + if (tiff == (TIFF *) NULL) { - (void) fclose(file); + (void) RelinquishUniqueFileResource(filename); ThrowImageException(FileOpenError,"UnableToCreateTemporaryFile"); } - (void) fclose(file); + TIFFSetField(tiff,TIFFTAG_IMAGEWIDTH,(uint32) image->columns); + TIFFSetField(tiff,TIFFTAG_IMAGELENGTH,(uint32) image->rows); + TIFFSetField(tiff,TIFFTAG_BITSPERSAMPLE,1); + TIFFSetField(tiff,TIFFTAG_SAMPLESPERPIXEL,1); + TIFFSetField(tiff,TIFFTAG_PHOTOMETRIC,PHOTOMETRIC_MINISBLACK); + TIFFSetField(tiff,TIFFTAG_ORIENTATION,ORIENTATION_TOPLEFT); + TIFFSetField(tiff,TIFFTAG_COMPRESSION,COMPRESSION_CCITTFAX4); + TIFFSetField(tiff,TIFFTAG_ROWSPERSTRIP,(uint32) image->rows); + if ((image->x_resolution > 0.0) && (image->y_resolution > 0.0)) + { + if (image->units == PixelsPerCentimeterResolution) + TIFFSetField(tiff,TIFFTAG_RESOLUTIONUNIT,RESUNIT_CENTIMETER); + else + TIFFSetField(tiff,TIFFTAG_RESOLUTIONUNIT,RESUNIT_INCH); + TIFFSetField(tiff,TIFFTAG_XRESOLUTION,(uint32) image->x_resolution); + TIFFSetField(tiff,TIFFTAG_YRESOLUTION,(uint32) image->y_resolution); + } + status=MagickTrue; + c=ReadBlobByte(image); + for (length=0; c != EOF; length++) + { + unsigned char byte = (unsigned char) c; + if (TIFFWriteRawStrip(tiff,0,&byte,1) < 0) + { + status=MagickFalse; + break; + } + c=ReadBlobByte(image); + } + TIFFSetField(tiff,TIFFTAG_STRIPBYTECOUNTS,(uint32) length); + TIFFClose(tiff); (void) CloseBlob(image); image=DestroyImage(image); /* Read TIFF image. */ read_info=CloneImageInfo((ImageInfo *) NULL); - (void) FormatLocaleString(read_info->filename,MaxTextExtent,"%s",filename); + (void) FormatLocaleString(read_info->filename,MagickPathExtent,"%s",filename); image=ReadTIFFImage(read_info,exception); read_info=DestroyImageInfo(read_info); if (image != (Image *) NULL) { (void) CopyMagickString(image->filename,image_info->filename, - MaxTextExtent); + MagickPathExtent); (void) CopyMagickString(image->magick_filename,image_info->filename, - MaxTextExtent); - (void) CopyMagickString(image->magick,"GROUP4",MaxTextExtent); + MagickPathExtent); + (void) CopyMagickString(image->magick,"GROUP4",MagickPathExtent); } (void) RelinquishUniqueFileResource(filename); - if (status == MagickFalse) - image=DestroyImage(image); return(image); } #endif @@ -489,24 +480,19 @@ static MagickBooleanType DecodeLabImage(Image *image,ExceptionInfo *exception) return(status); } -static MagickBooleanType ReadProfile(Image *image,const char *name, +static void ReadProfile(Image *image,const char *name, const unsigned char *datum,ssize_t length) { - MagickBooleanType - status; - StringInfo *profile; if (length < 4) - return(MagickFalse); + return; profile=BlobToStringInfo(datum,(size_t) length); if (profile == (StringInfo *) NULL) - ThrowBinaryImageException(ResourceLimitError,"MemoryAllocationFailed", - image->filename); - status=SetImageProfile(image,name,profile); + return; + (void) SetImageProfile(image,name,profile); profile=DestroyStringInfo(profile); - return(status); } #if defined(__cplusplus) || defined(c_plusplus) @@ -548,27 +534,23 @@ static toff_t TIFFGetBlobSize(thandle_t image) return((toff_t) GetBlobSize((Image *) image)); } -static MagickBooleanType TIFFGetProfiles(TIFF *tiff,Image *image) +static void TIFFGetProfiles(TIFF *tiff,Image *image) { - MagickBooleanType - status; - uint32 length = 0; unsigned char *profile = (unsigned char *) NULL; - status=MagickTrue; #if defined(TIFFTAG_ICCPROFILE) if ((TIFFGetField(tiff,TIFFTAG_ICCPROFILE,&length,&profile) == 1) && (profile != (unsigned char *) NULL)) - status=ReadProfile(image,"icc",profile,(ssize_t) length); + ReadProfile(image,"icc",profile,(ssize_t) length); #endif #if defined(TIFFTAG_PHOTOSHOP) if ((TIFFGetField(tiff,TIFFTAG_PHOTOSHOP,&length,&profile) == 1) && (profile != (unsigned char *) NULL)) - status=ReadProfile(image,"8bim",profile,(ssize_t) length); + ReadProfile(image,"8bim",profile,(ssize_t) length); #endif #if defined(TIFFTAG_RICHTIFFIPTC) && (TIFFLIB_VERSION >= 20191103) if ((TIFFGetField(tiff,TIFFTAG_RICHTIFFIPTC,&length,&profile) == 1) && @@ -580,13 +562,13 @@ static MagickBooleanType TIFFGetProfiles(TIFF *tiff,Image *image) field=TIFFFieldWithTag(tiff,TIFFTAG_RICHTIFFIPTC); if ((field != (const TIFFField *) NULL) && (TIFFFieldDataType(field) == TIFF_LONG)) - status=ReadProfile(image,"iptc",profile,length); - else { if (TIFFIsByteSwapped(tiff) != 0) - TIFFSwabArrayOfLong((uint32 *) profile,(size_t) length); - status=ReadProfile(image,"iptc",profile,4L*length); + TIFFSwabArrayOfLong((uint32 *) profile,(tmsize_t) length); + ReadProfile(image,"iptc",profile,4L*length); } + else + ReadProfile(image,"iptc",profile,length); } #endif #if defined(TIFFTAG_XMLPACKET) @@ -596,7 +578,7 @@ static MagickBooleanType TIFFGetProfiles(TIFF *tiff,Image *image) StringInfo *dng; - status=ReadProfile(image,"xmp",profile,(ssize_t) length); + ReadProfile(image,"xmp",profile,(ssize_t) length); dng=BlobToStringInfo(profile,length); if (dng != (StringInfo *) NULL) { @@ -611,11 +593,10 @@ static MagickBooleanType TIFFGetProfiles(TIFF *tiff,Image *image) #endif if ((TIFFGetField(tiff,34118,&length,&profile) == 1) && (profile != (unsigned char *) NULL)) - status=ReadProfile(image,"tiff:34118",profile,(ssize_t) length); + ReadProfile(image,"tiff:34118",profile,(ssize_t) length); if ((TIFFGetField(tiff,37724,&length,&profile) == 1) && (profile != (unsigned char *) NULL)) - status=ReadProfile(image,"tiff:37724",profile,(ssize_t) length); - return(status); + ReadProfile(image,"tiff:37724",profile,(ssize_t) length); } static MagickBooleanType TIFFGetProperties(TIFF *tiff,Image *image) @@ -766,7 +747,6 @@ static MagickBooleanType TIFFSetImageProperties(TIFF *tiff,Image *image, static MagickBooleanType TIFFGetEXIFProperties(TIFF *tiff,Image *image) { -#if defined(MAGICKCORE_HAVE_TIFFREADEXIFDIRECTORY) MagickBooleanType status; @@ -795,16 +775,11 @@ static MagickBooleanType TIFFGetEXIFProperties(TIFF *tiff,Image *image) status=TIFFSetImageProperties(tiff,image,"exif:"); TIFFSetDirectory(tiff,directory); return(status); -#else - (void) tiff; - (void) image; - return(MagickTrue); -#endif } static MagickBooleanType TIFFGetGPSProperties(TIFF *tiff,Image *image) { -#if defined(MAGICKCORE_HAVE_TIFFREADGPSDIRECTORY) +#if (TIFFLIB_VERSION >= 20210416) MagickBooleanType status; @@ -834,9 +809,8 @@ static MagickBooleanType TIFFGetGPSProperties(TIFF *tiff,Image *image) TIFFSetDirectory(tiff,directory); return(status); #else - (void) tiff; - (void) image; - return(MagickTrue); + magick_unreferenced(tiff); + magick_unreferenced(image); #endif } @@ -1236,10 +1210,8 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, do { /* TIFFPrintDirectory(tiff,stdout,MagickFalse); */ - photometric=PHOTOMETRIC_RGB; if ((TIFFGetField(tiff,TIFFTAG_IMAGEWIDTH,&width) != 1) || (TIFFGetField(tiff,TIFFTAG_IMAGELENGTH,&height) != 1) || - (TIFFGetFieldDefaulted(tiff,TIFFTAG_PHOTOMETRIC,&photometric,sans) != 1) || (TIFFGetFieldDefaulted(tiff,TIFFTAG_COMPRESSION,&compress_tag,sans) != 1) || (TIFFGetFieldDefaulted(tiff,TIFFTAG_FILLORDER,&endian,sans) != 1) || (TIFFGetFieldDefaulted(tiff,TIFFTAG_PLANARCONFIG,&interlace,sans) != 1) || @@ -1258,15 +1230,15 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, TIFFClose(tiff); ThrowReaderException(CorruptImageError,"UnsupportedBitsPerPixel"); } - tiff_status=TIFFGetFieldDefaulted(tiff,TIFFTAG_EXTRASAMPLES,&extra_samples, - &sample_info,sans); - if ((samples_per_pixel+extra_samples) > MaxPixelChannels) + if (samples_per_pixel > MaxPixelChannels) { TIFFClose(tiff); ThrowReaderException(CorruptImageError,"MaximumChannelsExceeded"); } if (sample_format == SAMPLEFORMAT_IEEEFP) (void) SetImageProperty(image,"quantum:format","floating-point"); + if (TIFFGetField(tiff,TIFFTAG_PHOTOMETRIC,&photometric) != 1) + photometric=PHOTOMETRIC_RGB; switch (photometric) { case PHOTOMETRIC_MINISBLACK: @@ -1351,7 +1323,6 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, image->endian=MSBEndian; if (endian == FILLORDER_LSB2MSB) image->endian=LSBEndian; -#if defined(MAGICKCORE_HAVE_TIFFISBIGENDIAN) if (TIFFIsBigEndian(tiff) == 0) { (void) SetImageProperty(image,"tiff:endian","lsb"); @@ -1362,7 +1333,6 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, (void) SetImageProperty(image,"tiff:endian","msb"); image->endian=MSBEndian; } -#endif if ((photometric == PHOTOMETRIC_MINISBLACK) || (photometric == PHOTOMETRIC_MINISWHITE)) image->colorspace=GRAYColorspace; @@ -1374,13 +1344,7 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, (compress_tag != COMPRESSION_OJPEG) && (compress_tag != COMPRESSION_JPEG)) image->colorspace=YCbCrColorspace; - status=TIFFGetProfiles(tiff,image); - if (status == MagickFalse) - { - TIFFClose(tiff); - InheritException(exception,&image->exception); - return(DestroyImageList(image)); - } + TIFFGetProfiles(tiff,image); status=TIFFGetProperties(tiff,image); if (status == MagickFalse) { @@ -1439,14 +1403,12 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, image->chromaticity.blue_primary.y=chromaticity[5]; } } -#if defined(MAGICKCORE_HAVE_TIFFISCODECCONFIGURED) || (TIFFLIB_VERSION > 20040919) if ((compress_tag != COMPRESSION_NONE) && (TIFFIsCODECConfigured(compress_tag) == 0)) { TIFFClose(tiff); ThrowReaderException(CoderError,"CompressNotSupported"); } -#endif switch (compress_tag) { case COMPRESSION_NONE: image->compression=NoCompression; break; @@ -1611,37 +1573,49 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, } tiff_status=TIFFGetFieldDefaulted(tiff,TIFFTAG_EXTRASAMPLES,&extra_samples, &sample_info,sans); - if (tiff_status == 1) + if (extra_samples == 0) { - (void) SetImageProperty(image,"tiff:alpha","unspecified"); - if (extra_samples == 0) - { - if ((samples_per_pixel == 4) && (photometric == PHOTOMETRIC_RGB)) + if ((samples_per_pixel == 4) && (photometric == PHOTOMETRIC_RGB)) + image->matte=MagickTrue; + } + else + { + for (i=0; i < extra_samples; i++) + { + if (sample_info[i] == EXTRASAMPLE_ASSOCALPHA) + { image->matte=MagickTrue; - } - else - for (i=0; i < extra_samples; i++) - { - image->matte=MagickTrue; - if (sample_info[i] == EXTRASAMPLE_ASSOCALPHA) + SetQuantumAlphaType(quantum_info,AssociatedQuantumAlpha); + (void) SetImageProperty(image,"tiff:alpha","associated"); + break; + } + else + if (sample_info[i] == EXTRASAMPLE_UNASSALPHA) { - SetQuantumAlphaType(quantum_info,AssociatedQuantumAlpha); - (void) SetImageProperty(image,"tiff:alpha","associated"); + image->matte=MagickTrue; + SetQuantumAlphaType(quantum_info,DisassociatedQuantumAlpha); + (void) SetImageProperty(image,"tiff:alpha","unassociated"); break; } - else - if (sample_info[i] == EXTRASAMPLE_UNASSALPHA) - { - SetQuantumAlphaType(quantum_info,DisassociatedQuantumAlpha); - (void) SetImageProperty(image,"tiff:alpha","unassociated"); - break; - } + } + if ((image->matte == MagickFalse) && (extra_samples >= 1)) + { + const char + *option; + + option=GetImageOption(image_info,"tiff:assume-alpha"); + if (IsStringTrue(option) != MagickFalse) + image->matte=MagickTrue; } if (image->matte != MagickFalse) extra_samples--; } if (image->matte != MagickFalse) - (void) SetImageAlphaChannel(image,OpaqueAlphaChannel); + { + if (quantum_info->alpha_type == UndefinedQuantumAlpha) + (void) SetImageProperty(image,"tiff:alpha","unspecified"); + (void) SetImageAlphaChannel(image,OpaqueAlphaChannel); + } method=ReadGenericMethod; rows_per_strip=(uint32) image->rows; if (TIFFGetField(tiff,TIFFTAG_ROWSPERSTRIP,&rows_per_strip) == 1) @@ -1678,7 +1652,11 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, if (image->compression == JPEGCompression) method=GetJPEGMethod(image,tiff,photometric,bits_per_sample, samples_per_pixel); +#if defined(WORDS_BIGENDIAN) + quantum_info->endian=MSBEndian; +#else quantum_info->endian=LSBEndian; +#endif scanline_size=TIFFScanlineSize(tiff); if (scanline_size <= 0) ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); @@ -1698,382 +1676,395 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, quantum_type=IndexQuantum; if (interlace != PLANARCONFIG_SEPARATE) { - size_t + ssize_t pad; - pad=(size_t) MagickMax((ssize_t) samples_per_pixel-1,0); - if (image->matte != MagickFalse) - { - if (image->storage_class == PseudoClass) - quantum_type=IndexAlphaQuantum; - else - quantum_type=samples_per_pixel == 1 ? AlphaQuantum : - GrayAlphaQuantum; - } + pad=(ssize_t) samples_per_pixel; if (samples_per_pixel > 2) { if (image->colorspace == CMYKColorspace) { + pad-=4; quantum_type=CMYKQuantum; - pad=(size_t) MagickMax((ssize_t) samples_per_pixel+ - extra_samples-4,0); if (image->matte != MagickFalse) { + pad--; quantum_type=CMYKAQuantum; - pad=(size_t) MagickMax((ssize_t) samples_per_pixel+ - extra_samples-5,0); } } - else if (image->matte != MagickFalse) - { - quantum_type=RGBAQuantum; - pad=(size_t) MagickMax((ssize_t) samples_per_pixel+ - extra_samples-4,0); - } else { + pad-=3; quantum_type=RGBQuantum; - pad=(size_t) MagickMax((ssize_t) samples_per_pixel+ - extra_samples-3,0); + if (image->matte != MagickFalse) + { + pad--; + quantum_type=RGBAQuantum; + } } - status=SetQuantumPad(image,quantum_info,pad*((bits_per_sample+7) >> - 3)); + } + else + { + pad--; + if (image->matte != MagickFalse) + { + if (samples_per_pixel == 1) + quantum_type=AlphaQuantum; + else + { + pad--; + if (image->storage_class == PseudoClass) + quantum_type=IndexAlphaQuantum; + else + quantum_type=GrayAlphaQuantum; + } + } + } + if (pad < 0) + ThrowTIFFException(CorruptImageError,"CorruptImage"); + if (pad > 0) + { + status=SetQuantumPad(image,quantum_info,(size_t) pad* + ((bits_per_sample+7) >> 3)); if (status == MagickFalse) ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); } } - switch (method) - { - case ReadYCCKMethod: + if (exception->severity < ErrorException) + switch (method) { - /* - Convert YCC TIFF image. - */ - for (y=0; y < (ssize_t) image->rows; y++) + case ReadYCCKMethod: { - int - status; + /* + Convert YCC TIFF image. + */ + for (y=0; y < (ssize_t) image->rows; y++) + { + int + status; - IndexPacket - *indexes; + IndexPacket + *indexes; - PixelPacket - *magick_restrict q; + PixelPacket + *magick_restrict q; - ssize_t - x; + ssize_t + x; - unsigned char - *p; + unsigned char + *p; - status=TIFFReadPixels(tiff,0,y,(char *) pixels); - if (status == -1) - break; - q=QueueAuthenticPixels(image,0,y,image->columns,1,exception); - if (q == (PixelPacket *) NULL) - break; - indexes=GetAuthenticIndexQueue(image); - p=pixels; - for (x=0; x < (ssize_t) image->columns; x++) - { - SetPixelCyan(q,ScaleCharToQuantum(ClampYCC((double) *p+ - (1.402*(double) *(p+2))-179.456))); - SetPixelMagenta(q,ScaleCharToQuantum(ClampYCC((double) *p- - (0.34414*(double) *(p+1))-(0.71414*(double ) *(p+2))+ - 135.45984))); - SetPixelYellow(q,ScaleCharToQuantum(ClampYCC((double) *p+ - (1.772*(double) *(p+1))-226.816))); - SetPixelBlack(indexes+x,ScaleCharToQuantum((unsigned char)*(p+3))); - q++; - p+=4; - } - if (SyncAuthenticPixels(image,exception) == MagickFalse) - break; - if (image->previous == (Image *) NULL) + status=TIFFReadPixels(tiff,0,y,(char *) pixels); + if (status == -1) + break; + q=QueueAuthenticPixels(image,0,y,image->columns,1,exception); + if (q == (PixelPacket *) NULL) + break; + indexes=GetAuthenticIndexQueue(image); + p=pixels; + for (x=0; x < (ssize_t) image->columns; x++) { - status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y, - image->rows); - if (status == MagickFalse) - break; + SetPixelCyan(q,ScaleCharToQuantum(ClampYCC((double) *p+ + (1.402*(double) *(p+2))-179.456))); + SetPixelMagenta(q,ScaleCharToQuantum(ClampYCC((double) *p- + (0.34414*(double) *(p+1))-(0.71414*(double ) *(p+2))+ + 135.45984))); + SetPixelYellow(q,ScaleCharToQuantum(ClampYCC((double) *p+ + (1.772*(double) *(p+1))-226.816))); + SetPixelBlack(indexes+x,ScaleCharToQuantum((unsigned char)* + (p+3))); + q++; + p+=(ptrdiff_t) 4; } + if (SyncAuthenticPixels(image,exception) == MagickFalse) + break; + if (image->previous == (Image *) NULL) + { + status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y, + image->rows); + if (status == MagickFalse) + break; + } + } + break; } - break; - } - case ReadStripMethod: - { - size_t - extent, - length; + case ReadStripMethod: + { + size_t + extent, + length; - ssize_t - stride, - strip_id; + ssize_t + stride, + strip_id; + + tsize_t + strip_size; - tsize_t - strip_size; + unsigned char + *p, + *strip_pixels; + + /* + Convert stripped TIFF image. + */ + strip_size=TIFFStripSize(tiff); + stride=(ssize_t) TIFFVStripSize(tiff,1); + length=GetQuantumExtent(image,quantum_info,quantum_type); + extent=MagickMax((size_t) strip_size,(size_t) rows_per_strip* + MagickMax((size_t) stride,(size_t) length)); + strip_pixels=(unsigned char *) AcquireQuantumMemory(extent, + sizeof(*strip_pixels)); + if (strip_pixels == (unsigned char *) NULL) + ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); + (void) memset(strip_pixels,0,extent*sizeof(*strip_pixels)); + strip_id=0; + p=strip_pixels; + for (i=0; i < (ssize_t) samples_per_pixel; i++) + { + size_t + rows_remaining; - unsigned char - *p, - *strip_pixels; + tmsize_t + size = 0; - /* - Convert stripped TIFF image. - */ - strip_size=TIFFStripSize(tiff); - stride=(ssize_t) TIFFVStripSize(tiff,1); - length=GetQuantumExtent(image,quantum_info,quantum_type); - extent=MagickMax((size_t) strip_size,(size_t) rows_per_strip* - MagickMax((size_t) stride,(size_t) length)); - strip_pixels=(unsigned char *) AcquireQuantumMemory(extent, - sizeof(*strip_pixels)); - if (strip_pixels == (unsigned char *) NULL) - ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); - (void) memset(strip_pixels,0,extent*sizeof(*strip_pixels)); - strip_id=0; - p=strip_pixels; - for (i=0; i < (ssize_t) samples_per_pixel; i++) + switch (i) + { + case 0: break; + case 1: quantum_type=GreenQuantum; break; + case 2: quantum_type=BlueQuantum; break; + case 3: + { + quantum_type=AlphaQuantum; + if (image->colorspace == CMYKColorspace) + quantum_type=BlackQuantum; + break; + } + case 4: quantum_type=AlphaQuantum; break; + default: break; + } + rows_remaining=0; + for (y=0; y < (ssize_t) image->rows; y++) + { + PixelPacket + *magick_restrict q; + + q=GetAuthenticPixels(image,0,y,image->columns,1,exception); + if (q == (PixelPacket *) NULL) + break; + if (rows_remaining == 0) + { + size=TIFFReadEncodedStrip(tiff,strip_id,strip_pixels, + strip_size); + (void) size; + if (strip_size == -1) + break; + rows_remaining=rows_per_strip; + p=strip_pixels; + strip_id++; + } + (void) ImportQuantumPixels(image,(CacheView *) NULL, + quantum_info,quantum_type,p,exception); + p+=(ptrdiff_t) stride; + rows_remaining--; + if (SyncAuthenticPixels(image,exception) == MagickFalse) + break; + if (image->previous == (Image *) NULL) + { + status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) + y,image->rows); + if (status == MagickFalse) + break; + } + } + if ((size == -1) || ((samples_per_pixel > 1) && + (interlace != PLANARCONFIG_SEPARATE))) + break; + } + strip_pixels=(unsigned char *) RelinquishMagickMemory(strip_pixels); + break; + } + case ReadTileMethod: { size_t - rows_remaining; + extent, + length; + + ssize_t + stride; tmsize_t - size = 0; + tile_size; - switch (i) + uint32 + columns, + rows; + + unsigned char + *p, + *tile_pixels; + + /* + Convert tiled TIFF image. + */ + if ((TIFFGetField(tiff,TIFFTAG_TILEWIDTH,&columns) != 1) || + (TIFFGetField(tiff,TIFFTAG_TILELENGTH,&rows) != 1)) + ThrowTIFFException(CoderError,"ImageIsNotTiled"); + number_pixels=(MagickSizeType) columns*rows; + if (HeapOverflowSanityCheck(rows,sizeof(*tile_pixels)) != MagickFalse) + ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); + tile_size=TIFFTileSize(tiff); + stride=(ssize_t) TIFFTileRowSize(tiff); + length=GetQuantumExtent(image,quantum_info,quantum_type); + extent=(size_t) MagickMax((size_t) tile_size,rows* + MagickMax((size_t) stride,length)); + tile_pixels=(unsigned char *) AcquireQuantumMemory(extent, + sizeof(*tile_pixels)); + if (tile_pixels == (unsigned char *) NULL) + ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); + (void) memset(tile_pixels,0,extent*sizeof(*tile_pixels)); + for (i=0; i < (ssize_t) samples_per_pixel; i++) { - case 0: break; - case 1: quantum_type=GreenQuantum; break; - case 2: quantum_type=BlueQuantum; break; - case 3: + switch (i) { - quantum_type=AlphaQuantum; - if (image->colorspace == CMYKColorspace) - quantum_type=BlackQuantum; - break; + case 0: break; + case 1: quantum_type=GreenQuantum; break; + case 2: quantum_type=BlueQuantum; break; + case 3: + { + quantum_type=AlphaQuantum; + if (image->colorspace == CMYKColorspace) + quantum_type=BlackQuantum; + break; + } + case 4: quantum_type=AlphaQuantum; break; + default: break; } - case 4: quantum_type=AlphaQuantum; break; - default: break; - } - rows_remaining=0; - for (y=0; y < (ssize_t) image->rows; y++) - { - PixelPacket - *magick_restrict q; + for (y=0; y < (ssize_t) image->rows; y+=rows) + { + ssize_t + x; - q=GetAuthenticPixels(image,0,y,image->columns,1,exception); - if (q == (PixelPacket *) NULL) - break; - if (rows_remaining == 0) + size_t + rows_remaining; + + rows_remaining=image->rows-y; + if ((ssize_t) (y+rows) < (ssize_t) image->rows) + rows_remaining=rows; + for (x=0; x < (ssize_t) image->columns; x+=columns) { - size=TIFFReadEncodedStrip(tiff,strip_id,strip_pixels, - strip_size); - (void) size; - if (strip_size == -1) + size_t + columns_remaining, + row; + + columns_remaining=image->columns-x; + if ((ssize_t) (x+columns) < (ssize_t) image->columns) + columns_remaining=columns; + tiff_status=TIFFReadTile(tiff,tile_pixels,(uint32) x,(uint32) y, + 0,i); + if (tiff_status == -1) break; - rows_remaining=rows_per_strip; - p=strip_pixels; - strip_id++; + p=tile_pixels; + for (row=0; row < rows_remaining; row++) + { + PixelPacket + *magick_restrict q; + + q=GetAuthenticPixels(image,x,y+row,columns_remaining,1, + exception); + if (q == (PixelPacket *) NULL) + break; + (void) ImportQuantumPixels(image,(CacheView *) NULL, + quantum_info,quantum_type,p,exception); + p+=(ptrdiff_t) TIFFTileRowSize(tiff); + if (SyncAuthenticPixels(image,exception) == MagickFalse) + break; + } } - (void) ImportQuantumPixels(image,(CacheView *) NULL, - quantum_info,quantum_type,p,exception); - p+=stride; - rows_remaining--; - if (SyncAuthenticPixels(image,exception) == MagickFalse) + } + if ((samples_per_pixel > 1) && (interlace != PLANARCONFIG_SEPARATE)) break; if (image->previous == (Image *) NULL) { - status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y, - image->rows); + status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) i, + samples_per_pixel); if (status == MagickFalse) break; } } - if ((size == -1) || ((samples_per_pixel > 1) && - (interlace != PLANARCONFIG_SEPARATE))) - break; + tile_pixels=(unsigned char *) RelinquishMagickMemory(tile_pixels); + break; } - strip_pixels=(unsigned char *) RelinquishMagickMemory(strip_pixels); - break; - } - case ReadTileMethod: - { - size_t - extent, - length; - - ssize_t - stride; - - tmsize_t - tile_size; - - uint32 - columns, - rows; + case ReadGenericMethod: + default: + { + MemoryInfo + *generic_info = (MemoryInfo *) NULL; - unsigned char - *p, - *tile_pixels; + uint32 + *p; - /* - Convert tiled TIFF image. - */ - if ((TIFFGetField(tiff,TIFFTAG_TILEWIDTH,&columns) != 1) || - (TIFFGetField(tiff,TIFFTAG_TILELENGTH,&rows) != 1)) - ThrowTIFFException(CoderError,"ImageIsNotTiled"); - number_pixels=(MagickSizeType) columns*rows; - if (HeapOverflowSanityCheck(rows,sizeof(*tile_pixels)) != MagickFalse) - ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); - tile_size=TIFFTileSize(tiff); - stride=(ssize_t) TIFFTileRowSize(tiff); - length=GetQuantumExtent(image,quantum_info,quantum_type); - extent=(size_t) MagickMax((size_t) tile_size,rows* - MagickMax((size_t) stride,length)); - tile_pixels=(unsigned char *) AcquireQuantumMemory(extent, - sizeof(*tile_pixels)); - if (tile_pixels == (unsigned char *) NULL) - ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); - (void) memset(tile_pixels,0,extent*sizeof(*tile_pixels)); - for (i=0; i < (ssize_t) samples_per_pixel; i++) - { - switch (i) - { - case 0: break; - case 1: quantum_type=GreenQuantum; break; - case 2: quantum_type=BlueQuantum; break; - case 3: + uint32 + *pixels; + + /* + Convert generic TIFF image. + */ + if (HeapOverflowSanityCheck(image->rows,sizeof(*pixels)) != MagickFalse) + ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); + number_pixels=(MagickSizeType) image->columns*image->rows; + generic_info=AcquireVirtualMemory(number_pixels,sizeof(*pixels)); + if (generic_info == (MemoryInfo *) NULL) + ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); + pixels=(uint32 *) GetVirtualMemoryBlob(generic_info); + tiff_status=TIFFReadRGBAImage(tiff,(uint32) image->columns,(uint32) + image->rows,(uint32 *) pixels,0); + if (tiff_status == -1) { - quantum_type=AlphaQuantum; - if (image->colorspace == CMYKColorspace) - quantum_type=BlackQuantum; + generic_info=RelinquishVirtualMemory(generic_info); break; } - case 4: quantum_type=AlphaQuantum; break; - default: break; - } - for (y=0; y < (ssize_t) image->rows; y+=rows) + p=pixels+(image->columns*image->rows)-1; + for (y=0; y < (ssize_t) image->rows; y++) { ssize_t x; - size_t - rows_remaining; + PixelPacket + *magick_restrict q; - rows_remaining=image->rows-y; - if ((ssize_t) (y+rows) < (ssize_t) image->rows) - rows_remaining=rows; - for (x=0; x < (ssize_t) image->columns; x+=columns) + q=QueueAuthenticPixels(image,0,y,image->columns,1,exception); + if (q == (PixelPacket *) NULL) + break; + q+=(ptrdiff_t) image->columns-1; + for (x=0; x < (ssize_t) image->columns; x++) { - size_t - columns_remaining, - row; - - columns_remaining=image->columns-x; - if ((ssize_t) (x+columns) < (ssize_t) image->columns) - columns_remaining=columns; - tiff_status=TIFFReadTile(tiff,tile_pixels,(uint32) x,(uint32) y, - 0,i); - if (tiff_status == -1) - break; - p=tile_pixels; - for (row=0; row < rows_remaining; row++) + SetPixelRed(q,ScaleCharToQuantum((unsigned char) TIFFGetR(*p))); + SetPixelGreen(q,ScaleCharToQuantum((unsigned char) TIFFGetG(*p))); + SetPixelBlue(q,ScaleCharToQuantum((unsigned char) TIFFGetB(*p))); + if (image->matte == MagickFalse) + SetPixelOpacity(q,OpaqueOpacity); + else + SetPixelAlpha(q,ScaleCharToQuantum((unsigned char) + TIFFGetA(*p))); + p--; + q--; + } + if (SyncAuthenticPixels(image,exception) == MagickFalse) + break; + if (image->previous == (Image *) NULL) { - PixelPacket - *magick_restrict q; - - q=GetAuthenticPixels(image,x,y+row,columns_remaining,1, - exception); - if (q == (PixelPacket *) NULL) - break; - (void) ImportQuantumPixels(image,(CacheView *) NULL, - quantum_info,quantum_type,p,exception); - p+=TIFFTileRowSize(tiff); - if (SyncAuthenticPixels(image,exception) == MagickFalse) + status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y, + image->rows); + if (status == MagickFalse) break; } - } } - if ((samples_per_pixel > 1) && (interlace != PLANARCONFIG_SEPARATE)) - break; - if (image->previous == (Image *) NULL) - { - status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) i, - samples_per_pixel); - if (status == MagickFalse) - break; - } - } - tile_pixels=(unsigned char *) RelinquishMagickMemory(tile_pixels); - break; - } - case ReadGenericMethod: - default: - { - MemoryInfo - *generic_info = (MemoryInfo *) NULL; - - uint32 - *p; - - uint32 - *pixels; - - /* - Convert generic TIFF image. - */ - if (HeapOverflowSanityCheck(image->rows,sizeof(*pixels)) != MagickFalse) - ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); - number_pixels=(MagickSizeType) image->columns*image->rows; - generic_info=AcquireVirtualMemory(number_pixels,sizeof(*pixels)); - if (generic_info == (MemoryInfo *) NULL) - ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed"); - pixels=(uint32 *) GetVirtualMemoryBlob(generic_info); - tiff_status=TIFFReadRGBAImage(tiff,(uint32) image->columns,(uint32) - image->rows,(uint32 *) pixels,0); - if (tiff_status == -1) - { - generic_info=RelinquishVirtualMemory(generic_info); - break; - } - p=pixels+(image->columns*image->rows)-1; - for (y=0; y < (ssize_t) image->rows; y++) - { - ssize_t - x; - - PixelPacket - *magick_restrict q; - - q=QueueAuthenticPixels(image,0,y,image->columns,1,exception); - if (q == (PixelPacket *) NULL) - break; - q+=image->columns-1; - for (x=0; x < (ssize_t) image->columns; x++) - { - SetPixelRed(q,ScaleCharToQuantum((unsigned char) TIFFGetR(*p))); - SetPixelGreen(q,ScaleCharToQuantum((unsigned char) TIFFGetG(*p))); - SetPixelBlue(q,ScaleCharToQuantum((unsigned char) TIFFGetB(*p))); - if (image->matte == MagickFalse) - SetPixelOpacity(q,OpaqueOpacity); - else - SetPixelAlpha(q,ScaleCharToQuantum((unsigned char) TIFFGetA(*p))); - p--; - q--; - } - if (SyncAuthenticPixels(image,exception) == MagickFalse) - break; - if (image->previous == (Image *) NULL) - { - status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y, - image->rows); - if (status == MagickFalse) - break; - } + generic_info=RelinquishVirtualMemory(generic_info); + break; } - generic_info=RelinquishVirtualMemory(generic_info); - break; } - } pixel_info=RelinquishVirtualMemory(pixel_info); SetQuantumImageType(image,quantum_type); next_tiff_frame: @@ -2155,7 +2146,6 @@ static Image *ReadTIFFImage(const ImageInfo *image_info, */ #if defined(MAGICKCORE_TIFF_DELEGATE) -#if defined(MAGICKCORE_HAVE_TIFFMERGEFIELDINFO) && defined(MAGICKCORE_HAVE_TIFFSETTAGEXTENDER) static TIFFExtendProc tag_extender = (TIFFExtendProc) NULL; @@ -2253,7 +2243,6 @@ static void TIFFTagExtender(TIFF *tiff) TIFFIgnoreTags(tiff); } #endif -#endif ModuleExport size_t RegisterTIFFImage(void) { @@ -2313,10 +2302,8 @@ ModuleExport size_t RegisterTIFFImage(void) ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed"); error_handler=TIFFSetErrorHandler(TIFFErrors); warning_handler=TIFFSetWarningHandler(TIFFWarnings); -#if defined(MAGICKCORE_HAVE_TIFFMERGEFIELDINFO) && defined(MAGICKCORE_HAVE_TIFFSETTAGEXTENDER) if (tag_extender == (TIFFExtendProc) NULL) tag_extender=TIFFSetTagExtender(TIFFTagExtender); -#endif instantiate_key=MagickTrue; } UnlockSemaphoreInfo(tiff_semaphore); @@ -2445,12 +2432,10 @@ ModuleExport void UnregisterTIFFImage(void) LockSemaphoreInfo(tiff_semaphore); if (instantiate_key != MagickFalse) { - if (DeleteMagickThreadKey(tiff_exception) == MagickFalse) - ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed"); -#if defined(MAGICKCORE_HAVE_TIFFMERGEFIELDINFO) && defined(MAGICKCORE_HAVE_TIFFSETTAGEXTENDER) if (tag_extender == (TIFFExtendProc) NULL) (void) TIFFSetTagExtender(tag_extender); -#endif + if (DeleteMagickThreadKey(tiff_exception) == MagickFalse) + ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed"); (void) TIFFSetWarningHandler(warning_handler); (void) TIFFSetErrorHandler(error_handler); instantiate_key=MagickFalse; @@ -2624,7 +2609,8 @@ static MagickBooleanType WriteGROUP4Image(const ImageInfo *image_info, huffman_image=DestroyImage(huffman_image); (void) fclose(file); (void) RelinquishUniqueFileResource(filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } #endif @@ -3281,6 +3267,8 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info, (void) SetImageDepth(image,1); } image->depth=1; + if (image->matte != MagickFalse) + compression=UndefinedCompression; break; } case JPEGCompression: @@ -3391,7 +3379,6 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info, break; } } -#if defined(MAGICKCORE_HAVE_TIFFISCODECCONFIGURED) || (TIFFLIB_VERSION > 20040919) if ((compress_tag != COMPRESSION_NONE) && (TIFFIsCODECConfigured(compress_tag) == 0)) { @@ -3400,40 +3387,6 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info, MagickCompressOptions,(ssize_t) compression)); compress_tag=COMPRESSION_NONE; } -#else - switch (compress_tag) - { -#if defined(CCITT_SUPPORT) - case COMPRESSION_CCITTFAX3: - case COMPRESSION_CCITTFAX4: -#endif -#if defined(YCBCR_SUPPORT) && defined(JPEG_SUPPORT) - case COMPRESSION_JPEG: -#endif -#if defined(LZMA_SUPPORT) && defined(COMPRESSION_LZMA) - case COMPRESSION_LZMA: -#endif -#if defined(LZW_SUPPORT) - case COMPRESSION_LZW: -#endif -#if defined(PACKBITS_SUPPORT) - case COMPRESSION_PACKBITS: -#endif -#if defined(ZIP_SUPPORT) - case COMPRESSION_ADOBE_DEFLATE: -#endif - case COMPRESSION_NONE: - break; - default: - { - (void) ThrowMagickException(&image->exception,GetMagickModule(), - CoderError,"CompressionNotSupported","`%s'",CommandOptionToMnemonic( - MagickCompressOptions,(ssize_t) compression)); - compress_tag=COMPRESSION_NONE; - break; - } - } -#endif if (image->colorspace == CMYKColorspace) { photometric=PHOTOMETRIC_SEPARATED; @@ -3590,42 +3543,44 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info, (void) TIFFSetField(tiff,TIFFTAG_JPEGQUALITY,image_info->quality); (void) TIFFSetField(tiff,TIFFTAG_JPEGCOLORMODE,JPEGCOLORMODE_RAW); if (IssRGBCompatibleColorspace(image->colorspace) != MagickFalse) + (void) TIFFSetField(tiff,TIFFTAG_JPEGCOLORMODE,JPEGCOLORMODE_RGB); + if (IsYCbCrCompatibleColorspace(image->colorspace) != MagickFalse) { const char + *sampling_factor, *value; - (void) TIFFSetField(tiff,TIFFTAG_JPEGCOLORMODE,JPEGCOLORMODE_RGB); - if (IsYCbCrCompatibleColorspace(image->colorspace) != MagickFalse) - { - const char - *sampling_factor; - - GeometryInfo - geometry_info; + GeometryInfo + geometry_info; - MagickStatusType - flags; + MagickStatusType + flags; - sampling_factor=(const char *) NULL; - value=GetImageProperty(image,"jpeg:sampling-factor"); - if (value != (char *) NULL) - { - sampling_factor=value; - if (image->debug != MagickFalse) - (void) LogMagickEvent(CoderEvent,GetMagickModule(), - " Input sampling-factors=%s",sampling_factor); - } - if (image_info->sampling_factor != (char *) NULL) - sampling_factor=image_info->sampling_factor; - if (sampling_factor != (const char *) NULL) - { - flags=ParseGeometry(sampling_factor,&geometry_info); - if ((flags & SigmaValue) == 0) - geometry_info.sigma=geometry_info.rho; - (void) TIFFSetField(tiff,TIFFTAG_YCBCRSUBSAMPLING,(uint16) - geometry_info.rho,(uint16) geometry_info.sigma); - } - } + sampling_factor=(const char *) NULL; + value=GetImageOption(image_info,"jpeg:sampling-factor"); + if (value == (char *) NULL) + value=GetImageProperty(image,"jpeg:sampling-factor"); + if (value != (char *) NULL) + { + sampling_factor=value; + if (image->debug != MagickFalse) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), + " Input sampling-factors=%s",sampling_factor); + } + if (image_info->sampling_factor != (char *) NULL) + sampling_factor=image_info->sampling_factor; + if (sampling_factor != (const char *) NULL) + { + flags=ParseGeometry(sampling_factor,&geometry_info); + if ((flags & SigmaValue) == 0) + geometry_info.sigma=geometry_info.rho; + /* + To do: write pixel data in YCBCR subsampled format. + + (void) TIFFSetField(tiff,TIFFTAG_YCBCRSUBSAMPLING,(uint16) + geometry_info.rho,(uint16) geometry_info.sigma); + */ + } } (void) TIFFGetFieldDefaulted(tiff,TIFFTAG_BITSPERSAMPLE, &bits_per_sample,sans); @@ -4091,6 +4046,8 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); + if (TIFFFlush(tiff) != 1) + status=MagickFalse; TIFFClose(tiff); return(status); } diff --git a/coders/tim.c b/coders/tim.c index 4f23801..ac0380f 100644 --- a/coders/tim.c +++ b/coders/tim.c @@ -432,7 +432,8 @@ static Image *ReadTIMImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } while (tim_info.id == 0x00000010); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); diff --git a/coders/ttf.c b/coders/ttf.c index 113313d..ed03a65 100644 --- a/coders/ttf.c +++ b/coders/ttf.c @@ -291,7 +291,10 @@ static Image *ReadTTFImage(const ImageInfo *image_info,ExceptionInfo *exception) */ (void) RelinquishUniqueFileResource(draw_info->font); draw_info=DestroyDrawInfo(draw_info); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } #endif /* MAGICKCORE_FREETYPE_DELEGATE */ diff --git a/coders/txt.c b/coders/txt.c index 99a8696..c2a556c 100644 --- a/coders/txt.c +++ b/coders/txt.c @@ -353,7 +353,8 @@ static Image *ReadTEXTImage(const ImageInfo *image_info, if (texture != (Image *) NULL) texture=DestroyImageList(texture); draw_info=DestroyDrawInfo(draw_info); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -874,6 +875,7 @@ static MagickBooleanType WriteTXTImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/uil.c b/coders/uil.c index d754382..6e351d6 100644 --- a/coders/uil.c +++ b/coders/uil.c @@ -380,6 +380,7 @@ static MagickBooleanType WriteUILImage(const ImageInfo *image_info,Image *image) break; } symbol=DestroyString(symbol); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/url.c b/coders/url.c index 42d0521..2facd69 100644 --- a/coders/url.c +++ b/coders/url.c @@ -124,7 +124,7 @@ static void GetFTPData(void *userdata,const char *data,int size) return; if (size <= 0) return; - length=fwrite(data,size,1,file); + length=fwrite(data,1,size,file); (void) length; } #endif @@ -263,7 +263,7 @@ static Image *ReadURLImage(const ImageInfo *image_info,ExceptionInfo *exception) count; while ((bytes=xmlNanoHTTPRead(context,buffer,MaxBufferExtent)) > 0) - count=(ssize_t) fwrite(buffer,bytes,1,file); + count=(ssize_t) fwrite(buffer,1,bytes,file); (void) count; xmlNanoHTTPClose(context); xmlFree(type); diff --git a/coders/uyvy.c b/coders/uyvy.c index a2f54bc..b8ce897 100644 --- a/coders/uyvy.c +++ b/coders/uyvy.c @@ -185,7 +185,10 @@ static Image *ReadUYVYImage(const ImageInfo *image_info, if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -365,6 +368,7 @@ static MagickBooleanType WriteUYVYImage(const ImageInfo *image_info, break; } uyvy_image=DestroyImage(uyvy_image); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/vicar.c b/coders/vicar.c index fa2d69b..c1d319e 100644 --- a/coders/vicar.c +++ b/coders/vicar.c @@ -331,7 +331,10 @@ static Image *ReadVICARImage(const ImageInfo *image_info, if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -504,6 +507,7 @@ static MagickBooleanType WriteVICARImage(const ImageInfo *image_info, break; } quantum_info=DestroyQuantumInfo(quantum_info); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/video.c b/coders/video.c index 6c7a260..cf964f4 100644 --- a/coders/video.c +++ b/coders/video.c @@ -257,19 +257,21 @@ static Image *ReadVIDEOImage(const ImageInfo *image_info, GetDelegateCommands(delegate_info),read_info->filename,options, read_info->unique); options=DestroyString(options); - (void) CopyMagickString(read_info->magick,intermediate_format, - MagickPathExtent); - (void) CopyMagickString(read_info->filename,read_info->unique, - MagickPathExtent); exit_code=ExternalDelegateCommand(MagickFalse,image_info->verbose, command,message,exception); + (void) RelinquishUniqueFileResource(read_info->filename); if (exit_code == 0) - images=ReadImage(read_info,exception); + { + (void) CopyMagickString(read_info->magick,intermediate_format, + MagickPathExtent); + (void) CopyMagickString(read_info->filename,read_info->unique, + MagickPathExtent); + images=ReadImage(read_info,exception); + } else if (*message != '\0') (void) ThrowMagickException(exception,GetMagickModule(),DelegateError, "VideoDelegateFailed","`%s'",message); - (void) RelinquishUniqueFileResource(read_info->filename); (void) RelinquishUniqueFileResource(read_info->unique); if (images != (Image *) NULL) for (next=images; next != (Image *) NULL; next=next->next) diff --git a/coders/viff.c b/coders/viff.c index fc279a7..9b1888c 100644 --- a/coders/viff.c +++ b/coders/viff.c @@ -789,7 +789,8 @@ static Image *ReadVIFFImage(const ImageInfo *image_info, break; } } while ((count != 0) && (viff_info.identifier == 0xab)); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1271,6 +1272,7 @@ static MagickBooleanType WriteVIFFImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/vips.c b/coders/vips.c index 07cae5c..ba4b144 100644 --- a/coders/vips.c +++ b/coders/vips.c @@ -523,7 +523,8 @@ static Image *ReadVIPSImage(const ImageInfo *image_info, SetImageProperty(image,"vips:metadata",metadata); metadata=(char *) RelinquishMagickMemory(metadata); } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return((Image *) NULL); return(image); @@ -760,6 +761,7 @@ static MagickBooleanType WriteVIPSImage(const ImageInfo *image_info, metadata=GetImageProperty(image,"vips:metadata"); if (metadata != (const char*) NULL) WriteBlobString(image,metadata); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/wbmp.c b/coders/wbmp.c index 632c15f..92ddb8d 100644 --- a/coders/wbmp.c +++ b/coders/wbmp.c @@ -228,7 +228,10 @@ static Image *ReadWBMPImage(const ImageInfo *image_info, if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -423,6 +426,7 @@ static MagickBooleanType WriteWBMPImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/webp.c b/coders/webp.c index ad5af6e..75e0d6e 100644 --- a/coders/webp.c +++ b/coders/webp.c @@ -163,6 +163,19 @@ static inline uint32_t ReadWebPLSBWord( return(value); } +static inline void WriteWebPLSBWord(unsigned char *magick_restrict data, + const size_t value) +{ + unsigned char + *p; + + p=data; + *(p++)=(unsigned char) value; + *(p++)=(unsigned char) (value >> 8); + *(p++)=(unsigned char) (value >> 16); + *(p++)=(unsigned char) (value >> 24); +} + static MagickBooleanType IsWEBPImageLossless(const unsigned char *stream, const size_t length) { @@ -521,6 +534,7 @@ static Image *ReadWEBPImage(const ImageInfo *image_info, status; size_t + blob_size, length; ssize_t @@ -566,8 +580,17 @@ static Image *ReadWEBPImage(const ImageInfo *image_info, length=(size_t) (ReadWebPLSBWord(header+4)+8); if (length < 12) ThrowWEBPException(CorruptImageError,"CorruptImage"); - if ((MagickSizeType) length > GetBlobSize(image)) - ThrowWEBPException(CorruptImageError,"InsufficientImageDataInFile"); + blob_size=(size_t) GetBlobSize(image); + if (length > blob_size) + { + size_t + delta = length-blob_size; + + if ((delta != 12) && (delta != (12 + 8))) + ThrowWEBPException(CorruptImageError,"InsufficientImageDataInFile"); + length-=delta; + WriteWebPLSBWord(header+4,length-8); + } stream=(unsigned char *) AcquireQuantumMemory(length,sizeof(*stream)); if (stream == (unsigned char *) NULL) ThrowWEBPException(ResourceLimitError,"MemoryAllocationFailed"); @@ -1148,10 +1171,13 @@ static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info, if (WebPConfigInit(&configure) == 0) ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile"); if (image->quality != UndefinedCompressionQuality) + { + configure.quality=(float) image->quality; #if WEBP_ENCODER_ABI_VERSION >= 0x020e configure.near_lossless=(float) image->quality; #endif - if (image->quality >= 100) + } + if (image->quality >= 100) configure.lossless=1; SetBooleanOption(image_info,"webp:lossless",&configure.lossless); value=GetImageOption(image_info,"webp:image-hint"); @@ -1176,8 +1202,7 @@ static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info, &configure.alpha_compression); SetIntegerOption(image_info,"webp:alpha-filtering", &configure.alpha_filtering); - SetIntegerOption(image_info,"webp:alpha-quality", - &configure.alpha_quality); + SetIntegerOption(image_info,"webp:alpha-quality",&configure.alpha_quality); SetIntegerOption(image_info,"webp:filter-strength", &configure.filter_strength); SetIntegerOption(image_info,"webp:filter-sharpness", @@ -1213,15 +1238,38 @@ static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info, ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile"); #if defined(MAGICKCORE_WEBPMUX_DELEGATE) { + Image + *next; + WebPData webp_data; memset(&webp_data,0,sizeof(webp_data)); - if ((image_info->adjoin != MagickFalse) && - (GetPreviousImageInList(image) == (Image *) NULL) && - (GetNextImageInList(image) != (Image *) NULL)) - status=WriteAnimatedWEBPImage(image_info,image,&configure,&webp_data, - &image->exception); + next=GetNextImageInList(image); + if ((next != (Image *) NULL) && (image_info->adjoin != MagickFalse)) + { + Image + *coalesce_image=(Image *) NULL;; + + while (next != (Image *) NULL) + { + if ((next->rows != image->rows) || (next->columns != image->columns)) + { + coalesce_image=CoalesceImages(image,&image->exception); + break; + } + next=GetNextImageInList(next); + } + if (coalesce_image != (Image *) NULL) + { + status=WriteAnimatedWEBPImage(image_info,coalesce_image,&configure, + &webp_data,&image->exception); + (void) DestroyImageList(coalesce_image); + } + else + status=WriteAnimatedWEBPImage(image_info,image,&configure,&webp_data, + &image->exception); + } else { WebPMemoryWriterInit(&writer); @@ -1249,7 +1297,8 @@ static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info, (void) WriteBlob(image,writer.size,writer.mem); WebPMemoryWriterClear(&writer); #endif - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } #endif diff --git a/coders/wpg.c b/coders/wpg.c index 77dc9d3..ed7f2f8 100644 --- a/coders/wpg.c +++ b/coders/wpg.c @@ -1105,6 +1105,8 @@ static Image *ReadWPGImage(const ImageInfo *image_info, assert(exception->signature == MagickCoreSignature); one=1; image=AcquireImage(image_info); + image->columns=0; + image->rows=0; image->depth=8; status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -1998,6 +2000,7 @@ static MagickBooleanType WriteWPGImage(const ImageInfo *image_info,Image *image) (void) WriteBlobLSBShort(image,offset & 0xffff); if (y < (ssize_t) image->rows) ThrowWriterException(CorruptImageError,"UnableToWriteImageData"); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; return(status); } diff --git a/coders/xbm.c b/coders/xbm.c index c367a2c..da1958a 100644 --- a/coders/xbm.c +++ b/coders/xbm.c @@ -177,37 +177,37 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception) Image *image; + IndexPacket + *indexes; + int c; + + long + height, + width; + MagickBooleanType status; - IndexPacket - *indexes; - - ssize_t - i, - x; + MagickOffsetType + offset; PixelPacket *q; - unsigned char - *p; - - long - height, - width; - short int hex_digits[256]; ssize_t + i, + x, y; unsigned char - *data; + *data, + *p; unsigned int bit, @@ -261,18 +261,20 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception) Scan until hex digits. */ version=11; + offset=TellBlob(image); while (ReadBlobString(image,buffer) != (char *) NULL) { if (sscanf(buffer,"static short %1024s = {",name) == 1) version=10; + else if (sscanf(buffer,"static unsigned char %s = {",name) == 1) + version=11; + else if (sscanf(buffer,"static char %1024s = {",name) == 1) + version=11; else - if (sscanf(buffer,"static unsigned char %s = {",name) == 1) - version=11; - else - if (sscanf(buffer,"static char %1024s = {",name) == 1) - version=11; - else - continue; + { + offset=TellBlob(image); + continue; + } p=(unsigned char *) strrchr(name,'_'); if (p == (unsigned char *) NULL) p=(unsigned char *) name; @@ -306,6 +308,9 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception) InheritException(exception,&image->exception); return(DestroyImageList(image)); } + p=(unsigned char *) strrchr(buffer,'{'); + if (p != (unsigned char *) NULL) + (void) SeekBlob(image,offset+((char *) p-buffer)+1,SEEK_SET); /* Initialize hex values. */ @@ -413,7 +418,10 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception) } data=(unsigned char *) RelinquishMagickMemory(data); (void) SyncImage(image); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -449,6 +457,7 @@ ModuleExport size_t RegisterXBMImage(void) entry->decoder=(DecodeImageHandler *) ReadXBMImage; entry->encoder=(EncodeImageHandler *) WriteXBMImage; entry->magick=(IsImageFormatHandler *) IsXBM; + entry->seekable_stream=MagickTrue; entry->adjoin=MagickFalse; entry->description=ConstantString( "X Windows system bitmap (black and white)"); @@ -626,6 +635,7 @@ static MagickBooleanType WriteXBMImage(const ImageInfo *image_info,Image *image) } (void) CopyMagickString(buffer,"};\n",MaxTextExtent); (void) WriteBlob(image,strlen(buffer),(unsigned char *) buffer); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/xpm.c b/coders/xpm.c index 69a6a8c..e114bd4 100644 --- a/coders/xpm.c +++ b/coders/xpm.c @@ -325,7 +325,7 @@ static Image *ReadXPMImage(const ImageInfo *image_info,ExceptionInfo *exception) continue; if ((*p == '}') && (*(p+1) == ';')) break; - p+=strlen(p); + p+=(ptrdiff_t) strlen(p); offset=p-xpm_buffer; if ((size_t) (offset+MaxTextExtent) < length) continue; @@ -511,7 +511,7 @@ static Image *ReadXPMImage(const ImageInfo *image_info,ExceptionInfo *exception) if (image->storage_class == PseudoClass) SetPixelIndex(indexes+x,j); *r=image->colormap[j]; - p+=count; + p+=(ptrdiff_t) count; r++; } if (x < (ssize_t) image->columns) @@ -531,7 +531,10 @@ static Image *ReadXPMImage(const ImageInfo *image_info,ExceptionInfo *exception) */ xpm_colors=DestroySplayTree(xpm_colors); xpm_buffer=DestroyString(xpm_buffer); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } @@ -946,8 +949,9 @@ static MagickBooleanType WritePICONImage(const ImageInfo *image_info, } picon=DestroyImage(picon); (void) WriteBlobString(image,"};\n"); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } /* diff --git a/coders/xwd.c b/coders/xwd.c index f11addc..53902f1 100644 --- a/coders/xwd.c +++ b/coders/xwd.c @@ -654,7 +654,10 @@ static Image *ReadXWDImage(const ImageInfo *image_info,ExceptionInfo *exception) if (EOFBlob(image) != MagickFalse) ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", image->filename); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + if (status == MagickFalse) + return(DestroyImageList(image)); return(GetFirstImageInList(image)); } #endif diff --git a/coders/ycbcr.c b/coders/ycbcr.c index 41ff670..4497259 100644 --- a/coders/ycbcr.c +++ b/coders/ycbcr.c @@ -108,7 +108,7 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, *image; MagickBooleanType - status; + status = MagickTrue; MagickOffsetType scene; @@ -713,7 +713,8 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("Cb",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -785,7 +786,8 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("Cr",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -859,7 +861,8 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, } if (image->matte != MagickFalse) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("A",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -972,7 +975,8 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, quantum_info=DestroyQuantumInfo(quantum_info); InheritException(exception,&canvas_image->exception); canvas_image=DestroyImage(canvas_image); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -1083,7 +1087,7 @@ static MagickBooleanType WriteYCBCRImage(const ImageInfo *image_info, *p; MagickBooleanType - status; + status = MagickTrue; MagickOffsetType scene; @@ -1324,7 +1328,8 @@ static MagickBooleanType WriteYCBCRImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("Cb",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1347,7 +1352,8 @@ static MagickBooleanType WriteYCBCRImage(const ImageInfo *image_info, if (status == MagickFalse) break; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("Cr",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1372,7 +1378,8 @@ static MagickBooleanType WriteYCBCRImage(const ImageInfo *image_info, } if (quantum_type == RGBAQuantum) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("A",image->filename); status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode : AppendBinaryBlobMode,&image->exception); @@ -1417,6 +1424,7 @@ static MagickBooleanType WriteYCBCRImage(const ImageInfo *image_info, if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/coders/yuv.c b/coders/yuv.c index 86a89dd..3c70a9e 100644 --- a/coders/yuv.c +++ b/coders/yuv.c @@ -271,14 +271,14 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception) { SetPixelGreen(chroma_pixels,ScaleShortToQuantum(((*p) << 8) | *(p+1))); - p+=2; + p+=(ptrdiff_t) 2; } if (quantum == 1) SetPixelRed(q,ScaleCharToQuantum(*p++)); else { SetPixelRed(q,ScaleShortToQuantum(((*p) << 8) | *(p+1))); - p+=2; + p+=(ptrdiff_t) 2; } SetPixelGreen(q,0); SetPixelBlue(q,0); @@ -291,14 +291,14 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception) { SetPixelBlue(chroma_pixels,ScaleShortToQuantum(((*p) << 8) | *(p+1))); - p+=2; + p+=(ptrdiff_t) 2; } if (quantum == 1) SetPixelRed(q,ScaleCharToQuantum(*p++)); else { SetPixelRed(q,ScaleShortToQuantum(((*p) << 8) | *(p+1))); - p+=2; + p+=(ptrdiff_t) 2; } chroma_pixels++; q++; @@ -329,7 +329,7 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception) else { SetPixelRed(q,ScaleShortToQuantum(((*p) << 8) | *(p+1))); - p+=2; + p+=(ptrdiff_t) 2; } SetPixelGreen(q,0); SetPixelBlue(q,0); @@ -351,7 +351,8 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception) } if (interlace == PartitionInterlace) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("U",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -386,7 +387,7 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception) else { SetPixelGreen(q,ScaleShortToQuantum(((*p) << 8) | *(p+1))); - p+=2; + p+=(ptrdiff_t) 2; } SetPixelBlue(q,0); q++; @@ -396,7 +397,8 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception) } if (interlace == PartitionInterlace) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("V",image->filename); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) @@ -428,7 +430,7 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception) else { SetPixelBlue(q,ScaleShortToQuantum(((*p) << 8) | *(p+1))); - p+=2; + p+=(ptrdiff_t) 2; } q++; } @@ -504,7 +506,8 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception) } while (count != 0); scanline=(unsigned char *) RelinquishMagickMemory(scanline); InheritException(exception,&image->exception); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) return(DestroyImageList(image)); return(GetFirstImageInList(image)); @@ -795,7 +798,8 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image) */ if (interlace == PartitionInterlace) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("U",image->filename); status=OpenBlob(image_info,image,WriteBinaryBlobMode, &image->exception); @@ -829,7 +833,8 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image) */ if (interlace == PartitionInterlace) { - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + break; AppendImageFormat("V",image->filename); status=OpenBlob(image_info,image,WriteBinaryBlobMode, &image->exception); @@ -869,6 +874,7 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image) if (status == MagickFalse) break; } while (image_info->adjoin != MagickFalse); - (void) CloseBlob(image); - return(MagickTrue); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; + return(status); } diff --git a/config/Makefile.am b/config/Makefile.am index 4664e6b..839a82b 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -46,6 +46,7 @@ configlib_DATA = \ config/type-dejavu.xml \ config/type-ghostscript.xml \ config/type-urw-base35.xml \ + config/type-urw-base35-type1.xml \ config/type-windows.xml CONFIG_EXTRA_DIST = \ @@ -76,5 +77,6 @@ CONFIG_EXTRA_DIST = \ config/type-dejavu.xml.in \ config/type-ghostscript.xml.in \ config/type-urw-base35.xml.in \ + config/type-urw-base35-type1.xml.in \ config/type-windows.xml.in \ config/type.xml.in diff --git a/config/config.guess b/config/config.guess index c7f17e8..f9c22a0 100755 --- a/config/config.guess +++ b/config/config.guess @@ -1,10 +1,10 @@ #!/usr/bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2022 Free Software Foundation, Inc. +# Copyright 1992-2024 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2022-05-25' +timestamp='2024-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -47,7 +47,7 @@ me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] -Output the configuration name of the system \`$me' is run on. +Output the configuration name of the system '$me' is run on. Options: -h, --help print this help, then exit @@ -60,13 +60,13 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2022 Free Software Foundation, Inc. +Copyright 1992-2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" -Try \`$me --help' for more information." +Try '$me --help' for more information." # Parse command line while test $# -gt 0 ; do @@ -102,8 +102,8 @@ GUESS= # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. +# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still +# use 'HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. @@ -155,6 +155,9 @@ Linux|GNU|GNU/*) set_cc_for_build cat <<-EOF > "$dummy.c" + #if defined(__ANDROID__) + LIBC=android + #else #include #if defined(__UCLIBC__) LIBC=uclibc @@ -162,6 +165,8 @@ Linux|GNU|GNU/*) LIBC=dietlibc #elif defined(__GLIBC__) LIBC=gnu + #elif defined(__LLVM_LIBC__) + LIBC=llvm #else #include /* First heuristic to detect musl libc. */ @@ -169,6 +174,7 @@ Linux|GNU|GNU/*) LIBC=musl #endif #endif + #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc" @@ -459,7 +465,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in UNAME_RELEASE=`uname -v` ;; esac - # Japanese Language versions have a version number like `4.1.3-JL'. + # Japanese Language versions have a version number like '4.1.3-JL'. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` GUESS=sparc-sun-sunos$SUN_REL ;; @@ -904,7 +910,7 @@ EOF fi ;; *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` + UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; @@ -966,11 +972,37 @@ EOF GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;; + x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-pc-managarm-mlibc" + ;; + *:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" + ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; aarch64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + set_cc_for_build + CPU=$UNAME_MACHINE + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + ABI=64 + sed 's/^ //' << EOF > "$dummy.c" + #ifdef __ARM_EABI__ + #ifdef __ARM_PCS_VFP + ABI=eabihf + #else + ABI=eabi + #endif + #endif +EOF + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` + eval "$cc_set_abi" + case $ABI in + eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;; + esac + fi + GUESS=$CPU-unknown-linux-$LIBCABI ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be @@ -1036,7 +1068,16 @@ EOF k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; - loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + kvx:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + kvx:cos:*:*) + GUESS=$UNAME_MACHINE-unknown-cos + ;; + kvx:mbr:*:*) + GUESS=$UNAME_MACHINE-unknown-mbr + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*) @@ -1191,7 +1232,7 @@ EOF GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION ;; i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility + # If we were able to find 'uname', then EMX Unix compatibility # is probably installed. GUESS=$UNAME_MACHINE-pc-os2-emx ;; @@ -1332,7 +1373,7 @@ EOF GUESS=ns32k-sni-sysv fi ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort # says GUESS=i586-unisys-sysv4 ;; @@ -1554,6 +1595,9 @@ EOF *:Unleashed:*:*) GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE ;; + *:Ironclad:*:*) + GUESS=$UNAME_MACHINE-unknown-ironclad + ;; esac # Do we have a guess based on uname results? diff --git a/config/config.h.in b/config/config.h.in index a986374..97bbf9b 100644 --- a/config/config.h.in +++ b/config/config.h.in @@ -67,10 +67,10 @@ /* Define if you have GVC library */ #undef GVC_DELEGATE -/* Define to 1 if you have the `acosh' function. */ +/* Define to 1 if you have the 'acosh' function. */ #undef HAVE_ACOSH -/* Define to 1 if you have the `aligned_malloc' function. */ +/* Define to 1 if you have the 'aligned_malloc' function. */ #undef HAVE_ALIGNED_MALLOC /* Define to 1 if you have the header file. */ @@ -79,37 +79,37 @@ /* Define to 1 if you have the header file. */ #undef HAVE_ARPA_INET_H -/* Define to 1 if you have the `asinh' function. */ +/* Define to 1 if you have the 'asinh' function. */ #undef HAVE_ASINH -/* Define to 1 if you have the `atanh' function. */ +/* Define to 1 if you have the 'atanh' function. */ #undef HAVE_ATANH -/* Define to 1 if you have the `atexit' function. */ +/* Define to 1 if you have the 'atexit' function. */ #undef HAVE_ATEXIT -/* Define to 1 if you have the `atoll' function. */ +/* Define to 1 if you have the 'atoll' function. */ #undef HAVE_ATOLL /* define if bool is a built-in type */ #undef HAVE_BOOL -/* Define to 1 if you have the `cabs' function. */ +/* Define to 1 if you have the 'cabs' function. */ #undef HAVE_CABS -/* Define to 1 if you have the `carg' function. */ +/* Define to 1 if you have the 'carg' function. */ #undef HAVE_CARG -/* Define to 1 if you have the `cimag' function. */ +/* Define to 1 if you have the 'cimag' function. */ #undef HAVE_CIMAG -/* Define to 1 if you have the `clock' function. */ +/* Define to 1 if you have the 'clock' function. */ #undef HAVE_CLOCK -/* Define to 1 if you have the `clock_getres' function. */ +/* Define to 1 if you have the 'clock_getres' function. */ #undef HAVE_CLOCK_GETRES -/* Define to 1 if you have the `clock_gettime' function. */ +/* Define to 1 if you have the 'clock_gettime' function. */ #undef HAVE_CLOCK_GETTIME /* Define to 1 if clock_gettime supports CLOCK_REALTIME. */ @@ -121,56 +121,56 @@ /* Define to 1 if you have the header file. */ #undef HAVE_COMPLEX_H -/* Define to 1 if you have the `creal' function. */ +/* Define to 1 if you have the 'creal' function. */ #undef HAVE_CREAL -/* Define to 1 if you have the `ctime_r' function. */ +/* Define to 1 if you have the 'ctime_r' function. */ #undef HAVE_CTIME_R -/* Define to 1 if you have the declaration of `pread', and to 0 if you don't. +/* Define to 1 if you have the declaration of 'pread', and to 0 if you don't. */ #undef HAVE_DECL_PREAD -/* Define to 1 if you have the declaration of `pwrite', and to 0 if you don't. +/* Define to 1 if you have the declaration of 'pwrite', and to 0 if you don't. */ #undef HAVE_DECL_PWRITE -/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you +/* Define to 1 if you have the declaration of 'strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R -/* Define to 1 if you have the declaration of `strlcpy', and to 0 if you +/* Define to 1 if you have the declaration of 'strlcpy', and to 0 if you don't. */ #undef HAVE_DECL_STRLCPY -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. +/* Define to 1 if you have the declaration of 'tzname', and to 0 if you don't. */ #undef HAVE_DECL_TZNAME -/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you +/* Define to 1 if you have the declaration of 'vsnprintf', and to 0 if you don't. */ #undef HAVE_DECL_VSNPRINTF -/* Define to 1 if you have the `directio' function. */ +/* Define to 1 if you have the 'directio' function. */ #undef HAVE_DIRECTIO -/* Define to 1 if you have the header file, and it defines `DIR'. +/* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Define to 1 if you have the `erf' function. */ +/* Define to 1 if you have the 'erf' function. */ #undef HAVE_ERF /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H -/* Define to 1 if you have the `execvp' function. */ +/* Define to 1 if you have the 'execvp' function. */ #undef HAVE_EXECVP -/* Define to 1 if you have the `fchmod' function. */ +/* Define to 1 if you have the 'fchmod' function. */ #undef HAVE_FCHMOD /* Define to 1 if you have the header file. */ @@ -179,76 +179,76 @@ /* Define to 1 if you have the header file. */ #undef HAVE_FLOAT_H -/* Define to 1 if you have the `floor' function. */ +/* Define to 1 if you have the 'floor' function. */ #undef HAVE_FLOOR -/* Define to 1 if you have the `fork' function. */ +/* Define to 1 if you have the 'fork' function. */ #undef HAVE_FORK -/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +/* Define to 1 if fseeko (and ftello) are declared in stdio.h. */ #undef HAVE_FSEEKO -/* Define to 1 if you have the `ftime' function. */ +/* Define to 1 if you have the 'ftime' function. */ #undef HAVE_FTIME -/* Define to 1 if you have the `ftruncate' function. */ +/* Define to 1 if you have the 'ftruncate' function. */ #undef HAVE_FTRUNCATE -/* Define to 1 if you have the `getcwd' function. */ +/* Define to 1 if you have the 'getcwd' function. */ #undef HAVE_GETCWD -/* Define to 1 if you have the `getc_unlocked' function. */ +/* Define to 1 if you have the 'getc_unlocked' function. */ #undef HAVE_GETC_UNLOCKED -/* Define to 1 if you have the `getdtablesize' function. */ +/* Define to 1 if you have the 'getdtablesize' function. */ #undef HAVE_GETDTABLESIZE -/* Define to 1 if you have the `getentropy' function. */ +/* Define to 1 if you have the 'getentropy' function. */ #undef HAVE_GETENTROPY -/* Define to 1 if you have the `getexecname' function. */ +/* Define to 1 if you have the 'getexecname' function. */ #undef HAVE_GETEXECNAME -/* Define to 1 if you have the `getpagesize' function. */ +/* Define to 1 if you have the 'getpagesize' function. */ #undef HAVE_GETPAGESIZE -/* Define to 1 if you have the `getpid' function. */ +/* Define to 1 if you have the 'getpid' function. */ #undef HAVE_GETPID -/* Define to 1 if you have the `getpwnam_r' function. */ +/* Define to 1 if you have the 'getpwnam_r' function. */ #undef HAVE_GETPWNAM_R -/* Define to 1 if you have the `getrlimit' function. */ +/* Define to 1 if you have the 'getrlimit' function. */ #undef HAVE_GETRLIMIT -/* Define to 1 if you have the `getrusage' function. */ +/* Define to 1 if you have the 'getrusage' function. */ #undef HAVE_GETRUSAGE -/* Define to 1 if you have the `gettimeofday' function. */ +/* Define to 1 if you have the 'gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY -/* Define to 1 if you have the `gmtime_r' function. */ +/* Define to 1 if you have the 'gmtime_r' function. */ #undef HAVE_GMTIME_R /* [Compile with hugepage support] */ #undef HAVE_HUGEPAGES -/* Define to 1 if the system has the type `intmax_t'. */ +/* Define to 1 if the system has the type 'intmax_t'. */ #undef HAVE_INTMAX_T -/* Define to 1 if the system has the type `intptr_t'. */ +/* Define to 1 if the system has the type 'intptr_t'. */ #undef HAVE_INTPTR_T /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H -/* Define to 1 if you have the `isnan' function. */ +/* Define to 1 if you have the 'isnan' function. */ #undef HAVE_ISNAN -/* Define to 1 if you have the `j0' function. */ +/* Define to 1 if you have the 'j0' function. */ #undef HAVE_J0 -/* Define to 1 if you have the `j1' function. */ +/* Define to 1 if you have the 'j1' function. */ #undef HAVE_J1 /* Define if you have jemalloc memory allocation library */ @@ -260,7 +260,7 @@ /* Define if you have the header file. */ #undef HAVE_LCMS2_LCMS2_H -/* Define to 1 if you have the `gcov' library (-lgcov). */ +/* Define to 1 if you have the 'gcov' library (-lgcov). */ #undef HAVE_LIBGCOV /* Define to 1 if you have the header file. */ @@ -272,19 +272,19 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_UNISTD_H -/* Define to 1 if you have the `lltostr' function. */ +/* Define to 1 if you have the 'lltostr' function. */ #undef HAVE_LLTOSTR /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H -/* Define to 1 if you have the `localtime_r' function. */ +/* Define to 1 if you have the 'localtime_r' function. */ #undef HAVE_LOCALTIME_R -/* Define to 1 if the system has the type `long long int'. */ +/* Define to 1 if the system has the type 'long long int'. */ #undef HAVE_LONG_LONG_INT -/* Define to 1 if you have the `lstat' function. */ +/* Define to 1 if you have the 'lstat' function. */ #undef HAVE_LSTAT /* Define to 1 if you have the header file. */ @@ -299,28 +299,28 @@ /* Define to 1 if declares mbstate_t. */ #undef HAVE_MBSTATE_T -/* Define to 1 if you have the `memmove' function. */ +/* Define to 1 if you have the 'memmove' function. */ #undef HAVE_MEMMOVE -/* Define to 1 if you have the `memset' function. */ +/* Define to 1 if you have the 'memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the header file. */ #undef HAVE_MINIX_CONFIG_H -/* Define to 1 if you have the `mkdir' function. */ +/* Define to 1 if you have the 'mkdir' function. */ #undef HAVE_MKDIR -/* Define to 1 if you have the `mkstemp' function. */ +/* Define to 1 if you have the 'mkstemp' function. */ #undef HAVE_MKSTEMP -/* Define to 1 if you have a working `mmap' system call. */ +/* Define to 1 if you have a working 'mmap' system call. */ #undef HAVE_MMAP /* Define if you have the mtmalloc memory allocation library */ #undef HAVE_MTMALLOC -/* Define to 1 if you have the `munmap' function. */ +/* Define to 1 if you have the 'munmap' function. */ #undef HAVE_MUNMAP /* define if the compiler implements namespaces */ @@ -329,10 +329,10 @@ /* Define if g++ supports namespace std. */ #undef HAVE_NAMESPACE_STD -/* Define to 1 if you have the `nanosleep' function. */ +/* Define to 1 if you have the 'nanosleep' function. */ #undef HAVE_NANOSLEEP -/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the header file. */ @@ -341,7 +341,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H -/* Define to 1 if you have the `newlocale' function. */ +/* Define to 1 if you have the 'newlocale' function. */ #undef HAVE_NEWLOCALE /* Define to 1 if you have the header file. */ @@ -350,34 +350,34 @@ /* Define to 1 if you have the header file. */ #undef HAVE_OS_H -/* Define to 1 if you have the `pclose' function. */ +/* Define to 1 if you have the 'pclose' function. */ #undef HAVE_PCLOSE -/* Define to 1 if you have the `poll' function. */ +/* Define to 1 if you have the 'poll' function. */ #undef HAVE_POLL -/* Define to 1 if you have the `popen' function. */ +/* Define to 1 if you have the 'popen' function. */ #undef HAVE_POPEN -/* Define to 1 if you have the `posix_fadvise' function. */ +/* Define to 1 if you have the 'posix_fadvise' function. */ #undef HAVE_POSIX_FADVISE -/* Define to 1 if you have the `posix_fallocate' function. */ +/* Define to 1 if you have the 'posix_fallocate' function. */ #undef HAVE_POSIX_FALLOCATE -/* Define to 1 if you have the `posix_madvise' function. */ +/* Define to 1 if you have the 'posix_madvise' function. */ #undef HAVE_POSIX_MADVISE -/* Define to 1 if you have the `posix_memalign' function. */ +/* Define to 1 if you have the 'posix_memalign' function. */ #undef HAVE_POSIX_MEMALIGN -/* Define to 1 if you have the `posix_spawnp' function. */ +/* Define to 1 if you have the 'posix_spawnp' function. */ #undef HAVE_POSIX_SPAWNP -/* Define to 1 if you have the `pow' function. */ +/* Define to 1 if you have the 'pow' function. */ #undef HAVE_POW -/* Define to 1 if you have the `pread' function. */ +/* Define to 1 if you have the 'pread' function. */ #undef HAVE_PREAD /* Define to 1 if you have the header file. */ @@ -389,40 +389,40 @@ /* Have PTHREAD_PRIO_INHERIT. */ #undef HAVE_PTHREAD_PRIO_INHERIT -/* Define to 1 if you have the `putenv' function. */ +/* Define to 1 if you have the 'putenv' function. */ #undef HAVE_PUTENV -/* Define to 1 if you have the `pwrite' function. */ +/* Define to 1 if you have the 'pwrite' function. */ #undef HAVE_PWRITE -/* Define to 1 if you have the `qsort_r' function. */ +/* Define to 1 if you have the 'qsort_r' function. */ #undef HAVE_QSORT_R -/* Define to 1 if you have the `raise' function. */ +/* Define to 1 if you have the 'raise' function. */ #undef HAVE_RAISE -/* Define to 1 if you have the `rand_r' function. */ +/* Define to 1 if you have the 'rand_r' function. */ #undef HAVE_RAND_R -/* Define to 1 if you have the `readlink' function. */ +/* Define to 1 if you have the 'readlink' function. */ #undef HAVE_READLINK -/* Define to 1 if you have the `realpath' function. */ +/* Define to 1 if you have the 'realpath' function. */ #undef HAVE_REALPATH -/* Define to 1 if you have the `seekdir' function. */ +/* Define to 1 if you have the 'seekdir' function. */ #undef HAVE_SEEKDIR -/* Define to 1 if you have the `select' function. */ +/* Define to 1 if you have the 'select' function. */ #undef HAVE_SELECT -/* Define to 1 if you have the `sendfile' function. */ +/* Define to 1 if you have the 'sendfile' function. */ #undef HAVE_SENDFILE -/* Define to 1 if you have the `setlocale' function. */ +/* Define to 1 if you have the 'setlocale' function. */ #undef HAVE_SETLOCALE -/* Define to 1 if you have the `setvbuf' function. */ +/* Define to 1 if you have the 'setvbuf' function. */ #undef HAVE_SETVBUF /* X11 server supports shape extension */ @@ -431,22 +431,22 @@ /* X11 server supports shared memory extension */ #undef HAVE_SHARED_MEMORY -/* Define to 1 if you have the `sigaction' function. */ +/* Define to 1 if you have the 'sigaction' function. */ #undef HAVE_SIGACTION -/* Define to 1 if you have the `sigemptyset' function. */ +/* Define to 1 if you have the 'sigemptyset' function. */ #undef HAVE_SIGEMPTYSET -/* Define to 1 if you have the `socket' function. */ +/* Define to 1 if you have the 'socket' function. */ #undef HAVE_SOCKET -/* Define to 1 if you have the `spawnvp' function. */ +/* Define to 1 if you have the 'spawnvp' function. */ #undef HAVE_SPAWNVP -/* Define to 1 if you have the `sqrt' function. */ +/* Define to 1 if you have the 'sqrt' function. */ #undef HAVE_SQRT -/* Define to 1 if you have the `stat' function. */ +/* Define to 1 if you have the 'stat' function. */ #undef HAVE_STAT /* Define to 1 if you have the header file. */ @@ -467,25 +467,25 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H -/* Define to 1 if you have the `strcasecmp' function. */ +/* Define to 1 if you have the 'strcasecmp' function. */ #undef HAVE_STRCASECMP -/* Define to 1 if you have the `strcasestr' function. */ +/* Define to 1 if you have the 'strcasestr' function. */ #undef HAVE_STRCASESTR -/* Define to 1 if you have the `strchr' function. */ +/* Define to 1 if you have the 'strchr' function. */ #undef HAVE_STRCHR -/* Define to 1 if you have the `strcspn' function. */ +/* Define to 1 if you have the 'strcspn' function. */ #undef HAVE_STRCSPN -/* Define to 1 if you have the `strdup' function. */ +/* Define to 1 if you have the 'strdup' function. */ #undef HAVE_STRDUP -/* Define to 1 if you have the `strerror' function. */ +/* Define to 1 if you have the 'strerror' function. */ #undef HAVE_STRERROR -/* Define if you have `strerror_r'. */ +/* Define if you have 'strerror_r'. */ #undef HAVE_STRERROR_R /* Define to 1 if cpp supports the ANSI # stringizing operator. */ @@ -497,55 +497,55 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H -/* Define to 1 if you have the `strlcat' function. */ +/* Define to 1 if you have the 'strlcat' function. */ #undef HAVE_STRLCAT -/* Define to 1 if you have the `strlcpy' function. */ +/* Define to 1 if you have the 'strlcpy' function. */ #undef HAVE_STRLCPY -/* Define to 1 if you have the `strncasecmp' function. */ +/* Define to 1 if you have the 'strncasecmp' function. */ #undef HAVE_STRNCASECMP -/* Define to 1 if you have the `strpbrk' function. */ +/* Define to 1 if you have the 'strpbrk' function. */ #undef HAVE_STRPBRK -/* Define to 1 if you have the `strrchr' function. */ +/* Define to 1 if you have the 'strrchr' function. */ #undef HAVE_STRRCHR -/* Define to 1 if you have the `strspn' function. */ +/* Define to 1 if you have the 'strspn' function. */ #undef HAVE_STRSPN -/* Define to 1 if you have the `strstr' function. */ +/* Define to 1 if you have the 'strstr' function. */ #undef HAVE_STRSTR -/* Define to 1 if you have the `strtod' function. */ +/* Define to 1 if you have the 'strtod' function. */ #undef HAVE_STRTOD -/* Define to 1 if you have the `strtod_l' function. */ +/* Define to 1 if you have the 'strtod_l' function. */ #undef HAVE_STRTOD_L -/* Define to 1 if you have the `strtol' function. */ +/* Define to 1 if you have the 'strtol' function. */ #undef HAVE_STRTOL -/* Define to 1 if you have the `strtoul' function. */ +/* Define to 1 if you have the 'strtoul' function. */ #undef HAVE_STRTOUL -/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +/* Define to 1 if 'tm_zone' is a member of 'struct tm'. */ #undef HAVE_STRUCT_TM_TM_ZONE /* Define to 1 if you have the header file. */ #undef HAVE_SUN_PREFETCH_H -/* Define to 1 if you have the `symlink' function. */ +/* Define to 1 if you have the 'symlink' function. */ #undef HAVE_SYMLINK -/* Define to 1 if you have the `sysconf' function. */ +/* Define to 1 if you have the 'sysconf' function. */ #undef HAVE_SYSCONF -/* Define to 1 if you have the `system' function. */ +/* Define to 1 if you have the 'system' function. */ #undef HAVE_SYSTEM -/* Define to 1 if you have the header file, and it defines `DIR'. +/* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_SYS_DIR_H @@ -555,7 +555,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MMAN_H -/* Define to 1 if you have the header file, and it defines `DIR'. +/* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_SYS_NDIR_H @@ -595,60 +595,30 @@ /* Define if you have the tcmalloc memory allocation library */ #undef HAVE_TCMALLOC -/* Define to 1 if you have the `telldir' function. */ +/* Define to 1 if you have the 'telldir' function. */ #undef HAVE_TELLDIR -/* Define to 1 if you have the `tempnam' function. */ +/* Define to 1 if you have the 'tempnam' function. */ #undef HAVE_TEMPNAM -/* Define to 1 if you have the header file. */ -#undef HAVE_TIFFCONF_H - -/* Define to 1 if you have the `TIFFIsBigEndian' function. */ -#undef HAVE_TIFFISBIGENDIAN - -/* Define to 1 if you have the `TIFFIsCODECConfigured' function. */ -#undef HAVE_TIFFISCODECCONFIGURED - -/* Define to 1 if you have the `TIFFMergeFieldInfo' function. */ -#undef HAVE_TIFFMERGEFIELDINFO - -/* Define to 1 if you have the `TIFFReadEXIFDirectory' function. */ -#undef HAVE_TIFFREADEXIFDIRECTORY - -/* Define to 1 if you have the `TIFFReadGPSDirectory' function. */ -#undef HAVE_TIFFREADGPSDIRECTORY - -/* Define to 1 if you have the `TIFFSetErrorHandlerExt' function. */ -#undef HAVE_TIFFSETERRORHANDLEREXT - -/* Define to 1 if you have the `TIFFSetTagExtender' function. */ -#undef HAVE_TIFFSETTAGEXTENDER - -/* Define to 1 if you have the `TIFFSetWarningHandlerExt' function. */ -#undef HAVE_TIFFSETWARNINGHANDLEREXT - -/* Define to 1 if you have the `TIFFSwabArrayOfTriples' function. */ -#undef HAVE_TIFFSWABARRAYOFTRIPLES - -/* Define to 1 if you have the `times' function. */ +/* Define to 1 if you have the 'times' function. */ #undef HAVE_TIMES -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ +/* Define to 1 if your 'struct tm' has 'tm_zone'. Deprecated, use + 'HAVE_STRUCT_TM_TM_ZONE' instead. */ #undef HAVE_TM_ZONE -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ +/* Define to 1 if you don't have 'tm_zone' but do have the external array + 'tzname'. */ #undef HAVE_TZNAME -/* Define to 1 if the system has the type `uintmax_t'. */ +/* Define to 1 if the system has the type 'uintmax_t'. */ #undef HAVE_UINTMAX_T -/* Define to 1 if the system has the type `uintptr_t'. */ +/* Define to 1 if the system has the type 'uintptr_t'. */ #undef HAVE_UINTPTR_T -/* Define to 1 if you have the `ulltostr' function. */ +/* Define to 1 if you have the 'ulltostr' function. */ #undef HAVE_ULLTOSTR /* Define if you have umem memory allocation library */ @@ -657,37 +627,37 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H -/* Define to 1 if the system has the type `unsigned long long int'. */ +/* Define to 1 if the system has the type 'unsigned long long int'. */ #undef HAVE_UNSIGNED_LONG_LONG_INT -/* Define to 1 if you have the `uselocale' function. */ +/* Define to 1 if you have the 'uselocale' function. */ #undef HAVE_USELOCALE -/* Define to 1 if you have the `usleep' function. */ +/* Define to 1 if you have the 'usleep' function. */ #undef HAVE_USLEEP -/* Define to 1 if you have the `utime' function. */ +/* Define to 1 if you have the 'utime' function. */ #undef HAVE_UTIME /* Define to 1 if you have the header file. */ #undef HAVE_UTIME_H -/* Define to 1 if you have the `vfprintf' function. */ +/* Define to 1 if you have the 'vfprintf' function. */ #undef HAVE_VFPRINTF -/* Define to 1 if you have the `vfprintf_l' function. */ +/* Define to 1 if you have the 'vfprintf_l' function. */ #undef HAVE_VFPRINTF_L -/* Define to 1 if you have the `vsnprintf' function. */ +/* Define to 1 if you have the 'vsnprintf' function. */ #undef HAVE_VSNPRINTF -/* Define to 1 if you have the `vsnprintf_l' function. */ +/* Define to 1 if you have the 'vsnprintf_l' function. */ #undef HAVE_VSNPRINTF_L -/* Define to 1 if you have the `vsprintf' function. */ +/* Define to 1 if you have the 'vsprintf' function. */ #undef HAVE_VSPRINTF -/* Define to 1 if you have the `waitpid' function. */ +/* Define to 1 if you have the 'waitpid' function. */ #undef HAVE_WAITPID /* Define to 1 if you have the header file. */ @@ -696,28 +666,28 @@ /* Define to 1 if you have the header file. */ #undef HAVE_XLOCALE_H -/* Define to 1 if you have the `_aligned_malloc' function. */ +/* Define to 1 if you have the '_aligned_malloc' function. */ #undef HAVE__ALIGNED_MALLOC -/* Define to 1 if the system has the type `_Bool'. */ +/* Define to 1 if the system has the type '_Bool'. */ #undef HAVE__BOOL -/* Define to 1 if you have the `_exit' function. */ +/* Define to 1 if you have the '_exit' function. */ #undef HAVE__EXIT -/* Define to 1 if you have the `_NSGetExecutablePath' function. */ +/* Define to 1 if you have the '_NSGetExecutablePath' function. */ #undef HAVE__NSGETEXECUTABLEPATH -/* Define to 1 if you have the `_pclose' function. */ +/* Define to 1 if you have the '_pclose' function. */ #undef HAVE__PCLOSE -/* Define to 1 if you have the `_popen' function. */ +/* Define to 1 if you have the '_popen' function. */ #undef HAVE__POPEN -/* Define to 1 if you have the `_wfopen' function. */ +/* Define to 1 if you have the '_wfopen' function. */ #undef HAVE__WFOPEN -/* Define to 1 if you have the `_wstat' function. */ +/* Define to 1 if you have the '_wstat' function. */ #undef HAVE__WSTAT /* define if your compiler has __attribute__ */ @@ -751,7 +721,7 @@ #undef LIBOPENJP2_DELEGATE /* Directory where architecture-dependent files live. */ -#undef LIBRARY_PATH +#undef LIBRARY_ABSOLUTE_PATH /* Subdirectory of lib where ImageMagick architecture dependent files are installed. */ @@ -872,31 +842,34 @@ live. */ #undef SHARE_RELATIVE_PATH -/* The size of `double', as computed by sizeof. */ +/* The size of 'double', as computed by sizeof. */ #undef SIZEOF_DOUBLE -/* The size of `double_t', as computed by sizeof. */ +/* The size of 'double_t', as computed by sizeof. */ #undef SIZEOF_DOUBLE_T -/* The size of `float', as computed by sizeof. */ +/* The size of 'float', as computed by sizeof. */ #undef SIZEOF_FLOAT -/* The size of `float_t', as computed by sizeof. */ +/* The size of 'float_t', as computed by sizeof. */ #undef SIZEOF_FLOAT_T -/* The size of `long double', as computed by sizeof. */ +/* The size of 'long double', as computed by sizeof. */ #undef SIZEOF_LONG_DOUBLE -/* The size of `unsigned long long', as computed by sizeof. */ +/* The size of 'size_t', as computed by sizeof. */ +#undef SIZEOF_SIZE_T + +/* The size of 'unsigned long long', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_LONG_LONG -/* The size of `void *', as computed by sizeof. */ +/* The size of 'void *', as computed by sizeof. */ #undef SIZEOF_VOID_P -/* Define to 1 if the `S_IS*' macros in do not work properly. */ +/* Define to 1 if the 'S_IS*' macros in do not work properly. */ #undef STAT_MACROS_BROKEN -/* Define to 1 if all of the C90 standard headers exist (not just the ones +/* Define to 1 if all of the C89 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS @@ -910,10 +883,10 @@ /* Define if you have TIFF library */ #undef TIFF_DELEGATE -/* Define to 1 if your declares `struct tm'. */ +/* Define to 1 if your declares 'struct tm'. */ #undef TM_IN_SYS_TIME -/* Enable extensions on AIX 3, Interix. */ +/* Enable extensions on AIX, Interix, z/OS. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif @@ -974,11 +947,15 @@ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__ #endif +/* Enable extensions specified by C23 Annex F. */ +#ifndef __STDC_WANT_IEC_60559_EXT__ +# undef __STDC_WANT_IEC_60559_EXT__ +#endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif -/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__ #endif @@ -1055,12 +1032,15 @@ /* enable run-time bounds-checking */ #undef _FORTIFY_SOURCE -/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +/* Define to 1 if necessary to make fseeko visible. */ #undef _LARGEFILE_SOURCE -/* Define for large files, on AIX-style hosts. */ +/* Define to 1 on platforms where this makes off_t a 64-bit type. */ #undef _LARGE_FILES +/* Number of bits in time_t, on hosts where this is settable. */ +#undef _TIME_BITS + /* Define for Solaris 2.5.1 so the uint32_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ @@ -1076,22 +1056,25 @@ #define below would cause a syntax error. */ #undef _UINT8_T -/* Define to 1 if type `char' is unsigned and your compiler does not +/* Define to 1 if type 'char' is unsigned and your compiler does not predefine this macro. */ #ifndef __CHAR_UNSIGNED__ # undef __CHAR_UNSIGNED__ #endif +/* Define to 1 on platforms where this makes time_t a 64-bit type. */ +#undef __MINGW_USE_VC2005_COMPAT + /* Define to appropriate substitute if compiler does not have __func__ */ #undef __func__ -/* Define to empty if `const' does not conform to ANSI C. */ +/* Define to empty if 'const' does not conform to ANSI C. */ #undef const -/* Define to `int' if doesn't define. */ +/* Define as 'int' if doesn't define. */ #undef gid_t -/* Define to `__inline__' or `__inline' if that's what the C compiler +/* Define to '__inline__' or '__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline @@ -1124,10 +1107,10 @@ /* Define to a type if does not define. */ #undef mbstate_t -/* Define to `int' if does not define. */ +/* Define to 'int' if does not define. */ #undef mode_t -/* Define to `long int' if does not define. */ +/* Define to 'long int' if does not define. */ #undef off_t /* Define as a signed integer type capable of holding a process identifier. */ @@ -1148,13 +1131,13 @@ # define __restrict__ #endif -/* Define to `unsigned int' if does not define. */ +/* Define as 'unsigned int' if doesn't define. */ #undef size_t -/* Define to `int' if does not define. */ +/* Define as 'int' if doesn't define. */ #undef ssize_t -/* Define to `int' if doesn't define. */ +/* Define as 'int' if doesn't define. */ #undef uid_t /* Define to the type of an unsigned integer type of width exactly 16 bits if @@ -1181,6 +1164,6 @@ pointer, if such a type exists, and if the system does not define it. */ #undef uintptr_t -/* Define to empty if the keyword `volatile' does not work. Warning: valid - code using `volatile' can become incorrect without. Disable with care. */ +/* Define to empty if the keyword 'volatile' does not work. Warning: valid + code using 'volatile' can become incorrect without. Disable with care. */ #undef volatile diff --git a/config/config.sub b/config/config.sub index b41da55..df5f563 100755 --- a/config/config.sub +++ b/config/config.sub @@ -1,10 +1,10 @@ #!/usr/bin/sh # Configuration validation subroutine script. -# Copyright 1992-2022 Free Software Foundation, Inc. +# Copyright 1992-2024 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2022-01-03' +timestamp='2024-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -76,13 +76,13 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2022 Free Software Foundation, Inc. +Copyright 1992-2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" -Try \`$me --help' for more information." +Try '$me --help' for more information." # Parse command line while test $# -gt 0 ; do @@ -130,7 +130,7 @@ IFS=$saved_IFS # Separate into logical components for further validation case $1 in *-*-*-*-*) - echo Invalid configuration \`"$1"\': more than four components >&2 + echo "Invalid configuration '$1': more than four components" >&2 exit 1 ;; *-*-*-*) @@ -145,7 +145,8 @@ case $1 in nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova*) + | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \ + | windows-* ) basic_machine=$field1 basic_os=$maybe_os ;; @@ -943,7 +944,7 @@ $basic_machine EOF IFS=$saved_IFS ;; - # We use `pc' rather than `unknown' + # We use 'pc' rather than 'unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) @@ -1075,7 +1076,7 @@ case $cpu-$vendor in pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) cpu=i586 ;; - pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) + pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) cpu=i686 ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) @@ -1180,7 +1181,7 @@ case $cpu-$vendor in case $cpu in 1750a | 580 \ | a29k \ - | aarch64 | aarch64_be \ + | aarch64 | aarch64_be | aarch64c | arm64ec \ | abacus \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ @@ -1199,50 +1200,29 @@ case $cpu-$vendor in | d10v | d30v | dlx | dsp16xx \ | e2k | elxsi | epiphany \ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | javascript \ | h8300 | h8500 \ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ + | kvx \ | le32 | le64 \ | lm32 \ - | loongarch32 | loongarch64 | loongarchx32 \ + | loongarch32 | loongarch64 \ | m32c | m32r | m32rle \ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ | m88110 | m88k | maxq | mb | mcore | mep | metag \ | microblaze | microblazeel \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64eb | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r3 | mipsisa32r3el \ - | mipsisa32r5 | mipsisa32r5el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r3 | mipsisa64r3el \ - | mipsisa64r5 | mipsisa64r5el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ + | mips* \ | mmix \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ + | nanomips* \ | nds32 | nds32le | nds32be \ | nfp \ | nios | nios2 | nios2eb | nios2el \ @@ -1274,6 +1254,7 @@ case $cpu-$vendor in | ubicom32 \ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ | vax \ + | vc4 \ | visium \ | w65 \ | wasm32 | wasm64 \ @@ -1285,7 +1266,7 @@ case $cpu-$vendor in ;; *) - echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2 exit 1 ;; esac @@ -1306,11 +1287,12 @@ esac # Decode manufacturer-specific aliases for certain operating systems. -if test x$basic_os != x +if test x"$basic_os" != x then # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just # set os. +obj= case $basic_os in gnu/linux*) kernel=linux @@ -1341,6 +1323,10 @@ EOF kernel=linux os=`echo "$basic_os" | sed -e 's|linux|gnu|'` ;; + managarm*) + kernel=managarm + os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` + ;; *) kernel= os=$basic_os @@ -1506,10 +1492,16 @@ case $os in os=eabi ;; *) - os=elf + os= + obj=elf ;; esac ;; + aout* | coff* | elf* | pe*) + # These are machine code file formats, not OSes + obj=$os + os= + ;; *) # No normalization, but not necessarily accepted, that comes below. ;; @@ -1528,12 +1520,15 @@ else # system, and we'll never get to this point. kernel= +obj= case $cpu-$vendor in score-*) - os=elf + os= + obj=elf ;; spu-*) - os=elf + os= + obj=elf ;; *-acorn) os=riscix1.2 @@ -1543,28 +1538,35 @@ case $cpu-$vendor in os=gnu ;; arm*-semi) - os=aout + os= + obj=aout ;; c4x-* | tic4x-*) - os=coff + os= + obj=coff ;; c8051-*) - os=elf + os= + obj=elf ;; clipper-intergraph) os=clix ;; hexagon-*) - os=elf + os= + obj=elf ;; tic54x-*) - os=coff + os= + obj=coff ;; tic55x-*) - os=coff + os= + obj=coff ;; tic6x-*) - os=coff + os= + obj=coff ;; # This must come before the *-dec entry. pdp10-*) @@ -1586,19 +1588,24 @@ case $cpu-$vendor in os=sunos3 ;; m68*-cisco) - os=aout + os= + obj=aout ;; mep-*) - os=elf + os= + obj=elf ;; mips*-cisco) - os=elf + os= + obj=elf ;; - mips*-*) - os=elf + mips*-*|nanomips*-*) + os= + obj=elf ;; or32-*) - os=coff + os= + obj=coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=sysv3 @@ -1607,7 +1614,8 @@ case $cpu-$vendor in os=sunos4.1.1 ;; pru-*) - os=elf + os= + obj=elf ;; *-be) os=beos @@ -1688,10 +1696,12 @@ case $cpu-$vendor in os=uxpv ;; *-rom68k) - os=coff + os= + obj=coff ;; *-*bug) - os=coff + os= + obj=coff ;; *-apple) os=macos @@ -1709,10 +1719,11 @@ esac fi -# Now, validate our (potentially fixed-up) OS. +# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ). + case $os in # Sometimes we do "kernel-libc", so those need to count as OSes. - musl* | newlib* | relibc* | uclibc*) + llvm* | musl* | newlib* | relibc* | uclibc*) ;; # Likewise for "kernel-abi" eabi* | gnueabi*) @@ -1720,6 +1731,9 @@ case $os in # VxWorks passes extra cpu info in the 4th filed. simlinux | simwindows | spe) ;; + # See `case $cpu-$os` validation below + ghcjs) + ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. @@ -1728,7 +1742,7 @@ case $os in | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ | hiux* | abug | nacl* | netware* | windows* \ - | os9* | macos* | osx* | ios* \ + | os9* | macos* | osx* | ios* | tvos* | watchos* \ | mpw* | magic* | mmixware* | mon960* | lnews* \ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ | aos* | aros* | cloudabi* | sortix* | twizzler* \ @@ -1737,11 +1751,11 @@ case $os in | mirbsd* | netbsd* | dicos* | openedition* | ose* \ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ - | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ - | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | bosx* | nextstep* | cxux* | oabi* \ + | ptx* | ecoff* | winnt* | domain* | vsta* \ | udi* | lites* | ieee* | go32* | aux* | hcos* \ | chorusrdb* | cegcc* | glidix* | serenity* \ - | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | cygwin* | msys* | moss* | proelf* | rtems* \ | midipix* | mingw32* | mingw64* | mint* \ | uxpv* | beos* | mpeix* | udk* | moxiebox* \ | interix* | uwin* | mks* | rhapsody* | darwin* \ @@ -1754,49 +1768,116 @@ case $os in | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ - | fiwix* ) + | fiwix* | mlibc* | cos* | mbr* | ironclad* ) ;; # This one is extra strict with allowed versions sco3.2v2 | sco3.2v[4-9]* | sco5v6*) # Don't forget version if it is 3.2v4 or newer. ;; + # This refers to builds using the UEFI calling convention + # (which depends on the architecture) and PE file format. + # Note that this is both a different calling convention and + # different file format than that of GNU-EFI + # (x86_64-w64-mingw32). + uefi) + ;; none) ;; + kernel* | msvc* ) + # Restricted further below + ;; + '') + if test x"$obj" = x + then + echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2 + fi + ;; + *) + echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 + exit 1 + ;; +esac + +case $obj in + aout* | coff* | elf* | pe*) + ;; + '') + # empty is fine + ;; *) - echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 + exit 1 + ;; +esac + +# Here we handle the constraint that a (synthetic) cpu and os are +# valid only in combination with each other and nowhere else. +case $cpu-$os in + # The "javascript-unknown-ghcjs" triple is used by GHC; we + # accept it here in order to tolerate that, but reject any + # variations. + javascript-ghcjs) + ;; + javascript-* | *-ghcjs) + echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 exit 1 ;; esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. -case $kernel-$os in - linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ - | linux-musl* | linux-relibc* | linux-uclibc* ) +case $kernel-$os-$obj in + linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ + | linux-mlibc*- | linux-musl*- | linux-newlib*- \ + | linux-relibc*- | linux-uclibc*- ) + ;; + uclinux-uclibc*- ) + ;; + managarm-mlibc*- | managarm-kernel*- ) ;; - uclinux-uclibc* ) + windows*-msvc*-) ;; - -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ + | -uclibc*- ) # These are just libc implementations, not actual OSes, and thus # require a kernel. - echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 exit 1 ;; - kfreebsd*-gnu* | kopensolaris*-gnu*) + -kernel*- ) + echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 + exit 1 ;; - vxworks-simlinux | vxworks-simwindows | vxworks-spe) + *-kernel*- ) + echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 + exit 1 ;; - nto-qnx*) + *-msvc*- ) + echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 + exit 1 ;; - os2-emx) + kfreebsd*-gnu*- | kopensolaris*-gnu*-) + ;; + vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) + ;; + nto-qnx*-) + ;; + os2-emx-) ;; - *-eabi* | *-gnueabi*) + *-eabi*- | *-gnueabi*-) ;; - -*) + none--*) + # None (no kernel, i.e. freestanding / bare metal), + # can be paired with an machine code file format + ;; + -*-) # Blank kernel with real OS is always fine. ;; - *-*) - echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + --*) + # Blank kernel and OS with real machine code file format is always fine. + ;; + *-*-*) + echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 exit 1 ;; esac @@ -1879,7 +1960,7 @@ case $vendor in ;; esac -echo "$cpu-$vendor-${kernel:+$kernel-}$os" +echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" exit # Local variables: diff --git a/config/configure.xml.in b/config/configure.xml.in index f3d6c06..222b6e3 100644 --- a/config/configure.xml.in +++ b/config/configure.xml.in @@ -27,11 +27,11 @@ - + - + diff --git a/config/delegates.xml.in b/config/delegates.xml.in index 77142c1..6a775ce 100644 --- a/config/delegates.xml.in +++ b/config/delegates.xml.in @@ -58,64 +58,72 @@ will it read any output image. --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/config/english.xml b/config/english.xml index 4abc829..ec24a85 100644 --- a/config/english.xml +++ b/config/english.xml @@ -521,9 +521,6 @@ image size differs - - images too dissimilar - left and right image sizes differ @@ -550,6 +547,9 @@ associate profile with image, a source and destination color profile required for transform + + images too dissimilar + unable to transform colorspace @@ -692,7 +692,6 @@ missing required argument - missing an image filename @@ -1054,6 +1053,9 @@ pixel cache allocation failed + + time limit exceeded + too many exceptions @@ -1083,9 +1085,6 @@ - - time limit exceeded - unable to allocate dash pattern diff --git a/config/francais.xml b/config/francais.xml index f2dd8a5..2f8fb50 100644 --- a/config/francais.xml +++ b/config/francais.xml @@ -531,9 +531,6 @@ différences dans la taille de l'image - - images too dissimilar - différences dans les tailles des images gauche et droite @@ -560,6 +557,9 @@ associate profile with image, a source and destination color profile required for transform + + images too dissimilar + impossible de colorimétrique la transformation @@ -689,7 +689,6 @@ manque argument obligatoire - nom de fichier d'image absent @@ -1042,6 +1041,9 @@ Échec allocation du cache pixel + + time limit exceeded + too many exceptions @@ -1071,9 +1073,6 @@ - - time limit exceeded - impossible d'allouer le motif de traits diff --git a/config/install-sh b/config/install-sh index ec298b5..73cbd67 100755 --- a/config/install-sh +++ b/config/install-sh @@ -1,7 +1,7 @@ -#!/bin/sh +#!/usr/bin/sh # install - install a program, script, or datafile -scriptversion=2020-11-14.01; # UTC +scriptversion=2023-11-23.18; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -124,9 +124,9 @@ it's up to you to specify -f if you want it. If -S is not specified, no backups are attempted. -Email bug reports to bug-automake@gnu.org. -Automake home page: https://www.gnu.org/software/automake/ -" +Report bugs to . +GNU Automake home page: . +General help using GNU software: ." while test $# -ne 0; do case $1 in diff --git a/config/mime.xml b/config/mime.xml index 61f7228..ff1b83b 100644 --- a/config/mime.xml +++ b/config/mime.xml @@ -763,7 +763,11 @@ + + + + @@ -775,7 +779,9 @@ - + + + diff --git a/config/policy-open.xml b/config/policy-open.xml index 88077d1..17cb250 100644 --- a/config/policy-open.xml +++ b/config/policy-open.xml @@ -85,8 +85,8 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/type-urw-base35.xml.in b/config/type-urw-base35.xml.in index a2a7500..c85d3aa 100644 --- a/config/type-urw-base35.xml.in +++ b/config/type-urw-base35.xml.in @@ -1,5 +1,6 @@ - - + @@ -10,41 +11,40 @@ version CDATA #IMPLIED weight CDATA #REQUIRED> ]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configure b/configure index b3bede9..3561c06 100755 --- a/configure +++ b/configure @@ -1,11 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for ImageMagick 6.9.12-98. +# Generated by GNU Autoconf 2.72 for ImageMagick 6.9.13-25. # # Report bugs to . # # -# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation, # Inc. # # @@ -17,7 +17,6 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh @@ -26,12 +25,13 @@ then : # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else $as_nop - case `(set -o) 2>/dev/null` in #( +else case e in #( + e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi @@ -103,7 +103,7 @@ IFS=$as_save_IFS ;; esac -# We did not find ourselves, most probably we were run as `sh COMMAND' +# We did not find ourselves, most probably we were run as 'sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 @@ -133,15 +133,14 @@ case $- in # (((( esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. +# out after a failed 'exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="as_nop=: -if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 + as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: @@ -149,12 +148,13 @@ then : # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else \$as_nop - case \`(set -o) 2>/dev/null\` in #( +else case e in #( + e) case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi " @@ -172,8 +172,9 @@ as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : -else \$as_nop - exitcode=1; echo positional parameters were not saved. +else case e in #( + e) exitcode=1; echo positional parameters were not saved. ;; +esac fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) @@ -195,14 +196,15 @@ test \$(( 1 + 1 )) = 2 || exit 1 if (eval "$as_required") 2>/dev/null then : as_have_required=yes -else $as_nop - as_have_required=no +else case e in #( + e) as_have_required=no ;; +esac fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : -else $as_nop - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +else case e in #( + e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do @@ -235,12 +237,13 @@ IFS=$as_save_IFS if $as_found then : -else $as_nop - if { test -f "$SHELL" || test -f "$SHELL.exe"; } && +else case e in #( + e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes -fi +fi ;; +esac fi @@ -262,7 +265,7 @@ case $- in # (((( esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. +# out after a failed 'exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi @@ -282,7 +285,8 @@ $0: manually run the script under such a shell if you do $0: have one." fi exit 1 -fi +fi ;; +esac fi fi SHELL=${CONFIG_SHELL-/bin/sh} @@ -321,14 +325,6 @@ as_fn_exit () as_fn_set_status $1 exit $1 } # as_fn_exit -# as_fn_nop -# --------- -# Do nothing but, unlike ":", preserve the value of $?. -as_fn_nop () -{ - return $? -} -as_nop=as_fn_nop # as_fn_mkdir_p # ------------- @@ -397,11 +393,12 @@ then : { eval $1+=\$2 }' -else $as_nop - as_fn_append () +else case e in #( + e) as_fn_append () { eval $1=\$$1\$2 - } + } ;; +esac fi # as_fn_append # as_fn_arith ARG... @@ -415,21 +412,14 @@ then : { as_val=$(( $* )) }' -else $as_nop - as_fn_arith () +else case e in #( + e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` - } + } ;; +esac fi # as_fn_arith -# as_fn_nop -# --------- -# Do nothing but, unlike ":", preserve the value of $?. -as_fn_nop () -{ - return $? -} -as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- @@ -503,6 +493,8 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits /[$]LINENO/= ' <$as_myself | sed ' + t clear + :clear s/[$]LINENO.*/&-/ t lineno b @@ -551,7 +543,6 @@ esac as_echo='printf %s\n' as_echo_n='printf %s' - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -563,9 +554,9 @@ if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. + # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then @@ -590,10 +581,12 @@ as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated SHELL=${CONFIG_SHELL-/bin/sh} @@ -621,8 +614,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ImageMagick' PACKAGE_TARNAME='ImageMagick' -PACKAGE_VERSION='6.9.12-98' -PACKAGE_STRING='ImageMagick 6.9.12-98' +PACKAGE_VERSION='6.9.13-25' +PACKAGE_STRING='ImageMagick 6.9.13-25' PACKAGE_BUGREPORT='https://github.com/ImageMagick/ImageMagick6/issues' PACKAGE_URL='https://legacy.imagemagick.org' @@ -660,6 +653,7 @@ ac_includes_default="\ ac_header_c_list= ac_func_c_list= +enable_year2038=no ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS @@ -713,6 +707,7 @@ TAR ShowImageDelegate type_include_files windows_font_dir +urw_base35_type1_font_dir urw_base35_font_dir ghostscript_font_dir dejavu_font_dir @@ -722,6 +717,8 @@ XPSDelegate WWWDecodeDelegate WebPEncodeDelegate WebPDecodeDelegate +VIDEOEncodeDelegate +VIDEODecodeDelegate TraceEncodeDelegate TextEncodeDelegate SVGDecodeDelegate @@ -731,9 +728,8 @@ PSDelegate PCLDelegate MVDelegate MrSIDDecodeDelegate -VIDEOEncodeDelegate -VIDEODecodeDelegate MogrifyDelegate +MKDIRDelegate LaunchDelegate LPRDelegate LPDelegate @@ -751,6 +747,7 @@ ConvertDelegate DVIDecodeDelegate DOCDecodeDelegate DNGDecodeDelegate +ClipboardDelegate BrowseDelegate BlenderDecodeDelegate BPGEncodeDelegate @@ -776,7 +773,7 @@ LIB_BIN_DIR_PATH LIB_BIN_DIR_RELATIVE_PATH LIB_BIN_DIR LIB_BIN_BASEDIRNAME -LIBRARY_PATH +LIBRARY_ABSOLUTE_PATH EXECUTABLE_PATH INCLUDEARCH_PATH INCLUDE_PATH @@ -797,9 +794,10 @@ WEBPMUX_LIBS WEBPMUX_CFLAGS WEBP_LIBS WEBP_CFLAGS -TIFF_LIBS TIFF_DELEGATE_FALSE TIFF_DELEGATE_TRUE +TIFF_LIBS +TIFF_CFLAGS CAIRO_DELEGATE_FALSE CAIRO_DELEGATE_TRUE RSVG_DELEGATE_FALSE @@ -844,9 +842,10 @@ LCMS_DELEGATE_FALSE LCMS_DELEGATE_TRUE LCMS2_LIBS LCMS2_CFLAGS -JPEG_LIBS JPEG_DELEGATE_FALSE JPEG_DELEGATE_TRUE +JPEG_LIBS +JPEG_CFLAGS JBIG_LIBS JBIG_DELEGATE_FALSE JBIG_DELEGATE_TRUE @@ -922,9 +921,10 @@ X_LIBS X_PRE_LIBS X_CFLAGS XMKMF -BZLIB_LIBS BZLIB_DELEGATE_FALSE BZLIB_DELEGATE_TRUE +BZLIB_LIBS +BZLIB_CFLAGS CCMALLOCDelegate UMEM_LIBS HAVE_UMEM_FALSE @@ -1200,7 +1200,6 @@ with_modules enable_delegate_build enable_deprecated enable_installed -enable_cipher enable_zero_configuration enable_hdri enable_pipes @@ -1261,11 +1260,14 @@ with_raw with_rsvg with_tiff with_urw_base35_font_dir +with_urw_base35_type1_font_dir with_webp with_windows_font_dir with_wmf with_xml enable_docs +enable_cipher +enable_year2038 ' ac_precious_vars='build_alias host_alias @@ -1284,6 +1286,8 @@ CXX CXXFLAGS CCC CXXCPP +BZLIB_CFLAGS +BZLIB_LIBS XMKMF ZLIB_CFLAGS ZLIB_LIBS @@ -1305,6 +1309,8 @@ GVC_CFLAGS GVC_LIBS HEIF_CFLAGS HEIF_LIBS +JPEG_CFLAGS +JPEG_LIBS LCMS2_CFLAGS LCMS2_LIBS LIBOPENJP2_CFLAGS @@ -1325,6 +1331,8 @@ RSVG_CFLAGS RSVG_LIBS CAIRO_SVG_CFLAGS CAIRO_SVG_LIBS +TIFF_CFLAGS +TIFF_LIBS WEBP_CFLAGS WEBP_LIBS WEBPMUX_CFLAGS @@ -1439,7 +1447,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: \`$ac_useropt'" + as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1465,7 +1473,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: \`$ac_useropt'" + as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1678,7 +1686,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: \`$ac_useropt'" + as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1694,7 +1702,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: \`$ac_useropt'" + as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1724,8 +1732,8 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" + -*) as_fn_error $? "unrecognized option: '$ac_option' +Try '$0 --help' for more information" ;; *=*) @@ -1733,7 +1741,7 @@ Try \`$0 --help' for more information" # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + as_fn_error $? "invalid variable name: '$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1783,7 +1791,7 @@ do as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done -# There might be people who depend on the old broken behavior: `$host' +# There might be people who depend on the old broken behavior: '$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias @@ -1851,7 +1859,7 @@ if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` @@ -1879,7 +1887,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ImageMagick 6.9.12-98 to adapt to many kinds of systems. +'configure' configures ImageMagick 6.9.13-25 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1893,11 +1901,11 @@ Configuration: --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages + -q, --quiet, --silent do not print 'checking ...' messages --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' + -C, --config-cache alias for '--cache-file=config.cache' -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] + --srcdir=DIR find the sources in DIR [configure dir or '..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX @@ -1905,10 +1913,10 @@ Installation directories: --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. +By default, 'make install' will install all the files in +'$ac_default_prefix/bin', '$ac_default_prefix/lib' etc. You can specify +an installation prefix other than '$ac_default_prefix' using '--prefix', +for instance '--prefix=\$HOME'. For better control, use the options below. @@ -1955,7 +1963,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ImageMagick 6.9.12-98:";; + short | recursive ) echo "Configuration of ImageMagick 6.9.13-25:";; esac cat <<\_ACEOF @@ -1988,7 +1996,6 @@ Optional Features: --disable-deprecated exclude deprecated methods in MagickCore and MagickWand APIs --disable-installed Formally install ImageMagick under PREFIX - --disable-cipher disable enciphering and deciphering image pixels --enable-zero-configuration enable self-contained, embeddable, zero-configuration ImageMagick @@ -2009,6 +2016,8 @@ Optional Features: --enable-legacy-support install legacy command-line utilities (default disabled) --disable-assert turn off assertions --disable-docs disable building of documentation + --disable-cipher disable enciphering and deciphering image pixels + --enable-year2038 support timestamps after 2038 Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -2087,7 +2096,9 @@ Optional Packages: --with-rsvg enable RSVG support --without-tiff disable TIFF support --with-urw-base35-font-dir=DIR - URW-base35 font directory + URW-base35 OTF font directory + --with-urw-base35-type1-font-dir=DIR + URW-base35 Type1 font directory --without-webp disable WEBP support --with-windows-font-dir=DIR Windows font directory @@ -2113,6 +2124,9 @@ Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor + BZLIB_CFLAGS + C compiler flags for BZLIB, overriding pkg-config + BZLIB_LIBS linker flags for BZLIB, overriding pkg-config XMKMF Path to xmkmf, Makefile generator for X Window System ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config ZLIB_LIBS linker flags for ZLIB, overriding pkg-config @@ -2145,6 +2159,8 @@ Some influential environment variables: GVC_LIBS linker flags for GVC, overriding pkg-config HEIF_CFLAGS C compiler flags for HEIF, overriding pkg-config HEIF_LIBS linker flags for HEIF, overriding pkg-config + JPEG_CFLAGS C compiler flags for JPEG, overriding pkg-config + JPEG_LIBS linker flags for JPEG, overriding pkg-config LCMS2_CFLAGS C compiler flags for LCMS2, overriding pkg-config LCMS2_LIBS linker flags for LCMS2, overriding pkg-config @@ -2174,6 +2190,8 @@ Some influential environment variables: C compiler flags for CAIRO_SVG, overriding pkg-config CAIRO_SVG_LIBS linker flags for CAIRO_SVG, overriding pkg-config + TIFF_CFLAGS C compiler flags for TIFF, overriding pkg-config + TIFF_LIBS linker flags for TIFF, overriding pkg-config WEBP_CFLAGS C compiler flags for WEBP, overriding pkg-config WEBP_LIBS linker flags for WEBP, overriding pkg-config WEBPMUX_CFLAGS @@ -2183,7 +2201,7 @@ Some influential environment variables: XML_CFLAGS C compiler flags for XML, overriding pkg-config XML_LIBS linker flags for XML, overriding pkg-config -Use these variables to override the choices made by `configure' or to help +Use these variables to override the choices made by 'configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . @@ -2251,10 +2269,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ImageMagick configure 6.9.12-98 -generated by GNU Autoconf 2.71 +ImageMagick configure 6.9.13-25 +generated by GNU Autoconf 2.72 -Copyright (C) 2021 Free Software Foundation, Inc. +Copyright (C) 2023 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -2293,11 +2311,12 @@ printf "%s\n" "$ac_try_echo"; } >&5 } && test -s conftest.$ac_objext then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval @@ -2316,8 +2335,8 @@ printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> @@ -2325,10 +2344,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -2364,11 +2385,12 @@ printf "%s\n" "$ac_try_echo"; } >&5 } then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval @@ -2405,12 +2427,13 @@ printf "%s\n" "$ac_try_echo"; } >&5 test $ac_status = 0; }; } then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: program exited with status $ac_status" >&5 +else case e in #( + e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5 printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=$ac_status + ac_retval=$ac_status ;; +esac fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno @@ -2449,11 +2472,12 @@ printf "%s\n" "$ac_try_echo"; } >&5 } then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would @@ -2465,6 +2489,60 @@ fi } # ac_fn_c_try_link +# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR +# ------------------------------------------------------------------ +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. +ac_fn_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +printf %s "checking whether $as_decl_name is declared... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + eval ac_save_FLAGS=\$$6 + as_fn_append $6 " $5" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else case e in #( + e) eval "$3=no" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval $6=\$ac_save_FLAGS + ;; +esac +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_check_decl + # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly @@ -2476,15 +2554,15 @@ printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. */ + which can conflict with char $2 (void); below. */ #include #undef $2 @@ -2495,7 +2573,7 @@ else $as_nop #ifdef __cplusplus extern "C" #endif -char $2 (); +char $2 (void); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ @@ -2514,11 +2592,13 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$3=yes" -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -2555,11 +2635,12 @@ printf "%s\n" "$ac_try_echo"; } >&5 } && test -s conftest.$ac_objext then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval @@ -2593,11 +2674,12 @@ printf "%s\n" "$ac_try_echo"; } >&5 } then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval @@ -2635,11 +2717,12 @@ printf "%s\n" "$ac_try_echo"; } >&5 } then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would @@ -2663,8 +2746,8 @@ printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 @@ -2694,12 +2777,14 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - eval "$3=yes" +else case e in #( + e) eval "$3=yes" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -2720,8 +2805,8 @@ printf %s "checking for $2.$3... " >&6; } if eval test \${$4+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int @@ -2737,8 +2822,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$4=yes" -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int @@ -2754,12 +2839,15 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$4=yes" -else $as_nop - eval "$4=no" +else case e in #( + e) eval "$4=no" ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi eval ac_res=\$$4 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -2768,58 +2856,6 @@ printf "%s\n" "$ac_res" >&6; } } # ac_fn_c_check_member -# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR -# ------------------------------------------------------------------ -# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. -ac_fn_check_decl () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - as_decl_name=`echo $2|sed 's/ *(.*//'` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -printf %s "checking whether $as_decl_name is declared... " >&6; } -if eval test \${$3+y} -then : - printf %s "(cached) " >&6 -else $as_nop - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - eval ac_save_FLAGS=\$$6 - as_fn_append $6 " $5" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -#ifndef $as_decl_name -#ifdef __cplusplus - (void) $as_decl_use; -#else - (void) $as_decl_name; -#endif -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$3=yes" -else $as_nop - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - eval $6=\$ac_save_FLAGS - -fi -eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_check_decl - # ac_fn_c_find_intX_t LINENO BITS VAR # ----------------------------------- # Finds a signed integer type with width BITS, setting cache variable VAR @@ -2832,8 +2868,8 @@ printf %s "checking for int$2_t... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in int$2_t 'int' 'long int' \ @@ -2874,12 +2910,13 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - case $ac_type in #( +else case e in #( + e) case $ac_type in #( int$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; +esac ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext @@ -2888,10 +2925,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if eval test \"x\$"$3"\" = x"no" then : -else $as_nop - break +else case e in #( + e) break ;; +esac fi - done + done ;; +esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -2912,8 +2951,8 @@ printf %s "checking for uint$2_t... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ @@ -2945,10 +2984,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if eval test \"x\$"$3"\" = x"no" then : -else $as_nop - break +else case e in #( + e) break ;; +esac fi - done + done ;; +esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -3002,18 +3043,19 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_hi=$ac_mid; break -else $as_nop - as_fn_arith $ac_mid + 1 && ac_lo=$as_val +else case e in #( + e) as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int @@ -3048,20 +3090,23 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_lo=$ac_mid; break -else $as_nop - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val +else case e in #( + e) as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done -else $as_nop - ac_lo= ac_hi= +else case e in #( + e) ac_lo= ac_hi= ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # Binary search between lo and hi bounds. @@ -3084,8 +3129,9 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_hi=$ac_mid -else $as_nop - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +else case e in #( + e) as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done @@ -3133,8 +3179,9 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : echo >>conftest.val; read $3 &6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> @@ -3167,10 +3214,12 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : eval "$3=yes" -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -3202,8 +3251,8 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ImageMagick $as_me 6.9.12-98, which was -generated by GNU Autoconf 2.71. Invocation command line was +It was created by ImageMagick $as_me 6.9.13-25, which was +generated by GNU Autoconf 2.72. Invocation command line was $ $0$ac_configure_args_raw @@ -3449,10 +3498,10 @@ esac printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } fi done @@ -3489,9 +3538,7 @@ struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; +static char *e (char **p, int i) { return p[i]; } @@ -3505,6 +3552,21 @@ static char *f (char * (*g) (char **, int), char **p, ...) return s; } +/* C89 style stringification. */ +#define noexpand_stringify(a) #a +const char *stringified = noexpand_stringify(arbitrary+token=sequence); + +/* C89 style token pasting. Exercises some of the corner cases that + e.g. old MSVC gets wrong, but not very hard. */ +#define noexpand_concat(a,b) a##b +#define expand_concat(a,b) noexpand_concat(a,b) +extern int vA; +extern int vbee; +#define aye A +#define bee B +int *pvA = &expand_concat(v,aye); +int *pvbee = &noexpand_concat(v,bee); + /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not \xHH hex character constants. These do not provoke an error unfortunately, instead are silently treated @@ -3532,16 +3594,19 @@ ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' -// Does the compiler advertise C99 conformance? +/* Does the compiler advertise C99 conformance? */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif +// See if C++-style comments work. + #include extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); +extern void free (void *); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare @@ -3591,7 +3656,6 @@ typedef const char *ccp; static inline int test_restrict (ccp restrict text) { - // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) @@ -3657,6 +3721,8 @@ ac_c_conftest_c99_main=' ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; + // Work around memory leak warnings. + free (ia); // Check named initializers. struct named_init ni = { @@ -3678,7 +3744,7 @@ ac_c_conftest_c99_main=' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' -// Does the compiler advertise C11 conformance? +/* Does the compiler advertise C11 conformance? */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif @@ -4089,8 +4155,9 @@ IFS=$as_save_IFS if $as_found then : -else $as_nop - as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +else case e in #( + e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;; +esac fi @@ -4118,12 +4185,12 @@ for ac_var in $ac_precious_vars; do eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) @@ -4132,18 +4199,18 @@ printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. @@ -4159,11 +4226,11 @@ printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi done if $ac_cache_corrupted; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## @@ -4200,15 +4267,16 @@ printf %s "checking build system type... " >&6; } if test ${ac_cv_build+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_build_alias=$build_alias +else case e in #( + e) ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 printf "%s\n" "$ac_cv_build" >&6; } @@ -4235,14 +4303,15 @@ printf %s "checking host system type... " >&6; } if test ${ac_cv_host+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "x$host_alias" = x; then +else case e in #( + e) if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 printf "%s\n" "$ac_cv_host" >&6; } @@ -4269,14 +4338,15 @@ printf %s "checking target system type... " >&6; } if test ${ac_cv_target+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "x$target_alias" = x; then +else case e in #( + e) if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "${ac_aux_dir}config.sub" $target_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $target_alias failed" "$LINENO" 5 fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 printf "%s\n" "$ac_cv_target" >&6; } @@ -4328,8 +4398,8 @@ if test -z "$INSTALL"; then if test ${ac_cv_path_install+y} then : printf %s "(cached) " >&6 -else $as_nop - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +else case e in #( + e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS @@ -4383,7 +4453,8 @@ esac IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir - + ;; +esac fi if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install @@ -4479,7 +4550,7 @@ test "$program_prefix" != NONE && test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. -# By default was `s,x,x', remove it if useless. +# By default was 's,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` @@ -4522,8 +4593,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$STRIP"; then +else case e in #( + e) if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4545,7 +4616,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then @@ -4567,8 +4639,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_STRIP"; then +else case e in #( + e) if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4590,7 +4662,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then @@ -4626,8 +4699,8 @@ if test -z "$MKDIR_P"; then if test ${ac_cv_path_mkdir+y} then : printf %s "(cached) " >&6 -else $as_nop - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +else case e in #( + e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS @@ -4641,7 +4714,7 @@ do as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir ('*'coreutils) '* | \ - 'BusyBox '* | \ + *'BusyBox '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; @@ -4650,18 +4723,17 @@ do done done IFS=$as_save_IFS - + ;; +esac fi test -d ./--version && rmdir ./--version if test ${ac_cv_path_mkdir+y}; then MKDIR_P="$ac_cv_path_mkdir -p" else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" + # As a last resort, use plain mkdir -p, + # in the hope it doesn't have the bugs of ancient mkdir. + MKDIR_P='mkdir -p' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 @@ -4676,8 +4748,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AWK"; then +else case e in #( + e) if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4699,7 +4771,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then @@ -4721,8 +4794,8 @@ ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval test \${ac_cv_prog_make_${ac_make}_set+y} then : printf %s "(cached) " >&6 -else $as_nop - cat >conftest.make <<\_ACEOF +else case e in #( + e) cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' @@ -4734,7 +4807,8 @@ case `${MAKE-make} -f conftest.make 2>/dev/null` in *) eval ac_cv_prog_make_${ac_make}_set=no;; esac -rm -f conftest.make +rm -f conftest.make ;; +esac fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -4772,8 +4846,8 @@ printf %s "checking whether $am_make supports nested variables... " >&6; } if test ${am_cv_make_support_nested_variables+y} then : printf %s "(cached) " >&6 -else $as_nop - if printf "%s\n" 'TRUE=$(BAR$(V)) +else case e in #( + e) if printf "%s\n" 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 @@ -4783,7 +4857,8 @@ am__doit: am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no -fi +fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } @@ -4818,7 +4893,7 @@ fi # Define the identity of the package. PACKAGE='ImageMagick' - VERSION='6.9.12-98' + VERSION='6.9.13-25' # Some tools Automake needs. @@ -4965,8 +5040,9 @@ printf %s "checking how to create a ustar tar archive... " >&6; } if test ${am_cv_prog_tar_ustar+y} then : printf %s "(cached) " >&6 -else $as_nop - am_cv_prog_tar_ustar=$_am_tool +else case e in #( + e) am_cv_prog_tar_ustar=$_am_tool ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 @@ -5051,8 +5127,8 @@ printf %s "checking whether $am_make supports nested variables... " >&6; } if test ${am_cv_make_support_nested_variables+y} then : printf %s "(cached) " >&6 -else $as_nop - if printf "%s\n" 'TRUE=$(BAR$(V)) +else case e in #( + e) if printf "%s\n" 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 @@ -5062,7 +5138,8 @@ am__doit: am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no -fi +fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } @@ -5120,13 +5197,13 @@ MAGICK_MAJOR_VERSION=6 MAGICK_MINOR_VERSION=9 -MAGICK_MICRO_VERSION=12 +MAGICK_MICRO_VERSION=13 -MAGICK_PATCHLEVEL_VERSION=98 +MAGICK_PATCHLEVEL_VERSION=25 -MAGICK_VERSION=6.9.12-98 +MAGICK_VERSION=6.9.13-25 -MAGICK_GIT_REVISION=20231008 +MAGICK_GIT_REVISION=20250329 # Substitute library versioning @@ -5146,21 +5223,21 @@ MAGICKPP_LIBRARY_CURRENT_MIN=`expr $MAGICKPP_LIBRARY_CURRENT - $MAGICKPP_LIBRARY MAGICKPP_LIBRARY_VERSION_INFO=$MAGICKPP_LIBRARY_CURRENT:$MAGICKPP_LIBRARY_REVISION:$MAGICKPP_LIBRARY_AGE -PACKAGE_BASE_VERSION=6.9.12 +PACKAGE_BASE_VERSION=6.9.13 -PACKAGE_PATCHLEVEL_VERSION=98 +PACKAGE_PATCHLEVEL_VERSION=25 if test "n" = 'y'; then - PACKAGE_VERSION_ADDENDUM='-98 (Beta)' + PACKAGE_VERSION_ADDENDUM='-25 (Beta)' else - PACKAGE_VERSION_ADDENDUM=-98 + PACKAGE_VERSION_ADDENDUM=-25 fi -PACKAGE_LIB_VERSION=0x69C +PACKAGE_LIB_VERSION=0x69D -PACKAGE_LIB_VERSION_NUMBER=6,9,12,98 +PACKAGE_LIB_VERSION_NUMBER=6,9,13,25 -PACKAGE_RELEASE_DATE=2023-10-08 +PACKAGE_RELEASE_DATE=2025-03-29 # Ensure that make can run correctly @@ -5453,8 +5530,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5476,7 +5553,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -5498,8 +5576,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5521,7 +5599,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -5556,8 +5635,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5579,7 +5658,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -5601,8 +5681,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no @@ -5641,7 +5721,8 @@ if test $ac_prog_rejected = yes; then ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -5665,8 +5746,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5688,7 +5769,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -5714,8 +5796,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5737,7 +5819,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -5775,8 +5858,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5798,7 +5881,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -5820,8 +5904,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5843,7 +5927,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -5872,10 +5957,10 @@ fi fi -test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -5947,8 +6032,8 @@ printf "%s\n" "$ac_try_echo"; } >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' + # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'. +# So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. @@ -5968,7 +6053,7 @@ do ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' + # safe: cross compilers may not add the suffix if given an '-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. @@ -5979,8 +6064,9 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else $as_nop - ac_file='' +else case e in #( + e) ac_file='' ;; +esac fi if test -z "$ac_file" then : @@ -5989,13 +6075,14 @@ printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } +See 'config.log' for more details" "$LINENO" 5; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } @@ -6019,10 +6106,10 @@ printf "%s\n" "$ac_try_echo"; } >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. + # If both 'conftest.exe' and 'conftest' are 'present' (well, observable) +# catch 'conftest.exe'. For instance with Cygwin, 'ls conftest' will +# work properly (i.e., refer to 'conftest.exe'), while it won't with +# 'rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in @@ -6032,11 +6119,12 @@ for ac_file in conftest.exe conftest conftest.*; do * ) break;; esac done -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 @@ -6052,6 +6140,8 @@ int main (void) { FILE *f = fopen ("conftest.out", "w"); + if (!f) + return 1; return ferror (f) || fclose (f) != 0; ; @@ -6091,26 +6181,27 @@ printf "%s\n" "$ac_try_echo"; } >&5 if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } +If you meant to cross compile, use '--host'. +See 'config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +rm -f conftest.$ac_ext conftest$ac_cv_exeext \ + conftest.o conftest.obj conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -6142,16 +6233,18 @@ then : break;; esac done -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext +rm -f conftest.$ac_cv_objext conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } @@ -6162,8 +6255,8 @@ printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -6180,12 +6273,14 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } @@ -6203,8 +6298,8 @@ printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_c_werror_flag=$ac_c_werror_flag +else case e in #( + e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" @@ -6222,8 +6317,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes -else $as_nop - CFLAGS="" +else case e in #( + e) CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6238,8 +6333,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - ac_c_werror_flag=$ac_save_c_werror_flag +else case e in #( + e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6256,12 +6351,15 @@ if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag + ac_c_werror_flag=$ac_save_c_werror_flag ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } @@ -6288,8 +6386,8 @@ printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c11=no +else case e in #( + e) ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6306,25 +6404,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c11" = x +else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } - CC="$CC $ac_cv_prog_cc_c11" + CC="$CC $ac_cv_prog_cc_c11" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 - ac_prog_cc_stdc=c11 + ac_prog_cc_stdc=c11 ;; +esac fi fi if test x$ac_prog_cc_stdc = xno @@ -6334,8 +6435,8 @@ printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c99=no +else case e in #( + e) ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6352,25 +6453,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c99" = x +else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } - CC="$CC $ac_cv_prog_cc_c99" + CC="$CC $ac_cv_prog_cc_c99" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 - ac_prog_cc_stdc=c99 + ac_prog_cc_stdc=c99 ;; +esac fi fi if test x$ac_prog_cc_stdc = xno @@ -6380,8 +6484,8 @@ printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c89=no +else case e in #( + e) ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6398,25 +6502,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c89" = x +else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } - CC="$CC $ac_cv_prog_cc_c89" + CC="$CC $ac_cv_prog_cc_c89" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 - ac_prog_cc_stdc=c89 + ac_prog_cc_stdc=c89 ;; +esac fi fi @@ -6437,8 +6544,8 @@ printf %s "checking whether $CC understands -c and -o together... " >&6; } if test ${am_cv_prog_cc_c_o+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -6468,7 +6575,8 @@ _ACEOF fi done rm -f core conftest* - unset am_i + unset am_i ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } @@ -6494,8 +6602,8 @@ printf %s "checking dependency style of $depcc... " >&6; } if test ${am_cv_CC_dependencies_compiler_type+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then +else case e in #( + e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up @@ -6599,7 +6707,8 @@ else $as_nop else am_cv_CC_dependencies_compiler_type=none fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } @@ -6657,8 +6766,8 @@ printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; } if test ${ac_cv_safe_to_define___extensions__+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 @@ -6674,10 +6783,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_safe_to_define___extensions__=yes -else $as_nop - ac_cv_safe_to_define___extensions__=no +else case e in #( + e) ac_cv_safe_to_define___extensions__=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; } @@ -6687,8 +6798,8 @@ printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; } if test ${ac_cv_should_define__xopen_source+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_should_define__xopen_source=no +else case e in #( + e) ac_cv_should_define__xopen_source=no if test $ac_cv_header_wchar_h = yes then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6707,8 +6818,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 500 @@ -6726,10 +6837,12 @@ if ac_fn_c_try_compile "$LINENO" then : ac_cv_should_define__xopen_source=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi +fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } @@ -6754,6 +6867,8 @@ printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h + printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h + printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h @@ -6773,8 +6888,9 @@ then : printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h -else $as_nop - MINIX= +else case e in #( + e) MINIX= ;; +esac fi if test $ac_cv_safe_to_define___extensions__ = yes then : @@ -6802,8 +6918,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AR"; then +else case e in #( + e) if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -6825,7 +6941,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi AR=$ac_cv_prog_AR if test -n "$AR"; then @@ -6851,8 +6968,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_AR"; then +else case e in #( + e) if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -6874,7 +6991,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then @@ -6909,8 +7027,8 @@ printf %s "checking the archiver ($AR) interface... " >&6; } if test ${am_cv_ar_interface+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_ext=c +else case e in #( + e) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -6953,7 +7071,8 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 printf "%s\n" "$am_cv_ar_interface" >&6; } @@ -6988,8 +7107,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7011,7 +7130,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -7033,8 +7153,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7056,7 +7176,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -7091,8 +7212,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7114,7 +7235,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -7136,8 +7258,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no @@ -7176,7 +7298,8 @@ if test $ac_prog_rejected = yes; then ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -7200,8 +7323,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7223,7 +7346,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -7249,8 +7373,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7272,7 +7396,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -7310,8 +7435,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7333,7 +7458,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -7355,8 +7481,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7378,7 +7504,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -7407,10 +7534,10 @@ fi fi -test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -7442,8 +7569,8 @@ printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -7460,12 +7587,14 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } @@ -7483,8 +7612,8 @@ printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_c_werror_flag=$ac_c_werror_flag +else case e in #( + e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" @@ -7502,8 +7631,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes -else $as_nop - CFLAGS="" +else case e in #( + e) CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7518,8 +7647,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - ac_c_werror_flag=$ac_save_c_werror_flag +else case e in #( + e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7536,12 +7665,15 @@ if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag + ac_c_werror_flag=$ac_save_c_werror_flag ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } @@ -7568,8 +7700,8 @@ printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c11=no +else case e in #( + e) ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7586,25 +7718,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c11" = x +else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } - CC="$CC $ac_cv_prog_cc_c11" + CC="$CC $ac_cv_prog_cc_c11" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 - ac_prog_cc_stdc=c11 + ac_prog_cc_stdc=c11 ;; +esac fi fi if test x$ac_prog_cc_stdc = xno @@ -7614,8 +7749,8 @@ printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c99=no +else case e in #( + e) ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7632,25 +7767,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c99" = x +else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } - CC="$CC $ac_cv_prog_cc_c99" + CC="$CC $ac_cv_prog_cc_c99" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 - ac_prog_cc_stdc=c99 + ac_prog_cc_stdc=c99 ;; +esac fi fi if test x$ac_prog_cc_stdc = xno @@ -7660,8 +7798,8 @@ printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c89=no +else case e in #( + e) ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7678,25 +7816,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c89" = x +else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } - CC="$CC $ac_cv_prog_cc_c89" + CC="$CC $ac_cv_prog_cc_c89" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 - ac_prog_cc_stdc=c89 + ac_prog_cc_stdc=c89 ;; +esac fi fi @@ -7717,8 +7858,8 @@ printf %s "checking whether $CC understands -c and -o together... " >&6; } if test ${am_cv_prog_cc_c_o+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -7748,7 +7889,8 @@ _ACEOF fi done rm -f core conftest* - unset am_i + unset am_i ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } @@ -7774,8 +7916,8 @@ printf %s "checking dependency style of $depcc... " >&6; } if test ${am_cv_CC_dependencies_compiler_type+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then +else case e in #( + e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up @@ -7879,7 +8021,8 @@ else $as_nop else am_cv_CC_dependencies_compiler_type=none fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } @@ -7911,8 +8054,8 @@ if test -z "$CPP"; then if test ${ac_cv_prog_CPP+y} then : printf %s "(cached) " >&6 -else $as_nop - # Double quotes because $CC needs to be expanded +else case e in #( + e) # Double quotes because $CC needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp do ac_preproc_ok=false @@ -7930,9 +8073,10 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : -else $as_nop - # Broken: fails on valid input. -continue +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -7946,15 +8090,16 @@ if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue -else $as_nop - # Passes both tests. +else case e in #( + e) # Passes both tests. ac_preproc_ok=: -break +break ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : @@ -7963,7 +8108,8 @@ fi done ac_cv_prog_CPP=$CPP - + ;; +esac fi CPP=$ac_cv_prog_CPP else @@ -7986,9 +8132,10 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : -else $as_nop - # Broken: fails on valid input. -continue +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -8002,24 +8149,26 @@ if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue -else $as_nop - # Passes both tests. +else case e in #( + e) # Passes both tests. ac_preproc_ok=: -break +break ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi ac_ext=c @@ -8033,8 +8182,8 @@ printf %s "checking for a sed that does not truncate output... " >&6; } if test ${ac_cv_path_SED+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ +else case e in #( + e) ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done @@ -8059,9 +8208,10 @@ do as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in +case `"$ac_path_SED" --version 2>&1` in #( *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +#( *) ac_count=0 printf %s 0123456789 >"conftest.in" @@ -8096,7 +8246,8 @@ IFS=$as_save_IFS else ac_cv_path_SED=$SED fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 printf "%s\n" "$ac_cv_path_SED" >&6; } @@ -8121,8 +8272,8 @@ printf %s "checking for grep that handles long lines and -e... " >&6; } if test ${ac_cv_path_GREP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$GREP"; then +else case e in #( + e) if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8141,9 +8292,10 @@ do as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in +case `"$ac_path_GREP" --version 2>&1` in #( *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +#( *) ac_count=0 printf %s 0123456789 >"conftest.in" @@ -8178,7 +8330,8 @@ IFS=$as_save_IFS else ac_cv_path_GREP=$GREP fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 printf "%s\n" "$ac_cv_path_GREP" >&6; } @@ -8190,8 +8343,8 @@ printf %s "checking for egrep... " >&6; } if test ${ac_cv_path_EGREP+y} then : printf %s "(cached) " >&6 -else $as_nop - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 +else case e in #( + e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then @@ -8213,9 +8366,10 @@ do as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in +case `"$ac_path_EGREP" --version 2>&1` in #( *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +#( *) ac_count=0 printf %s 0123456789 >"conftest.in" @@ -8251,20 +8405,23 @@ else ac_cv_path_EGREP=$EGREP fi - fi + fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 printf "%s\n" "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" + EGREP_TRADITIONAL=$EGREP + ac_cv_path_EGREP_TRADITIONAL=$EGREP { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 printf %s "checking for fgrep... " >&6; } if test ${ac_cv_path_FGREP+y} then : printf %s "(cached) " >&6 -else $as_nop - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 +else case e in #( + e) if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then @@ -8286,9 +8443,10 @@ do as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in +case `"$ac_path_FGREP" --version 2>&1` in #( *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +#( *) ac_count=0 printf %s 0123456789 >"conftest.in" @@ -8324,7 +8482,8 @@ else ac_cv_path_FGREP=$FGREP fi - fi + fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 printf "%s\n" "$ac_cv_path_FGREP" >&6; } @@ -8407,8 +8566,9 @@ esac if test ${with_gnu_ld+y} then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes -else $as_nop - with_gnu_ld=no +else case e in #( + e) with_gnu_ld=no ;; +esac fi ac_prog=ld @@ -8453,8 +8613,8 @@ fi if test ${lt_cv_path_LD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$LD"; then +else case e in #( + e) if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs @@ -8477,7 +8637,8 @@ else $as_nop IFS=$lt_save_ifs else lt_cv_path_LD=$LD # Let the user override the test with a path. -fi +fi ;; +esac fi LD=$lt_cv_path_LD @@ -8494,8 +8655,8 @@ printf %s "checking if the linker ($LD) is GNU ld... " >&6; } if test ${lt_cv_prog_gnu_ld+y} then : printf %s "(cached) " >&6 -else $as_nop - # I'd rather use --version here, but apparently some GNU lds only accept -v. +else case e in #( + e) # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &1 &5 @@ -8524,8 +8686,8 @@ printf %s "checking for C compiler vendor... " >&6; } if test ${ax_cv_c_compiler_vendor+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) vendors=" intel: __ICC,__ECC,__INTEL_COMPILER ibm: __xlc__,__xlC__,__IBMC__,__IBMCPP__,__ibmxl__ @@ -8586,7 +8748,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done ax_cv_c_compiler_vendor=`echo $vendor | cut -d: -f1` - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_compiler_vendor" >&5 printf "%s\n" "$ax_cv_c_compiler_vendor" >&6; } @@ -8606,8 +8769,8 @@ printf %s "checking CFLAGS for most reasonable warnings... " >&6; } if test ${ac_cv_cflags_warn_all+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ac_cv_cflags_warn_all="" ac_save_cflags_warn_all_found="yes" case "$ax_cv_c_compiler_vendor" in #( @@ -8696,23 +8859,26 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CFLAGS=$ac_cv_cflags_warn_all { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi -else $as_nop - true - -fi +else case e in #( + e) true + ;; +esac +fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_warn_all" >&5 printf "%s\n" "$ac_cv_cflags_warn_all" >&6; } @@ -8732,8 +8898,8 @@ ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval test \${ac_cv_prog_make_${ac_make}_set+y} then : printf %s "(cached) " >&6 -else $as_nop - cat >conftest.make <<\_ACEOF +else case e in #( + e) cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' @@ -8745,7 +8911,8 @@ case `${MAKE-make} -f conftest.make 2>/dev/null` in *) eval ac_cv_prog_make_${ac_make}_set=no;; esac -rm -f conftest.make +rm -f conftest.make ;; +esac fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -8773,8 +8940,8 @@ printf %s "checking for a sed that does not truncate output... " >&6; } if test ${ac_cv_path_SED+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ +else case e in #( + e) ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done @@ -8799,9 +8966,10 @@ do as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in +case `"$ac_path_SED" --version 2>&1` in #( *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +#( *) ac_count=0 printf %s 0123456789 >"conftest.in" @@ -8836,7 +9004,8 @@ IFS=$as_save_IFS else ac_cv_path_SED=$SED fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 printf "%s\n" "$ac_cv_path_SED" >&6; } @@ -8852,8 +9021,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AWK"; then +else case e in #( + e) if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8875,7 +9044,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then @@ -8909,9 +9079,10 @@ else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ;; +esac fi @@ -8921,8 +9092,8 @@ printf %s "checking for __attribute__... " >&6; } if test ${ax_cv___attribute__+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include static void foo(void) __attribute__ ((unused)); @@ -8942,12 +9113,14 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv___attribute__=yes -else $as_nop - ax_cv___attribute__=no - +else case e in #( + e) ax_cv___attribute__=no + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv___attribute__" >&5 printf "%s\n" "$ax_cv___attribute__" >&6; } @@ -8967,8 +9140,9 @@ printf "%s\n" "#define HAVE___ATTRIBUTE__ 1" >>confdefs.h if test ${with_gcc_arch+y} then : withval=$with_gcc_arch; ax_gcc_arch=$withval -else $as_nop - ax_gcc_arch=yes +else case e in #( + e) ax_gcc_arch=yes ;; +esac fi @@ -8979,8 +9153,8 @@ printf "%s\n" "" >&6; } if test ${ax_cv_gcc_archflag+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_cv_gcc_archflag="unknown" if test "$GCC" = yes; then @@ -9002,12 +9176,12 @@ printf %s "checking for x86 cpuid 0 output... " >&6; } if test ${ax_cv_gcc_x86_cpuid_0+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes +else case e in #( + e) if test "$cross_compiling" = yes then : ax_cv_gcc_x86_cpuid_0=unknown -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -9034,13 +9208,16 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid -else $as_nop - ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid +else case e in #( + e) ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0" >&5 printf "%s\n" "$ax_cv_gcc_x86_cpuid_0" >&6; } @@ -9064,12 +9241,12 @@ printf %s "checking for x86 cpuid 1 output... " >&6; } if test ${ax_cv_gcc_x86_cpuid_1+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes +else case e in #( + e) if test "$cross_compiling" = yes then : ax_cv_gcc_x86_cpuid_1=unknown -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -9096,13 +9273,16 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid -else $as_nop - ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid +else case e in #( + e) ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_1" >&5 printf "%s\n" "$ax_cv_gcc_x86_cpuid_1" >&6; } @@ -9193,8 +9373,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PRTDIAG+y} then : printf %s "(cached) " >&6 -else $as_nop - case $PRTDIAG in +else case e in #( + e) case $PRTDIAG in [\\/]* | ?:[\\/]*) ac_cv_path_PRTDIAG="$PRTDIAG" # Let the user override the test with a path. ;; @@ -9221,6 +9401,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_PRTDIAG" && ac_cv_path_PRTDIAG="prtdiag" ;; +esac ;; esac fi PRTDIAG=$ac_cv_path_PRTDIAG @@ -9314,14 +9495,14 @@ fi for flag_prefix in $flag_prefixes; do for arch in $ax_gcc_arch; do flag="$flag_prefix$arch" - as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$flag" | $as_tr_sh` + as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$flag" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 printf %s "checking whether C compiler accepts $flag... " >&6; } if eval test \${$as_CACHEVAR+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS $flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -9338,11 +9519,13 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$as_CACHEVAR=yes" -else $as_nop - eval "$as_CACHEVAR=no" +else case e in #( + e) eval "$as_CACHEVAR=no" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags + CFLAGS=$ax_check_save_flags ;; +esac fi eval ac_res=\$$as_CACHEVAR { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -9354,8 +9537,9 @@ then : if test "x$flag" = "x-march=$arch"; then flag=-mtune=$arch; fi fi fi; ax_cv_gcc_archflag=$flag; break -else $as_nop - : +else case e in #( + e) : ;; +esac fi done @@ -9364,7 +9548,8 @@ done fi fi # $GCC=yes - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gcc architecture flag" >&5 @@ -9393,8 +9578,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PKG_CONFIG+y} then : printf %s "(cached) " >&6 -else $as_nop - case $PKG_CONFIG in +else case e in #( + e) case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; @@ -9419,6 +9604,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG @@ -9441,8 +9627,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_ac_pt_PKG_CONFIG+y} then : printf %s "(cached) " >&6 -else $as_nop - case $ac_pt_PKG_CONFIG in +else case e in #( + e) case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; @@ -9467,6 +9653,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG @@ -9515,8 +9702,8 @@ printf %s "checking for C compiler vendor... " >&6; } if test ${ax_cv_c_compiler_vendor+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) vendors=" intel: __ICC,__ECC,__INTEL_COMPILER ibm: __xlc__,__xlC__,__IBMC__,__IBMCPP__,__ibmxl__ @@ -9577,7 +9764,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done ax_cv_c_compiler_vendor=`echo $vendor | cut -d: -f1` - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_compiler_vendor" >&5 printf "%s\n" "$ax_cv_c_compiler_vendor" >&6; } @@ -9598,14 +9786,14 @@ fi if test ${enable_ld_version_script+y} then : enableval=$enable_ld_version_script; have_ld_version_script=$enableval -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if LD -Wl,--version-script works" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if LD -Wl,--version-script works" >&5 printf %s "checking if LD -Wl,--version-script works... " >&6; } if test ${gl_cv_sys_ld_version_script+y} then : printf %s "(cached) " >&6 -else $as_nop - gl_cv_sys_ld_version_script=no +else case e in #( + e) gl_cv_sys_ld_version_script=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" echo foo >conftest.map @@ -9623,8 +9811,8 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : -else $as_nop - cat > conftest.map < conftest.map <&5 printf "%s\n" "$gl_cv_sys_ld_version_script" >&6; } - have_ld_version_script=$gl_cv_sys_ld_version_script + have_ld_version_script=$gl_cv_sys_ld_version_script ;; +esac fi if test "$have_ld_version_script" = yes; then @@ -9678,8 +9869,9 @@ fi if test ${enable_bounds_checking+y} then : enableval=$enable_bounds_checking; enable_bounds_checking=$enableval -else $as_nop - enable_bounds_checking='no' +else case e in #( + e) enable_bounds_checking='no' ;; +esac fi @@ -9755,8 +9947,8 @@ printf %s "checking for linker lazyload option... " >&6; } if test ${im_cv_ld_lazyload+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) im_cv_ld_lazyload='none' case "${host}" in *-*-solaris2.8 | *-*-solaris2.9 | *-*-solaris2.1? ) @@ -9765,7 +9957,8 @@ case "${host}" in fi ;; esac - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $im_cv_ld_lazyload" >&5 printf "%s\n" "$im_cv_ld_lazyload" >&6; } @@ -9784,8 +9977,9 @@ case "$host" in if test ${enable_osx_universal_binary+y} then : enableval=$enable_osx_universal_binary; build_osxuniversal="${enableval}" -else $as_nop - build_osxuniversal=no +else case e in #( + e) build_osxuniversal=no ;; +esac fi @@ -9811,8 +10005,9 @@ esac if test ${with_includearch_dir+y} then : withval=$with_includearch_dir; includearch_dir=$withval -else $as_nop - includearch_dir=$INCLUDE_DIR +else case e in #( + e) includearch_dir=$INCLUDE_DIR ;; +esac fi @@ -9827,8 +10022,9 @@ eval "eval INCLUDEARCH_DIR=$includearch_dir" if test ${with_sharearch_dir+y} then : withval=$with_sharearch_dir; sharearch_dir=$withval -else $as_nop - sharearch_dir="${LIB_DIR}" +else case e in #( + e) sharearch_dir="${LIB_DIR}" ;; +esac fi @@ -9841,8 +10037,9 @@ eval "eval SHAREARCH_DIR=$sharearch_dir" if test ${with_pkgconfigdir+y} then : withval=$with_pkgconfigdir; pkgconfigdir="$withval" -else $as_nop - pkgconfigdir='${libdir}/pkgconfig' +else case e in #( + e) pkgconfigdir='${libdir}/pkgconfig' ;; +esac fi @@ -9855,8 +10052,9 @@ fi if test ${with_threads+y} then : withval=$with_threads; with_threads=$withval -else $as_nop - with_threads='yes' +else case e in #( + e) with_threads='yes' ;; +esac fi @@ -9864,6 +10062,140 @@ THREAD_LIBS='' have_threads=no if test "$with_threads" != 'no'; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5 +printf %s "checking for egrep -e... " >&6; } +if test ${ac_cv_path_EGREP_TRADITIONAL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -z "$EGREP_TRADITIONAL"; then + ac_path_EGREP_TRADITIONAL_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in grep ggrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue +# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found. + # Check for GNU $ac_path_EGREP_TRADITIONAL +case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #( +*GNU*) + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl" + "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" + ac_path_EGREP_TRADITIONAL_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_TRADITIONAL_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then + : + fi +else + ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL +fi + + if test "$ac_cv_path_EGREP_TRADITIONAL" +then : + ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E" +else case e in #( + e) if test -z "$EGREP_TRADITIONAL"; then + ac_path_EGREP_TRADITIONAL_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue +# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found. + # Check for GNU $ac_path_EGREP_TRADITIONAL +case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #( +*GNU*) + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl" + "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" + ac_path_EGREP_TRADITIONAL_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_TRADITIONAL_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL +fi + ;; +esac +fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5 +printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; } + EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL + @@ -9904,8 +10236,14 @@ printf %s "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pthread_join (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_join (void); int main (void) { @@ -9999,7 +10337,7 @@ case $host_os in _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1 + $EGREP_TRADITIONAL "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1 then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5 printf "%s\n" "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;} @@ -10029,8 +10367,8 @@ printf %s "checking whether $CC is Clang... " >&6; } if test ${ax_cv_PTHREAD_CLANG+y} then : printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_CLANG=no +else case e in #( + e) ax_cv_PTHREAD_CLANG=no # Note that Autoconf sets GCC=yes for Clang as well as GCC if test "x$GCC" = "xyes"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10042,14 +10380,15 @@ else $as_nop _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1 + $EGREP_TRADITIONAL "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1 then : ax_cv_PTHREAD_CLANG=yes fi rm -rf conftest* fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5 printf "%s\n" "$ax_cv_PTHREAD_CLANG" >&6; } @@ -10079,7 +10418,7 @@ then : fi -# The presence of a feature test macro requesting reentrant function +# The presence of a feature test macro requesting re-entrant function # definitions is, on some systems, a strong hint that pthreads support is # correctly enabled @@ -10099,8 +10438,9 @@ esac if test "x$ax_pthread_check_macro" = "x--" then : ax_pthread_check_cond=0 -else $as_nop - ax_pthread_check_cond="!defined($ax_pthread_check_macro)" +else case e in #( + e) ax_pthread_check_cond="!defined($ax_pthread_check_macro)" ;; +esac fi @@ -10134,8 +10474,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ax_pthread_config+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ax_pthread_config"; then +else case e in #( + e) if test -n "$ax_pthread_config"; then ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10158,7 +10498,8 @@ done IFS=$as_save_IFS test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" -fi +fi ;; +esac fi ax_pthread_config=$ac_cv_prog_ax_pthread_config if test -n "$ax_pthread_config"; then @@ -10291,8 +10632,8 @@ printf %s "checking whether Clang needs flag to prevent \"argument unused\" warn if test ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+y} then : printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown +else case e in #( + e) ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown # Create an alternate version of $ac_link that compiles and # links in two steps (.c -> .o, .o -> exe) instead of one # (.c -> exe), because the warning occurs only in the second @@ -10338,7 +10679,8 @@ then : ax_pthread_try=no fi ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5 printf "%s\n" "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; } @@ -10365,8 +10707,8 @@ printf %s "checking for joinable pthread attribute... " >&6; } if test ${ax_cv_PTHREAD_JOINABLE_ATTR+y} then : printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_JOINABLE_ATTR=unknown +else case e in #( + e) ax_cv_PTHREAD_JOINABLE_ATTR=unknown for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10386,7 +10728,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5 printf "%s\n" "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; } @@ -10406,14 +10749,15 @@ printf %s "checking whether more special flags are required for pthreads... " >& if test ${ax_cv_PTHREAD_SPECIAL_FLAGS+y} then : printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_SPECIAL_FLAGS=no +else case e in #( + e) ax_cv_PTHREAD_SPECIAL_FLAGS=no case $host_os in solaris*) ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" ;; esac - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5 printf "%s\n" "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; } @@ -10429,8 +10773,8 @@ printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; } if test ${ax_cv_PTHREAD_PRIO_INHERIT+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -10445,12 +10789,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ax_cv_PTHREAD_PRIO_INHERIT=yes -else $as_nop - ax_cv_PTHREAD_PRIO_INHERIT=no +else case e in #( + e) ax_cv_PTHREAD_PRIO_INHERIT=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } @@ -10500,8 +10846,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_PTHREAD_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$PTHREAD_CC"; then +else case e in #( + e) if test -n "$PTHREAD_CC"; then ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10523,7 +10869,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi PTHREAD_CC=$ac_cv_prog_PTHREAD_CC if test -n "$PTHREAD_CC"; then @@ -10550,8 +10897,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_PTHREAD_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$PTHREAD_CXX"; then +else case e in #( + e) if test -n "$PTHREAD_CXX"; then ac_cv_prog_PTHREAD_CXX="$PTHREAD_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10573,7 +10920,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi PTHREAD_CXX=$ac_cv_prog_PTHREAD_CXX if test -n "$PTHREAD_CXX"; then @@ -10666,8 +11014,8 @@ printf %s "checking for $CC option to support OpenMP... " >&6; } if test ${ac_cv_prog_c_openmp+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_c_openmp='not found' +else case e in #( + e) ac_cv_prog_c_openmp='not found' for ac_option in '' -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp -homp \ -Popenmp --openmp; do @@ -10698,8 +11046,9 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_prog_c_openmp=$ac_option -else $as_nop - ac_cv_prog_c_openmp='unsupported' +else case e in #( + e) ac_cv_prog_c_openmp='unsupported' ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -10716,7 +11065,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext elif test "$ac_cv_prog_c_openmp" = ''; then ac_cv_prog_c_openmp='none needed' fi - rm -f penmp mp + rm -f penmp mp ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_c_openmp" >&5 printf "%s\n" "$ac_cv_prog_c_openmp" >&6; } @@ -10730,10 +11080,100 @@ printf "%s\n" "$ac_cv_prog_c_openmp" >&6; } CFLAGS="$OPENMP_CFLAGS $CFLAGS" MAGICK_PCFLAGS="$MAGICK_PCFLAGS $OPENMP_CFLAGS" -if test "$enable_openmp" != no; then - if test "$ac_cv_prog_c_openmp" != 'unsupported'; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } +if test ${ac_cv_c_undeclared_builtin_options+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_CFLAGS=$CFLAGS + ac_cv_c_undeclared_builtin_options='cannot detect' + for ac_arg in '' -fno-builtin; do + CFLAGS="$ac_save_CFLAGS $ac_arg" + # This test program should *not* compile successfully. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +(void) strchr; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else case e in #( + e) # This test program should compile successfully. + # No library function is consistently available on + # freestanding implementations, so test against a dummy + # declaration. Include always-available headers on the + # off chance that they somehow elicit warnings. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +extern void ac_decl (int, char *); + +int +main (void) +{ +(void) ac_decl (0, (char *) 0); + (void) ac_decl; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if test x"$ac_arg" = x +then : + ac_cv_c_undeclared_builtin_options='none needed' +else case e in #( + e) ac_cv_c_undeclared_builtin_options=$ac_arg ;; +esac +fi + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done + CFLAGS=$ac_save_CFLAGS + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 +printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } + case $ac_cv_c_undeclared_builtin_options in #( + 'cannot detect') : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "cannot make $CC report undeclared builtins +See 'config.log' for more details" "$LINENO" 5; } ;; #( + 'none needed') : + ac_c_undeclared_builtin_options='' ;; #( + *) : + ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; +esac + +ac_fn_check_decl "$LINENO" "_OPENMP" "ac_cv_have_decl__OPENMP" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl__OPENMP" = xyes +then : + OPENMP_ENABLED='yes' +else case e in #( + e) OPENMP_ENABLED='no' ;; +esac +fi +if test "${OPENMP_ENABLED}" = 'yes' && \ + test "$ac_cv_prog_c_openmp" != 'unsupported'; then MAGICK_FEATURES="OpenMP $MAGICK_FEATURES" - fi fi # Enable support for OpenCL @@ -10742,24 +11182,26 @@ no_cl=yes if test ${enable_opencl+y} then : enableval=$enable_opencl; enable_opencl=$enableval -else $as_nop - enable_opencl='no' +else case e in #( + e) enable_opencl='no' ;; +esac fi if test x"$enable_opencl" != xno ; then CL_CPPFLAGS="" for ac_header in CL/cl.h OpenCL/cl.h do : - as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 _ACEOF HAVE_CL_H="yes"; break -else $as_nop - HAVE_CL_H="no" +else case e in #( + e) HAVE_CL_H="no" ;; +esac fi done @@ -10828,8 +11270,8 @@ printf %s "checking for framework OpenCL... " >&6; } if test ${ax_cv_check_OpenCL+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -10852,8 +11294,9 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ax_cv_check_OpenCL="yes" -else $as_nop - ax_cv_check_OpenCL="no" +else case e in #( + e) ax_cv_check_OpenCL="no" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -10862,7 +11305,8 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_OpenCL" >&5 printf "%s\n" "$ax_cv_check_OpenCL" >&6; } @@ -10925,14 +11369,15 @@ printf "%s\n" "yes" >&6; } CL_VERSION=1 CL_LIBS="-L/usr/lib64/nvidia -L/usr/lib/nvidia -lOpenCL" -else $as_nop - +else case e in #( + e) no_cl=yes { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } CL_ENABLED=false CL_VERSION=0 - + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -10967,31 +11412,34 @@ if test ${enable_largefile+y} then : enableval=$enable_largefile; fi - -if test "$enable_largefile" != no; then - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -printf %s "checking for special C compiler options needed for large files... " >&6; } -if test ${ac_cv_sys_largefile_CC+y} +if test "$enable_largefile,$enable_year2038" != no,no +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable large file support" >&5 +printf %s "checking for $CC option to enable large file support... " >&6; } +if test ${ac_cv_sys_largefile_opts+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) ac_save_CC="$CC" + ac_opt_found=no + for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1" "-n32"; do + if test x"$ac_opt" != x"none needed" +then : + CC="$ac_save_CC $ac_opt" +fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, +#ifndef FTYPE +# define FTYPE off_t +#endif + /* Check that FTYPE can represent 2**63 - 1 correctly. + We can't simply define LARGE_FTYPE to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) +#define LARGE_FTYPE (((FTYPE) 1 << 31 << 31) - 1 + ((FTYPE) 1 << 31 << 31)) + int FTYPE_is_large[(LARGE_FTYPE % 2147483629 == 721 + && LARGE_FTYPE % 2147483647 == 1) ? 1 : -1]; int main (void) @@ -11001,142 +11449,88 @@ main (void) return 0; } _ACEOF - if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : - break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - CC="$CC -n32" + if test x"$ac_opt" = x"none needed" +then : + # GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t. + CC="$CC -DFTYPE=ino_t" if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_largefile_CC=' -n32'; break + +else case e in #( + e) CC="$CC -D_FILE_OFFSET_BITS=64" + if ac_fn_c_try_compile "$LINENO" +then : + ac_opt='-D_FILE_OFFSET_BITS=64' +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if test ${ac_cv_sys_file_offset_bits+y} -then : - printf %s "(cached) " >&6 -else $as_nop - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_sys_file_offset_bits=no; break + ac_cv_sys_largefile_opts=$ac_opt + ac_opt_found=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ + test $ac_opt_found = no || break + done + CC="$ac_save_CC" - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done + test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h -;; +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5 +printf "%s\n" "$ac_cv_sys_largefile_opts" >&6; } + +ac_have_largefile=yes +case $ac_cv_sys_largefile_opts in #( + "none needed") : + ;; #( + "supported through gnulib") : + ;; #( + "support not detected") : + ac_have_largefile=no ;; #( + "-D_FILE_OFFSET_BITS=64") : + +printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h + ;; #( + "-D_LARGE_FILES=1") : + +printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h + ;; #( + "-n32") : + CC="$CC -n32" ;; #( + *) : + as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;; esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -printf %s "checking for _LARGE_FILES value needed for large files... " >&6; } -if test ${ac_cv_sys_large_files+y} + +if test "$enable_year2038" != no +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option for timestamps after 2038" >&5 +printf %s "checking for $CC option for timestamps after 2038... " >&6; } +if test ${ac_cv_sys_year2038_opts+y} then : printf %s "(cached) " >&6 -else $as_nop - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" +else case e in #( + e) ac_save_CPPFLAGS="$CPPFLAGS" + ac_opt_found=no + for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do + if test x"$ac_opt" != x"none needed" then : - ac_cv_sys_large_files=no; break + CPPFLAGS="$ac_save_CPPFLAGS $ac_opt" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + + #include + /* Check that time_t can represent 2**32 - 1 correctly. */ + #define LARGE_TIME_T \\ + ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) + int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 + && LARGE_TIME_T % 65537 == 0) + ? 1 : -1]; + int main (void) { @@ -11147,92 +11541,139 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_large_files=1; break + ac_cv_sys_year2038_opts="$ac_opt" + ac_opt_found=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done + test $ac_opt_found = no || break + done + CPPFLAGS="$ac_save_CPPFLAGS" + test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -printf "%s\n" "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h -;; +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5 +printf "%s\n" "$ac_cv_sys_year2038_opts" >&6; } + +ac_have_year2038=yes +case $ac_cv_sys_year2038_opts in #( + "none needed") : + ;; #( + "support not detected") : + ac_have_year2038=no ;; #( + "-D_TIME_BITS=64") : + +printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h + ;; #( + "-D__MINGW_USE_VC2005_COMPAT") : + +printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h + ;; #( + "-U_USE_32_BIT_TIME_T"*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It +will stop working after mid-January 2038. Remove +_USE_32BIT_TIME_T from the compiler flags. +See 'config.log' for more details" "$LINENO" 5; } ;; #( + *) : + as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;; esac -rm -rf conftest* - fi + fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 -printf %s "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } -if test ${ac_cv_sys_largefile_source+y} +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for declarations of fseeko and ftello" >&5 +printf %s "checking for declarations of fseeko and ftello... " >&6; } +if test ${ac_cv_func_fseeko_ftello+y} then : printf %s "(cached) " >&6 -else $as_nop - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + +#if defined __hpux && !defined _LARGEFILE_SOURCE +# include +# if LONG_MAX >> 31 == 0 +# error "32-bit HP-UX 11/ia64 needs _LARGEFILE_SOURCE for fseeko in C++" +# endif +#endif #include /* for off_t */ - #include +#include + int main (void) { -int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); + + int (*fp1) (FILE *, off_t, int) = fseeko; + off_t (*fp2) (FILE *) = ftello; + return fseeko (stdin, 0, 0) + && fp1 (stdin, 0, 0) + && ftello (stdin) >= 0 + && fp2 (stdin) >= 0; + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_largefile_source=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_cv_func_fseeko_ftello=yes +else case e in #( + e) ac_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE=1" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define _LARGEFILE_SOURCE 1 + +#if defined __hpux && !defined _LARGEFILE_SOURCE +# include +# if LONG_MAX >> 31 == 0 +# error "32-bit HP-UX 11/ia64 needs _LARGEFILE_SOURCE for fseeko in C++" +# endif +#endif #include /* for off_t */ - #include +#include + int main (void) { -int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); + + int (*fp1) (FILE *, off_t, int) = fseeko; + off_t (*fp2) (FILE *) = ftello; + return fseeko (stdin, 0, 0) + && fp1 (stdin, 0, 0) + && ftello (stdin) >= 0 + && fp2 (stdin) >= 0; + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_largefile_source=1; break + ac_cv_func_fseeko_ftello="need _LARGEFILE_SOURCE" +else case e in #( + e) ac_cv_func_fseeko_ftello=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - ac_cv_sys_largefile_source=unknown - break -done +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 -printf "%s\n" "$ac_cv_sys_largefile_source" >&6; } -case $ac_cv_sys_largefile_source in #( - no | unknown) ;; - *) -printf "%s\n" "#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source" >>confdefs.h -;; +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac -rm -rf conftest* - -# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug -# in glibc 2.1.3, but that breaks too many other things. -# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. -if test $ac_cv_sys_largefile_source != unknown; then +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fseeko_ftello" >&5 +printf "%s\n" "$ac_cv_func_fseeko_ftello" >&6; } +if test "$ac_cv_func_fseeko_ftello" != no +then : printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h +fi +if test "$ac_cv_func_fseeko_ftello" = "need _LARGEFILE_SOURCE" +then : + +printf "%s\n" "#define _LARGEFILE_SOURCE 1" >>confdefs.h + fi LFS_CPPFLAGS='' @@ -11246,15 +11687,16 @@ if test "$enable_largefile" != no; then printf %s "checking for native large file support... " >&6; } if test "$cross_compiling" = yes then : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +See 'config.log' for more details" "$LINENO" 5; } +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - main () { + #include + int main () { exit(!(sizeof(off_t) == 8)); } int @@ -11271,16 +11713,21 @@ then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi ;; *) + if test "$ac_cv_sys_file_offset_bits" = ''; then + ac_cv_sys_file_offset_bits=64; + fi LFS_CPPFLAGS="$LFS_CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" ;; esac @@ -11302,8 +11749,8 @@ printf %s "checking Linux compatible sendfile()... " >&6; } if test ${ac_cv_have_linux_sendfile+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -11327,12 +11774,14 @@ then : ac_cv_have_linux_sendfile=yes -else $as_nop - +else case e in #( + e) ac_cv_have_linux_sendfile=no - + ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_linux_sendfile" >&5 printf "%s\n" "$ac_cv_have_linux_sendfile" >&6; } @@ -11402,8 +11851,8 @@ printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test ${lt_cv_path_NM+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$NM"; then +else case e in #( + e) if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else @@ -11450,7 +11899,8 @@ else IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} -fi +fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 printf "%s\n" "$lt_cv_path_NM" >&6; } @@ -11471,8 +11921,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DUMPBIN+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$DUMPBIN"; then +else case e in #( + e) if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11494,7 +11944,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then @@ -11520,8 +11971,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DUMPBIN+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DUMPBIN"; then +else case e in #( + e) if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11543,7 +11994,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then @@ -11597,8 +12049,8 @@ printf %s "checking the name lister ($NM) interface... " >&6; } if test ${lt_cv_nm_interface+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_nm_interface="BSD nm" +else case e in #( + e) lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) @@ -11611,7 +12063,8 @@ else $as_nop if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi - rm -f conftest* + rm -f conftest* ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 printf "%s\n" "$lt_cv_nm_interface" >&6; } @@ -11622,8 +12075,8 @@ printf %s "checking the maximum length of command line arguments... " >&6; } if test ${lt_cv_sys_max_cmd_len+y} then : printf %s "(cached) " >&6 -else $as_nop - i=0 +else case e in #( + e) i=0 teststring=ABCD case $build_os in @@ -11745,7 +12198,8 @@ else $as_nop fi ;; esac - + ;; +esac fi if test -n "$lt_cv_sys_max_cmd_len"; then @@ -11802,8 +12256,8 @@ printf %s "checking how to convert $build file names to $host format... " >&6; } if test ${lt_cv_to_host_file_cmd+y} then : printf %s "(cached) " >&6 -else $as_nop - case $host in +else case e in #( + e) case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys @@ -11834,7 +12288,8 @@ else $as_nop lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac - + ;; +esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd @@ -11850,8 +12305,8 @@ printf %s "checking how to convert $build file names to toolchain format... " >& if test ${lt_cv_to_tool_file_cmd+y} then : printf %s "(cached) " >&6 -else $as_nop - #assume ordinary cross tools, or native build. +else case e in #( + e) #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) @@ -11862,7 +12317,8 @@ case $host in esac ;; esac - + ;; +esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd @@ -11878,8 +12334,9 @@ printf %s "checking for $LD option to reload object files... " >&6; } if test ${lt_cv_ld_reload_flag+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_reload_flag='-r' +else case e in #( + e) lt_cv_ld_reload_flag='-r' ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } @@ -11920,8 +12377,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_FILECMD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$FILECMD"; then +else case e in #( + e) if test -n "$FILECMD"; then ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11943,7 +12400,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi FILECMD=$ac_cv_prog_FILECMD if test -n "$FILECMD"; then @@ -11965,8 +12423,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_FILECMD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_FILECMD"; then +else case e in #( + e) if test -n "$ac_ct_FILECMD"; then ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11988,7 +12446,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD if test -n "$ac_ct_FILECMD"; then @@ -12028,8 +12487,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OBJDUMP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$OBJDUMP"; then +else case e in #( + e) if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12051,7 +12510,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then @@ -12073,8 +12533,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OBJDUMP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OBJDUMP"; then +else case e in #( + e) if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12096,7 +12556,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then @@ -12134,8 +12595,8 @@ printf %s "checking how to recognize dependent libraries... " >&6; } if test ${lt_cv_deplibs_check_method+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_file_magic_cmd='$MAGIC_CMD' +else case e in #( + e) lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support @@ -12328,7 +12789,8 @@ os2*) lt_cv_deplibs_check_method=pass_all ;; esac - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } @@ -12380,8 +12842,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DLLTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$DLLTOOL"; then +else case e in #( + e) if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12403,7 +12865,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then @@ -12425,8 +12888,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DLLTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DLLTOOL"; then +else case e in #( + e) if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12448,7 +12911,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then @@ -12487,8 +12951,8 @@ printf %s "checking how to associate runtime and link libraries... " >&6; } if test ${lt_cv_sharedlib_from_linklib_cmd+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_sharedlib_from_linklib_cmd='unknown' +else case e in #( + e) lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) @@ -12508,7 +12972,8 @@ cygwin* | mingw* | pw32* | cegcc*) lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; } @@ -12531,8 +12996,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AR"; then +else case e in #( + e) if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12554,7 +13019,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi AR=$ac_cv_prog_AR if test -n "$AR"; then @@ -12580,8 +13046,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_AR"; then +else case e in #( + e) if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12603,7 +13069,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then @@ -12665,8 +13132,8 @@ printf %s "checking for archiver @FILE support... " >&6; } if test ${lt_cv_ar_at_file+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ar_at_file=no +else case e in #( + e) lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12703,7 +13170,8 @@ then : fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 printf "%s\n" "$lt_cv_ar_at_file" >&6; } @@ -12728,8 +13196,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$STRIP"; then +else case e in #( + e) if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12751,7 +13219,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then @@ -12773,8 +13242,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_STRIP"; then +else case e in #( + e) if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12796,7 +13265,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then @@ -12837,8 +13307,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RANLIB+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$RANLIB"; then +else case e in #( + e) if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12860,7 +13330,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then @@ -12882,8 +13353,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_RANLIB+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_RANLIB"; then +else case e in #( + e) if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12905,7 +13376,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then @@ -13016,8 +13488,8 @@ printf %s "checking command to parse $NM output from $compiler object... " >&6; if test ${lt_cv_sys_global_symbol_pipe+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] @@ -13272,7 +13744,8 @@ _LT_EOF lt_cv_sys_global_symbol_pipe= fi done - + ;; +esac fi if test -z "$lt_cv_sys_global_symbol_pipe"; then @@ -13336,8 +13809,9 @@ printf %s "checking for sysroot... " >&6; } if test ${with_sysroot+y} then : withval=$with_sysroot; -else $as_nop - with_sysroot=no +else case e in #( + e) with_sysroot=no ;; +esac fi @@ -13372,8 +13846,8 @@ printf %s "checking for a working dd... " >&6; } if test ${ac_cv_path_lt_DD+y} then : printf %s "(cached) " >&6 -else $as_nop - printf 0123456789abcdef0123456789abcdef >conftest.i +else case e in #( + e) printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then @@ -13409,7 +13883,8 @@ else ac_cv_path_lt_DD=$lt_DD fi -rm -f conftest.i conftest2.i conftest.out +rm -f conftest.i conftest2.i conftest.out ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 printf "%s\n" "$ac_cv_path_lt_DD" >&6; } @@ -13420,8 +13895,8 @@ printf %s "checking how to truncate binary pipes... " >&6; } if test ${lt_cv_truncate_bin+y} then : printf %s "(cached) " >&6 -else $as_nop - printf 0123456789abcdef0123456789abcdef >conftest.i +else case e in #( + e) printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then @@ -13429,7 +13904,8 @@ if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; the && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out -test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 printf "%s\n" "$lt_cv_truncate_bin" >&6; } @@ -13639,8 +14115,8 @@ printf %s "checking whether the C compiler needs -belf... " >&6; } if test ${lt_cv_cc_needs_belf+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_ext=c +else case e in #( + e) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -13660,8 +14136,9 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_cc_needs_belf=yes -else $as_nop - lt_cv_cc_needs_belf=no +else case e in #( + e) lt_cv_cc_needs_belf=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -13670,7 +14147,8 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } @@ -13728,8 +14206,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MANIFEST_TOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$MANIFEST_TOOL"; then +else case e in #( + e) if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -13751,7 +14229,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then @@ -13773,8 +14252,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_MANIFEST_TOOL"; then +else case e in #( + e) if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -13796,7 +14275,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then @@ -13828,15 +14308,16 @@ printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if test ${lt_cv_path_mainfest_tool+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_path_mainfest_tool=no +else case e in #( + e) lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi - rm -f conftest* + rm -f conftest* ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } @@ -13859,8 +14340,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DSYMUTIL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$DSYMUTIL"; then +else case e in #( + e) if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -13882,7 +14363,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then @@ -13904,8 +14386,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DSYMUTIL"; then +else case e in #( + e) if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -13927,7 +14409,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then @@ -13961,8 +14444,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_NMEDIT+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$NMEDIT"; then +else case e in #( + e) if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -13984,7 +14467,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then @@ -14006,8 +14490,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_NMEDIT+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_NMEDIT"; then +else case e in #( + e) if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14029,7 +14513,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then @@ -14063,8 +14548,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LIPO+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$LIPO"; then +else case e in #( + e) if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14086,7 +14571,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then @@ -14108,8 +14594,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_LIPO+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_LIPO"; then +else case e in #( + e) if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14131,7 +14617,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then @@ -14165,8 +14652,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$OTOOL"; then +else case e in #( + e) if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14188,7 +14675,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then @@ -14210,8 +14698,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OTOOL"; then +else case e in #( + e) if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14233,7 +14721,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then @@ -14267,8 +14756,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OTOOL64+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$OTOOL64"; then +else case e in #( + e) if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14290,7 +14779,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then @@ -14312,8 +14802,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OTOOL64+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OTOOL64"; then +else case e in #( + e) if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14335,7 +14825,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then @@ -14392,8 +14883,8 @@ printf %s "checking for -single_module linker flag... " >&6; } if test ${lt_cv_apple_cc_single_mod+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_apple_cc_single_mod=no +else case e in #( + e) lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE @@ -14419,7 +14910,8 @@ else $as_nop fi rm -rf libconftest.dylib* rm -f conftest.* - fi + fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; } @@ -14429,8 +14921,8 @@ printf %s "checking for -exported_symbols_list linker flag... " >&6; } if test ${lt_cv_ld_exported_symbols_list+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_exported_symbols_list=no +else case e in #( + e) lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" @@ -14448,13 +14940,15 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_ld_exported_symbols_list=yes -else $as_nop - lt_cv_ld_exported_symbols_list=no +else case e in #( + e) lt_cv_ld_exported_symbols_list=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; } @@ -14464,8 +14958,8 @@ printf %s "checking for -force_load linker flag... " >&6; } if test ${lt_cv_ld_force_load+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_force_load=no +else case e in #( + e) lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF @@ -14490,7 +14984,8 @@ _LT_EOF fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 printf "%s\n" "$lt_cv_ld_force_load" >&6; } @@ -14584,8 +15079,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AS+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AS"; then +else case e in #( + e) if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14607,7 +15102,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi AS=$ac_cv_prog_AS if test -n "$AS"; then @@ -14629,8 +15125,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AS+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_AS"; then +else case e in #( + e) if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14652,7 +15148,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then @@ -14686,8 +15183,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DLLTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$DLLTOOL"; then +else case e in #( + e) if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14709,7 +15206,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then @@ -14731,8 +15229,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DLLTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DLLTOOL"; then +else case e in #( + e) if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14754,7 +15252,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then @@ -14788,8 +15287,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OBJDUMP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$OBJDUMP"; then +else case e in #( + e) if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14811,7 +15310,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then @@ -14833,8 +15333,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OBJDUMP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OBJDUMP"; then +else case e in #( + e) if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14856,7 +15356,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then @@ -14928,8 +15429,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - enable_shared=yes +else case e in #( + e) enable_shared=yes ;; +esac fi @@ -14960,8 +15462,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - enable_static=yes +else case e in #( + e) enable_static=yes ;; +esac fi @@ -14992,8 +15495,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - pic_mode=default +else case e in #( + e) pic_mode=default ;; +esac fi @@ -15023,8 +15527,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - enable_fast_install=yes +else case e in #( + e) enable_fast_install=yes ;; +esac fi @@ -15051,15 +15556,17 @@ then : ;; esac lt_cv_with_aix_soname=$with_aix_soname -else $as_nop - if test ${lt_cv_with_aix_soname+y} +else case e in #( + e) if test ${lt_cv_with_aix_soname+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_with_aix_soname=aix +else case e in #( + e) lt_cv_with_aix_soname=aix ;; +esac fi - with_aix_soname=$lt_cv_with_aix_soname + with_aix_soname=$lt_cv_with_aix_soname ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 @@ -15150,8 +15657,8 @@ printf %s "checking for objdir... " >&6; } if test ${lt_cv_objdir+y} then : printf %s "(cached) " >&6 -else $as_nop - rm -f .libs 2>/dev/null +else case e in #( + e) rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs @@ -15159,7 +15666,8 @@ else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi -rmdir .libs 2>/dev/null +rmdir .libs 2>/dev/null ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 printf "%s\n" "$lt_cv_objdir" >&6; } @@ -15220,8 +15728,8 @@ printf %s "checking for ${ac_tool_prefix}file... " >&6; } if test ${lt_cv_path_MAGIC_CMD+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MAGIC_CMD in +else case e in #( + e) case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; @@ -15264,6 +15772,7 @@ _LT_EOF IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; +esac ;; esac fi @@ -15287,8 +15796,8 @@ printf %s "checking for file... " >&6; } if test ${lt_cv_path_MAGIC_CMD+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MAGIC_CMD in +else case e in #( + e) case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; @@ -15331,6 +15840,7 @@ _LT_EOF IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; +esac ;; esac fi @@ -15430,8 +15940,8 @@ printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test ${lt_cv_prog_compiler_rtti_exceptions+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_rtti_exceptions=no +else case e in #( + e) lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment @@ -15459,7 +15969,8 @@ else $as_nop fi fi $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } @@ -15824,8 +16335,9 @@ printf %s "checking for $compiler option to produce PIC... " >&6; } if test ${lt_cv_prog_compiler_pic+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +else case e in #( + e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } @@ -15840,8 +16352,8 @@ printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; if test ${lt_cv_prog_compiler_pic_works+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_pic_works=no +else case e in #( + e) lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment @@ -15869,7 +16381,8 @@ else $as_nop fi fi $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } @@ -15905,8 +16418,8 @@ printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; if test ${lt_cv_prog_compiler_static_works+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_static_works=no +else case e in #( + e) lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext @@ -15927,7 +16440,8 @@ else $as_nop fi $RM -r conftest* LDFLAGS=$save_LDFLAGS - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } @@ -15949,8 +16463,8 @@ printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_c_o=no +else case e in #( + e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -15990,7 +16504,8 @@ else $as_nop cd .. $RM -r conftest $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } @@ -16005,8 +16520,8 @@ printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_c_o=no +else case e in #( + e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -16046,7 +16561,8 @@ else $as_nop cd .. $RM -r conftest $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } @@ -16641,8 +17157,8 @@ else if test ${lt_cv_aix_libpath_+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -16674,7 +17190,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath_ @@ -16696,8 +17213,8 @@ else if test ${lt_cv_aix_libpath_+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -16729,7 +17246,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath_ @@ -16980,8 +17498,8 @@ printf %s "checking if $CC understands -b... " >&6; } if test ${lt_cv_prog_compiler__b+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler__b=no +else case e in #( + e) lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext @@ -17002,7 +17520,8 @@ else $as_nop fi $RM -r conftest* LDFLAGS=$save_LDFLAGS - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } @@ -17050,8 +17569,8 @@ printf %s "checking whether the $host_os linker accepts -exported_symbol... " >& if test ${lt_cv_irix_exported_symbol+y} then : printf %s "(cached) " >&6 -else $as_nop - save_LDFLAGS=$LDFLAGS +else case e in #( + e) save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17060,12 +17579,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_irix_exported_symbol=yes -else $as_nop - lt_cv_irix_exported_symbol=no +else case e in #( + e) lt_cv_irix_exported_symbol=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS + LDFLAGS=$save_LDFLAGS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } @@ -17391,8 +17912,8 @@ printf %s "checking whether -lc should be explicitly linked in... " >&6; } if test ${lt_cv_archive_cmds_need_lc+y} then : printf %s "(cached) " >&6 -else $as_nop - $RM conftest* +else case e in #( + e) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 @@ -17428,7 +17949,8 @@ else $as_nop cat conftest.err 1>&5 fi $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } @@ -18155,8 +18677,8 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) if test ${lt_cv_shlibpath_overrides_runpath+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_shlibpath_overrides_runpath=no +else case e in #( + e) lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ @@ -18183,7 +18705,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir - + ;; +esac fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath @@ -18611,16 +19134,22 @@ printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -18632,24 +19161,27 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes -else $as_nop - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else $as_nop - +else case e in #( + e) lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes - + ;; +esac fi ;; @@ -18667,22 +19199,28 @@ fi if test "x$ac_cv_func_shl_load" = xyes then : lt_cv_dlopen=shl_load -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 printf %s "checking for shl_load in -ldld... " >&6; } if test ${ac_cv_lib_dld_shl_load+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char shl_load (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (void); int main (void) { @@ -18694,39 +19232,47 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dld_shl_load=yes -else $as_nop - ac_cv_lib_dld_shl_load=no +else case e in #( + e) ac_cv_lib_dld_shl_load=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld -else $as_nop - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +else case e in #( + e) ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes then : lt_cv_dlopen=dlopen -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -18738,34 +19284,42 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes -else $as_nop - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 printf %s "checking for dlopen in -lsvld... " >&6; } if test ${ac_cv_lib_svld_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -18777,34 +19331,42 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_svld_dlopen=yes -else $as_nop - ac_cv_lib_svld_dlopen=no +else case e in #( + e) ac_cv_lib_svld_dlopen=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 printf %s "checking for dld_link in -ldld... " >&6; } if test ${ac_cv_lib_dld_dld_link+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dld_link (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (void); int main (void) { @@ -18816,12 +19378,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dld_dld_link=yes -else $as_nop - ac_cv_lib_dld_dld_link=no +else case e in #( + e) ac_cv_lib_dld_dld_link=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; } @@ -18830,19 +19394,24 @@ then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi ;; @@ -18870,8 +19439,8 @@ printf %s "checking whether a program can dlopen itself... " >&6; } if test ${lt_cv_dlopen_self+y} then : printf %s "(cached) " >&6 -else $as_nop - if test yes = "$cross_compiling"; then : +else case e in #( + e) if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -18965,7 +19534,8 @@ _LT_EOF fi rm -fr conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 printf "%s\n" "$lt_cv_dlopen_self" >&6; } @@ -18977,8 +19547,8 @@ printf %s "checking whether a statically linked program can dlopen itself... " > if test ${lt_cv_dlopen_self_static+y} then : printf %s "(cached) " >&6 -else $as_nop - if test yes = "$cross_compiling"; then : +else case e in #( + e) if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -19072,7 +19642,8 @@ _LT_EOF fi rm -fr conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } @@ -19263,8 +19834,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CXX"; then +else case e in #( + e) if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -19286,7 +19857,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then @@ -19312,8 +19884,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CXX"; then +else case e in #( + e) if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -19335,7 +19907,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then @@ -19395,8 +19968,8 @@ printf %s "checking whether the compiler supports GNU C++... " >&6; } if test ${ac_cv_cxx_compiler_gnu+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -19413,12 +19986,14 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } @@ -19436,8 +20011,8 @@ printf %s "checking whether $CXX accepts -g... " >&6; } if test ${ac_cv_prog_cxx_g+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_cxx_werror_flag=$ac_cxx_werror_flag +else case e in #( + e) ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" @@ -19455,8 +20030,8 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_g=yes -else $as_nop - CXXFLAGS="" +else case e in #( + e) CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19471,8 +20046,8 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : -else $as_nop - ac_cxx_werror_flag=$ac_save_cxx_werror_flag +else case e in #( + e) ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19489,12 +20064,15 @@ if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag + ac_cxx_werror_flag=$ac_save_cxx_werror_flag ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } @@ -19521,8 +20099,8 @@ printf %s "checking for $CXX option to enable C++11 features... " >&6; } if test ${ac_cv_prog_cxx_cxx11+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cxx_cxx11=no +else case e in #( + e) ac_cv_prog_cxx_cxx11=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19539,25 +20117,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cxx_cxx11" != "xno" && break done rm -f conftest.$ac_ext -CXX=$ac_save_CXX +CXX=$ac_save_CXX ;; +esac fi if test "x$ac_cv_prog_cxx_cxx11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cxx_cxx11" = x +else case e in #( + e) if test "x$ac_cv_prog_cxx_cxx11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } - CXX="$CXX $ac_cv_prog_cxx_cxx11" + CXX="$CXX $ac_cv_prog_cxx_cxx11" ;; +esac fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 - ac_prog_cxx_stdcxx=cxx11 + ac_prog_cxx_stdcxx=cxx11 ;; +esac fi fi if test x$ac_prog_cxx_stdcxx = xno @@ -19567,8 +20148,8 @@ printf %s "checking for $CXX option to enable C++98 features... " >&6; } if test ${ac_cv_prog_cxx_cxx98+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cxx_cxx98=no +else case e in #( + e) ac_cv_prog_cxx_cxx98=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19585,25 +20166,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cxx_cxx98" != "xno" && break done rm -f conftest.$ac_ext -CXX=$ac_save_CXX +CXX=$ac_save_CXX ;; +esac fi if test "x$ac_cv_prog_cxx_cxx98" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cxx_cxx98" = x +else case e in #( + e) if test "x$ac_cv_prog_cxx_cxx98" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } - CXX="$CXX $ac_cv_prog_cxx_cxx98" + CXX="$CXX $ac_cv_prog_cxx_cxx98" ;; +esac fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 - ac_prog_cxx_stdcxx=cxx98 + ac_prog_cxx_stdcxx=cxx98 ;; +esac fi fi @@ -19620,8 +20204,8 @@ printf %s "checking dependency style of $depcc... " >&6; } if test ${am_cv_CXX_dependencies_compiler_type+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then +else case e in #( + e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up @@ -19725,7 +20309,8 @@ else $as_nop else am_cv_CXX_dependencies_compiler_type=none fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 printf "%s\n" "$am_cv_CXX_dependencies_compiler_type" >&6; } @@ -19767,8 +20352,8 @@ if test -z "$CXXCPP"; then if test ${ac_cv_prog_CXXCPP+y} then : printf %s "(cached) " >&6 -else $as_nop - # Double quotes because $CXX needs to be expanded +else case e in #( + e) # Double quotes because $CXX needs to be expanded for CXXCPP in "$CXX -E" cpp /lib/cpp do ac_preproc_ok=false @@ -19786,9 +20371,10 @@ _ACEOF if ac_fn_cxx_try_cpp "$LINENO" then : -else $as_nop - # Broken: fails on valid input. -continue +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -19802,15 +20388,16 @@ if ac_fn_cxx_try_cpp "$LINENO" then : # Broken: success on invalid input. continue -else $as_nop - # Passes both tests. +else case e in #( + e) # Passes both tests. ac_preproc_ok=: -break +break ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : @@ -19819,7 +20406,8 @@ fi done ac_cv_prog_CXXCPP=$CXXCPP - + ;; +esac fi CXXCPP=$ac_cv_prog_CXXCPP else @@ -19842,9 +20430,10 @@ _ACEOF if ac_fn_cxx_try_cpp "$LINENO" then : -else $as_nop - # Broken: fails on valid input. -continue +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -19858,24 +20447,26 @@ if ac_fn_cxx_try_cpp "$LINENO" then : # Broken: success on invalid input. continue -else $as_nop - # Passes both tests. +else case e in #( + e) # Passes both tests. ac_preproc_ok=: -break +break ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi ac_ext=c @@ -20012,8 +20603,9 @@ cc_basename=$func_cc_basename_result if test ${with_gnu_ld+y} then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes -else $as_nop - with_gnu_ld=no +else case e in #( + e) with_gnu_ld=no ;; +esac fi ac_prog=ld @@ -20058,8 +20650,8 @@ fi if test ${lt_cv_path_LD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$LD"; then +else case e in #( + e) if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs @@ -20082,7 +20674,8 @@ else $as_nop IFS=$lt_save_ifs else lt_cv_path_LD=$LD # Let the user override the test with a path. -fi +fi ;; +esac fi LD=$lt_cv_path_LD @@ -20099,8 +20692,8 @@ printf %s "checking if the linker ($LD) is GNU ld... " >&6; } if test ${lt_cv_prog_gnu_ld+y} then : printf %s "(cached) " >&6 -else $as_nop - # I'd rather use --version here, but apparently some GNU lds only accept -v. +else case e in #( + e) # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &1 &5 @@ -20307,8 +20901,8 @@ else if test ${lt_cv_aix_libpath__CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -20340,7 +20934,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=/usr/lib:/lib fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath__CXX @@ -20363,8 +20958,8 @@ else if test ${lt_cv_aix_libpath__CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -20396,7 +20991,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=/usr/lib:/lib fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath__CXX @@ -21768,8 +22364,9 @@ printf %s "checking for $compiler option to produce PIC... " >&6; } if test ${lt_cv_prog_compiler_pic_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX +else case e in #( + e) lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_CXX" >&6; } @@ -21784,8 +22381,8 @@ printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " > if test ${lt_cv_prog_compiler_pic_works_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_pic_works_CXX=no +else case e in #( + e) lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment @@ -21813,7 +22410,8 @@ else $as_nop fi fi $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_works_CXX" >&6; } @@ -21843,8 +22441,8 @@ printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; if test ${lt_cv_prog_compiler_static_works_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_static_works_CXX=no +else case e in #( + e) lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext @@ -21865,7 +22463,8 @@ else $as_nop fi $RM -r conftest* LDFLAGS=$save_LDFLAGS - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 printf "%s\n" "$lt_cv_prog_compiler_static_works_CXX" >&6; } @@ -21884,8 +22483,8 @@ printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_c_o_CXX=no +else case e in #( + e) lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -21925,7 +22524,8 @@ else $as_nop cd .. $RM -r conftest $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o_CXX" >&6; } @@ -21937,8 +22537,8 @@ printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_c_o_CXX=no +else case e in #( + e) lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -21978,7 +22578,8 @@ else $as_nop cd .. $RM -r conftest $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o_CXX" >&6; } @@ -22083,8 +22684,8 @@ printf %s "checking whether -lc should be explicitly linked in... " >&6; } if test ${lt_cv_archive_cmds_need_lc_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - $RM conftest* +else case e in #( + e) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 @@ -22120,7 +22721,8 @@ else $as_nop cat conftest.err 1>&5 fi $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 printf "%s\n" "$lt_cv_archive_cmds_need_lc_CXX" >&6; } @@ -22684,8 +23286,8 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) if test ${lt_cv_shlibpath_overrides_runpath+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_shlibpath_overrides_runpath=no +else case e in #( + e) lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ @@ -22712,7 +23314,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir - + ;; +esac fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath @@ -23104,8 +23707,9 @@ build_modules='no' if test ${with_modules+y} then : withval=$with_modules; with_modules=$withval -else $as_nop - with_modules='no' +else case e in #( + e) with_modules='no' ;; +esac fi @@ -23140,8 +23744,9 @@ fi if test ${enable_delegate_build+y} then : enableval=$enable_delegate_build; enable_delegate_build=$enableval -else $as_nop - enable_delegate_build='no' +else case e in #( + e) enable_delegate_build='no' ;; +esac fi @@ -23149,8 +23754,9 @@ fi if test ${enable_deprecated+y} then : enableval=$enable_deprecated; enable_deprecated=$enableval -else $as_nop - enable_deprecated='no' +else case e in #( + e) enable_deprecated='no' ;; +esac fi @@ -23168,8 +23774,9 @@ fi if test ${enable_installed+y} then : enableval=$enable_installed; enable_installed=$enableval -else $as_nop - enable_installed='yes' +else case e in #( + e) enable_installed='yes' ;; +esac fi @@ -23181,30 +23788,14 @@ else DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --disable-installed " fi -# Permit enciphering and deciphering image pixels. -# Check whether --enable-cipher was given. -if test ${enable_cipher+y} -then : - enableval=$enable_cipher; enable_cipher=$enableval -else $as_nop - enable_cipher='yes' -fi - - -if test "$enable_cipher" = 'yes'; then - -printf "%s\n" "#define CIPHER_SUPPORT 1" >>confdefs.h - - MAGICK_FEATURES="Cipher $MAGICK_FEATURES" -fi - # Build a zero-configuration version of ImageMagick. # Check whether --enable-zero-configuration was given. if test ${enable_zero_configuration+y} then : enableval=$enable_zero_configuration; enable_zero_configuration=$enableval -else $as_nop - enable_zero_configuration='no' +else case e in #( + e) enable_zero_configuration='no' ;; +esac fi @@ -23228,8 +23819,9 @@ fi if test ${enable_hdri+y} then : enableval=$enable_hdri; enable_hdri=$enableval -else $as_nop - enable_hdri='no' +else case e in #( + e) enable_hdri='no' ;; +esac fi @@ -23253,8 +23845,9 @@ CPPFLAGS="$CPPFLAGS -DMAGICKCORE_HDRI_ENABLE=$magick_hdri_enable" if test ${enable_pipes+y} then : enableval=$enable_pipes; enable_pipes=$enableval -else $as_nop - enable_pipes='no' +else case e in #( + e) enable_pipes='no' ;; +esac fi @@ -23273,8 +23866,9 @@ printf %s "checking whether to enable maintainer-specific portions of Makefiles. if test ${enable_maintainer_mode+y} then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else $as_nop - USE_MAINTAINER_MODE=no +else case e in #( + e) USE_MAINTAINER_MODE=no ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 @@ -23296,8 +23890,9 @@ fi if test ${enable_hugepages+y} then : enableval=$enable_hugepages; enable_hugepages=$enableval -else $as_nop - enable_hugepages='no' +else case e in #( + e) enable_hugepages='no' ;; +esac fi @@ -23306,8 +23901,9 @@ fi if test ${enable_ccmalloc+y} then : enableval=$enable_ccmalloc; enable_ccmalloc=$enableval -else $as_nop - enable_ccmalloc='no' +else case e in #( + e) enable_ccmalloc='no' ;; +esac fi @@ -23316,8 +23912,9 @@ fi if test ${enable_efence+y} then : enableval=$enable_efence; enable_efence=$enableval -else $as_nop - enable_efence='no' +else case e in #( + e) enable_efence='no' ;; +esac fi @@ -23326,8 +23923,9 @@ fi if test ${enable_prof+y} then : enableval=$enable_prof; enable_prof=$enableval -else $as_nop - enable_prof='no' +else case e in #( + e) enable_prof='no' ;; +esac fi @@ -23336,8 +23934,9 @@ fi if test ${enable_gprof+y} then : enableval=$enable_gprof; enable_gprof=$enableval -else $as_nop - enable_gprof='no' +else case e in #( + e) enable_gprof='no' ;; +esac fi @@ -23346,8 +23945,9 @@ fi if test ${enable_gcov+y} then : enableval=$enable_gcov; enable_gcov=$enableval -else $as_nop - enable_gcov='no' +else case e in #( + e) enable_gcov='no' ;; +esac fi @@ -23365,8 +23965,9 @@ fi if test ${with_method_prefix+y} then : withval=$with_method_prefix; with_method_prefix=$withval -else $as_nop - with_method_prefix='no' +else case e in #( + e) with_method_prefix='no' ;; +esac fi @@ -23385,8 +23986,9 @@ fi if test ${enable_legacy_support+y} then : enableval=$enable_legacy_support; with_legacy_support=$enableval -else $as_nop - with_legacy_support='no' +else case e in #( + e) with_legacy_support='no' ;; +esac fi if test "$with_legacy_support" != 'no'; then @@ -23404,8 +24006,9 @@ fi if test ${with_quantum_depth+y} then : withval=$with_quantum_depth; with_quantum_depth=$withval -else $as_nop - with_quantum_depth=16 +else case e in #( + e) with_quantum_depth=16 ;; +esac fi @@ -23441,8 +24044,9 @@ fi if test ${with_cache+y} then : withval=$with_cache; with_cache=$withval -else $as_nop - with_cache='' +else case e in #( + e) with_cache='' ;; +esac fi @@ -23454,6 +24058,7 @@ printf "%s\n" "#define PixelCacheThreshold \"$with_cache\"" >>confdefs.h fi # Set security policy +security_policy="open" # MAGICK_SECURITY_POLICY { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of security policy to enforce" >&5 @@ -23464,25 +24069,28 @@ if test ${with_security_policy+y} then : withval=$with_security_policy; case $withval in open|limited|secure|websafe) + security_policy=$withval ;; *) as_fn_error $? "Unknown argument to --with-security-policy" "$LINENO" 5 ;; esac - magick_cv_with_security_policy=$with_security_policy -else $as_nop - if test ${magick_cv_with_security_policy+y} + magick_cv_with_security_policy=$security_policy +else case e in #( + e) if test ${magick_cv_with_security_policy+y} then : printf %s "(cached) " >&6 -else $as_nop - magick_cv_with_security_policy=open +else case e in #( + e) magick_cv_with_security_policy=open ;; +esac fi - MAGICK_SECURITY_POLICY=$magick_cv_with_security_policy + MAGICK_SECURITY_POLICY=$magick_cv_with_security_policy ;; +esac fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_security_policy" >&5 -printf "%s\n" "$with_security_policy" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $security_policy" >&5 +printf "%s\n" "$security_policy" >&6; } @@ -23492,8 +24100,9 @@ printf "%s\n" "$with_security_policy" >&6; } if test ${with_frozenpaths+y} then : withval=$with_frozenpaths; with_frozenpaths=$withval -else $as_nop - with_frozenpaths='no' +else case e in #( + e) with_frozenpaths='no' ;; +esac fi @@ -23503,8 +24112,9 @@ fi if test ${with_magick_plus_plus+y} then : withval=$with_magick_plus_plus; with_magick_plus_plus=$withval -else $as_nop - with_magick_plus_plus='yes' +else case e in #( + e) with_magick_plus_plus='yes' ;; +esac fi @@ -23524,8 +24134,9 @@ fi if test ${with_perl+y} then : withval=$with_perl; with_perl=$withval -else $as_nop - with_perl='no' +else case e in #( + e) with_perl='no' ;; +esac fi @@ -23545,8 +24156,9 @@ fi if test ${with_jemalloc+y} then : withval=$with_jemalloc; with_jemalloc=$withval -else $as_nop - with_jemalloc='no' +else case e in #( + e) with_jemalloc='no' ;; +esac fi if test "$with_jemalloc" != 'yes' ; then @@ -23559,8 +24171,9 @@ fi if test ${with_mtmalloc+y} then : withval=$with_mtmalloc; with_mtmalloc=$withval -else $as_nop - with_mtmalloc='no' +else case e in #( + e) with_mtmalloc='no' ;; +esac fi if test "$with_mtmalloc" != 'no' ; then @@ -23573,8 +24186,9 @@ fi if test ${with_tcmalloc+y} then : withval=$with_tcmalloc; with_tcmalloc=$withval -else $as_nop - with_tcmalloc='no' +else case e in #( + e) with_tcmalloc='no' ;; +esac fi if test "$with_tcmalloc" != 'no' ; then @@ -23587,8 +24201,9 @@ fi if test ${with_umem+y} then : withval=$with_umem; with_umem=$withval -else $as_nop - with_umem='no' +else case e in #( + e) with_umem='no' ;; +esac fi if test "$with_umem" != 'yes' ; then @@ -23603,8 +24218,9 @@ fi if test ${with_libstdc+y} then : withval=$with_libstdc; with_libstdc=$withval -else $as_nop - with_libstdc='' +else case e in #( + e) with_libstdc='' ;; +esac fi @@ -23615,53 +24231,6 @@ if test "$with_libstdc" != ''; then fi -# Does gcc required -traditional? -if test $ac_cv_c_compiler_gnu = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 -printf %s "checking whether $CC needs -traditional... " >&6; } -if test ${ac_cv_prog_gcc_traditional+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_pattern="Autoconf.*'x'" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -Autoconf TIOCGETP -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1 -then : - ac_cv_prog_gcc_traditional=yes -else $as_nop - ac_cv_prog_gcc_traditional=no -fi -rm -rf conftest* - - - if test $ac_cv_prog_gcc_traditional = no; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -Autoconf TCGETA -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1 -then : - ac_cv_prog_gcc_traditional=yes -fi -rm -rf conftest* - - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 -printf "%s\n" "$ac_cv_prog_gcc_traditional" >&6; } - if test $ac_cv_prog_gcc_traditional = yes; then - CC="$CC -traditional" - fi -fi - - ######## # # Set defines required to build DLLs and modules using MinGW @@ -23718,8 +24287,9 @@ then : printf "%s\n" "$as_me: WARNING: invalid argument supplied to --enable-assert" >&2;} ac_enable_assert=yes fi -else $as_nop - ac_enable_assert=yes +else case e in #( + e) ac_enable_assert=yes ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_enable_assert" >&5 @@ -23727,14 +24297,14 @@ printf "%s\n" "$ac_enable_assert" >&6; } ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`printf "%s\n" "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` + as_ac_Header=`printf "%s\n" "ac_cv_header_dirent_$ac_hdr" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 printf %s "checking for $ac_hdr that defines DIR... " >&6; } if eval test \${$as_ac_Header+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include <$ac_hdr> @@ -23751,10 +24321,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$as_ac_Header=yes" -else $as_nop - eval "$as_ac_Header=no" +else case e in #( + e) eval "$as_ac_Header=no" ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi eval ac_res=\$$as_ac_Header { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -23762,7 +24334,7 @@ printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_hdr" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_hdr" | sed "$as_sed_cpp"` 1 _ACEOF ac_header_dirent=$ac_hdr; break @@ -23776,15 +24348,21 @@ printf %s "checking for library containing opendir... " >&6; } if test ${ac_cv_search_opendir+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char opendir (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (void); int main (void) { @@ -23815,11 +24393,13 @@ done if test ${ac_cv_search_opendir+y} then : -else $as_nop - ac_cv_search_opendir=no +else case e in #( + e) ac_cv_search_opendir=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 printf "%s\n" "$ac_cv_search_opendir" >&6; } @@ -23836,15 +24416,21 @@ printf %s "checking for library containing opendir... " >&6; } if test ${ac_cv_search_opendir+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char opendir (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (void); int main (void) { @@ -23875,11 +24461,13 @@ done if test ${ac_cv_search_opendir+y} then : -else $as_nop - ac_cv_search_opendir=no +else case e in #( + e) ac_cv_search_opendir=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 printf "%s\n" "$ac_cv_search_opendir" >&6; } @@ -24127,25 +24715,25 @@ printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 -printf %s "checking for stdbool.h that conforms to C99... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99 or later" >&5 +printf %s "checking for stdbool.h that conforms to C99 or later... " >&6; } if test ${ac_cv_header_stdbool_h+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - #ifndef __bool_true_false_are_defined - #error "__bool_true_false_are_defined is not defined" - #endif - char a[__bool_true_false_are_defined == 1 ? 1 : -1]; + /* "true" and "false" should be usable in #if expressions and + integer constant expressions, and "bool" should be a valid + type name. - /* Regardless of whether this is C++ or "_Bool" is a - valid type name, "true" and "false" should be usable - in #if expressions and integer constant expressions, - and "bool" should be a valid type name. */ + Although C99 requires bool, true, and false to be macros, + C23 and C++11 overrule that, so do not test for that. + Although C99 requires __bool_true_false_are_defined and + _Bool, C23 says they are obsolescent, so do not require + them. */ #if !true #error "'true' is not true" @@ -24179,43 +24767,12 @@ else $as_nop char n[sizeof m == h * sizeof m[0] ? 1 : -1]; char o[-1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See - https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html - https://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html */ bool p = true; bool *pp = &p; - /* C 1999 specifies that bool, true, and false are to be - macros, but C++ 2011 and later overrule this. */ - #if __cplusplus < 201103 - #ifndef bool - #error "bool is not defined" - #endif - #ifndef false - #error "false is not defined" - #endif - #ifndef true - #error "true is not defined" - #endif - #endif - - /* If _Bool is available, repeat with it all the tests - above that used bool. */ - #ifdef HAVE__BOOL - struct sB { _Bool s: 1; _Bool t; } t; - - char q[(_Bool) 0.5 == true ? 1 : -1]; - char r[(_Bool) 0.0 == false ? 1 : -1]; - char u[sizeof (_Bool) > 0 ? 1 : -1]; - char v[sizeof t.t > 0 ? 1 : -1]; - - _Bool w[h]; - char x[sizeof m == h * sizeof m[0] ? 1 : -1]; - char y[-1 - (_Bool) 0 < 0 ? 1 : -1]; - _Bool z = true; - _Bool *pz = &p; - #endif - int main (void) { @@ -24224,20 +24781,10 @@ main (void) *pp |= p; *pp |= ! p; - #ifdef HAVE__BOOL - _Bool pt = &t; - *pz |= z; - *pz |= ! z; - #endif - /* Refer to every declared value, so they cannot be discarded as unused. */ - return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k - + !l + !m + !n + !o + !p + !pp + !ps - #ifdef HAVE__BOOL - + !q + !r + !u + !v + !w + !x + !y + !z + !pt - #endif - ); + return (!b + !c + !d + !e + !f + !g + !h + !i + !j + !k + + !l + !m + !n + !o + !p + !pp + !ps); ; return 0; @@ -24246,10 +24793,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_header_stdbool_h=yes -else $as_nop - ac_cv_header_stdbool_h=no +else case e in #( + e) ac_cv_header_stdbool_h=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 printf "%s\n" "$ac_cv_header_stdbool_h" >&6; } @@ -24265,8 +24814,8 @@ printf %s "checking for working volatile... " >&6; } if test ${ac_cv_c_volatile+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -24283,10 +24832,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_volatile=yes -else $as_nop - ac_cv_c_volatile=no +else case e in #( + e) ac_cv_c_volatile=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 printf "%s\n" "$ac_cv_c_volatile" >&6; } @@ -24296,31 +24847,8 @@ printf "%s\n" "#define volatile /**/" >>confdefs.h fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for preprocessor stringizing operator" >&5 -printf %s "checking for preprocessor stringizing operator... " >&6; } -if test ${ac_cv_c_stringize+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define x(y) #y - -char *s = x(teststring); -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "#teststring" >/dev/null 2>&1 -then : - ac_cv_c_stringize=no -else $as_nop - ac_cv_c_stringize=yes -fi -rm -rf conftest* -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stringize" >&5 -printf "%s\n" "$ac_cv_c_stringize" >&6; } -if test $ac_cv_c_stringize = yes; then +if test "$ac_prog_cc_stdc" != no; then printf "%s\n" "#define HAVE_STRINGIZE 1" >>confdefs.h @@ -24331,8 +24859,8 @@ printf %s "checking whether stat file-mode macros are broken... " >&6; } if test ${ac_cv_header_stat_broken+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -24357,10 +24885,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_header_stat_broken=no -else $as_nop - ac_cv_header_stat_broken=yes +else case e in #( + e) ac_cv_header_stat_broken=yes ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 printf "%s\n" "$ac_cv_header_stat_broken" >&6; } @@ -24375,8 +24905,8 @@ printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test ${ac_cv_struct_tm+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -24394,10 +24924,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_struct_tm=time.h -else $as_nop - ac_cv_struct_tm=sys/time.h +else case e in #( + e) ac_cv_struct_tm=sys/time.h ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 printf "%s\n" "$ac_cv_struct_tm" >&6; } @@ -24407,86 +24939,6 @@ printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 -printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } -if test ${ac_cv_c_undeclared_builtin_options+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS=$CFLAGS - ac_cv_c_undeclared_builtin_options='cannot detect' - for ac_arg in '' -fno-builtin; do - CFLAGS="$ac_save_CFLAGS $ac_arg" - # This test program should *not* compile successfully. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ -(void) strchr; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - -else $as_nop - # This test program should compile successfully. - # No library function is consistently available on - # freestanding implementations, so test against a dummy - # declaration. Include always-available headers on the - # off chance that they somehow elicit warnings. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include -extern void ac_decl (int, char *); - -int -main (void) -{ -(void) ac_decl (0, (char *) 0); - (void) ac_decl; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - if test x"$ac_arg" = x -then : - ac_cv_c_undeclared_builtin_options='none needed' -else $as_nop - ac_cv_c_undeclared_builtin_options=$ac_arg -fi - break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - done - CFLAGS=$ac_save_CFLAGS - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 -printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } - case $ac_cv_c_undeclared_builtin_options in #( - 'cannot detect') : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot make $CC report undeclared builtins -See \`config.log' for more details" "$LINENO" 5; } ;; #( - 'none needed') : - ac_c_undeclared_builtin_options='' ;; #( - *) : - ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; -esac - ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include #include <$ac_cv_struct_tm> @@ -24509,8 +24961,9 @@ else if test "x$ac_cv_have_decl_tzname" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_TZNAME $ac_have_decl" >>confdefs.h @@ -24519,8 +24972,8 @@ printf %s "checking for tzname... " >&6; } if test ${ac_cv_var_tzname+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if !HAVE_DECL_TZNAME @@ -24538,11 +24991,13 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_var_tzname=yes -else $as_nop - ac_cv_var_tzname=no +else case e in #( + e) ac_cv_var_tzname=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 printf "%s\n" "$ac_cv_var_tzname" >&6; } @@ -24558,8 +25013,8 @@ printf %s "checking whether #! works in shell scripts... " >&6; } if test ${ac_cv_sys_interpreter+y} then : printf %s "(cached) " >&6 -else $as_nop - echo '#! /bin/cat +else case e in #( + e) echo '#! /bin/cat exit 69 ' >conftest chmod u+x conftest @@ -24569,7 +25024,8 @@ if test $? -ne 69; then else ac_cv_sys_interpreter=no fi -rm -f conftest +rm -f conftest ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_interpreter" >&5 printf "%s\n" "$ac_cv_sys_interpreter" >&6; } @@ -24584,8 +25040,8 @@ printf %s "checking whether char is unsigned... " >&6; } if test ${ac_cv_c_char_unsigned+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int @@ -24602,10 +25058,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_char_unsigned=no -else $as_nop - ac_cv_c_char_unsigned=yes +else case e in #( + e) ac_cv_c_char_unsigned=yes ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5 printf "%s\n" "$ac_cv_c_char_unsigned" >&6; } @@ -24619,8 +25077,8 @@ printf %s "checking for an ANSI C-conforming const... " >&6; } if test ${ac_cv_c_const+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -24684,10 +25142,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_const=yes -else $as_nop - ac_cv_c_const=no +else case e in #( + e) ac_cv_c_const=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 printf "%s\n" "$ac_cv_c_const" >&6; } @@ -24702,8 +25162,8 @@ printf %s "checking for inline... " >&6; } if test ${ac_cv_c_inline+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_c_inline=no +else case e in #( + e) ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -24721,7 +25181,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test "$ac_cv_c_inline" != no && break done - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 printf "%s\n" "$ac_cv_c_inline" >&6; } @@ -24746,8 +25207,8 @@ printf %s "checking for C/C++ restrict keyword... " >&6; } if test ${ac_cv_c_restrict+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_c_restrict=no +else case e in #( + e) ac_cv_c_restrict=no # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html # Put 'restrict' last, because C++ lacks it. @@ -24778,7 +25239,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test "$ac_cv_c_restrict" != no && break done - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 printf "%s\n" "$ac_cv_c_restrict" >&6; } @@ -24796,8 +25258,8 @@ printf %s "checking for working volatile... " >&6; } if test ${ac_cv_c_volatile+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -24814,10 +25276,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_volatile=yes -else $as_nop - ac_cv_c_volatile=no +else case e in #( + e) ac_cv_c_volatile=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 printf "%s\n" "$ac_cv_c_volatile" >&6; } @@ -24835,8 +25299,8 @@ printf %s "checking whether byte ordering is bigendian... " >&6; } if test ${ac_cv_c_bigendian+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_c_bigendian=unknown +else case e in #( + e) ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -24882,8 +25346,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext int main (void) { -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \\ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \\ && LITTLE_ENDIAN) bogus endian macros #endif @@ -24914,8 +25378,9 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_bigendian=yes -else $as_nop - ac_cv_c_bigendian=no +else case e in #( + e) ac_cv_c_bigendian=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi @@ -24959,8 +25424,9 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_bigendian=yes -else $as_nop - ac_cv_c_bigendian=no +else case e in #( + e) ac_cv_c_bigendian=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi @@ -24987,22 +25453,23 @@ unsigned short int ascii_mm[] = int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } - extern int foo; - -int -main (void) -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} + int + main (int argc, char **argv) + { + /* Intimidate the compiler so that it does not + optimize the arrays away. */ + char *p = argv[0]; + ascii_mm[1] = *p++; ebcdic_mm[1] = *p++; + ascii_ii[1] = *p++; ebcdic_ii[1] = *p++; + return use_ascii (argc) == use_ebcdic (*p); + } _ACEOF -if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_link "$LINENO" then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + if grep BIGenDianSyS conftest$ac_exeext >/dev/null; then ac_cv_c_bigendian=yes fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if grep LiTTleEnDian conftest$ac_exeext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else @@ -25011,9 +25478,10 @@ then : fi fi fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int @@ -25036,14 +25504,17 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_c_bigendian=no -else $as_nop - ac_cv_c_bigendian=yes +else case e in #( + e) ac_cv_c_bigendian=yes ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - fi + fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 printf "%s\n" "$ac_cv_c_bigendian" >&6; } @@ -25107,8 +25578,8 @@ printf %s "checking for unsigned long long int... " >&6; } if test ${ac_cv_type_unsigned_long_long_int+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_type_unsigned_long_long_int=yes +else case e in #( + e) ac_cv_type_unsigned_long_long_int=yes case $ac_prog_cc_stdc in no | c89) ;; *) @@ -25147,12 +25618,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : -else $as_nop - ac_cv_type_unsigned_long_long_int=no +else case e in #( + e) ac_cv_type_unsigned_long_long_int=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext;; - esac + esac ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 printf "%s\n" "$ac_cv_type_unsigned_long_long_int" >&6; } @@ -25169,8 +25642,8 @@ printf %s "checking for long long int... " >&6; } if test ${ac_cv_type_long_long_int+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_type_long_long_int=yes +else case e in #( + e) ac_cv_type_long_long_int=yes case $ac_prog_cc_stdc in no | c89) ;; *) @@ -25179,12 +25652,12 @@ else $as_nop if test "$cross_compiling" = yes then : : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef LLONG_MAX - # define HALF \ + # define HALF \\ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) # define LLONG_MAX (HALF - 1 + HALF) #endif @@ -25209,15 +25682,18 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : -else $as_nop - ac_cv_type_long_long_int=no +else case e in #( + e) ac_cv_type_long_long_int=no ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi fi;; - esac + esac ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 printf "%s\n" "$ac_cv_type_long_long_int" >&6; } @@ -25235,13 +25711,14 @@ then : printf "%s\n" "#define HAVE_INTMAX_T 1" >>confdefs.h -else $as_nop - test $ac_cv_type_long_long_int = yes \ +else case e in #( + e) test $ac_cv_type_long_long_int = yes \ && ac_type='long long int' \ || ac_type='long int' printf "%s\n" "#define intmax_t $ac_type" >>confdefs.h - + ;; +esac fi @@ -25252,8 +25729,8 @@ then : printf "%s\n" "#define HAVE_INTPTR_T 1" >>confdefs.h -else $as_nop - for ac_type in 'int' 'long int' 'long long int'; do +else case e in #( + e) for ac_type in 'int' 'long int' 'long long int'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default @@ -25277,7 +25754,8 @@ printf "%s\n" "#define intptr_t $ac_type" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test -z "$ac_type" && break - done + done ;; +esac fi @@ -25286,8 +25764,8 @@ printf %s "checking for mbstate_t... " >&6; } if test ${ac_cv_type_mbstate_t+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default # include @@ -25302,10 +25780,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_type_mbstate_t=yes -else $as_nop - ac_cv_type_mbstate_t=no +else case e in #( + e) ac_cv_type_mbstate_t=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5 printf "%s\n" "$ac_cv_type_mbstate_t" >&6; } @@ -25322,20 +25802,22 @@ ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes then : -else $as_nop - +else case e in #( + e) printf "%s\n" "#define mode_t int" >>confdefs.h - + ;; +esac fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes then : -else $as_nop - +else case e in #( + e) printf "%s\n" "#define off_t long int" >>confdefs.h - + ;; +esac fi @@ -25344,8 +25826,8 @@ fi if test "x$ac_cv_type_pid_t" = xyes then : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _WIN64 && !defined __CYGWIN__ @@ -25364,14 +25846,16 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_pid_type='int' -else $as_nop - ac_pid_type='__int64' +else case e in #( + e) ac_pid_type='__int64' ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h - + ;; +esac fi @@ -25379,52 +25863,44 @@ ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes then : -else $as_nop - +else case e in #( + e) printf "%s\n" "#define size_t unsigned int" >>confdefs.h - + ;; +esac fi ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" if test "x$ac_cv_type_ssize_t" = xyes then : -else $as_nop - +else case e in #( + e) printf "%s\n" "#define ssize_t int" >>confdefs.h - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -printf %s "checking for uid_t in sys/types.h... " >&6; } -if test ${ac_cv_type_uid_t+y} +ac_fn_c_check_type "$LINENO" "uid_t" "ac_cv_type_uid_t" "$ac_includes_default" +if test "x$ac_cv_type_uid_t" = xyes then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1 -then : - ac_cv_type_uid_t=yes -else $as_nop - ac_cv_type_uid_t=no -fi -rm -rf conftest* - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -printf "%s\n" "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then +else case e in #( + e) printf "%s\n" "#define uid_t int" >>confdefs.h + ;; +esac +fi +ac_fn_c_check_type "$LINENO" "gid_t" "ac_cv_type_gid_t" "$ac_includes_default" +if test "x$ac_cv_type_gid_t" = xyes +then : +else case e in #( + e) printf "%s\n" "#define gid_t int" >>confdefs.h - + ;; +esac fi ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" @@ -25481,13 +25957,14 @@ then : printf "%s\n" "#define HAVE_UINTMAX_T 1" >>confdefs.h -else $as_nop - test $ac_cv_type_unsigned_long_long_int = yes \ +else case e in #( + e) test $ac_cv_type_unsigned_long_long_int = yes \ && ac_type='unsigned long long int' \ || ac_type='unsigned long int' printf "%s\n" "#define uintmax_t $ac_type" >>confdefs.h - + ;; +esac fi @@ -25498,8 +25975,8 @@ then : printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h -else $as_nop - for ac_type in 'unsigned int' 'unsigned long int' \ +else case e in #( + e) for ac_type in 'unsigned int' 'unsigned long int' \ 'unsigned long long int'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -25524,7 +26001,8 @@ printf "%s\n" "#define uintptr_t $ac_type" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test -z "$ac_type" && break - done + done ;; +esac fi @@ -25532,29 +26010,31 @@ fi # Float_t and double_t are intended to be the most efficient type. # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of float_t" >&5 printf %s "checking size of float_t... " >&6; } if test ${ac_cv_sizeof_float_t+y} then : printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float_t))" "ac_cv_sizeof_float_t" "#include +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float_t))" "ac_cv_sizeof_float_t" "#include " then : -else $as_nop - if test "$ac_cv_type_float_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) if test "$ac_cv_type_float_t" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (float_t) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_float_t=0 - fi + fi ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float_t" >&5 printf "%s\n" "$ac_cv_sizeof_float_t" >&6; } @@ -25566,29 +26046,31 @@ printf "%s\n" "#define SIZEOF_FLOAT_T $ac_cv_sizeof_float_t" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of double_t" >&5 printf %s "checking size of double_t... " >&6; } if test ${ac_cv_sizeof_double_t+y} then : printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double_t))" "ac_cv_sizeof_double_t" "#include +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double_t))" "ac_cv_sizeof_double_t" "#include " then : -else $as_nop - if test "$ac_cv_type_double_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) if test "$ac_cv_type_double_t" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (double_t) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_double_t=0 - fi + fi ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double_t" >&5 printf "%s\n" "$ac_cv_sizeof_double_t" >&6; } @@ -25602,28 +26084,30 @@ printf "%s\n" "#define SIZEOF_DOUBLE_T $ac_cv_sizeof_double_t" >>confdefs.h # Get size of float, double and long double for comparison. # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of float" >&5 printf %s "checking size of float... " >&6; } if test ${ac_cv_sizeof_float+y} then : printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float))" "ac_cv_sizeof_float" "$ac_includes_default" +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float))" "ac_cv_sizeof_float" "$ac_includes_default" then : -else $as_nop - if test "$ac_cv_type_float" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) if test "$ac_cv_type_float" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (float) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_float=0 - fi + fi ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float" >&5 printf "%s\n" "$ac_cv_sizeof_float" >&6; } @@ -25635,28 +26119,30 @@ printf "%s\n" "#define SIZEOF_FLOAT $ac_cv_sizeof_float" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 printf %s "checking size of double... " >&6; } if test ${ac_cv_sizeof_double+y} then : printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default" +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default" then : -else $as_nop - if test "$ac_cv_type_double" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) if test "$ac_cv_type_double" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (double) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_double=0 - fi + fi ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 printf "%s\n" "$ac_cv_sizeof_double" >&6; } @@ -25668,28 +26154,30 @@ printf "%s\n" "#define SIZEOF_DOUBLE $ac_cv_sizeof_double" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5 printf %s "checking size of long double... " >&6; } if test ${ac_cv_sizeof_long_double+y} then : printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default" +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default" then : -else $as_nop - if test "$ac_cv_type_long_double" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) if test "$ac_cv_type_long_double" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long double) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_double=0 - fi + fi ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_double" >&5 printf "%s\n" "$ac_cv_sizeof_long_double" >&6; } @@ -25705,28 +26193,30 @@ printf "%s\n" "#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double" >>confdefs. # supported then the value defined is zero. # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of unsigned long long" >&5 printf %s "checking size of unsigned long long... " >&6; } if test ${ac_cv_sizeof_unsigned_long_long+y} then : printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long long))" "ac_cv_sizeof_unsigned_long_long" "$ac_includes_default" +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long long))" "ac_cv_sizeof_unsigned_long_long" "$ac_includes_default" then : -else $as_nop - if test "$ac_cv_type_unsigned_long_long" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) if test "$ac_cv_type_unsigned_long_long" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned long long) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long_long=0 - fi + fi ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long_long" >&5 printf "%s\n" "$ac_cv_sizeof_unsigned_long_long" >&6; } @@ -25736,31 +26226,68 @@ printf "%s\n" "$ac_cv_sizeof_unsigned_long_long" >&6; } printf "%s\n" "#define SIZEOF_UNSIGNED_LONG_LONG $ac_cv_sizeof_unsigned_long_long" >>confdefs.h +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 +printf %s "checking size of size_t... " >&6; } +if test ${ac_cv_sizeof_size_t+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default" +then : + +else case e in #( + e) if test "$ac_cv_type_size_t" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (size_t) +See 'config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_size_t=0 + fi ;; +esac +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 +printf "%s\n" "$ac_cv_sizeof_size_t" >&6; } + + + +printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h + + # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 printf %s "checking size of void *... " >&6; } if test ${ac_cv_sizeof_void_p+y} then : printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default" +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default" then : -else $as_nop - if test "$ac_cv_type_void_p" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) if test "$ac_cv_type_void_p" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void *) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_void_p=0 - fi + fi ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 printf "%s\n" "$ac_cv_sizeof_void_p" >&6; } @@ -25820,8 +26347,8 @@ printf %s "checking for working mmap... " >&6; } if test ${ac_cv_func_mmap_fixed_mapped+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes +else case e in #( + e) if test "$cross_compiling" = yes then : case "$host_os" in # (( # Guess yes on platforms where we know the result. @@ -25829,8 +26356,8 @@ then : # If we don't know, assume the worst. *) ac_cv_func_mmap_fixed_mapped=no ;; esac -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* malloc might have been renamed as rpl_malloc. */ @@ -25851,21 +26378,21 @@ $ac_includes_default VM page cache was not coherent with the file system buffer cache like early versions of FreeBSD and possibly contemporary NetBSD.) For shared mappings, we should conversely verify that changes get - propagated back to all the places they're supposed to be. - - Grep wants private fixed already mapped. - The main things grep needs to know about mmap are: - * does it exist and is it safe to write into the mmap'd area - * how to use it (BSD variants) */ + propagated back to all the places they're supposed to be. */ #include #include -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE +#ifndef getpagesize +/* Prefer sysconf to the legacy getpagesize function, as getpagesize has + been removed from POSIX and is limited to page sizes that fit in 'int'. */ # ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ +# define getpagesize() sysconf (_SC_PAGESIZE) +# elif defined _SC_PAGE_SIZE +# define getpagesize() sysconf (_SC_PAGE_SIZE) +# elif HAVE_GETPAGESIZE +int getpagesize (); +# else # ifdef HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE @@ -25889,16 +26416,15 @@ $ac_includes_default # else /* no HAVE_SYS_PARAM_H */ # define getpagesize() 8192 /* punt totally */ # endif /* no HAVE_SYS_PARAM_H */ -# endif /* no _SC_PAGESIZE */ - -#endif /* no HAVE_GETPAGESIZE */ +# endif +#endif int main (void) { char *data, *data2, *data3; const char *cdata2; - int i, pagesize; + long i, pagesize; int fd, fd2; pagesize = getpagesize (); @@ -25932,8 +26458,7 @@ main (void) if (*(data2 + i)) return 7; close (fd2); - if (munmap (data2, pagesize)) - return 8; + /* 'return 8;' not currently used. */ /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that @@ -25970,13 +26495,16 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_mmap_fixed_mapped=yes -else $as_nop - ac_cv_func_mmap_fixed_mapped=no +else case e in #( + e) ac_cv_func_mmap_fixed_mapped=no ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 printf "%s\n" "$ac_cv_func_mmap_fixed_mapped" >&6; } @@ -25992,18 +26520,15 @@ printf %s "checking for working strtod... " >&6; } if test ${ac_cv_func_strtod+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes +else case e in #( + e) if test "$cross_compiling" = yes then : ac_cv_func_strtod=no -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default -#ifndef strtod -double strtod (); -#endif int main (void) { @@ -26033,13 +26558,16 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_strtod=yes -else $as_nop - ac_cv_func_strtod=no +else case e in #( + e) ac_cv_func_strtod=no ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strtod" >&5 printf "%s\n" "$ac_cv_func_strtod" >&6; } @@ -26062,16 +26590,22 @@ printf %s "checking for pow in -lm... " >&6; } if test ${ac_cv_lib_m_pow+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pow (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char pow (void); int main (void) { @@ -26083,21 +26617,24 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_m_pow=yes -else $as_nop - ac_cv_lib_m_pow=no +else case e in #( + e) ac_cv_lib_m_pow=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_pow" >&5 printf "%s\n" "$ac_cv_lib_m_pow" >&6; } if test "x$ac_cv_lib_m_pow" = xyes then : POW_LIB=-lm -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find library containing definition of pow" >&5 -printf "%s\n" "$as_me: WARNING: cannot find library containing definition of pow" >&2;} +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find library containing definition of pow" >&5 +printf "%s\n" "$as_me: WARNING: cannot find library containing definition of pow" >&2;} ;; +esac fi fi @@ -26108,8 +26645,9 @@ ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includ if test "x$ac_cv_have_decl_strerror_r" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_STRERROR_R $ac_have_decl" >>confdefs.h @@ -26128,8 +26666,8 @@ printf %s "checking whether strerror_r returns char *... " >&6; } if test ${ac_cv_func_strerror_r_char_p+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ac_cv_func_strerror_r_char_p=no if test $ac_cv_have_decl_strerror_r = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -26155,7 +26693,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 printf "%s\n" "$ac_cv_func_strerror_r_char_p" >&6; } @@ -26175,16 +26714,22 @@ printf %s "checking for sqrt in -lm... " >&6; } if test ${ac_cv_lib_m_sqrt+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char sqrt (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char sqrt (void); int main (void) { @@ -26196,12 +26741,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_m_sqrt=yes -else $as_nop - ac_cv_lib_m_sqrt=no +else case e in #( + e) ac_cv_lib_m_sqrt=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sqrt" >&5 printf "%s\n" "$ac_cv_lib_m_sqrt" >&6; } @@ -26221,15 +26768,21 @@ printf %s "checking for library containing gethostbyname... " >&6; } if test ${ac_cv_search_gethostbyname+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gethostbyname (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (void); int main (void) { @@ -26260,11 +26813,13 @@ done if test ${ac_cv_search_gethostbyname+y} then : -else $as_nop - ac_cv_search_gethostbyname=no +else case e in #( + e) ac_cv_search_gethostbyname=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 printf "%s\n" "$ac_cv_search_gethostbyname" >&6; } @@ -26280,15 +26835,21 @@ printf %s "checking for library containing socket... " >&6; } if test ${ac_cv_search_socket+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char socket (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char socket (void); int main (void) { @@ -26319,11 +26880,13 @@ done if test ${ac_cv_search_socket+y} then : -else $as_nop - ac_cv_search_socket=no +else case e in #( + e) ac_cv_search_socket=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 printf "%s\n" "$ac_cv_search_socket" >&6; } @@ -26348,15 +26911,21 @@ printf %s "checking for library containing clock_gettime... " >&6; } if test ${ac_cv_search_clock_gettime+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char clock_gettime (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (void); int main (void) { @@ -26387,11 +26956,13 @@ done if test ${ac_cv_search_clock_gettime+y} then : -else $as_nop - ac_cv_search_clock_gettime=no +else case e in #( + e) ac_cv_search_clock_gettime=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 printf "%s\n" "$ac_cv_search_clock_gettime" >&6; } @@ -26426,31 +26997,33 @@ printf "%s\n" "yes" >&6; } printf "%s\n" "#define HAVE_CLOCK_REALTIME 1" >>confdefs.h -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -else $as_nop - +else case e in #( + e) for ac_func in gettimeofday ftime do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF break fi done - + ;; +esac fi @@ -26466,8 +27039,9 @@ ac_fn_check_decl "$LINENO" "pread" "ac_cv_have_decl_pread" " if test "x$ac_cv_have_decl_pread" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_PREAD $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "pwrite" "ac_cv_have_decl_pwrite" " @@ -26476,8 +27050,9 @@ ac_fn_check_decl "$LINENO" "pwrite" "ac_cv_have_decl_pwrite" " if test "x$ac_cv_have_decl_pwrite" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_PWRITE $ac_have_decl" >>confdefs.h @@ -26488,8 +27063,9 @@ ac_fn_check_decl "$LINENO" "strlcpy" "ac_cv_have_decl_strlcpy" " if test "x$ac_cv_have_decl_strlcpy" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_STRLCPY $ac_have_decl" >>confdefs.h @@ -26501,8 +27077,9 @@ ac_fn_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" " if test "x$ac_cv_have_decl_vsnprintf" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_VSNPRINTF $ac_have_decl" >>confdefs.h @@ -26551,8 +27128,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CXX"; then +else case e in #( + e) if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -26574,7 +27151,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then @@ -26600,8 +27178,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CXX+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CXX"; then +else case e in #( + e) if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -26623,7 +27201,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then @@ -26683,8 +27262,8 @@ printf %s "checking whether the compiler supports GNU C++... " >&6; } if test ${ac_cv_cxx_compiler_gnu+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -26701,12 +27280,14 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } @@ -26724,8 +27305,8 @@ printf %s "checking whether $CXX accepts -g... " >&6; } if test ${ac_cv_prog_cxx_g+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_cxx_werror_flag=$ac_cxx_werror_flag +else case e in #( + e) ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" @@ -26743,8 +27324,8 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_g=yes -else $as_nop - CXXFLAGS="" +else case e in #( + e) CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -26759,8 +27340,8 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : -else $as_nop - ac_cxx_werror_flag=$ac_save_cxx_werror_flag +else case e in #( + e) ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -26777,12 +27358,15 @@ if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag + ac_cxx_werror_flag=$ac_save_cxx_werror_flag ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } @@ -26809,8 +27393,8 @@ printf %s "checking for $CXX option to enable C++11 features... " >&6; } if test ${ac_cv_prog_cxx_cxx11+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cxx_cxx11=no +else case e in #( + e) ac_cv_prog_cxx_cxx11=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -26827,25 +27411,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cxx_cxx11" != "xno" && break done rm -f conftest.$ac_ext -CXX=$ac_save_CXX +CXX=$ac_save_CXX ;; +esac fi if test "x$ac_cv_prog_cxx_cxx11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cxx_cxx11" = x +else case e in #( + e) if test "x$ac_cv_prog_cxx_cxx11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } - CXX="$CXX $ac_cv_prog_cxx_cxx11" + CXX="$CXX $ac_cv_prog_cxx_cxx11" ;; +esac fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 - ac_prog_cxx_stdcxx=cxx11 + ac_prog_cxx_stdcxx=cxx11 ;; +esac fi fi if test x$ac_prog_cxx_stdcxx = xno @@ -26855,8 +27442,8 @@ printf %s "checking for $CXX option to enable C++98 features... " >&6; } if test ${ac_cv_prog_cxx_cxx98+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cxx_cxx98=no +else case e in #( + e) ac_cv_prog_cxx_cxx98=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -26873,25 +27460,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cxx_cxx98" != "xno" && break done rm -f conftest.$ac_ext -CXX=$ac_save_CXX +CXX=$ac_save_CXX ;; +esac fi if test "x$ac_cv_prog_cxx_cxx98" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cxx_cxx98" = x +else case e in #( + e) if test "x$ac_cv_prog_cxx_cxx98" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } - CXX="$CXX $ac_cv_prog_cxx_cxx98" + CXX="$CXX $ac_cv_prog_cxx_cxx98" ;; +esac fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 - ac_prog_cxx_stdcxx=cxx98 + ac_prog_cxx_stdcxx=cxx98 ;; +esac fi fi @@ -26908,8 +27498,8 @@ printf %s "checking dependency style of $depcc... " >&6; } if test ${am_cv_CXX_dependencies_compiler_type+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then +else case e in #( + e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up @@ -27013,7 +27603,8 @@ else $as_nop else am_cv_CXX_dependencies_compiler_type=none fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 printf "%s\n" "$am_cv_CXX_dependencies_compiler_type" >&6; } @@ -27035,8 +27626,8 @@ printf %s "checking whether the compiler recognizes bool as a built-in type... " if test ${ax_cv_cxx_bool+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_ext=cpp +else case e in #( + e) ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -27058,8 +27649,9 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ax_cv_cxx_bool=yes -else $as_nop - ax_cv_cxx_bool=no +else case e in #( + e) ax_cv_cxx_bool=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_ext=cpp @@ -27068,7 +27660,8 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_bool" >&5 printf "%s\n" "$ax_cv_cxx_bool" >&6; } @@ -27084,8 +27677,8 @@ printf %s "checking whether the compiler implements namespaces... " >&6; } if test ${ax_cv_cxx_namespaces+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_ext=cpp +else case e in #( + e) ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -27099,8 +27692,9 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ax_cv_cxx_namespaces=yes -else $as_nop - ax_cv_cxx_namespaces=no +else case e in #( + e) ax_cv_cxx_namespaces=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_ext=cpp @@ -27109,7 +27703,8 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_namespaces" >&5 printf "%s\n" "$ax_cv_cxx_namespaces" >&6; } @@ -27125,8 +27720,8 @@ printf %s "checking if g++ supports namespace std... " >&6; } if test ${ax_cv_cxx_have_std_namespace+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_ext=cpp +else case e in #( + e) ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -27147,8 +27742,9 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ax_cv_cxx_have_std_namespace=yes -else $as_nop - ax_cv_cxx_have_std_namespace=no +else case e in #( + e) ax_cv_cxx_have_std_namespace=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_ext=cpp @@ -27157,7 +27753,8 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_have_std_namespace" >&5 printf "%s\n" "$ax_cv_cxx_have_std_namespace" >&6; } @@ -27180,8 +27777,8 @@ printf %s "checking for $CXX option to support OpenMP... " >&6; } if test ${ac_cv_prog_cxx_openmp+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cxx_openmp='not found' +else case e in #( + e) ac_cv_prog_cxx_openmp='not found' for ac_option in '' -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp -homp \ -Popenmp --openmp; do @@ -27212,8 +27809,9 @@ _ACEOF if ac_fn_cxx_try_link "$LINENO" then : ac_cv_prog_cxx_openmp=$ac_option -else $as_nop - ac_cv_prog_cxx_openmp='unsupported' +else case e in #( + e) ac_cv_prog_cxx_openmp='unsupported' ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -27230,7 +27828,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext elif test "$ac_cv_prog_cxx_openmp" = ''; then ac_cv_prog_cxx_openmp='none needed' fi - rm -f penmp mp + rm -f penmp mp ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_openmp" >&5 printf "%s\n" "$ac_cv_prog_cxx_openmp" >&6; } @@ -27324,8 +27923,8 @@ printf %s "checking for X11 configure files... " >&6; } if test ${im_cv_x_configure+y} then : printf %s "(cached) " >&6 -else $as_nop - # Look for the header file in a standard set of common directories. +else case e in #( + e) # Look for the header file in a standard set of common directories. # Check X11 before X11Rn because it is often a symlink to the current release. for ac_dir in \ /lib/usr/lib/X11 \ @@ -27368,7 +27967,8 @@ else $as_nop break fi - done + done ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $im_cv_x_configure" >&5 printf "%s\n" "$im_cv_x_configure" >&6; } @@ -27386,273 +27986,154 @@ printf "%s\n" "#define X11_CONFIGURE_PATH \"$X11ConfigurePath\"" >>confdefs.h # Find OpenMP library # GOMP_LIBS='' -if test "$enable_openmp" != 'no'; then +if test "${OPENMP_ENABLED}" = 'yes' && \ + test "$ac_cv_prog_c_openmp" != 'unsupported'; then + ac_fn_c_check_header_compile "$LINENO" "omp.h" "ac_cv_header_omp_h" "$ac_includes_default" +if test "x$ac_cv_header_omp_h" = xyes +then : + +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: OpenMP header file not found" >&5 +printf "%s\n" "OpenMP header file not found" >&6; } ;; +esac +fi + if test "${GCC}" = "yes"; then # Open64 (passes for GCC but uses different OpenMP implementation) if test "x$GOMP_LIBS" = x ; then if $CC --version 2>&1 | grep Open64 > /dev/null ; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for omp_get_num_procs in -lopenmp" >&5 -printf %s "checking for omp_get_num_procs in -lopenmp... " >&6; } -if test ${ac_cv_lib_openmp_omp_get_num_procs+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lopenmp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char omp_get_num_procs (); + #include int main (void) { -return omp_get_num_procs (); + + omp_set_num_threads(1); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_openmp_omp_get_num_procs=yes -else $as_nop - ac_cv_lib_openmp_omp_get_num_procs=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_openmp_omp_get_num_procs" >&5 -printf "%s\n" "$ac_cv_lib_openmp_omp_get_num_procs" >&6; } -if test "x$ac_cv_lib_openmp_omp_get_num_procs" = xyes +if ac_fn_c_try_compile "$LINENO" then : GOMP_LIBS="-lopenmp" fi - +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi # Clang (passes for GCC but uses different OpenMP implementation) - if test "x$LIB_OMP" = x ; then + if test "x$GOMP_LIBS" = x ; then if $CC --version 2>&1 | grep clang > /dev/null ; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GOMP_parallel_start in -lomp" >&5 -printf %s "checking for GOMP_parallel_start in -lomp... " >&6; } -if test ${ac_cv_lib_omp_GOMP_parallel_start+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lomp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char GOMP_parallel_start (); + #include int main (void) { -return GOMP_parallel_start (); + + omp_set_num_threads(1); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_omp_GOMP_parallel_start=yes -else $as_nop - ac_cv_lib_omp_GOMP_parallel_start=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_omp_GOMP_parallel_start" >&5 -printf "%s\n" "$ac_cv_lib_omp_GOMP_parallel_start" >&6; } -if test "x$ac_cv_lib_omp_GOMP_parallel_start" = xyes +if ac_fn_c_try_compile "$LINENO" then : - LIB_OMP="-lomp" + GOMP_LIBS="-lomp" fi - +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi # GCC if test "x$GOMP_LIBS" = x ; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GOMP_parallel_start in -lgomp" >&5 -printf %s "checking for GOMP_parallel_start in -lgomp... " >&6; } -if test ${ac_cv_lib_gomp_GOMP_parallel_start+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgomp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char GOMP_parallel_start (); + #include int main (void) { -return GOMP_parallel_start (); + + omp_set_num_threads(1); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_gomp_GOMP_parallel_start=yes -else $as_nop - ac_cv_lib_gomp_GOMP_parallel_start=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gomp_GOMP_parallel_start" >&5 -printf "%s\n" "$ac_cv_lib_gomp_GOMP_parallel_start" >&6; } -if test "x$ac_cv_lib_gomp_GOMP_parallel_start" = xyes +if ac_fn_c_try_compile "$LINENO" then : GOMP_LIBS="-lgomp" fi - +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # Sun CC if test "x$GOMP_LIBS" = x ; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sunw_mp_register_warn in -lmtsk" >&5 -printf %s "checking for sunw_mp_register_warn in -lmtsk... " >&6; } -if test ${ac_cv_lib_mtsk_sunw_mp_register_warn+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmtsk $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char sunw_mp_register_warn (); + #include int main (void) { -return sunw_mp_register_warn (); + + omp_set_num_threads(1); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_mtsk_sunw_mp_register_warn=yes -else $as_nop - ac_cv_lib_mtsk_sunw_mp_register_warn=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mtsk_sunw_mp_register_warn" >&5 -printf "%s\n" "$ac_cv_lib_mtsk_sunw_mp_register_warn" >&6; } -if test "x$ac_cv_lib_mtsk_sunw_mp_register_warn" = xyes +if ac_fn_c_try_compile "$LINENO" then : GOMP_LIBS="-lmtsk" fi - +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi # AIX xlc if test "x$GOMP_LIBS" = x ; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _xlsmpFlush in -lxlsmp" >&5 -printf %s "checking for _xlsmpFlush in -lxlsmp... " >&6; } -if test ${ac_cv_lib_xlsmp__xlsmpFlush+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lxlsmp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char _xlsmpFlush (); + #include int main (void) { -return _xlsmpFlush (); + + omp_set_num_threads(1); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_xlsmp__xlsmpFlush=yes -else $as_nop - ac_cv_lib_xlsmp__xlsmpFlush=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xlsmp__xlsmpFlush" >&5 -printf "%s\n" "$ac_cv_lib_xlsmp__xlsmpFlush" >&6; } -if test "x$ac_cv_lib_xlsmp__xlsmpFlush" = xyes +if ac_fn_c_try_compile "$LINENO" then : - GOMP_LIBS="-lxlsmp" + GOMP_LIBS="-lxmlsmp" fi - +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi # SGI IRIX 6.5 MIPSpro C/C++ if test "x$GOMP_LIBS" = x ; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mp_destroy in -lmp" >&5 -printf %s "checking for mp_destroy in -lmp... " >&6; } -if test ${ac_cv_lib_mp_mp_destroy+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char mp_destroy (); + #include int main (void) { -return mp_destroy (); + + omp_set_num_threads(1); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_mp_mp_destroy=yes -else $as_nop - ac_cv_lib_mp_mp_destroy=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mp_mp_destroy" >&5 -printf "%s\n" "$ac_cv_lib_mp_mp_destroy" >&6; } -if test "x$ac_cv_lib_mp_mp_destroy" = xyes +if ac_fn_c_try_compile "$LINENO" then : GOMP_LIBS="-lmp" fi - +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi - LIBS="$GOMP_LIBS $LIBS" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OpenMP library " >&5 +printf %s "checking for OpenMP library ... " >&6; } + if test "x$GOMP_LIBS" = x ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found!" >&5 +printf "%s\n" "not found!" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${GOMP_LIBS}" >&5 +printf "%s\n" "${GOMP_LIBS}" >&6; } + fi fi @@ -27672,8 +28153,9 @@ printf "%s\n" "" >&6; } if test "x$ac_cv_header_jemalloc_jemalloc_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for malloc_stats_print in -ljemalloc" >&5 @@ -27681,16 +28163,22 @@ printf %s "checking for malloc_stats_print in -ljemalloc... " >&6; } if test ${ac_cv_lib_jemalloc_malloc_stats_print+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ljemalloc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char malloc_stats_print (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char malloc_stats_print (void); int main (void) { @@ -27702,20 +28190,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_jemalloc_malloc_stats_print=yes -else $as_nop - ac_cv_lib_jemalloc_malloc_stats_print=no +else case e in #( + e) ac_cv_lib_jemalloc_malloc_stats_print=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jemalloc_malloc_stats_print" >&5 printf "%s\n" "$ac_cv_lib_jemalloc_malloc_stats_print" >&6; } if test "x$ac_cv_lib_jemalloc_malloc_stats_print" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if jemalloc memory allocation library is complete" >&5 @@ -27768,8 +28259,9 @@ printf "%s\n" "" >&6; } if test "x$ac_cv_header_mtmalloc_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mallocctl in -lmtalloc" >&5 @@ -27777,16 +28269,22 @@ printf %s "checking for mallocctl in -lmtalloc... " >&6; } if test ${ac_cv_lib_mtalloc_mallocctl+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lmtalloc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char mallocctl (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char mallocctl (void); int main (void) { @@ -27798,20 +28296,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_mtalloc_mallocctl=yes -else $as_nop - ac_cv_lib_mtalloc_mallocctl=no +else case e in #( + e) ac_cv_lib_mtalloc_mallocctl=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mtalloc_mallocctl" >&5 printf "%s\n" "$ac_cv_lib_mtalloc_mallocctl" >&6; } if test "x$ac_cv_lib_mtalloc_mallocctl" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi @@ -27862,16 +28363,22 @@ printf %s "checking for mallinfo in -ltcmalloc_minimal... " >&6; } if test ${ac_cv_lib_tcmalloc_minimal_mallinfo+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ltcmalloc_minimal $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char mallinfo (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char mallinfo (void); int main (void) { @@ -27883,20 +28390,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_tcmalloc_minimal_mallinfo=yes -else $as_nop - ac_cv_lib_tcmalloc_minimal_mallinfo=no +else case e in #( + e) ac_cv_lib_tcmalloc_minimal_mallinfo=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tcmalloc_minimal_mallinfo" >&5 printf "%s\n" "$ac_cv_lib_tcmalloc_minimal_mallinfo" >&6; } if test "x$ac_cv_lib_tcmalloc_minimal_mallinfo" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi @@ -27944,8 +28454,9 @@ printf "%s\n" "" >&6; } if test "x$ac_cv_header_umem_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for umem_alloc in -lumem" >&5 @@ -27953,16 +28464,22 @@ printf %s "checking for umem_alloc in -lumem... " >&6; } if test ${ac_cv_lib_umem_umem_alloc+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lumem $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char umem_alloc (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char umem_alloc (void); int main (void) { @@ -27974,20 +28491,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_umem_umem_alloc=yes -else $as_nop - ac_cv_lib_umem_umem_alloc=no +else case e in #( + e) ac_cv_lib_umem_umem_alloc=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_umem_umem_alloc" >&5 printf "%s\n" "$ac_cv_lib_umem_umem_alloc" >&6; } if test "x$ac_cv_lib_umem_umem_alloc" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for umem_free in -lumem" >&5 @@ -27995,16 +28515,22 @@ printf %s "checking for umem_free in -lumem... " >&6; } if test ${ac_cv_lib_umem_umem_free+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lumem $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char umem_free (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char umem_free (void); int main (void) { @@ -28016,20 +28542,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_umem_umem_free=yes -else $as_nop - ac_cv_lib_umem_umem_free=no +else case e in #( + e) ac_cv_lib_umem_umem_free=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_umem_umem_free" >&5 printf "%s\n" "$ac_cv_lib_umem_umem_free" >&6; } if test "x$ac_cv_lib_umem_umem_free" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if umem memory allocation library is complete" >&5 @@ -28077,8 +28606,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_CCMALLOCDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $CCMALLOCDelegate in +else case e in #( + e) case $CCMALLOCDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_CCMALLOCDelegate="$CCMALLOCDelegate" # Let the user override the test with a path. ;; @@ -28103,6 +28632,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi CCMALLOCDelegate=$ac_cv_path_CCMALLOCDelegate @@ -28125,16 +28655,22 @@ printf %s "checking for ccmalloc_malloc in -lccmalloc... " >&6; } if test ${ac_cv_lib_ccmalloc_ccmalloc_malloc+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lccmalloc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char ccmalloc_malloc (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char ccmalloc_malloc (void); int main (void) { @@ -28146,20 +28682,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_ccmalloc_ccmalloc_malloc=yes -else $as_nop - ac_cv_lib_ccmalloc_ccmalloc_malloc=no +else case e in #( + e) ac_cv_lib_ccmalloc_ccmalloc_malloc=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ccmalloc_ccmalloc_malloc" >&5 printf "%s\n" "$ac_cv_lib_ccmalloc_ccmalloc_malloc" >&6; } if test "x$ac_cv_lib_ccmalloc_ccmalloc_malloc" = xyes then : CCMALLOC_LIBS="$CCMALLOC_PREFIX/lib/ccmalloc-gcc.o -lccmalloc -ldl" -else $as_nop - ,-ldl +else case e in #( + e) ,-ldl ;; +esac fi if test -n "$CCMALLOC_LIBS"; then @@ -28202,8 +28741,9 @@ fi if test ${with_bzlib+y} then : withval=$with_bzlib; with_bzlib=$withval -else $as_nop - with_bzlib='yes' +else case e in #( + e) with_bzlib='yes' ;; +esac fi @@ -28221,12 +28761,86 @@ printf "%s\n" "" >&6; } failed=0 passed=0 found_libbz=0 + +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bzip2 >= 1.0.0" >&5 +printf %s "checking for bzip2 >= 1.0.0... " >&6; } + +if test -n "$BZLIB_CFLAGS"; then + pkg_cv_BZLIB_CFLAGS="$BZLIB_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bzip2 >= 1.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "bzip2 >= 1.0.0") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_BZLIB_CFLAGS=`$PKG_CONFIG --cflags "bzip2 >= 1.0.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$BZLIB_LIBS"; then + pkg_cv_BZLIB_LIBS="$BZLIB_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bzip2 >= 1.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "bzip2 >= 1.0.0") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_BZLIB_LIBS=`$PKG_CONFIG --libs "bzip2 >= 1.0.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + BZLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "bzip2 >= 1.0.0" 2>&1` + else + BZLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "bzip2 >= 1.0.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$BZLIB_PKG_ERRORS" >&5 + + have_bzlib=no +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + have_bzlib=no +else + BZLIB_CFLAGS=$pkg_cv_BZLIB_CFLAGS + BZLIB_LIBS=$pkg_cv_BZLIB_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + have_bzlib=yes +fi + CFLAGS="$CFLAGS $BZLIB_CFLAGS" + LIBS="$LIBS $BZLIB_LIBS" ac_fn_c_check_header_compile "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" if test "x$ac_cv_header_bzlib_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzDecompress in -lbz2" >&5 @@ -28234,16 +28848,22 @@ printf %s "checking for BZ2_bzDecompress in -lbz2... " >&6; } if test ${ac_cv_lib_bz2_BZ2_bzDecompress+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lbz2 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char BZ2_bzDecompress (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char BZ2_bzDecompress (void); int main (void) { @@ -28255,12 +28875,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_bz2_BZ2_bzDecompress=yes -else $as_nop - ac_cv_lib_bz2_BZ2_bzDecompress=no +else case e in #( + e) ac_cv_lib_bz2_BZ2_bzDecompress=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzDecompress" >&5 printf "%s\n" "$ac_cv_lib_bz2_BZ2_bzDecompress" >&6; } @@ -28275,16 +28897,22 @@ printf %s "checking for _imp__BZ2_decompress in -lbz2... " >&6; } if test ${ac_cv_lib_bz2__imp__BZ2_decompress+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lbz2 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char _imp__BZ2_decompress (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char _imp__BZ2_decompress (void); int main (void) { @@ -28296,12 +28924,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_bz2__imp__BZ2_decompress=yes -else $as_nop - ac_cv_lib_bz2__imp__BZ2_decompress=no +else case e in #( + e) ac_cv_lib_bz2__imp__BZ2_decompress=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2__imp__BZ2_decompress" >&5 printf "%s\n" "$ac_cv_lib_bz2__imp__BZ2_decompress" >&6; } @@ -28348,6 +28978,7 @@ fi + # # Find the X11 include and library directories. # @@ -28365,7 +28996,7 @@ then : withval=$with_x; fi -# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +# $have_x is 'yes', 'no', 'disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled @@ -28375,8 +29006,8 @@ else *,NONE | NONE,*) if test ${ac_cv_have_x+y} then : printf %s "(cached) " >&6 -else $as_nop - # One or both of the vars are not set, and there is no cached value. +else case e in #( + e) # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no # Do we need to do anything special at all? @@ -28499,13 +29130,14 @@ if ac_fn_c_try_cpp "$LINENO" then : # We can compile using X headers with no special include directory. ac_x_includes= -else $as_nop - for ac_dir in $ac_x_header_dirs; do +else case e in #( + e) for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi -done +done ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext fi # $ac_x_includes = no @@ -28532,8 +29164,8 @@ then : LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= -else $as_nop - LIBS=$ac_save_LIBS +else case e in #( + e) LIBS=$ac_save_LIBS for ac_dir in `printf "%s\n" "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! @@ -28543,7 +29175,8 @@ do break 2 fi done -done +done ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -28560,6 +29193,7 @@ case $ac_x_includes,$ac_x_libraries in #( ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ ac_x_libraries='$ac_x_libraries'" ;; +esac ;; esac fi ;; #( @@ -28621,8 +29255,8 @@ then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } X_LIBS="$X_LIBS -R$x_libraries" -else $as_nop - LIBS="$ac_xsave_LIBS -R $x_libraries" +else case e in #( + e) LIBS="$ac_xsave_LIBS -R $x_libraries" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -28639,12 +29273,14 @@ then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } X_LIBS="$X_LIBS -R $x_libraries" -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 -printf "%s\n" "neither works" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 +printf "%s\n" "neither works" >&6; } ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -28668,8 +29304,14 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char XOpenDisplay (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char XOpenDisplay (void); int main (void) { @@ -28681,22 +29323,28 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 printf %s "checking for dnet_ntoa in -ldnet... " >&6; } if test ${ac_cv_lib_dnet_dnet_ntoa+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dnet_ntoa (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (void); int main (void) { @@ -28708,12 +29356,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dnet_dnet_ntoa=yes -else $as_nop - ac_cv_lib_dnet_dnet_ntoa=no +else case e in #( + e) ac_cv_lib_dnet_dnet_ntoa=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 printf "%s\n" "$ac_cv_lib_dnet_dnet_ntoa" >&6; } @@ -28728,16 +29378,22 @@ printf %s "checking for dnet_ntoa in -ldnet_stub... " >&6; } if test ${ac_cv_lib_dnet_stub_dnet_ntoa+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dnet_ntoa (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (void); int main (void) { @@ -28749,12 +29405,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dnet_stub_dnet_ntoa=yes -else $as_nop - ac_cv_lib_dnet_stub_dnet_ntoa=no +else case e in #( + e) ac_cv_lib_dnet_stub_dnet_ntoa=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 printf "%s\n" "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } @@ -28763,7 +29421,8 @@ then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi - fi + fi ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -28789,16 +29448,22 @@ printf %s "checking for gethostbyname in -lnsl... " >&6; } if test ${ac_cv_lib_nsl_gethostbyname+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gethostbyname (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (void); int main (void) { @@ -28810,12 +29475,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_nsl_gethostbyname=yes -else $as_nop - ac_cv_lib_nsl_gethostbyname=no +else case e in #( + e) ac_cv_lib_nsl_gethostbyname=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 printf "%s\n" "$ac_cv_lib_nsl_gethostbyname" >&6; } @@ -28830,16 +29497,22 @@ printf %s "checking for gethostbyname in -lbsd... " >&6; } if test ${ac_cv_lib_bsd_gethostbyname+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gethostbyname (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (void); int main (void) { @@ -28851,12 +29524,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_bsd_gethostbyname=yes -else $as_nop - ac_cv_lib_bsd_gethostbyname=no +else case e in #( + e) ac_cv_lib_bsd_gethostbyname=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 printf "%s\n" "$ac_cv_lib_bsd_gethostbyname" >&6; } @@ -28887,16 +29562,22 @@ printf %s "checking for connect in -lsocket... " >&6; } if test ${ac_cv_lib_socket_connect+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char connect (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char connect (void); int main (void) { @@ -28908,12 +29589,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_socket_connect=yes -else $as_nop - ac_cv_lib_socket_connect=no +else case e in #( + e) ac_cv_lib_socket_connect=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 printf "%s\n" "$ac_cv_lib_socket_connect" >&6; } @@ -28937,16 +29620,22 @@ printf %s "checking for remove in -lposix... " >&6; } if test ${ac_cv_lib_posix_remove+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char remove (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char remove (void); int main (void) { @@ -28958,12 +29647,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_posix_remove=yes -else $as_nop - ac_cv_lib_posix_remove=no +else case e in #( + e) ac_cv_lib_posix_remove=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 printf "%s\n" "$ac_cv_lib_posix_remove" >&6; } @@ -28987,16 +29678,22 @@ printf %s "checking for shmat in -lipc... " >&6; } if test ${ac_cv_lib_ipc_shmat+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char shmat (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (void); int main (void) { @@ -29008,12 +29705,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_ipc_shmat=yes -else $as_nop - ac_cv_lib_ipc_shmat=no +else case e in #( + e) ac_cv_lib_ipc_shmat=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 printf "%s\n" "$ac_cv_lib_ipc_shmat" >&6; } @@ -29039,16 +29738,22 @@ printf %s "checking for IceConnectionNumber in -lICE... " >&6; } if test ${ac_cv_lib_ICE_IceConnectionNumber+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char IceConnectionNumber (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (void); int main (void) { @@ -29060,12 +29765,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_ICE_IceConnectionNumber=yes -else $as_nop - ac_cv_lib_ICE_IceConnectionNumber=no +else case e in #( + e) ac_cv_lib_ICE_IceConnectionNumber=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 printf "%s\n" "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } @@ -29111,8 +29818,14 @@ fi /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char shmctl (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char shmctl (void); int main (void) { @@ -29136,16 +29849,22 @@ printf %s "checking for XShmAttach in -lXext... " >&6; } if test ${ac_cv_lib_Xext_XShmAttach+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lXext $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char XShmAttach (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char XShmAttach (void); int main (void) { @@ -29157,12 +29876,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_Xext_XShmAttach=yes -else $as_nop - ac_cv_lib_Xext_XShmAttach=no +else case e in #( + e) ac_cv_lib_Xext_XShmAttach=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShmAttach" >&5 printf "%s\n" "$ac_cv_lib_Xext_XShmAttach" >&6; } @@ -29183,16 +29904,22 @@ printf %s "checking for XShapeCombineMask in -lXext... " >&6; } if test ${ac_cv_lib_Xext_XShapeCombineMask+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lXext $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char XShapeCombineMask (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char XShapeCombineMask (void); int main (void) { @@ -29204,12 +29931,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_Xext_XShapeCombineMask=yes -else $as_nop - ac_cv_lib_Xext_XShapeCombineMask=no +else case e in #( + e) ac_cv_lib_Xext_XShapeCombineMask=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShapeCombineMask" >&5 printf "%s\n" "$ac_cv_lib_Xext_XShapeCombineMask" >&6; } @@ -29225,16 +29954,22 @@ printf %s "checking for XtSetEventDispatcher in -lXt... " >&6; } if test ${ac_cv_lib_Xt_XtSetEventDispatcher+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lXt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char XtSetEventDispatcher (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char XtSetEventDispatcher (void); int main (void) { @@ -29246,12 +29981,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_Xt_XtSetEventDispatcher=yes -else $as_nop - ac_cv_lib_Xt_XtSetEventDispatcher=no +else case e in #( + e) ac_cv_lib_Xt_XtSetEventDispatcher=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xt_XtSetEventDispatcher" >&5 printf "%s\n" "$ac_cv_lib_Xt_XtSetEventDispatcher" >&6; } @@ -29287,8 +30024,9 @@ fi if test ${with_zlib+y} then : withval=$with_zlib; with_zlib=$withval -else $as_nop - with_zlib='yes' +else case e in #( + e) with_zlib='yes' ;; +esac fi @@ -29406,8 +30144,9 @@ fi if test ${with_zstd+y} then : withval=$with_zstd; with_zstd=$withval -else $as_nop - with_zstd='yes' +else case e in #( + e) with_zstd='yes' ;; +esac fi @@ -29538,8 +30277,9 @@ printf "%s\n" "" >&6; } if test "x$ac_cv_header_ltdl_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -29562,8 +30302,9 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libltdl package is complete" >&5 @@ -29591,10 +30332,10 @@ printf "%s\n" "yes" >&6; } printf "%s\n" "no" >&6; } fi if test "$have_ltdl" != 'yes' ; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 1 "libltdl is required for modules and OpenCL builds -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } fi fi if test "$have_ltdl" != 'no'; then @@ -29616,16 +30357,22 @@ printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -29637,12 +30384,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes -else $as_nop - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } @@ -29664,8 +30413,9 @@ fi if test ${with_apple_font_dir+y} then : withval=$with_apple_font_dir; with_apple_font_dir=$withval -else $as_nop - with_apple_font_dir='default' +else case e in #( + e) with_apple_font_dir='default' ;; +esac fi @@ -29682,8 +30432,9 @@ fi if test ${with_autotrace+y} then : withval=$with_autotrace; with_autotrace=$withval -else $as_nop - with_autotrace='no' +else case e in #( + e) with_autotrace='no' ;; +esac fi @@ -29800,8 +30551,9 @@ fi if test ${with_dps+y} then : withval=$with_dps; with_dps=$withval -else $as_nop - with_dps='no' +else case e in #( + e) with_dps='no' ;; +esac fi @@ -29826,8 +30578,9 @@ printf "%s\n" "" >&6; } if test "x$ac_cv_header_DPS_dpsXclient_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi # DPS issues: @@ -29842,16 +30595,22 @@ printf %s "checking for DPSInitialize in -ldps... " >&6; } if test ${ac_cv_lib_dps_DPSInitialize+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldps $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char DPSInitialize (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char DPSInitialize (void); int main (void) { @@ -29863,20 +30622,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dps_DPSInitialize=yes -else $as_nop - ac_cv_lib_dps_DPSInitialize=no +else case e in #( + e) ac_cv_lib_dps_DPSInitialize=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dps_DPSInitialize" >&5 printf "%s\n" "$ac_cv_lib_dps_DPSInitialize" >&6; } if test "x$ac_cv_lib_dps_DPSInitialize" = xyes then : have_libdps='yes' -else $as_nop - have_libdps='no', +else case e in #( + e) have_libdps='no', ;; +esac fi if test "$have_libdps" != 'yes'; then @@ -29887,16 +30649,22 @@ printf %s "checking for DPSInitialize in -ldps... " >&6; } if test ${ac_cv_lib_dps_DPSInitialize+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldps $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char DPSInitialize (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char DPSInitialize (void); int main (void) { @@ -29908,20 +30676,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dps_DPSInitialize=yes -else $as_nop - ac_cv_lib_dps_DPSInitialize=no +else case e in #( + e) ac_cv_lib_dps_DPSInitialize=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dps_DPSInitialize" >&5 printf "%s\n" "$ac_cv_lib_dps_DPSInitialize" >&6; } if test "x$ac_cv_lib_dps_DPSInitialize" = xyes then : have_libdps='yes' -else $as_nop - have_libdps='no',-lXt +else case e in #( + e) have_libdps='no',-lXt ;; +esac fi if test "$have_libdps" = 'yes'; then @@ -29938,16 +30709,22 @@ printf %s "checking for XDPSPixelsPerPoint in -ldpstk... " >&6; } if test ${ac_cv_lib_dpstk_XDPSPixelsPerPoint+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldpstk $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char XDPSPixelsPerPoint (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char XDPSPixelsPerPoint (void); int main (void) { @@ -29959,20 +30736,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dpstk_XDPSPixelsPerPoint=yes -else $as_nop - ac_cv_lib_dpstk_XDPSPixelsPerPoint=no +else case e in #( + e) ac_cv_lib_dpstk_XDPSPixelsPerPoint=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dpstk_XDPSPixelsPerPoint" >&5 printf "%s\n" "$ac_cv_lib_dpstk_XDPSPixelsPerPoint" >&6; } if test "x$ac_cv_lib_dpstk_XDPSPixelsPerPoint" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1`,-ldps $LIBDPS_XT +else case e in #( + e) failed=`expr $failed + 1`,-ldps $LIBDPS_XT ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if DPS package is complete" >&5 @@ -30018,8 +30798,9 @@ fi if test ${with_dejavu_font_dir+y} then : withval=$with_dejavu_font_dir; with_dejavu_font_dir=$withval -else $as_nop - with_dejavu_font_dir='default' +else case e in #( + e) with_dejavu_font_dir='default' ;; +esac fi @@ -30036,8 +30817,9 @@ fi if test ${with_fftw+y} then : withval=$with_fftw; with_fftw=$withval -else $as_nop - with_fftw='no' +else case e in #( + e) with_fftw='no' ;; +esac fi @@ -30156,8 +30938,9 @@ fi if test ${with_flif+y} then : withval=$with_flif; with_flif=$withval -else $as_nop - with_flif='yes' +else case e in #( + e) with_flif='yes' ;; +esac fi @@ -30180,8 +30963,9 @@ printf "%s\n" "" >&6; } if test "x$ac_cv_header_flif_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for flif_create_decoder in -lflif" >&5 @@ -30189,16 +30973,22 @@ printf %s "checking for flif_create_decoder in -lflif... " >&6; } if test ${ac_cv_lib_flif_flif_create_decoder+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lflif $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char flif_create_decoder (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char flif_create_decoder (void); int main (void) { @@ -30210,20 +31000,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_flif_flif_create_decoder=yes -else $as_nop - ac_cv_lib_flif_flif_create_decoder=no +else case e in #( + e) ac_cv_lib_flif_flif_create_decoder=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_flif_flif_create_decoder" >&5 printf "%s\n" "$ac_cv_lib_flif_flif_create_decoder" >&6; } if test "x$ac_cv_lib_flif_flif_create_decoder" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if FLIF package is complete" >&5 @@ -30267,8 +31060,9 @@ fi if test ${with_fpx+y} then : withval=$with_fpx; with_fpx=$withval -else $as_nop - with_fpx='no' +else case e in #( + e) with_fpx='no' ;; +esac fi @@ -30297,8 +31091,9 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test "x$ac_cv_header_fpxlib_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FPX_OpenImageByFilename in -lfpx" >&5 @@ -30306,8 +31101,8 @@ printf %s "checking for FPX_OpenImageByFilename in -lfpx... " >&6; } if test ${ac_cv_lib_fpx_FPX_OpenImageByFilename+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lfpx $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -30326,20 +31121,23 @@ _ACEOF if ac_fn_cxx_try_link "$LINENO" then : ac_cv_lib_fpx_FPX_OpenImageByFilename=yes -else $as_nop - ac_cv_lib_fpx_FPX_OpenImageByFilename=no +else case e in #( + e) ac_cv_lib_fpx_FPX_OpenImageByFilename=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fpx_FPX_OpenImageByFilename" >&5 printf "%s\n" "$ac_cv_lib_fpx_FPX_OpenImageByFilename" >&6; } if test "x$ac_cv_lib_fpx_FPX_OpenImageByFilename" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi ac_ext=c @@ -30389,8 +31187,9 @@ fi if test ${with_djvu+y} then : withval=$with_djvu; with_djvu=$withval -else $as_nop - with_djvu='yes' +else case e in #( + e) with_djvu='yes' ;; +esac fi @@ -30509,8 +31308,9 @@ fi if test ${with_fontconfig+y} then : withval=$with_fontconfig; with_fontconfig=$withval -else $as_nop - with_fontconfig='yes' +else case e in #( + e) with_fontconfig='yes' ;; +esac fi @@ -30627,8 +31427,9 @@ fi if test ${with_freetype+y} then : withval=$with_freetype; with_freetype=$withval -else $as_nop - with_freetype='yes' +else case e in #( + e) with_freetype='yes' ;; +esac fi @@ -30741,8 +31542,9 @@ fi if test ${with_raqm+y} then : withval=$with_raqm; with_raqm=$withval -else $as_nop - with_raqm='yes' +else case e in #( + e) with_raqm='yes' ;; +esac fi @@ -30859,8 +31661,9 @@ fi if test ${with_gdi32+y} then : withval=$with_gdi32; with_gdi32=$withval -else $as_nop - with_gdi32='yes' +else case e in #( + e) with_gdi32='yes' ;; +esac fi if test "$with_gdi32" != 'yes' ; then @@ -30883,8 +31686,9 @@ printf "%s\n" "" >&6; } if test "x$ac_cv_header_windows_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi ac_fn_c_check_header_compile "$LINENO" "winuser.h" "ac_cv_header_winuser_h" "#include @@ -30892,8 +31696,9 @@ fi if test "x$ac_cv_header_winuser_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi ac_fn_c_check_header_compile "$LINENO" "wingdi.h" "ac_cv_header_wingdi_h" "#include @@ -30901,8 +31706,9 @@ fi if test "x$ac_cv_header_wingdi_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if Windows GDI32 support is complete" >&5 @@ -30952,8 +31758,9 @@ fi if test ${with_gslib+y} then : withval=$with_gslib; with_gslib=$withval -else $as_nop - with_gslib='no' +else case e in #( + e) with_gslib='no' ;; +esac fi @@ -30978,16 +31785,18 @@ printf "%s\n" "" >&6; } if test "x$ac_cv_header_ghostscript_iapi_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi ac_fn_c_check_header_compile "$LINENO" "ghostscript/ierrors.h" "ac_cv_header_ghostscript_ierrors_h" "$ac_includes_default" if test "x$ac_cv_header_ghostscript_ierrors_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gsapi_new_instance in Ghostscript framework" >&5 @@ -30995,16 +31804,22 @@ printf %s "checking for gsapi_new_instance in Ghostscript framework... " >&6; } if test ${ac_cv_framework_Ghostscript_gsapi_new_instance+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_framework_save_LIBS=$LIBS +else case e in #( + e) ac_check_framework_save_LIBS=$LIBS LIBS="-framework Ghostscript $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gsapi_new_instance (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char gsapi_new_instance (void); int main (void) { @@ -31016,34 +31831,42 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_framework_Ghostscript_gsapi_new_instance=yes -else $as_nop - ac_cv_framework_Ghostscript_gsapi_new_instance=no +else case e in #( + e) ac_cv_framework_Ghostscript_gsapi_new_instance=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_framework_save_LIBS +LIBS=$ac_check_framework_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_framework_Ghostscript_gsapi_new_instance" >&5 printf "%s\n" "$ac_cv_framework_Ghostscript_gsapi_new_instance" >&6; } if test $ac_cv_framework_Ghostscript_gsapi_new_instance = yes then : framework=`expr $framework + 1` -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gsapi_new_instance in -lgs" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gsapi_new_instance in -lgs" >&5 printf %s "checking for gsapi_new_instance in -lgs... " >&6; } if test ${ac_cv_lib_gs_gsapi_new_instance+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lgs $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gsapi_new_instance (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char gsapi_new_instance (void); int main (void) { @@ -31055,22 +31878,26 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_gs_gsapi_new_instance=yes -else $as_nop - ac_cv_lib_gs_gsapi_new_instance=no +else case e in #( + e) ac_cv_lib_gs_gsapi_new_instance=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gs_gsapi_new_instance" >&5 printf "%s\n" "$ac_cv_lib_gs_gsapi_new_instance" >&6; } if test "x$ac_cv_lib_gs_gsapi_new_instance" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if Ghostscript package is complete" >&5 printf %s "checking if Ghostscript package is complete... " >&6; } @@ -31117,8 +31944,9 @@ fi if test ${with_fontpath+y} then : withval=$with_fontpath; with_fontpath=$withval -else $as_nop - with_fontpath='' +else case e in #( + e) with_fontpath='' ;; +esac fi @@ -31139,8 +31967,9 @@ fi if test ${with_gs_font_dir+y} then : withval=$with_gs_font_dir; with_gs_font_dir=$withval -else $as_nop - with_gs_font_dir='default' +else case e in #( + e) with_gs_font_dir='default' ;; +esac fi @@ -31157,8 +31986,9 @@ fi if test ${with_gvc+y} then : withval=$with_gvc; with_gvc=$withval -else $as_nop - with_gvc='yes' +else case e in #( + e) with_gvc='yes' ;; +esac fi @@ -31272,8 +32102,9 @@ fi if test ${with_heic+y} then : withval=$with_heic; with_heic=$withval -else $as_nop - with_heic='yes' +else case e in #( + e) with_heic='yes' ;; +esac fi @@ -31392,8 +32223,9 @@ fi if test ${with_jbig+y} then : withval=$with_jbig; with_jbig=$withval -else $as_nop - with_jbig='yes' +else case e in #( + e) with_jbig='yes' ;; +esac fi @@ -31412,8 +32244,9 @@ printf "%s\n" "" >&6; } if test "x$ac_cv_header_jbig_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for jbg_dec_init in -ljbig" >&5 @@ -31421,16 +32254,22 @@ printf %s "checking for jbg_dec_init in -ljbig... " >&6; } if test ${ac_cv_lib_jbig_jbg_dec_init+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ljbig $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char jbg_dec_init (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char jbg_dec_init (void); int main (void) { @@ -31442,20 +32281,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_jbig_jbg_dec_init=yes -else $as_nop - ac_cv_lib_jbig_jbg_dec_init=no +else case e in #( + e) ac_cv_lib_jbig_jbg_dec_init=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jbig_jbg_dec_init" >&5 printf "%s\n" "$ac_cv_lib_jbig_jbg_dec_init" >&6; } if test "x$ac_cv_lib_jbig_jbg_dec_init" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if JBIG package is complete" >&5 @@ -31499,8 +32341,9 @@ fi if test ${with_jpeg+y} then : withval=$with_jpeg; with_jpeg=$withval -else $as_nop - with_jpeg='yes' +else case e in #( + e) with_jpeg='yes' ;; +esac fi @@ -31519,36 +32362,115 @@ printf %s "checking for JPEG... " >&6; } printf "%s\n" "" >&6; } failed=0 passed=0 + + +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libjpeg >= 2.0.0" >&5 +printf %s "checking for libjpeg >= 2.0.0... " >&6; } + +if test -n "$JPEG_CFLAGS"; then + pkg_cv_JPEG_CFLAGS="$JPEG_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libjpeg >= 2.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libjpeg >= 2.0.0") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_JPEG_CFLAGS=`$PKG_CONFIG --cflags "libjpeg >= 2.0.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$JPEG_LIBS"; then + pkg_cv_JPEG_LIBS="$JPEG_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libjpeg >= 2.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libjpeg >= 2.0.0") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_JPEG_LIBS=`$PKG_CONFIG --libs "libjpeg >= 2.0.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + JPEG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libjpeg >= 2.0.0" 2>&1` + else + JPEG_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libjpeg >= 2.0.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$JPEG_PKG_ERRORS" >&5 + + have_jpeg=no +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + have_jpeg=no +else + JPEG_CFLAGS=$pkg_cv_JPEG_CFLAGS + JPEG_LIBS=$pkg_cv_JPEG_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + have_jpeg=yes +fi + CFLAGS="$CFLAGS $JPEG_CFLAGS" + LIBS="$LIBS $JPEG_LIBS" + ac_fn_c_check_header_compile "$LINENO" "jconfig.h" "ac_cv_header_jconfig_h" "$ac_includes_default" if test "x$ac_cv_header_jconfig_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi ac_fn_c_check_header_compile "$LINENO" "jerror.h" "ac_cv_header_jerror_h" "$ac_includes_default" if test "x$ac_cv_header_jerror_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi ac_fn_c_check_header_compile "$LINENO" "jmorecfg.h" "ac_cv_header_jmorecfg_h" "$ac_includes_default" if test "x$ac_cv_header_jmorecfg_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi ac_fn_c_check_header_compile "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" if test "x$ac_cv_header_jpeglib_h" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for jpeg_read_header in -ljpeg" >&5 @@ -31556,16 +32478,22 @@ printf %s "checking for jpeg_read_header in -ljpeg... " >&6; } if test ${ac_cv_lib_jpeg_jpeg_read_header+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ljpeg $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char jpeg_read_header (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char jpeg_read_header (void); int main (void) { @@ -31577,20 +32505,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_jpeg_jpeg_read_header=yes -else $as_nop - ac_cv_lib_jpeg_jpeg_read_header=no +else case e in #( + e) ac_cv_lib_jpeg_jpeg_read_header=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_read_header" >&5 printf "%s\n" "$ac_cv_lib_jpeg_jpeg_read_header" >&6; } if test "x$ac_cv_lib_jpeg_jpeg_read_header" = xyes then : passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +else case e in #( + e) failed=`expr $failed + 1` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if JPEG package is complete" >&5 @@ -31626,6 +32557,7 @@ fi + # # Check for LCMS delegate library. # @@ -31634,8 +32566,9 @@ fi if test ${with_lcms+y} then : withval=$with_lcms; with_lcms=$withval -else $as_nop - with_lcms='yes' +else case e in #( + e) with_lcms='yes' ;; +esac fi if test "$with_lcms" != 'yes' ; then @@ -31768,8 +32701,9 @@ fi if test ${with_openjp2+y} then : withval=$with_openjp2; with_openjp2=$withval -else $as_nop - with_openjp2='yes' +else case e in #( + e) with_openjp2='yes' ;; +esac fi @@ -31887,8 +32821,9 @@ fi if test ${with_lqr+y} then : withval=$with_lqr; with_lqr=$withval -else $as_nop - with_lqr='yes' +else case e in #( + e) with_lqr='yes' ;; +esac fi @@ -32003,8 +32938,9 @@ fi if test ${with_lzma+y} then : withval=$with_lzma; with_lzma=$withval -else $as_nop - with_lzma='yes' +else case e in #( + e) with_lzma='yes' ;; +esac fi if test "$with_lzma" != 'yes' ; then @@ -32119,8 +33055,9 @@ fi if test ${with_openexr+y} then : withval=$with_openexr; with_openexr=$withval -else $as_nop - with_openexr='yes' +else case e in #( + e) with_openexr='yes' ;; +esac fi @@ -32237,8 +33174,9 @@ fi if test ${with_pango+y} then : withval=$with_pango; with_pango=$withval -else $as_nop - with_pango='yes' +else case e in #( + e) with_pango='yes' ;; +esac fi @@ -32444,8 +33382,9 @@ fi if test ${with_png+y} then : withval=$with_png; with_png=$withval -else $as_nop - with_png='yes' +else case e in #( + e) with_png='yes' ;; +esac fi @@ -32562,8 +33501,9 @@ fi if test ${with_raw+y} then : withval=$with_raw; with_raw=$withval -else $as_nop - with_raw='yes' +else case e in #( + e) with_raw='yes' ;; +esac fi @@ -32680,8 +33620,9 @@ fi if test ${with_rsvg+y} then : withval=$with_rsvg; with_rsvg=$withval -else $as_nop - with_rsvg='no' +else case e in #( + e) with_rsvg='no' ;; +esac fi @@ -32887,8 +33828,9 @@ fi if test ${with_tiff+y} then : withval=$with_tiff; with_tiff=$withval -else $as_nop - with_tiff='yes' +else case e in #( + e) with_tiff='yes' ;; +esac fi @@ -32897,326 +33839,94 @@ if test "$with_tiff" != 'yes'; then fi have_tiff='no' -TIFF_LIBS='' -if test "$with_tiff" != 'no'; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: -------------------------------------------------------------" >&5 +TIFF_CFLAGS="" +TIFF_LIBS="" +TIFF_PKG="" +if test "x$with_tiff" = "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: -------------------------------------------------------------" >&5 printf "%s\n" "-------------------------------------------------------------" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIFF" >&5 -printf %s "checking for TIFF... " >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 -printf "%s\n" "" >&6; } - failed=0 - passed=0 - ac_fn_c_check_header_compile "$LINENO" "tiff.h" "ac_cv_header_tiff_h" "$ac_includes_default" -if test "x$ac_cv_header_tiff_h" = xyes -then : - passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` -fi - - ac_fn_c_check_header_compile "$LINENO" "tiffio.h" "ac_cv_header_tiffio_h" "$ac_includes_default" -if test "x$ac_cv_header_tiffio_h" = xyes -then : - passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` -fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIFFOpen in -ltiff" >&5 -printf %s "checking for TIFFOpen in -ltiff... " >&6; } -if test ${ac_cv_lib_tiff_TIFFOpen+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltiff $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char TIFFOpen (); -int -main (void) -{ -return TIFFOpen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_tiff_TIFFOpen=yes -else $as_nop - ac_cv_lib_tiff_TIFFOpen=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFOpen" >&5 -printf "%s\n" "$ac_cv_lib_tiff_TIFFOpen" >&6; } -if test "x$ac_cv_lib_tiff_TIFFOpen" = xyes -then : - passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` -fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIFFClientOpen in -ltiff" >&5 -printf %s "checking for TIFFClientOpen in -ltiff... " >&6; } -if test ${ac_cv_lib_tiff_TIFFClientOpen+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltiff $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libtiff-4 >= 4.0.0" >&5 +printf %s "checking for libtiff-4 >= 4.0.0... " >&6; } -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char TIFFClientOpen (); -int -main (void) -{ -return TIFFClientOpen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_tiff_TIFFClientOpen=yes -else $as_nop - ac_cv_lib_tiff_TIFFClientOpen=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFClientOpen" >&5 -printf "%s\n" "$ac_cv_lib_tiff_TIFFClientOpen" >&6; } -if test "x$ac_cv_lib_tiff_TIFFClientOpen" = xyes -then : - passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +if test -n "$TIFF_CFLAGS"; then + pkg_cv_TIFF_CFLAGS="$TIFF_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtiff-4 >= 4.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libtiff-4 >= 4.0.0") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TIFF_CFLAGS=`$PKG_CONFIG --cflags "libtiff-4 >= 4.0.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIFFIsByteSwapped in -ltiff" >&5 -printf %s "checking for TIFFIsByteSwapped in -ltiff... " >&6; } -if test ${ac_cv_lib_tiff_TIFFIsByteSwapped+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltiff $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char TIFFIsByteSwapped (); -int -main (void) -{ -return TIFFIsByteSwapped (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_tiff_TIFFIsByteSwapped=yes -else $as_nop - ac_cv_lib_tiff_TIFFIsByteSwapped=no + else + pkg_failed=untried fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +if test -n "$TIFF_LIBS"; then + pkg_cv_TIFF_LIBS="$TIFF_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtiff-4 >= 4.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libtiff-4 >= 4.0.0") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TIFF_LIBS=`$PKG_CONFIG --libs "libtiff-4 >= 4.0.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFIsByteSwapped" >&5 -printf "%s\n" "$ac_cv_lib_tiff_TIFFIsByteSwapped" >&6; } -if test "x$ac_cv_lib_tiff_TIFFIsByteSwapped" = xyes -then : - passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` + else + pkg_failed=untried fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIFFReadRGBATile in -ltiff" >&5 -printf %s "checking for TIFFReadRGBATile in -ltiff... " >&6; } -if test ${ac_cv_lib_tiff_TIFFReadRGBATile+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltiff $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char TIFFReadRGBATile (); -int -main (void) -{ -return TIFFReadRGBATile (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_tiff_TIFFReadRGBATile=yes -else $as_nop - ac_cv_lib_tiff_TIFFReadRGBATile=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFReadRGBATile" >&5 -printf "%s\n" "$ac_cv_lib_tiff_TIFFReadRGBATile" >&6; } -if test "x$ac_cv_lib_tiff_TIFFReadRGBATile" = xyes -then : - passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` -fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIFFReadRGBAStrip in -ltiff" >&5 -printf %s "checking for TIFFReadRGBAStrip in -ltiff... " >&6; } -if test ${ac_cv_lib_tiff_TIFFReadRGBAStrip+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltiff $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char TIFFReadRGBAStrip (); -int -main (void) -{ -return TIFFReadRGBAStrip (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_tiff_TIFFReadRGBAStrip=yes -else $as_nop - ac_cv_lib_tiff_TIFFReadRGBAStrip=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFReadRGBAStrip" >&5 -printf "%s\n" "$ac_cv_lib_tiff_TIFFReadRGBAStrip" >&6; } -if test "x$ac_cv_lib_tiff_TIFFReadRGBAStrip" = xyes -then : - passed=`expr $passed + 1` -else $as_nop - failed=`expr $failed + 1` +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if TIFF package is complete" >&5 -printf %s "checking if TIFF package is complete... " >&6; } - if test $passed -gt 0; then - if test $failed -gt 0; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no -- some components failed test" >&5 -printf "%s\n" "no -- some components failed test" >&6; } - have_tiff='no (failed tests)' + if test $_pkg_short_errors_supported = yes; then + TIFF_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtiff-4 >= 4.0.0" 2>&1` else - TIFF_LIBS='-ltiff' - LIBS="$TIFF_LIBS $LIBS" - -printf "%s\n" "#define TIFF_DELEGATE 1" >>confdefs.h + TIFF_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtiff-4 >= 4.0.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$TIFF_PKG_ERRORS" >&5 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + have_tiff=no +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + have_tiff=no +else + TIFF_CFLAGS=$pkg_cv_TIFF_CFLAGS + TIFF_LIBS=$pkg_cv_TIFF_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - have_tiff='yes' - ac_fn_c_check_header_compile "$LINENO" "tiffconf.h" "ac_cv_header_tiffconf_h" "$ac_includes_default" -if test "x$ac_cv_header_tiffconf_h" = xyes -then : - printf "%s\n" "#define HAVE_TIFFCONF_H 1" >>confdefs.h - -fi - - ac_fn_c_check_func "$LINENO" "TIFFIsCODECConfigured" "ac_cv_func_TIFFIsCODECConfigured" -if test "x$ac_cv_func_TIFFIsCODECConfigured" = xyes -then : - printf "%s\n" "#define HAVE_TIFFISCODECCONFIGURED 1" >>confdefs.h - + have_tiff=yes fi -ac_fn_c_check_func "$LINENO" "TIFFMergeFieldInfo" "ac_cv_func_TIFFMergeFieldInfo" -if test "x$ac_cv_func_TIFFMergeFieldInfo" = xyes -then : - printf "%s\n" "#define HAVE_TIFFMERGEFIELDINFO 1" >>confdefs.h - -fi -ac_fn_c_check_func "$LINENO" "TIFFIsBigEndian" "ac_cv_func_TIFFIsBigEndian" -if test "x$ac_cv_func_TIFFIsBigEndian" = xyes -then : - printf "%s\n" "#define HAVE_TIFFISBIGENDIAN 1" >>confdefs.h - -fi -ac_fn_c_check_func "$LINENO" "TIFFSetErrorHandlerExt" "ac_cv_func_TIFFSetErrorHandlerExt" -if test "x$ac_cv_func_TIFFSetErrorHandlerExt" = xyes -then : - printf "%s\n" "#define HAVE_TIFFSETERRORHANDLEREXT 1" >>confdefs.h - -fi -ac_fn_c_check_func "$LINENO" "TIFFSetTagExtender" "ac_cv_func_TIFFSetTagExtender" -if test "x$ac_cv_func_TIFFSetTagExtender" = xyes -then : - printf "%s\n" "#define HAVE_TIFFSETTAGEXTENDER 1" >>confdefs.h - -fi -ac_fn_c_check_func "$LINENO" "TIFFReadEXIFDirectory" "ac_cv_func_TIFFReadEXIFDirectory" -if test "x$ac_cv_func_TIFFReadEXIFDirectory" = xyes -then : - printf "%s\n" "#define HAVE_TIFFREADEXIFDIRECTORY 1" >>confdefs.h - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } fi -ac_fn_c_check_func "$LINENO" "TIFFReadGPSDirectory" "ac_cv_func_TIFFReadGPSDirectory" -if test "x$ac_cv_func_TIFFReadGPSDirectory" = xyes -then : - printf "%s\n" "#define HAVE_TIFFREADGPSDIRECTORY 1" >>confdefs.h -fi -ac_fn_c_check_func "$LINENO" "TIFFSetWarningHandlerExt" "ac_cv_func_TIFFSetWarningHandlerExt" -if test "x$ac_cv_func_TIFFSetWarningHandlerExt" = xyes -then : - printf "%s\n" "#define HAVE_TIFFSETWARNINGHANDLEREXT 1" >>confdefs.h +if test "$have_tiff" = 'yes'; then -fi -ac_fn_c_check_func "$LINENO" "TIFFSwabArrayOfTriples" "ac_cv_func_TIFFSwabArrayOfTriples" -if test "x$ac_cv_func_TIFFSwabArrayOfTriples" = xyes -then : - printf "%s\n" "#define HAVE_TIFFSWABARRAYOFTRIPLES 1" >>confdefs.h +printf "%s\n" "#define TIFF_DELEGATE 1" >>confdefs.h + CFLAGS="$TIFF_CFLAGS $CFLAGS" fi - fi - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - fi -fi if test "$have_tiff" = 'yes'; then TIFF_DELEGATE_TRUE= TIFF_DELEGATE_FALSE='#' @@ -33228,6 +33938,7 @@ fi + # # Set URW Base35 font directory. # @@ -33236,8 +33947,9 @@ fi if test ${with_urw_base35_font_dir+y} then : withval=$with_urw_base35_font_dir; with_urw_base35_font_dir=$withval -else $as_nop - with_urw_base35_font_dir='default' +else case e in #( + e) with_urw_base35_font_dir='default' ;; +esac fi @@ -33246,6 +33958,25 @@ if test "$with_urw_base35_font_dir" != 'default'; then fi +# +# Set URW Base35 Type1 font directory. +# + +# Check whether --with-urw-base35-type1-font-dir was given. +if test ${with_urw_base35_type1_font_dir+y} +then : + withval=$with_urw_base35_type1_font_dir; with_urw_base35_type1_font_dir=$withval +else case e in #( + e) with_urw_base35_type1_font_dir='default' ;; +esac +fi + + +if test "$with_urw_base35_type1_font_dir" != 'default'; then + DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-urw-base35-type1-font-dir=$with_urw_base35_type1_font_dir " +fi + + # # Check for the WEBP delegate library. # @@ -33254,8 +33985,9 @@ fi if test ${with_webp+y} then : withval=$with_webp; with_webp=$withval -else $as_nop - with_webp='yes' +else case e in #( + e) with_webp='yes' ;; +esac fi @@ -33464,8 +34196,9 @@ fi if test ${with_windows_font_dir+y} then : withval=$with_windows_font_dir; with_windows_font_dir=$withval -else $as_nop - with_windows_font_dir='default' +else case e in #( + e) with_windows_font_dir='default' ;; +esac fi @@ -33482,8 +34215,9 @@ fi if test ${with_wmf+y} then : withval=$with_wmf; with_wmf=$withval -else $as_nop - with_wmf=$build_modules +else case e in #( + e) with_wmf=$build_modules ;; +esac fi @@ -33517,16 +34251,22 @@ printf %s "checking for wmf_lite_create in -lwmflite... " >&6; } if test ${ac_cv_lib_wmflite_wmf_lite_create+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lwmflite $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char wmf_lite_create (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char wmf_lite_create (void); int main (void) { @@ -33538,12 +34278,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_wmflite_wmf_lite_create=yes -else $as_nop - ac_cv_lib_wmflite_wmf_lite_create=no +else case e in #( + e) ac_cv_lib_wmflite_wmf_lite_create=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_wmflite_wmf_lite_create" >&5 printf "%s\n" "$ac_cv_lib_wmflite_wmf_lite_create" >&6; } @@ -33598,8 +34340,9 @@ fi if test ${with_xml+y} then : withval=$with_xml; with_xml=$withval -else $as_nop - with_xml='yes' +else case e in #( + e) with_xml='yes' ;; +esac fi @@ -34457,15 +35200,15 @@ printf "%s\n" "#define EXECUTABLE_PATH \"$DEFINE_EXECUTABLE_PATH\"" >>confdefs.h # Path to ImageMagick lib -LIBRARY_PATH="${LIB_DIR}/${LIBRARY_RELATIVE_PATH}" -DEFINE_LIBRARY_PATH="${LIB_DIR}/${LIBRARY_RELATIVE_PATH}/" +LIBRARY_ABSOLUTE_PATH="${LIB_DIR}/${LIBRARY_RELATIVE_PATH}" +DEFINE_LIBRARY_ABSOLUTE_PATH="${LIB_DIR}/${LIBRARY_RELATIVE_PATH}/" case "${build_os}" in mingw* ) - DEFINE_LIBRARY_PATH=`$WinPathScript "$DEFINE_LIBRARY_PATH" 1` + DEFINE_LIBRARY_ABSOLUTE_PATH=`$WinPathScript "$DEFINE_LIBRARY_ABSOLUTE_PATH" 1` ;; esac -printf "%s\n" "#define LIBRARY_PATH \"$DEFINE_LIBRARY_PATH\"" >>confdefs.h +printf "%s\n" "#define LIBRARY_ABSOLUTE_PATH \"$DEFINE_LIBRARY_ABSOLUTE_PATH\"" >>confdefs.h @@ -34486,7 +35229,7 @@ fi LIB_BIN_DIR_RELATIVE_PATH=$LIB_BIN_DIR -LIB_BIN_DIR_PATH="${LIBRARY_PATH}/${LIB_BIN_DIR_RELATIVE_PATH}" +LIB_BIN_DIR_PATH="${LIBRARY_ABSOLUTE_PATH}/${LIB_BIN_DIR_RELATIVE_PATH}" # @@ -34510,7 +35253,7 @@ fi MODULES_RELATIVE_PATH="${MODULES_DIRNAME}" -MODULES_PATH="${LIBRARY_PATH}/${MODULES_RELATIVE_PATH}" +MODULES_PATH="${LIBRARY_ABSOLUTE_PATH}/${MODULES_RELATIVE_PATH}" # @@ -34564,8 +35307,9 @@ printf "%s\n" "#define DOCUMENTATION_PATH \"$DEFINE_DOCUMENTATION_PATH\"" >>conf if test ${enable_docs+y} then : enableval=$enable_docs; wantdocs=$enableval -else $as_nop - wantdocs=yes +else case e in #( + e) wantdocs=yes ;; +esac fi if test "$wantdocs" = "yes"; then @@ -34632,7 +35376,7 @@ fi SHAREARCH_RELATIVE_PATH="${SHAREARCH_DIRNAME}" -SHAREARCH_PATH="${LIBRARY_PATH}/${SHAREARCH_RELATIVE_PATH}" +SHAREARCH_PATH="${LIBRARY_ABSOLUTE_PATH}/${SHAREARCH_RELATIVE_PATH}" # @@ -34651,7 +35395,8 @@ BPGDecodeDelegateDefault='bpgdec' BPGEncodeDelegateDefault='bpgenc' BlenderDecodeDelegateDefault='blender' BrowseDelegateDefault='xdg-open' -DNGDecodeDelegateDefault='ufraw-batch' +ClipboardDelegateDefault='xclip' +DNGDecodeDelegateDefault='darktable-cli' DOCDecodeDelegateDefault='libreoffice' GVCDecodeDelegateDefault='dot' DVIDecodeDelegateDefault='dvips' @@ -34669,6 +35414,7 @@ LEPDelegateDefault='lepton' LPDelegateDefault='lp' LPRDelegateDefault='lpr' LaunchDelegateDefault='gimp' +MKDIRDelegateDefault='mkdir' MrSIDDecodeDelegateDefault='mrsidgeodecode' MVDelegateDefault='mv' PCLDelegateDefault='pcl6' @@ -34699,8 +35445,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_BPGDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $BPGDecodeDelegate in +else case e in #( + e) case $BPGDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_BPGDecodeDelegate="$BPGDecodeDelegate" # Let the user override the test with a path. ;; @@ -34726,6 +35472,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_BPGDecodeDelegate" && ac_cv_path_BPGDecodeDelegate=""$BPGDecodeDelegateDefault"" ;; +esac ;; esac fi BPGDecodeDelegate=$ac_cv_path_BPGDecodeDelegate @@ -34745,8 +35492,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_BPGEncodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $BPGEncodeDelegate in +else case e in #( + e) case $BPGEncodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_BPGEncodeDelegate="$BPGEncodeDelegate" # Let the user override the test with a path. ;; @@ -34772,6 +35519,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_BPGEncodeDelegate" && ac_cv_path_BPGEncodeDelegate=""$BPGEncodeDelegateDefault"" ;; +esac ;; esac fi BPGEncodeDelegate=$ac_cv_path_BPGEncodeDelegate @@ -34791,8 +35539,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_BlenderDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $BlenderDecodeDelegate in +else case e in #( + e) case $BlenderDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_BlenderDecodeDelegate="$BlenderDecodeDelegate" # Let the user override the test with a path. ;; @@ -34818,6 +35566,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_BlenderDecodeDelegate" && ac_cv_path_BlenderDecodeDelegate=""$BlenderDecodeDelegateDefault"" ;; +esac ;; esac fi BlenderDecodeDelegate=$ac_cv_path_BlenderDecodeDelegate @@ -34830,7 +35579,7 @@ printf "%s\n" "no" >&6; } fi -for ac_prog in "$BrowseDelegateDefault" google-chrome firefox konqueror mozilla lynx +for ac_prog in "$BrowseDelegateDefault" brave-browser microsoft-edge google-chrome firefox konqueror lynx do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -34839,8 +35588,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_BrowseDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $BrowseDelegate in +else case e in #( + e) case $BrowseDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_BrowseDelegate="$BrowseDelegate" # Let the user override the test with a path. ;; @@ -34865,6 +35614,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi BrowseDelegate=$ac_cv_path_BrowseDelegate @@ -34881,6 +35631,58 @@ fi done test -n "$BrowseDelegate" || BrowseDelegate=""$BrowseDelegateDefault"" +for ac_prog in "$ClipboardDelegateDefault" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_ClipboardDelegate+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $ClipboardDelegate in + [\\/]* | ?:[\\/]*) + ac_cv_path_ClipboardDelegate="$ClipboardDelegate" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_ClipboardDelegate="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac ;; +esac +fi +ClipboardDelegate=$ac_cv_path_ClipboardDelegate +if test -n "$ClipboardDelegate"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ClipboardDelegate" >&5 +printf "%s\n" "$ClipboardDelegate" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ClipboardDelegate" && break +done +test -n "$ClipboardDelegate" || ClipboardDelegate=""$ClipboardDelegateDefault"" + # Extract the first word of ""$DNGDecodeDelegateDefault"", so it can be a program name with args. set dummy "$DNGDecodeDelegateDefault"; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -34888,8 +35690,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_DNGDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $DNGDecodeDelegate in +else case e in #( + e) case $DNGDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_DNGDecodeDelegate="$DNGDecodeDelegate" # Let the user override the test with a path. ;; @@ -34915,6 +35717,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_DNGDecodeDelegate" && ac_cv_path_DNGDecodeDelegate=""$DNGDecodeDelegateDefault"" ;; +esac ;; esac fi DNGDecodeDelegate=$ac_cv_path_DNGDecodeDelegate @@ -34934,8 +35737,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_DOCDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $DOCDecodeDelegate in +else case e in #( + e) case $DOCDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_DOCDecodeDelegate="$DOCDecodeDelegate" # Let the user override the test with a path. ;; @@ -34961,6 +35764,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_DOCDecodeDelegate" && ac_cv_path_DOCDecodeDelegate=""$DOCDecodeDelegateDefault"" ;; +esac ;; esac fi DOCDecodeDelegate=$ac_cv_path_DOCDecodeDelegate @@ -34980,8 +35784,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_DVIDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $DVIDecodeDelegate in +else case e in #( + e) case $DVIDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_DVIDecodeDelegate="$DVIDecodeDelegate" # Let the user override the test with a path. ;; @@ -35007,6 +35811,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_DVIDecodeDelegate" && ac_cv_path_DVIDecodeDelegate=""$DVIDecodeDelegateDefault"" ;; +esac ;; esac fi DVIDecodeDelegate=$ac_cv_path_DVIDecodeDelegate @@ -35026,8 +35831,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_ConvertDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $ConvertDelegate in +else case e in #( + e) case $ConvertDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_ConvertDelegate="$ConvertDelegate" # Let the user override the test with a path. ;; @@ -35053,6 +35858,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_ConvertDelegate" && ac_cv_path_ConvertDelegate=""$ConvertDelegateDefault"" ;; +esac ;; esac fi ConvertDelegate=$ac_cv_path_ConvertDelegate @@ -35072,8 +35878,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_DisplayDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $DisplayDelegate in +else case e in #( + e) case $DisplayDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_DisplayDelegate="$DisplayDelegate" # Let the user override the test with a path. ;; @@ -35099,6 +35905,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_DisplayDelegate" && ac_cv_path_DisplayDelegate=""$DisplayDelegateDefault"" ;; +esac ;; esac fi DisplayDelegate=$ac_cv_path_DisplayDelegate @@ -35118,8 +35925,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_EditorDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $EditorDelegate in +else case e in #( + e) case $EditorDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_EditorDelegate="$EditorDelegate" # Let the user override the test with a path. ;; @@ -35145,6 +35952,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_EditorDelegate" && ac_cv_path_EditorDelegate=""$EditorDelegateDefault"" ;; +esac ;; esac fi EditorDelegate=$ac_cv_path_EditorDelegate @@ -35164,8 +35972,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_GVCDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $GVCDecodeDelegate in +else case e in #( + e) case $GVCDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_GVCDecodeDelegate="$GVCDecodeDelegate" # Let the user override the test with a path. ;; @@ -35191,6 +35999,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_GVCDecodeDelegate" && ac_cv_path_GVCDecodeDelegate=""$GVCDecodeDelegateDefault"" ;; +esac ;; esac fi GVCDecodeDelegate=$ac_cv_path_GVCDecodeDelegate @@ -35210,8 +36019,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_HPGLDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $HPGLDecodeDelegate in +else case e in #( + e) case $HPGLDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_HPGLDecodeDelegate="$HPGLDecodeDelegate" # Let the user override the test with a path. ;; @@ -35237,6 +36046,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_HPGLDecodeDelegate" && ac_cv_path_HPGLDecodeDelegate=""$HPGLDecodeDelegateDefault"" ;; +esac ;; esac fi HPGLDecodeDelegate=$ac_cv_path_HPGLDecodeDelegate @@ -35256,8 +36066,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_HTMLDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $HTMLDecodeDelegate in +else case e in #( + e) case $HTMLDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_HTMLDecodeDelegate="$HTMLDecodeDelegate" # Let the user override the test with a path. ;; @@ -35283,6 +36093,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_HTMLDecodeDelegate" && ac_cv_path_HTMLDecodeDelegate=""$HTMLDecodeDelegateDefault"" ;; +esac ;; esac fi HTMLDecodeDelegate=$ac_cv_path_HTMLDecodeDelegate @@ -35302,8 +36113,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_ILBMDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $ILBMDecodeDelegate in +else case e in #( + e) case $ILBMDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_ILBMDecodeDelegate="$ILBMDecodeDelegate" # Let the user override the test with a path. ;; @@ -35329,6 +36140,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_ILBMDecodeDelegate" && ac_cv_path_ILBMDecodeDelegate=""$ILBMDecodeDelegateDefault"" ;; +esac ;; esac fi ILBMDecodeDelegate=$ac_cv_path_ILBMDecodeDelegate @@ -35348,8 +36160,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_ILBMEncodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $ILBMEncodeDelegate in +else case e in #( + e) case $ILBMEncodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_ILBMEncodeDelegate="$ILBMEncodeDelegate" # Let the user override the test with a path. ;; @@ -35375,6 +36187,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_ILBMEncodeDelegate" && ac_cv_path_ILBMEncodeDelegate=""$ILBMEncodeDelegateDefault"" ;; +esac ;; esac fi ILBMEncodeDelegate=$ac_cv_path_ILBMEncodeDelegate @@ -35394,8 +36207,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_JXRDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $JXRDecodeDelegate in +else case e in #( + e) case $JXRDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_JXRDecodeDelegate="$JXRDecodeDelegate" # Let the user override the test with a path. ;; @@ -35421,6 +36234,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_JXRDecodeDelegate" && ac_cv_path_JXRDecodeDelegate=""$JXRDecodeDelegateDefault"" ;; +esac ;; esac fi JXRDecodeDelegate=$ac_cv_path_JXRDecodeDelegate @@ -35440,8 +36254,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_JXREncodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $JXREncodeDelegate in +else case e in #( + e) case $JXREncodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_JXREncodeDelegate="$JXREncodeDelegate" # Let the user override the test with a path. ;; @@ -35467,6 +36281,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_JXREncodeDelegate" && ac_cv_path_JXREncodeDelegate=""$JXREncodeDelegateDefault"" ;; +esac ;; esac fi JXREncodeDelegate=$ac_cv_path_JXREncodeDelegate @@ -35486,8 +36301,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_LEPDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $LEPDelegate in +else case e in #( + e) case $LEPDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_LEPDelegate="$LEPDelegate" # Let the user override the test with a path. ;; @@ -35513,6 +36328,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_LEPDelegate" && ac_cv_path_LEPDelegate=""$LEPDelegateDefault"" ;; +esac ;; esac fi LEPDelegate=$ac_cv_path_LEPDelegate @@ -35532,8 +36348,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_LPDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $LPDelegate in +else case e in #( + e) case $LPDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_LPDelegate="$LPDelegate" # Let the user override the test with a path. ;; @@ -35559,6 +36375,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_LPDelegate" && ac_cv_path_LPDelegate="no" ;; +esac ;; esac fi LPDelegate=$ac_cv_path_LPDelegate @@ -35578,8 +36395,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_LPRDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $LPRDelegate in +else case e in #( + e) case $LPRDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_LPRDelegate="$LPRDelegate" # Let the user override the test with a path. ;; @@ -35605,6 +36422,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_LPRDelegate" && ac_cv_path_LPRDelegate=""$LPRDelegateDefault"" ;; +esac ;; esac fi LPRDelegate=$ac_cv_path_LPRDelegate @@ -35624,8 +36442,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_LaunchDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $LaunchDelegate in +else case e in #( + e) case $LaunchDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_LaunchDelegate="$LaunchDelegate" # Let the user override the test with a path. ;; @@ -35651,6 +36469,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_LaunchDelegate" && ac_cv_path_LaunchDelegate=""$LaunchDelegateDefault"" ;; +esac ;; esac fi LaunchDelegate=$ac_cv_path_LaunchDelegate @@ -35663,17 +36482,17 @@ printf "%s\n" "no" >&6; } fi -# Extract the first word of ""$MogrifyDelegateDefault"", so it can be a program name with args. -set dummy "$MogrifyDelegateDefault"; ac_word=$2 +# Extract the first word of ""$MKDIRDelegateDefault"", so it can be a program name with args. +set dummy "$MKDIRDelegateDefault"; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_MogrifyDelegate+y} +if test ${ac_cv_path_MKDIRDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MogrifyDelegate in +else case e in #( + e) case $MKDIRDelegate in [\\/]* | ?:[\\/]*) - ac_cv_path_MogrifyDelegate="$MogrifyDelegate" # Let the user override the test with a path. + ac_cv_path_MKDIRDelegate="$MKDIRDelegate" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -35687,7 +36506,7 @@ do esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_MogrifyDelegate="$as_dir$ac_word$ac_exec_ext" + ac_cv_path_MKDIRDelegate="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi @@ -35695,77 +36514,32 @@ done done IFS=$as_save_IFS - test -z "$ac_cv_path_MogrifyDelegate" && ac_cv_path_MogrifyDelegate=""$MogrifyDelegateDefault"" + test -z "$ac_cv_path_MKDIRDelegate" && ac_cv_path_MKDIRDelegate=""$MKDIRDelegateDefault"" ;; +esac ;; esac fi -MogrifyDelegate=$ac_cv_path_MogrifyDelegate -if test -n "$MogrifyDelegate"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MogrifyDelegate" >&5 -printf "%s\n" "$MogrifyDelegate" >&6; } +MKDIRDelegate=$ac_cv_path_MKDIRDelegate +if test -n "$MKDIRDelegate"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIRDelegate" >&5 +printf "%s\n" "$MKDIRDelegate" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi -# Extract the first word of ""$VIDEODecodeDelegateDefault"", so it can be a program name with args. -set dummy "$VIDEODecodeDelegateDefault"; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_VIDEODecodeDelegate+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $VIDEODecodeDelegate in - [\\/]* | ?:[\\/]*) - ac_cv_path_VIDEODecodeDelegate="$VIDEODecodeDelegate" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_VIDEODecodeDelegate="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_VIDEODecodeDelegate" && ac_cv_path_VIDEODecodeDelegate=""$VIDEODecodeDelegateDefault"" - ;; -esac -fi -VIDEODecodeDelegate=$ac_cv_path_VIDEODecodeDelegate -if test -n "$VIDEODecodeDelegate"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $VIDEODecodeDelegate" >&5 -printf "%s\n" "$VIDEODecodeDelegate" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -# Extract the first word of ""$VIDEOEncodeDelegateDefault"", so it can be a program name with args. -set dummy "$VIDEOEncodeDelegateDefault"; ac_word=$2 +# Extract the first word of ""$MogrifyDelegateDefault"", so it can be a program name with args. +set dummy "$MogrifyDelegateDefault"; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_VIDEOEncodeDelegate+y} +if test ${ac_cv_path_MogrifyDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $VIDEOEncodeDelegate in +else case e in #( + e) case $MogrifyDelegate in [\\/]* | ?:[\\/]*) - ac_cv_path_VIDEOEncodeDelegate="$VIDEOEncodeDelegate" # Let the user override the test with a path. + ac_cv_path_MogrifyDelegate="$MogrifyDelegate" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -35779,7 +36553,7 @@ do esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_VIDEOEncodeDelegate="$as_dir$ac_word$ac_exec_ext" + ac_cv_path_MogrifyDelegate="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi @@ -35787,14 +36561,15 @@ done done IFS=$as_save_IFS - test -z "$ac_cv_path_VIDEOEncodeDelegate" && ac_cv_path_VIDEOEncodeDelegate=""$VIDEOEncodeDelegateDefault"" + test -z "$ac_cv_path_MogrifyDelegate" && ac_cv_path_MogrifyDelegate=""$MogrifyDelegateDefault"" ;; +esac ;; esac fi -VIDEOEncodeDelegate=$ac_cv_path_VIDEOEncodeDelegate -if test -n "$VIDEOEncodeDelegate"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $VIDEOEncodeDelegate" >&5 -printf "%s\n" "$VIDEOEncodeDelegate" >&6; } +MogrifyDelegate=$ac_cv_path_MogrifyDelegate +if test -n "$MogrifyDelegate"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MogrifyDelegate" >&5 +printf "%s\n" "$MogrifyDelegate" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } @@ -35808,8 +36583,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_MrSIDDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MrSIDDecodeDelegate in +else case e in #( + e) case $MrSIDDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_MrSIDDecodeDelegate="$MrSIDDecodeDelegate" # Let the user override the test with a path. ;; @@ -35835,6 +36610,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_MrSIDDecodeDelegate" && ac_cv_path_MrSIDDecodeDelegate=""$MrSIDDecodeDelegateDefault"" ;; +esac ;; esac fi MrSIDDecodeDelegate=$ac_cv_path_MrSIDDecodeDelegate @@ -35854,8 +36630,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_MVDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MVDelegate in +else case e in #( + e) case $MVDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_MVDelegate="$MVDelegate" # Let the user override the test with a path. ;; @@ -35881,6 +36657,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_MVDelegate" && ac_cv_path_MVDelegate=""$MVDelegateDefault"" ;; +esac ;; esac fi MVDelegate=$ac_cv_path_MVDelegate @@ -35900,8 +36677,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PCLDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $PCLDelegate in +else case e in #( + e) case $PCLDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_PCLDelegate="$PCLDelegate" # Let the user override the test with a path. ;; @@ -35927,6 +36704,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_PCLDelegate" && ac_cv_path_PCLDelegate=""$PCLDelegateDefault"" ;; +esac ;; esac fi PCLDelegate=$ac_cv_path_PCLDelegate @@ -35948,8 +36726,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PSDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $PSDelegate in +else case e in #( + e) case $PSDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_PSDelegate="$PSDelegate" # Let the user override the test with a path. ;; @@ -35974,6 +36752,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi PSDelegate=$ac_cv_path_PSDelegate @@ -35997,8 +36776,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_RMDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $RMDelegate in +else case e in #( + e) case $RMDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_RMDelegate="$RMDelegate" # Let the user override the test with a path. ;; @@ -36024,6 +36803,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_RMDelegate" && ac_cv_path_RMDelegate=""$RMDelegateDefault"" ;; +esac ;; esac fi RMDelegate=$ac_cv_path_RMDelegate @@ -36043,8 +36823,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_RSVGDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $RSVGDecodeDelegate in +else case e in #( + e) case $RSVGDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_RSVGDecodeDelegate="$RSVGDecodeDelegate" # Let the user override the test with a path. ;; @@ -36070,6 +36850,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_RSVGDecodeDelegate" && ac_cv_path_RSVGDecodeDelegate=""$RSVGDecodeDelegateDefault"" ;; +esac ;; esac fi RSVGDecodeDelegate=$ac_cv_path_RSVGDecodeDelegate @@ -36089,8 +36870,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_SVGDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $SVGDecodeDelegate in +else case e in #( + e) case $SVGDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_SVGDecodeDelegate="$SVGDecodeDelegate" # Let the user override the test with a path. ;; @@ -36116,6 +36897,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_SVGDecodeDelegate" && ac_cv_path_SVGDecodeDelegate=""$SVGDecodeDelegateDefault"" ;; +esac ;; esac fi SVGDecodeDelegate=$ac_cv_path_SVGDecodeDelegate @@ -36135,8 +36917,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_TextEncodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $TextEncodeDelegate in +else case e in #( + e) case $TextEncodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_TextEncodeDelegate="$TextEncodeDelegate" # Let the user override the test with a path. ;; @@ -36162,6 +36944,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_TextEncodeDelegate" && ac_cv_path_TextEncodeDelegate=""$TextEncodeDelegateDefault"" ;; +esac ;; esac fi TextEncodeDelegate=$ac_cv_path_TextEncodeDelegate @@ -36181,8 +36964,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_TraceEncodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $TraceEncodeDelegate in +else case e in #( + e) case $TraceEncodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_TraceEncodeDelegate="$TraceEncodeDelegate" # Let the user override the test with a path. ;; @@ -36208,6 +36991,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_TraceEncodeDelegate" && ac_cv_path_TraceEncodeDelegate=""$TraceEncodeDelegateDefault"" ;; +esac ;; esac fi TraceEncodeDelegate=$ac_cv_path_TraceEncodeDelegate @@ -36220,6 +37004,100 @@ printf "%s\n" "no" >&6; } fi +# Extract the first word of ""$VIDEODecodeDelegateDefault"", so it can be a program name with args. +set dummy "$VIDEODecodeDelegateDefault"; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_VIDEODecodeDelegate+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $VIDEODecodeDelegate in + [\\/]* | ?:[\\/]*) + ac_cv_path_VIDEODecodeDelegate="$VIDEODecodeDelegate" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_VIDEODecodeDelegate="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_VIDEODecodeDelegate" && ac_cv_path_VIDEODecodeDelegate=""$VIDEODecodeDelegateDefault"" + ;; +esac ;; +esac +fi +VIDEODecodeDelegate=$ac_cv_path_VIDEODecodeDelegate +if test -n "$VIDEODecodeDelegate"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $VIDEODecodeDelegate" >&5 +printf "%s\n" "$VIDEODecodeDelegate" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +# Extract the first word of ""$VIDEOEncodeDelegateDefault"", so it can be a program name with args. +set dummy "$VIDEOEncodeDelegateDefault"; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_VIDEOEncodeDelegate+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $VIDEOEncodeDelegate in + [\\/]* | ?:[\\/]*) + ac_cv_path_VIDEOEncodeDelegate="$VIDEOEncodeDelegate" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_VIDEOEncodeDelegate="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_VIDEOEncodeDelegate" && ac_cv_path_VIDEOEncodeDelegate=""$VIDEOEncodeDelegateDefault"" + ;; +esac ;; +esac +fi +VIDEOEncodeDelegate=$ac_cv_path_VIDEOEncodeDelegate +if test -n "$VIDEOEncodeDelegate"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $VIDEOEncodeDelegate" >&5 +printf "%s\n" "$VIDEOEncodeDelegate" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + # Extract the first word of ""$WebPDecodeDelegateDefault"", so it can be a program name with args. set dummy "$WebPDecodeDelegateDefault"; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -36227,8 +37105,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_WebPDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $WebPDecodeDelegate in +else case e in #( + e) case $WebPDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_WebPDecodeDelegate="$WebPDecodeDelegate" # Let the user override the test with a path. ;; @@ -36254,6 +37132,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_WebPDecodeDelegate" && ac_cv_path_WebPDecodeDelegate=""$WebPDecodeDelegateDefault"" ;; +esac ;; esac fi WebPDecodeDelegate=$ac_cv_path_WebPDecodeDelegate @@ -36273,8 +37152,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_WebPEncodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $WebPEncodeDelegate in +else case e in #( + e) case $WebPEncodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_WebPEncodeDelegate="$WebPEncodeDelegate" # Let the user override the test with a path. ;; @@ -36300,6 +37179,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_WebPEncodeDelegate" && ac_cv_path_WebPEncodeDelegate=""$WebPEncodeDelegateDefault"" ;; +esac ;; esac fi WebPEncodeDelegate=$ac_cv_path_WebPEncodeDelegate @@ -36319,8 +37199,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_WWWDecodeDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $WWWDecodeDelegate in +else case e in #( + e) case $WWWDecodeDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_WWWDecodeDelegate="$WWWDecodeDelegate" # Let the user override the test with a path. ;; @@ -36346,6 +37226,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_WWWDecodeDelegate" && ac_cv_path_WWWDecodeDelegate=""$WWWDecodeDelegateDelegateDefault"" ;; +esac ;; esac fi WWWDecodeDelegate=$ac_cv_path_WWWDecodeDelegate @@ -36365,8 +37246,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_XPSDelegate+y} then : printf %s "(cached) " >&6 -else $as_nop - case $XPSDelegate in +else case e in #( + e) case $XPSDelegate in [\\/]* | ?:[\\/]*) ac_cv_path_XPSDelegate="$XPSDelegate" # Let the user override the test with a path. ;; @@ -36392,6 +37273,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_XPSDelegate" && ac_cv_path_XPSDelegate=""$XPSDelegateDefault"" ;; +esac ;; esac fi XPSDelegate=$ac_cv_path_XPSDelegate @@ -36464,8 +37346,8 @@ dejavu_font_dir='' if test "${with_dejavu_font_dir}" != 'default'; then dejavu_font_dir="${with_dejavu_font_dir}/" else - for font_dir in "${prefix}/share/dejavu/fonts/" '/usr/share/fonts/dejavu/'; do - if test -f "${font_dir}DejaVuSerif.ttf"; then + for font_dir in "${prefix}/share/fonts/dejavu" "${prefix}/share/dejavu-serif-fonts/fonts/" '/usr/share/fonts/dejavu-serif-fonts/' '/usr/share/fonts/truetype/dejavu/'; do + if test -f "${font_dir}URWGothic-Book.otf"; then dejavu_font_dir="${font_dir}" break 1 fi @@ -36529,15 +37411,15 @@ case "${build_os}" in ;; esac -# URW-base35 fonts. +# URW-base35 OTF fonts. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for URW-base35 fonts directory" >&5 printf %s "checking for URW-base35 fonts directory... " >&6; } urw_base35_font_dir='' if test "${with_urw_base35_font_dir}" != 'default'; then urw_base35_font_dir="${with_urw_base35_font_dir}/" else - for font_dir in "${prefix}/share/urw-base35/fonts/" '/usr/share/fonts/urw-base35/' '/usr/share/fonts/type1/urw-base35/'; do - if test -f "${font_dir}StandardSymbolsPS.t1"; then + for font_dir in "${prefix}/share/urw-base35/fonts/" "${prefix}/share/fonts/opentype/urw-base35" '/usr/share/fonts/urw-base35/' '/usr/share/fonts/opentype/urw-base35/'; do + if test -f "${font_dir}URWGothic-Book.otf"; then urw_base35_font_dir="${font_dir}" break 1 fi @@ -36553,12 +37435,43 @@ printf "%s\n" "not found!" >&6; }; fi +# URW-base35 Type1 fonts. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for URW-base35 Type1 fonts directory" >&5 +printf %s "checking for URW-base35 Type1 fonts directory... " >&6; } +urw_base35_type1_font_dir='' +if test "${with_urw_base35_type1_font_dir}" != 'default'; then + urw_base35_type1_font_dir="${with_urw_base35_type1_font_dir}/" +else + for font_dir in "${prefix}/share/urw-base35/fonts/" "${prefix}/share/fonts/type1/urw-base35" '/usr/share/fonts/urw-base35/' '/usr/share/fonts/type1/urw-base35/'; do + if test -f "${font_dir}URWGothic-Book.t1"; then + urw_base35_type1_font_dir="${font_dir}" + break 1 + fi + done +fi +if test "${urw_base35_type1_font_dir}x" != 'x'; then + type_include_files="${type_include_files} "'' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $urw_base35_type1_font_dir" >&5 +printf "%s\n" "$urw_base35_type1_font_dir" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found!" >&5 +printf "%s\n" "not found!" >&6; }; +fi + + # Windows fonts. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Windows fonts directory" >&5 printf %s "checking for Windows fonts directory... " >&6; } windows_font_dir='' if test "${with_windows_font_dir}" != 'default'; then windows_font_dir="${with_windows_font_dir}/" +else + for font_dir in '/usr/share/wine/fonts/' '/usr/share/fonts/msttcore/' '/usr/share/fonts/microsoft/' '/usr/share/fonts/truetype/msttcorefonts/'; do + if test -f "${font_dir}arial.ttf"; then + windows_font_dir="${font_dir}" + break 1 + fi + done fi if test "${windows_font_dir}x" != 'x'; then type_include_files="${type_include_files} "'' @@ -36572,6 +37485,24 @@ fi +# Permit enciphering and deciphering image pixels. +# Check whether --enable-cipher was given. +if test ${enable_cipher+y} +then : + enableval=$enable_cipher; enable_cipher=$enableval +else case e in #( + e) enable_cipher='yes' ;; +esac +fi + + +if test "$enable_cipher" = 'yes'; then + +printf "%s\n" "#define CIPHER_SUPPORT 1" >>confdefs.h + + MAGICK_FEATURES="Cipher $MAGICK_FEATURES" +fi + # # Handle case where user doesn't want frozen paths # @@ -36581,6 +37512,7 @@ if test "$with_frozenpaths" != 'yes'; then BPGEncodeDelegate="$BPGEncodeDelegateDefault" BlenderDecodeDelegate="$BlenderDecodeDelegateDefault" BrowseDelegate="$BrowseDelegateDefault" + ClipboardDelegate="$ClipboardDelegateDefault" ConvertDelegate="$ConvertDelegateDefault" DisplayDelegate="$DisplayDelegateDefault" DNGDecodeDelegate="$DNGDecodeDelegateDefault" @@ -36644,6 +37576,7 @@ fi + # @@ -36659,8 +37592,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_TAR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$TAR"; then +else case e in #( + e) if test -n "$TAR"; then ac_cv_prog_TAR="$TAR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -36682,7 +37615,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi TAR=$ac_cv_prog_TAR if test -n "$TAR"; then @@ -36706,8 +37640,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_PERL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$PERL"; then +else case e in #( + e) if test -n "$PERL"; then ac_cv_prog_PERL="$PERL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -36729,7 +37663,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi PERL=$ac_cv_prog_PERL if test -n "$PERL"; then @@ -36753,8 +37688,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RPM+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$RPM"; then +else case e in #( + e) if test -n "$RPM"; then ac_cv_prog_RPM="$RPM" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -36776,7 +37711,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi RPM=$ac_cv_prog_RPM if test -n "$RPM"; then @@ -36826,8 +37762,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_P7ZIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$P7ZIP"; then +else case e in #( + e) if test -n "$P7ZIP"; then ac_cv_prog_P7ZIP="$P7ZIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -36849,7 +37785,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi P7ZIP=$ac_cv_prog_P7ZIP if test -n "$P7ZIP"; then @@ -36887,8 +37824,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ZIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ZIP"; then +else case e in #( + e) if test -n "$ZIP"; then ac_cv_prog_ZIP="$ZIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -36910,7 +37847,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ZIP=$ac_cv_prog_ZIP if test -n "$ZIP"; then @@ -36938,7 +37876,7 @@ fi # # GhostPCL related configuration. # -PCLColorDevice=ppmraw +PCLColorDevice=png16malpha PCLCMYKDevice=pamcmyk32 PCLMonoDevice=pbmraw if test -z "$PCLVersion"; then @@ -36993,8 +37931,8 @@ fi # # GhostXPS related configuration. # -XPSColorDevice=ppmraw -XPSCMYKDevice=bmpsep8 +XPSColorDevice=png16malpha +XPSCMYKDevice=pamcmyk32 XPSMonoDevice=pbmraw if test -z "$XPSVersion"; then XPSVersion='unknown' @@ -37048,7 +37986,7 @@ fi # # Ghostscript related configuration. # -GSAlphaDevice=pngalpha +GSAlphaDevice=png16malpha GSColorDevice=png16m GSCMYKDevice=pamcmyk32 GSMonoDevice=pbmraw @@ -37089,6 +38027,8 @@ printf "%s\n" "$GSColorDevice" >&6; } printf %s "checking for gs alpha device... " >&6; } if $PSDelegate -q -dBATCH -sDEVICE=$GSAlphaDevice -sOutputFile=/dev/null < /dev/null 1>&5 2>&5; then : + elif $PSDelegate -q -dBATCH -sDEVICE=pngalpha -sOutputFile=/dev/null < /dev/null 1>&5 2>&5; then + GSAlphaDevice=pngalpha else GSAlphaDevice=$GSColorDevice fi @@ -37180,8 +38120,9 @@ printf %s "checking for perl... " >&6; } if test ${ac_cv_path_PERL+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_path_PERL="$with_perl" +else case e in #( + e) ac_cv_path_PERL="$with_perl" ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_PERL" >&5 printf "%s\n" "$ac_cv_path_PERL" >&6; }; @@ -37197,8 +38138,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PERL+y} then : printf %s "(cached) " >&6 -else $as_nop - case $PERL in +else case e in #( + e) case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; @@ -37223,6 +38164,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi PERL=$ac_cv_path_PERL @@ -37326,12 +38268,13 @@ x$ax_compare_version_B" | sed 's/^ *//' | sort | sed "s/x${ax_compare_version_A} fi -else $as_nop - +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: could not find the perl interpreter" >&5 printf "%s\n" "$as_me: WARNING: could not find the perl interpreter" >&2;} PERL_SUPPORTS_DESTDIR='no' - + ;; +esac fi fi @@ -37416,9 +38359,6 @@ fi if test "$have_jpeg" = 'yes' ; then MAGICK_DELEGATES="$MAGICK_DELEGATES jpeg" fi -if test "$have_jxl" = 'yes' ; then - MAGICK_DELEGATES="$MAGICK_DELEGATES jxl" -fi if test "$have_lcms" = 'yes' || test "$have_lcms2" = 'yes' ; then MAGICK_DELEGATES="$MAGICK_DELEGATES lcms" fi @@ -37437,6 +38377,9 @@ fi if test "$have_pango" = 'yes' ; then MAGICK_DELEGATES="$MAGICK_DELEGATES pango" fi +if test "$have_pcl" = 'yes' ; then + MAGICK_DELEGATES="$MAGICK_DELEGATES pcl" +fi if test "$have_png" = 'yes' ; then MAGICK_DELEGATES="$MAGICK_DELEGATES png" fi @@ -37521,16 +38464,22 @@ printf %s "checking for _gcov_init in -lgcov... " >&6; } if test ${ac_cv_lib_gcov__gcov_init+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lgcov $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char _gcov_init (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char _gcov_init (void); int main (void) { @@ -37542,12 +38491,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_gcov__gcov_init=yes -else $as_nop - ac_cv_lib_gcov__gcov_init=no +else case e in #( + e) ac_cv_lib_gcov__gcov_init=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gcov__gcov_init" >&5 printf "%s\n" "$ac_cv_lib_gcov__gcov_init" >&6; } @@ -37564,16 +38515,22 @@ printf %s "checking for __gcov_init in -lgcov... " >&6; } if test ${ac_cv_lib_gcov___gcov_init+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lgcov $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char __gcov_init (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char __gcov_init (void); int main (void) { @@ -37585,12 +38542,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_gcov___gcov_init=yes -else $as_nop - ac_cv_lib_gcov___gcov_init=no +else case e in #( + e) ac_cv_lib_gcov___gcov_init=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gcov___gcov_init" >&5 printf "%s\n" "$ac_cv_lib_gcov___gcov_init" >&6; } @@ -37623,7 +38582,7 @@ fi if test "$build_modules" != 'no'; then MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS $MTMALLOC_LIBS" else - MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS $MTMALLOC_LIBS" + MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS $MTMALLOC_LIBS" fi MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS" @@ -37639,12 +38598,21 @@ LIBS=$USER_LIBS #AC_SUBST([X_LIBS]) #AC_SUBST([X_EXTRA_LIBS]) +CC=`echo $CC | sed -e 's/ */ /g'` +CFLAGS=`echo $CFLAGS | sed -e 's/ */ /g'` +CPPFLAGS=`echo $CPPFLAGS | sed -e 's/ */ /g'` +CXXFLAGS=`echo $CXXFLAGS | sed -e 's/ */ /g'` +LDFLAGS=`echo $LDFLAGS | sed -e 's/ */ /g'` +LIBS=`echo $LIBS | sed -e 's/ */ /g'` + MAGICK_CFLAGS=$CFLAGS -MAGICK_CXXFLAGS="$CXXFLAGS" +MAGICK_CXXFLAGS=$CXXFLAGS MAGICK_CPPFLAGS=`echo $MAGICK_CPPFLAGS | sed -e 's/ */ /g'` MAGICK_PCFLAGS=`echo $MAGICK_PCFLAGS | sed -e 's/ */ /g'` MAGICK_LDFLAGS="-L$LIB_DIR $LDFLAGS" MAGICK_LIBS="$MAGICK_DEP_LIBS $MAGICK_EXTRA_DEP_LIBS" +MAGICK_DEP_LIBS=`echo $MAGICK_DEP_LIBS | sed -e 's/ */ /g'` +MAGICK_EXTRA_DEP_LIBS=`echo $MAGICK_EXTRA_DEP_LIBS | sed -e 's/ */ /g'` @@ -37693,6 +38661,11 @@ if test "${urw_base35_font_dir}x" != 'x'; then result_urw_base35_font_dir=$urw_base35_font_dir fi +result_urw_base35_type1_font_dir='none' +if test "${urw_base35_type1_font_dir}x" != 'x'; then + result_urw_base35_type1_font_dir=$urw_base35_type1_font_dir +fi + result_windows_font_dir='none' if test "${windows_font_dir}x" != 'x'; then result_windows_font_dir=${windows_font_dir} @@ -37701,7 +38674,7 @@ fi # ============================================================================== # Generate build environment # ============================================================================== -ac_config_files="$ac_config_files common.shi config/configure.xml config/delegates.xml config/ImageMagick.rdf config/MagickCore.dox config/MagickWand.dox config/Magick++.dox config/policy.xml:config/policy-"$magick_cv_with_security_policy".xml config/type-apple.xml config/type-dejavu.xml config/type-ghostscript.xml config/type-urw-base35.xml config/type-windows.xml config/type.xml ImageMagick.spec Magick++/bin/Magick++-config magick/ImageMagick.pc Magick++/lib/ImageMagick++.pc Magick++/lib/Magick++.pc magick/Magick-config magick/MagickCore-config magick/MagickCore.pc magick/version.h Makefile magick.sh PerlMagick/check.sh PerlMagick/default/Magick.pm PerlMagick/Makefile.PL PerlMagick/default/Makefile.PL PerlMagick/quantum/Makefile.PL PerlMagick/quantum/quantum.pm PerlMagick/quantum/quantum.xs PerlMagick/quantum/typemap utilities/animate.1 utilities/compare.1 utilities/composite.1 utilities/conjure.1 utilities/convert.1 utilities/display.1 utilities/identify.1 utilities/ImageMagick.1 utilities/import.1 utilities/mogrify.1 utilities/montage.1 utilities/stream.1 wand/MagickWand-config wand/MagickWand.pc wand/Wand-config wand/Wand.pc" +ac_config_files="$ac_config_files common.shi config/configure.xml config/delegates.xml config/ImageMagick.rdf config/MagickCore.dox config/MagickWand.dox config/Magick++.dox config/policy.xml:config/policy-"$magick_cv_with_security_policy".xml config/type-apple.xml config/type-dejavu.xml config/type-ghostscript.xml config/type-urw-base35.xml config/type-urw-base35-type1.xml config/type-windows.xml config/type.xml ImageMagick.spec Magick++/bin/Magick++-config magick/ImageMagick.pc Magick++/lib/ImageMagick++.pc Magick++/lib/Magick++.pc magick/Magick-config magick/MagickCore-config magick/MagickCore.pc magick/version.h Makefile magick.sh PerlMagick/check.sh PerlMagick/default/Magick.pm PerlMagick/Makefile.PL PerlMagick/default/Makefile.PL PerlMagick/quantum/Makefile.PL PerlMagick/quantum/quantum.pm PerlMagick/quantum/quantum.xs PerlMagick/quantum/typemap utilities/animate.1 utilities/compare.1 utilities/composite.1 utilities/conjure.1 utilities/convert.1 utilities/display.1 utilities/identify.1 utilities/ImageMagick.1 utilities/import.1 utilities/mogrify.1 utilities/montage.1 utilities/stream.1 wand/MagickWand-config wand/MagickWand.pc wand/Wand-config wand/Wand.pc" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -37713,8 +38686,8 @@ cat >confcache <<\_ACEOF # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the +# 'ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* 'ac_cv_foo' will be assigned the # following values. _ACEOF @@ -37744,14 +38717,14 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote + # 'set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) - # `set' quotes correctly as required by POSIX, so do not add quotes. + # 'set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | @@ -37860,6 +38833,12 @@ if test -z "${CYGWIN_BUILD_TRUE}" && test -z "${CYGWIN_BUILD_FALSE}"; then as_fn_error $? "conditional \"CYGWIN_BUILD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +# Check whether --enable-year2038 was given. +if test ${enable_year2038+y} +then : + enableval=$enable_year2038; +fi + if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -38106,7 +39085,6 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh @@ -38115,12 +39093,13 @@ then : # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else $as_nop - case `(set -o) 2>/dev/null` in #( +else case e in #( + e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi @@ -38192,7 +39171,7 @@ IFS=$as_save_IFS ;; esac -# We did not find ourselves, most probably we were run as `sh COMMAND' +# We did not find ourselves, most probably we were run as 'sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 @@ -38221,7 +39200,6 @@ as_fn_error () } # as_fn_error - # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -38261,11 +39239,12 @@ then : { eval $1+=\$2 }' -else $as_nop - as_fn_append () +else case e in #( + e) as_fn_append () { eval $1=\$$1\$2 - } + } ;; +esac fi # as_fn_append # as_fn_arith ARG... @@ -38279,11 +39258,12 @@ then : { as_val=$(( $* )) }' -else $as_nop - as_fn_arith () +else case e in #( + e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` - } + } ;; +esac fi # as_fn_arith @@ -38366,9 +39346,9 @@ if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. + # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then @@ -38449,10 +39429,12 @@ as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated exec 6>&1 @@ -38467,8 +39449,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ImageMagick $as_me 6.9.12-98, which was -generated by GNU Autoconf 2.71. Invocation command line was +This file was extended by ImageMagick $as_me 6.9.13-25, which was +generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -38500,7 +39482,7 @@ _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions +'$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. @@ -38536,11 +39518,11 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -ImageMagick config.status 6.9.12-98 -configured by $0, generated by GNU Autoconf 2.71, +ImageMagick config.status 6.9.13-25 +configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" -Copyright (C) 2021 Free Software Foundation, Inc. +Copyright (C) 2023 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -38602,8 +39584,8 @@ do ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; + as_fn_error $? "ambiguous option: '$1' +Try '$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ @@ -38611,8 +39593,8 @@ Try \`$0 --help' for more information.";; ac_cs_silent=: ;; # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; + -*) as_fn_error $? "unrecognized option: '$1' +Try '$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; @@ -39075,6 +40057,7 @@ do "config/type-dejavu.xml") CONFIG_FILES="$CONFIG_FILES config/type-dejavu.xml" ;; "config/type-ghostscript.xml") CONFIG_FILES="$CONFIG_FILES config/type-ghostscript.xml" ;; "config/type-urw-base35.xml") CONFIG_FILES="$CONFIG_FILES config/type-urw-base35.xml" ;; + "config/type-urw-base35-type1.xml") CONFIG_FILES="$CONFIG_FILES config/type-urw-base35-type1.xml" ;; "config/type-windows.xml") CONFIG_FILES="$CONFIG_FILES config/type-windows.xml" ;; "config/type.xml") CONFIG_FILES="$CONFIG_FILES config/type.xml" ;; "ImageMagick.spec") CONFIG_FILES="$CONFIG_FILES ImageMagick.spec" ;; @@ -39113,7 +40096,7 @@ do "wand/Wand-config") CONFIG_FILES="$CONFIG_FILES wand/Wand-config" ;; "wand/Wand.pc") CONFIG_FILES="$CONFIG_FILES wand/Wand.pc" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;; esac done @@ -39133,7 +40116,7 @@ fi # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. +# after its creation but before its name has been assigned to '$tmp'. $debug || { tmp= ac_tmp= @@ -39157,7 +40140,7 @@ ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. +# This happens for instance with './config.status config.h'. if test -n "$CONFIG_FILES"; then @@ -39315,13 +40298,13 @@ fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. +# This happens for instance with './config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF -# Transform confdefs.h into an awk script `defines.awk', embedded as +# Transform confdefs.h into an awk script 'defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. @@ -39431,7 +40414,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -39453,19 +40436,19 @@ do -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. + # because $ac_f cannot contain ':'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done - # Let's still pretend it is `configure' which instantiates (i.e., don't + # Let's still pretend it is 'configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` @@ -39598,7 +40581,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 esac _ACEOF -# Neutralize VPATH when `$srcdir' = `.'. +# Neutralize VPATH when '$srcdir' = '.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 @@ -39629,9 +40612,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir' which seems to be undefined. Please make sure it is defined" >&5 -printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" @@ -39875,15 +40858,15 @@ printf "%s\n" X/"$am_mf" | (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE=\"gmake\" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } fi { am_dirpart=; unset am_dirpart;} { am_filepart=; unset am_filepart;} @@ -40669,95 +41652,96 @@ matches your expectations. Host system type: $host Build system type: $build - Option Value + Option Value ------------------------------------------------------------------------------ -Shared libraries --enable-shared=$enable_shared $libtool_build_shared_libs -Static libraries --enable-static=$enable_static $libtool_build_static_libs -Module support --with-modules=$build_modules $build_modules -GNU ld --with-gnu-ld=$with_gnu_ld $lt_cv_prog_gnu_ld -Security policy --with-security-policy=$with_security_policy $with_security_policy -Quantum depth --with-quantum-depth=$with_quantum_depth $with_quantum_depth +Shared libraries --enable-shared=$enable_shared $libtool_build_shared_libs +Static libraries --enable-static=$enable_static $libtool_build_static_libs +Module support --with-modules=$build_modules $build_modules +GNU ld --with-gnu-ld=$with_gnu_ld $lt_cv_prog_gnu_ld +OpenMP --enable-openmp=$enable_openmp ${OPENMP_ENABLED} +Security policy --with-security-policy=$security_policy $security_policy +Quantum depth --with-quantum-depth=$with_quantum_depth $with_quantum_depth High Dynamic Range Imagery - --enable-hdri=$enable_hdri $enable_hdri + --enable-hdri=$enable_hdri $enable_hdri -Install documentation: $wantdocs +Install documentation: $wantdocs Memory allocation library: - JEMalloc --with-jemalloc=$with_jemalloc $have_jemalloc - MTMalloc --with-mtmalloc=$with_mtmalloc $have_mtmalloc - TCMalloc --with-tcmalloc=$with_tcmalloc $have_tcmalloc - UMem --with-umem=$with_umem $have_umem + JEMalloc --with-jemalloc=$with_jemalloc $have_jemalloc + MTMalloc --with-mtmalloc=$with_mtmalloc $have_mtmalloc + TCMalloc --with-tcmalloc=$with_tcmalloc $have_tcmalloc + UMem --with-umem=$with_umem $have_umem Delegate library configuration: - BZLIB --with-bzlib=$with_bzlib $have_bzlib - Autotrace --with-autotrace=$with_autotrace $have_autotrace - DJVU --with-djvu=$with_djvu $have_djvu - DPS --with-dps=$with_dps $have_dps - FFTW --with-fftw=$with_fftw $have_fftw - FLIF --with-flif=$with_flif $have_flif - FlashPIX --with-fpx=$with_fpx $have_fpx - FontConfig --with-fontconfig=$with_fontconfig $have_fontconfig - FreeType --with-freetype=$with_freetype $have_freetype - Ghostscript lib --with-gslib=$with_gslib $have_gslib - Graphviz --with-gvc=$with_gvc $have_gvc - HEIC --with-heic=$with_heic $have_heic - JBIG --with-jbig=$with_jbig $have_jbig - JPEG v1 --with-jpeg=$with_jpeg $have_jpeg - JPEG XL --with-jxl=$with_jxl $have_jxl - LCMS --with-lcms=$with_lcms $have_lcms - LQR --with-lqr=$with_lqr $have_lqr - LTDL --with-ltdl=$with_ltdl $have_ltdl - LZMA --with-lzma=$with_lzma $have_lzma - Magick++ --with-magick-plus-plus=$with_magick_plus_plus $have_magick_plus_plus - OpenEXR --with-openexr=$with_openexr $have_openexr - OpenJP2 --with-openjp2=$with_openjp2 $have_openjp2 - PANGO --with-pango=$with_pango $have_pango - PERL --with-perl=$with_perl $have_perl - PNG --with-png=$with_png $have_png - RAQM --with-raqm=$with_raqm $have_raqm - RAW --with-raw=$with_raw $have_raw - RSVG --with-rsvg=$with_rsvg $have_rsvg - TIFF --with-tiff=$with_tiff $have_tiff - WEBP --with-webp=$with_webp $have_webp - WMF --with-wmf=$with_wmf $have_wmf - X11 --with-x=$with_x $have_x - XML --with-xml=$with_xml $have_xml - ZLIB --with-zlib=$with_zlib $have_zlib - ZSTD --with-zstd=$with_zstd $have_zstd + BZLIB --with-bzlib=$with_bzlib $have_bzlib + Autotrace --with-autotrace=$with_autotrace $have_autotrace + DJVU --with-djvu=$with_djvu $have_djvu + DPS --with-dps=$with_dps $have_dps + FFTW --with-fftw=$with_fftw $have_fftw + FLIF --with-flif=$with_flif $have_flif + FlashPIX --with-fpx=$with_fpx $have_fpx + FontConfig --with-fontconfig=$with_fontconfig $have_fontconfig + FreeType --with-freetype=$with_freetype $have_freetype + Ghostscript lib --with-gslib=$with_gslib $have_gslib + Graphviz --with-gvc=$with_gvc $have_gvc + HEIC --with-heic=$with_heic $have_heic + JBIG --with-jbig=$with_jbig $have_jbig + JPEG v1 --with-jpeg=$with_jpeg $have_jpeg + LCMS --with-lcms=$with_lcms $have_lcms + LQR --with-lqr=$with_lqr $have_lqr + LTDL --with-ltdl=$with_ltdl $have_ltdl + LZMA --with-lzma=$with_lzma $have_lzma + Magick++ --with-magick-plus-plus=$with_magick_plus_plus $have_magick_plus_plus + OpenEXR --with-openexr=$with_openexr $have_openexr + OpenJP2 --with-openjp2=$with_openjp2 $have_openjp2 + PANGO --with-pango=$with_pango $have_pango + PERL --with-perl=$with_perl $have_perl + PNG --with-png=$with_png $have_png + RAQM --with-raqm=$with_raqm $have_raqm + RAW --with-raw=$with_raw $have_raw + RSVG --with-rsvg=$with_rsvg $have_rsvg + TIFF --with-tiff=$with_tiff $have_tiff + WEBP --with-webp=$with_webp $have_webp + WMF --with-wmf=$with_wmf $have_wmf + X11 --with-x=$with_x $have_x + XML --with-xml=$with_xml $have_xml + ZLIB --with-zlib=$with_zlib $have_zlib + ZSTD --with-zstd=$with_zstd $have_zstd Delegate program configuration: - GhostPCL None $PCLDelegate ($PCLVersion) - GhostXPS None $XPSDelegate ($XPSVersion) - Ghostscript None $PSDelegate ($GSVersion) + GhostPCL None $PCLDelegate ($PCLVersion) + GhostXPS None $XPSDelegate ($XPSVersion) + Ghostscript None $PSDelegate ($GSVersion) Font configuration: Apple fonts --with-apple-font-dir=$with_apple_font_dir $result_apple_font_dir Dejavu fonts --with-dejavu-font-dir=$with_dejavu_font_dir $result_dejavu_font_dir Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir $result_ghostscript_font_dir - URW-base35 fonts --with-urw-base35-font-dir=$with_urw_base35_font_dir $result_urw_base35_font_dir + URW OTF fonts --with-urw-base35-font-dir=$with_urw_base35_font_dir $result_urw_base35_font_dir + URW Type1 fonts --with-urw-base35-type1-font-dir=$with_urw_base35_type1_font_dir $result_urw_base35_type1_font_dir Windows fonts --with-windows-font-dir=$with_windows_font_dir $result_windows_font_dir X11 configuration: - X_CFLAGS = $X_CFLAGS - X_PRE_LIBS = $X_PRE_LIBS - X_LIBS = $X_LIBS - X_EXTRA_LIBS = $X_EXTRA_LIBS + X_CFLAGS = $X_CFLAGS + X_PRE_LIBS = $X_PRE_LIBS + X_LIBS = $X_LIBS + X_EXTRA_LIBS = $X_EXTRA_LIBS Options used to compile and link: - PREFIX = $PREFIX_DIR - EXEC-PREFIX = $EXEC_PREFIX_DIR - VERSION = $PACKAGE_VERSION - CC = $CC - CFLAGS = $CFLAGS - CPPFLAGS = $CPPFLAGS - PCFLAGS = $PCFLAGS - DEFS = $DEFS - LDFLAGS = $LDFLAGS - LIBS = $MAGICK_DEP_LIBS - CXX = $CXX - CXXFLAGS = $CXXFLAGS - FEATURES = $MAGICK_FEATURES - DELEGATES = $MAGICK_DELEGATES + PREFIX = $PREFIX_DIR + EXEC-PREFIX = $EXEC_PREFIX_DIR + VERSION = $PACKAGE_VERSION + CC = $CC + CFLAGS = $CFLAGS + CPPFLAGS = $CPPFLAGS + PCFLAGS = $PCFLAGS + DEFS = $DEFS + LDFLAGS = $LDFLAGS + LIBS = $MAGICK_DEP_LIBS $MAGICK_EXTRA_DEP_LIBS + CXX = $CXX + CXXFLAGS = $CXXFLAGS + FEATURES = $MAGICK_FEATURES + DELEGATES = $MAGICK_DELEGATES ============================================================================== " >&5 printf "%s\n" "$as_me: @@ -40768,95 +41752,96 @@ matches your expectations. Host system type: $host Build system type: $build - Option Value + Option Value ------------------------------------------------------------------------------ -Shared libraries --enable-shared=$enable_shared $libtool_build_shared_libs -Static libraries --enable-static=$enable_static $libtool_build_static_libs -Module support --with-modules=$build_modules $build_modules -GNU ld --with-gnu-ld=$with_gnu_ld $lt_cv_prog_gnu_ld -Security policy --with-security-policy=$with_security_policy $with_security_policy -Quantum depth --with-quantum-depth=$with_quantum_depth $with_quantum_depth +Shared libraries --enable-shared=$enable_shared $libtool_build_shared_libs +Static libraries --enable-static=$enable_static $libtool_build_static_libs +Module support --with-modules=$build_modules $build_modules +GNU ld --with-gnu-ld=$with_gnu_ld $lt_cv_prog_gnu_ld +OpenMP --enable-openmp=$enable_openmp ${OPENMP_ENABLED} +Security policy --with-security-policy=$security_policy $security_policy +Quantum depth --with-quantum-depth=$with_quantum_depth $with_quantum_depth High Dynamic Range Imagery - --enable-hdri=$enable_hdri $enable_hdri + --enable-hdri=$enable_hdri $enable_hdri -Install documentation: $wantdocs +Install documentation: $wantdocs Memory allocation library: - JEMalloc --with-jemalloc=$with_jemalloc $have_jemalloc - MTMalloc --with-mtmalloc=$with_mtmalloc $have_mtmalloc - TCMalloc --with-tcmalloc=$with_tcmalloc $have_tcmalloc - UMem --with-umem=$with_umem $have_umem + JEMalloc --with-jemalloc=$with_jemalloc $have_jemalloc + MTMalloc --with-mtmalloc=$with_mtmalloc $have_mtmalloc + TCMalloc --with-tcmalloc=$with_tcmalloc $have_tcmalloc + UMem --with-umem=$with_umem $have_umem Delegate library configuration: - BZLIB --with-bzlib=$with_bzlib $have_bzlib - Autotrace --with-autotrace=$with_autotrace $have_autotrace - DJVU --with-djvu=$with_djvu $have_djvu - DPS --with-dps=$with_dps $have_dps - FFTW --with-fftw=$with_fftw $have_fftw - FLIF --with-flif=$with_flif $have_flif - FlashPIX --with-fpx=$with_fpx $have_fpx - FontConfig --with-fontconfig=$with_fontconfig $have_fontconfig - FreeType --with-freetype=$with_freetype $have_freetype - Ghostscript lib --with-gslib=$with_gslib $have_gslib - Graphviz --with-gvc=$with_gvc $have_gvc - HEIC --with-heic=$with_heic $have_heic - JBIG --with-jbig=$with_jbig $have_jbig - JPEG v1 --with-jpeg=$with_jpeg $have_jpeg - JPEG XL --with-jxl=$with_jxl $have_jxl - LCMS --with-lcms=$with_lcms $have_lcms - LQR --with-lqr=$with_lqr $have_lqr - LTDL --with-ltdl=$with_ltdl $have_ltdl - LZMA --with-lzma=$with_lzma $have_lzma - Magick++ --with-magick-plus-plus=$with_magick_plus_plus $have_magick_plus_plus - OpenEXR --with-openexr=$with_openexr $have_openexr - OpenJP2 --with-openjp2=$with_openjp2 $have_openjp2 - PANGO --with-pango=$with_pango $have_pango - PERL --with-perl=$with_perl $have_perl - PNG --with-png=$with_png $have_png - RAQM --with-raqm=$with_raqm $have_raqm - RAW --with-raw=$with_raw $have_raw - RSVG --with-rsvg=$with_rsvg $have_rsvg - TIFF --with-tiff=$with_tiff $have_tiff - WEBP --with-webp=$with_webp $have_webp - WMF --with-wmf=$with_wmf $have_wmf - X11 --with-x=$with_x $have_x - XML --with-xml=$with_xml $have_xml - ZLIB --with-zlib=$with_zlib $have_zlib - ZSTD --with-zstd=$with_zstd $have_zstd + BZLIB --with-bzlib=$with_bzlib $have_bzlib + Autotrace --with-autotrace=$with_autotrace $have_autotrace + DJVU --with-djvu=$with_djvu $have_djvu + DPS --with-dps=$with_dps $have_dps + FFTW --with-fftw=$with_fftw $have_fftw + FLIF --with-flif=$with_flif $have_flif + FlashPIX --with-fpx=$with_fpx $have_fpx + FontConfig --with-fontconfig=$with_fontconfig $have_fontconfig + FreeType --with-freetype=$with_freetype $have_freetype + Ghostscript lib --with-gslib=$with_gslib $have_gslib + Graphviz --with-gvc=$with_gvc $have_gvc + HEIC --with-heic=$with_heic $have_heic + JBIG --with-jbig=$with_jbig $have_jbig + JPEG v1 --with-jpeg=$with_jpeg $have_jpeg + LCMS --with-lcms=$with_lcms $have_lcms + LQR --with-lqr=$with_lqr $have_lqr + LTDL --with-ltdl=$with_ltdl $have_ltdl + LZMA --with-lzma=$with_lzma $have_lzma + Magick++ --with-magick-plus-plus=$with_magick_plus_plus $have_magick_plus_plus + OpenEXR --with-openexr=$with_openexr $have_openexr + OpenJP2 --with-openjp2=$with_openjp2 $have_openjp2 + PANGO --with-pango=$with_pango $have_pango + PERL --with-perl=$with_perl $have_perl + PNG --with-png=$with_png $have_png + RAQM --with-raqm=$with_raqm $have_raqm + RAW --with-raw=$with_raw $have_raw + RSVG --with-rsvg=$with_rsvg $have_rsvg + TIFF --with-tiff=$with_tiff $have_tiff + WEBP --with-webp=$with_webp $have_webp + WMF --with-wmf=$with_wmf $have_wmf + X11 --with-x=$with_x $have_x + XML --with-xml=$with_xml $have_xml + ZLIB --with-zlib=$with_zlib $have_zlib + ZSTD --with-zstd=$with_zstd $have_zstd Delegate program configuration: - GhostPCL None $PCLDelegate ($PCLVersion) - GhostXPS None $XPSDelegate ($XPSVersion) - Ghostscript None $PSDelegate ($GSVersion) + GhostPCL None $PCLDelegate ($PCLVersion) + GhostXPS None $XPSDelegate ($XPSVersion) + Ghostscript None $PSDelegate ($GSVersion) Font configuration: Apple fonts --with-apple-font-dir=$with_apple_font_dir $result_apple_font_dir Dejavu fonts --with-dejavu-font-dir=$with_dejavu_font_dir $result_dejavu_font_dir Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir $result_ghostscript_font_dir - URW-base35 fonts --with-urw-base35-font-dir=$with_urw_base35_font_dir $result_urw_base35_font_dir + URW OTF fonts --with-urw-base35-font-dir=$with_urw_base35_font_dir $result_urw_base35_font_dir + URW Type1 fonts --with-urw-base35-type1-font-dir=$with_urw_base35_type1_font_dir $result_urw_base35_type1_font_dir Windows fonts --with-windows-font-dir=$with_windows_font_dir $result_windows_font_dir X11 configuration: - X_CFLAGS = $X_CFLAGS - X_PRE_LIBS = $X_PRE_LIBS - X_LIBS = $X_LIBS - X_EXTRA_LIBS = $X_EXTRA_LIBS + X_CFLAGS = $X_CFLAGS + X_PRE_LIBS = $X_PRE_LIBS + X_LIBS = $X_LIBS + X_EXTRA_LIBS = $X_EXTRA_LIBS Options used to compile and link: - PREFIX = $PREFIX_DIR - EXEC-PREFIX = $EXEC_PREFIX_DIR - VERSION = $PACKAGE_VERSION - CC = $CC - CFLAGS = $CFLAGS - CPPFLAGS = $CPPFLAGS - PCFLAGS = $PCFLAGS - DEFS = $DEFS - LDFLAGS = $LDFLAGS - LIBS = $MAGICK_DEP_LIBS - CXX = $CXX - CXXFLAGS = $CXXFLAGS - FEATURES = $MAGICK_FEATURES - DELEGATES = $MAGICK_DELEGATES + PREFIX = $PREFIX_DIR + EXEC-PREFIX = $EXEC_PREFIX_DIR + VERSION = $PACKAGE_VERSION + CC = $CC + CFLAGS = $CFLAGS + CPPFLAGS = $CPPFLAGS + PCFLAGS = $PCFLAGS + DEFS = $DEFS + LDFLAGS = $LDFLAGS + LIBS = $MAGICK_DEP_LIBS $MAGICK_EXTRA_DEP_LIBS + CXX = $CXX + CXXFLAGS = $CXXFLAGS + FEATURES = $MAGICK_FEATURES + DELEGATES = $MAGICK_DELEGATES ============================================================================== " >&6;} diff --git a/configure.ac b/configure.ac index a3879a9..909ce57 100644 --- a/configure.ac +++ b/configure.ac @@ -473,10 +473,10 @@ AC_OPENMP([C]) CFLAGS="$OPENMP_CFLAGS $CFLAGS" MAGICK_PCFLAGS="$MAGICK_PCFLAGS $OPENMP_CFLAGS" AC_SUBST([OPENMP_CFLAGS]) -if test "$enable_openmp" != no; then - if test "$ac_cv_prog_c_openmp" != 'unsupported'; then +AC_CHECK_DECL([_OPENMP],[OPENMP_ENABLED='yes'],[OPENMP_ENABLED='no'],[]) +if test "${OPENMP_ENABLED}" = 'yes' && \ + test "$ac_cv_prog_c_openmp" != 'unsupported'; then MAGICK_FEATURES="OpenMP $MAGICK_FEATURES" - fi fi # Enable support for OpenCL @@ -503,7 +503,8 @@ if test "$enable_largefile" != no; then unknown) AC_MSG_CHECKING([for native large file support]) AC_RUN_IFELSE([AC_LANG_PROGRAM([#include - main () { + #include + int main () { exit(!(sizeof(off_t) == 8)); }])], [ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64) @@ -511,6 +512,9 @@ if test "$enable_largefile" != no; then [AC_MSG_RESULT([no])]) ;; *) + if test "$ac_cv_sys_file_offset_bits" = ''; then + ac_cv_sys_file_offset_bits=64; + fi LFS_CPPFLAGS="$LFS_CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" ;; esac @@ -630,18 +634,6 @@ else DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --disable-installed " fi -# Permit enciphering and deciphering image pixels. -AC_ARG_ENABLE([cipher], - [AS_HELP_STRING([--disable-cipher], - [disable enciphering and deciphering image pixels])], - [enable_cipher=$enableval], - [enable_cipher='yes']) - -if test "$enable_cipher" = 'yes'; then - AC_DEFINE([CIPHER_SUPPORT],[1],[permit enciphering and deciphering image pixels]) - MAGICK_FEATURES="Cipher $MAGICK_FEATURES" -fi - # Build a zero-configuration version of ImageMagick. AC_ARG_ENABLE([zero-configuration], [AS_HELP_STRING([--enable-zero-configuration], @@ -806,6 +798,7 @@ if test "$with_cache" != ''; then fi # Set security policy +security_policy="open" m4_define([_MAGICK_SECURITY_POLICY], [m4_define([MAGICK_SECURITY_POLICY_DEFAULT], [m4_if($1, limited, limited, m4_if($1, secure, secure, open))])dnl AC_MSG_CHECKING([which variant of security policy to enforce]) @@ -814,16 +807,17 @@ m4_define([_MAGICK_SECURITY_POLICY], [security policy variant to enforce, @<:@default=]MAGICK_SECURITY_POLICY_DEFAULT[@:>@.])], [case $withval in open|limited|secure|websafe) + security_policy=$withval ;; *) AC_MSG_ERROR([Unknown argument to --with-security-policy]) ;; esac - magick_cv_with_security_policy=$with_security_policy], + magick_cv_with_security_policy=$security_policy], [AC_CACHE_VAL([magick_cv_with_security_policy], [magick_cv_with_security_policy=]MAGICK_SECURITY_POLICY_DEFAULT) MAGICK_SECURITY_POLICY=$magick_cv_with_security_policy]) - AC_MSG_RESULT([$with_security_policy]) + AC_MSG_RESULT([$security_policy]) ]) # MAGICK_SECURITY_POLICY _MAGICK_SECURITY_POLICY([open]) @@ -918,9 +912,6 @@ if test "$with_libstdc" != ''; then fi AC_SUBST([LIBSTDCLDFLAGS]) -# Does gcc required -traditional? -AC_PROG_GCC_TRADITIONAL - ######## # # Set defines required to build DLLs and modules using MinGW @@ -1026,6 +1017,7 @@ AC_CHECK_SIZEOF([long double]) # SIZEOF_UNSIGNED_LONG_LONG. If 'unsigned long long' is not # supported then the value defined is zero. AC_CHECK_SIZEOF([unsigned long long]) +AC_CHECK_SIZEOF([size_t]) AC_CHECK_SIZEOF([void *]) @@ -1256,39 +1248,52 @@ AC_DEFINE_UNQUOTED([X11_CONFIGURE_PATH],["$X11ConfigurePath"],[Location of X11 c # Find OpenMP library # GOMP_LIBS='' -if test "$enable_openmp" != 'no'; then +if test "${OPENMP_ENABLED}" = 'yes' && \ + test "$ac_cv_prog_c_openmp" != 'unsupported'; then + AC_CHECK_HEADER([omp.h], [], [AC_MSG_RESULT([OpenMP header file not found])]) if test "${GCC}" = "yes"; then # Open64 (passes for GCC but uses different OpenMP implementation) if test "x$GOMP_LIBS" = x ; then if $CC --version 2>&1 | grep Open64 > /dev/null ; then - AC_CHECK_LIB([openmp],[omp_get_num_procs],[GOMP_LIBS="-lopenmp"],[],[]) + AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([#include ], [ + omp_set_num_threads(1);])],[GOMP_LIBS="-lopenmp"],[]) fi fi # Clang (passes for GCC but uses different OpenMP implementation) - if test "x$LIB_OMP" = x ; then + if test "x$GOMP_LIBS" = x ; then if $CC --version 2>&1 | grep clang > /dev/null ; then - AC_CHECK_LIB([omp],[GOMP_parallel_start],[LIB_OMP="-lomp"],[],[]) + AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([#include ], [ + omp_set_num_threads(1);])],[GOMP_LIBS="-lomp"],[]) fi fi # GCC if test "x$GOMP_LIBS" = x ; then - AC_CHECK_LIB([gomp],[GOMP_parallel_start],[GOMP_LIBS="-lgomp"],[],[]) + AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([#include ], [ + omp_set_num_threads(1);])],[GOMP_LIBS="-lgomp"],[]) fi else # Sun CC if test "x$GOMP_LIBS" = x ; then - AC_CHECK_LIB([mtsk],[sunw_mp_register_warn],[GOMP_LIBS="-lmtsk"],[],[]) + AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([#include ], [ + omp_set_num_threads(1);])],[GOMP_LIBS="-lmtsk"],[]) fi # AIX xlc if test "x$GOMP_LIBS" = x ; then - AC_CHECK_LIB([xlsmp],[_xlsmpFlush],[GOMP_LIBS="-lxlsmp"],[],[]) + AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([#include ], [ + omp_set_num_threads(1);])],[GOMP_LIBS="-lxmlsmp"],[]) fi # SGI IRIX 6.5 MIPSpro C/C++ if test "x$GOMP_LIBS" = x ; then - AC_CHECK_LIB([mp],[mp_destroy],[GOMP_LIBS="-lmp"],[],[]) + AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([#include ], [ + omp_set_num_threads(1);])],[GOMP_LIBS="-lmp"],[]) fi fi - LIBS="$GOMP_LIBS $LIBS" + AC_MSG_CHECKING([for OpenMP library ]) + if test "x$GOMP_LIBS" = x ; then + AC_MSG_RESULT([not found!]) + else + AC_MSG_RESULT([${GOMP_LIBS}]) + fi fi AC_SUBST([GOMP_LIBS]) @@ -1480,6 +1485,9 @@ if test "$with_bzlib" != 'no'; then failed=0 passed=0 found_libbz=0 + PKG_CHECK_MODULES([BZLIB],[bzip2 >= 1.0.0],[have_bzlib=yes],[have_bzlib=no]) + CFLAGS="$CFLAGS $BZLIB_CFLAGS" + LIBS="$LIBS $BZLIB_LIBS" AC_CHECK_HEADER([bzlib.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) AC_CHECK_LIB([bz2],[BZ2_bzDecompress],[found_libbz=`expr $found_libbz + 1`],,) if test "$native_win32_build" = 'yes'; then @@ -1507,6 +1515,7 @@ if test "$with_bzlib" != 'no'; then fi fi AM_CONDITIONAL([BZLIB_DELEGATE],[test "$have_bzlib" = 'yes']) +AC_SUBST([BZLIB_CFLAGS]) AC_SUBST([BZLIB_LIBS]) # @@ -2351,6 +2360,11 @@ if test "$with_jpeg" != 'no'; then AC_MSG_RESULT([]) failed=0 passed=0 + + PKG_CHECK_MODULES([JPEG],[libjpeg >= 2.0.0],[have_jpeg=yes],[have_jpeg=no]) + CFLAGS="$CFLAGS $JPEG_CFLAGS" + LIBS="$LIBS $JPEG_LIBS" + AC_CHECK_HEADER([jconfig.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) AC_CHECK_HEADER([jerror.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) AC_CHECK_HEADER([jmorecfg.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) @@ -2373,6 +2387,7 @@ if test "$with_jpeg" != 'no'; then fi fi AM_CONDITIONAL([JPEG_DELEGATE],[test "$have_jpeg" = 'yes']) +AC_SUBST([JPEG_CFLAGS]) AC_SUBST([JPEG_LIBS]) dnl =========================================================================== @@ -2716,42 +2731,22 @@ if test "$with_tiff" != 'yes'; then fi have_tiff='no' -TIFF_LIBS='' -if test "$with_tiff" != 'no'; then - AC_MSG_RESULT([-------------------------------------------------------------]) - AC_MSG_CHECKING([for TIFF]) - AC_MSG_RESULT([]) - failed=0 - passed=0 - AC_CHECK_HEADER([tiff.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) - AC_CHECK_HEADER([tiffio.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) - AC_CHECK_LIB([tiff],[TIFFOpen],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[]) - AC_CHECK_LIB([tiff],[TIFFClientOpen],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[]) - AC_CHECK_LIB([tiff],[TIFFIsByteSwapped],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[]) - AC_CHECK_LIB([tiff],[TIFFReadRGBATile],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[]) - AC_CHECK_LIB([tiff],[TIFFReadRGBAStrip],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[]) - AC_MSG_CHECKING([if TIFF package is complete]) - if test $passed -gt 0; then - if test $failed -gt 0; then - AC_MSG_RESULT([no -- some components failed test]) - have_tiff='no (failed tests)' - else - TIFF_LIBS='-ltiff' - LIBS="$TIFF_LIBS $LIBS" - AC_DEFINE([TIFF_DELEGATE],[1],[Define if you have TIFF library]) - AC_MSG_RESULT([yes]) - have_tiff='yes' - AC_CHECK_HEADERS(tiffconf.h) - AC_CHECK_FUNCS([TIFFIsCODECConfigured TIFFMergeFieldInfo \ - TIFFIsBigEndian TIFFSetErrorHandlerExt TIFFSetTagExtender \ - TIFFReadEXIFDirectory TIFFReadGPSDirectory \ - TIFFSetWarningHandlerExt TIFFSwabArrayOfTriples]) - fi - else - AC_MSG_RESULT([no]) - fi +TIFF_CFLAGS="" +TIFF_LIBS="" +TIFF_PKG="" +if test "x$with_tiff" = "xyes"; then + AC_MSG_RESULT([-------------------------------------------------------------]) + PKG_CHECK_MODULES([TIFF],[libtiff-4 >= 4.0.0],[have_tiff=yes],[have_tiff=no]) + AC_MSG_RESULT([]) fi + +if test "$have_tiff" = 'yes'; then + AC_DEFINE([TIFF_DELEGATE],[1],[Define if you have TIFF library]) + CFLAGS="$TIFF_CFLAGS $CFLAGS" +fi + AM_CONDITIONAL([TIFF_DELEGATE],[test "$have_tiff" = 'yes']) +AC_SUBST([TIFF_CFLAGS]) AC_SUBST([TIFF_LIBS]) dnl =========================================================================== @@ -2761,7 +2756,7 @@ dnl =========================================================================== # AC_ARG_WITH([urw-base35-font-dir], [AS_HELP_STRING([--with-urw-base35-font-dir=DIR], - [URW-base35 font directory])], + [URW-base35 OTF font directory])], [with_urw_base35_font_dir=$withval], [with_urw_base35_font_dir='default']) @@ -2771,6 +2766,21 @@ fi dnl =========================================================================== +# +# Set URW Base35 Type1 font directory. +# +AC_ARG_WITH([urw-base35-type1-font-dir], + [AS_HELP_STRING([--with-urw-base35-type1-font-dir=DIR], + [URW-base35 Type1 font directory])], + [with_urw_base35_type1_font_dir=$withval], + [with_urw_base35_type1_font_dir='default']) + +if test "$with_urw_base35_type1_font_dir" != 'default'; then + DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-urw-base35-type1-font-dir=$with_urw_base35_type1_font_dir " +fi + +dnl =========================================================================== + # # Check for the WEBP delegate library. # @@ -2971,15 +2981,15 @@ AC_DEFINE_UNQUOTED([EXECUTABLE_PATH],["$DEFINE_EXECUTABLE_PATH"],[Directory wher AC_SUBST([EXECUTABLE_PATH]) # Path to ImageMagick lib -LIBRARY_PATH="${LIB_DIR}/${LIBRARY_RELATIVE_PATH}" -DEFINE_LIBRARY_PATH="${LIB_DIR}/${LIBRARY_RELATIVE_PATH}/" +LIBRARY_ABSOLUTE_PATH="${LIB_DIR}/${LIBRARY_RELATIVE_PATH}" +DEFINE_LIBRARY_ABSOLUTE_PATH="${LIB_DIR}/${LIBRARY_RELATIVE_PATH}/" case "${build_os}" in mingw* ) - DEFINE_LIBRARY_PATH=`$WinPathScript "$DEFINE_LIBRARY_PATH" 1` + DEFINE_LIBRARY_ABSOLUTE_PATH=`$WinPathScript "$DEFINE_LIBRARY_ABSOLUTE_PATH" 1` ;; esac -AC_DEFINE_UNQUOTED([LIBRARY_PATH],["$DEFINE_LIBRARY_PATH"],[Directory where architecture-dependent files live.]) -AC_SUBST([LIBRARY_PATH]) +AC_DEFINE_UNQUOTED([LIBRARY_ABSOLUTE_PATH],["$DEFINE_LIBRARY_ABSOLUTE_PATH"],[Directory where architecture-dependent files live.]) +AC_SUBST([LIBRARY_ABSOLUTE_PATH]) # # path to local binaries @@ -2996,7 +3006,7 @@ AC_SUBST([LIB_BIN_DIR]) LIB_BIN_DIR_RELATIVE_PATH=$LIB_BIN_DIR AC_SUBST([LIB_BIN_DIR_RELATIVE_PATH]) -LIB_BIN_DIR_PATH="${LIBRARY_PATH}/${LIB_BIN_DIR_RELATIVE_PATH}" +LIB_BIN_DIR_PATH="${LIBRARY_ABSOLUTE_PATH}/${LIB_BIN_DIR_RELATIVE_PATH}" AC_SUBST([LIB_BIN_DIR_PATH]) # @@ -3016,7 +3026,7 @@ AC_SUBST([MODULES_DIRNAME]) MODULES_RELATIVE_PATH="${MODULES_DIRNAME}" AC_SUBST([MODULES_RELATIVE_PATH]) -MODULES_PATH="${LIBRARY_PATH}/${MODULES_RELATIVE_PATH}" +MODULES_PATH="${LIBRARY_ABSOLUTE_PATH}/${MODULES_RELATIVE_PATH}" AC_SUBST([MODULES_PATH]) # @@ -3109,7 +3119,7 @@ AC_SUBST([SHAREARCH_DIRNAME]) SHAREARCH_RELATIVE_PATH="${SHAREARCH_DIRNAME}" AC_SUBST([SHAREARCH_RELATIVE_PATH]) -SHAREARCH_PATH="${LIBRARY_PATH}/${SHAREARCH_RELATIVE_PATH}" +SHAREARCH_PATH="${LIBRARY_ABSOLUTE_PATH}/${SHAREARCH_RELATIVE_PATH}" AC_SUBST([SHAREARCH_PATH]) # @@ -3125,7 +3135,8 @@ BPGDecodeDelegateDefault='bpgdec' BPGEncodeDelegateDefault='bpgenc' BlenderDecodeDelegateDefault='blender' BrowseDelegateDefault='xdg-open' -DNGDecodeDelegateDefault='ufraw-batch' +ClipboardDelegateDefault='xclip' +DNGDecodeDelegateDefault='darktable-cli' DOCDecodeDelegateDefault='libreoffice' GVCDecodeDelegateDefault='dot' DVIDecodeDelegateDefault='dvips' @@ -3143,6 +3154,7 @@ LEPDelegateDefault='lepton' LPDelegateDefault='lp' LPRDelegateDefault='lpr' LaunchDelegateDefault='gimp' +MKDIRDelegateDefault='mkdir' MrSIDDecodeDelegateDefault='mrsidgeodecode' MVDelegateDefault='mv' PCLDelegateDefault='pcl6' @@ -3169,7 +3181,8 @@ XPSDelegateDefault='gxps' AC_PATH_PROG([BPGDecodeDelegate],["$BPGDecodeDelegateDefault"],["$BPGDecodeDelegateDefault"]) AC_PATH_PROG([BPGEncodeDelegate],["$BPGEncodeDelegateDefault"],["$BPGEncodeDelegateDefault"]) AC_PATH_PROG([BlenderDecodeDelegate],["$BlenderDecodeDelegateDefault"],["$BlenderDecodeDelegateDefault"]) -AC_PATH_PROGS([BrowseDelegate],["$BrowseDelegateDefault" google-chrome firefox konqueror mozilla lynx],["$BrowseDelegateDefault"]) +AC_PATH_PROGS([BrowseDelegate],["$BrowseDelegateDefault" brave-browser microsoft-edge google-chrome firefox konqueror lynx],["$BrowseDelegateDefault"]) +AC_PATH_PROGS([ClipboardDelegate],["$ClipboardDelegateDefault"],["$ClipboardDelegateDefault"]) AC_PATH_PROG([DNGDecodeDelegate],["$DNGDecodeDelegateDefault"],["$DNGDecodeDelegateDefault"]) AC_PATH_PROG([DOCDecodeDelegate],["$DOCDecodeDelegateDefault"],["$DOCDecodeDelegateDefault"]) AC_PATH_PROG([DVIDecodeDelegate],["$DVIDecodeDelegateDefault"],["$DVIDecodeDelegateDefault"]) @@ -3187,9 +3200,8 @@ AC_PATH_PROG([LEPDelegate],["$LEPDelegateDefault"],["$LEPDelegateDefault"]) AC_PATH_PROG([LPDelegate],["$LPDelegateDefault"],[no]) AC_PATH_PROG([LPRDelegate],["$LPRDelegateDefault"],["$LPRDelegateDefault"]) AC_PATH_PROG([LaunchDelegate],["$LaunchDelegateDefault"],["$LaunchDelegateDefault"]) +AC_PATH_PROG([MKDIRDelegate],["$MKDIRDelegateDefault"],["$MKDIRDelegateDefault"]) AC_PATH_PROG([MogrifyDelegate],["$MogrifyDelegateDefault"],["$MogrifyDelegateDefault"]) -AC_PATH_PROG([VIDEODecodeDelegate],["$VIDEODecodeDelegateDefault"],["$VIDEODecodeDelegateDefault"]) -AC_PATH_PROG([VIDEOEncodeDelegate],["$VIDEOEncodeDelegateDefault"],["$VIDEOEncodeDelegateDefault"]) AC_PATH_PROG([MrSIDDecodeDelegate],["$MrSIDDecodeDelegateDefault"],["$MrSIDDecodeDelegateDefault"]) AC_PATH_PROG([MVDelegate],["$MVDelegateDefault"],["$MVDelegateDefault"]) AC_PATH_PROG([PCLDelegate],["$PCLDelegateDefault"],["$PCLDelegateDefault"]) @@ -3199,6 +3211,8 @@ AC_PATH_PROG([RSVGDecodeDelegate],["$RSVGDecodeDelegateDefault"],["$RSVGDecodeDe AC_PATH_PROG([SVGDecodeDelegate],["$SVGDecodeDelegateDefault"],["$SVGDecodeDelegateDefault"]) AC_PATH_PROG([TextEncodeDelegate],["$TextEncodeDelegateDefault"],["$TextEncodeDelegateDefault"]) AC_PATH_PROG([TraceEncodeDelegate],["$TraceEncodeDelegateDefault"],["$TraceEncodeDelegateDefault"]) +AC_PATH_PROG([VIDEODecodeDelegate],["$VIDEODecodeDelegateDefault"],["$VIDEODecodeDelegateDefault"]) +AC_PATH_PROG([VIDEOEncodeDelegate],["$VIDEOEncodeDelegateDefault"],["$VIDEOEncodeDelegateDefault"]) AC_PATH_PROG([WebPDecodeDelegate],["$WebPDecodeDelegateDefault"],["$WebPDecodeDelegateDefault"]) AC_PATH_PROG([WebPEncodeDelegate],["$WebPEncodeDelegateDefault"],["$WebPEncodeDelegateDefault"]) AC_PATH_PROG([WWWDecodeDelegate],["$WWWDecodeDelegateDefault"],["$WWWDecodeDelegateDelegateDefault"]) @@ -3259,8 +3273,8 @@ dejavu_font_dir='' if test "${with_dejavu_font_dir}" != 'default'; then dejavu_font_dir="${with_dejavu_font_dir}/" else - for font_dir in "${prefix}/share/dejavu/fonts/" '/usr/share/fonts/dejavu/'; do - if test -f "${font_dir}DejaVuSerif.ttf"; then + for font_dir in "${prefix}/share/fonts/dejavu" "${prefix}/share/dejavu-serif-fonts/fonts/" '/usr/share/fonts/dejavu-serif-fonts/' '/usr/share/fonts/truetype/dejavu/'; do + if test -f "${font_dir}URWGothic-Book.otf"; then dejavu_font_dir="${font_dir}" break 1 fi @@ -3319,14 +3333,14 @@ case "${build_os}" in ;; esac -# URW-base35 fonts. +# URW-base35 OTF fonts. AC_MSG_CHECKING([for URW-base35 fonts directory]) urw_base35_font_dir='' if test "${with_urw_base35_font_dir}" != 'default'; then urw_base35_font_dir="${with_urw_base35_font_dir}/" else - for font_dir in "${prefix}/share/urw-base35/fonts/" '/usr/share/fonts/urw-base35/' '/usr/share/fonts/type1/urw-base35/'; do - if test -f "${font_dir}StandardSymbolsPS.t1"; then + for font_dir in "${prefix}/share/urw-base35/fonts/" "${prefix}/share/fonts/opentype/urw-base35" '/usr/share/fonts/urw-base35/' '/usr/share/fonts/opentype/urw-base35/'; do + if test -f "${font_dir}URWGothic-Book.otf"; then urw_base35_font_dir="${font_dir}" break 1 fi @@ -3340,11 +3354,39 @@ else fi AC_SUBST([urw_base35_font_dir]) +# URW-base35 Type1 fonts. +AC_MSG_CHECKING([for URW-base35 Type1 fonts directory]) +urw_base35_type1_font_dir='' +if test "${with_urw_base35_type1_font_dir}" != 'default'; then + urw_base35_type1_font_dir="${with_urw_base35_type1_font_dir}/" +else + for font_dir in "${prefix}/share/urw-base35/fonts/" "${prefix}/share/fonts/type1/urw-base35" '/usr/share/fonts/urw-base35/' '/usr/share/fonts/type1/urw-base35/'; do + if test -f "${font_dir}URWGothic-Book.t1"; then + urw_base35_type1_font_dir="${font_dir}" + break 1 + fi + done +fi +if test "${urw_base35_type1_font_dir}x" != 'x'; then + type_include_files="${type_include_files} "'' + AC_MSG_RESULT([$urw_base35_type1_font_dir]) +else + AC_MSG_RESULT([not found!]); +fi +AC_SUBST([urw_base35_type1_font_dir]) + # Windows fonts. AC_MSG_CHECKING([for Windows fonts directory]) windows_font_dir='' if test "${with_windows_font_dir}" != 'default'; then windows_font_dir="${with_windows_font_dir}/" +else + for font_dir in '/usr/share/wine/fonts/' '/usr/share/fonts/msttcore/' '/usr/share/fonts/microsoft/' '/usr/share/fonts/truetype/msttcorefonts/'; do + if test -f "${font_dir}arial.ttf"; then + windows_font_dir="${font_dir}" + break 1 + fi + done fi if test "${windows_font_dir}x" != 'x'; then type_include_files="${type_include_files} "'' @@ -3356,6 +3398,18 @@ AC_SUBST([windows_font_dir]) AC_SUBST([type_include_files]) +# Permit enciphering and deciphering image pixels. +AC_ARG_ENABLE([cipher], + [AS_HELP_STRING([--disable-cipher], + [disable enciphering and deciphering image pixels])], + [enable_cipher=$enableval], + [enable_cipher='yes']) + +if test "$enable_cipher" = 'yes'; then + AC_DEFINE([CIPHER_SUPPORT],[1],[permit enciphering and deciphering image pixels]) + MAGICK_FEATURES="Cipher $MAGICK_FEATURES" +fi + # # Handle case where user doesn't want frozen paths # @@ -3365,6 +3419,7 @@ if test "$with_frozenpaths" != 'yes'; then BPGEncodeDelegate="$BPGEncodeDelegateDefault" BlenderDecodeDelegate="$BlenderDecodeDelegateDefault" BrowseDelegate="$BrowseDelegateDefault" + ClipboardDelegate="$ClipboardDelegateDefault" ConvertDelegate="$ConvertDelegateDefault" DisplayDelegate="$DisplayDelegateDefault" DNGDecodeDelegate="$DNGDecodeDelegateDefault" @@ -3403,6 +3458,7 @@ AC_SUBST([BPGDecodeDelegate]) AC_SUBST([BPGEncodeDelegate]) AC_SUBST([BlenderDecodeDelegate]) AC_SUBST([BrowseDelegate]) +AC_SUBST([ClipboardDelegate]) AC_SUBST([ConvertDelegate]) AC_SUBST([GVCDecodeDelegate]) AC_SUBST([DVIDecodeDelegate]) @@ -3463,7 +3519,7 @@ AM_CONDITIONAL([ZIP_DELEGATE],[test "x$ZIP" != "x"]) # # GhostPCL related configuration. # -PCLColorDevice=ppmraw +PCLColorDevice=png16malpha PCLCMYKDevice=pamcmyk32 PCLMonoDevice=pbmraw if test -z "$PCLVersion"; then @@ -3509,8 +3565,8 @@ AC_SUBST([PCLVersion]) # # GhostXPS related configuration. # -XPSColorDevice=ppmraw -XPSCMYKDevice=bmpsep8 +XPSColorDevice=png16malpha +XPSCMYKDevice=pamcmyk32 XPSMonoDevice=pbmraw if test -z "$XPSVersion"; then XPSVersion='unknown' @@ -3555,7 +3611,7 @@ AC_SUBST([XPSVersion]) # # Ghostscript related configuration. # -GSAlphaDevice=pngalpha +GSAlphaDevice=png16malpha GSColorDevice=png16m GSCMYKDevice=pamcmyk32 GSMonoDevice=pbmraw @@ -3588,6 +3644,8 @@ if test $have_gs = 'yes'; then AC_MSG_CHECKING([for gs alpha device]) if $PSDelegate -q -dBATCH -sDEVICE=$GSAlphaDevice -sOutputFile=/dev/null < /dev/null 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then : + elif $PSDelegate -q -dBATCH -sDEVICE=pngalpha -sOutputFile=/dev/null < /dev/null 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then + GSAlphaDevice=pngalpha else GSAlphaDevice=$GSColorDevice fi @@ -3750,9 +3808,6 @@ fi if test "$have_jpeg" = 'yes' ; then MAGICK_DELEGATES="$MAGICK_DELEGATES jpeg" fi -if test "$have_jxl" = 'yes' ; then - MAGICK_DELEGATES="$MAGICK_DELEGATES jxl" -fi if test "$have_lcms" = 'yes' || test "$have_lcms2" = 'yes' ; then MAGICK_DELEGATES="$MAGICK_DELEGATES lcms" fi @@ -3771,6 +3826,9 @@ fi if test "$have_pango" = 'yes' ; then MAGICK_DELEGATES="$MAGICK_DELEGATES pango" fi +if test "$have_pcl" = 'yes' ; then + MAGICK_DELEGATES="$MAGICK_DELEGATES pcl" +fi if test "$have_png" = 'yes' ; then MAGICK_DELEGATES="$MAGICK_DELEGATES png" fi @@ -3873,7 +3931,7 @@ fi if test "$build_modules" != 'no'; then MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS $MTMALLOC_LIBS" else - MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS $MTMALLOC_LIBS" + MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS $MTMALLOC_LIBS" fi MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS" AC_SUBST([MAGICK_DEP_LIBS]) @@ -3889,12 +3947,21 @@ AC_SUBST([X_CFLAGS]) #AC_SUBST([X_LIBS]) #AC_SUBST([X_EXTRA_LIBS]) +CC=`echo $CC | sed -e 's/ */ /g'` +CFLAGS=`echo $CFLAGS | sed -e 's/ */ /g'` +CPPFLAGS=`echo $CPPFLAGS | sed -e 's/ */ /g'` +CXXFLAGS=`echo $CXXFLAGS | sed -e 's/ */ /g'` +LDFLAGS=`echo $LDFLAGS | sed -e 's/ */ /g'` +LIBS=`echo $LIBS | sed -e 's/ */ /g'` + MAGICK_CFLAGS=$CFLAGS -MAGICK_CXXFLAGS="$CXXFLAGS" +MAGICK_CXXFLAGS=$CXXFLAGS MAGICK_CPPFLAGS=`echo $MAGICK_CPPFLAGS | sed -e 's/ */ /g'` MAGICK_PCFLAGS=`echo $MAGICK_PCFLAGS | sed -e 's/ */ /g'` MAGICK_LDFLAGS="-L$LIB_DIR $LDFLAGS" MAGICK_LIBS="$MAGICK_DEP_LIBS $MAGICK_EXTRA_DEP_LIBS" +MAGICK_DEP_LIBS=`echo $MAGICK_DEP_LIBS | sed -e 's/ */ /g'` +MAGICK_EXTRA_DEP_LIBS=`echo $MAGICK_EXTRA_DEP_LIBS | sed -e 's/ */ /g'` AC_SUBST([MAGICK_CFLAGS]) AC_SUBST([MAGICK_CXXFLAGS]) @@ -3933,6 +4000,11 @@ if test "${urw_base35_font_dir}x" != 'x'; then result_urw_base35_font_dir=$urw_base35_font_dir fi +result_urw_base35_type1_font_dir='none' +if test "${urw_base35_type1_font_dir}x" != 'x'; then + result_urw_base35_type1_font_dir=$urw_base35_type1_font_dir +fi + result_windows_font_dir='none' if test "${windows_font_dir}x" != 'x'; then result_windows_font_dir=${windows_font_dir} @@ -3954,6 +4026,7 @@ AC_CONFIG_FILES([\ config/type-dejavu.xml \ config/type-ghostscript.xml \ config/type-urw-base35.xml \ + config/type-urw-base35-type1.xml \ config/type-windows.xml \ config/type.xml \ ImageMagick.spec \ @@ -4004,94 +4077,95 @@ matches your expectations. Host system type: $host Build system type: $build - Option Value + Option Value ------------------------------------------------------------------------------ -Shared libraries --enable-shared=$enable_shared $libtool_build_shared_libs -Static libraries --enable-static=$enable_static $libtool_build_static_libs -Module support --with-modules=$build_modules $build_modules -GNU ld --with-gnu-ld=$with_gnu_ld $lt_cv_prog_gnu_ld -Security policy --with-security-policy=$with_security_policy $with_security_policy -Quantum depth --with-quantum-depth=$with_quantum_depth $with_quantum_depth +Shared libraries --enable-shared=$enable_shared $libtool_build_shared_libs +Static libraries --enable-static=$enable_static $libtool_build_static_libs +Module support --with-modules=$build_modules $build_modules +GNU ld --with-gnu-ld=$with_gnu_ld $lt_cv_prog_gnu_ld +OpenMP --enable-openmp=$enable_openmp ${OPENMP_ENABLED} +Security policy --with-security-policy=$security_policy $security_policy +Quantum depth --with-quantum-depth=$with_quantum_depth $with_quantum_depth High Dynamic Range Imagery - --enable-hdri=$enable_hdri $enable_hdri + --enable-hdri=$enable_hdri $enable_hdri -Install documentation: $wantdocs +Install documentation: $wantdocs Memory allocation library: - JEMalloc --with-jemalloc=$with_jemalloc $have_jemalloc - MTMalloc --with-mtmalloc=$with_mtmalloc $have_mtmalloc - TCMalloc --with-tcmalloc=$with_tcmalloc $have_tcmalloc - UMem --with-umem=$with_umem $have_umem + JEMalloc --with-jemalloc=$with_jemalloc $have_jemalloc + MTMalloc --with-mtmalloc=$with_mtmalloc $have_mtmalloc + TCMalloc --with-tcmalloc=$with_tcmalloc $have_tcmalloc + UMem --with-umem=$with_umem $have_umem Delegate library configuration: - BZLIB --with-bzlib=$with_bzlib $have_bzlib - Autotrace --with-autotrace=$with_autotrace $have_autotrace - DJVU --with-djvu=$with_djvu $have_djvu - DPS --with-dps=$with_dps $have_dps - FFTW --with-fftw=$with_fftw $have_fftw - FLIF --with-flif=$with_flif $have_flif - FlashPIX --with-fpx=$with_fpx $have_fpx - FontConfig --with-fontconfig=$with_fontconfig $have_fontconfig - FreeType --with-freetype=$with_freetype $have_freetype - Ghostscript lib --with-gslib=$with_gslib $have_gslib - Graphviz --with-gvc=$with_gvc $have_gvc - HEIC --with-heic=$with_heic $have_heic - JBIG --with-jbig=$with_jbig $have_jbig - JPEG v1 --with-jpeg=$with_jpeg $have_jpeg - JPEG XL --with-jxl=$with_jxl $have_jxl - LCMS --with-lcms=$with_lcms $have_lcms - LQR --with-lqr=$with_lqr $have_lqr - LTDL --with-ltdl=$with_ltdl $have_ltdl - LZMA --with-lzma=$with_lzma $have_lzma - Magick++ --with-magick-plus-plus=$with_magick_plus_plus $have_magick_plus_plus - OpenEXR --with-openexr=$with_openexr $have_openexr - OpenJP2 --with-openjp2=$with_openjp2 $have_openjp2 - PANGO --with-pango=$with_pango $have_pango - PERL --with-perl=$with_perl $have_perl - PNG --with-png=$with_png $have_png - RAQM --with-raqm=$with_raqm $have_raqm - RAW --with-raw=$with_raw $have_raw - RSVG --with-rsvg=$with_rsvg $have_rsvg - TIFF --with-tiff=$with_tiff $have_tiff - WEBP --with-webp=$with_webp $have_webp - WMF --with-wmf=$with_wmf $have_wmf - X11 --with-x=$with_x $have_x - XML --with-xml=$with_xml $have_xml - ZLIB --with-zlib=$with_zlib $have_zlib - ZSTD --with-zstd=$with_zstd $have_zstd + BZLIB --with-bzlib=$with_bzlib $have_bzlib + Autotrace --with-autotrace=$with_autotrace $have_autotrace + DJVU --with-djvu=$with_djvu $have_djvu + DPS --with-dps=$with_dps $have_dps + FFTW --with-fftw=$with_fftw $have_fftw + FLIF --with-flif=$with_flif $have_flif + FlashPIX --with-fpx=$with_fpx $have_fpx + FontConfig --with-fontconfig=$with_fontconfig $have_fontconfig + FreeType --with-freetype=$with_freetype $have_freetype + Ghostscript lib --with-gslib=$with_gslib $have_gslib + Graphviz --with-gvc=$with_gvc $have_gvc + HEIC --with-heic=$with_heic $have_heic + JBIG --with-jbig=$with_jbig $have_jbig + JPEG v1 --with-jpeg=$with_jpeg $have_jpeg + LCMS --with-lcms=$with_lcms $have_lcms + LQR --with-lqr=$with_lqr $have_lqr + LTDL --with-ltdl=$with_ltdl $have_ltdl + LZMA --with-lzma=$with_lzma $have_lzma + Magick++ --with-magick-plus-plus=$with_magick_plus_plus $have_magick_plus_plus + OpenEXR --with-openexr=$with_openexr $have_openexr + OpenJP2 --with-openjp2=$with_openjp2 $have_openjp2 + PANGO --with-pango=$with_pango $have_pango + PERL --with-perl=$with_perl $have_perl + PNG --with-png=$with_png $have_png + RAQM --with-raqm=$with_raqm $have_raqm + RAW --with-raw=$with_raw $have_raw + RSVG --with-rsvg=$with_rsvg $have_rsvg + TIFF --with-tiff=$with_tiff $have_tiff + WEBP --with-webp=$with_webp $have_webp + WMF --with-wmf=$with_wmf $have_wmf + X11 --with-x=$with_x $have_x + XML --with-xml=$with_xml $have_xml + ZLIB --with-zlib=$with_zlib $have_zlib + ZSTD --with-zstd=$with_zstd $have_zstd Delegate program configuration: - GhostPCL None $PCLDelegate ($PCLVersion) - GhostXPS None $XPSDelegate ($XPSVersion) - Ghostscript None $PSDelegate ($GSVersion) + GhostPCL None $PCLDelegate ($PCLVersion) + GhostXPS None $XPSDelegate ($XPSVersion) + Ghostscript None $PSDelegate ($GSVersion) Font configuration: Apple fonts --with-apple-font-dir=$with_apple_font_dir $result_apple_font_dir Dejavu fonts --with-dejavu-font-dir=$with_dejavu_font_dir $result_dejavu_font_dir Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir $result_ghostscript_font_dir - URW-base35 fonts --with-urw-base35-font-dir=$with_urw_base35_font_dir $result_urw_base35_font_dir + URW OTF fonts --with-urw-base35-font-dir=$with_urw_base35_font_dir $result_urw_base35_font_dir + URW Type1 fonts --with-urw-base35-type1-font-dir=$with_urw_base35_type1_font_dir $result_urw_base35_type1_font_dir Windows fonts --with-windows-font-dir=$with_windows_font_dir $result_windows_font_dir X11 configuration: - X_CFLAGS = $X_CFLAGS - X_PRE_LIBS = $X_PRE_LIBS - X_LIBS = $X_LIBS - X_EXTRA_LIBS = $X_EXTRA_LIBS + X_CFLAGS = $X_CFLAGS + X_PRE_LIBS = $X_PRE_LIBS + X_LIBS = $X_LIBS + X_EXTRA_LIBS = $X_EXTRA_LIBS Options used to compile and link: - PREFIX = $PREFIX_DIR - EXEC-PREFIX = $EXEC_PREFIX_DIR - VERSION = $PACKAGE_VERSION - CC = $CC - CFLAGS = $CFLAGS - CPPFLAGS = $CPPFLAGS - PCFLAGS = $PCFLAGS - DEFS = $DEFS - LDFLAGS = $LDFLAGS - LIBS = $MAGICK_DEP_LIBS - CXX = $CXX - CXXFLAGS = $CXXFLAGS - FEATURES = $MAGICK_FEATURES - DELEGATES = $MAGICK_DELEGATES + PREFIX = $PREFIX_DIR + EXEC-PREFIX = $EXEC_PREFIX_DIR + VERSION = $PACKAGE_VERSION + CC = $CC + CFLAGS = $CFLAGS + CPPFLAGS = $CPPFLAGS + PCFLAGS = $PCFLAGS + DEFS = $DEFS + LDFLAGS = $LDFLAGS + LIBS = $MAGICK_DEP_LIBS $MAGICK_EXTRA_DEP_LIBS + CXX = $CXX + CXXFLAGS = $CXXFLAGS + FEATURES = $MAGICK_FEATURES + DELEGATES = $MAGICK_DELEGATES ============================================================================== ]) diff --git a/filters/analyze.c b/filters/analyze.c index d01a27c..4545a8f 100644 --- a/filters/analyze.c +++ b/filters/analyze.c @@ -36,12 +36,6 @@ /* Include declarations. */ -#include -#include -#include -#include -#include -#include #include "magick/studio.h" #include "magick/MagickCore.h" diff --git a/images/donate.png b/images/donate.png new file mode 100644 index 0000000000000000000000000000000000000000..c3cadc8374fe419b32ed2ea9bb79f41d9b826360 GIT binary patch literal 1423 zcmY+CdpHw%9LAS!Dr%kTIOV8ydM0&T<`SA{#>`xYMK}+ekVsodF0ql^a=%4on_OEp z#Do*eExBzGP7b*h(W9Xwx#agd>p6d&=lQVfd*Xif_XCKKQ;0@-^Y77C83`*4u(+4>0?JUBpIcd!sC_ zGE*`oqxC?`TYB!$sJS~0)Yvrw+8K(!H06m5RVZRo05~tF34gg-R3{er3Oc# zNc2%r3FwUh&&)x0D45`hUgR?q(S5myMwWQm?Ua?$;%QB`MiSqg@3IW=x|X zkL()`hVFoR8z8`gW*T_M0prCfSqapjNCq<+MY_@`$ma9X$(O>|oMg#Bfk>E#a|<5r z%m+PTu*wkDn7|G?7|H@;1=OG$DVcF7lD|lp(^#E>bGyb&h>`T?Gngzeau??y_}brjJT=X!-oze@I^GjCpFga)#6LZQ$JKGA^X+ViEl zsi7oc8g7hp8f8L78eG8HJ9AiO;#|Y>coWD|5vCY$BJnu8^B4M) z$GSZBEYiS3oUIReC(3Ub;Orb(bmG`O%zU9Lw&_%r3RY_lk~+|I-H2JRH`j} zs0;;oSZxfOXt2=*_ORd(8`covNEw`JfDJCNKNEgzfs4b32^~?=VQmVsw{bw=rr&!1 zC?1wXQ$+k$C39)n!7z6Yl=_csjxg)+Gm;K4kYs91F>e>-tUA2G?Qd6nKEEDIZ;S8$ z^XEmxu?G(XOZde>E_c$uQV?SDgjH5_^5iySRX2*NTfBR2HOQg^nrmQobY0Zy6jgUZiKN<$li97vSZV~ zJ>u@w(jdKynRZeOv99)Z+^x2-9%YuZ)n%+AQb*9(W>CCio&BAVR5os+h+aq^{LG1- zktKf)RJk!LyG_R5ouG+q)vMeHM+R|YK!H_hE)rXud3!Y-`N1K5b}bK4-@HBSo5sK_ zU>-nkIOY|-vaBxsmYTS<+&TgyHa0WQ(YQhlQ5Ru@*n75OezB}%DOxDqAv%a~KFE_6 z@+_1>!U?y8xd>8|d*s%Q3kp7pG?`g!ho74Sx0T22~(fB^WP<9Puf0YF0h zXZ-Vy^fHi9k^dR!sHiBY80eUo80Z)nn6F;H!o};?h>L)Pi}3s#KmhpJH@P5CgxgoxPQC@~?$W(sA)6n>+{pK7Hn3$B4 zo0kvm?xE+E)C{Vd+IYtxt^1o%YEuT{Y8hP6yMF#MHTjEC|5)~)jC+|H1pyTe9pmM& zHtvh%2uKL1NT|q&NLW|^ECc`|5-v3|9)}nT{)<(oj()KOoY~b~6R5OnXN2M()xV&j z69FYOo&0lZYKggcG|avQboam}rQ+gqx!39FCC$&D;ec02FW13E!Uc!`_S10*B-L;w zrT(=Wi7}l!^W}=ztjwAE#=9`CdQ)cjeOD8f`%F({ejN+SpM23Rex$SwLh_@f`ispl zQ+3IxJzI+-{Ao&;?TI#)Mc5Ewj1zx_j_tLiP(%Jb@c5g-=LO}-05fWrTvfvxF?Pi!u)VF9UvV9pXXG{6A^^;O|1K!3-u;gbnI-xdGI;A?Ctw4Xx z9E5K5+$|%FD_oGS`LC{Wa=EM`K)jgH-iTVkRZux`8;iG}YeTs;nA22NVT2I4Cbt+T zEw&o9UXIMCyXKb8GW9RMx&JSIu>X3^sCkrKY`%qy@2f}ZD~{q|@F0|LX-fe|S=zIMcVK&oSUW_cSBTu<|IqyaPd<(47z8 zJFar!c?Ym8zB{#xnQvUM;9zGBM0@u=1aZNUp(ZZ7ixOA5sS;s?2Q%VSp&)kr4{Vkf z8CQ~$21k5MU5ojoq>b9Ln3r78J;+PT|KM}NdhaL~PkK^O1y>zEIi>?aKC^mEZbH%5 zD#tY3p`(o6iRroe6wKG#`2<6kR)7b*b;a9%yE+AX$@y+f|u*zg#TXBo6|4`{LipVWG5!QzGvSa)-1euU95{`mLU1iF}& zK%$aBmnwi6N(7l@}we9{0L) zR*e6T-#6BLWfb?@GIA#_73~?eLN>)FX;!#B3L)bt7*Qc?K zeRaFA<}P)NwRn(ca6mISIew_Vhz;!to$&mNjSHkxK0r+G~?>bt}_D`}JF& zu(}BB2r=PR6x3l1+(r-G!q;Ixcb_V)(}i}sCP|G`XL**mg>GTCHOo%RTis5nQTy@r zteVuuG^ZNra{#jp8;eX6R-<1?W^N#0-D-TmxQhut{29=#PwsOzW<6F8Yj*1~U=j5+ zi&`GHlfxjDTGEP7Gv(h?QBcm(yE7}zU&(DKf?^kH^iT3I06TfE{T&A;nj?{&CnK(m7F->ZRhN+A;DlZgoLR>m zF~ciWVq@!Xi{Ibn-fdA9-nuK7Oz2)Gb!KkH z+){f`d%!9uFGMqiNJm3*_;mL?Yj%#=iJKODUvUp?3?zcZ_EAHd_8452S~M5Fg06K9 zL)cl{6KjIUIcqcpKjX-F>^Ep3t)IYG^+qmD5JWy-XQbAleN{qAEdm0%(H$AW(8dZS z_bglBS11*1$Adz@su;MEH)OvW#2i?^!;~ZMBD8hl(GIDa`$QO^lb0zbc-fppB-<_F z*M;nasi&bg@vp}1{|W>DGG-vRJsM(XIl~|)fqjg=SnC((fMR-t1A{>{MXY89-VP%U zW}A;=&V7zoJ&MH=4(Fqah!%ijhhyfG?W6ivU$H1v%J0+tkz@e&C*$ofU;uSRfeg5J2%4pfS<@!)3Fp{DIYV@HJYW7!(n6}{~SITz#d z8qXUlu^bXV7sdOle3PXLS9%*v6kPWi!B-dogPli9t@x3{!@lqe+MrTRVSA4?nO1Lj zMXT6IWw3>aXuwWzWCBg^Wxf_2(8u2Dmru#o>pjZslb4p>=n~oV@P0MQvPN5sdmNH{6(kvL4MOJP z1dxW(!pR&Q&+qE1;i13Es4H4<1|2E4UXi_D775v!>Y7_h6*)b$OTwpw{1r9(Vw)!W zC=uC$mW34M)DR+HV4^0#hBsDBGt{8m0lJd$5bFBf#Dwmc6IgzTy!92xq>B_M^*sW= zzjQK^E2^06PhD(t6l?TuNAkUD|AWYb{G)Ve*J1EyvCq_j(5~M+gPlC6%ABR;?{@=i zprd<m+BR>rvW)G0LYC#@)oE*o;>XrC|+-M3thmnLR# zpJS+S0s9mTRJSTs?&z?1z;SH#x&%Nzg|Q~UzZ;&d8*WYFqp@$m*4^)x>gMMVO4mUm zuw~W3`3+hxdD*`5I|QPXj9?X$@0{j9c;hu@5# z-GXo>KJxidt6N4&9U+RkW8ZOJ#w1VS`l)ItYVMaC;Wdm)xh8!&Y6g5#>5;LB_$K}_ zeq?vk*=tP?U9z`it2=0ToZFckJNxaGe^vfI1N0V_$_Y|_QTdH`@BZvZoXa<**>G&O zL;{ucfu%h(ay+stt}4}_4}wuS&BEota(>fR>mo|&3dv-dI@NKN{RQdQR20f8zzy~g zrIM);p6vYJhj7?h{ov&;;?XmJ;Cj~dn$iMdX)ZgEYY#_;^&{Pn&oqQP3Nr|9bY}Zj zE#7%W1zT6d4({6}Wx7wKs3;2e6s(|V{QB~DeX47-zRTnFRADI%Sp=&`7CU5`$wpii73m`=Q8V6j8KvZZ`3)xDN-L9z*^#qBF>vhiKa zBOjD&d#meYFuAL(HFfM#Mi(+?0NAUN;>`|a`?ir8kJrqUhtPhyYw2Zz;MR(auJdt1 zEJhG$u4=pdRxZ2_*=>11^jh@LNf6gWV_svd=!eiDwkeVo>WIgsNuUqqwdGfcjFpH& z;nbjTafPeb4i|UoiJ+6wSmv|=@+yAB#!z$MIP?^Qu42{B@w<7CH*bC3p}U|~*GaTv zg^AhqucPn0a7C4HAlNN8K*v}nrq25FJy$9(nnx7g(0OMQ(y!Er&m zG??o`;yQQAgiRxoLyOW`ZPTg4+pqO7%p}=w2*90s{So29T4?p&)tkn??Z#w(raXtq zeXZEwVXQnHKv>u2irT3`{_e$Od#UqtPev>SQC@T3cSc2qOo|@1 ztn-VXo4(RQR~L83OLj>*9M#F(d1$!f83BJPXP*HeP zhSQ`;7FJWCQVWIqq(0J6G{w3@FiX*$QPGw_sYOL9#G0A)Xu#DemM#C@bbCrpwo@?V z9eJazbHqf4(p#G>$DTnXa7Jz_))kv1iIB`0eQNzxR0__dU#@q0bc8u!rbf+;+{#CJoTe{5J9|DxV-4oZeh@~9q*)YVof*m)bY}R}tQEo}i zGh`LnfK?W4UeoDjtqWI#DcDa_8&Tqo{dSrzjWD=+s=j!fJP~4ij93?7c7k>2*M4SR zT~zx1@JxDWKD8m$-Zfjzak7-rIGpMu-FosTZGZV2>bk#vOrzrQ=~=BHrEP9&6ziikiO#Q4$Rru2i^N-oEekUI%gZxGewIwV+ z{ty|3;WZU!p@eH6}5~;T0_@>px!xtJH%5487 zOK=)YfF68FqA8R0XA;f@9 zTeEK?DA_6Zu-cO4c=k5afC~IcC2podBdLNhYUakKcW9V~^MQH1jSeJM5j)J<6Y;rq zTqza3+ozI`h3X{je;VZ>#aZGHg}kwU^b1*PiBNQmv|RU-9dPA z>ICK$UAPIMicxnN@P%-LMmUs*90)8*BfB2BU0HW}2HeOT7PYWc8#~t^*^&M*>jXDy z*gN1XNOfuj%p@KEiEK;fpR#T>EBrZD`S#oZ?J>=Wux>y7Ye^fc`CeoFg88jFSf8F& ztrf`ohBg1z6giE_4LcxX@Y}$wHiI=SOd@}3!2BBt!neq{lMB+`@C{hP7OPi<*B3uN zq_?}xSW*Q4GK%@HS6PU=Mc)AdpGI)M=P(lMH5XLG@BL_S^Y{YEX*Obj+SKc>rSa1% z_(?KAa3%tacF>@okFf3MzP!d}cjN->%indZJ_FYL9<(aFGvpSK)v5+=$$RwSwYs(D zINC)^S7~6+$|I4@G1-P3j~x4`r3w!l?S2=I<2WJRnq<{gQcVNpD}cC@W)AQu|(C$;sqqhZhVYc#lQevbJ&|sB zo~Oca{Q|3d2EsYk*)w3>XTy8uXml#RzD_@+mlS89@0@Ig;^)QIatDfiZzvJ6MYdSP zl-nVYx*$bV{7vi}9j&i0Vta8pHmN@2`!TvCxn=Xj-cf#FD)2V0w4(45U*^hse`!*~ zurjt@KTn@%y52D?`Ioz#8an~@FkIs>FD}z+i-9{_Z@yW1+}VCwnoJkmFn$}YMb!4E zYEnDzu0u5vDL142t|eZ-o-VMNpp~_Dof=DzZ!;fQ+Q4^S{!wx6t+@|Uf*IB#$+8Cc z8IUK$J$)BEQFfeSj5I4~SZQpb0j6V)$(fgZ{YJzvHlYY*6NMU+%+I))Ua0FB5ZiUW z7abRkX&whdH$}lE|VOt;7(61Y}SWVPtll6)KBFPGKasjZww?vKA!W{ z6dhGYLt+@pxvA$#ZXJKeG)mx8KyEtusA>cU@;R0Bk}5*ETD}h3XefFCp^UZZ1K`d| zOWIFw9K?_)Ew3};q1pG+VWQW1M10jj4Am3ql?0k=bJdxSg~q1P^7tkw6IBAG+l^N3 z?&aODcdUPKzG2tJel7gtPI&Ou6TwCaX{=;eUz3n<=0wJ`QXOi!$CKDJcf`q{`*r@< ziCtBPucW^&P(4 z0-0;+uU?tPX4N<-KSpi$Nw10#G2)2o-@mWTKGLq$VF}Gmx~#rqRx!R@o*zFh95gGt z`?B_4>5pc^XZlGFbb~?QUwQdfe<#lPfQySq`|4*v4Nv8h2`F3|3WuZxWz=sfR#s>h)=NdfKgq@ccC52MVmqxyXCmyrrG3+yH0#NIwRv}c z_egACXB<=I{0xxOyOd7y{{aan733v!KRK{n`wC4=BS8QBH6zE2}negS=?eA-D*FFCASletc|u=+Bq@bO1t zs-LH6$wEVn9P*5#t`PfisGdMZ&f#du%4Jmb7fe;>{9Z!!(2%;f$<7r|OJ^;eRpmt6R?#%)vWVjS8*-~DIDPN9B4 z5h&(@J)p4#MSb8d3(PmD_OC!V>9s>WCzMk2j;wBO?`v!?)yg@ir6-{0#)PuuJ0&|S zNam|5=$TDlGulyY@I7WV-#&HO+eY0#e6IW3O6oJ6t#gvPCqM65=4!(2VPYy&{CU~A zb=WC2l$qq0WDp}kSvk-_7>&>p&P{S;oLgHsnbb|ftUz$oLxm&7qVSGD@mF+%358a- z+3wcaK|!R&0$-6zbz`Y*Lg~Tl*ZY=F>}VtO`41wc-lgI*BTsRhy3c?+rQU~L%9P;z zELjCNeoAhsWoK7I@`Hr%Tu$!zJ-Zvsg*zpzY1&@v&h6RRx6*2l7QIE;D#%QRmQ<%q z-kJ5UZR;(DR%*aG@H4wnpZ9d+6RujubTuRk(s}{`1q@b?(saxVj`C`BxOwG4H;#WicFi!TuZCDoE>^>%nq^wqW2zP)0p-tfYyclT~=8anf>%4%pti z*_n9aKrIIu%R@WTq+HLW8oMrypMtsn=mM(DkQS5R^v%He&c-T5RF=U;U-)9t&Blk* z&8o&t&oa|8sP#$W&;8KUjR3cWpQQ#*X+-^Ij=WQotb#3Pmz+U~i(yJr!?X1{!UuoXudl|Gx&?y5$RMx z5$bYLM9v*uz!lUWFWLz5ZAdfJRWrPkSNu|8$pQ>KW|&7Kt@i7~_BMOkH8}>)ne^Jv zT-O(B{=G^VC%fToGVA7QO)aX6oYk5z0-%LB{%-brf)h`&2V4cNZ>mMOow# zbv7Mo<{E$}p+P4Z6G*)H-i|Km2i1}EYr91=+BWaVvdM#IKyVAOLe3M#WOZ*U$y#tE zbOXXXW^lV@lx2~rA-Fly>MKTdk>O`AbFJYa{1k2_7@bFv=T~!59#X0&QGA^XC)L5E zSU>MFc_7GLF;t$IPPfR0Ij?#V@`_mi1gqL2$Mi>&x<~4~STlUDY~W z1A9^0?fc4UcgFf`%6fJ%XI|Yh{{5N~Pcpvn&aNAA=Q7{-}GGhmqwAQT#dXCUHK5*J*9l3;6r_X=8TT)Cl<_b|hAxb&)W& zAKcDk*W|w9ExKNY1|ZJ2l)v^j)GyI1<&EeQ z510OchLLTtajO?H;|&;E=OK-6Hh)xn{4Hlk?4rdW#Zx%RfGjOg!PDA1=X{F3=6TE z9?i1(#HW2f>7XO8u9MiWV{H1t2Um5~54uF^JumbZ>64E@fIBST_m65Es1x0LtVsT>iCH5C7T~{$I;72sDbD zKOHDB&@a6`Y?PtVL=)?h40KAPWIg}5m3FHm2;~x4Co#iU`lJRrcNkWg%~Zgg10H9P zISD)nR0@5V8JN}A3J>q;X_8V4b^08^RLr<08qNA>ddhdsEj&8&y+xUhCcP&lJ{bM( z>7B+jXf#8qHA?IP%|9R7WceS#H6i()(%wh2UDPOuP%(Pj72^32d{W;rU|lxh_AO31 zQbJX9S$^6p2EgVNFgB*HT|(4_W!Nw=dGe_QgO^RMwEV(ix!|OI*$zuzJ6~XZN)!6V zjVfQl(m4?Fwi4!vR)3GBQV{(@CD=Xdug(PgxXoyO6n>xl5~VX@Lo+o@9XrB>@_^XU z+)=rHm75Kjg(}MNq?=@0@KTsLk*JfT5&0$tFZQhv_$DR|Vy}7$&RzEZ-yjj z{Abc?0wrh9Zc3#3Y1pBWd%dLMQS7NCFVlJ4BZZS;52{}gpUuSiiPv`bDrqX9ku^JR z_%|ZL5Z=jeov8!bqm1E1_;>HWbNAp-+4$JgcpLW%}!@b!-d-!AQD zzau4HJ^tjWE%o>{EnH;y$8rf;jo1ZdeLd9=f^CMxjWa2aYmx%NXhP>sHZ_kdT#Dwe zkX4C&+~TMEMpCjNQV6<+k&?lBX~)T78(V%Si4)A_n*R<(1Yxw(r3Ka1&ijww$88$0 zM(Xk7-zi>`x##ECC6*(w6)~3Oy~)^saH1D=KqhN5lDESuE{&R9P&IDCd9s?VbuJ$( z$aujkc}bQuW8dcmmt4l)xh=z0Y7#yt_#;pOSVA5Id2N*P*pHI9F`df>PDES8<8u+VL>Q+;) zOZzXiN8&xHnMhO2)#=Pqu;g^T&SE&P@=Dq1_fW>eAXIUpg4w>=Hx*)I-9^a_R~|Z0 z*arb#b6j`I#&ecpwA1zw1Jcx2QMTn(`uknC&O+!0g1L{(&2mnA$H6ls8~VC+Wsf%R zP=%VEH>t<;u}(8URB18E{;`d#=9u@WJ{&Enu|t1(qmFtjHcbtuj2SKUuF_`q15cD z>w?l25F1&%PS<)9?+JnlB%Nt?M9$VlTkt73?hvDbUJ(@YRq}fXPgZ_VE?izcy}ZaQ z$dsQMd1vhz(BHz2;W~)4TlY%1-@xVE@W26>rk91SGu`l)R8R1=%ST%>e{|Xio$+W9 zEwpKY@DdW-AI%mQ*+;xg+UCT@-b=1m!H@3p>Z#r;KLYcSi8ZT&aGRunaR9ApK6msBt`*t8eI*yV2)(tu>`2d5kU z)TdPgf#BfXBRbWbeN-glYK~J*~}Ef$0-X;77Xg7oj+SFt2R$raM7Q_+f@( z+?n2qil9qWhfqP#aAzUIHnANVD);{u|NiBK+^Vp^GB^Jja0wmFb$*&Ip2nXpu$E(K zP{OI|y^5I!?YwpTOjk2RhGvJbShl*}_*j@N5az6i+=9c9-X7$7Pgxh7w7?aG&`ysK z+cD)%sOucB3VO;KHqM#8(@>$+(K9buZaU&xC_N)ZqH72f50h2xx4XJsu56tUJUnz~ zb*P?1`}2N=i+s$g;mAHTM>-CpYvBA7Y|5^ASFl4xpi6kf+2y7@xiG`~&-s*QLhpA4 zhq{QCTTy@`{~$gsUeEmB#Cok~z*`+ow+Osu1}6+ksnN);BOG$A z#=LwG<4cMt+aG;^rbNTA=(2KmO!i7854(91W`224NVL83i&E8)eYApAA+OqZJ!ZlD zRgIyp?2u}MdeygvG&7A?DFJA7xmy{T6s3+Z6`~kxX_5_zKeHwwQncf7mljFMQ(C*k zUrUyQnuK9fftB5{jM(3xtBZfU9gL;OnHh{uTXj0?_2b?8I)VBx%l1=j%GB8EBjp(Z`BTJD%7M`$13q z(ADB;ME5(AYDB+wLLf8Oo_F>biNaNa@HtTa%pn%W_6}$TWvXbpgGA!XDE-~`m5x|J ze;c%CaP2vS>_N)Y$jEk^FKKj>1OeW5wKs$G?KU^4iUX@3(*Wbe&2*36ge#HO$KiM*QAUq=3(Xm2 zjE+0QoAesFBD|C`vo5+9Rt~TBGSXp>B2$mjlg-+6NvJJtB}T>AGT3axX4v^jWVB>- zy>zqcf~MnM2Zi$!BSeXjQ>5Q5W=Wx6Cr8R-@3e#a-H-;%&bGiVV8hG*#_7%fopN4J6OLthxgD;6McS90;)dg=xe5QDY-`3YweHxDZ*C4=y9i2dQo` zBO{_8N`2=kRUm3ddX)p;>WPvOeH__jd$`oPysO?xr^WyCJYQO?g1#{Ju&3oi zU4onX^nCJ=GG-KB`z>0>W?T7OO4LxyG0|w$<3re8BztvA(%mh~>xqNxS-TRe1VgBg zJ~zsWw0O(nQBoOHwq11h z+hb*UWiJLYc?0ZvS4+K1M2?%Bt`ZvIc(5{ z7^lqUt&Y{WCYkl5O<;jpYhGI3KY?)`BEnoujHAEoz$f96Cz464ulRAsYrUt!3VVVE ze>?Qxs_7r~-}a0+eP`1#qS*cYTDC(j-4f@84>b3|v`ZCvuYi2t2w?9yDIBG_EFI_b z>KB3x9P&|)MzLM#CnY{E03(qb0yf+2unkW+&Lq!Cjz#yI6%b#s7&2Zj*lOqe{sGf9 z4UWMJPL)Mql9&0X(MKyR@t?|#f0r`z|If}1%j*~rhJX(&S4$puc5R;pTz^Z7G3Y>7 zspCp@ zS&1uLO9iK$3JK1h_sIeyv{2+{#~5vqY`gIaWn z;t$9_R@}*zEKiWj!)~zoJ432&D)Wy}oRXAD<#Umo6500& zHM5R*lm70Nr7&y3F$_Z^<20FdtgMxJ(z2LR8O`R;_j8bWuP?XcHJ(tW^b*=tf`Mm1 zd*zVN59(tO12zY5EHYUs@zG#yX}Ivd+0V&aapo<@_VyNcd6L| zEqU1o-s#r5t}UN7kHLQr2E|*)*S%|q1PO`|g{Jig{mW3Na$5hZ*!X|MhW~Cmb&MQ$ zUn{gxUw(tXFNT9t16>e{YG80DO&)>=CQ^14&w%)J zH6|TFp+V^IX-8Tl}&XnQG=vwadDvFHpLFQ8PTC%?9-EIqq z30@0h4n0^8tTZ}wPe+xI7c1Jzk|vx&&Kg^EDYeb|c1t7M&mqKbEMjmOaO<1*c;#i! z(J0g!;3I_wSQXR%1rsiDLCfdWb~%x`3TzYNv3_${@CK=>AbKg5+_?Lp&rS85rbBTW zLKNOWZC4_KmB!w0^20=ssNRV5kKF*4N3+pmsW$2cH(KSA$S-pj0NQ(PfQ6XOor3vO zQ}+3?F!z~I_Jd%>;i>WVvDLnaaW;hO?r&iymsip?C{pRmjEB>FsdH~{@pbBN?Sk%v z8A$7JD5iL@`zCJJcB6um^S?*O(fm+GmSI>m`<;W^-dT9BaPs8b*sy_OCuXpjn zQsxtFwio!mhjv}WoA}Re;W0hVCl{lEOUDDY!pb%x*pdd64ME3E?rKKeJ(`1}=LmNT z+F99xHrhc(Q>8P5WU8mNe&wYu4pYzWddnqMA>=#}>MWcGT>(03fYeyxjPxdEms74t zHuB2B)GaQ(Hcbnfq9|@AQ4e@n%BpaDff4hz@@06!HJtL|VPoE(J!r zcD!$Oi?^^_1G66@uLc+gtr;F(Htt?VYJ7HbN%Vc6 zWcljAsd^|0t$yM!8$abI&r*wc^+&Ri40e661}iu*C~Ch>!2DNp&-77!*nf2^dnzH2roW$ctMD zXyj9u-DISsc}+Ddqm>`7hn4lyKz@uYDzxiplRebqm4{1TTYvo}L#57d>8Uf=&l%E( z{J>fdt5?*8+HQ(jANcQ;H{d6?uWha+m*RQ)w+aJx9(ATc+_qCS{lW_04`QGNV9ok? zYkeasOQ=B3v|X`8)Jw%#gezaExc|=8hGf&^id>6b!K5i>!kIv{%7T#Qr_kgALwWUX zzcsc*Mu8kpKyDw4a7SIi#Ga(tu^sY?*z8Km%6v1uO#w%os~Q|l$CDG3O41?u9 zWkK=@@1UMbzWM*U&;Kr@KO+1_lUXw3Pa$NUbf@xnR)4GkohO0No5ULww&tA1+ zSWj6*uOK*InV%fL;lqSZgKV2%8~q)*wT)7NmvA;{ZV)}1;u?w-sNHW)BfAAcs&Zhw zFTFUPczT_|K)gG;eM?3;SFxQ5)n8LzE#=g?E;2YivYm!=J_EjbQotll2&>Q4RYZck zTH)BrKc}i2y~6f*+%|^|F$1kdRN6C)4O9c{r|^xnA$23I{wgDqnB_6U)bPHz?+EJe zUr1h&LSde8b^0`^iJE@hcU)B1aFu@KT7hJJuCVC$OMmsa>xsjF!?OULmwuLD`q|xK zOXOE1`!*|B_7>M=>A#9dezG_qThg-BwuhZJi+#+Qku$=dqQ5EJL>X|hsX&p37=$gJ z#qrHuue&lJ*#ll77!G7xr28}WBKQ(8Ov#lbP7Z-bdE^_Id)5DUi2e8Y*3|!4oK6sH z-?n!mM+)R-X7G;`EDpoJwqm9SCVC+z6bzm(hTXki%a|a+wtCGqyZRKe-}IPU_)!YH z`PFL4yT0A%#XS-C40IhSt06E^Y9eGhR5IcaXKl%xyop(3k?jsicXZ*f=spJJ^%7F= z+8cXR?k<%@mF;~!W2KRgzf4au)0hQO$a^5ip0=YJIf*^>*n0ThWOXpfRTO!yI;WPH&VU`1*YGt_RD?3(KY7lB~ zkgcXp(Z3%vE9sD<$aVH9eB@51EVnHI2dF3NwMW=7=e0N({7_?~uHJz%Yp;tcFK#-j zCTWZJ0E2z?F9onwtgYYWO;okZqyU_B2)Q2^Nj_?+*ozxLr6$FL++xfZ*Rt`mc~s^F zl4hz_Wmj20$1Ym5XIA+{UrroNT4y#oyjHu~xiDz4c^noAb;cFcexwbMR?-N0jFXi; zdg+y$_oG?jC>-}Z)S+FKalDz`CowW7nQ@Kz#OLw;PhRM0i%l;-98H$kPrixs{+x(W12H|qz(Fi@)7U0!;S<+Cw>q49dRU4zBvxDC z0Rny_hNn>#S>+7plLDTKc%ufHbf;9B{mYsx)rQUYf-wHHD$<>Q>tg(5Wz+9v+HMQQ(M4F6BqqUDn(BU;yyXQE;_ei!Uq zYWwpXS9sbvG@4?C0}$98 zSfLhQqF#1QQg1uoH&g0-Se8&v`MJrks1mE849sI$C6IEUeBeh)2RkASdiUf#16*-shPcF;jp`HQ}oVW_- z%gaX=kjv2&S&~`4dD{5f*IhCeAoe_6O#{WGZEBHfhp+;}m)Kqf?S$~E*<}5AJOEFl zzfwfCU0!)O=w()n8mU?RUQ(lpF#Xo4-w9>jXsFF2PdwG@VeQs_^Vnp~lbYe96)})> z24}e&)IJfi>Gw};k+*Cj{!=6Pw5zOG4F|u#Y}?L5G3uPip%^G8fEdpi44=>!rY=2J z{Fvm2%`gINBeqw!unsR-Y_7+l9*)wLK#qcBo#s9zsdTr$ZtzrqdP?5d6O1VnA9Zwk zn5^N9eV$R_i&r!Jq`l(HCqgO$tj$+1d|!+WTB0(HC!AGGGO%I3l0w1x4UrqOZjk~; zhu`K#_j;k7X~#Y%B2#9>HA@P2+wM19@42I~IR-&T^Q7?#DAHlGUl1 zTAb_W){s!-Q277GE{M3`#n<~^s_qgiF5_|eC?Acdp*g5ZyFcC0v4GGetQ5dmbWCqC zkN}wPbxQu-q}YECR`B0K;ckq4%x5)ZefpWQd_gE_6pGDqkH2m*zS(Z>$2eMGPqbHo+SbGE7&Ga7wrx)a08h7L zgkEsB%?OUx3}WBrN4)!!+`Mzbrk9w?F0pnt6@D1mLqv*Rr*)WKmP8w zULNGb8#KB|TI40PV0##yKn4hc>~XXMO~c-t3rFbujsLk!otp}#PO-;CS;bk#I7#Bp zMtAThx|(&KMp(P|mvTsj_y%bZiUC!LgXZJR>Q=$G^~FpI(t*<%B2L+x07H`~N|RhVvCag}U%$lBq~F?Hle z$C_VvB%exUcYomEc`r?)jBeaFzQ_zm37SbbDauALsY!$^8UAe`j&WBfB1l%c+e$gZ zv;8Tn1_mkQGoRDfgMiNVq`_=roov|wQ-UOGHG~`(4q2Y>Hgy(1YQ3`>$~83z9S2KM zygY@yF*>q5HliA# zbS!ar;u1x3c*|~|ZqG)gzfbD`)jL4v{mlNjp`%2{u$Oey5_I1KO?19I?TkB7Grvj60KJ#fO=C%J6XY66v1gY~jQtMHr zU(25E!^4c8kvdNML8jMt?`1mciqc&L`qZYSrFcrQ7LHUyS45DJwp&)~S3{%X>O{>MH} zc9-F91*kg&JTa+Q|37fK<|9;w<3U%-MZf)UWjKvtvqCIX~F9{`fEEQ$h)~lU8 zXCY0{A4j&;i~IXZk$|gV6|1)%LJ&{m@O=rAD6dRC*v#dq=`~85tirzJVX1>L!P$@# ze&D_FP}k&3EwXH&Qd{3Oz#UDPJqgWNT1Y3r-Ib>8X>h~f4(PJnZ}v^SDd$}xxM3k^ zaPT_3RWGAx4p5FmRm`Ht7Sk~ugxx;Q@U{&9+W8J?nY$%OZ;((Yg-VaGvxW8#ES2tu zKblCP%4|Y%K|13s{BEuydly@TR)0U${5l@;bq}HFq22dyKzI*4vs2(nLj$J(A?BexI(AwQ}!%V$97!1@H3 zCUSFUN{jM6om(q@wD&{t_wjW7nMYjWc8jp=68@iers5B*P_s&u!}I7Fyw7 zG>x}+x9`PDg`X(HV)eclvGOu<9;Y}aLdmDZk_vX{FkD{e2?Qrp5hZ3Z(oMzu^Asgf z{B(U8Inn^29g=TLj=gaG`=a$Oh9P#O68Ls=WT9nUD9zzq%)Zyxe)%{u8wVW+cV!>f z4!g&(l}JTJG&wGTXR(-S zYi*mP+@TTmHIw~tKxCY%YTKGvYt#oDSMk|-v(y%wA8ZcrQ}Q~0R-(Ac5RR!;{e8~i zZ#$1knR90Q>{&*SUyS06w#n$h)%jg@?4Qugsq>(iEMVliye4YVY+7u-gTO{8O5FN^ zU9#-_6?QON_7e@lH+@62(6!Vb4ScT|9J8El{s(1m*%en8MQawpgS!<3mteu2 z;BLX)2~reL6fOzw?(XhVxI?hu?gV$&V0oK+`}XL*Jw|`%pK$g$W36@Op7U9*&x;Rk zg<3*IUpVpv6}$_=C&JJDZ(Bbs%93OAwSO^yaLNd5g=Gz|Ceu0Aqo##ve;K2*LhT(! zv{P@p92I$6*W&mxG`+;%`jpYr3-_1Zbv5iB+HPZJugtS$=4sPQ%nseiQEuJK$QQGx z4>gfuH;!R9-~m4z&P7&d81%@kpR=_<+fKE=k6I}Y5H>y69K}bsl?Fy;lw`Q3Vuctb zEN;TQZ0<=JPDl?zWyGo{TF_c>(K81!yD1mLj?dVfzWz?CxCbW?9@l)v0!^Mc)h($( zHUc|S>q~@eE`YQc5ZgqGoLOJryZAfDW?k+^CmxZ~g49&1-unKS?XKp9YqKdcDmdKq z>+M$cBm&WZ-D1gpg^zr0KdlvCB|F`Bdu+%gCl^z`Ak8H2ab%K`5(6a_^$$XM`g!Gl zEj-j@Hd@(x70`gj^p^xC;4VE~ISL*H{xVgQmHOhpr>vx{3*Kgp zoI<`&gskpNC6@rxsa~22^zlzYN=YLSVj$)w>b;z~3CW}1;45yzIx$!PHy*#as9*dMq%ZPMlpvUwv zKJ_jwT*ZGF)0@CWpVf3RjmTMfdiwO1Pu3w=t>t#ew#VM0{PfU}^b2U9yMfTqU!bCR z$;ga05PkqSXJ9;QH#b$f(9|9+6d347)gQ(xfPgcmN*P6PTlRG&`&e~$g4}H}BexX$ zB4tF-;P_aBl{5zz$HG9@P0@MvC#JjsWYvcWry-z)Ov9lSyCiucL+1C^!53~de6}h8 z>NPI-mxDkhgAK^GPz*o&t~>J7x_F)V&93e)!$iA1*J++ATiQ42mq!Xie#QEo#rL$| zbL1(1?6{FWNwqpq$q~_h*mVxF(wdlSkc-@P(`W5HcYJD|125jDWMH(jag+A%?)_?( z`=w`VyRL#}^aFdEMWDD@G29GPo?nCPth{(BH=+1dyYZ-PKH70HTWDHYbfSTBZmEmU zF1(^}I2Nvvq)oXw1il>010?6#kM;wvi1k+~Z=(iVjqQ&a#toiOc}n(D{tI0GbLiC- z@GY5UrOki9(^w$CzLndOXU!+DIj&!Zk6SP@6TA**14YHepA*qO{tuum=wCrF6HNnY zJz|x$PA;)teHov#ws9AKqq9yQ>|wP|Tn>imuQh@|e4`tZ~GWQ=sCEDDT} zJ-#lPVW=mCje;1>j*x^V9u07jafh_rPeR6evcN_8mOH{{*DxJai2NjH@2%UIp<&*gBcj}4*| zk=fQL)pIg^+EB1GV*n3t#H~@~%{PSN0w7MTfYv(h5ck-un&@A|8Tw2u4jVi9t;--A zB0ZY|u{^`wWVY^;$)ab6JMq7B_pDhbY<_w~t}VwlZuI9f$;JBNxWdOuqY|$?!gKM3 z?Pb3u#psrVKh!q}Y1=VeJ^+TA{TtZULcNQ07i}~ zNC&8622XUih_zOK*>ZaFO%fq41oz5zEkn*0BbF^Gdtsx#7UHlA^V1l6cGtQ4J$0v} z)ozWcl2+G-Ip~{Od~c|$!B$^0lj_zqkp z+=sHM1|5`h*c4ORb`jMzh0|2pMSjpf5zXpbKL!1>5Z0(%>Jl3ryJ?8ndSQ!B{m|6A z&{kvXEeBnJ5%Dy9**X1@((HOPj*NTAoV{5wm;;I)oo#^gHm zdnLk1GcO&38~fSMbwi|dWg{D@@f&9R95}3dAm8n1?U%WPo8LB_GzV3+#RvyU;4&uf zaff)yaXLjmA2P2^ws}6cUWbS0rOG1g>i{rweVF6S+URE^=D`|8;0BMG0-*Fbck=Sf z(j>d~5{CfhgIWPyxtdx5yXODUrwk?j%^o;ByU)?+o0xtGxd?COZQ(`4iL{g%QTb6$ z34L^DARy8>?!?K-W-q;v)$mXDh}ofyJe7@QK^v_+{#_2MuJ?*h8cNDLz2J={cMz&e zdZD6ablYcQXmL1%7g+vx7D<8QL6Fh&MS6zk$;yr`q+?MRe)b8e<~8^uAZxo@Aq&h= zgXYYPkuT@y#mkE=5ivqDHD)I-K%&z@uw|3fob7ISNG?!IGv_BjH8y#iM7(1+VHx=p zhedmsWgbJ&R?Mm`AV}w6NcX!%uK$&%VGQ)H>YFgFiap3^O{!p}0+*NJcQ~5Xp$B5M z!H^SXN*68Vrb{+A`TK71sly1`1+Utc$eiL6(Vzz1nk5F4*di^uFb;}saQ@&0oH((9 zpSt#ka9X-?>rXoLMT)BiX#);el%!)d!6po|&xe!*F|yKl1FO7?iuKL)+XWnvwAYdO zVr`3S(CJjRoRzzf?m0gBR1q#OcJ5au3|TiTSoYs4!LLpD)#~E z7k#n5=g68g%BAO0q|4qVPRR#nx11y|HDnsV(+6bQ=T0LqDb3wC?J@1F`GZR;W1bMc zDypOH0Qg`|RLTp4Ru#;z@cIXH;=H*56lebKV1bdpz*hJGwty&V895mdAAuv`+I)be zd5o<9h+W#aR;<3G(qPW1R4fp0DJR}BYd%*~roT9t7lrnm=H!ra537n9{)Js9&&FGN zx})3XI-}u>z3Hn*CJ#<4aK-^{>MLnYdV4q9G1alVJkP(zM!s4Xqwo!lGS&tIKEe?c z+oAd7?*a$_;A-}$zTAk~c~(v&@~XZoE5*A)Ed`Ns`W)irx~*-ssXrWnbnAmNB|eQA zP?>Q6D)-u$XIeaLH>$EWT5HnRF1wUT#TDY(!5Nj95As$(z)4(3&*jiaH8!Hj8xyZd zAH*_52V#{Kl#|LT&1`&u#@KC4@yzeE$4Kwwv~5PmY%{r`iq@mfd$51DU=?n_-_cCI z1mI(WTv2^fS|z6i;oCdo@N3iB2pO~%`D6CG{gDq6GS`T31n`~b~V&%>)=)H0^lP)LjhlG?#aVA>wO+D1}j6HFh67MQ($J*rglL_6n z<}EtEQaTivha^bfc;25*Yvo4esucXl>X2^T09SQwCvl!A73DXTueS#gpkKf{T=zbA zdY={+3mFe}GXvhXP=o_VhIw*to+1lXX4+zX)kImKy?GoGBd3O5+S4*8NV)MyfQbzOKj<0}LDWIVGxPbT)zdsG>rz)li_r=yO_eSsNeo>R6Tjjw0S@1Q5Ic76G5Vb=KdWS+WJx2tj?=c>gZ zjWiIm9DP{Q|BtI5BI=*8Mln@rmHv`G?r2OYYcE23!|?|MOH*1Wkv!Bh2<#OEXKR1q zxl3Ve__Rdn^IGqgy$i89JiOd$l9f_a?o(P*UsSZSHAs=rXoHV=LKX^}2F1#WuI8ghc5*MESY6DmF9vOQyeW;KeNPXAHsN?sIbIIu#3 z!m0`O&BXF5Nrs!{Ce>y^%3s!D8>WqLGIq>niCfV6Q!hkmRZ}w zUxba6`gbfaVw|^I23^dbjARNz2z)#pgL8RTKpvF%Qs)Un*=-3pK=M122qP+JH z@gB+emv>aVn<3VGY-#)FuN6%btIohKJ0Yd;REG6y4cC}wLofXnYb^eg7M2%EZ#^CO z97KD!qLKB*i)@b5HzL>~`llb42O6}#$^>ONugE(BbZ2ST{kX**hFijZh3iF5c?83o zOt>T{n0cTmGIFq--}R1w=zoCPooVJgaX*I(?`Zn(AMYN|)@@6%IxbO~E}>!^bL z;Gse5m$eBwcHD5fVkS0Te1cHTxGD;+tgNiPhdYRE6Nfv7Ejftt#t9P>c|rY^!uNH~ zp`lL2-_7pd;DJ)voP=R)*IjE`EnoJrBQh1TjV|(pLf>A*@EXTxNp?d0Fio6SZ0>RH z$U@JL$kj!c$%y09((YtAwG^N_E;hbYONbLc$)Jl%d+134?&#>h-->1~=iBOT`+C(V zrC%1c^=XM28$ZQn5W}^B3dqc{Z}s^t!c7Pq`qY`=5xP z!P(o4xI+)x^(QB`uDWO8Yh~^>D;O-MtR-;LH%OunkD<_XF1;NVdI7fFXaPpiqa=#K}qs1}jaE{-3mdSe!V%I5B15JGT-!*y8Tt-5Oae)_hEnz2Z7q5pCH@ zsaI%#zJgQLxT&6Vt*dA~5Oed(9bXf2)_gKGzZpIA;JyZPz_T6q-$d$Kj;?NgjOK-R zHX(*U14%#a*s@z>iV#MgL+o5|el5w0&N1>^ty$P7SXI50wr#M&IQE;rNO`Mm@{nhm zD9+cMl1zb6+<8>vy+U1-N|hJbliTRp#;ZaJc4BeZo121xtjq!*YaXxBO$H`GJmk4$ z-X%WYy3Q|Fi5Vd7K7B^h(NP3-oC2hd4qJ#-I3x`eUr?(K+9_I2E!j!ARDaKN8YklL zW)>|^)z#+Hj~Z~Yfs+YXzBuRN=t+>V=J!!q-Tjp_CM@|UtMw{10ZizCEg!b1q4=~y z)4Yd-J4O25)??uQO!zoPSO3}cJqWcp2P=`1Q~5LqQaws$%$}#r?YIX|fb>RPlF4iw zxN~8unmoZJEMTsZJ??ZI#p8M;?oQNHB3eZ-BrEbXLM$mHX}+9}Nn##;5KYp?Db(PM z3ns+Z=q;UH*fxYAU|)snceNxVRc+B}Zxbaatm-gE#28%zF+FliwLOUmN|T#|{Y_`uLHCKim@9MAUFeeVR4%A?`K?BfdaCllb^>&Q86NGGVGQ?& zpjp#L;?F4@ikhCpCP>H#^0{w$HJbZ8RM+wYN!remy?sa)a9YWM5|$VzhXs;L_RCI< z)T)f%$a3At>f>+$C-8=bgkG4&M{mTv5djKH2%uOC5x8-LaTujUlSNbQ|S@>8D77z3r_Q^us-t%ekQVL|- z)RX7q($yEw7jLsK-`h@VRp~bAP7tfzD2hpH(;JNJG{W6j9$Wb5i)pE4aBsfxFx_i; z3~`cL{bc`S-@8;_C*)8;y$ZFY8n6yaV2OJO{Y9#)OFX@13w>k}bU(6)U*!k(f`8S4 zJA@2x^aT?sp`(OK{=fbP53zibvk7~4H)>&5*`VveE(K@%2N$9w+md6|5bbcAZoR)2+|I)E`hcwg43@FJvd&X-84uDpc0au07m(LWWVQ z+~XElX)=4YBMtlIrl8)6lIj??W&?7@Jp#`+h5`}U_)~odT9*KQeBc(n)#9C9swsrF zNqSkYOV(MdgE{-iCjDcqW*LEGS-E>vIUJ=g7s=|sa> zsbfNS3?dlI>tbxeP@bzSDG#rpGT;#`;(WQmIjLd8FWFJB4WB3*v<)D)|C0WD9+3iRei@jFP&b}zmTsKAk=MT=Lfw=%_|SM#ULczMx7MxL zbMbl}t*fMlL3DX}hPEotm5d5w{zc4=7AI!Oh2j+#2IQ%Z$+dmU1_s-Wf{y2~$4Q7PxPR4+PrGfd7a*2g@h`bKw~ zo%ebVh>DR^%@^)SA7-c#_%zoT+l0u~qnuA@^6flWS@Y;jg_i%3O+WD2xfxdoWHQYU z4JnaQ3?YZe?Fva>j+r_^oo*qc^rYU6r`yo`1irS2Rl`Nau1R{{hIPrD5#I2e>5HTK zNiy>&k;|^p=c(D#l-Ow_`V-ggeYfO)|Fvr?4y@S2!XKFd8DoG=k6&7Y(YfoqNIWJ~nQ;hTDlJngmX>hS5ITZu{c2^;T@;R#ueVq`dUqHXB(o!y$p0+K{TY|{T< z1GY4sKu7~Dz$RSzfAE5csC!_QVhV|iMz)m+*hQ>kcDQg4*C#k@TW;_olM;0vQ>g+M z@rfP8JXtz9(ti|)PmgM5TcxQe6WuNNhZwzPEdJa#O>f#_A*goFr(r}hrKyAoLz1= z+!#%_Mw;!6fOy)?RHqwXUQab>rQR*7PS;_-*x`uI>%BRhSp&uDdO*& zp=>3_`UU2=5N(1cI5EdGe>ROGRaj_30CN zQCFQ&ax8K@g8jt}$WnejqXreC3U>|ZHvnVe2)~YSl(P&Hho&m6GGe?CD2#4tX|5QH zD=>1yl(AX;;Cw7PYd1%%%JUlqGg4UE0sZrLu=@ca1+c* z+VPiaow{3Dbf2z%fTk$zZkNjn4Xk;HjKt|?w4K*^b)=FP(QD+mCv7=8y7wcYeB->6 zbYy{}zlW-qwUM0>AH`{D`uwb}`OR#>x(|bAncJjrUT$;Nj9i@x ztBaE$L}>JoU;(CIqXV;CX*0Ftj1Q3EM(Vzj9rp@Mf@Y|ccXn-> zMrI#m(L01orIKKK!L$xrU_EgZCjKp)DdZTtzng#I=47rD-$^}~h>^EPT)`I7+^PQH z8fk0zz+sQkk`u}vgw3EER647K9lUpwpfhtvC~Uqb}~L0<4V0-yXR z^h8j4|NN9bH)FksunlC|XPQXxSC6kNLsjvsZsQ;6yF4@!Vaq$ox34+qVev%Y<=^+1 zMuO}9`Bin$o;SPmv&woUk5@w0fS$fMw^YghWvXifA8(hNGFPweDi?$2`HB~+EnOVp>+nlV>0J51xCb?COk>XQqq zTXPU?prxA_fP$tV`tK>*{Tuu=43_*gX#EmTa_RCdQm5sVYXJW05;|>_(TrbDlR^yF zMJ;^Cw1t<}_NY?jj#^Rk(SzJpj2+moPEFYlopEbEm1!=wWwb?f4fSgUL~_MQdPX47 zw<2pg=~qx8H{IV;1j*2OC`NnJH28MkVj@7@Z&%+-h6~56lAn zwW}!@wr3Hi+O?H(!(TV-&dsx>RP#$1Zi^Z!>hNN@L-ZtN8J;3tf%FYsQ;DUFp$gY_ zd_c12PJuOtfv%>U3ikY!6BCH}n}ARZRL_Ve2R!I`WiWbl%TimsNI*vg|GK-P>iE3B z`s|C=A~tvZI&Eej69rLNnE)AAYOg)mK7GSI`Tyb3+g~bmsDUw5kxR^67Z??9SXC^~ zm16`Afs@5zvzXg&@VTP!lO7Km?0CMlJYg_+(rh7GAN&9=N!vS=qI*9+J+m^*op(5P zjD{7PDcAn8&kD-<<+e+^cbmYqu4V3z{HODWu7PU&U+fg7!+ zdZT}@MB&u9Z@Nc--v4q5Qf8PXBq6+A;_k^Lp>T>ZGJp_r1}dXE=Nc?g&z+{Dy9`g= zPi3@TPd?GRcWM{wdad4{K5cln9Z&FCbo1{V@UVJg-^s3O3%gx?QOAPBQmWGYhGjqF zt+xhDhCUuIO+9E>Ei7Oe=lln#7>jgS=5(k+;9nCCNCou$g*)t>WF9F^UkeNc5?Byl zxqXt_99)47OBE7~Mv3MH6w#o8__vL9k>U6EH}im2NT`iZul+F?O^5F`li8=o1u@s= z3)Zxm2zkY0eVspXUviwCzvgRmsl4yldGFUfReJyrp^V(bJq^4F%O|>Hd?t@fi&Ur`aHz&P4Tqq9O4H<& z7*PzYEl$Ni8I0v8a`H{N$!|2}{ubX!m1yp(q}|X7d1Hs0Y~$s|>wJp$*+@r~2K;41 zsvGal$JuM*D=A7msRWs&n z2py6DuU+l?=A;_@V#W(dDWqc)05p@0dZ_I7QFei}pDnw|0zVDhk{IJ0B==kNyMpYS zOE;LAA@XEd`Z1aXzI!)vhcU<=;9s{V zorI^L*Yw?$Qg2s0y>OF&{Hcz6V>pSFVVhz6>a4}$lO}M__uOP0w*M)c?8ZKX-CK(v zQB*&R-#x0V^Nd$}&WFM}g%X8GV$DMxV;!Qli~;z-jNw=lxxS)6=0##{Bw>KWuH3UVyJQdjXjb`hsul?vOOnv zDiKC)b5pI2*P$eOjpRh#ikLCAzl7(A_CF04DO-ENGxx?3z6Bkh@YeB;8&R}sxMcq$x`(T0we z;BR9(|2Mf+LTDUZH}M*Cr18~^)Jl6DDttd`3l7Y@DtfTG<)eJ@mn9>X88>>^3#noi zFWFiHH?6XshvH;NJnq4BL>7!w%}_DHz@{-yL0(N)2tOCy_H5DaMOB7o9tXuVeY-Zf z1{t*8djR)n!fhY*Xgxfb@uA(K@z+I^ILy$&d;ORO0LBu=1)@^QjP&}%K!cK~AyAU% zuSA7h_dy^>LpH&Jl~SwbTQf7RCH)e`wTR;CvNt>!Musz z>u0&XwPx0D5CUdNLPWMN|CwSHEVjy^DH=Ww_vh$s#V7J)?}2$Ac!OeXFt3IV`8i@3 zzyjM7dpL0to8@;M$}Vfhr{v_|6Rk>JgENS3s#W)j=I;Wd>6=}AUw3hdK-F3=((9y9 zef2MD$?Y*FAX~aKTk{Yblh;KUtd&rWb=??XA0RghN*i{Ju0fFRal-By;hC|ciILg( z8jDtC+Ma`g#3d=zTdIK-7BpaayjVB?%&h53IA?2nN)hjc=I;6a#Z~J*UWxf~?9}l9=Y*Lz)MayNg6e5M!?`s`VB>oMOh6SMM4h8VW$!v^=$ns2@ z(p3@eCW^&P%OCM!uL-BZxjC6B*}>FH8$g(=O;RPZ%Kuj_MAbp6N^Szlu%Ox-Sm3lpxsW7W=d}&p`<+6W<9z2 zRwx0u8K;#a8zQ>f_#a?M2=UszkxLQiznxeg1tDL{0g`c3-8it*6^}cyMPG;FVfHsY zMB$2}bdO?R0^$BaH%B%cS=q0CJtFbsMW838*56B=gOYMmrRJKwqh9V~%M^ZoV{LA? zU=lQ~hgUbZuywt!-oIeNndgP|8`CYVeboQpbl5*u`8`sNM_<0sMXl>s+xwokjER9z z@`5Zlr}!E&$+Ux&=DCM5l2V_>-~EdYm{1BO)4I4Dii7$!eaYaq`c|FrYDyS&^YH_W zuqn5wePvceyQ8P9gOoMV>uk*fW(_eM7=MxHyiCdHqjIoxRR%(=e=wRQn;w z06xo*97vfi?n#xsW`brsKB-ahbO+`r;bRLNT3{ zC>G-kGU4CxSqOK-vO}-Nq2%CJCrm*qMD4{^l8eUdhk!-}blLOsRWl`RC~m1pQ8lAv zm$IQg+s2$7d7ecs3t36xH<|}QZGmxHtmvuauC4fgM4aEcI_qb#iwoxjb@&Bkn%`|5 zJXUQ~HF@kdw8&bEiwQT2?MB~c+jmuLygwPO?7n0wUhW zkaug~9W1+UO0MHy1`B!Q+4JTo4x;m?zU^o@UCL)ON7a^m{Hezp%Z?tE)BH{Yd?XciQyL&6{@qWclrO6uX(9ryhwvM6>U1 z`Z$}5Y?D(iGBWE))1dH0K2{ZIN|bVrPGWkM zX6}vq`&9W|N{;^SX*8cr$51@U29Jxz;p_7-kD^ksv`Nrm=nj*deB2e)(yG$J>rYc6 z4DQfQ%lxUY<5oYp>yRAcxRD;KS1sJuD9}E9@h-7hJo+(J`5z!ky1`~3T?H(VA`a!+ z0i*;NMESdkeGb*1--%c(C}!MCaF%~unpPEVFEXnW+gZ)lmTWW zgI6x4G4nd+bHZ%F-@E8axZ6uh)Rk+M)-)WO>-1A@4KiX9BtE`=#qr>0)*pfA$M(d8 zQ0kPXE>6u?Y(-E1THd_50U!=l|H4$6UR>Ebw;}3U=hnDFE{dbix!FfdNfF1lV7lyX+U5Wldi}W%Cd?_l~=Y(c8xtd?`eBw zm1|Yx&XBzyLEPvk4^rujsymVsh~8;bHRIeFnpNL2IyXRakhM7}=~6|b2^ryo3ck0c z!(|Mj#8ccaLWr#T^wBa`f0iY_5W$@KP**mY^cPS*+z z3CZZDew^O$*OdcswxEzrE?FL#vrYC~#R}tQam#8tHY*izZ+R&juVQ_5 zNSLz4m^M+iID+)<4R9@YjeWZWGG#zgT3nH_xd$@o>(Pnd-z@^Mq&39luh*D9u5+Rg zzb_{AVA$5@^No8{c`2=SY0RL#7dA;z`B)vr`hBI7a%be88+o`Eka069m8tn)-1=cP zJv51(VnmhyL0y0$aQUTUZzwvVVz}H_BO5m;caTwnU(p z(PD!JhJBKh&Y>2aTPg8-4H=F>=t_(-X4B|4BRy$y2}6u+gm2j7)*{iOb_q?`J_1FF z-4%>X8xwtk(%w7qn!VuLe|s`TEqpjX&U2y8+YC@hf<(D1g!esec{(!>iPOkM2mWhD zt>sGm(K5eM7ZmaZZ?tdp8H)u1qiC8&IdRom1RwvMJA>*;g5=Hq0Kh(>NbVPhz`ZM3 z;m5x6c588p^Ml~S>A-27bm9VWLL2@1RYz2iXGWgOj@Yj`kj1_4yzrGF~tI=_im-tNbV`?bF9YB@>~^IiGu)^3nW%#$U^g zi95E=pYWAkgcEgQQ^}DNfb}EoHFyyn34T=6>6T z3M~pP9_5C`vQ$E8uDYM~F~4}Kd_e)=I;kM4t&pQTTCxxRRk3&ZyFw0{zNbHwS%qdP zFS3_6OnY{2;q6p>Ld^KMFZmwhxZdYK$zs;W3ynxV$93B!;h*I1-Hj+wcV%~s@T-sP zc*^WJwm@3I`LzWf`QwTZKAQAUfB~MrvM`45!An%}TF}f)pA?)_CP#%)1VFA5*b{!8 z8s@os{$NyUE84|euDvWwM$!5D=JTdKeDpsj>|ff|EoXB#1$6WOE4wK@{#98B-1s)_ zwP>+&y{Ux$$&FI>(}rQSroCl|j^iIvO;_& zW6HI&S37YJPwkYDS?u$N67(XE*ssBY+a$yNZ8r_F-Oryl$!84pL8Tk43E$YR32-$v zmi<5$F6U5ZZTH8fZKjuRwho~^c80{O5DGyx2~C`}Jv+#;x!Jo4C9@&swxjj6q#Zmr z>NQcRd|_BZCHI+pfipe~!T3Q~zYzJ%|Uive$UjDv8>&uS*&hH9N zE#+kx^)MpBAU}n+ufAd<@C%Ly31mSj0~H*Faa9-JCM@IUiISMC?WmjueB*;z+$uUs zwYU4DX+!qi%!=rem{M2e<<(`>K?c--WOq06{(DmJiKZ1=75Ml9C^BfBLf;73mp-%U zH9-hF7hd~F!%Tuyi6hY8s|99u?IK&f^3pJM{BdCgeBBrP+1;He#;o!u_dqA|yNijX z_Al+h|NYhdKhn4VU$_V9aYv<7aJXok;DJ&bE{>pu6Ygq)oTNN9O@Px^P;3}Y%>C%1 zEc$zi&PqU@{sEdr0lYjuSJSnPM0APK68S46sKa|VW+fzuUAB7qcoJ9B6=ghL9<^NL z$=^I)#4a%l@5`Al-p$gLZ8Fei21 zc3M6=j&$_22U@`rhmepNC_G1N?CU2VFOTO&ymCDmM)WIWL_38sb7N$@rl0iS44+L( zyHJvL*hnM(-1V{gN+HDM{zUM9+&Z*@?*=)|amuW%L-#Fird0D!6}fY5Dl97MNB(t> z-i!yT9Xm=R+pFlCyQIFJQ5LtTPs_rPKO!(>Z<@X$`3%O{+)a0OO|spL9#UAB_$F(R zy z76;EF{gxv~Cb^;S`YQQ*rOYRO7~-coHzxXQChj#?1Um>kS-4fbo0Xnk)|WE^42Cvcd=)|9yYeIuvZ zsb!yD@cmq%JNv66yIW=43gyc)efq3!Y*(gowXJ8$o7rFo7vpk)uoQn%seqb*inGvd z90(YLVI@?4oPhX`qz3CO)WQBA$<}Md71RftL*B&()j+~U21TQ+UjmEL+OP3~A34j{ zfj=|9y=lE7u`_mUE9_*Ga=Mt4sA3x#7;x;z7fh-8FBI< zs6i0M`mSkUyr$Pri@SYebI?R{ShvX6pQ#BCgQprs;0tCADQ6I!`23{TH;pqZNly|6 z4{aok_<*cf$QTR9FSn+ZV;_p-pENi9k-H!t*3rkKFXKC$a6B>D&5pHSg-D~2%*OLU?(4!WEnco7Dvtwk^3felX7LZXm z^-VRB+g|>c%44Cgg5P&HY6-_}x<{(Zsv{j&O82D{%fjB(jMnhC{8Z6o178-wW5U;s z`z~(}L5Gdfny7IN?G7bb);NU6eX63rlhsOe_CXB4Br+4O88?Hh^J``vK;HBMFO!dI zitFYWT^;D(nc0`856LeOYn&XG&tM4#7-F+y#qW6qk+W-V4wB;g&_hIzI{ZSTj_yes#bWfXjdMLPdU*c8RAN1OMv}=+g3*nN5bZ%GRU5 z3lhMl#BV0Vk1a%%jrS0DM}F$#DWpXv7Z-h)*JbAah*PEK-#*=bWbK zyw)`2Y>}$i=aFKLWZrD~o?lCn9iTc)>16tBDHL`$L6JcpFnq~o!{3}Dcog~p#SN~y zrU1Bv3nV8#!Yg&y;uGp;+=gAEy2cV7#Nx^5t5ASgm_>N+mXri-k8#RfbR=B%PZf{3 zKuvf^mQR>oziFkSzc3H@Ag_WAmQDPgv-Azczpb1#ERen-uej2q4k+$GMyPuEKg>1t z_f@j4&x#|=u=095%fsF((e;O5gey?g)ibN=_~PRJoB=T9=J1>!E$rKPo9%bvINY1V zd~vu?12i*Rs_~BZM^H%cVJ&0Q*K{XfgsXc3#?EyM6i~MEC!pzzVJz!1t*uc)F5w3< zrb$VW-VUubxAW1n4TV!@o-Vc&#H$&Za7bUJ-o#_RYispF0YY^fy5})sPdyRY(chdL`@y~VnWTZv2${@%o&vmmq)|9=4~*S z3v2U&K)F4)9@n1mQjJnHhY}0Z<)UIdqVcS}SrKm)n8(^&zSN;?g4qprxrvtZHb2`> zvMD9y5MNyaj_in$MGozb$$z5GZg1|^&7_gpfw#m!Ak+XFz_`;kAKJAY*dP|YY!z@J z$G*o&A~bN-$VE+-}HYMv8dUUu(T$Sy#uUZEealS=pM=A+m9 znga~Ctuq<7m;iCc_|k41UR--+Zc zc&BIAu2TFA4KHtT4*}D?7RxIL#ZzloYdt1BEt=03-m~Q9$$TbLjj=^{n|br3#kWp% zt*>dyV~VJrbEnmvYpi+0{YihCpLr2FwT9*$918F@`9H|5l9^`Lh%$hM$QI9=AL{cr zsYm%xO$8-!BA@&hKefKiGQwb6GXPk0k-;PK8oDbq1vOs3Wwc#z9OY4$-H=N7CSvv$ zTz$|BS657@;3gDZ>ICohF+$CKeyBcysDaY(fS;$=JRHMa9|5VAe}=z~b=mOy>2C5Y zC&2h->-y=+>i}pgWk`%E$j+@sJB&4ul|A~)+hHiq#IfOJr?4k{Yh`1l zuqxURvyKiIAJ}(DFivlz8IwrKTRHNP?bx~&A?xlx0B6v4{TVB_jAN9x&xYwvZ$Kiu_e?q4XNN*RhW3<9^{&nfIRSOv!+J{7t;8twEWEa7sr0zT0%N2GZ2yrCcj7y>_TNDU}a+7P3-HP^r)b< z)R$~vh608Sr}_L4|M6J+6%CZRs94UgARS~P^&wN}*52HIqD(uFFU(8gAZPUW5JzxM zMY)CT0Web#7@@TIU39!|(AM87{Jcyv1y9fdzo4MIfn7p@IJ3pQ5g;7xzc>}N5lq>k zzvL2JH|)WJa0dOM7=y`MicA^zq4Tv>R5zq;mfuetKn9M0|Abbk$>CG66TTYmJ#2Mx zoS68uDXk;xbF-q!N(~o6;$_LJrbGFnr@iTZ+q!rC2k?&@T44XS%PH)~CuS^2x*NNo z`R_t!?U~4@mcGG@g3HDCgF`kCdUJUkc#u=;`KIAW!2m2r)<3hp2guKQ{Hx6*%-TZA z>ofHf%MaYrnwhls^MTmVrP#O@U?L-22~ZDGlve0aY_^a{4OsvwtEql9)?4C=*3s_a zayom*c=nZ@S3tSipYQLv8GS-9ydsLJ<;sB31yvcZAuKDEx6}#Jn-|w=p+0)w*l_d> zJ=y83UzRIx6Du#H>_}O{f()BHw-Rz7lA@ zP!qyCq9j}PDHIuB1rkY==%S57m-gF^#^2A_G$mWxtu^~MfJyIm6mazgNtTw>EJpUr z%uA`iiJ-tv>pk@XTy5f$f7>W&;L`gHvMcveYbue11+MW$L?43 z-HY1tne1uqnNJjs@6$8m|5k0@fi98h-RW*)1#gs1Ntf_0%5}V1 zKTlD%{&`lBhDp_2v*LuL_-QBDfy^n|Sn{P2$`XzJB~pT^XWa&wSY;W0sm}vyK`5$P zP>+bYIK7A$CWwO{VA!rIJ0Mxv!&BuM#7E@wrD0a~^Kh~^+GCHo@VP3VKPcG2P12E7 zr3eUrs3V6)9*oqPPys^hJ2$9VZuSWH5>wEiifHn=I%wpIUt8h43RY`${IEK&ipc(p z5}?{$nIq__9{iGNC)lbq1XfT%9;#PZAhEmZl!lbdx(gC?{Lx!OYcZ-tV8GPF{=M$B z6(if=yHF*yv{lPMW)mEKiI^^mH%hTQEb2;}Z^lr;lLjl`VgfW5CpCMUK2%L&hA3wf z5bCRsN(ed4r^tPVKh-`s4h#+`SV3`9XEx4@c9V=#|F$zktTx1DEK0`f#Z2LrJz4_A zF@#wE7-XP@)9Z_qmoh^L+IA={jG4{< z-&Tl-qLZHDpN0PcB=0qi@D|we3I@G0;fQ#tYt}g4u2XiS>CEh5Fz4nhGH9y>t!aP{ z8+W_3hBSORXpoaR+aIf>tiqf2hgw?H?;l$|Lv)Tlb(# zH|ivWc)2*L{@?Zc%%y zxl{F@xi0;M#RH=0vGJ~$ss@wq_pqd{G(}D(Ug?X}VXTpdMR_Tq`bMd6tc`q2Ox!xr zl68H~*KJsJ`L7%QYma0;bv+m!s8z^U-%d5+x%!i76WptY6H4d6$|#g~)J>B-pLLc_$nDo$Pe$TYEkd^a6V7?Q$>ms<2^)5 zG@2e7*~+E0o=tbcVE*)cvm6V+SRa^NKQ0HuuL6y%KKK6v^o+iqiHrI5RbMfj9GiBH zQx=CVOjqzYsXqh(1lT58%Kp8z!I-XimeER-v9f$l?-|~{x@@>S%&lgBJJ=}W8R40F zoy@+(y&6{S69F;lyZsE@`3I2L!Ki6|o_<=?8p{i-l-lh-TB9>CnmsqrOv_*?wNP(% zS|poqBc^D>9l_xPsNCY*f-)w6!>&s5FW;wBy{foAcziZUlCiVj2=+?8!PDR;HC<)- zENLCr#<9r_>|?=dVa!`IaAsNIJbF&PzI3&Ib#*p-ez~#6@swcpY2ax16PXy3J?OWz zRm8iLPxv1K?)EE^@d1KYcMEN-e=4`aH{UGms;G|!;Lu*=tY!lwABI=C--Pz%; z!YH8e6+`2RZ~jxL+!D8=kd>W5G}lt|b7ru35eQS35uCFYbQ{3 zJA493p%&0#(Uj5)^B~jxJKZh{1TqF+v(k}QGETMp_`)@=2%#r#QTEl+9lddzFjaTE zmy3c6iCKwzgwCT;f(;I#uF~J~l@>BQDP*q=ep^cKDe0oiJg9;nVU?P8yVkfm z8#ng`|N14AsvgkkKuahdAwrRdoyZEr8#Q)Pg_yNnfXdSh%6V5-hem$+D45?Nsde=h zMXL8}f)qSYuI0@ujR;eAUF= zeQJgAz4_M6zJdacF}BdA20q-_1%|)^Easg0958JCee!CD5YPKWmgqEfD8%0pFElk` zLkOzAAvKAY1gLno^{+(87vdO6OV*6%+bQTzI{Lky;Yv-T$9-=_3Oj%Pq&It81XeTU zV+(lWuG9FbKtiEqLp;dC$%U` zS1;!AZ_&7TurecE^D=c?Mu4RSU7cvZ<+IHq-Xq0>b^Ee(rjKQ|^KeP()9&OqvY2fD zQyDU`&Ss;{x2o#)bQ6B@WQE)ff25Wl*Me&mmWvR&D1kO1u6z!$(-?&mwPNGEg#J*| zDIA~8{`pDTPW#ZR;xLQ_fRpsgCMBE~_ZaE2eu18^gkM!!dexE>7BTkN(EN z_zOKpr@&*ipUEmKji|nMC@_yn2Mdvc`v5bMxCt25SWR2J^_wl_aTIAa{?Hx9lv0zYA0}5Q0~G_`JjKNS?mF)`MjW% z1_(B5&t)6HLCp;be%V6KeMC^Eie9m6Rx~YRu5Mw%6K^EyWama?*D(+%?dR)s~!`br-^ZUnhSSAWLpl&k9p$>#(&dn>(UXC9*-k zm*kD{9<8fn{$5E0g)3lS?S}sH@LR;5bCO6G$)MFoz^0A>df5O+<~f(}iHiS=TQi@&9&WVwxQ15gS`PLiPB+#8VgCcX`Pyc( zgWv$5#9lphZsfiwh2_o0OTBqb5B-=%30Tft8ZAf2l#m}8a*tHe&-?7pvON~OX68;n zy#vav$|o&@&{kEXF0m(>EFtmrm_+1OMCKQhXxlz8(3R-UMfA(Z(A@Zy-AopdLUF^X zZ3*V8nUN<#(Bwo!%Pcm6J`H-h{8&;AO_+wexW$4WW{BvZ zhrRyA@3~h|!c(*?LjEkJ_tO-zMUPG|Tu;ed^~}`t|H`WH2>P)8 zhl>O$4)6Ov4>~p1`=Mp8K=1WnFIkz@4WE~_H_B+0e@g@KNdn6Sn(DfKw45^;(9{Kd zPDfu?`+3WWm)^S_ZeIln;rmSK$Am{OO9p+b-dvkrzp6RMn#|Fv)hI?KudKR~C#{0E z1{14+4rG4t>XCMd{vMwr$%NM*ThIYUt8qWS@C{u5v=v1eo*Nl8==9c3Xe%>_Xp`Y( zmWu9!m=UlKr&s%A_e$6-i$B55XG$v_;MG3i5@Cny zJtK0HTaTH5xLyrcKO(Us@q{&T*d-TJz(;`M=jCwX+|tAJ=&;sUHn%X}a?_4&{2NCj zmTLdbb8(D~2FgWp5^bjLK!KDL)>2Np5G^Vlw6(8bAnOjog*R&A^b*6!Z0qs^bdFfb zYy2DbU|L`(YA?O&^(2|=@Pq6FdFnRsWfh5utMYuofWMlWeq{<9izK5%Et*8g=vC42 z8_D5d;txcZ8y1TLo1ka|ipVow-^fvhaKyVV99BbcMQracGq0EcfvyPFise9L`ZKrl z^G*mE3N;&-5oUX$V+&{<6b;z1A|JV@q0<=^2D9qLpQlG|due)PdYhoh5QdelTF=4< zDf3Htd6Qnk6TWSc)PTjPAHQ3C{)PWEB7BEx%4fZbrL*HN#UFbfSW6yp8hgrnF8*+N zx$|I0;t1*70qy>X;a?>FEcr5z@|mneGPI=!YwTQdF#;a>i?^e--05Xqf^6Robmq%d zR@AknHa$MFQ zDKPpNy*y62OzwPPMzP+Y_47*_GIQvE=y*z*XQbsb6U)TAs(E9?f35|eS%wrR{P`wY zorKm%6u?W{-S{H|90*#{&-Xap%b_T&(HPE+DKvVSKuiwLKU#^{ZZ#yhMew)KUS#4L zxh%-u3GK>N0c^yaz{yK6^iG13*2@a`NzX4F7KJP&t~pWr)m=;g9Qzo<=r)``zrt40 zx!y&!9_%5UOe{OhD30Y4R8axdZ$I5`Vdb;U>QrJstDxK3w$~JijOD-|G^f#pY1a!P z^rb=vtyVwV6()Q$r{pK(B!sZb;3hcgc^hzMQk}!G9Bg!8$o7MdpTjJo=u@CzktqIFLUPsznuR^#KNae7yFn0Fj$~Iu?5A?2zH&aWJkON% zU@MnG)Jmsyss7N6XGKb3EYDQ|h!kypwuY zjr7^oXYRt^Z?Zj`)s=3QRLScgPeOl6qrCrP>ieGuuk>^B#B*ly=ix-!{E&bF17U6q zy(_-!o?X4%)vz0nCs<+({>Q^Ax}ApI$uti~bG+$?shQ!7Na1!;@2Ozlib34b{1>79tmYQK>c7Re??RML5(&Pk9EXlq_@digm$TGhbfdw1=OAG3;Qnxsm- zq)POLTAA_{?wm*{+47S)d5cPP8_Np6aS(j7{)A%YkWMERI#4ERJ0=CVcdzhz?RcJf z&-3Q>q(6x17S-ukZZ z;OT?a=m#qG7Sc;DEcYJyj`q(xlL_0?^P3FT`Pfgp{qgN}2m^3~Go zmE%Q9zLNo0Fs_qJ7oaU?%!8HwPiz4UdlehG(h=ZSygk@C^S|!lU%ZtIjJW*S3dMHS z_lte~gZbMQSyOAZdqQ@EXJRb=v#H#g*b^OxRgb$?bpt@2H=1MV(3+4Y)kVHF-Nog9E!MSF+g{&IM73#@Lr z_Yr8--FDCUcIuWm=x_JE+Ktl9(fINUq=?(9Q5*iz1;MnDe3cM{2-lBOZz6>M1tnY~ z)<<$v1Vjd7upSXl(|r$Ioz&t1WvZ{Yt15(ix!KX97^$Su!_Ch0$1|IE2}gwz+-dc^DI5(-W-1qS^+{FIQv?Nq`e zAQ<477bJC!(|khSMsY^h_!*DL#-`tw4e#+YdpEAyN1`AFIqLUYPqolM#?KS;FHi|* zPm^qUMq9$*tdyq4931ZUtp2f#9|HrQuFU9$R6pYtIXU`rAA6S(rtkYN3`Z8`l&{7H ze!ZC_7uc8u4`W6PpZzu(Lki&43t;aFs(4`$z$G{o=KlTJ2Ur#|6KKv=Yy*{Z*71!a zpu`xz%~f>=qWP_b1rRPxZvHtEG~LtO3?`l3JsaCEwPu;BTHMErlbAJQiS5%D$}@hJ zPax3_viTK;Wt+YDmX^vAA3w{C8M##LvaI;;r7EA=2kl4MYfv#mMwffU0nu#0nZD_l z@z4*iHG9N9D*S*|ywqXS5^4EEafc(O_H1%fWUmg2{GMV^>fn!;KJDtWkks1Ji&w)- zTh+0;r$e@N$l~F?=^Q|TR^ij4h5t^K#)Kt=C#5$Pk5q6-q^>y25P^MgankgQtI1cd zIw`I6n{$QG2}2ZDk8&&M!$SHmze#E*54MEJbKeR-P15kB&~SLpO7UMaz6s131*Dpx z+*Bd-k|~S`bAfO^1|%Kk*P-0;nZI9S80pC7yU7K=)`s6nUpSTE`6CFt# z%N}(V<2xbm`qJ924`rt%R?B|eRg*W&&o7GGHJCZE;G8>kKO zyaCYB&@wFWR}n1D;Pz+;Ht|0f9rJj7>TH^ayk;A0oH3o6Q6aG5aV#F*AVB*azGxa# zVp=ZJG#kdBLM1*{r5c--KVoy6Iy=4Qf^`23rEZbsN~O>d%f4jSsqqb{2}w1}R8L=s zYv##taTb}kQj(fym4M6LoO~2#cp0CF2yV@c4X{CVS zo>p4CUvEmTk`vC6p*FJ4DCUinzqUd}>+`jN^%(Mqv(~P%D(7>-;d4gyQaPj_ z&z!do3G3NiBbwF{SSZ>`Tg>w(J-OIK>34w56kAhiFrr3yG8|S*CV-h7Iew={Hxx!$&u}A?!;dP%d-LzgQ|8&S4sNsW*(qKZB+n04`O7P@) zv4=bUagMS}&o?o6&d9`<`%^ybIK!<9p-+;K9M%NOCrK`1BJEY7k5Divb*<5U$e^_a zM={6J8uv}dx;+?AYuNgMWzixG!{v&OyCl3af$)))0aG;D1_uBNOcglFTB!7cLVL;v zMO8Q19K$Rbn@SZyMa623c0!jlBmnRw{rK8{a=2K0U2$ZV)D|BQrg^-Kj*BJX)TmM% z?kW*Qs}QK4qJC&tNcUZd9o>%3T^aii*OEip+pT+ZQHka(JZ9nyN{r&2(eAj8^(|s2+$+h3&;`-OoYS2e(TK@3lsKCc8=20i- z&34l1zClX*m)I;1r3p1D^XAAE99@wUqgt3g4h!p|xH9%_gA*ZvV^Gpof)EZP=oD+T zZHs^N3sAY2YKoHm-dAmn(e7Z=_1hu9`md9RufP9#Ya3GU^z{Wm8?y{z8FL(6<&*N? z!y85TqXw83pP~L}1+v4XH*Gth_#PJ*mNS)ZLVcX#sW0Jwm5nwrN5aZOPeAx98+c=NXAN*xyTR#HA_#0&6;2UfMi=e19D}hLa;PI zcUikxLa%c>Z^-;Q@tCSk{60kym6kJfD|}w{r4$^J zcMss;hIu5djO;;u!WOb`Bn@ASk*SnlA6fa7p_z}b&cE+vy2>P1)P8t~5j?v2xzm#2 z0U1`W2BvVj*`Zf%N)6Ncv*TQ;vY-KfE?Z8??VuU#W+H0TUq!Kq$+9?H(e!IQySDU+ zj?;7oleMU8W|2Szvpf>|hGXcRP`GKMCg$Q1VJdw)J4rXbB0A(Fs#ssSzPTh?+T}?; zdr?;ln$?7cfF!MS{3Pl?p@xReD~mH}GKMBzlw>Gw{XC&}>RO-=wl;V{#=EmBuj4KWBu*jZdty*lZiP%_ky z73E-$M~V+kCN+_H-rZ3J(=|=Cqo{YS-nEE@?R*p%Z|+B zbG^M>09_w>p>Ah{;Xp{{Hd-}MXtpo?rL=CK%95#=2Pd zqTAh&CuZv$#C+eWa~6tC0<%oKP6~Sil%#v%ZQRQ#{1Y|hg<2xLQ!u|(CG$=KB2w2~ zS#FexbSWttAb|0HYJi@iZDF$yk=wE_+l@7?N9^YZ6(BG$pxtIq1kq_%tJMEm71Oq< zW+5fk{ic10+Z<7dp8!HbhSxxc-O39ru9lZpe>VY+Hl}V9FdX zACxYSZ?AVJ5FbkS(;)#$i-Bv|BbY@sq1+blB9`Md7i4~58APeiEGC|&GtLJpcSC(ZS8xGn){FS{+Jo0VA@&9ntyPt~- z`xgs;H@k4>J!bR&1I*per@nU;Y5Fl`O3}VX=#KkFwUpaQ{D8wvN(vT{Ab4*SzbP*d zXtH0seyo0>`^W2yz?Oa6BzJ1al`DOxkIzcz`TGHzha9|a$v|U{{~{s(VMX;rWt_2o z+oAzJO7d6nq6UBqmtyEJZfn{r`fa_(IRo@>+~jsJOT#)Q)Z}?$lXE#k?BNg7)W{St zD7_8H?L_We&2+g#+JI%h+KD6d@EsQl$69m*v&pJ8FpLHbSXOH5*x&W@oH1ImpQ-0mO>F%Qqd^{9Zi2SpqLN7cXB`-L=7H7V}0*k;e$|`hCtD8dt!5 zljL@`WwH=gqk;?eVneB6_CFgR&j(VP^1Su^%~+75Xkq97+J64u(5zY(WoWs^m z+9+Oplu3ag@#d&Kt-}QK$7NEuks>TZh&| zd)O0&x{mqNST!-OEP&T!!*%EGSjkg4r#d&wftx#= zdc3Uo+rEPi#PH)xgsD(IJ)}0xG|pSq8zf`Go7g9IOyKrrM0IH`zuStZREftmxbLIZ zyqq`vXJe-^@*d;WN`@kbHt|xA9W1ze+7ym9hg!Yfajwc`nT(bM)iUFqrWj(U8k~u^ zgNT4QQw~JU2GpH-d;2a(QiL|tEOdqhu3Hppv9O8Jy2XbjwBI%dDH*)yLx`SM<)}=ZO zDJ6egZeCfU?$Ny_Qmo71cfeb%2q_d zNq}j*c)OjQ|D}HV|L=`6ue+W}+dzI&W9drqJmr-|i6Ivq4ri4Opw?4*iq=d#r7CC# zX&ts6mz&3=WYXF2&91g2_ZQ7fW%N;B6{mOdGbs|WWI1KXj7S;3%d3J~zByKRuzGaE z4PlPK0(+HNLdnYKMxe6hooEP%!TcdX!Wz+Sq|EYV!QvU#& zQs9s{LAxBW;f<1Ie=aV7Cv*afWs<(0Nct~Vs`EP-N$*ED>Ce)a7^GN-CN0v>&m^~A zM;{={SEV_s5DsoffGP_+%;UtLF>xo)cg?Bo(4BGEI@fX z_F@kdtR*$*WW(ng^z`?;`7lg0;OO~*&VaUoX6|IbbM=sl;Qlk#J6!<*322@_HOq)m ziKNHbddWamMEKdoFl-EG`68;DaE$+AHaHYq98B$Ia&B@y(jv18_$oonUGEw zn@VPKZ1dizl6q5axb*JqRwIrRUwXy&eac~dmcBo&M=~nreBsl~H=^ycDnbcK125o1 zz@Jp#6*!(h!?R2|*pp?SIn5a3hkf_D+2i&jIS-&~*H+EcCgQQ4%#*0zf8~ryMtWYM zbrsa}vAk$^HR)`eUCodNd4M4th6073tf8^~!B#}w`65Hyu%Mu4-CK|3qGDsHD}}st zY40tJP~~LTP;p8rH}LtXXJ7~>_h(`EgG`#%+e&Hi79Ok_P3ZC+mJH46N@b};64(yO zj_W5I{PzGy3HaE=h&(M0dLJKSkREeCeWmh7#qK_bkJ{^yX6)*sl4{T8Nch4^JR6sX z4IsHOr4^Y``>6~x%DQ2Y$X~CrAa!ERii&9Ek7GO%n_#YT+?`+r@FdCEEgmi}Kbm-Z z;=O2^cnRkbBJtc>h!=xqPS1rVKfhLgb%S~5J42E2ezfqN$a`~2`aArp%bA}HUd?pQ z;;B}$IJ&SUHIlef@xrtKn%{j{s_2=;G4Y~bvM-om>~B$4ncU+A_D5VVT9GnBXypA; z*Ox;)S{bj)MG7qYY8O6!6O1QYw(0-|W4yPyT=@%P;~<+^Xf^H!a=pz6VhLj3xVR?m#HdQxtbhyO%(6{Am z)AY&)G!fTTlWZ>f#A-Wb!1+_#U*oI=6Ax2_J@-oV)2O!u!6~*DR^Z(tN#aV+V!?;6 z^15F2eT+Vir1<4PWwNO%KV{`2^0&X3kwd<@b>$1_%e3W=&2jGR6J|NzOf*#!LA;zx zKzRCdJni;JpRN71kun-}&1FXXI^ty;O7Ovx)`_X*WMXwDtrN=0z?Y$uj@7IJzm1&jC`j;UGpd&9eQ?UZ1cCuLR4%{?Y;U$mYi{-w@H0R zp>r=lWO5i@wn<9(vd01{%D#T4GYTsqvu!)(Zs3@7wD9!(9apX8_wZ)o9i=HLaZhvlu(4$B6BpgNq{Pv?uoIREbMKP+1Z&h zGuwryzq%>f2XH*bhNH&&9G~LA^*HC4VGB9U8iFMWQoR-^Aq&xt0AqkjWs>2xs|O!z zwn2trNf70nDc^8aR?Ce5Pa6%l4#*-+8ymdL{G~cMS>5qdX&Q@kBpX{Tz-#zC*#}r_ z!)y!kyT3abL32H-xumqIehH_yMGy0VwFOla3HGx`bri=yw~w@zZixu*2Wl@x+Ddtw8bcF1SZfySGG4_!sHJ`hZ>PLa{@A&nPPGyn#_nB2Rz31~Kg1VKrHXl?tEM&hY@q!20#Xdyyw z^Yy#_*C1kEf4!8w!>DTET3G+d&2{Z@(AIN?i9bQ`N$U9zBG znEdH(@4seLYi@}&M<5Pz{d%Ir?#~<2-gsRw#7SQGZQzNu9};q!+;xd@9WgHQ?v8Rr z$L*?`pg04NlD(gDbjTT)?(WzArx$Mi092Ijj2$B;y3lhVZkI&3oKvr)p|}C`uS;}y z6ZkZvPR3oYGJ;}m;Z)mW5;!DBHG*iCW;OJvAc~j@w}W0b%!*-sJ+&1n79l8*Zi>F5 z9;uk53n1Q91VXkhF~UJHlPS=HSt*Th zJt{=^Va~={id{|K7C(}P6xt3Wl8~@&}(q(w05P^o(wchYiAGR zi|~K2op{9UZrOdeaVP$An9`;EA3#4lF?`&%|5Q_@yiOQ9_R+Wf5ELt^-Su--juS)a z$1U(@!=z_r<}xASu`&5M+H)rI<}D$*Z_Qsc6;Fp`f`pttgE2;)KcsI+Mb!j6b-k8xu_~@DUf^&0lDs zPF5B1TeLj3%LOqv0ZZ`g(1t`IR71z^l5OZ0CM*IvR9l@H9!J(xriL#8trG2bB=5xHR()^9xN=)PsJ1yb3RPsNs$B#3oDPM zXrmX0y5{Rp#5t%M92!Gyde(@-#NvL*^t>HA)wgp)CfhkH`6V9X-lo{+WbMRWbpvB3 z8yd?j3-i=U1uMM!YUAXJB}K^p@eLT_?tG40RUZwu$YR2`l`kU_%YXSa=RgA7tJt*=pI@ZH zDpplZEqqBE-74?M@y%5NRmEhR$$C3467$R*cv1Yt9r$O^KhSwna=|?)c5?#S=P_;( zeM#$IQ9ercIxM+D~q0`QBXBRPQ`Wv)w-0+q$Z?0K?hPua;E3@DbS?xKp#%v>lg6M^`3r zISLu8MQ*!BD?6idwf`37{l{F{#(U7ZJ#yW$5T&NCT~i=!^^ir=(0TvGbn~gP%&do7 zbJKu38s^ARVKK_IQy7oc-r!uwU%wC}$DD2?q;A)mYJ^Lg`oO+!o?(}2yzkz&5>s2? zliniY_TCJ|^2JWLp_4kpT7;>Bx|7{pvxZKYh4;eCG96R7aTgl)*p>+F)unN+iD7$h z$~0P2$v5y3HgmhZ3NOBd6Fh$>cqJvCbZP0RhcuH`cl(PU#&9D=Y}}5H=N?bEq^(XXua~Eo=Dh}N%QQIDNxS^kcZH;(7oCRl5*|-0dB^c%4OQgHFsUAk>EM={~@nmD4L=?=eIi_crEg*ZP%yeE6x03 zo-4Fhd8MBR-VNh^^*s!PCuwhm?X(Mh(pXl9uG-&l_xoE?L8eeWRZt7!4PlNZMsS8l z>iu&Xbykp?ubOG$EIH*+s1{AwQ9UI|a57`8D#hZw29PYL1`NhIb(COvUk;$;8?(LW;uOFUD=R5!O10$(^>2n7ZAI@9!$FCmAj%>xVj6^n+MXxb)PGVj>C? zuyt5k+ygF#KjvsD-xpd(EnOX4KLUbTB0LCq;6YD+ddO)qM=QN^`W0IZn?^!k6m-Dx zIDfWnOBM!1N_LLBz7GTcHLg3me)TLx#sX!M&_d$OIs>1q*)y@A4+5F;)Uhq7i_8IX z%u1}WKBEuWKKC;=Ue`m>41fOA-AA;YFlRgLB2Pl?zKii`2M$k`L{k0-`1BTA(TKb% ziY!`Q#pqMVZFQ_R)%J^d#^8?`&+`{Tk)h_n41d*{yPQrygz|-Iv0G+drw~iN>yAAB z5c#^{45@B!EF%81-Ggg0vyqx08LJa@GH&u^XJ=4_IB9kY+YF}1Fq8GOt{B>Grf_aB z^7?j(1KUU_IRDlRR3XyzWyijfHJ}!yZ#$O|G&z}Q*+?Apbay?<2@O6QE*V?D)46;1 zHj9pTZ@zy*bNdW|Sbx0gitPXO3nO*^N8e_0TW2Z6EJ86GpXl@ou?{jJ6T3UEF&7p2 z+}(}5ROtR`{hmQc6FW85WZqc~A&TSO0|!MbE(7v0-2GHGVjF@*@%j~kaF`IAxod6P z&)(|P3ewL{SITk2c>N(?>81OV()3y}JTcu>9yS=yDmZ)cagF_b23k z&j7L_SQab>oxc*`wm>85+h5mnfd^g8{wtuUm+=Jj4=}krxBfT(AK)UF{DpJX3zcg+ zZlR}@U%#z8czJr$_#;ESH8}T=%g#T;7U+0+go@`1t9tNX4|3x`WQRL>0;p&feLr_x zNY%|2VZM@7xulvU`|8qoZu*?FO!h?Qx|XGfnNmF~DU?=McrS-?ir-9W=G)jR_O0n@ z&jWifsEdi9Bb*AZHkAlznm0+C#+mEg~L z+KJEIKwtZ%0X3iIZjGo)NTk@bzr=>id0E$Y)c@ua|8Rx+58#k^cy$6Z%^*LCvWmO{ z;~_WgWXOczFl^~}-M$9JF(zo&voW@PPSh0G`8*C^d8!v0REZp&3TK?n+Qn#0H|@;K zIbz6^!bg}MIFkuP=aCI|SxFz*-yTY7-;|?Al}6Av@cOLiv6eDnCPc0{b!~DgK$_!z z;>e@u>gXO<{|H8^Q-v=4OpO`#!na`ZRD|l;h|cBFfLq}+58k*lx-Q8NjGJ*7V@)A? zh3-y(4wRWr*xiS2Rk|&#Xix%PvYYCGs%bOyf~wPm7ouppu&dT#z8pFG7UMgvuKXOu zdw1(T`8V9KGbjZ z#Sb$TG=YhAy8zTwR5JZf5v=4Cb5;Ae5dR{gY|%DYh>s(x3MGUx)J`vs)GVZgcyF<0 z`fwY{!ukVJEwbA7$ra$*ON3G4O=~0J*jD2#FfeLQqW^P1T{j^OS96||i5w6>f|``L z+Zu3qew#+|8>ID>G4YZ26^}tsgK|DOENjGXCDRL?Iy)Aq@K;ZNv1ctVwe)O|=0-Zc6j#|5n#J#z3#F>~#K@ zMvIcION6BO`L%a=l-$pG2#Th?%H(unZ9=y7C5qTcFAH_Akfen7{0%u`I6Yq}^s*>` z@eKfEusFFT&X_()sg}}HOUfc$3BbF^Vy1ic#2p0?rFl#S-hQw4ievX+y4nrlIwm!c zue-**)kz?63GtJ(J=#5|79Fr^_jXqIC0b;Y`%L97B7m);j3aH*tHqM5GOkyXxzcIB z<}L=j+*oEQsS!4;c54K__4@}fn;19RHm=zIZsf&5No$aJn~CxkgVLwfm&XQ#UTDX0 zNo4a?z^__p527ECNdQ2(+#xj)tC;M4pNgG}LLmoLy4eXe->@SL!gPCa#0uUvjT;N+ zmy15U+vMaUW8=bdLr*-Hk)#VS2>t{TRy@lXMncPoM19s}1+)SzRtRf+NmXJP5ZK$% zSM=3zxyh$mzigqyv`E30c5X(#7eh9io5>m#$wcxc4-@xXgfv-RW0xH4t6 z{LUAh0x9I~b;l(MVwO{h3FLWuoaciOme>b;hw4rJU^MFecDaP#8%OB=(+$y7(!q^b zvYgft#ixTV)ry8Bm$@JgA69Q3t_i7l@_|&8f>c{E~(D zz1Tsysd9tin#cB{XX4)K}R_ubQgezd1Cd% z%T>7s5%ga~vnQIrud{ZbqNc{MadgD!YZKl5D!KN4Wanxot)c^3z$M7{O$C0aY6M`R z23&>rYNCuvKHz7D+Qm7T)u?Y6LX*NgU_8sfTTr{j1Vp5j^5Y(6>$t^N!T3;-s@h(& zngl}%yeLB)c~DbqXy^!gc<=Cfv0N~P5aea8yXxTchU$aCQhEQCZMZsvdP8t`WJSq0 zX$O%y-qFkDw3vN7ghdim2+$2OFe=mBMu*m6hgW8&(0gv zowX*fha<-f_4)rEGyWsyG_Sc{YvP?$J<)MjPuH||)s*-Thqu+B2KU*udrja?Uen_K zHX+ZWJbG2XL_vd?QSV4uo-}jswxC(D-dTWC&E8vWzqDMRL$P12xwT+NaI~^c68YNy zNgcuQb&j6bEu4JOPDtUC8(NYDDL(O!MbnxNHnZBtw3#fCh>SPwEA7L<_`W9MwIEf8Eeiklk@5tVU4R zCF18yF9l()v#}_5bY;@SWlHLZQQlCV=}f18&EDm!JguPndO6`xT09H$Kihfb1~D5JAK!M z5oAPBS$;F`f5j~$)s#pmz5ATsQdZYqhdMHsM#}I$CAx%0{>$$mPfHxM9_MjENN*K! z^I(;5lRSy*fy*2EfielBJiqdhor<-P%A?dQAF0u-B#3ML9zZv^SdM!5H<-SeQmAvj z+)U6X>{Jcf0VjvVcSJm|8-7~BRcDcC+3_dx71m>Ogq@|RI}m!K=9}_O%r>V53dco& znJ^rd+1HS?#5sbvnSXQQTjnW^cNx^X|s=wN2vD(IfdH%m7J!Gi}Pmm}tw{)`aN;xBktPie*BiiHY$~HQJ{v4DW@L*_?PUD-~ zsvB_M+GdNLvy4k5~2!8lC;d8h>kkND)`Jd@>nzVeW(o3BuO#P}~X8tv*o2{dvy@q&h}9 zP%oM}Xsm=<>>eG(_b_IbwDa{Lfmz9@g&|+rql}Yu&f4qODkQ~R;z=~5!Te?wyntku zW`W8l&>_~Vd>kegR}Lm?!<(+MwuS1$#W4$_NG+^b1@M!@Zo!w z19eRfK#C-ppKjC+OpfyyRaeX7$1-;|c=x97{-e!B+b?m2<*LZOy zfX39him+@>B&VpT<0LF%rv%--@WBD_1O&dUWUi6`pWodFj|q03F*ZxqlqB50l4uxD zkAFi)?EwT*qh*r>t^ScbY@QN5i~ai#fMJ%6#qjV4`g|gvYT@LpmiCxT+G{epowOSG z5x4fm9mK93Z+pD`@{jQZkhDKK@a@I$9b$6rqRf~b$GVLr;XxNRyX#7{%#>X+f>>LB z6cX;E__Q?4@cdU5&y%t`g(Tm(rx#=Q}ELvC+oKNL2VpQZSk4K)S-4*kUrShJv^Nyn*RPK!2+tfLwD z8E{gZQ@7Mrg5`9c_p);KFd!<6)yuq}fS8WQ&J`T$#9-4K_C^j*pIe|x+-bCVC8!T^ zI^zA73w@86Hhye)$dkL&?!=EQgiaSnn|4Z|_@`lVqW;93@VA5J)4G6q5g6J(z!9XY zTQk4*Hdb&F`+auY%C;DvTSN^wCzaUEQHUsFDD&Ld9KYO1&zn@-`R;q87)2GYIPl%! zoCrC+5pchiPtljHuyvD5KF0~*W=Im*r~6aB;^?~P$K#g{>a~oLs6;HcfPa8=Rid;G z+fNv~)dZ*MOR*5b*EX4|D64OM_r3JQH4Iz(@rsb<)oG5R;?j zTc-mHzE6wwFCl@+;(1{h z>V6+M{ru#ZFkS~qDd^~QO*p>NJh_OX+8F=7?^^hGJUH3WwZI$oiEp;7NvOl@_J}aY zYSuBZ@wsHcQ-HN9gxXVmG$BPrji~&71?@;xesx>5^dA8C#H!K9vgr4#Q%3@pHa}#3 z{%Bb>R2E80yULPy{2uWJID&=NDC7?A&^VdH`j0PMoG+>x{CmTMmw#qxVU*PNNl{0= zo8hX1&+UW%iF5N<=Nj|!$v$3+*zNWk*f%7D_ANO!7mF3DIWaBM*p%p4;0`W?n&Px$ z`~Ya6I$AoCnxl5WHCP{?6+dVQ`l{SvHX2hPXi!H1Cc<{1dj=Wr7fnN!S-sRt78M{f znfXD@Ykp~)L(zN__vN~D>3_mPlGz5@3VClcAOx=3czo^Nw^~kzcJl`Xv;7Nd`|CuJ z9J}ew@6f;3z!!l%K5%rJ(G{J(JuQ*+c8;gTj|E^^LJt=zTg$tl zgO||U<&N%4QOUZ&%EW8Y>NSajgvO;Nicf88jVXUwv)J``PPG)jEVhpMgJawy2conp zw4y&_Lu>*$lapH)V|SJ6lfFB|9@|drxuKN!q0<))4vopA8!v=V{~yBMf~)O++xiV| z1zMaE97@pw#e!3c1d3A}T8g{76e;e(io3go;8q~GTX1)$K#~5R>~qF5?%n&GJMLRZ z#&3=9T650Ne948;5r zw%v6?^(M8!oRK>(lS_V+hfJ z&$<5qDo@*VBu1~MqMFD>EL#noZjc$u@s50Pk9U8ChAJZ!|Cim6qeFmGrDi%qb%oNa zu;>k@bHndw>iTd1AJxAlg` zz;G+2eHA@r?X8_MC>3lpb!#b4+3WHn_CwoOci^>FR=ujfT|vUwc4-@^tA;{k-p(|A&kgAOF*FryTKs~4a#yiMfV%|B6tLQRp2GnR0D*v&}IF7Ua};z(QO zruqlW@Kb)vIPZCAFVGX#F!CF$C7wPb-fOw0OojmId`?9N{0zG zXJ&^j&{%-lYw~6W45+$#dB*Xla`g~n^M016J8d}j`~;umrwi#*^)I@y@$ah=lZc$1 zy)eWA6u_X|*+~SCZl}zJlQfwS7Tha2?-B>c#?R&3iIF^GwbL}bl4%t*2d#*{YdjtM zC7L|M0k`oWu%IV=6^&sL{e%M-o!jk()9wa#0}La{O-T1=KzQ8?!a}2!%!NeQq`LP`Y@5RPS+<6ChrCWDsGM92npFfRIpH8K=Wnu|I&!h98S;$@!xE!==l95G0Cs4@- z?-*e!<&;-jqzdr`+{WYUFtjcS&hRJ16u0&QrAyuRGh8_DGlQ4F3Ld2P12_P*-QWJY zoxe1DWrg;uF*#oC=7_pPfAbg>ZuWqE~8SBR{Yt$cznQ0~=!55X(SMfcOS@FB3;SeW1rnEVp(dH~d~juQuc%I_i5rbw)D*_s<|SS z-oWG_0F}2Jk`r6!GuX{dH`gu`2q|b5;+N}NsiNTO_6T8FvY{sg4wa?|(9L&jz~b`W zTwzLXb5MI%>Pq&V)er3lkrJM zG2m?XH_G86Jwaj=$7-aW?QFA=>eX-Xzr9tEK|u0%eta2TMv&GjrkZchk|j7yPN-t$ zX}t%@ZzBkM7i@x=hZK}Sm=%=za|;K9xs7}6UE>W$lu|$F1609-z6)I@=Cx#ECUeG6 z(wb^vP%#IYhG{*S5!i^Vnpf6~-=z&y6)oG{z;olPKrtxQ=!{h<{=+jwbk`Sm;2GPv zTz}h^i}JIB2H&XRd)89-yNC~QIJofgPv#7qHW8I8ip1zvm?TJH)gbbw^^abXeMupkoWK&GzAe&qzH}BH5 z1nyKzH6CA`4qt`HY?{`>sCEWjaI~iXp+Pfjm6SH;*vev1fwb}3sHHTNJfzQzG3W7Eu}rTwyKmCMz3B?aQApmgmS!spbpLQyw{L!LE1b!K zKwCGu4lzuxZ+@3M&bpSVOO_Yp>lBw1hGAu~s_uYi;)?Ww&HkI2|G$%%W9z3>;g>f- zGxgnH!XD^`ad0+Xap~?nZ(o!%Gl48;+C;Q!4lxlPYV}4s@`U?N8()2n$%>v=lszEz z4zSOYM>l)Sv+KW`^+4W1YSU<=T>^%RK9&b_m@MmRE*7lDV#u%XCmveR#mV#dU z&DmiU%Mn>dm{n-f;M$df0n-LkNej~k%AGHJ9Zj_Od)6KtstIojEYb3sPoF~UpkxAX zS#U9|d$@oWOK5xI)E)PweL$zB_T)ud0)iC?;^vdmr{x77*Z!iE`Hv~{g~`q1SV+{W z)b;7E`cjM4YNL*_^T~%PYYh%K8;S@DHX1{c10Hb6I*zk+KqQ;O@to0#0!xCe!-A`y zi73O04WpSPVIMxGwHK^C^|A1@X)BZe)C5;|d3W(IWsMw!oFFRST?MK#4lPffDCo?8 z8`&3g>nfA}e{13*8Fu%JOP$0a$O9TNtzBv=&K|%{LDGrr{?886#`bC~^3j&Bs-mYJ z00Z07Xzwc;R&%m_Tp+>{iL>2~3mnYpTHTE-Np9c#A|5WrHEsBLej$se!n~Z#1mR~c zzHWNXrUwR#qC$v#>)!{xb$xXk{K*+F?^`GT`9r1mjN0OWzx4J^&1r^QsTk?ZYdJZ5 z)?zU|JwH?CyM;PPVRAsxTZlqrzyuQJ^t3Jg$btQlhuhbmLhxGD&`(PXj@E7{m;5B! z#c_R*cj-sf>N%2c8l}&CHT+?=#V}56z)|F}%VIQ9Cu`{><~}Y*ZP)YZ)HOd&g^p72 z`nraFP`r5t|1+T$pIeu#a+rOSSVwc{O|CE*E|DV&%U1Q%w$OQG;jaUE0#ZLh#vHG! z_Fe06S%ZD)ZrY+h>%~~~ydQtI`FGnL>r2WB zeQ)g_)0w>i+UW5}g57hcuV%W`QCX(2LXCTfT>8mwUliy^GZitK#qm3q+9#=^FF$I#KVDl*V2Aou25GDL zEGpU+FuLgMPZFWt@}4ak%zP^KtM@~Xo;~!Sq}WTS4Q(lLybLlxEZYpjj3e-pSN-oJGHaa>5MKc8fqL=#6%P??#GIhwUefubP4;vSR? zS2$Q=q!@tg#RE?VO)6h*%(rB~=)zv-JDGx-Z1~P*t!U_e4svrYZ`!0w)_dr-*3PFi zqVBcKG1=RIf6u|Hkg(CITNT+G>U(Q;TQLpJ<^Da{pB74Eq08ziBdR%+5OB29XmhM%(1&<4W!pmJyex3=Hi&vxYZu{z(}X;`z&)N3$O*S5C` z$leaUqfzoOI~36pY8-DqVl;)CB>G1C+WH7c_!PW$=dbp0hh|#D%7JRqqCHlLr^hpS z{F;~eEehKIyqOPY>q_fTkHY`dUa}{!ql^0r54TTl%T#Ly`Zie|^Y{`o^C@G9FjLY3kH{ zAk4I}jXsND_LN}clwdydmYB&rA?6340>aBHNN`v&cx7;AMdvgdb9e|1xM#~iZx1;w zUS_yoX?(bu{@sz3gWr#tGW99B)H7pJfm(q`b4j5uHmQu=I@d=-?`+a_dB`VtWX(3! zBXEo^l`o7O^=b=9Gt-Ft;N}c-5Do6`MVD5K?}^h5q}%EL5@HGnA+5lMrYTsclr5t^ zhK+kQVfj-G_SyFOf+Z&!cCs$&lZC7r%bH$NN+Q6Zh0+cN@n1TJqapFo$PH&ln*(7O%u^mrGfH9N{H@3?;+b~Cr!pAmt z9_UpX1)gr2Nd9~(D9jR>D|~M??Gdq^eDS^b)VfkemLqB&1Y}E z(6s!q(ut_omVf00T<5U6k0rszEXryIQ2J}5vTgDfgQpT3` zEQDHStP585MVq3}P3rgId*{Ac+Xe=AXm4`wOjlw|F~;Yc{>}QTFG_T1=1Sbybjk!O zd?|$)PPg;YQ3}o;fbCeifoXSmxtK;QL9a?OwPISV6-kkwh(5!eX*UWvjBrtZzf7r_sfl$ zc}#EEU#jT*BuAw^1Le^68cu6NKfA(ey%N z6dASvep4UaOu7^xM2peVax}xuDgrlj#Gya@u{y8C9tR(TuLcK00VDsA@s|aF2)IIo zI7(-IV{GeeyEmo_XY6yI+>m!ercbde=#3ZfrEg_QnDc&x31LE}>Si}#lk~`F(HkW) zJLXeu3+PbS;c=Vn?{7f^X_0Nils}=1$zsaz2ufQyt<`fF>hytS1&&=Bo-)Bkb+p5* zb-sPHMEB}B0LF*bNd5{I*fM4!3510<<-!6SUe+awsAY}gTMaP;GHKWcHdE1|%GfjU zH_fR?#yuS)826q30c=O757hi`RO;`C^^h(wwd}}v=Z|-@$Wn6(PN)VZH<}X`#>a$c z;09rcxtAmJJb=be=F8?nmD64Ve6RE8S}qN2XL1lN(IPW)c!Bbg(phiGY8EQx(x?A} zgt^;i!zDUEPAtr6oB_Wr2dDhrBwn&QzkP_Z!VoK`;q)AZq4K6K139&eqRou5BcHiu z{1oS!MKJTz?Up(724=(FpAr&_d^e>5oymiHhOJ*7>Q_XydJS>{X}NwFiF4Wu6V)Eq zw3S@?2E2Xo%ENRC@G7dIxAFIcjO#$sOx0n9NL?Yb3TtW+2|d#;7`^h(&fi-s8r?A) z{~ypdG2HoUpaZWXhYcs+O^djWS7Z}eo%FFeKIn4+D-f*5&u}&Q&e#VuAA5Ls%1%}0 zeRjieTne`oSR`DCMpx_#bUr1b{3$RuScksDTaENWLV9;9Fur5VB~ZYoiXihR=xJwe-8TKsB}ZEsZ~UPUj;o#-GB3lB6Q>PKZ= z8mdl}m-`Dr_@-Va@iKF$1+AG2d{=KbUbv(akO)jt3|)WWyn~Cgb9nCFJ#l1Xi3|v! z1^Jf%o?IUJIZqZ3@nEeK6_~9r9i2YMsXG;zEPs1Q81NnEYHe-JTxaLc?w@8{sL>Y$ zk^|N)Ix@ra8KMu9l{=TauA&D3S9yc$wJxTeV2ES`yvC@*@}I}==i^ca&_*UiXF50{cA_Lx!g-T2;fmOMP;j5XMK%|8tG4pnaw3bh> z&mE@#PDzo=9>q9o2-F*7f~2IrQWmL5SeV?QsyLP=YgWvwDVI~>sIG9A_cWGcGTx0< zS-rlSUF@N950uiUD4u$%xHy2aAcF`>O8?`c!0pHRo5ST$s)j>_sR+Kcyjekgr(eMS zc$~#<;@e-3P9dbX?ygx}Ttm5YcU?BWf-yyjt5{$!*d`L0X06`|l4Guy8eIK6zRv^g z?Xdd#_{7e&UVeVQ__6G|5DR4jT97l|5o!hXj2wG!vTC>a!HuS2&R$^@FEb_>rev04 zD0_~V#I$H*-N(EnDETWRD$>hJ#m!?(%gm?#sE$o0l4zxMa8C?Nv6W09=5VTz;4P0;7e_h8G25f z^(1wZ`LYF`geK!drTjuO#qJ4eE-${N>Cbvt>p`EPvDQ`1x#t^U$HGddi;A{seVMPA zz4pcndW%srToVp@ZS+t zv987sB4=*yQ*<1j9Eau#q3YZKjVZNn1qn6*tVmt07$6|FO z4HY3xFJ|dli3Mv3aB)oFR677G?P*@;=P`riXX9$SR&&Y_he^Sb5-BHZC(FyoWrf68 zF9~AZV0~&^y11C>14;M_INDFsczKIK!5*uEG$GoDF>u|9mUj252Cv&)TaxdBBtvpI zxPTd)5}Nd+-;4Uia;JzXv28bD|GZxrggj++DNBBFi}oTbN&hJ5Ysm}I>WfqxR`&@$ zV-$^SX%RB;Q#2%owuQV%=C!2^fgD@o0fMl#>usj-@HwihBbp8qsl27RipubLx1?iD z?R!8JXv0OxbQ>7xmqZ#a_Eps@RRyWOyaBv&R4&=P1Wx-%4mKOMi+=K?56d#kzCOv^ z|9+6zlPEH(jr)5IDI9rf$Tr{peU6;Hz<75|B%OVY>5}BB)%z z`Y9Z@L|RJsS~j)DNUZ`WQSRGN2;rvYvUZ?bm0dSOg#3DD?hd zb~S#TXcw7uQvgh+7*Qvq#L7ISWK4_~KdMmOugmyp`DC-+S?<(PCGb#V@c767Xr$?A z`6h<>Ch7QjtT{s$%eQF9Shr_2R&rm6#^A23PoS`W%d0B_scgTW_?)N;mu?4W|K6YP z_tj+7IF2#hnPZzkb~;#fDlpbK0)1L0x|&lQ-|H6U=)z9obCmsm9-o(2s4mj#V~YJ1 z^m@?#0?~eRR^hwcP^03+$+T(x{B5?NhsgvOeI3`uuTh+QW5$$T`FQX86mA&9VP}Fl z_24g!l}R{=!E22(%4~#7GGgxtguK)Y%>a+j_uPVaAo))5IO8ZaFVgbPM+EN?bE`pb zZ~m@g{h~=K&^jc$A66-UJM3ly;Mnyc9s-Ht|Jq0x+FoJf@-#c$zd8JFYvtjuj3c5SeVh|xqa{nm>0*Lp$?9lB(bXz=6 zE0JFmT2RgszC0?PHM9oF&%E%xTy#npz#6YQ&(t;gUf+$wFwylrj+)p&ZkKz-i@9FX zNdzdmv7fUe+FgF9+8f9iE79DQKUz}#58xBX&1o+lQ$3yljQ%w-_9^E$vQ})&EqQMn z%#?u7OZFIte*dFPU(<0(0`0O!P`AE#(4Oy%=$QZ4VA@S1Ki2Lb-Urcd^6ETsPUGT+ zg9F8Vv+oQhHycUY#86Vwp84uNDN5Clh!@d|L29VSy8ZrCaf*bL@~IZpAxqx>!?`5W z-=&;gBsKLnE$f?sl9lrmVqkW)TKQ+2e%0tbFY1ZfXExwMhE#kJ=coSPpX0afgh}J! zj&KV_5y5-?Ccf8IgqLJdUFZ56{(m^*EZ+zlC$=ma+Qnn{tqr!Wx$}q7bb|O>W2g#a z1>Y<0!B@xZA}Hy6@NF-5T1QrV=|1WmtVp|Bl)f;?KOO_W{>}CefNf)L?HhAfDMLB` z)I#tGp22|TcBHkGmSQ*;N0FIina)rj`YWq%wlDekV*vcQ003$L;46R|(2ZxsJTSqE zk-U7Yp7l)Q?9Eiolq7N_V{Fc9=3h(NkVDvWDY(D1)aF51#knw)XL38Nvk)-o2@S&% z(omKO+CW(C&P5f)>8!FB(Awg25}4VSufuGSg}egKZNg{eW6Vx9?+}d3XY*njo-y8W ztPY%;zGbCnBHcNC5c&rY+2(7xV{xC9Oa9X2-0Tu-Is43g zcey#pHWdqh{yE#aQP@!BiYcNdX0*iKawnC46k$tdyC@woG62chfM0LNx(?nv0S;rx~0 z%U`wPq?B(TQet(hVtQ;MY?W_YCnWGI+K&8dLSrf_+Qqc9rEt3PWc5*0NS~^n{T+zV zT9fF4X$E2OAn`988RhAk|H^~+zDO1V^cAe#&&Hk02}2g zsp@#ZotL$8wzaf-#t62VO%BO$yS`lPj!>z*!W3lyG~LaFsZ3G#k^~_D3((q59YjnW z-XvQ4NGLUE8g??6CB#I=?u9=8dF`P}=u^mHF4D0fq=rBkrbFeJ^7?~q9y?D4&R=|W z99Z5)T2UG8LA+qb3{KCQf(f5Xoe%&D26QG9yGM{c60YnLm;T!uBdrC&|qk z5RTom=%}>g`v;H&6AvVNy^q-_6q;aRh@AM*Jl!%W= z{<3x^eP3WOM5csgk5dnw2XLGrszO$plTy_Qk{Hna5NWY93;Wvtr4 zTybk;U%bQx$m@bxH{}tHMc`#}yCa5^=36je;7hyVvSG6o9qQ{X{lJczr9_(E{ZwaD zu_v)#P(A!cdmr~U7ofpvwY}kLXgih7(x#80Qt|NiJCYzmRk!{MU5Qx{sxB4yh|Pt(Jr>DS+Q0Y`ZTmS z`ELVtf4>$JD95s*B}P}qD2lPs8!Oc69tfDPucZK3I{d)x{btHr6#p3Y!M!x-2L|=B z@>Gx<`Ude1j*w8#E(}J9eYY@CvJmYI?PYKYPy2-{3Q(FtyiM6?4HUFPhhe>H>^LyA zazETFi>Tz_sj4xsJM@|Jj}MxKrn%X1HnzWZB_XF`ClJUdSa=y?!b*y>N!-xpfm!)- z0redxea{%D;|1(hypr1Ro_mf(KcW@P_Z~t?hdAO>R9UmTLJMh3PzFF2_-8lgawPAF z?h4*Sy5WcR&N*vMEz%a6?$c~$_rZORD-f;lHfjAg)f7LZ_T2~O=Mz&g0hsgl9Wg^T zRz>5CPV)mPe0&*2E#B|y*|UrPtr({z?$EfB!e-i|RDdPx#ZYLJb$;24Ae9LFSmiCB z0B5NI6yOCfs5Sg%Jf+w!^QA*6W*`j=vuD8B@|}RZ)oATImLfNDoqM<6n>L(Rigot5 zUYyMRu&l6Oy_tY*kx-C4+dgPt{CUnY=H!xCQe@JCas1?l+I~UNG}e+6U6nNONK!y0 zdF!l9-qm2_G-eKD;dagHba5=N9<(YeB@*e95I8{iO@s!+J6`X_7&?S)Knz9HE#Fhn zKg5eF&~2>Gx*kw2x^a0Vg%USOCrnWH>Og-FR9QU_ z5g6#Bb3&i$j|N^5;2Uahx~Dln7(yYvFV|xcLD`8LrJ<^czlr0K{|F`81gP|GCy3Ti zvK%fh+t*nffgY%sfB(t;>^B(@aItzF*`2#RQnmu%x+tjQ;{NGHP?xH?9MY5oEHybM z@>Ga(vw#i$>}N8GqTZ94>Nf!dChYh&xY|#iLJY?xXj<9?-a+0{4efjlDoOX^nuwuR zU9s)AQX)+y0pO}QYAHJkWI923qIa~T{HzQ9`0l6xFU%pNJSTi>N1nNe^hCp&mC=d44 zvqispAGv}oX#-4L8G0Mfgs=+*1t;0~I_*2`%g3j|OwI_JjmgVF^i1csM(j+c z>7s_$k?)(Ct6H*)ai{n2TG&)=%~(&6WEV&7c)xp4|EGwMSRtW&>llb+bxF0#!(zL> z)UQ6On5E@GCa1BThfI{ukh(Um+croED|8WC72q(O!DI|(8<(UM8|Tiv@)G`-(Dn-> zQZU}uGzi0O004SZ+koYO)+Vt1A&f+2uqdjhx5xRTChP=>Z(5MQRhLx2-iP{_(pv6E zJBoZ(YZsans_9;n+y06o7d%`~{p-FPKx7?wJ)v-YXy{_)m%r2Z{>8yma7}G~WqT3z zSoWX;E8uGYXlP$FfYYYXEagI$eSy>y_-btNUN6;=W}sef8}lE)oanxQbvGYqkcP4K z89g&9RjJZta$4^)_~iwtYKo-~LeW5rza_Gj(~abM^<+UOZPHMF z+Fzl)AY?1kJ1_SSP%4*hHSk-lUrg~?N8Ob>OJ6izB9O&>w(mH1ix}Mr-xS)iOMARl ze(fQRsJ3Kt`dY?v1~21Ys)Y(F16L{}3J{pX@0{sXJiQxN3MfzfNnLrugdoMbbue|B zR@ZZdMb~I6f#zXaYlROuS~&YT!|Bkb=-LW%M@_lUEe<);8tv7@*jK-tzlkx{_3NMsO}9;7QR;I z(p$5qhpa=3{tlOabyIs2Ibk<_Z4mp0bpuC~?)9CO+WM6JU_qOrNzpu6rt%!iytBj| zGh&YBHAxtr*}u#c3+4Zrc#mY*SGf&)BW>v3ByX*T4=QAUUZZDn;3PWA5~5pNSI(eP z!)PMm`Yp#ge6Ca~GoRjECiOavimG}oPdIoat0DWe=Ga%}Q{N|>t5@ ztVUeJXFNbO@$lEMA}$Y~pRwlQM~skD30xE?oFC#k0Ka#ydV+(cVfF#Wuv zmLd%^kzaI<=^u#wK!_DYl4(%~zpmH_?a8l6CNi`DYS0!QTP7=O>^lySRgjXZgS?QSG{g`WFB~I@0FA80x5`Oxiz{e#tCfr zsv6uYXBt6!6S!eNQ_bKS<8Mj7q9m-K1c-0&T+tG+(td8UbfEbM&{4LpP&1$P-aCRPXj=+`xxK$GGemG5ZxdVN&{JOMKc>suvyg9esWa!1fd zQ#A^KtEdRhQ}NeQ*kC%-iU3V+0Go(2%7C<}W24Z84aGH$a*dRKs&?iptVXJ5uWKbi zSc+$z=5sL~*b2Pd0=}Jv1hyf7q(Db-_thXt!kJ5;WyRBT=H&L9A%0VzwbO#~P=(7^ zuUYk$KNNyh!WyrLVFJ?xerKH4-4i$}X_e!mKKnOU55Mt_sgy{BHv9#|-s^53XmFl? z0uwX!+a+--iKomq%iaX|#RE>fkioL-=kf_+j^OLN^APjZo!IaG@1M_^e1Wb5fivEL z%tJ)c$;_i6oRUS>3blE`m*62ZG`8&o_2~ObllAthV1>bk{)8MqaZ%Sl6<_kQ-q*2f zDmNKv7V0(8R_dqZ{m3H-j4vehP<0gSo^Z+DiOLNJ4O|e2{rRilVBvwpZQR~Hu++#C zq~6?)O&*5iiSSuDlne9s<$)6-T3f>Jq~|T6i(1s%zgGSjYQbrKT@BA1?wc zX7#Dlt4yaz)t-X`Q$2wr3G8NPCZd+OJQ97k<4;+P5dWLQZ0Yb*dAL!6Xl-|xo3QF1 zfY~QlF1P4q&s}=$S45yV8#{l4%xY#pRACwt1l17{jR+;ZynCKSoDdbPQ6a=0kD5)U zmP&LF%>q+1IIB=UD5#_`f%FPUCJTl1+5a`{|EJqR))js;a4b4f5zBR!dGiu{Zayqsf$Cz|*PM);zNk<*36`{oC-72g^;^tV!`H|mp@MIv8*3bx;wM1_ zk0cHN^Bz*uL}=`$rW9t6ecl*MrA0K2oU&%v?L`wcm-tpn?u=3qG#&?p_(6~TukDVve>r69)hFC7}*ayjRI8)W=#@_4PReWh2#*QB9wQvtcvHmbxwgHRc{I{YpAdp zt(eDhf%-^X=U850e8pUtF!!)ay202OmDTKROIu%ytpol~H3C8;b~K@B_~CGtAkGF~ ztc2s4bH+u(f^|bSxbFVcpNx>I}ls(np*KKeqeS=jn1>p zXgz=4uf$Coo%b^~086wYJ{JQ3rXRU^gA`LutX%xHkHMWNmidU{kc(8U0G5XxLV%|b z))H0jJt6&Ru0rhfj5EiBzzZ||Dvq_>58hkHHsQ;>v?&i%eKoKy(y5^r}_WHeW1Sl2dey z?rUjGvocDIQ#IDQY=B#E#MrnGxHNsgoevAzm3|J}l5@R{8Q8yJZ9L3a*QUSOFBcec zYW15Bzk2x2u)hIci)h;#31<+UTt4QUu%G?h!EX1~)3bE3J=VYLPuBUOFL|5!KLDCF z_p|DAKNC0G)%0c0ffcQjKQ~DJ#Ao)S@8D<3jR$PK*1oBPva{B}vtpj&v*s)?>C0WF zH`CYSvexh4wf0i5U#x;xn#DTG^`HTq*+Q~|11`-BLj_)SO4KN%t$~m823YCen|jc; zW)*>fXDb2&dV752n04b$PF(p0TZ8;@7%AO*8iqHchVRNH8Z1h0K{LRn(P>1=Pz{Gb z;V_#){#IK3r}&yzd0V^&`Xj7X7QOn>AtXU)&G^Qr)GW;7GhJy4ee zUNkTFBY^XvSyh)0psgeuYIZ{)^8Oe@MR5z->>1}3SAH5WhUl!!*H!xR_HSkmlBLbd zFsYHx{Rnv(q~OxSh#r@ktS=N%50l*5(?!VRGa2Dnasd+H1ddo_UPgG8S4q{VYS!il zEWdQUrRzpDEALN#Fyj)i3Jvr-&@&N_*ua7IWr62w*6FJ)%q?8&p;0UDCnDkY^Jib* ztf1c624(7Ric(qCgQ%pV`gH{MLR$}GolFDc5+D4$p*OcPvt@#K^w2eXBD<;lX7||L z9(FTUHYa$Qnj3Wd1cQ|^{(V3pseNLD8~34pWm-t3pDoK@RsFsw;a8Mq;zv!J^5m<3QzxCf zW`tKpyA;H%kw?;PmB!tgUVYQ#lD{Q#%sKT$)|!9*rT^@_W^fDc@S_@L0m@h|%c#W5^p9bq~;~4&?PcB{n(&o%uNxR(U$;x1>Rab2G#TN0>4 zZy%y6_p^D@NjQvfYwRy9btn%&1HP3;Jc+uMviv@`hhliGd|xhBr4&!;YN%!*nA6w; za{y;i*s0pIh)-ElEZb#HT(%fT<|JNXb#S|a5Q~F@PIc!z$ zL5;_hoG9=|5~)R>&~q*(5B&PcX6%;3xVQmXmj#%rL^G5dKHzvIJ36;RE3%ad62pj2 zm<`sUiobSN$A&=HY`pZOuo+_ts2r7fv&?f?ERRAqAU#p}+?R1|OIk?-$>G&3#-9C4ckfPS)me~4g|LxZPP`X$P! zd5iiwJ|1LCs%Xn>oLgafomFyUFL(O3`B$r0)=Qr|Qi}Fb=7S=Fm@?-6ua6<>o4Q{< zPNGWFsBZC1Oexd~ z<)yFfqWrq0BnM=zzs8m`os#6#IA(s5-EVs-^R`=_akwH5L(W6yFihU=j1_Td%%Z;;gd4Z?_l|%c7KBtBT9N{klau-beF8M~~8X zd7Y2$GeqoQCuy75A7*lUDk<+L_(zj-_L!bhITOg?uSI9=?M}79Co-{H>eok3P=(|l z$-qL3)ow#mcjwNQ7=Y>~Yr>n|!n63zbzL>-O=aFfKz=A3LE;2w0TPNOZ+oDbSsUYP zHPYnjxr)cMN(Yxx8a`ZgM-c(tGq^H?A9gbVNx7&}+En2*=B*4;K#S3`QM-b%4^6vi z;ST~Ne9I)usowQ65MTw)bjcIozCt`9=(cp1K#p0I(q-bGb~5|-5;+V0d83ywdmn_ zjr%LoFQK9_e{%SzPT(IC9XwPd3{0w?-p0CUnt14<972V*G-zJ0X)Z*{pDY`74?eK6 zeOckT%==6G>We(`?(d)JGg!NTrZdb;9^ZuGqzVb@R4vT&2|R}n*UGhEcJRhydz>F% z3m)dA$6KO}%&bEa4-bdbTHsA#I!=;G)^rKUFXizh8HYgZKxdwKr$AF>bjW%yGU#3_ z6q5H;xLN)RjJ(q_JbDF5GN;dN_OT}y51F-02-PMvp}F{(j?ML1W*K zOE9~oazi}#V>>T1|Fxu#gdGmlHQluL+f&v3O!i4Crqwm}VD@f{snsmZ1HTcm(Tk85 z@}mocu#Y*O$GNY6`TqLpZ|233h_ck(@t@zHt2>%y!)6vvQ`vvKC0gN$!cW!IqTOj9 z`rwR8hC;6kT8zaopKkO>`+YsQ_kO1AaCih^RvmQp{_iAkhbB9BCmx5QzO$4;J3kyQ7ruUqW_ueM9Y+G@UyYv9G*#H{3wA9A z`8-6V_!F>`;%sHN^1C8e)P94X#q@{1iF< z05Q7xfMOEj3v_O1l zYRVNkB17qxbu+7;ii6;y9d+8^yj5radK7jP!sL4ed8(Or;@6Yr zWO7d_N+u6~!nXhoZP9#Cy1gy#!E*qAto?kKTWw5taIyy98RV$C@Q9}1Fe~Jl(Y_I} zGV7kj_H^wQ4^3bYHXSg2j^X@OJ5q0E3N2#blf#SD4sBK*GL2Gap8a%`JYG9rmlt}{ zc9s&VCD2sKnJ@Q)4=r!c9266g3w`^8gdq(VY{z)rjglle! z^jJxa#*{>l(*t~*VGA2RX;f&gAEr*xx(c)^Ubh1`!`4PCxUC_5hZjd8U3@+9 zxcy}3KPUj|P7$%h=kO%Chg+^KVY`NYFfh97=pVSC&L5wNY529*QsNS5j}Tcq~lR@zTI;fCkO)B5CxWRTq|7g3?X#<5hYWw8Q(3IjdM7EUEue^@IA7?9` z6y^NhezJ+}F{foFbY#MapajjOPRxWV&v_F-`d%k+1B#gC~GR_jVjR*1hCln1OT>MQD<_TdqV>Xoa58o={Le3uv4i<~16+me zRMi7JkYX8Ff)?@cM=Q@Lm&O>!VtSBBMgBHIv;X#IjL!uMTlEg$J zH6m18np#Ivd?W`oR^z>!@QO9F%+8>upYYx`&>GTxkrZt8a|UYJ;mb^t#|jScIa91a z`i&l`L}Kdl-nYwakqU#)XcS9Aa{a64jSRACT1Cl{4>)SFN%5KQ3Nr&( zGtD!j-43}dSE;!|;Qgsi|CUrlM;^|n%$+@bspC^QT@9R_m=VCYTeGgzH28?Su>-A| zAI*k990ZDhBPzsOcF2j?kg3#}*e7rnJc(R5r?VkFfxz{F@wQ!ZvKxXdIL_jYd4m&myGBkSY)$k{`;CUXY=e1|gkc!QMx<^ZA zVl*efZ7(ys1vxN>)r;ts6DMr)7Cp|%YXh3sy%aqU;%zS3g~7Xj1q&G?z-Kyx_b*A% zF|ZYj4C5!Jhq-dTEH?33ESpBO4R2|a`Fc4?{=V@nM=!43ZYj&t-(4o~w0%pztjOt_ zpJHo-(1OfKZ`fl!25hHmpfSeutJ+%zg6w?h1(}XnSOR0jdh9wt#XE5AbVhsNURQM* zm$j{~{q&b7$0eLLcMtZRR9InFC z!N}qXLf&({<2sBJk%DU_plM#@_PFMAYWuR9gaxX!X-+mZpwp&jhK6FZ=H^QQeUrD~ z0_f+0%n&Ch;#s0_<1jV}X=yV?wA&2KWP7z>?XK`(0nHcQ8-znu z=8_M`dx!DttkMYXLL%2)F46q@iOlU!yVcW5Rn6#!rt$dD3XtowV|FqtVh*dyFzY8~ zSyO`w=E)xcq~cb97dm*t5rVZ8CyrP@gcPoc#_j%$Pp7$qKpz2gFa`auWUls|WEEGJjhV)k z%hmHTQh|0~p)|2YUJ2CDY>5T6;cE|lc}@pK6Cr$y3HjB#66fk#%7OjkdX*ZLx5vOk z76?Q+j0La39pYl2nK%b$YK|W~Z}@#miF5pUjzO{)z!5w`@~u`g5nN$sC|>(lv7(1D zHQ>5i;p`tkSIeZI;NNE$qVZjI-;7~w_LSj(jl#c}2Dty{h3(&v=(srrZK0Ib4fZyW z?wdir^=Khh@h;RR{GyEart*+9RDz)<^L+GGR3`;iG$T5)9+jSBBp-YhCmdr;b6)=A z;i;0UdCZN(q!Efsx6!w)Wdichbgs{bt&aq$wa|ErCfmz&Q{=30shn^E)dSJSjQnQ9 zHBvk(iz#aat_?oSjn<$kjY-JuS3MNZ<3pEFVLsvUrP1mP1hVyOr`XTFxai^L*v0MK zO~Y`sq!TtDQ3lmE{-}JNoy+PlR4!q8BxF%^wRR|?LV;+4f1?eXVse+PE@FjJY{K2cL#fig$SX{V}r?}+JbXmlkI`E6DkzJhaq;{QH>reK1-pjp~Np|$~$W7pw zU*mpSg3n|&1Bz(^kC9jrL*N5@1|aP!mE9>6NnTBBOy@(*oLLcr5Zql!V)YqBZ~3|@ zGPK0m1Ze+-lt9@;i`b5AL~37MQ$k|O*PRLrs5N5c^bz5de1(tk`9FZ??a}!ev6O)S zY4T-QIQcKEyr$PeQTh8*#rBZBmcoJpp|dZ^{+)Fbf0Op0A`W5;!*(H^n5ZD*V5M!n z{ThQfve>ATw%I+!4qjlNy^PUs6!@WdXml!!9+8exSlfie6pYM^!5w@aOOXROTyQ2W zClV&rjUzMs`0U+eQ1wi{;gUIYLBwUL-coln+qCE|(TzZ<4PFLpOZ)@q6`as6KU3Po zA$MPJ;nc6ACN_Q9h{T=C&N_|FJ^I;nZwcypH~AzH)#fdxM*;_>MU)*uh-ZBl2(A+F z(oDr~`0CVFxgfQYfgS^n#`GH<9V&=ZwOc%0Ql(r8?OnIip=u*!Sf`9nPGJ&-Kc%Kq zfxzcj*AB>?v5!yQ=bsjSy7sXL{qV(4136%`<3Lzl$IHV7S;_)K_}6n@F6TUk z!1}Cn<7&H>k)^FYc=LPj^so@Iw>V310|>j}$|t=v z!;ceM%1lc_I&vPY)sx%d3Ud0Sr`y@Oi{Vkh5TA>RvbyH1G3Zrp{Hb>INHXa>>9*2p z!1?I1B=S?uu5T8W*&7G(&FS)Q9HR7b9%uRNoL-MZR!N+l3LFW^>h9s8)`tHN%YQGu zea5zsk`Dliz{?@tKlHqC`mv>xE9ZSW^A*u1nbF^VftA5ES<7udKWrL%!2__>d={}C zyl>t%?lD@fXzWuX0`ls5671*ri?pv-5;2ZBbE@cOc}X^ECiG6zauh} z{5O8M=(NF?H&e*-Ub82INSJen25-)X3I_Egu?+bZcVkDOD8^+|@`u|ZtVcRHT?Mgh zN{U_h96t$6w-cJz=)>K(pbR1%A#$=z^R4n15?f8HPOrTnxm$9Ex5`u*WpZ`8Nfm5> z0xy9Kn9CGPP4MN9dNl23kKTmq+FgXQ-OSx57EMod<=C;h#6CI$wzOoVo#?E7YFE_qKD6>hjwUI+|%T>T4@6(e%u)KTc+aEh@!bd z_(vN9RNg)cKxPurn1fpy`S9hhhky?*6TE|P_~~y$0nc(>!#m>g#}~w64NLF$w(6FN zy~Ukv#wBTj#jHefvZi2-52@X+GFtSTQ{bww90-FJb$NS^Lh$Yr?Dwl*Q4-klX*GC> zlVu>|cYuB7wzXLyi!PT{1uPc*!8`aX^%FbHi8CO0^Iid=!ojC!()*#br5X>2SyH`v z^JL@YBET8yPi|p)FkXM z$%6I{v;P3ld}6tGr{29MR=5;iJ$<@YKX+EZGcvD{3OEy`41qe>2;)$T6rpv~T}E%2 zJWf%NiI#IK=i7DM33)s(qFuFT{{Ac%Lu36{ppl1;*~S5s@=l5ud8%f2|F&GD{&I7{ zkf2U%-7YBeZevhPR*D=I!8nd|+)uqUKa`GBDZi2DO;YmuPoGya{Aiz0=~wS~%%Uf?)kXPt@453v4WC+#Fo%5?HxE)!kC8d`be zSml_jSC|G%Lb8!)HWoUQY}639r%OY(vJ|z@>XSu8Jy0x}J?1)47?{VejYR-MbMKf< zqN&dXQf2yD;_S9lTimIl^#3qF<$%|IyZi(27<__l3n0e5)mb&!T6*`}t!>GP2Ra<= z&OWQoa44?Z%(kx2W4KdJFgSi&cbmqpoHhPpTJpeSrWi|p6=2G|Io}L1!OOHoa~xpA zP0Q$e-*GGQgSWxL!7?{90K@ze^TT0398IT)G(Z2yT>@8?+l|f^k-;^zwq=&JHC<;E zRC@{24ok%&wQbYe+o-Cy=OF&R7I8z8c=AcYiUCz;UM+W(v54udt~7)@IgbjC0)Qy# ziZ^hFS(Pd*>6w~c&O38puXBBA&~iK$d2t*^M&O6N1IHBB^c0iAcRCW8EbhouS(IjI z`+zgo^1?5{t`)C55nL085wvU69o!tnFKQjE_mKTiuU;0B6w$zBqxxuP6N?}qvv?6N zMKHW;VrLWW@D|qWwFV1eeN#kYMhh-38N8Sb2Y8z z^gugV#!MU{3!*NuO`(Q}P-6f()66G|!aT^?yxrRI-;nC>8yCApiW@UUS@Pv1c`TXt zENR`6R3=1ddquC>jBD(BpWWv6&WkN4$Z&tocS&B#`Q_f}49v>`gXer9Z+MpCJ`eiYmLwDEn}0yA%LRWmT$nTB}s>9VGC({!{%!O*>0X1wnCkSL+*nk;LlB3@7Em zJzH0P&#Rlhaq62ECJxJ|#(#IOY^!n)ZQYT9{E9#>Ye_p>u#bAtJh=?|qp}z8+(q2R z*?9YsVgg9AeKd<+;t+n4fw9;*`=evxC}l%fI~R^uqf$fBKz^rqZC7|#kGHsf#oV|q zS?RfVzBQFKdiwPAKofGOYQ1uGGHu z^_4sH(q!kl!R>I%#FLC4 zxA5ENd^kzY&JpmzM9>x`|Z`T6RyO)qr_%wNb`jy7fpjxi~j(EgoRzd z#@qjBcqWgZbnto=Uc{I4K|p#VU@zgjYH!{DsVemxsHIe3+o5PKe4&cpT;P?_z+H>p z+a>7Uo0mz1VIq)uZB~<_bk})B7SRBnBH#t0o*b!Kl`>Zkc|w>n&mkkc zU;u3=5M`J4a>8ImG#VchcT)iq*IiS>WC8x$0E=lJ0SWQ#>!AM!fhl@X>@z59Lz>!9 z7<{S0#3&Hqke=*%|16v1a5Dvzx7Viut8yNO2j@-c{Y6iM=8Y%xe{5EjLHHmA>H0oE zj7O?RQ(if;%)R*23KHMsBl3&bnRqE1TLj@St3QWo$}#fCoKf{@yqy17qSfy@ncBtf zT~fcPxgY3y2Tz%f#zmSx5Dayg3Z#QnW%mT^YsWwAR&s8^(JAq#D`}loz)#M~Dt;AQ z5I>%235a@E=ZicR$3K;LDmZD(-N4`QJ>^|YMUm*{1G@Fc8e)u3;hvg zYvB^`rdxxIL@EN<_Aq_m4N`epzk+6HbB8Au{Gm|=hCCYIS1Gz%Pp`?c{o#&X&;noy zZ>MVNg_GRC2+&AYm28-ISZd=KU`ucwc))7)DD^KtBYXgfRb0Z}%59x|wt^`_rS)Vl zOG%AD^YDE+CkC0NuKa!N#gE#%C_a~ww|Rg#eSE5x=|m)cR8;tT@1O|7REEm@>6UR! zhnf@GsY>TVty(>0^x&$+9;y(EbNDUkFM9zZ;G-=mCyjP1beAZpk|f*t)Rxo{G;O&` zIomIMD!ki3K!xXRLT2U-8=*EoVH0Iv&aKa7>7E~%$t`@}L)rq6Emq*w=g5VWwRO`Y zkd!X^m+}r>jV}6X#||bTZCpi;HOV_gpZ6P&0>JxJucY6L0-gTY5HhZ6%5h^G1KtW_ zDvAJjU9J8zvGXqreNty8 zg7jV4qQb5aMHA*A4{xBoleO7bIOtL$hnphScs2(251bLIWomrPII2GS36%A^w$W9TNna) zVshM8{mQA;(QQ>t?C`facQ6s}6~+~}z6dwC^BvbEY-}w=Fl`|KF)j(KuS`X(>fl?; zSDTEtDKRj?{s9zTc1ar=(G6cPte|Zb`kba3F}Z@7qiBG5xQX|9V>R*_LO(X%pfB#~288 z2z2s%`$bIj4CfWx7u%sA&jrzBH!>x#fE@|b$emg3T0UiR6Pu!hm{_vA31+CTwAtW6 zeTE^^DtqlQC@_w#-;6?DD>~7C12QU1rN>im$=UjK8G159I}n{i_Q5rmwMa7tWU8^1R>A&D z--^Se*uD<)Y?@bkCm)L}1!!N_i@;AXz_=kk2#;iB-rCIuV#dH=2< z|G(!pIFb`n=d>#S0LD_Ytm$BtEF=NQ4UWtPeisYbhV51189MnzVaYh}WRpfAd+OGr zg7~5x$g{9kp3_JWROpszRxQ!_jIv<088K7SxSqK2owSPPq_zL7PwJ5FS6wcHY_}Qj z@8f+~vcXJgiFj$sfic~$HhB=*1FK_&A-uPsVp%uErBOb6!f_==@f}9#3oxyrZXn{m zR8jXkW$tRQRiocAe6+6$5?E+KjUvu$5KXg9o2uxej7@CmuHx~SP+|?Kp#1^gnyaZb zym#n8qPuYmJnGc*r}7}OBfv(a&blg;osfK_u;u8>Cz|<2HX6m~+Q2C?;|pAG19!uC zZSqGUtFpW9nTgXJsdXd7LOZYJF-@6^BH}37$P*GrNH?tzkv>Fdr>w6OukWC-C-A7n zkZ|Y|ELoY<)KU6W&%lGYHd}CE%nof@)=#EITpXek)K}qA*_>ia>kc4yA6}T?Nx?fm zX*wBs82P<8koW%(_!XWV7$xqi7tyz+>RZW^^c)dAGeESi*_ovWvIb> zk3xF?04S$ke4iLb)!~7x+Tt04UvYdQhJP=WA#A05o=Ycs!!2 zrjuVat-?AU3h=zSguMze=yM&4v3L7|I|bOnVMRUB^m2Y@0SgOkZ8eYi+|6R67=`W;mQjLu+I>*FTERN zAQiZ_!lErs-_*1IEIac6;ZgZ9m!*plyu%%)RD`>A;{;?|ON{3aG~iLBsYsP#dDa}; z;w!ty9w@d*G?s6j%IO;3z+Tn-zUx%Uo%=1he8B{ag2_W-dMM`oVl5^n#IMGm6sfiL zXq>rueph>2L?IrNjiGsWSY536>)@Hik{Fum;!&}tQj(x;`l1-uHnR2I8Ip^bja z8uko|K37ddTuVuv?!qq>r+B09^ILiBuf74K6EaC8Rl zx#EfXMm*)ZA3uzI-j)F(B2*{xU{W|(+ZBHq3^;`I`?CZ@HQ6Bcd9~hY!CHvH^Ip47uuXbJS3DAtZCP059q zWN6<9KW>r^wL8XzO1$-#&qypEZr&-C+mzPWG57i+52)0rwz>O>PT9%)v06;uwnD~R zX!{#Crt@t2P4x#_-&Wv$1n|8^Uh?*T+2{Uy^|vxkm!eCK-lQqq%S(h69Br zR?2lFB;Uuh8_adiKVHahawb0XCm}7_+iFC@H_1&2YA`qi{T2)zT4F5vqo)tf#;wD^_yh7`I*VUL=Yv zhBdCqvyWU4yW=$t5F4BaA3)i%I515f46+VL2YxBrA`nJVJFp~@NWHNKDt>p#m)uD#0K-ObZV@5eJ7lI0WM(m+Rr-GU-GJ&EzT`1f%<1 zI&g98UysjI>ZW48jrHR7`sLQj*=C|4h+YxY*-9X#$-G(SYLP%O*b@VP2A^$-)b@=J z2i?z^xV|2NMA1vm{M7PhF}7ekfFMI$206b{9D zxX_g5fJIxdEw!(|yXdK1x#Ijf`Shb8Zr;V>{KQ<%J$#9&ec$&HqoEHw5ptml{k~N9 zv6c3emJGUukw>ou+J7WVGc;ka)Cjjk^zm4h<>|#Hx22C%FqQ#mz?1t|d?(JcxH=ab zBkK_s->2x7MDx^yFP6qcOSNq>4$+*6H$C4d=O$B6FDeaUe;#M2<&@gXL@;}uFFxSx z9>)+?;|{S!lLV+F2Wddh#Z)vJsP%q@gVQZ@nV+2vo4~_Gb3d;{hQ|{dgrxDp62&7h z)}sK#aQ#S$TLd>-0E7`f?*#}N72@+fLNGh+5_dA)M5aQ@=(lfb4q6}%cOuEkD> z6j}#iSlfDR3^iDVbx#wm!t{5UUC*1a#gW4Xj}66If6o1VV-YO3LQU(l`0W(R=K01T zWBNBV$woiwOoqS7?i9&0tLR3*_yOp}V{OGWRO-skAIz@_|B_CR@n;@d?qjfErLLuQ zB=kzeez5y_VXgI>XqPyOoXocBz^&ZHYh5oZ7#7X;g-nZ(dhn4q#w6B9O(LXML2shU zB-$M@Z*<}4vbgit3BJaiyS(71yD3Glo&wX8)bm<<*o&N)-M&>I+XGB@SWD$cEC8c@ zM}6ltdkWu5rSM9(%q2bo`WAZ7I4|x6&IGtM;5Ed$aW-pnD)1cf<9X;!;G1?_GBaB1 zyv~82MqIIX8FDDxdRnE!;wLI{b(wzg`#LO)=2nv*O2*YzChw#EN?P#(+9?@j3Y^dGX)-eWOw zFKv-fjpJDn3(Y$sCB+5JnVCRPVDv79xo|jcc&}MJyj19V22%4RkWF2hmLD>Q?AF(^ zgKGIH_T1ZZu^+OGqre+Mr`QozsZ7jydFIA3vQg^{#HuT+Di7>k_>Lkoja z-tR+Xk)11B9OWl5tK zzAkLeUe7gj7}C`~Vw(D~cE8)=c%6o?LpfN*Hj!%F3EXn~LJ&$TnRqd6F4W-orK)63 z)6K{*zvUB7=!aDm90J!025M6iMB9gyto0z2+bWB9v}cUG<%faMhACe)Y)HOlN4YX3 zv@M_QB}nHIUTaoH;w~X-$F5HNZoHIfV&-JgxF+;GK*6LI97aD}q14v!E_|elNL766 z`Y38(b=F&&ybeAzDEoU}$=zpHAJ!IZ@}?*c$=;XI;B{u5%A1#c>nb{DH*LhejpHJ* zV?qi_iRb|R-T0mJkU2{W5rKD4FXgZ#uX!Eh_ zbC^0^{pAgCl>@*Q0Aa0%|*Q@9j2pu zaN<>92lB`Hiq^q}<+Lgyp!4F$?-6&(V?{?pt^}koln}PC)Pv_E%ee;lssrBBuw`H$ z-8WiOO9Cjrlo;{L(2t_Mp$djzsJ5hC*Ki#$pa7k$Eg+}#Jkjn=&kf1Y;Q*cmHE0}o!KjdEqDVmT>EZaxg%41 zv)d|jeY|&_QPF_m*CO(Jjo9%xpZ@HqgvulvZ=c00RNK6xGg&Euq%%7q*_*1Dig(hI zqhA|V${Rooh3um{c?$tP?1c|pTizyw8tl>%r#f!`015`%G&TPwFKL*O*AiMXA|W|+ z4=s}Y`Kx|gXYngZ$zXdMdY|wRf-$FNJ|Ji9`Y6}%kUM==)&rL{t&3*Eop25UN?I)R zlB@yogoc**P)iRHrCv$B{BeIa@!w8oypNW)z`NK?K>dyf*|77WE@)b`v{=B@@ov4GJK4rgEZt?Pm^(ZD=-0W%uUIFi zB9cVK_Qmg?Y=9Rl-P&B~;Z|{8_ndR_;~H|Y2%*(54Z(XRxh5ht%iqvRmUHY`y17^5 zz%sQ=sdmwo)wb`NPYgFzLPZUy`rLfIc})1Y%qW&&jk(#5+QF@qsQr2{DQ(A&NKL}W zdDupgI@DA`%kPtcXH7-yP6ZAQ>=1~z;zIo9$fo7CM?Nu=621;+kYmT)S{_|q$6vvv z{%=MG=xbqRsOzSp(H8zQ9XZPD_Nmj$OSsi9Q9GOplfcYMxzsf2*lh@0jtREEwLoOv zU}TqvJ9@rB(52T@!E5C~!VcxnIi6yH(oeFz-(l*iUfa(-q&OnG$Fq|w7j~iA29r)3tZ$fE zzTXX?a#nqNV%>5LtD0Mp`hfGAAL-!Z+!t=jzgf@&9ck$layvw8k4JcpW#OW{X=FPo z>1fG0mVM;S0pY}&a2tS`iO_4e<@6}I$=RE16`dT6Q=f3{ZR38MqJekLp{5cKm&#dT zXXO+g9py1g&4)5pR%tjGY~t zqb)?XfR~h(ceGvnUPbirz4`=Kz^~zBmtX&$LqNZ^+_}$7Vre;cPJXX{tF!z!wDPUh zviR=Yf_7F_{fncFj7fJlGR)ws^x?(dP?LmC_I)4bf(Ck8h7Ewm8UXy3Bp7V3Dp%i0 zYbFzpCfov4>^2epHC&oVSMqxYn-V>B*6b{_5|l}{f5n+w7S(Y7^koU%Qc37)4il5@ zxo;KM+;pH#1p>Bzd~&JIK~E}=uOkhv-oMAm}dXY7?G8^C8ERoUAq$xcZHKD zMWK(()_b&PLdJIoHyk&5sXU%lrCsV4-mZgdQD2rLeuUuSB~UQtp($S^0s)W3LT9lH zr(`RlwQ)Yx5^*svsTrGZizQh-OzbFE#2u#DTu4p7+2D=P2+-gu zdFTCS4aOu@pk(5w-8L5&&ULtyt+^~-Jv&rX5+l%5QjL$Nn01{FCg@%DtGt7aRdJF) zysTES9vRO(8W*=4L%IKaLV7w6JWGJmsfg@4Ve@~~;Zlkq;EomiyD3uhfY*FX^GQ|S z4nYZq--LE_Y6|}7Z8Ezk=T&*sHy2xAZO#R1+=GG2;M4|m#faW+B73DXakjFe zO6&Jw$Xu-oQ*$RU^3Oc3Ul%sBF%BmjUDnG>W;h3Mm9|K(Z*h2gQ|>Z~xq%6HRd_iy zec}LQQdhgZG`u>fsY&J=A9(a^aqtBtHF~t|~3$j9|b? z&P=ZC+EB$4u@{>y8xsJa*D1E=1gjm_ocB1#y~w&a>v+!sN2);V$*cE%DRQJE%;QZm zN-ibl(NOl!q@8(HQiaOMv6}KNwl6noxcLW7=VYZoRHN|4#6nKUEyC^fRM*&O9oN&! zWy#~M0agYzZ;PuD;$o3*za|+m+H6gHq2r{-u3*<{2GOjKbg05;8J*ZCQSmcjK30d% zfW(ydyW{bgX+}4X3qP!#7v!s*MGNGtTi+XJXKBAGmDJ&asN8+L#-K&NdZ$sT82()x zllC8Mlc)fHSoDT3?{ntGT})XWt)+ZJ;6^jvfSHq2HBHQrfpnY4fVUYhLR23_ZZ#QUPY zTdy6ha&!}Ox3je{Vfuek{YzOECrkDq|8e% zK~}a_kO7QXay-{*lGfe-hEbp{+g!D3raFmz7KT8Z;Tw_&t?cKljE%=>TvH)leV)2H zD5_lQDV*oa^{K@Vu4`wmT%f(FtaKi_g^SH}M}xXsTCT^~=#K4JAIDI*2Q*!L*daFU zDXMC0DOB<>&L;J9?JHWhZ1j@5d(nKhI@Ssn-@LG`C5+)=!_@gPo4Vi7!nC>^P)rts z_&xS1kn*!jo}7V?7<37!FVRs%1!YX@V4>cB&~GQl^1X3K=a0+YwN?mjXi%6PsGRpO zPN;6Qd6!c5?sl zZe48;2Xl6=lM1$pxItQ9W>)9m%gPozOdC7q@NM;l-FE%>R2XSAOIfaIs??TrWoMJ= zC5EjN8d`G;+rxTPdng%p{J-}tr@ti*`}5P384j?*C2R94JXT2(gWXklJ1)8bZ|Xg= zw~n_rL%r+s#?9yB^*J7GijH$@-Hw603gYmHfeIj8z_1&%3ZwGgQ0-0)Q<4dN76ZN5 zSh`b>`Q{#2-_aO>G3;l|@RJC{Ui7!pLV_+MF3fHFDlxf)Nx?d!0qR=-@*=dYvFvMX z`2Nr_i`Uk174xtj7|}+WHqyv`i@RF&zWvqSv}c!{saGIyQ-u!-W#(n<#_RGeL6o4d~oE942UH@ZwT}C=oSC;%(Npoq{jz$hJwe z5lb3mkPU&a&HRpw#azDY+;W3yO{I7*q!;@{r!=c1C3R%6KT%@gbdu{*=a}wdMnRz_ ziBgt@3uA>d!cueI58>ct=U|(2ezzLvBz#|KR^8`A}4%)ll z>>M1u8&?pp2E3kw2a$`uwl;B9T15DjZ^&PkJ1AK^X(- z+$_bs2PLlSs(b?T;#S{!^YqB%D5rhjNHs)cgRJbCaFgfDyreIeG1mrDog7llt+ay9 z!Ef!#3^-pc!*)Jr;7E%H`#5oU`k|moIc|Hzan}Tf3&+tbLe;<#It2a-@Sh7^>d8iZ! zBg7%W(B2=Y2I^<_bL2w%(f?CGP4z%kIou+Z6btNK%qk;1_5nFm_RgH47t^wXN-4 zRd^QxY;OkzATt%OfT@LnmeVl>9(Eqc!CJH#yn>{+Bl^J2`P4@*!n2=Jl^VsrQ*lx3_pVI#HItaUQ*jce@Ll*}&%}>f%_2auL_!{> zh?d4ycb;&8Ebx1|N~E*hkQN73R=>G`ne)78@C`2U##llyf7>Ml+iSevK^nnbSzn`X z5BC&_V~h#9I7C$*Jj4SLf@E%SBfF1t_yJ1oh~xcDQo0Iy+O~2w*a=xry|sx>9tiK> z8xu~Y=nM)V!G9%ZNm*Lr75Ia*3aapoZxh%vNjN~^npS>wgzCRz%FfUhhtP?ANe)o( zmT@rW<(=eMTR6wzz14wRW7*t}i!mOt`PXnYk>T6wgXM2!?34fL=8pXIHei+Iepa%& zPx;usT9f1csu-hPL`LnRSN5e4!NkFeK}DhI`yR;$@1@w$;5xirFT}9@+L9_1YtWlE z7`qp8_;OmbBH|IbZCxvBJF(EE-H^h)jaef$E!gj@?|-Y(-zO>8a6gbGYW#+kR8!%& zqH3clG7QJGr|`0NXH1^O|mym)fO&OVD$t zQ1f;xQRRd=>aDBVHnuWyHUQ^$hx<9X8a~Fwe61)Y+BXgAN%K+flug#V$Vt&*&sAWg zb?yCWm)VHtPE8e@O>YCAa^!H*xHR+1peWB6*!`{^l<9vi2mK}7+Mp%ClrZC)pekvj z>o*}x|4ILUJ%A;#ob6v^3dWL_qKK7OY>ITGcp9KsNvDZ7*~qOWDKGMXUyI15R?Bl! zV$IZh$*rNFv=%zZmT{ba`{K7pEMpX_I=rW6pyB!TvnliB>3RREYw8%9N|1_%(%cW) zCLzk6r?*^7wjttg+>u4rv}H|qEz$+HhJI8ptIbmmswpd3G!^{X+|^JkS@(DC-U9D` zXOgI=hj()0_cF$+y>NpKxhEjG((NVk<<&GO3AimYziJ6@Mh#$Y6_k<;Bgh0GG6x}o zbG;rIJ2-I*?UJMB?q-lYHBk`1yjp9)bu4vX+K9oE`7__aPIAl|MS!q(bew-@gETC# zYyZ{X6!S>{`S<13>w-7)W0}1Zld@}A+chJr-MGHFbl9-!ZQ@wZyfn2nDu$h`lfV$d zF2zBTAt;1%yUBd~nW><5$5`(uJhsFWn08&%025c&y2Lv$KVGfSRwma;geAng`^~Cl zb61#{f=o=jPm68mo4lRyhan`byy#?~t2Cb#x!ZCI)0E9pGWBN8M890Tryl*M!^nxx z#X6nDv}h?hs!&M~qB#ON%hl~$enQ8V#&>|O2xQ72iY6N-g>vTK*-kYgIo1@}kr*Ss(LL6J4o|g*#z7+f?&g#fbhH`3`>&b_&il!ORBVCPdeW4t) ztKgNaZAY^=X5qzQHQI}AJ*;b9OB|%Yu1GN8=6Cuu)Tx0)TKIA3;+F>Tys!Q*N`nG~ z99^RpR7G0j;8Us`&JwIgO>k3-uTN@tOn1!<`0;An>&Kj_5EWx3rWp0&LenW|*Gcr2 zaOjTy02||DxRDZ|jFjVYGuh zbN{AWKh*xa9I0r65dU(sZ#(4FwsDp53lunm@xk^&kVdr<9ws-1ulLpH4W@W$sdqEs!p-`D1`Q0DaZI_H(=Vcjo~#5zTl+!S?3zC^?21Q(&E* z*XB-Co2A|2xXU@6>?*2k7>~F3OIO-xd&ot6+fGI5DzUD|*O0XaTn?+a8KYwhR8YAsO>vga$9-Bh3 zzQn!Q#BK2^8snN7!Uf?pPHT66ri1Kdi;%une*!vc+yK?kYi$+HR^00hLAo2)B#czf z*7Tz)D8pnI%a2=XyBL*gzr7#*O7s{QY+lLJJ+srbKT|YEXBiu$!nQ_lC$T{vW^mD`#^6>)L5Mt-AfX|t> z#oF&O3VMf} zWU}k_)^ZjyJLk_xpGv~(yC*jLxeEb3t0-@Kx zXq`37c3EGJJGx|Hd?EKY{{So!Zz{ZK#N82xV<(3;)64zP@$iLy@Ap?urF2+Vs;IZQfF>>L3) zkL;;t^}O$kBuxi1EH0=m*XJVX_<0kKe}2HiM0bm+d|!>U7 z0N6?f3)kavdi45Ea$ZT9LV>^+6*76TzSb-lxFw{MJIH%oJ0p)<4V8+PAU;S~_{gX^ zLFdSmAyG1mZY>@g2J^PRWDHw=a17;66Ki^pCWo{RNoe}Bc;;wH*$vnckk3ct-O6ZV zDy!2Jef_y2SihVeBUHwXTEOJtM)aGorE;a+V{FH7i`E zRLsUl0#@h@cfX^;Aeh^%0h>f$a<64D3l#bffKAv$9Ht~J3aj>s=iQ$lLfNxpDyjpx zb<)wx7!ZpLeKfV1z(&>f8kx5atDS|J^$#Z29k=1O9{abl**3AJj_Zc3$gux3V6Cid z?C0c8d7syi$E(4i!_Ti-HUAOVrgr?&*uV}OY+zlj%!`2^qRKu5xP==m))@K5+57`Q zKK2h=#p|jcpNLXI*T=bOG#BSYZuN1mO$;*rFueU4)Uw~5c=%CM;wKGynIA(2-mgrP zO!zZ!D5Y_Zms;NA^@Iy3qAsQykCFTbMO;6#Tb#bI`LNj>zjc&B-abi;iSz&n(s zzP>;N#$;2`lhYqRvA z`LvO~d#p-tD=PWE5jOvK4?bS-*F27DG^Ga>TB+cLP4BuqJkNY0yv2gcr>Yya_|iGc z{ET`K#`jKl0X)2TIpdf_KHG8N8ge8LGM?=(hyt+z-qfjNZIy7n?yvN+gVFS#vww^A z@6@4INmeW^ z3xZIfBgy>-oDwKpJD^~*NgeK(0=pS$H&NFa47&=k2<}6A!K!tP6_vvF)PkBmNxRma zVOgd4gcgZRKti@6=?RBbzm8Qhw8HEVTU=5LPw%87m-7QEY!eHB56+yE!%OE;<6-fxD%2Lp(6ljHA0!|1gX+geMPF|(Pb&%4h{EglnbOB zq?Qv`(N>jH#T@rN&_`85$Q#VG?PsWqZzwVOU@co~NAuq-5iXo@kaMkE;kt!fQ#Ap9NTUA^-IlctKj{}^IzMun784wc$8j9M9WiPls#sbM zicf)yc`7MD9-_TFO+`Kzqhc~3C*E#yY|5hT<|(;cHu1POUB!^0z*&yaMSdBiRL3#G zTg6;8umHLNQ8W0$Nls7Vr3ATqgFsFnyGN8Kk^Mt8<1Ns53BYYrzdHb2Ut>|ApSR;1 zI_2_(;OBSFmPj(dN5K7OxE#aqD(22&5}b*~K|~Y?Wq-pp;*y!T7sJi%#z=;KeU-; z=DnPl{s&!e85Bp@t?fe4;1*mnNPs{BK?ZjZE&&Dz1eY0PaCb>?4ess)x8Q@j&fxBD zAwUlAK6R?T{q22z_n)q=>h5Q)b*<|j{$y#EtagqDV3S#!2|Qe?MpEN;CR5@MtTfnQ4UA*?1BXyg9$$CUo57GU+t7cT%(ufv z@wnMIRt$F@zFDTEW!`Do&R0;^=l{2?62G@}fTn5qDq!R}`Zk0d zB;5rVA04~`5NrL?1GmWaE_czt7lup_YbnA)T}YyO{g)1&eNb%V2si6z>3%r3Ix1k`-sCrsO zqu9yhB%u>TuuH!Wvs^b_5qd$rY3lU&B(TSN6YfSO4g2YHMrc=q%&Ptxsi6FD zJNQyzKw&`O&R{=iKP$sDy`S>c*@komHk0l-KOa{tka{lT6>^gkH}F^g7We^`R#mwo z_ZDQW_p+0inZq(qjew<)|2>@Ns%=cO^R~~pT3BJ1Kn1T>~hi}w(sP^s|NC2%N@H5+vt|=H8MZ= z>1z;G8=+?V)v;GEMNuhp(zYIR^bkDRP<2-2s7b7xy_w?7L)Mk$PUoQ>n)ezl{~T4s z9TPq^k$R>*L3>=u)Dsj~Q^aE+?^7jD9k8bdaB)|Z|IjzP80IFlE*Ob|;LVBD)tml` zcJHRgS*8cVrze=AW|A7!qU`Zjgt#LbSR32vV#NU{8CV&WMJ2xyw?u^ULtY|J)k$d- zm(Ut#z*TA~Za(II<&h}X_a&Ept%b}K5}w1>!@-{FOWSLntR(=%CbQDXM?*!DPhHzv zTe{5FaGe1lVaU*YSQv*r8J1$ST-O4Rxvslv@-;8ojDw>*s0s%n(l3uwHts;Ibs~$H z&JGPh1ENE-Y;LF1L37}>{1*&pT3PgRR)H;<+m|SdZsp6T)52r^} ztF`aB$EcG==*`Vb4St^Q4YW;d{uDEH5+P2034YY5%Qh>;BjV=jNyAwCesrrE1jWxA zD*s;EZHGCB`@)tklovjD3n{U1R*b)|n;rr#hMw!>2L%^EL@t70Mn;FEsf<9~bgJT) zt{b8gTgUTP_4RJsZ=X*^Q4=bx$iB03HRjEQrHY=CcQnAV`o8U z^RGR@J+zS<8 z?GDaYqJ2J8&8SD)UTkWN`7u^lE8#=D{HdO!RALvnF<*9R)^^n_|Mm>uhN zZ9Di?v-#&)i)Yyu|MtsU`G<6TsF8Z`+~$}QUd^J@2kjsCLd0TtM_LMRjeW&&Y5Vw! zT2$<@^Eq3Tx%D>2*VcY1=xBaPOqN45?{NMqV(0=;k@L=7ktST7I<9NXS?RVJvUi1@ zh1^y!H?!2l&hcXJ*`}sWhv+?k#(`@G8DdGlq<;sCQLJ;7TfUC@iDlg8eF`2`yps0ZnW6D~e0p}-QLJ=AZ5c+MWvxw$4GK)?g01L$UWvR>Gbh7VI!(Pn6GX(c(&=z0FBVq( zF$DfN>+t>bmV4?%NCyxXU;)l|A{5|{(q`!|3e7GCgQ937FGx(CFym`3L#qr1!YI8Zs@P! z;7-?B3^|bjN!8Em(Mj9fFg!kxaIYl$o~!?A{to-?$6MwSr$8d(yC0>=J+$vvTA-UF z8{}GZW2t1A-bT-A-<}U{yXWA*LhFd)2&~_BGSby?i2JJa!QzN_t!Kh^)pvO7lTp`K z6}k(xb18}q)J{Ol87`AQZZ*ys>j}EmUnOa;59%~w_IN&q>n zW9(s?&v8ae^)a@#68dxFvF8A{GD+XmC=O>f89@XR*8G?5pRs|0=1JhbdN#P z!S?=5J?l?Z4C{6P-`P2vz4ENTb0Wkg&dJraOsQ%=JFSni+gAXY`O!5z^V8x0(vX?8Llf{IV~Bb_fu7Tv=uTqH^oL5< zMniF%y;6gahVths&UgjsYUe6Wdi1dm(O*th#jPC{R|0SEOijt*=3HM5TFMu3?%6dm zbe&llSTWIVy|H!_qgDoY8#iq@hMjh*bxM&*uAn3eUc#ECl0UmM%aTJ0>1ZN z>zirN;qn2eY->8?40UG4I+C!-b{pz%H=mt1QDIXpEv9(-b7?#5EN1cgv@8mu*~Sk# z`GO|q7#m+f?+zx7pjfUbV0?G+)gDJ(feX*UnuB@Jg(fE!@zUN>nP26Ymxt`(5xV9+ zD6TlxE=^N}lhVs|s)FOnSm79T`a~*{BP} z{UxXa*;2om9Xo5(3sj*J$OPikN9WvN<4nRzqb5fucYy>Fq?kbZpg_!Sj3hIJ3tq>! z$32~fq-j_wli|)M`#9&h=%P#MFbeQ)Awk|&OsRje*1EV`FFcu%PvhR?FconYad~iE zxCx~w<{<>27@-Z^sePA2PnKceaIkhxvuwDC_}0B*a;CPKXftU}7iIPeHP%O<6oCnboyO2;qGW_*hRaULIztg$Dw@NVRgoZs z!;FcoYMCSS^-f4_rcyZ6bdlB#m}Z;SHN`%r7v;~}zmuM}PD9mj$V?z<>El1uJjuy} z7K>t+u#e0VkY;Ff{X%MtcjSq>eRu{ARoP7bZ>E2@nJ5j6LfKk16MLSR{GruYji75Y zpJ0#R)3X@it8MEusSMLjfxYkT&h3xye^hB@>7!87G+93^<%#lY?|s$hU1G3<65n)_amimfjMvn`@z8O1YDW+%!2}5XOsL#Hi5KpQ2!XoC%S)cUSzZb+>gGX`JP=)!@>` zr`%RrZ|5?hI=V=!gJ!XSuRFL2ef@XfVaD^^ZY>j8T>Dky4q*y3M39k%;ODsDW)=go zjj0p5l9_`~o)!sodEKkk1D}jH=Kkwy&TLI7;h*8LGwIDj==TU$d;WuoLMJ8H zFi)SVJLoSJ5A4uDChh|I{1<78iV#YyJgte5i%w-uBSQ8<_cv%lnCcMko%Sg)6}}}4 z>e>culU;yf)1FOmI*9EZHV0w*yAlXc<(O7}ow#dzPh`w|CXjNmP~Zwyo#f=PN4}Xf zgF$*$R!xtTzff#cTwKWL_|=h<4Lg?=thhSSMil_ZZ=*n|1>S9E64fN1wO`zONBu+c zlleI~xzb-R95Gbqy?_4h%Itcb1j*MZC^Y}{_rM>vfE-u1cfgx(ciG(8v~g14a4w?$z716CKQCGu_h;X~6>~Ok5Z3#^pz}BCC@s z9;a2SPU-Dt3{#CO3DSgF=$@XFn^l7vb{ZJyZMfvHtoMHQQe*GF7WCI0c<-Y(g;)g8 zD)*=BCC=a#_sQyM7=1x$c`ZS2iMsBnr8v3k5tJQc@b&8lZK%;eirc)*-a^LO);6x= zOhWC7eil*Rf<7`WyO#nZE9)Q%1`0Vfu|HSF7B9@0ld=A09L?;Bt*Qc>$2)0^p)!Ai zLST>A_`36bXhw{>#=8=}QtKAQ*wNx;w4(U~fK9TvqC>pT`uZ!6ZtBereALXG3~l2{ ziieFZ2Mqcf?Z%kk?-Q@8{27racTdNGIg+-iC8;SKe{DaPLP{$NO*VnY5~}mm4nmQP z@v7vDXhG=@D|k&i{r`}ptnzHBYMLoU#D6X98C&>Y5KeN`UYmIj9*}11ohFUi-Tmhr zG?D#5)JAQ=mHlFG@2~;#;ez(}2j3IB=a)8F!~awS{+J1QT20g+O60%sjb;;lk=SKY zmO3~Nfq-*9J z^F9ui1>(f&XUwVvix})mCzn4AkUm))h3~p_<<7W+7?JaP?ty!+@>+Y|R@{xa9B?bW zxNMoEfLN%mV!rJ2nHyFy92}Y;rn`P{&BbjZTWW552)b}hu>iPcGyc$VZMe+Dp+`Y_ zQF(gRcu+-4Bu8^hze~JO5A{X9jL2{`F9l5pqXa6Ho0&II85dF(>*`f_I)PWg-N`@0 zr!zGYUs9?qJIoh#-QMJ;uo6ZqhB*i6(trvoTVFhkbNilGO5MoH?@uN6vNYs8YlD?& zpMR`;_L(irQXEgWhn(0X*~iB=Zr2sfihipdQr!Pgw)qc9kLPhb`$qApAgTE+_07Hb zielS2}Bz z98XI7iRQJ!i-0Gt>GVx3xBJ+DB-};NBSgXX=?}Y1XNAp3Xj)T|$i<7*DfLZ58%N6Y z?A!<8#s>ZqR7f|Hzwn<^myz=MjS3NgqZ@5L8vNDR?68`euBIl}8~1VIt=4*E48SG(C*+0uQU!6ng?^rziUBktppUAiJHB%4F3>)$wYzFMQDt;d$(M{7X}$ zHvb<*^6p2XZ~CRqT_I;>7)^Gqb_Z-;1({Axw#Qxccus{XQ<3qc&gbvlk%YmH9wLIq zZd8MiX#&?;V8oIoM%eU$SG}yKla&^MK78TyJqWEN4k=MU!7=|hE*kc|q_%$`G1%XH zH+lCTl0|z6i_#4;9@FizY+eK8o2)DepgCSbm_X8Nd+${n&Ci!tJj+kj_eTmGqX$C? zR7ojV>1IAi=%@LPL8Z@b8$&W$Cu1wp&q%v{W+^C}cg%XQ)~_zo=3agVo~~jeGispg zu%iHe#9`W{{eBpvL{~30XcrTWKhUwVT2BBy_8s1@9Ch|yti2R#cuXAV_I9r&YqN|dyXab|~vhkf_U?GQB-HW<>hB%;=FNre>WRR?| zNn1kHyFCgb6yn|pjq|@J^cMwUJs$1`&eJKfp%N*)?(BCo9~$=MTth`;P+Wnbz!`6a z=Vm@8tM9nKHmSdWcIq?eTa0HrMUL8f*(5$Bu2bpT-h5|?8<G z>)OqiHwB?u-@K_Nk$ia6D=t=T=mjo?+;|Z+Hd|bx56S+ zu%bTa!w!a_=-WJAlLz#+80B=tNU?}o2#s#vj(dG;A?D%g&vAJaI56<_Emwks6oKY* zG6wRZe>lHwj!PuH0%Xsj79>odMhjg!sEU;7Ncmshooz=UMJCZw7Ofn8F!~e2x!F)A z=q+Xy7%T9?xy{ks-+jr;uwU!^t!=7r^;M=b>pQz*#2AL96$$8VhHhs+|aTa*M}iIXE(P)K6sUCC$ADMp`IW!vC;d#=45B| zk7bnhlAvmG8AKSq1LNVfEh{Z!!YStoHXnlRiCQHu^~I5!b0qjA%A0i2hfu6?Uh|hj zH$kR7jla=PnSQegX8eTt7me~ujWhB$pYMW{AP`lQKDdX%nBy7L;BK;*04-igO4ltz z4Q(8Xv~1`YFOCPELw)i4RV0g4+WK49xJ6Ym&2qyXp;j+$g|@)%E<(fek;H2S%cGYvjQx&pJG%b-w{hqQnP02v`hXSe@ z5oxTQ?w4Xk#wCud2p@2Yn{{=;rcDRVP7)D0XZ}JwWJdxV3(~!L*(P!(A&iv}l5urz zRkrgqnwb`;GM8yozcZLx>%rXLZC0pvx9<9bZNRx0qg|S!K%0?uFb!0c$Y1%%T;{;g zb(gt9O0Y4=Yg0I{IeVsdnoymFPMYRO#{2M`9y)Wr6uLR80;Y{Tf^^s7~y6s@CRC0G~P%W^CA2o&olsPut~j( zp%?l4%x4YBqiG>x9C|WvbZvR)rg}|UG`SF6dQfyq2~uL$^x<{>xB#^=Q_4&Q_tlk& z)euzc#qcyHH3z>LaTzUqt@-^ybZm}ahH5*=ODO~N4v9xt6PsVGe-*=y7K5iAoj;-Z zQ^2F#qexM#kTPnm8$6j?96a$4NmiVbtKmWmS0 z_83tvTp54Rj_w15=2Ia%f|2fcGK+qMarlnVcT{r1m+O@TEoW$yW~06o*Y}r(tE-e{ zJY_BL9XA2GJ)QIw&ZWAHTd_w?P()`&LvY?(#vnS{3XhekA6g>ZoF?xY68A!hyg`0* zLWY*)w)+UjiCJ62r70Tm89^s+hN$h9?T>_8#^+=hhzv>;@GSzZTK1sBu#|aOGykMo z$rE9f?UYeqhZ%!ha>Q+@pAuXsN}(aEqE*Q7Zg@7<^QuNv2ui(Uk&rIrmvhP&diLLw6M5=4XL=UP zH={>5K4jCfbCow~=GxTGToX)9cxT;IIr&|-cN6zkgjmw8e5Ye&Zss4nXy9~aLZ0;9b;6*(i4Sm-}UyGwv5r?X0G$-CpaW~i#WFW6q|6N+6|_n z*9SDymaSw9KG11%SjMc6fM*=#swEH+Pt#Ni+GyWQM`luy194I_iG4jRuBjd4;PLZ? z&MdC)n1@=7Pv4^G$Vyl@#?OQy*$m+0k?h7#zlITOS%-OUP#GThM)M4$Hmy>2Hs!@J zA%gs5Wz}N0Eol?OluF+7)NMuc6&P2_)WjG==A>2*DXCCWH%uE_heXkv+d?y|M-T>F zJsIN5j!J6QFQ-hV!oGUpW3<9EhA4282?wVwIrRb=!Q}cKvDMkb4;33_>r&q1FMd*~ zvt-z#KO2QmMGl&{|3XSjg5c)$0~(pq_QvtaLBkxGCE!)*?q8$doZZNaUmXhIHTnx9 zB>G|}@um^{O`p~3e8iwtR0Z~~_NHDjhX6^6#8{H}%^_rZ zT9uV%069w5GIVkI7TC@$R3q_bA?N628DRU5V;;*X!#HoV%Q%{of`EuP*|&3RNX#u% zRK1Wlo$Y2D)o{JMH&(t27nt>IJ*WyG9}q4t&1Gysh=a2_onKd{uJ4uhY}&${hutct z9?tDYf_!y!j-(_v#_{Rtb8lD%Oxk0~#&xn_MLvr}CN*mKvjJg#|)bd=z0QN(>71)`cs0DzNb0}BR= z@U~aPneGk2tA%F%j0=yOt(<#Qq9FnjNR$xZWts5P&IADMeHy|_^)R7UalM?pdnF!k z%_>m!cgEFPHUs}A3-!Xt!P$n9avKDh<88>FXCL7|TMYb4@$l341;W`BlSl89XeATT zNw^S5?<{}&KD+j}R5V2zXOGuGFWVPTzUQB2{6j+dlcy@;>9_|YKa54}$;B}$V41(? z!?a2)UQ|P6m5X+4kH*}Z5Y|46=>Ez4upMCZHDqf20gY%+_OeT%b+>z{wJbNz-=5br z7nJq~Dv!@J#P%WTmzPYFhbtu6nF%Y{K-N6UWnUApekN1`l06 z>z$Ux;P%$PrsQb4DYJ}=WT4-6!W`Hd5{bZQ6p04$P)zVkt20Js z>yLBA@I=+|F1>IwdE#SGx0l>N4B<(}S{AjM7Ve^ohx(%cv=|D;(weIEcO;RoxYi~_ zkKyF&Qq6mS;p!Mt+zoxqNW2PbjOtWspR?-XvNbUoUNmRT&$0E@&uzEUP9#3yQ{RWl zo;}=g66Nc%36c(cBKNR^nKv<_W>7Wvd8qmQUw{BJX z6VJu6WsL6VDIH6$+RS5l27`rrrpKx$XxixN&IN}yf4@aHR|yU;iIVFOt3d~WMy(m# zjflz6D@xqyI|y5kPSG;`MdZcP-28DWKN;HCJa>QP26A5~d`bPCzPrd#sc~eLHA(qu z=NfH;mCRr?LFxM;+g^=sdYay}k98E-i{{pW3DTt?m!WXD~t%=FG`>HR#-yowA;EP#3Xap z-8Qx*Hol=`Z&9Q9O>XOb*#tZPJ@s7udAYKASwj?jx~Q`Bv*ofI{PkBe%QXd;jnSfv zN>8Jq(`ZG>Gl*v2%sN9W4dbmt7?x9NZk)Wx%fmtGo|zij{D zFP{k4CuGPz>AIEfd>bUQvA1^6LfSoUa@t$i*!Wu;K}U2XZ}}E)+z@r&Aa~K{5pQ;5 zc?ycnb||GxSvnxiiu3b>*=lO1r@YZtDJEEL5+R{Lz7i0x3S(}5h{yS9_^x}&Tq}Ol zU`8>^Kcxy8mZ-k$R%x6eUauk?XsT1T?uOQF6*^;3%J_w4QOSGL|MZ7aLw zC>8jc0{$i(fcvyHrbk*EkU*c zIE+D|i5q{DSgF8BRk2=yokeO<0m@*xKkrj_))bG#4ey4)ip8(?L=%S9g3IuQMY-_ghUET#KO+_#^cw3$1 zk{>hg{eS&m|4Sf1#@qoc50S$dmILa#m=bids?8MkA}F_`J+fjfEt zicQD;{Uh|WMBo%P^kTbceZjrsQ6!|PGw{nk-;(D8{BY$waVKlNPJ39hRg(>Phi?j} zeK>LzYU=#FM^}B)vug`rL~E;~@}-$7%5Sb`n9o!sS=ShFd!>CsX9Yz7_d2 zzw|B4$2h9A?GI>5DeIh*q3P>Fd^D%C;RD~WQn8#g1k|u7da#2!UvI6lGuM5w{`RTf znfl@`O|0zjmM^olQZ0PNGTPxaY&>jChQssjt6UwT0eAI@NcyOM=~k-TpIpi@)fDS} zzQ?N8WuW5s=#NC`a@4(W{rE0q>T4R&PG27~>yCt_vsoJ8$_CQa>>6`>S*?zfoqv&f zYv&febVh&YhrogWHa1!|rB&;97>Vz2ybL2wMHc+RPwlTTMxFBf!nXLn`QoYp=(zEG zrRYF3hb|RH#Lf+{7Wscjz=;4(1*sQ<=7A)CvG1nGdaTf;%?6x+5Q0jH@{)0>CueLE zi?<$Jf?M-(C$NSqf}* zVwR9{jjg!mc3i~Ie`mS=?d@WaeZA4iTPnhJ6IHmE2lE{vU4oblOeW86QU%Y3aLlYI zt#Mdmoi$*}j}se!6;?Q9z8qyQYK4Qc;0Uy6;Q9IGQD!@C%kn(S@Y@2fJ6_wuc=FuV6P+#e>f# zWD-e_u_~_8x*9WA9Is&8A3G``MXwAziDc_+rTY6@%i7z6eVf1_tm)&h0-7oFww69Y zxLd)g{x{LrY9MQ@udkWv_+fmhXOI|aB=1UGk)tifHZKLQ*LFTL$na_9V{3-X*vG4e z)I2ukr1`wlvLcew=aD3{}=2{`!9;WoFyuD7O-!<4m6Kc-`^du4>uz z?FMTUK5O`Q4~9KGn`@1u2w68)OwG}dcQ}l#{*KKSQ>axDGohJL^knKe2CuDH{N-)K zsbgmh-t7FSDoZ-zS9HObd5H3yXgmOAB`-Bqh|8tEj|&`M%u zi6yD9Xch@V;GB$M^U|Xai7U_`^5O%$Rl7L6%}$^Olc+0qGEK(8nJO;whD?rFsE^HxXoRE1t)qg1xC~8 z8lJV=TzgSlncBV4y>tQO$_=Qt_V92-LhrmO{$evGG4r!C7Jhm3Z7%H!bfnOD^{=$sQ%5~r3p*|F2gHleXfPNv+D z6KDwK^5*7K{q*MKrq8?|Zc}~R=Y|AD6KCn{-Jjy_ge|wy>uZ;{J&Qq7W#2YdZBT7; z0_JFwxXP|?b5i#&zPTc38sui@(W^BRu+A64Ns?fWwgx5m{^$nan}QPL8Xg04u+cBM zYN%NnZZ%$9-@s;%sL154MVsoU=yEM{h34J!hLJ_4JeBX%C+$mKenC7W@cY?F_?81<6GD zS}s~9!*^nnKg!R?f0h`~AuxE}Pgb}MJu&lHGJf!#e#TEt>-cn2#L~%qS35Q{d+aa-@Z=Q`p*4L4TN@RhC3?^P60- z9H7ZmOA%aHU%v$A;7e9Z5^i9vpJ@<_uso3mOe+ve=?*SVf9P36G=_a|hj7Nhtc6An z#_%2725;@pLt|vhQyOu8k8$#J8O=xS$_b2tTk;*=69=v@nb|=xo9bJl{ouqjsSD59 zH=ha?L>Nk2W$-_D&*&Q+nEE3I{Y~X$!A(RDtFcUcGm(|=5+wtvkr+AfDL01lQ|eLc zV8nk*dL&g=o|G!3c2O?<_|F&&yxx2wW*bIvKjDat0wS}&7TK63Wmfo2TH$tr2js#eWra>6kIp4LYs z);HlcZ_QLv&(5)#2K>ub+yd%RCP=vL-duOo^ezSe)*a}fTqEGDOy`K<#sIeRLrgPn ze}fG}8$xoyDYt1{PP5OM`nz4``V`uE2r!ta;GwX+9id~v#G%?2+B;G1G#$0%=vQW5 z<1k~o&m(BnW~ql427(AX zAWY3biKziCpsr%pHLF#E#mWXHz>mA34x~%ID-dZWzU;G7KQOo~MNUB_1&$uVx49K+ z*s5Erh=_kRx!bad=orO?!Z|jVZ|7e-I^-Da!oLvDaW=yXeDI44SJtm5l$uy~^H}ZE z&9lV(d&dJW=Pzsr97G!@t6%3`rw|~N?GX`U#0TT~EtTmMEm5`rls{D$4Ux#xg9>h* zTdTsnh|xrB9_wp0Yer};m7Ct%F{8~*DSIoXai%_OM}Q*_nUc>dv8!sUn9PxXNYUK3 zSd0G~bz(W=WFK*0TaiOvl@#2i#M#t^#kbfO;=vxYBu5>+L{a2Mj%fbUbwdg)XN(EC zGSse^X*oFqTK8|3#Ns-d=?X_uGS{){*ezI}$8R-G&v+3nS=+1yb)g9W>4URgHE+eR zm8i@&#|omj>5cnI1tg5UBVQZ{90;-$g2n@XE%5mUO3K#`Mnarx0kkY(u?`pdTpH=)?2A#P-R^j0aDzrak&r_$)FroFDAh~EBdp2TH1D1~F4t+B4|G&$yo4pz z&AtZXNsu_ufF#8oAE%(=9f8P?iOnDCBhNk2Hp%t#tNjbtRaoTb}1dtpLJtpE|bS9$!C?IbpPP%2)*a@RLc&QH9ReA#{SV*bl zKWuD{6py`%sw;3`I$u=L?z!(~EFkbgjV8{ROUrcdHj{g9NbAfy-8Z|m&4gup%YYJJkN7jd>+4q;D2SNrFj{SbZg#hZ#jV?Y z2k5nCwBB1GzV)@0eYuSx;C9F`opSk=e$e!YR2I?bEGi>Pjo3qViiRX$o`=rf zum?3N5;vDY<>zk-PME+k2ev1)jCJY&WB9BIhjH{VWo!GNH9*drfI~>X=(bY(EzwC8 zu?Z1{{6&_2Pb1Fhpl~_kI$dB)GTSHllO-T}hn#wM?m0_zDwe6K*=awxJXhPmavyW3 ziYvH^gw?Zx47!ANP_wGaM$=cGaRw&-hKsS-DZ?O%YIkp&p$}_cWH;Xk&Q2H2_Qnm% z3d7#0o2O&0Prk441xUVKevPSi(k}sHd#O*~RPI-La`7I;>EtC&L>5?%IH}T&F38nI z57~~H&+?prs%;ihz#=pp?e#+@`AfayqO=cZo%A|10XyuiE_6zV`w`(Ml`vVSEhEzP z++8-@;8=;_JJU_q-3_fwxv4w;f(Dvf_KYZyjUrh%SmxQEQ(K!vM}%4Pa<>NbJHj+~MKQL% zbeA}*)bX^S%lHF z0WVbJwS3hE4rvW*FudId;O=#`WAW-b7>=p;Oo;_sK1?lcqE@ACw?NVW7#Q+6EKv|8z7a_JQ z2ZgmFbxhdC;G?pRu2Ofk?^B|Kt?VB3?C${9K4(*^I; zu|KFJKVIVQXha23&^hAlXdCEE2| zIHKw?wjPlg^x|}#GDWlpD44^_TUm6wzAew?*`#a0wVJ;zj}9=_k!BMnBq3>3sVCtb zQd_<%H&aFW(RS7DOZ~V|L`-!T`QjA)!~w@u5ec|dxKkOBEc#?T$7pM@t4_stWS38NbkBfCVOFI-#N2^*kG%I1sXn>|E-+I z4q39qg}ItJAnbrHk7ewE8GE|&j(J=PpNT`X{mmx9Nq`V8d`6{XKs2(BhCC@Pps@*p1}eom#6FCs-jPSuk_bIdCiq4 z%LIyH4JQCV+=Qs!MDzJe3SbAd*PWq&`m6ir=VucO8Uu(vS<^QO3f5uA37~3rvQS2( z*+Qt&y4S?D(RZ-k)x)#svvl<|&DS|k(dYEjq_o~u&OQUMrr|#%o|a#W^&3d{D#qoe zT}1Kd>jiJgGrf;C2F*Fk9GFI$8yS%-+bs}i;* zcsTTVLND-O;&2sHm^~;2r_e+|fqwgmHH$;qYstXt&!6b*@AtT}-<26xW-9?N-LXzG z7QwCAHs-P;&ib}Kf5ZV)&oJJic}deA2GQ8cDU=Gt1_LmJw~@b!l`_?3ZVoMu ztt1S8U;8llX$B7~@uY?ArYIi+ljc|bEpSJG{A?{_j2n4)56m zbB!k9l($5o8x@6((-LqJ;j74mj8|M)+n$Wbvm%e4c)orzgydE|%U@;o`m&;}VLii5 z6y6Eh&p+HvPftJ_4p3xl@eMHP%a^*=^S|M3|4WGEx6r>6a<0?mH9@#tX02hQXTeva zjR&?)1aDICZW;q+k)5{-nG{P74Jl5y?Eqe~2s-yL(UAyfi5kMBO~RIH1A2MtzY z7W1y%U4qJvx4*30xmbYP8S)2bMo#*V~Y3TNMLQ~MZr2aM|EL2MNaz=Ui8%KX@JyT5z#~;N@*Om?9;2j0t z{vz1fxZq#v$O>Y~B{=z|O?Nj3-!wJ%G_LO8Mh|>lU!Fq{ztl&j-HPhHO7THDnOduP zZk38cl>OY7qRLBQLaOc*NW*8)*boqWKmPNgU2Uea&$%H`D$>$coFJkrjoaf1OcCtS{0iM3 z*i;$dF1UdehrZXlqrdORC}!Pi2M0c$n!35G>=8@Dn%lx))GD|n3h1HAs%8gmUvyWe z7Q_cesKVT8r`;*xq||%5-t~qbA@e|?7KV#~X`_ZFWggW+P_mF)u1@{z!l0)S?&>!| zg>r&rJy&2IO9~^~{DovrCHqZAaOIAoym0`Yk4{-vh|~w?$WJRX7@Lhfb&pM3xb6}(2PSJ z0yWZqH`caX$&N7EU}X!T27HCtM)m`(Cjd-@Kw1lq-K0jJUeaQZFRx!*psGLw3w>5H z@X(<4DB&VG{P{iPU1HsmhplrieQ@CBd^>WBq5$LfxoeB-$hqej%B7|Ga&Vivb(C~4 z$VDZgorKEp;WeYXY8bL4Y349TyM{M+p&4sKGkoPBm@Lp;*l^A=GM&7toqqCHz0uew z_zVPW&w-1FhgOh6Fn{8JhsTH>OY^PrYX{-ALE}p6&6G;b1Gi1m(FwtA)34EX(8_sQ z$NuJQzruTiC2Rq?@;>i84N0}bR0q_8DUWQiWWGm0ZkyuUV9+HedNy*k%yjrO(ANX-9Z{d+rrt?RgF*H-Xcv_f}JJpqg9~(Rv0!pQvsy|5=|8z z^()K%CfD@NeI|l94{N)#tdu&b419EkX zN&1WEloJ_ST;LNwr(B=F&f4u%pz_&jgUR1H6HfyEAqn1w|5^Thzs3CPLm4RhWt1EK z-#+p!<_ATEO$WS{Z*Z7kq~H<B=F>k7z=_{Zf0a!xQ> zgv?_wIv*u9wVA1$S+p;q0MM^=`S6Dik12ImAe8UNMYkF~(XS$_BWA#js= z^3)bz&4xT+iCmGUOARIF)As|{Pb)>4HG|0iklxWD2P!{Y`DTS>mql+C(b^nFkfLQ* z`I?G(Kr)L6GU46y-eedmlp9zQ)E3U%?H&s}BsE3@SW1TCYzr z>a+L@w$g&~<4J+CQW@)V>IVsO=bbG^(!Eqc5jp61a*F6(o7KG8#7;70O<%3Bw^NS| zADkfn4`p8&6=$=h+qeY{7HHf(A-KDBa0?Crg1fuBH{Wjm=8{Xd=WU?DOttk%b#Oi<5ZrXqddyy71F zlnF+J6|HPF&K58rad7+Eht%I(i|R}p1u};eWFD#zYt~nob@%hDH&7*jMF#pUZ9;Z{ zDGB2K7#`JPwwc{^j&cpNFmBN?D=wjEV!1i`$r#9$Y3j`+6RMY|#y&LC%o86Sa&GA-JZ0nS?MpAGd`%sYC{ z)a&FA=98_&Ot#Gq6_rGL6TMsg_AWLIvf`5|52};u&#~_=DhJ;@XI&EqIB#rIc(-e% z$>N3uy$5d%5MKq-WLrwVI!tW!UNMG|>3YHpW3;sd zEf1T(1O=kPI>dSa?LS|$w--BMvT%AEZx245?j6lbdtXH&6?zyxULPQJ0O< zGP?mk%3cylotp%$Qg0J>Neg*DAFuW(=S!H7A{Zo$K6>2nmi&YRo}Cu>Tls(1Zz4#z z6c^BJqcR=ZeF6p53sWa7irr?gG%OMR_#X zn@0XeW13F8U)(rQl=3cZD`GrtWnGG3nlAszQ%phSsE8S89K^EypfM26jO!Dd&5B>^ z%*~SX1~$`RQ?Ipo=6ETIaQTljoD$klgtX#XDzW}H3o~7MPYQ`NU^V+K6 z{4)G;4h!mLFk(_J42*^)+333t*^K2j8TlXNYl<>CbYqyxSu`~|m_0k>I(W#L;?66H zj8^65>4!S@uxD*QWfLie{@JKv$MPb2f=s892jV2JBwHB`m)x2sV1e}j~qX1wn4YHM}64LTzR4+%=QPB zmjcye|12d^u1v==30E-e3%$%^Wey(zB~_w3rk@(Z!fT-0BY5^9&mumzCU1<-=UkIS zWuR`-1BHRuG?58Bfv|-LcI1RJyL~Cq9W?D(69NoahddIS1HM&d=;dY%_TweMO- zJ6h!vKG1vvHtyDeKDlC> z&bTdgI!*L-0$nuJ16?>sMrWm5jf^rnw+BzWBL`a78QH|2A_nlf%!)2M(EH={G}tWRB{m7d3Z?1Q^_VvSKjmsN&`Am1g}cw zm)z@BieaZIW=cx(_l87*0Q5uMOcl)S2d>g--L;a22yeuW8@rBt4rO-IS*KWTABFj|tq( z#n3+soW$P}~Y3Idq_$C2N%=uxUCYDF6ejLx^%V1DyH5&?gJPLgw6F z8CbUK|LwuKm!nPUN=%n?e4!Sm(#G(fk2!{Ix~V+E%mtBS`R26qIgtm>;wm$R+Z#q^iLfe|?4_Xuv zyV{`AL~Y7Cs!wP{KZ4b1=l%Z3^U;9w^svveyf2xy7R`(_f}P*-gNO5*@usIk`gI(k zCKFzj&Y{YEC9*>Xy;IDFkzA*OJ@Oz)pS*=&Hd72L-RAlD#;?Bs;XMdY<079&ZxySC zszW266k6JOB8frdI3nz(-Tf66Sz_$Q5%PVWj=_gnyOYO!;!(~1^-j=>7}jZC|NU_` z^Ztg4+UhMjw50D-`i1l{5i0^ijl(+98uGPpjK-=!41qDJUr3~yU$jMLf}i5>(~Et< zD$h;gOeW=#e6cb#Oy8BN9rxg(u72ekJysD3Be@|CP%hS$fjl^&iLsevLO8?a_UduH znMSj8zPl>CzJ6h#JxutWL!2xc zoL%|7U)=WmsKeUO;Fmh*8w#5y#im+H9S0iZ%N3hhz%_LUZeq5%$wr`p`@Q|jgoxqe z&GxP8S%y}t*ZmW2qvBwA)GsNkk?sXVRTBOckdXj&fxlOVBO=WG%z}tt>hHAN6(hU( zeAUZ>o3xG_t|;qLmAiss3$lGXH&W>}roS6`Z!d59-zzf1KWXx?V*UlNAStrBpLVL4 z$f-3Np-=JpHNH~iu*sM5^Ov|>0Si^YcvUDvP9F|N z@Q|66B6rl<&YT(tg`M-n93F~zrme&K{JB22@{+e|Ros4olq-ys=yYyF=+a6crFKwq zYu?VdShG^)$K7LMo}Ln6dy!2MgG*lWfX9!lk8JP^HFAF1OG@>)3=;60lg9>C=GJyB zkt@hvr0ZDZw#5K*fFq$BESfwf0e6EJ;hlc{T|gxF2$h%Z=l47InBBzmz7tb>&`_Sx z7AI;9D~qw%FA=1lr_#P35@{Q^YuWUv9DE5jHK>%jp$_&U-!x*pn?8B9mg5E9)i;Ge zn1jCZbmmF!7e)gwJ?ppIr(SdaAh~-Zotxk|u8v$_!L@p@61$=I80bedq8m);zwyzg zns-sc`4CC#i7b6~uYRIfu+~C6C0u7r@F;Op@skk;R-1hL<54dRu-_Eo-?H8!U&du+|lnd>AoM6p%u@7 z1SH1Aogk7N^;)8Nyo6}_ABbB9yWxW2><#heRRk$dwB10X2fxJ|6bf4Ul2Iy|+>R6q zlCG+_L2wil_$}Vwa9iYanzo?EG$5B9{Ha43xu3iZb%!I$B%d+%e)aC@HT8qH&>PJW z^Wn}?!0+OoGvV1~$)nVnr1r`1csMKR@DcCbb#$V{qrzFOBtwyH@~61Y;l4<{iQXLU z`5!6#{MDsbG-BuanN*ic>1o}r6Dp?Wu?aJ;Q8$&vK(QN`0LA{`yoJu=3TCHd1840` z`lRsGKdkjN<*Z6=*AIzj+?`Za{Z=P!RPkN&+Lvyq^aAdEyIUKA!JHKoI>letK68t|pi5JfE4wpcxB?u_5ay zk3ds2f%Aq5P2~;&7`;i@z;oOj+8bBs(kRL&=-RA9)ne`VY8gd4^ZdhMiXdIBh~=Cw z^I7FDfd7_85|@S^9PQ)Hl_lZYV3;bxpxt^6Iv78m%DF1001cqzF%2so)h(X27hWweeV$gZqZ3qhiEj^B1-8PN*DX` z8l%xnHx8C*YUY`Rm*!n5Lo84X22IuaPo)*eg?@RVV#d5+4n(WFH!v64*aecs24B(m z_7QM<5wFH?EL&yCD>4Uu+u9(Z;mm-kQJ{i)w<9z%uQ+zQz^d3twgrZk10=7#czr~%sVH) zv`aZQ`U{XqY@VKklwg{Jyu#cZu)6p}IydL~#ix=hy~QqA*0vj{V;d7!SvN3`AJ`WU zLMwc(;KrFeIkfQ1V$vRZcC6LX&}IL=%wi60AGnxN!Y1io1o@X+%BYrhsVO$Z6d!uA zsYqL*Y$T@{f@0$Dr6xon_@~Kd#sLf3d#$`h1&~xc(DFtew-4LR!_AGJ$ql)DC24H4 zIzBJhbUBgngkm5W8(ZHau8_uBCpy=brZ8zEiKaIgETZB+xU2ZNfxX$xA1#8`-@MKa z-5lNg3LOCB4^V{-L4bO`Q8f$y*_CZivxqn%?vSD)Lg#}Eme8!BwM-C@OyG`g0CTJi zVbo*sVgI_HTxoQ_Z2E(}DU9Lv+<>rtcFA=C2nQU2om2-OhEsIU1_K}M)giOt?LQ9O zXRiLfIxSePZ>V2KOTDnMI`H0Ew9Sv6G-WQp(QQ-U15*j~y z2igQ-E)!;_rpxso{d5r`nnALcjsWu_*`)%!&=!FsNjrfE+59{&mx0Lr2%4qS5c30A zUCBjUhv}eiP_h~-$87MFp7?Xpc5Rn^-|4mk53oF8hn;uuA@Z4A`)UuWPV_QZMmy@D z#}}PA7}0sNHy=e#7AjEATh=j3gU#xc14?)Q^-5;#-(v<$WpSKHp~|INw7(D~uYl#x zd^?1xNG;s#X&q=%#w6-)=+nQ9m!h&Z_D!slrSLha?+1tt5JZ<*mHH-@yF~DrN%0tW zeO0s2bW3d-j)IR4P3*9#eFrIhIrZxs{#m;E5d@3a;R5@W;!BHu2ucijZ14t(U8D3N94) z;E6R!xS&4`PT$Tt;i|O}T#aepXJ4i_CYks0_^DxgDd z@SBXg)2M!N;0s{p{?`SoQpw7qYD2DAO)2Cej-lR?2OL zpDjQ>CpA_+>5oX;A~LD?y4O30!TW~jdk-Q! zMgDUg)>YN#shMSaz8NXY`iYGz4u!4kompWkp)Gw%HnuIBV*p5Z!w{Iz|3SgM&&}0% z;Yt?Qsy0IaaKvlqzBx$n;;EP{M2f%^OBwJ?N87nwRpzO0YwEY`LJ4Nv4N+)q;f z8}Mu^}=r$jCdx(V=h4I&dY3N zv3Odgmawcw~K9{nPhy0=sE-{R|E_TZP&6&rzz#vC1ZqXI@TLt3u_x*dte?49?81owRad*M`S<8E_kO;2*6$SyUhC|>4x6&^;5CP`ey<>?Zu;1uXM!O4gM+(E^p zv`x3EH^48#MJy1K-h}A_L{L3GYd!`&X+%uT&2YYle3t7%8ei9K)6esfy##u&LXs@% zAI-+-Tf^{($6ia)?lvwfb7+q8@`@|{*jdsmi86iwh%JC zxfvBS?I`nfowfr93YBKKf_0Tfyq`VUuVcOts0|0!6=eA>$?mQH zHOYTdH2=|G`R^Z+BbZ;FqbzRX=9FnAbVFNt;0rhg?+Jp2oOpM zW7K%tZEJ`)c3utmI$SPLS1y2;{LSWq^Xu%Y@v%=8onmEL)urQ4VYNPy`hj{074d5m_LO^Bhk2}`AEq)4 z%E}0mhW;2#ZN;Zt$ZpNUy{OkhCV$+o@jbtPj3CwN_IPmeXA|~E%{j6wKvL$6GO85k z?O8%wW42=Er4}%9P_jO=pQws>te;9 zosC!d8J~wpJlUwtac@tPVFY_$`KUh@d)DR~Y31lP^riTH`SN3;MJLaKy;PwTMiS7R znq`_3Vnay$5B?CobxIpvzSaC_fcHAjbfVh+T!;RZOFHvU>&q*ynYK%i z&XG=16aGW9<1ngfp?Q371GG*Ka3?mAn$4i;U05gWXRd*+XnXIU^6TPdu;I7j!c<+* zPW8`+KYszz0@j!>tX*B%6ggUwZYbe5o|YMV`bp4Jm6D1b9f9PwD#>8E2)u-`G_4Qma&{Gcq|msYJx%!B0y=Htmj`heT zCD+VYYEycpdoV758qbk~Lom+StD4&D{#G|r;!**Dz0K$PEQLm!qzywBM#b;j$Dl?6XzOyZQO?+k+C5*X5`_yY;%YmNHPsC>j254Jgl$bEvVe|WbOM?JM{ z;SK#1{btSn0*Fk}3OqMp&7bMqRMr+UOqB=Lb=wr++8CtGdEI?@K3X6@&o++peNDzc zb*TB+XfUxj`}<9+yI{>>^hmoHT2a*HVl5wLH7p^ag_IAocBSz7}#u9C}#WT>G&PjVOrpi7ctz={YGN79G3$Ii` zH!qKGmYonSlDp8zddWxPI2N=FfPUrq&pI)^0I=09BlU1 z8jI+MW$q$WQ61+6ZU z;Rzg-!!pbICNga+Hd(MbzrUml&&N|$t$nM5%oDt9sVXD|`d@`y$r8p3A;tr2f#P+5 z72g9~Jrj-~kx=jvE5|5cM(n_ZHUpVo)*?Tew}7_@>Lf$HgQX6d$CPF9m@Bo_PTsJv zLBUrk&~oMsM^53FS=p4eWin!6SZO{=x|F(Qn8$?CkxIQwS{S5EfD;j|X^cj5?@fCC)%5o0Z6%ItHhqM{3JOs!q z1BW@&@`AMxX*lt2>Ns>RZQ`c+d-N%*&6B>nKdA~-F?DrZL-SDHy4sK#nD}_T2;jyN z2H<0jyL!xYwhaFEv7U03%V!_Ld2T@v4Nm485>cCE9`88vODP*K2^3l9UEv@mbSZL0 zPNSGm8yuWdS;;O>VCFw6z~+%qc*U0{t}i^W9N)I=Z#$2?+-bw%^I|tO`l4Ds6{FFV zzy*6?WCTq!W`_YLx;fY&S;r-8P6<}JdFmhPFOVL;*OxhP&91drb(wEZ|1>3(YvrZa zqHq2)6ZgAFf=#T()7L~U=B9|yZrcZkEK{fg(o_*pwaf^Ftf_&n3i>f>>?Sd<_mMM> zJT#Dhw2JO*p=JYxnrmh2JS$aUVbh9(y5ZiIjWr&}gw=J@hJ_eoE@tc^ZeoeSMa^eb(|5x@`D)|hF;MJwew89!B9C)I>MC|wn|{r<8%UTg znJ}C6VfzZldBl0f8Aaa*errzs*;sz`M?iPwko{!DaoL3x)aHN#p zjvTcF>MjZehokN12eYNOg2e_)&3+ZODa+pcqiuWZ^<_*Wh4)5-;sJg6a?H(3`ACt1 zf%~ChYReHrV`HBW4esP+BJM7^AgkL+c7ItwKpX4U;(UaB39u9VJCU$+6r zH#z#~_3-lW5Fiw?gbl~=ZO8$w9G7I3?OmM{8tVx;+Hy;*nPa*6_)X7Unnn#-2-%#% zoz^yp5O^MlCa(`p)-a^R+K&f&Et z{ZW)4A*laI{Bke7M|^z+g$3DHJ2AY$KBdHHf2;7j1CwbEAxbl=6CS7y`jRA~^$J|W8U*goM)9z|%+jRLu zQ;+Qun(l?(YM9LVd#F#^+T3(1;h9PM&V$r#3m3JzbM);^-<}F zBk?2Qia}FAM>K~{jC)DLM*Vwv@|aQTStRGTUj5H1?^ACxbM#MwRS0obY4a$|9D!`D z-#a!o<>ND}%-s~*{xj#qyz&30B+_{^-X#6j|0w_I&C>e~6(=~S+}7rDfQr-usr{3` z$6&7xXgHLKM23fV;3j`G1H+#r9-^`Y2k&9P#dq_YiEgORLTc~psq4e#MlH#d4l09; zh5)B6fPwBV0!Ad3cL%u1o*8QrD)T_tLPGyym0@U-Ao1OA^fT`j?|h$CfP^;>c_cyP z0oF>7oQ~X2ih*&S-{|!rR2aA!XTCi(b!7y$oDpR(y4g;V^2@ObX06zR&!q3 zmkZ?H>%sk*iF%=H)4C!WS&U&Ze~%g-4YzlJJbnBQZ{nWhjxzU%%DnJoa))Z5>dFby z95g&>Pj69q9;DLT=^W1MKKm*!X|2=vdTQd`t*w{z6E18!$M=|apwy%+X;0k&fc!?AN;2T66zS2xzYpKhs=m0i%L z(Dc`*LiBb^UE2=hR|_-O-uup-;D*q7hLPjBQALw7WmaXYmLe1b)`-ked3N+YY7Nao zrYE}#CmX+m2B;h;&xfu%c#kC(skO=zXV7&7aW=ImdIF6L0*kdVv4e4N)S+~6AMV~T z2a2|8t1CD)ty&$h;eu?%SqL|+Q^yvC-nA&T5^w#YxcOoo>a`O(md_REt_))8M=tGW zZ=`yere0-HB~%_+>u5K|GY_7DB`a&9fkmn>HvPKBoKxp`yK0EYOsvHq2HUA~Ol`e>d=ZBEY#{8O?BY}L`})Q0-o_)Q#D0J#)j)4Un1+i~ZZe+)q74LE zO&{F6V#4vDpny}4z=lff5KKntX3V=U+*shZ8m)Ca^@rP6IwLkPa23g9WG-ds3FE>3 z^VJxJC}2JF#Uy34a=GiPZDT+EF>k_zCs_4>OjS4kUpH9PWS!*IrUuQM`D!z?qjKdwy92C}t837xym?R$-e4+`q@dWLpTH7L9p z?KR5dvmw4Tjal8a*yF|vVZQ8kOx9`ucqq$Aipnab*9Nm9|(29NH+V&I`(2bD*2GkyCv^8G^)LlBZdGh`3(sR@CT83R;(F+(2 zL^ukPn~Tw+piGX5Z(G#)t2YXY?YfKA!koKSe^2&E;zL0W5*7kWv0_v zwINSj$HSR86H7Gp5<2{9i!GN|-FXJn&s#Q@#jcTZYziY=zw?l~`iXdc!F@Oq&B&{U z=RDzFtzeoi+U{%v2VUM#x2+j`}%J>38YO!j8{gw%H9u0Pmt zqtU)v&8;W;$*FiynH5LOsRM7u$||^U`do}7;b1#IRCaH3{LlVCZl`)nGL(qkNAB|f zAOQUh>-cwc$A9;TN@-7T+)84m$X*o5BZXU|*84 zU6uxfY;u16G8~6eCtgEEApyoEWYD)4C0MI(4fiQRwb{(X8-Vyw{cPs7@q* zsMQz-U~$9LS=qrqnlgCMYdVcL_6uy4@tMnZRR6p`n=3lLB{x~`!T1gH%4aIeF*>$b z`s8CNzqjb7zBad5|%%T>XgR1gBGL1q|GhI^m-WiX9s%b}O-@R6av z+L<~7%SV`bd+OB}lv97EN@K&dAUdp*y!l{6W$Bt-PZxA6h9t~)B?vFF93cGu*+(#$ z;I1gQyG!H&O<48Sm*HvU#!ZE?6vd^o)S5$wQM7ZzM!??QV@$~BE+`UiSO1kj*ujB% ze@*_mpN7{`#HB>l z^=wWNRwv7vpIJ?czbaP0h1b~(f>YkPPPct2>>j#a6}cD2Y@KCcvs<;N8s0s>yGohM zMr$%)`^e%ZE#rS>I_89G*J@5#%npo zZ#K1U9R_dn7knhL0gvs`%++Dxw04G=!hT}2i6DZ?5H|0+Kt5f7vSI# zmonLQ*A^p^Or=%-p8*$GewME7^Ef_id;vKoR#wl=mh0@}LNqaM1TpO#*|~YXZ4lH} z4yd=ZU{1VGgVQO|B5CfD5q=(u?&6PQyqIJKtF(>dRVZ|p+Xfa0ie36p9LX&>Vn{p+ z^=Ih|vRN2hnuCm{0qkLCSJ8dy4?S$xcl0?0KtUABKfd=;e9TDra7St>qc){hY(gVrY zC;wFX;sGKi`tYVjX{kN86|bl4*yz&=<*e)LM~o!JT0`LiaW(bRu~H|9ELd5ERh(#A z60QHTEDY&@o>>J|do;o>rZX`f+l6k!S({d{T4bA#ewsejA-IuPS^56OPdl9LXm&36 z?UubvG{(A>@_l7Uxux1+QV5-62H?T8&|vAwhRhtLMf#U>McA4Dq#*1aS41(v7h{i0 z4u0R&WrZ!S*uG+ja0LJ7UmK~X?@|?xBWl_|Gi^IxHavek^c~Y8w@=p?_@cRKk^&F* znoH{k=?fBi+8H$;tctx34V|7LR6UHfx-1}rzkj9_XI(6i);3P+_hrSy>x(~hXRvbV zo10cn*Lc-*qitRz>gr377s3*U%g}bShHNaJ1sPlYfOGvGrqVyo`m>#&E&{$DJpWDr zuq7^wY0ipHGvWaV_+IrS3!U51%jKG8*SNM$fkUV20@2%b`V@=3d~0A}a}PnWp^%kj z)VK;>Bu$iDJhN?7FLJJxUHkEqId(}0ik8^&saeWjw=bU3!V6>S?Ck6Oml4~!JLy&k}G11>P9c_dc*1d0&hnt zP8Rz$OxHW9hc);SR#GN=bR$EK?UvBwD(1sSxk=5lBAtwBSqSY-Z=ifW1}~*>CB-2# z&wvM`igpjT5)f24`OEUbY555qBeN}f&uYzhmYrLO&%s6ZrEc`h*sB;IelH~xeNOyi z;$Un|>j#O6U^?sTX68ns6EPI>V?%o$c8eSKe3wwvNj}UPZFXE#%fvD&EB$b+G_^{x zLTEMaARU-A0A*hg&tj_Jf&D>>nn^={8L83L`KkpP+O`A^z+D?9fuP? z7bjjBk(n3z{NA5mj|7S2{(dCd*|4Vhqwdy{)e}+Gc#!Uc8TgF5?=C1M5m-CIEwy3n z&KglkaY|?8rK6KkBE6;?mf_RkUyQ4f6HJ2wpK+1ok0S&C2$Wfy8;eUTW^XzAS``b7 z%?ur80a&TiVDbiAIdeGk2RHzT02r742_V@$+ka>%SjrVPExm18DF124xLaJ*bH8wt zIvbs56|rPwlwpEfwvP3Fpo5Gmu}N3`{YRlrJI-;$Mq__WAwQugW1=sjIjFQ3pT8X! z?|U<{FLS}mqPkk@fp*Qh;q2G)qx~J0;kTo)JjNZ6h zWNres10;gJRW)N@Z<@t$D;C>3qD8K#B|+Jd^(U$vV*X4j$Zp*8oKTde3_9Q=BErz| zTvPtx9w0&a8PTD?*`J*}N59wTB;nkrp$I5r0y(7WpsJ*6qXtH%pbUrrG0g_bqq7!x ze)>h9np0(m#aF<2R41#Kb+V9b>(XZcuf?+zgR@x*X6RH|=wN8Z#9#a=es8_6{o=3}ZNQ#X93LUP9$Lj< z9z5(j0#1TZl`z|oN8@huH@@!xUbt_yxil4yQ_Olr)!3Cjpy#YkY{ZH-Dl-+BMVlBd z^hOfWo@jE<^`cU6o-|V2b)80YT^P{FGcYc_9~eSa_va<-+_~?^8zzpnjXC|TAR~~z zlf5iJA5l1+u(bprL>f9+|4Aa#aS%V;DC`(mU-QA5s`p~$Hi@}7`Q4xTV!E0Er5%TW z=$^xyODOkPjMg^%JG1FHHub{Q;*yvS&X>noOiaoS#Ok5)@gSCIZYGy|sb!tkr8Cr~ z?%1NlPdN7RN&xb@Ed}<1f@D~B+=MtP26A>t=XO9ZtaV&5+`d@=?a`mHvqy+d`qAf( zL-#VeL?0OnpC*b0Q(NvM`vv~6aIPX=8DcS63VrE#z@1b7Y_(J%PZsI3Q--|O-ryLL zAQK!1Z^KUJugV$!xk1GT9Cw?^V_*03YKeOrk1(oWu3&+HCgS&CaMd7<&}j!SYa;}1 z&l4MV9jytbjn5g7&6QT(3S>2=;*{_NGd9&Z?e8bHz~3kkMRJDDd+V2YUT+S?524l0 z4B;<|rK6}s^ucs0k%SM9opmRc;d~hG?92nyYU*PyJ$!%iFc1oal?yOe4irxT==4K>sox;vLXGADv>BQka9 z1MQ`(vAll|?{KXh!|Owf1Q#%X4jE2a{`yEisisj`+-4>{oousS_7{xo*h9aHC~O_) z-~f0LsIsl1trfFQ=45uVWJwe{fBEr|W-^E*?A-tWRJ0ds6&Jv%J?@ z$9Ghiky7tJu5x9nP*y@PL$Ec{AgHUW!D*D0bXxkVVGA4*Q3uk$?I*EssMew8;ZNA- zD;yF&$oFSNltRH?_vqMUVuH`1;c>a7uiX;T6LG$qc~t-U3oJpV9;}##lX$5GZ(aQ+ z**qrJwagNk2W6b4|Lu$L|2~*W+AHkPd(%hO&(>(1olsBWS?~>AWe9cVQ5*dKPUv6% zf(UD3ra^lz#PEtX8U!1gA$e>q*PBx@>8|jU$-i&FDWP?R z;UbTw{@=j?k`Xs{@I;gmN54#eY45IcqK~~HBvA?l8BO{phTn1VSK2ZM7gDXs;B8Xm z4P`jAYa&Xa(D}2=S!$%j(J**qR&i~h%1w!)BGtmX;T=W56EUhTis` zh7*y!P$)ELN>5|%r>HV|y1Op%P$HE#gb*e7dutfo2G07#jvs29lJtS2 zaLAj;!@nApM#Zc6J{Q>8T2yMz%6~9z`Bl?o2Q~QC2aY*JRnT@Y5@#Tf<%K7zoR*qa zut(a0NG?7NF0M(w&shIBB|U>c4wan7Pe;9#pSrgWGqp$>&>NB{T8>PK{aAMtE+RY7 zImU~}zJa)9|Eul;8J+VS_?&TklJ`#-)r0y`C0XvkAG|j)ih(~^FZ5ANe3HmYuLipk zig&~8#@i^p*fNAt9e_OMf5caYmEajK&$NBjrA;J+_2epFXCZ+Gy@_QervfsiCh8!H zq7tc^7@WAE8PZ{x%++%rxEClgc=PZ`b9)phR(_hmU2l=BZy42GtI3OhO+i{$GN`Ro z9Hh0PgQku1=I)vE8O$`=bzGM1`kJ{*(x^H0Qa#FAt@fYb9-vE!>9FZKf0R zp!DI3^bj;Of15QWjXp0O(#U8J8Da965nwcq|Lc7(ij z{Y2aGv#JaF5keLJ6jAu{FY4T2mU|7XX<3y41S@3}Ice&6MESSeg4MPouF|4$Jo@Z; zg{e#buCZHD3A?ke`MTuVtlZ|GiuLBUT_37t#7I*h6S~^kqP+HnC@SGHJTlZ5OkEr3 zcwBw=^=&!vyh3`Pcav7`62xZwG#@p~&tZf=snv=gU9)xvtZmg49 zscBSDT$W6UU|Ca%kH#m4&nB^4n|70QVTmN|1oR@EfQR-~4EG4UiHu+=C#nHM4KtXN z#%;pmqx_m)86MhB0P7A(@O#J5_;=7Xm}Oouq%TUs|I--p4x}FGGv2Hmie_M~^R!#;JGKx7QI{v-#mEW6gEgDWwrvLP7?tt`riYx25 zngp|lv>yc$TQiuzHk7-LQJ(s(s^< zEdkFbGrg2;dn$n^tdj;v;MUX>%5Vt1T#}e*mndC;J^{eI6vEwBcnTjdcy*Y~oOf$k zYtf>XewNqN*`Q;T-;>C0bzl^#oMEdIMZo}!mCdy`uS@8A%=otg1^rz+jJKlP3x*b} z>Q>($i&*cTdm*A0Meyzrx_;UiR$HBXWmn7J_9R=hFvG~=v=kI6brs_u=l z>wbEP{hs6|yU7gwQ@qo9Lsoif;U`5Lvu+?%d?rZ#ZQp1{h>Xc$Smx~&@iTAk`e0AS zesI1PKL{aqd$cA4yQW07pOP=|q+6x`1u(ed5|V2?3e7*hJsO-`URQH&Plz&~S(Tb{ z{1IoW8>jQ@&2G&FV#+Y3^hddg(V@ma6+ompw+B6 zg(mdFm-AY(Sgq*T%TiQ=`e{C_&BCH5RprfCS({j4HyO_#oOrzJ5zo#y&{|?~L!@E8 zS~i=iV*p9l>b)g=*dIzZnxo!JbgPZvDG9#c4SrhHWWLfp0`NRQBqlYYwW0!M9-&7$jGo{FF8gn7%=Pc zlFE)R^~zOxL4XJt!9joUAFTdSCNF#zJcsVdzrvY*r^DEsjHJY$Cs~NjN73Z_Bt5ev zBOR`Lk%YUvaQV3=+iI-!e0B9r|DSVy>`>UsNkUObMMJA^rrlu5 zR_UNV!QyA>9D(1*%-jb5kFxDf{s?-G6$)<(UxGS^4N)bZY{qm(XG1)D=y35%z-bQh zGKM9FOx+%h*e!7UP625U2L3su3Zheri6asiZaweL0pX9L+FO5`4q2maejF$H79Q$^ z91Ib;C@)796zWU$EKA*#)D1`2@dBBPg&iu=7Y4Ii4M^DXo?r@RE&2K7oX5~BUs}0e z)(Q*;C5G*@|BR1St}>T>;|$zO@wQeH$713xMK z1$fa+=(Cz;(wDZgSbBjXhLPRIn0Ajiw>MZ>)U&p>9QjtdaEmHNAhh^K`A*CreXudw zmnadv7f?}CvCj`am9yvHxz^F5a9Ww3N*y_R>!5<*PifbiUuw)%iimC!kI|1@Lu)ML znF>u;T~f+spS)gnafrTs)+k;PXUEOiibIEJY;>+k&A597eE2g-!GaDuNOjP>Uwe}P z(Hz=GtgUS+%-s08Jq|aVXk~H}%<^?EGkmQ*^?R}}j4$Lg>vM&K@>*p(5sCJkU`*3c z9Pi0TCLM0gsO0PEAJJh@c<#bUVSl&_MWKpSS(UcJg5m~j&r=D5e=Ixo=~F)}S#xi{ zzm_?B_X{XWEmO0|;_v~NXx8-OR~mo3MaP>=x|d=3c?#(_Qf5gLsqXp}+T-;jTkVPM zIjGP?CGKUnw|FuKKj?5iBy*3U1cZ`Oz2 z`HUCoMvXuvMLGanV%jYA%!C&Bi~v)5u}gO6dqE21Bd9!sDECMK&n3^yMbI}*nMF@E z!01VZ093{F%_mx5g`uMA7!985Drp-e2d*!r0TC|b_*9mbhWrIEFTQRp?qPWfJ^bA{ zT;Frb9?e%lQg!rEdU}v`iZmf@uqywnb6?G@AkEC&sI-e-h_S>fNdjZ91GB(0%MhA_ zJ|q5*vwU}P31&<)k~ZtJHMnr@XlJGDx?DcD!S^N>=BwKPBs9R>Ck=G1ezmOCIXl@^ z2f9+ln{!!nNzuc-q9&~+`4JFkKB*t&t5IdFjm2uP>8>fNP6SMSaH(`B^Z07byZ6^B zzCpj7x3EjR&ZL4Oi`G?*sixC_MJzTmLPajZrKGXi#|8JV!d7+1$OI^txvRNyKCQ@UL+^+#MqlYH}2m@4La6yFj&Czt%btR`&_fE#U<15KgNwtx$TosZMGdBMd?nvGlb z@L5;=GTQ8bR}CK_u%HB=%)ZC}qVB!J+3^2+x<&Nn;6sbT!z*1ByKC6$S@haS*MjDmdWOy!<4od=3Cn(a zVy$6qJ}K;XvQZ^}w+Ae=c*)OOku797FMEwRphDhA6xeyA+joUinbh}fZ6&tOvntey z86=zbjoVWH_2rQ~d?QrR^!&107_NW}Xw+t;)zOlTCb>%=5xh?Rd6BjOJXyIm!M4R-HCTp;BXca{mlB))@pV2y-qREO?#V@YmhsOiw;qD!6gP3 z-q*99=q%o=zuCqH*E1}^qBD+5ZFM?8B09^g^8ugGlUkJrG$*H*+#2ysvl7x;g3j(Y z)F8~(`VcNoVWKxm;+~?6%!TUY!x$!YEcealo<3A=aSO9Jkm%Aj$)cigZgG{Bt5u@Hu&Oz68rM){t@rlZ}a(p z2a~&F_RyeCKMRFBB7cdR1%E*Fz*-e-aREI&EzXjHtylgM%rKrXYVgVN&c|2j$xdYM ze7r2T(vt+%THkT#SY8MHM$;}zV!US3^=@rnr%2ip5(qPI_DtZdjsQ4#@U@z;G3PGRc@a!7{Bfl${Lu>M#4$5fE?Gz~dfwP5Es7_7W!5dVy zSKmKEhy0KE@n&FU_q{vNa&a(o~AK2BHb>jvEfltI_u^SE>Hz5Ev;mW#nI0#;iz2WeYNv zzTjiFQI95U4tQ3cyF)+mjWrDbvt8NcQMJH!XJu) z2fnh(cH2@KtF6>Yd_V99H;zv1mhh)YBma#uM1=ZM{lq*gpkwJ<2aS%tP`e&aMYq4% zP`$tesl&8YUOzf z;p7BxNwT|Xo6%VJPXYWa#ys@{!ArM}rx(_Ha+-CZ(Km|oJig9I*v)C;RwFyBw)k-& zd`PCN*_y=}*FzCcX{M`t2C@>HyPsYO)KBh(j-CsRGO1W+5t*67_(-I0aUUX{(Fa3I zqmwUYJZu}_MPwi%%6%zfA{t-p=cW^Ot2bhm%$eCk1GZo|dPg!r=uUNeEY5f^oK@ z$4AL|upsC5(yPJ}r4y?NN(Gd!&=iwn21f*s1@iV8~^~Y@ZD{iJ8VrL3eBCJOIiy>w^)fMwA{8rZte6-uiViv{t5|*jc0XA z!I(}gGg?V}r_c~Rb|{hiYm0k#l42`c3lfr$u&gBBy4S2xFeAOba6_aQ)LWMw3;s)F za?+xW_1?)Rni1GSn6c^}(6d;Cgbfe~DD&g2WpGbI1~VfmgroROlRYLm$# zL`Q=y^UK>?S@IcH6(M6TU%>G+LD zCIfU=JlZ;x5eI>U%t4TyeB)oDx_39yI#;6gGbS)}e`4DSXtgVOs>pL*+-=TeJ{!If zu+aSAdbI54z8R&;x1%*m_IKSvo63-9PX zB{1S0H*3AB-JzPyTghc@4b|90F8b+eL~?mW6Wiy_|CpjH|Iepr<3H`74O{;U*_6vPsWNFNz4?8~`JRXe@ekvx4%UG zj~hK^SHIP*H7}aZSIK->p%LP9o28sMpHrxuQ*wZGhrXPb*PXY0zBAmW9)w`J#S2}a)WCCAKX;a} zb!U0KXd(2cipL$KZDH^+6=pl#kftHmEHf%m6QfohuRE#V*m)7TM_ETO{5#Gk62ND^ z@{h1r!ma7m*($|*y;=3D6GU@L6~k0Bka6xRBq}%T2$ZSBuZ&CicToiHN~8SC1vjb~ z!yPgN{s)!PML2n#yrh3tjzU7HUXP%`lBqAfTAj`_W)Uy)7k9!Woo*zZ>erWb_%_5> z{FW6f`fm8#w|?1<#$H!Xy3)U`w4tqIv32ud(qo}+eQ<{QlJ88;?9`gm-QPEkq2ezj z?%bEhWWOBeUV+fseSZ_IxSN4@$Jtw+v;j`Ma`5!|bGnw`Xs2Pg@YrU=qgfw!nexX^ zDiGT2t4m(oQW!(Y;wveR`N%Z!bxjg>;W)@ntDjqWy5_c5QtXP!x}HVDa|_9&>WDH{ zZ#;bmw)XTS}ek&kVF(N1fOJvxAl;VCu-cla%zbR)FXQqwMxaJVcSCVsh?Xv|CZFaBa{H z*t?L&)7jbfs)Q`eITdpcJx1g&CT2~m($jl3(+F$!sDRMn7cCtgfLY(*xm6YrzZFde zCl8OEsA%~yfGI}4o|290oxqmi{#cBGSVO_)@I$wziMHz*5#oi8DnUPKh-qKMG?4UOQ(G>oON0jJHUG;VS~Z6`UhBKvzJ9=nZm?pEd-p^RKlrR{E)l zIps;OJktv9rm07X792jB{f$Z_R@q?{r)4ImI;J~42^Ov3dhiWu#?JA1iZqrEgV0nC z)dWk(5=TqKFY}0Kl-UMVVUFiJJIexkGxiALzEDA{}Q#M z-l8*y{#k(^cT)!&Yng)|{lrbq(pO#DWBFIW3-tFiLP!?JsH~ru3;BuvSUHU2fn&<7 z0H*t*`Mv{1PscA3WGZv=AF-+aS&O?&8p!F+p}11|zBl>u7fbJ-F=%c+4EtarEG~;M z894pdWMKE7lfe~-j**hoI(NRW*>%~)O{;1A=#R$2@g8JAWUec(;_e5;U!rT9Dz@Sr zv_)a+3P~F%mnzNBW<^OtepK&r(02*o*{ssEq8i0-o!%j!^ZuJ-7$C6+r7ueMAESZp zY~eIYR^4`xL~EUvbIpp-?TT?e-cRSk2L%=l?jH!|v<*>Kk|U zK<*0U=P6Ouvfo*%WKzGD+N@tUdIYvUtc2K(iNX1QjJA< zE7nTxH>CZ7l@&($Rr-7A?YwT7Tk%sp1-(h9UNF%XvdZkZ$JIA}SwG=i3{Xt?{GNEI zAt2>bgm+BXJ5(s-CowaIM%zj;htj^5l<`+<{w2E_C)VCbTtB;22Ya9|BvFkRv<8`5 zOOgaSw|{zCI-HMhcIsk2L(@FK&|tK+GjO5BH>%aRawVRpZ9lnO;Wn0Y7r*s!@qxKb znibK_Lz(Sasnd{JE5tpm%YNh^D3(&tXZ})qkm?BYh|#TewSLZy57@UBmqYnLX5yn2 zara!>1Esz*OPhyhnj{~NIL(V^l=sXEL%Eh8o>S*8&)s1$YE*i7!C%;jYcqp@vi=gy zd1bd06J$*R?dG>P++&<7O@H@fKTuU9)1qumzBg!GE*n({AhEzYiPDQUZ7-}h^_R>^ zYEGI#f~mNz-SbQ*j|?~*S&a)3xIkmp1vDX3Xl}H!#C<$B2p6(hdj-{uaF73f+i;Gi zANYpFdi9ag@_U-O%!qt41@nFCMv7X=S@X(Sx5#@aoXz*Xy?V-Go8Yb$A_ci>b5%ry zY&F=*0L5fBsbQVfEVbiE87rlhP(TWIe7&?6qIyz zV=hl2oowopE~xdm$s$SC9BKb0nwwHlZ7`Yrjf4;0y+ydrXvbMgJ(QN#W!q$WESHt6koAoG)Eb28(En$ zTzZzZ9QWPmA)m-;B7b&VctEC@5=Wuq8Cb+oO?+_2bQ^vv6?^(z)_+#9ekm{f`3PmQ zTxGYK!$~=guBZZ`Vd$SrS;53*fn6#rMo5OmT?MK;XlZ;rQ6C7OS)GAou#ouxwP~W# zG~@H04_aCGGZgVS0nT1$9#628A2<%G&+)bU7!>I`R&zeX3rB-Y>v_=nx#~Oe5f)<$ zZ4{^<3w7*>A)pF6Jew7gvd^v?O@+oRUDj3Hs&CyFXBfDKzFzA5+-rc5F&54PxICeb z4*x7K{isPJeIftBflpvHLU7JctD{`Z51a&qmQ#PXt$P*ntO(R3$DPII6Rq>nm;al) zwnh-4m(h$ByExpHdb$DC7JF6Zf8kFz27&U8rQ}kz8AS6B$}ofyDdwM}8`$ z1C4X1dE~Z?N}1g*L1M0KLCmG{FH%b?EUl18D8PGWb1DuGpSgzp+9TnIJjf1|D!+%K zd&x(ez+&~IB#e9=q&x-+nCe2V17z&^nTU}AbYs-nAsba!h1FHwQDB90bu zkmPADX3TCX&qfjIg_76zn;q2$g|F4WdZF-O(Qre%RX=X}eQ34a=Q6~cC3kUVg8kNN#}sE?z5TYOdpff%dS?-24sthDK1d>~B&P&xzA9v3%}&e>JagS-^am@=>7|X) zd87&@blVSXKu^*#(hBfK`ruU|A87K&W^!ivy27B{28aMxF=W*4Cis83S zKwbqqJWH0A;;GHTcfXqBZB)yLBbj{oY1maFmbhKKchjB^yZmu_)6oy71hMJV6TEOx zJ1^t323aQ26gI&UQnwzLGJF2je4aK!gml`r(@_Z7`%#a7(h;m-v!lSMqdL7?@zEsT(U z4#LeD^Gdj^HRVTo5RURhd|H5iRzLbQS$p+TPtn@qlc?Bg@dE8Z^QWwSAb)%PAmb*t zlnDT9ru;%cQ{k)Dq%xnAn}g3f;*W>9Yd})kYyGdbF%lfJ8oyzVNkz$Oa8$?J=6^Y= z{&N-m9;>Y#uKkgb?BVz?zhP<*1I=#Q6a5loHY*UzFefDMw{QtR_vv1t_H~Y}4bLtz z|3FPuUd=<}*R2%LNn&NiL#@zcz#nQ*k8W4c@1@GMme zb}Gfqni4)XRG=~o1U(MOeC<434l%R<*a6|cO{$e;Q1pO2gO4|~zv{2k1e#diO-vvX zMJ5|vXC4J4CE3~}`&G9*y<@1ru%7?wxAM=KZ+u-R8_?^QxadlhOoSHi3#)@r{;r)R zBU6lA$9>+hw1Jt8t*CrD2d5zGv)GbAwwZfb$PoOl}ab0-Y!39k15hy zL_xji=Ahy{A=bw@;MCS^&=gqwtC%|&7#3HXIme2jtqBm|>_NsQWF0mS!)4o@s1BzX8i0HzKvH|6&NW>rPV_rLE~fULW7n*xfO>f< zidqn?(lTj&Xk5vYubNXq^bS0QYX5meJktPoNb>Do)96qg)>7oq;D$r6LYB3CS|ph7 z#JEacsuO1&WBgD_!u98geu^LZ{!uR31)kGeK!?M4?ow7DVBo$1)m|D6=#_tn2z>9wUPqAH<{Ez@*XDP zt@UT*y6OCPYX>njh9)V28{#@*OL8RdFE7Ia5Hf{JS6VVzxWWl`AL8@clB-UwX~~^7 zr@ME_cc4jDot5&e;;qSQtn6i5qO19YQ(@@UYGE2AFL1s=Gvhe1!~>|Uof8cE<;6`y z&LYjINzD8*(1&?2T4Ol$$x1Eho)!-qpHpRfF#NsT=^d_l?r!6qp5lee1x?VJ>7|V2 zY3ssCsV7s6+Hz&Ts1UT``<3@d=C=kRJ<^lL z@zQuh3rR1JJ`lBu5;50%b!p>J$udy%hn>!p6N9p;aM)D)3Y{pv)Ik^ctX$bA8lB8i z@}$8&Jo8sP2XHs)hdc?3f&tB-1fhO+F|ysnr&IQ3<_&c`pdf#Go>2I`Z{X;Dm|EmmWkx zsZQc}N)#|@E-R~FQ-Leq@EiZ*#gIWhSvRKa&q6amw^SAx(PeO=G6gBxB{6r4+X~IxgF6#aInT^)1 z6g72=_+_3aU8as#g8njRZZE^)_=og*Sz-Vd|+ zzMq+B)&Tz34F6h0}YX{&K;0!_{7 zr6MRyQEktb<}Z=oSy6fbQgSJ@53jy|c>Y5NDl{(G)UT|i4OA%~cm?>pwjoeJV%ux}bf;#v)5D~Q!Y~ zu$Hawl@@DDflEv-K{yCmaju;XQI%@oatAISyU@v8%}l>ufij6Cxb z;sQmelPY(wfvN#Xxq2SQ@aK$)dbK+KZ5cWr;vB7JNwkBUbr!gLRl{P z6g9zg4gQew$7S8_4|U6w+$xqgca*c2%Ida3)`7Q0y z>=O`?J7p_N#vB;@x~I0`Yshm$v|{%&Cgu-r0UBnh+neqgE|q_hF@K35$jdwAPC>@G zvx*foB1aA~k?P@F!xX-imdazkKpwBGR2VPW3vO-`t`A?HB@6cE&erZpiR+=L9m6Ku z#+SkkbV{5Z@CPq0Q|BjL=3}h_*6u6y?Cio z1D%2TaOFcDQRFiX{4D1HlHcwmk~=D;;-&x`Zt3Xh!y24~pLfN^bKETB%&uEFDflJI4T=&MO|&32Y&|MY{>d3r%agsy1wUz%@S*TPEY2PC0^PlgrxX z85(h`i@8ZNr;cppCAzyE*WHx$ndP=XFWp$S#kfCJ;uOyhy~WMMuJlob>d|rxuQ9f; z@-)J5b+54A8zmEW_ey8=xyNZ1Gi=zw1CvR|MJ3ky&4GJw>>)>v`oKb0A>_mmjpNGG zgCs^zFe#nL#{N!Lb2pv%6!&NWKl+06^xYhVFiv_M$)n+ z2!A~lF_*C~Yn``d&_R@yGvDnb)8mXM4DKCtL#0m*?eR>;B6PR*1pev2Mt4u_M&dkT zW@@KB$+(cX*8$klch+r^w_FmK*@E@Jaf4W`c|k=T|Dr3iV>BorGE_f<9tm>PduU4LFw-a_+L$!`eR{41tqW1%KdD(Qbx8Aa>iO6++$;{M|e+XpQA-gKMQi4Oou;a-{~Gzg?D;k02 z)3t!Ei0BH?ov8sTZ`M*0)Xp<+^fOAk_k&?~7}>nt`BOF*m&-hTi$+ zrj4QebM-q7g^OZy{sl3*4Nu-c>LuMiz|oy+&f|Noqn=yyyXH}>c*&`TA>vL|t62){nlrfYBY!gU2(W&u!&9mk zILt##s+`R2@{r|w*Zi~TkFYLi2$vCCw#|5j*lh3x^{f+KJ$C-G#oRv&3)w4#G3(-= zfe;-V5^J?XmkN#wkLioeFGutA=fj~MQhnSZf)x1!GVC)@Sw$ljYIkPN(jSJWvbpa# zjPGcGB||)BmE>t~cg3w-Y=tEAbkAn+-u%%&2k$O6rU(!x0=JUeWPq(2J{( z=5{cPcejB-8yp3rWACz(b4uxokcszd>R5enBaK~si|+H)$nT5KhdnQ66Dff`0X%A& znC3gJxBW&m#Qi<}oCs4|wxoGgob3bZr@!)gMtolnRC~(P;r0_QX{*g_`G&65%1_Zv z?GzMkj~OLpg;tH@CJgqCft`^fAby|n5CQEtJ;0;Xj6+ef(GpurSrx6S6-Y>RvXdi- zMf&|4X|5EH??T`OTUy+KW$S|ZX<-SHTI@#|n#qnW8)tUGmr_&AYdM%Ggbxf5$Nx6Mvl1RZ_$+ZoHhk&n4 zJt+BS&%6!6g)2QrCwE}CEcV?x2OdeXo|RXnvA>MYHIHQnf6(qzB6(bXtIpTYI;1;D z;ddsDqDoD;R7Eyn)v(7K;+dk6I^N%qV=SUZNl_05&g9W2;kcciRXI#{c8hV2pfj`g z-xR65hgWcul+24T$1*qiDAB#nNlM~aI4+uW+N;-<>Gt@6EV@AnO@D#kR1*w<+LZsN z<0|2BmaLwrIPX;gVz2H=SrKWmb+HpEr7uYIQ=wJ0=2i#H2U5edDYG+dK?DuQazP*4 zZFTHWvfma<{#%9_JAN)gU~2|I8FWBWgfVw+fE1j!={*y#n+s8r<|b3`Gq;6mc^15g*-5g6IBG*x+-?4{SMS9f z##=YO+@-NY~T?jnL7UOBSZ zY#ZGiBPPxz3U(RS?S3TIfLH(sgRKn85+kZ4vcEx2z(>MAzv;Am0gzg)7!S#yQIYk+ z>H=m`T;fi9etVry{7=qzngdK`uo2Eo5zNpbzLalR3k8!ciUqqwnRIMV(J8To|I`Hf zDiNZpKF5?s(*J9(XEV!$Rc+vT+977#_YF-Wj7LqF$0kM1>{=S$Js80E=fYZS1Cn$GmC;B+yDr<<}wUgvifwy;Q1!2?;;Y{8CbBXN_(RsNod=S=6U_)<;L*RENN4 z`eS0nnL`FcUbz0Ey7{(R!03P6TL|tV|DrSgzy6H6&C0wQtvw=%^AO!((%;nx;Nx^HvCP(v|VQeSU7qC7u?*qA=5& zb7nMf!J=UxYwDD1$a(&OkZhWAG@w+JluM4Qr! zSH!UKyCy|tJ7~AMu}}qvqlrF=wtT-~V4>#G(Z#$Z-P6A2 z=UC!}d3l(80Pdmk2(s5i-%NocJE$s~Hr{TRzFzjg9E@^qT>^hw}?C6)J1FNBO zM+536#v6S6x3B{J=BYn}Hzvf-H#)2*Tg;2$15`Khu#n1>7&&`G6445kyXVvMF}sOz#m zKpSZ4*L}4_V62U^s>~Uu9|^7bXn!K7avZQ1(Ehl=K|Acv%57E5&K&RQi{CmZG_i6b zc4J?B-R?2fu(E$9$QFTz06-*Xn`1Uhvb2xk?fSr#wy^8khbvQWTed&wL-oXxJzfU4 zj2&GR2bbFM-5RWcjaC#HKpxwbpbIox!!OII13IRuXUTc==MEP2OtjsY96o(C~-&F4cl#o{>dV0f@gRP zx_i=P=#zqsr79F98{1BkFG=v#uY7@||4zBS*1O+8EDgA(!!DqJ3=ko(!1tkgSqUbtrVNm@QdTbf*nK9v}lMv}m!bnE7@lZCOBjxE6l$KzbSIwhU^&GJ2SLBEV`H*Mekm9d6tCmi#W!S35N$EjN< zz5BI(dWPos>zDIiXnU(9y-25oMX2)&7258^U52kn?I?UOVdgxxE{rd8SF}Hd5-x0d znmYLrs+Rqe)S>_S!C5~%$vMeE2BNUFF;=G=`w~Y=)|YAS8O8}43cRD~M>WK4Z9!u6 zjZ9#{n+xbd#CZ5)O+3WVWWr7J;d~3>E3=@xBfXg{B2u8@D>&2F+_Iq14nLbeZLy1d z0+c=FMr{Kv(71m-cLZ7mPF0w%Hb!-*k;)T!c+A1 z$-9z?#mfv=_c^(}e%UuSOM2uh{iY2xLM$#6XjCmPWKEU3$BQw?S^IW6BaZpoo96Fl zRNbCyyctNs_fN6C#b?&18*0u!MY_JEwSe|jwHjjds?8v{ia}G``tv14JDD=a*I0MY zh6Qr}1!E?BJCAPEooC-_GkH{f^J#6lp8Qj56P`YDzq^k=N9gonG|seznUFQ+*08LJ zQkmI#=B@qp8Jh_m(F%B#7jUH&8l)YA-d3=f%oxH_uX@3}x7 z|7}AV6ms#2z3?U8dbMs^l-=~Rf3@iMp_I&8u#K_}r>CGB(Up|K+gFIa#7mdJ=;Z%hLdz017I%47gk=tZE=UJRgn|E_D`kVHa!+MhOxURJGuO; z&=~4HJ^>d^O&YpD4m)0M7u~w(XY@||Bf`3CuPat!$S8$4kt0gdEJqr0j&UHs?N2%% zB_rMy^_UjB2pE)gi-U8@b|qF=eUcyl$#d=}*&^xCM%92eGEXlIp@*;e(s-i}e4 zf-6i4qaN}m^fXHvM)k3sCd`E$nR%f0%D;>c^znTyqT7+Rm-zcipSkt2OX9ix1>dx3-RJ z&S@$iqEd@AlQmTdXcmfl`VX3!8rVtilLf}b`aZ6M21uZq!tm@iPqN})SGS#>TRt5) zgn!fNo(kU1%1Ee!j2Id_{Tt6*=i53z>M(b#vpYL^El9N{L-z9!1z0jHV+}~QTNw^A zHvd{|Gq+TasSm^gRTGLafa0vQbuujrKw~iTd+zfFvu4X>)!o5=s*Lzh;I7wfYaZa* z672zpc3Z;lnC1H1;;HgwJ)}C)f}p z%xw4!F>kaDhRhz1SI;OwsA_BF*mc%3J?tNZf5ICJiJ+)@{m~{swP2ixp$J^kl7`N| zT`yaLMVj9#d=5v0rP44%akIPJnNDDva16^_!L~h3a_{3JEOMcehnAc2I~b(Kj&V}k zNh2=VOhPXnTIpKG$V=8Vo`D3=-0_h!)J`7S$SwH?;Z_>=xRAWxMo;XTk{sGBO>gyT zuC{iQOv*~uf^l5Y+6Bpejz-HgKb0^9h`Yz`!jYmO%^jlh@Oy#ohf3BVnM3cjbMqVd z)kz;ue&Ns`k!JPx-n_CaQ>*z=-O_NbbAt5CCnjK=PgV31=^2GPg?5Z@n)@$VlYZTh zKy&HsV^irQN%f47nx2$DDKh)J;AA(P859W*)r!2#j4;%H#nV9Ori7nTcRld>pI~nM zADE;02j)g)Gt*vS@YpX&q>RWosH@3%87^Q!3ZfqQO z?|)RGvwz?mLrpBoj;b6N-4pg4EAliadr`QRJiW=Le#*EYihq=RW$*5SN3%F(mcwd< zY4F(5?|+pcx1lvDL7EBExwVfI+6ccfJpTQ8`bgkm5VTeZNfog}r_{_Y-uV$BQAXgk z%UqyJ1l*NvHklqxQMtzN{S%PP@T27#t&s7T=#S`%>0hGN&je>7JyngXx=?Ae&pMR-)x}dF5P_i-6vG~ee zu>6b@hn|NQMq?_LiR=6QC1M7LvHBcxw+G%JRaFz;VTo&U#>p(Axx%A#s&(A;Q7@C=VwS?-mtNG}-xO z=KEyj;PAC#B{KM@j$rhqZ5p2TWqn^&;ZyMQ9p6LTeU_vw+egW#$Sa+0{>zOMUV_@Y zh>%UaV_^B0sL}GA*&G_Q%5d%X$G?}sC2BWd>AUn=;4Ra#!t9>(37AG3WRAF6Z|s%I zwD22H#nNafg^t6MI!2!2=m`&iwqa)4ao&6*GwGwRRN3#`A*Poe$Zr1PEw>zSk19n! z0vG?I40Ud4&fKR9FLbV&iUGVV5faNXS^T*em_8VriGST3FzU zHMjPMcj2;4Wisne3g9Z$ofez8>NnJ!F`s99N^0sID`;3OKO1$ z#KnFd9ilm)qxtUZu@a7ggyIgY>fm`^l^+&D?ItJ&mSTiY#kUJBG(X3^btd7+KQ!G8 zVyr!-T)dwp>DQ<5c}${Xh`nF(R1jL2f+zxXLif52QCXUj+;DtAr}L4u5f>jP!2rX} z=N80=05xaPS_d|hPAzG?Ud$>t@pKne&pNHm-K}fD{UB6!d?=yH$WVC{lGZxzZ&2hL z(wl0X`((y9l)eP%Y-t&>INc0th$xRYA>Qx>Cdt1gbae5$?}1!bPZlVHQA^#c!;Ukd z{y6>Op5+{hJeOBa=moOLPWZtZ%#pccI_vErKMGr!y61UMBACry?4Fp;FwrNFS^G%~ z_GEKnUItlBpJH$FN_au~`!fsn=3d%Y(a1DF*rO&1J@u$lsX%d;}6&!L0s+Ew47GN(!^%sA!mc|Ff@aeU`*OKgRTGS*eTp{2JBgB4A(IEpu64 zda?yov$4pmGWO^Ya9V;*T|Hf{OlAf%QwVUv2js&s;d3R+Z`^-{82%eswoHDsuQ2Jd z8WG~e>|n$5r&OqUpfzNVDW2?9mhO+oGhkW{kl!~YalMR_bJ_8ZUnI?KlH6(@e;`U# zABmLu-J|dsRt(%05WG`gnEF~!0g7rUo)Qt#)Lxoz$%5X^k4pXSm{{)8#=B-|DYpM# zuwoF`gwR;nui`bi4PyYDF8wUh3eK459tRbh6x3{az4?#sj&5jT~X0 zh4ON%A*eCxm~z4cPjBz_GY$_EFl7|I{?p#j8p3*KMj*mT!NYIXAE<%<13Jc?R9BPv zrMSjRNtcTJ%fad&I{pO~HD;#?rzP>b<)n(x-g)6WBILgE> zzIN`=SHH)fwZsoFT1wCVZIJyc-i8J9uJD+t zlec&=eDHIITP0)$O-A-W?>g`wP09TcpOSgM{c%}jdiE71$Jd=w@2Mi%-)Pp!V^%GI z*=N(;$n-Szu;A&Dq+L;OGu~LskE|1dndR6} zb|2pd5bNu`|D~O~1iGGmx@mw+`{EIq5)Sz;wc*X_I!-}8&2F7E6mqp)cixfcn>fEs zB$p)rJ408(?XyN0p1}~dreA!5xvnx7WoG?5J{Py_Rp1 zRSz9#^4$gFz57+l(j%Sj6-xcu$Q|0T6;~KGy9a^Ryf1B90o7yF3z91q=*Ch@#G)q> z_(?rRU!2+5%}4PSYP6a>HOQuOKzINA_?5q&#qpcV^t$$$oXlJS!Kh>gdBkpGvZtai zGdEyJ?i;Sre#OO+;K+e8l8^4|J4XBp+3DVn;%-@*J5>I*T;zx9(!}~Y@;o%+VkFui z=cPM&ip@P*lQqjMuPoHt7uffFG}$+xhBn9pyPh$HgM-3Ik^p93qt_K4;HOEY;GM+K%{94pwy?j1{t z7YdTt*nj(~3~G6b*@l;fw-z68+PO#%|MP-P2rn42GCWzi==GG4-=%~5`ZVLhg%B^Y zrx`Nj#jw58bUVe9uk6^1nlzF8$3;?kwV*TaA{j3?L{V;g!%o(a>-J+=AGV*{*BNcZ zW;C^+tv$I69n~1+xYpL>1G~RCCU`-lZfyD1hK-?y&rlQ+c_o`u| zZoaBF$XdtmR#AV8p;As0ZCDq??7u~%;6vK`#M}MxSNxwI{w_4t3Y@1`r(e4Nz58yv zFRnqNnWmS6F6nuK}5xzZE=^=!4^Mj?4& z1sc7(T^J?31yUj0!`(Kakx~Tw_XC;R`qZiC7jJzh9sH>Zi(b{J&ETz4;f>H{vL-vAygp6%tHzE94LWF5Q7Ypfn@QUw<{2a?+dDj2K-dn#_y|rz> z6X_NN6quBNbcb~3q$iz%fHcx6T}sCUmPmJlNOzag-3=0xhDonI(Y5Y-z0cau`w#5> zGsgjko}cp^*Y_G@TqDBE2+cq+;?S$^6B#R0d?bB3CqgfQGSkns368BQi9_~6TG>p) zi+7O5vXa~peaAcooXp(X3IB8=h?}xlKVnQ{y*(6LIS9Nh6hHQeZSulj*uD{KQEwvq z(GODIdzrvlHZX)|_N#Aow|U_$yLg^-H%z~^(JjtIyNND_6KhRw6JcS_Az$(hnWU& zgA>(WFpkzQOOGYZSu<*GaN|)Kz35cmO7#=iP80htwoU}{*RU6U+m+=pf9!!`Yrz#} zG^z1iXT!cc`!!G4-QhRw;eM0T@Z%7c^fy8jI8J z)_{rFOsi~{CefG;j0jEn20BZdiH!>WDP-#u3Nj>u|8TQ&3P+Xy=3A(Zl{~e zB4H~-?eN=cy&NZ3 zlQeNRiI|rBhK$g#(G7FK0F{*n0D3Ck{BuOb`)&N8Hj;HQ(g0d zGYK}3B^Q0-Vr4jDtqb1}SF#Howo=UWvni1a-#&z^ysM*KonJG^<=<;%cB%ggXF3i( zWIE(o_zj;+X>6^WVXrVDQsE}%aQXQ2kQ&!7`}UkQRFe#hb_ED@m>@wqN;6Y9)iF@A z-&CVYy_EfeBh|W_n%)_n{`fzZL#VvTZ1b!ZLyG87A%#I5+|uT*q~jwM!Unr!G1>Q^ z8Sn*dc!!4$$I1}Ho}6g);Squ^)hp8F8<)5R!2 z&sDQnCgW2plM`!_2aF$7Q@U{5rj=?@8fRs1**mu;M^O{-`s zVBOb6TJY=QkKo+HYz8jI#ndq((6675sA#!FeFv>jDK@d!ruxCFLqaC9Tb!;Z4fDop zWQ0}EQC~wUl)rPa3_7uUD%Q?{;-eQ+ch)~NJzLne#VRm_kKiV&PGdgcEgCAUYoQnH z*Uk_w84%fJtYX*v;?Ruwg{5lJtfbeL_QJyyT_wqJ=cL?m5>-fM&DS^LsTE3}^fOW~V)DKf` ztBRZGJ$rYw5}#i|64*O9+D%^}$qMu;i7E|d>qjQ%;rpvc;tTi95hIxr zqZEHS;6*`Ao9SASJ`!S}OPa2#MMIQJitrCsB z_7hQo!wQYVK4(t+gvO7#KT4dOrF8$^X^jXqv~QZ_F)W841r~n&dS2XdW_%3bX@_*` z(MNuwvzhW*h?mP_r0@8;jQuGy!qLjl5-0`r)LJ0^vkp6BW8;&IAEs?9Mm%$RyIwOl8S0my_s*EqtdM9}dId6Cd`+YZ3cd=WsQU1+@3b7^lSE^`-PW_IHpD!z z#;tE#yD#Rb3<6JHQ*{?^65?`NcNNx7d{M?&Y*yW3@~kbx%2vlEYB4^*I7rmaccw8} zYq(G+x|~G|bB?B=icc0c!`?+33~ZIXIZ}#T*Lp_GD$1u*YJVs?Hf0nKTm4 zludgJfl?i8TO6~&kwN>&C49#fXQp*FWi zrcf@*01G<%|FlIS0GXu{MO?e^{#c5(Vj-nl__*a? z-!X$(7Nj+AEM2E8J#-ms=y+Z&2K$>Sv-H=^yqwrrcRr^zVq!Fa5-1_v)M_9;|-=pg%6k?Cf8P$NPCkr)_s=$|mo|>(fYfMeA9enl2 zuwaCEn8!}Z>}b8pfTOdDbniTV*BMOK8Lhoer&^sd_ueTIvIj;Bjzp?>u@eBfY=5L5 z<8IHKgv_DMosl$f{6|ypm~EB5?E~W?BrkaYhZfY&NPeb8CSBJ(@1V7{?mwt?W~WCi zm2bp+(=kgp$5^4bE!WlMyqC`ct;ECM0m?}tvwHQDj^iaFe~7tQ&Y>2WB{@V>V?IKT zZ#HlxkQsYrdaLIoAWt<`18N^3WQBHq*JGQ)a&gG9wVq8GB(cY;-Ai)EMYb(trKMbD ziVMUMszOa?{IG zj$1}(P@lTB~a3d!KnEXB3=^?4_RP&gZezrd`+`*)an0yk#*E z^qqvh_B9rnzSxFOl$tu(-}OsY5h{FUt<@s!2?>dUR&M+}20B7w$?T}-)JDvYeX@>W zni=byz3sC@rXsDyRip45WD4=%t%1ZLS#wk}H8p@S_R{^bXK7TzhcDYFAFi+SOfh|! ztEP=qYIfedYthDubp+V~#|Q&R4}M1Q{Q3YyzS;Gdm~Wi0kFc$OwMzwgZWx>N5pX$A z;3;Gp;{nrRcoj8*9T_AkO3}3qC#({+%`dzB+$=*o7)?$Exh5bWsMn7p=BR??pk#4g zU09SXjJj&0ym~xWh!~V4%Q!;TKxkCp@Gu$e(*SGfhkn!d7)h$*N8dExe z`}GXMFyt!DSAlf~p|LWxObgTSI!`97@NNDY#k?dc`U#4t*;ydRT}j?^b9B;%iW5%) zX9do+;E_kn)~1>m6x27v@bk?6ky|UzLJ%Njm-FAMKG`@%W^XDyM1`=eCc9}G=^(K71GozAx z1dZ_!N2Tdr^Ao`NW4p+IL6i6kw4H;Q7)!hz9dkiBZ@zo4tXD8{?Jm2Pd+xoA)Ol0B ze}Hy;yRXh`Gy@>Jda4-{S5@~UrasxOvS-<=eTid3tr*=dM9)Jd}@Bk#&7Z*zB z=xf&E|HbDr*U6oTjUo~zz#DeMcq`j~;b9yc{5u0J&R!hBW}@7*!fF(4@n#L&3|yyE zG{S-yz#q4CH`Wsnpr#d-b51e%<#_# z=5oesB9wgx8808{q%i;VA38mhh!$8HM}g|`kQxy=M@D{R$sZ||do0!46M=PX1pJ_7 zyAnxyNLNpVj^L9fTFu?mffpY3J{mnOwNI!PH$I`6<&EefdP#6*R>VCtP10B_0Nj!2 zq4=0gJzc8ZATtF&8+-P6IR}%+2&5wQKj!{0+9!)4v|JojlAZ5u>8NlS7FY}UA7HBd z29q#-@-HwC{sQwc0ryJf5L0E?Mq+$B&rFP#6(VB41Yx?`(VseBJpYAd-ft``&|lYA zgf4mAnD+?tRQKt<_FxoK)#*DZsm1NA;WD4_$GJmeoavv_50ITGwwR1wTooWqz@C9R zK^By~THUGO;ivys_`x(4ZGa1rQ=S*+Z39|LMUpAuXAGF63nqP|FC1-i{r9cN2cx~& zf}przjrlyMQjfXEh+Je?bKXRYV=!m1NlpNCl$HXBkv82npXrjmf*pP7IosJzjATvF zH7{+3j~8z3@G2*xT!+l_XEQx{JvT;V{rB4(>#qtYF876lub%0mj#pR9e^Di47LYC-UjDUz3(5yJ&b2p zSwt6g1zO@~Bd-}W+7#3hmh`W1SgH^UAjMiWXdG%F`5}?jEg{ zLSO&f9qWb+x4ogw+hp@#=Bu_NJC08^jb6MapK3dZ@g#jCyLA&CA(UW^x@32|vmy;Y z@tB-zZ;36Rd#*XIzCZb12Gez`$V|}+SD<%1TaJ+djN9f2n}HX0j!ohVjpSo&bPZAYl*vglKglh8nhzq16*}AWgvniPKQLufU*Lzz^z&dL-H%fFW;n+bc)+Tst-^N~ ze^x7nL{%AdMSl>#xI(zlq*+eZH&zayaxO2`k<`}Cr7?Ir1W`w(S7VVgMrqSsuTCX+ zDAVu2SQtrpvkq0YZFECvHU62>XB*E8-yj@Dba^k>J31p!(aSsb{FCUnbtE}k-cK(( zL?~Wzd_f%J)2kLqCrW-V0QP})c~laoBh9gthTL9!BXCiG2}{fn8`4>VDvrzbG%&M1A<#DX1 z$-A2f0X+v~=N482xPmH_ulcZFza8RDC%+!;F>e>rEf&ESc_VmLn4e#}3l;WkvYJ&I zWUxew>Gy1A>jV7>(8=!r1Sisp(aO59E8`*_2$JfuSz4kL8?S6*x4-6|NSdp{EUv?g z*dP{)QdA6AC-pL3$uLUwWdzo(Yl^Y32Pa-(iR;gD4&p;M46nsi0uh7j$$>&l;yIGAAl< z%dIUEee*G!3FkllWEI$p61A_^k$Y=u-zHCUxu0 zleg#r`RTdUqVn1bt+;&)tu!ZDCPafn2GwVo~vrI2{Bgw`Zuf2%lhj2OU9uPpU3I|6c9_`vQK#zMV zeIVe7LUWX1kB2qbpELx-^KyeoA!+7a{jFkaHTS8i>UMioZ26r9@s&1Dv>DC#xXwzm z`ch32{K4lyLg5(#Wf;4H@wM@7@h+W>lP0cvgdHt-brE?P_|ZAHvThlqvEd;jXh97$ z!}6>Bh6?*E%$K*XH$Gt^R9j-BG!(OD!WsK)ot7BP*?dbk;_p0?23Bxu#wjkYdd9dZ zsj&O83yet`PM`%T=yE{t=O2JSu?E%2e|hQPb0>=?MoHo0^S~rDO)D0tMwU!*JW043 z?ZElkIK#h!m>^L6**%CS$CdEZ=xZ9@T*TLG!LJ#yd3iWp@{SCuK$^Hdkz)sEJ$=Nc z%1#@Y78*K#=T$@CA!#hMWj0>B>q|VMeW5AjHkzLr@vId5?Y;h)W=p2y(MlWFMP~B- zZ`3X~0^bW^g08_wr*Y-+w=^G>faDwL=B{Z*3k? z8~YDxb&AKoP^$%LBDa}>b9vVDM9TzK;i$n|mWO3#zg7Yl!*>Hg#({ZMeVgW}F!>jB zhe#QXE#5`BkE|K$nHKOOHxP~1@M;B{T&u7-CFQJSP^J6cY;#n#JaF8L78lFEdKELV z(xK;NG4?Hc0Bo^`c~IRP5)#-IAv4O~337}Ubl%#6Pb&BB$A;s!$Am+^D9EMKI9QN~=~sjkL4VJd5E3 z99cwcx?p_R+_%hs>M+F09V-*!pPh^*=htB-i{hG3)S%I?ZaTr z#CN&{x}7(+;X7k1Y6Q|Iy|)4{haUUA(%0I*>RkGW_xEH1#P=CqF`#dPP$t-uC|M4u|wg#N)q8 z>fZ_e(i)!N-)2<;cXdir19)(4is^+y0?N4+0b2MP@$iQX}2BC&1Kt0~jfd2*2kydYkBN=xOB-jz$X8 zP8~9-9gW0}@C=!ndEc4d_-SgygB*O*A25a|e52EV@{0Qxr+P*butz_Qt)MgX@bTx^a{+gyq9#;fM>X}NFJ5cbqURbuV3ny zTpQg+*@c!HxSPaXK~qG#bvc(`_OJxIw1`r8 zde+3vOx z?_GK-_?#y%zY}hwUi~i=a2rwmZKH(WHll4Zcv4&%Jovwq3Io4Og=2p)>Xo*=Z^Lgj z(2V|Rp< jFY&wW<1d;uj!~sH71?m(1V`YF|yf_e(-phNp3x)5C>mwBg2D_zYKdK z;e}}w#gq=^>r^&Y#pe!_$##d`kXGPgEUBv`uwc<~-~~mRY1|iq`J$n}{6ov;)$L)! z(z;UVxP;LQ_NAT&+W?nOi z?;kDuTzsqc$=Y>)p;X=XiGg7lKV6L654X43fksu$Imk&fOTey{LAqFqW8W^r$~Ye1 zXLDms)w}(8T0_s>jKcRJT;AAf_e7Ik#ac+F9t`mq0a~083r$t}36cEFJRqrXgIKeG zwnM&A{Zx-*dZt^S=PeI5G-I+Sh)3aU6(?T(U=uY@7L^YrHe}7k$8wUAVKNKJn~7*c zE1fbt*W*b9!qtFNXS{3B$ooVkYZ0Aq8<#v7|m#Uv2c$x@El#%=>X~N%bOEu0L zD?b~zH6o~R_dHYJ-R>tx)0gqgsd3bQz#6(Smkruir7>w{2>Ea2p}q&Yly_*As6uLr zL@lcG@1JJL)#)+U*4r<(X%mr_SGDO|VK*j^*AdjzR-p5DEI#?9ViwR3#a(lMt-@Uz zFTd^Qn#^D3aG1WsT^Y(#=CEkpJ1&N^)eVi%nc>g$pWex;c#6o+%g$CfKleEo4&~m1+r!IyH;VCG%eece40ID#oPGA{B7^3H8{3z+#gXvjSg9y zPk9wZLOnG#VR`hDTR6S1PEpP@Rf#13Z~(hKt8vN5EI`7)OK^!hEBIaU-Cf0W8{o5U z1mSif8G@&|HCX7SaJ-+x__gb1&10=W4vmyZC+^c`3Nm$ z%0UAIMT>QWJ6lojYgC+-IeF?lDri@IJH>a-F!;{3shiG&@by8{J9P>Q6zVRKp-M6y5l^j2O8oNMFlUu+C@&tI^iISWLiXkRG zuYa9Rm?2=-$Qftj`{JUS;%}R&{cSU#H|%Gw)~ls7LU8cqZ1@TWIEHv5@`0Kzr514| zXp`_gw{^Ud*@2R<4QFH*2NN>9Ct`mWBXH(v7f+Dm`6^oYn!ZgzdPH-iWrc;!tC^;5 zt&p}8qknUU?CV`ek$9`b4h{jGx1JckYJtnGUB92_$UYJ0vlvm);Yy*GP4^GdE zDnoN1)p>XWz=Wexr|M&2EsF?O9t-rvcDqFe&;Eg<5yBVLpKHmEVCrV?O-|rN=}5>{ zewvmRIIh8l39;W833`gyV&qarnPlv$Nfh_0H}|0XQMOl3zsFI79%0d;SFJv2noL`|enzpZ|cI|j{qfJ3vPCef1@v5W5v>_U+1 zfnvlee_WlVEOQ^e6R*s}YAOY?eIu_mvRiH;3!Ney3udUp-J8aBs0jEIV5e$=&?{4W zM7Y_EJ1ZyjU?NK%zUkf?8$(-N)+gMYieDTZFUb@EWNc(O!UeG0|BBsnP>A!-qr&i) zl^g$U%jFkGF)RQR4OTsvoJrxCYYIF&Emx?%-|Td9BAWi1*B)3{Gym$fFero)39*h= za%a{r#FDz8%|k0_X62jj&Ab=q@ZEO^4R?ndSUr_i$Y1DzA_|C3Kwz-C?4eb9ec7K! z^!aI6Ij>Iv0u9aWKwoFcFCuh)2d`4W7vB%k3OC|~CnReMx*I}{8Qo@QTJVV}8-OWQ zRmU7L@9G!>VO%9W#czB=3jT?X>5J*=@Q0z9I;iaBjCxO%fZnHS$_X!_CFQU8FVfD4 z@b!)-@z>;afvFpH@K0`Cv=1S}7|&XwD1n94jjpwutwhc@J(0m1BO_LXHNpm=#z=cme#3*Q`%UqvF-AO%1 zw=Cj{@)JI_X<(?rV5pQR?Pb+nb#0hALs@DW5<<#c3n3G2#18n zqR?XRsB+Gle*0wJLa3c0FE~TQr|F`;Ob##v{jYr7mHc{E7Jga) zPYR4pn#q%_YPR(D=a4Y#UK3fm-NUvnqM4wJOhgrpK+RJK6~hZ+k@3l3I;Uw!JpKLS z*2F*V3cIflTn=215su`vX48jvMP0f`r~EoG@o7F=DA_ii&@o`O?8kp{NdTTp1B0{E zPgcb>!pp#8{GiY)bW~zS3X!fmCh^lp{+e(1Eq+B3`xmPi{QvUju_~9Dy@Rq@BH^-N z3y#qEXga+hGT!l8EPM`D94`0>>3>BKWN0F1bE$Qr@Q2!^8Eg8;TR@g%1_o&LuI{bCOphrJEmKK); z=VEOcBw6>7pBX)-Qfs%{uT;XJm|`YhdxQ8eU(irMOtR3d9e*rpLV0!_0`y{vTe=bd z#FA&@yfDzgSixQ8Ue4@L41Q#e^*3`EiT}zZ_(nXdf-5UD=THE^0>U-asC*jQKHong z?7tc_+yHf?M0Fy{_t}G=kbkp(Rp#uqg!~MYLZMGri~C*V=(s3D+AGav+HM|u4)zQQ zKglN$2kmGUR=mXqu+@|sU6U66(OhkBU&Ib;+;J^Q4I1H*eAOy({`!4e{AVksmEsOJ zvR-^LD@ley`GrN}+rA8nHSMZ5Rn?7-`2_#Hp3!8l}YbkP0+|H)7oU1TKl2s(fzmHF6_C$ayINY%-BW%zWTH z{PMX1J|;@oa2e|?iH-UJM8YRWn|X{N9r5Ey)oe5*(}Ydj&Tqp5l7^M5r$p#EG>7O((D%%P z3S;iv1*$+$XT8XufHunMGRne$CZk?=p11h#Q10jkn8X)}5(05=8Q-G8ju07^s=qM( zNECDo-E>dKkk=LrT~GC_cjHXHAUGs7y}$M z!^4b3TZv|Ak>2i3T#C@`Pu8!Ob9-@g^3WDO<6c(zjJqi7qRQL&?i+j*FUI*sNX~kJ zFz;u#AlKM+6c%>fX}ufU0U%yhGA5+5n?qE%vf(%nEL&@j~4N+sf! z4lYBxts;3Z)@{fhVnDmcZ>iJh;ZoNeSU6jm{-w2izn(Ih=s^+M3yNl}0=I>#W_k6x z7xsOgtGS8J^>#Z;Db0LFQ#)?$hxlo1)?qlacigS|q|@L5A>eIWnqcMXhiT7_B^xAq zqF%bt!_2b0V^w@Py6<(?1qvDGt@r0f9{$H=$G^NiX~dKv>m#K`81~1PLH7F5Mep(c-Aw*+33qF{Yrcc!px7V&&qY?GvWna&5cfcz)RQ05s@y zr0I^)0^?6Wc=~y--7@mB4};O|>@;}Fb_j--5a$xxG@z-O%-H4sbMtBi#U zpONN`wKNA8uox^ui|C|Z7=Nx)oIp07NS{c~HL%^hgKTM8PQd6ouHMgF;*@yHNZ%)P zcI{ol|87Tz(QYEN%@cNXtm`uR$K4dVvOpyYzcR-m#om>tW)lhL^9lea`4#LGT$9H! zu3$~ChV+CZ@*45DbfQXi##ZE6zs{@3gnDn-5qdn-p831N$!pGnSfE0H0fpa6tc_Nz zhS<{lC8xo>PWR`mHuMYpYO)SXK1%qB&3sB@KMxf3Cc8N!nxcis*QP?pdhX86j}X-V z4M7=`br?Pzf_|2$eFn319NFZv3h%!tuo8MfR1X6z%|0j5#t@UIEa^X)FB;#uXFTgh z4RN`ATfK3+SLaMmPy|tj%Fa*X!GAQmH%f^LGZsfum1lvUy?408XI#AuLX=eH zc@zml-L&aEoiVX-@sBJDy8L6$_G$phb92?gUo>M=+J=}|8`T?jFR&(cMD#OqI5LUY zmL?Sv(3jyA6snoEQ|zXQW*3|^YwNa2<80*AOp^{$VF^JAOtJC6AO={FYudh@Vry3# z;q3lcUYk{O1)rdVIwO9wdmS{gp{1`MSmd_dHkx0T1Fy&^b18%_D-4w|$K{OPNZN9f zN>Z7nd-VEYWVJ7QYQ*mlZn5w{(($5aPx*?T+Z{)1=WW$1P;=_VlG|eM@-IXl%CCmk z@2aO55%X27`N@l(mal)gW&|d@SGD(bXgxQ5mkVda-erElq8g zX&ohwwNM4?xTh^WH>T2i1W8J)_3}u)Vnw9oeP&U@-bvmzV3=O}%}*f~QFhNeYhR+( zVgrRYCrTAER-OOVW`WAX2fK3A4l4{@=p<%KgFk=2I5(NEg25^i4BrSeT?s!=YsDKp zZ>~c(d#34!JliUI~|e`lj|ILw2ttb>f2I- z7FR4n-fid~WbJ3L>yv9OUH{-GTl;4DPgL6cri8`6E#~WWRgT5SRYQsS?>wM)MTMVZ zY~*-_@9yssRX&GN-d=fQ&WzPA@z^H3x>_gk>@K20=kNP|)1yr=gj1~fb+sw+jTM>* z&$Rv!+(6BduwL(-O`GB4n%@e&yU*tQuR=oi-C7;8i5~84eiP*cGG}(7KduH$k~-xF z^alhSxPj;+HVzy11@_SO9Pf0-b4)RO>BILrQb+4VGcgvp=8 z)tbuJAXN*$b7n=l9xm|Y5?o+!>JbswBSw(>MBxN^>YAe^_LV0%?1c(!lBSBi2=2YA z^!G{6bsN0ai5Vqewv_IOBR97t+?f&xPP`yvnp@bt`VUg+Uc+iZJYoh?WfVEl7_zoR zo@X2f@Wc3RzPno2DayEQfj4&3_kwl_FVErH!o7#^+j~7+;>DUZ?G0kp5H^xshUq~} z1zjPyv_YplYo0chHH~628XdQauDl=20)2G$UjAbHy;$a#$y? zzS{ZxR!Uo6b^h)xnGNE8=Do{Z$IeL!OIe3Tlk=OO>iT0Tx`MG_+;ng4^8Aop8aB49 zS`zH6*eVqvQ_&FB)%QZh^3LI>NhyOWXnnSxK#hpnD_N%T(?#02&n$AdyeQ|X&|Y_% zV`+W30onNNpGz`l*k-`bRh0bCqWG~z;*g>ILw`hQ;!Bb$AKxmX?t9GasdZJ%RAm{T zjUSVEIw>f?Pi}K|4Awa5C~#P?Opjr=B{)@f!B2=-)cdJ)1wuGq)Kqo<(TX8K1W7e@ z?8QNa{Rs$hs`2_vM_F$QKR5Ck76zHgwtr3P?G#5_RXbKsD`sZFkAy3*IIAltL`IMw zDR@}uRv+cpBKz5~UNU}y6p~w?=>{bmv9$o4^rd-GIg1>x>Eev?*6{pfGDx(CBpG1W zmOk+~-HA!`pmM3Qx9n^CSrLm8i`wRUZ=Uk$6H^`i!h+tCj6{&B8)3l8%^g#|j!j6d zP>N_dq=@n(Y ziTR?D`n$*sNB>2Lylq*vJ-X`VFOBAB^|^j&MA4W{GB132MsD8uK^~hO1Cm%s)+Fn^ z(2B4TBjC>Vei`Wf5Z><=P}7`0glZdKHXi>ypmxe%h1}rew6N+q=zi!0?4IxxFb=r) zxxE>@z~nTjD_j_@sZR|->2+`rg!fcJTrsg7YWosE-`say8WD$@IZJ8iv7&ul6_S$t zpQU~N5|D%ye=YW66W4uXxdofM1g=qjqp3JtBQ4DlAnyKcu@d*!9~+(4l3;Bfd=&8` zC_?m9&J=t+P8V%K*Pb!AgW#Pt4pJ(8GihZ!{8cD)38&l=KI$56_S#i?;AuiLc$ZjW zJd;!Glww28Mj(+A9dr32tD7?nLnTz%aV4d$5CNN9>v-<**wO!6sexkEP~y3h;_Ms( zSl#f)wI1*=Br0`kcUtwy%J4t5#+))cza;pSG*HI!4>!SjOr}RF{Uthz9g�)bbUG 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

?*2dQQ-gC|RN z`p=}MDMe%3&?Kk^_qbCcpcSlk-CfX`1N|8}Uk_}J_+%?z%`^0!M`|76ZugxX2@l2x zDacHrR>D2h=?kI3h+7zeQEdx_anqcyHnE7dnKlHddki8|90FwP25lu3v_7jZhH!tt z𬐷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�PM}(gLU;@}Mza3GfV5u36FeD5UaxiItinq%$a1VK+!xY0mFpNF%d-OEx6x z5p3`dbMI1iGNond2=>d4$63>s9G`a4ZSMzu z>LBb#2(b!aOy;8^g9qu!r&#vuv+@^rZH4D*5`Sw|lPDG!w8!B|t7bVcUFcJ9_E9u3 z{i7ncG_yZ0qu@=2AGzc<>&Xuy?uF3dWd;Kor`;!Y zQU(2Yb$TRE)qgG{g+SI^S(j>rLER%);TNj#HQ%Xk{FQ4#gR+A~&dXx2(lJ5irG)Y? z;lj~O16jS?4FlpSJ3{{dhrPFqitGEf1&csJfB=CY39dm4LV~-yJB7Pja0njU-62Tf z7N96x5(pLuRN)Q@QfP1}tn2r`^4=YmXR3+WCeCclL3QnodKYIkM?kJ!2KLV--%i$j;Z4A-fThP{#90E+P_n@$4Ww{b!An)u z$i~#*%h$i|7U@QRDYwLXxmd~>7}AfET!!AInS{wb|H=s_qnuMZvNL?L%urdU`$I8C zWWsyKhL<9laIz zN5I7sCb2s_ur+%P@3@l}N5#Cz{@^B*JKu{IYq*5vj|+jcLFGR-UE>Iq^_R_@F7MDQ zovgo6Nn{qgA>MilJUY_}Do2Q^8G`OjD;C{*IW4C99u&%_{^YG}7uTP|<%?~;g!Y9g8W|DQ$eLS8hD{2e%6+HD%`o(CP~d~J7_2!g5kMN zxzy9y53rTjs;V(x(@vl$x*^_l(pJ5sQ1?m z*HZqp&oi|0D5pddM53Z!pR@giL8LwNEV8{um;sVJr^hg(W)U z*^>*l1{(F*9o_^8YjxTto2Z-QA!f6!v7PH!>?QR^Q?r49prCPHz7c)dSW_Xoo%=1fbq&=)x=k6t<;msffFKr3Q`KLk^ai#0q+Ws=hCSM~;0&vUxn%0~{75KIe4CwLy#GW~RN(<}6otnOIf1hOF&^j$U)zNQLN|sU zQ)=GrQ%{2JgEOk#e%2PI^4#b}_V9bbhJvc_|M7ID67!k2jQQaVch3LViDua4=*fe0 zhxIR%0RVx&Fds@~9|1Wg&aSBjrlgY(S#7CNg63e73?J;KA1LjD5d&a)G`i_NK=7(w&EW2NoOoK=7j6W~T+N+=$4l62&zn)gSK5ID7Iuk)B(s{q z40B&nzOl0*@It&`w*_MG8n@IE2q+uHmM^fRlRf|23d2+n2ElUXK<~Bs zoKL74Wk6q#MqGJl(A`K|bqRL2rX>A#d!lxF9|0d4QS80zUTiGZAYDhxDlgIgV-rr| z_Ojnq&sAjz)acz}|2+^>G!7){eoY9AGfB7yN<0GOLDYQiJ#iy2KF{B{f;KTL=>I?*9vDj4}>W!SV+-;s9HL8Fk z^D}DBa-qJbB%nTW+6{h41-*I%__YO}drAklHy1wwkP3Ec_uCsNxbqaj|3?4vQiNQP zy6EBKe>PXf;Xg(@fnlzyVDjfb8bqgj&;LC}`Tsq||K^?om8*!M_#v!K5K9-c;`ukZ z#M`IjEfcqccF?cW5>D#kmquDx>dTsQv9_r4y5Sb;mgx{r}|Go&?lAK4?qVQ>7|7 zV4@lsYv9oO9D)9NkU+GxplXmH;9o0wIj$sP42$RzA7fz#=7NIVn3!?04C>~)%DAEb z=Dzy(UN)7DSNn?+7Nyg}S73yoqnaqg4l%^=42`#lE;3Y|-i+>^`iJp}K6@xOj7wTW zsJ@VpNOj^|dSE+2F=+vH`0xMrzWR@T<}8(Ex(?1DV2dhCT@3wKD>FfLVS?g6xTMwU zDjeLUP5xEMk@C}WP~vq7bHSV%7B-WuKb?h#ELiT~pSwEw?;2YFbx@K{mA<+Y8;#ER z4pVRz|EG;gK;3>y8q3!uOtWwZe+j4OKk@88i|!MJXVG6--|PHgjvK1tJ0g-1_qUMF zsqyqK+$E0mFJ2M+8sIPtU3~MA=WBY-hc)!CSk`r)sUDcAys~s$?4m#ZHsz@4oEI|7 zLGHvksjQs1f0vtH8)4stYSrVMo9IHO8@pXKcG+}(tOQ3^cmsXNHI3~5u=oloMWEmY z>->1aHS=JRiQmIJn?yoVl4~a%+aHvZ!{EC}dW6@h3dj_OqD=IRD&`5Q*sWc97P*HJ zt$XWr;S*WpmGcpX5lqJH%qs0;bg6!MkX*(hFT0MJFr5aOa7Ldog>*ZcgYWfIVp++>v0vAI2DU5! zBEV*PExsu1cc-JP{e)iW*DrQ)J^9?Dlj4hNqJDi{rbE~of%}_G-DOVqek!d+SRlpuYB(u2AZxxKX&NaCV< zTb3VM65HEv4gL#rRb;6mno}r$~lDe14S}_nB zZA=^PKJ#(yFL(hoU01@u5MVo~J@-Zd93A4=`yA~W`SNdImAtdWfPZII zU~{7@4b5jl`P!d5vYVLEo`!E0rle{k8iICgC`hJcf{bufB;*A(@P=n3B*hK9e$Pv^f;ZM%5rWY~fO>_V$ucX6B`=UHs|$_qE5G zuFI@j<8uEPhO~cL(1x^lWavCL-DqZ5fCh=;KV*Y+(LF3QQzYF;%ddQTyN4o^Y%eaP zI=n0{XHtfi{x4Y#0iVy{5H7XWHTw$XUO|7ajL*d?ICQ@wsp2vq9p{cwWTS2@0nEXB zO4MCp?$$_JP=Pk-7NGZ4F`!^5<<|i7{y9*jVp-Nc^(82fS~`%UM^UAwqh~b(A)2)p zwcD40RABv1J{{;`TXWBFi|cYC{Gs>z$yq|F_i}*1a2|NE54qh-oQwDC7@`JusVlyz z_YU*zft;#OM7ruEd@jL!Mk?ioiUKpYE$Z!CCon7;88FWWP#=*kF+dD}@`=yOiWbAHXE- z4YDcKDc)8J+TJGY-2#>5eD&{1GALJR3?vo5JujZlT_xW*yLTKRpRZlzp2)@;#&jlY zV(0EGriV3JJYJ!KnAl6^h%PwhRYgO%+B3=R=(wg6NFiE`KMita+OMEqp zyTHt^{6wt;l-bzLOE~)i)z|F-f0ux1zV3Q|n`T>=-mz?($1GPv+oza(8guz<3rtZa z?ohD7*ye*{*oiHaQkzdI{mGXuVv1&acu)8*meNsAdKx!W%|D~^0;;5EH@(7{@|4t& zkP|Bz{!OL6G_M@uNvsLrLE9{W2-yJq# z{93|h{riYi^aTX4nEM=LeDdU@x~~HNGpFqCi2nB1;5?0m6NDEq=JXK&?Bf?iDZ5gv zDW2_Rd3ILKsaRGXcVHUZX_fIfhY1^oH)^>{U&FqPa4=SJ{b78*T5!-2@#J%Qm8e;` z$qKye#RTtQz98Pq|TmUV#+Rfk0V$8o?%9n3+%*#Dx|f)_2!FFx-eXLB-$BlOINPXYZRgYXcjJOO)+2mwcH5s*`8@R=@A-ui z!_v@Xue_~KP1V44(AN$3&hN-o>Nf}OCNW1;$PU(m1;YS&Z|?`Ar*j3Ky{0^GOx2O! znP9V1rH8qyI31GSaWW$+?Ulm9-0d3Qo4Yvm1iZjNCve?7D6ktbF@<-kddK}juV}O7 zK1o)H1=c>)h2PM*YY+WIvq`;( zdmk`6a!z@au#Rt@eVJAS`qZf-q$O22@%gZDc#7WF{zE(p;?Y7(1laREwub`dCb80P z9RZGQjRAUM^&agbpckTT-;2rv$k#VGdsI9ERz6&49@Srn-Q@{Xc;1IA^j3ShH01ta zW6a56j;8|h8VBx}>eH5koU9cWOEVZSQXNLDk9N_l{x;cpiaD+^B+mc9aj)3{piQTJ zi~4yUTi}4G@1D`C&z6s>_P5z*(m*tODCN=B(!zl;%uZ3c7uNiH3X+Pb-L~iSbj_8t ziS90j!=R-F+@KQX9L6Toj=lXs0$;xHv|#})XSwNY@4DbGp2V53m6b!c9QccL#rbI6 z>z|m!%qU!FsFGJCtjLP+$j3e0vaEuqw0ejnx(CbFuP&YcPnr%QL~TUx1yWN!xqq(q zyu=>C-*u0Jv~WpyT69*Vb1{YEa;$}a%eeN+d%3}ewV|b`8~T0cUN}qqk_NNwed0rd zH8oq^+PctDAJ^Y$86ku0GSImoqu-N~TpfewH1C3=5e zLlN4;OzxG}Z4!{t3pA#_#Xl7b=0C>r^uiWb)amU$IA?$3jX=V4#b zuw|~tWch<{kf)qBp4YV^~}J`{_L1L^Eub{HhtA%`%qnkt|} z#QFHBDa{Zr*dzhpS;$!P$pBphk*N(>U*p{(D(eOSg$h)iH(HTD)=nR)vxk;Cx!?|e z8nzdBtgao=NrEiV6kG~3l?{-=ue8Sz&XW$$Am0U_ot5Y1F8=x6R!fM^fpL&bgd@{@ zz-T^|!St-$OM7Loy#t(65V5LiL733V7p43BVoz|5$5=ZORmha!QFiFfW>dWT+tS2g zzj^i$#mlls^5?A-@I95c*6A3t6mDz6(%-D-LhhYDuRJI00MG$nlFGPdvw{gvk6@M% zQvTM;G;uVW5k$(Veo|RP&j`HRuNtx)iQ;^vQ7nk=S0)O4&82JmrMSg7liOJ(7!D3pYQ7*X zO+*kwN;y2}ekSm>#(4`H@8`Y)!FIdg+5O)K(( z6TXDu$PbU(Qj4X=oCh@M-D0YB$QNk9SX#$%D>oL-w>q^rc3~^;m(6kI+))EQH}Ndy z8^x+BNmyBh8?ljA=GVNuaMYef$xOpR+t##$P`gA5cmi13$7{bLPZ4`oqCKX5ajZ+e zTH{zANR(GwOGcu&zUGp!`X+J{%)Mxoj0#I7-s{4&lfP)svyEyh5L;Gw6(lqYJj5{= zXW$J_l$#C7150B1`#401SQX!G<@(>fQ{`IjA{69sB%3wqV3YvT7DV7 zCDMxyw2! zb~x&k-3Q)`w|!Q!#!`sgTpWevw~1shDk?Un88x+U+7mqc&;uS!T zAb8Mx=O5w@-%$F9!Hw6aC-Euue+~8vy;f&-FWk<%W9Q1078PpV3py>X7s#-*zPV@s zQ{KLZFtIIkhE9CYe@pP@5s;^29K^OS#ItyLi6St@U+L_cm{h1M&D|~Nz!Zg(DqWPg zs@C%ftS~|N!FE?E0#gwsXxirzf#YLJSfB85#fiYy0q>tGK0!BaJ~~I*WQbId7jR@d z0A3aKhCV=}++KI=)alfAGq%xdc#VMnPmXrL;?h4)t z_mRE{w)sQ^S@6PrR_^X?9ns0}SF=xFV7h&ff|nE;bd1!QJ32ng+=I&IPfcEUW|rXX^ynbRITA(3!)*AEg?h&(WWrqUx^Zo%{A^*V(vf)Gw%}K43WGblrtnvu zcI=OUd}Kp?w4slGcJKnnbzbXM0GHZ-xUS^?)pHfNbbHRGc68SG3&AH69#WQD(sU8; zZH9a4UWgBre-hV)yl;y7kY0?1v-%Q37!L^i&^Byo=~7c&Rgm)>HdHgM(jq$O+-x?N zJ(M$OnZ7Z@QMdn)HPUIib*{3X7!E&tt22Qdya{FD3L}L6`G9Gz6>UfCvi#dYh)6T_ zopM>m$->eGrR%x+ly^{(KKbihus6DQZcj*OvB*0~XZ099`1`@P^p)Pii5W&z_5-IR z8OG)><@&-kcGSgoABqiRx|9F<9n0O%z2#KJ35xMi@LVV?uAVP=x1;H_+ew}l1NN?FSvY2^he2n)F-xs8tp;bmLa0`?hURQuII>gTiJ%Nv6W^66zhWw)o|^^?-xu zsI%Ll>%=o3={k+!xp!Z0z$@W?&%VFZVJX_Yj)W#T$M#b1u?4N+kc;FWA-_}HQWPwB z3wQ-#cblXgIz_KIh5Jyz6UC@>N@wtz_~6d^37klF4x#hFD_!4*&h_8BlOq>_J!C!b zAIO_a?|U8FxIcNFUV4&2aXF<2$B@C*qXu%rA>>@4zaHhMxxyGPG0;WWg3AnCPz}jb zc1)64&%6J*21b=Z>-d~jv^q0XNf8^AyqQT<24-k2n5U9r1EVe3QEMOKz7QmR{kgLc zE{zs?*7Irb(;ELa|MxJTInL0FPr>E_4zoD(nFTuBQsp34VtH!R#-P7) z?6nbR3jUS{^49WN(Mopa8O|E22jQvw!@Kct!hOIC&z+3(cl(A5EBUihkY6bSZ7(S$ z+U#gn$eV~h;w$rTD%2bMB2@F5_BwxL&iV`7t6AmIjJBnD8R^j}$F_60Xr)qW(zm6v z$XLCK4;{d;d4GvR6Gu&jJ$Y#5Ka23vB#HXEQU98X9Pe3#`Ww=3$zG)LdwxOD1tM_W zdoItQ6Bm~1{dXr=w6NwF1zY}RwegwXSvs;h^*y`_u}Ib}M#+hrVQ@B*oj zbla&8ZALpj+GYf1p=4`Wde!q`z;^Qh<#WejVU06t#<@c*nnO~x@%Vs1B_tTQ__gq5r5E zSR2YDdo@H~!-4p#(_aHeKsw}o!sbJtt^fzpBUMKSmLH=-9z7A zJAEc1suwH)ET(0N zfSaO14g^ZwzjhX}(!_%bkYe_fbg2DY4*$!MFGwibu6I(&>#qIV+AE4cXrWa7kOlW# z<{n|jdstiqivq*vv=QFE*&`0X-SLHfr>dVcZs>7*m`f?{E;Atru;=b*UZc5Q@^47U ze+NX;MMI!ko|&%3B5yhQ0xf16z9I?>=1V~>cb%VZGBZ?*xUKszR{f_ zIvN(Bk57yq=i+Dt45|8=O5s7e3l_$$gp6(|ltR&_$s@yXr#fkQ?eXGGT4bB{IVGLh z9hlBtHCm>+7aRCUt;QWhMlMOQ9XXYK+zrQQqr$XHN($zODP+Eq2%O-QaPIVvHU&-E zlu+_QW>#en%dkl%eYiseKML1LUWk_OwKncHs0u0vn%J(J2y@F^-RKG1~!^G`-_zcSNQjc`9L?e_EyRGI6aI>+iw!PI(?hFZt;!GW~cI z_ofb3xre}d8VPWvHPNKm)|ywdHO;(Nl+ZNX9Ogi%6$8=xbyihE6#d-`o0it4549eq zVZSE~_-v#g-{y@i2Ct*5DN_FGVCb(X!X6UlT%~qb7-u}Zv>IK=6xaM@+VWmaGPG?H zxEUQ>JAWSX`Ix7-?^9OB@P}-Iul3b4_$U8Q&R#~IXWrof`lFL$_;h!=Y~P`2DdB@& zhJh7_z`eZ>=`U=EJ7jJ zKdGWKEkgQahfX&m!>aL~i^RHn1Uvbs-*bgA{3b}cbzl0+^yFGy8lm#+GJAS3j;R{` z!^(#MDFq?RRuFkhn8Q?mqL10Vt$Ot zL%(pBMU9zPI(oHGu!H+j<$QfOtc=X^X#D(w6i*i29e4(=!aXeKhdL9!3pEceRTjSM zM)VZ5%$Dz+ALV*l>f4I|eG!6(m%bkkT^qBuuhV>Z$ON18S=rR~-enLIZvW&bDmBQ; zinW$916%q1!#dA!!Koc(YJ=Oot7vVb??g0}l7-!mrzUk)j)Iv!RIea{r|Gc5o z{`{+=v*IV`F!RwprDLvAOSx_&3&Ny4_2L~;$FSD;lJ zf4ORSsjEj?AjB^6FjAy_NBZI`<0jHzF>NywCZVtD9rhu%-iH4wU0@M%=~DiBsdV`- zZ;mTH$y3ve^E16?O^qgCf35Rh8nR8}{&VQc4)UiJCGTgbgzDP?Em0Kc4n&PnykQbT zI`QkXQ7t*Sf%v=af`0m|KXc#9WWA5lGHjrVO`f?IorAS(_qfP@p1xA~Kwmdu;)R=v zuKI!FrlKb)KH@cE^hIWu+hXj?V0|)>#Cq({ZNY+Y!zSTDj-O=-4=Smm;~vt$%Fr@>f-HEbAb9w3GF z6n6A%5{oX%)d}x2_i7MPM+z?YeHFF6piLwpOhS}q?@9D&PnVvKXD8t;_@0rQw>q!v z_|)l2wWvY)O`~)Dhy&3XuTcN{STuH;V%B?$K6w_J6cBT(O~+U5wvC^8&ERN$Oe{VP z8vPQkoxg9Cbyei*MW}bY*yMs!MJ%hW_JC?0(~G*+sq@y7Ip>j-FXTT_e$`&uveyW3 z@W!ZOG_Izd2x;$BXp(Qx@l26gbdEH+sKs>zt^byG9t@owBAzkqNm>ypf+fc6*5|Jj zNx=_z?WW!WAue)>ud<$~suz&ijZ=)T&T?MGfwkG5z2ip0Sju(F!_u5 z?gbUi7{A@C&2kZu?lIn!hu8(g&%@}tHih|Ko;edSvzgO`$-Z+G*7T9-9~Ul+@aE~@ zs<$GPVYeu?EJ2F`Wp<(a`6xJVA^<5w@@88c=30QL-CfG2KvM0!)Ck{4tg;BJ$S3ad8BlrPQ%NZX3F?9n`=!6OcbK*BTnF6Mz?7NAVj9=r3pQuf zrt>T+cZ@$~PYQ4Nm+%AV%K{U_Q$l)DU8cxz83c_*=PW&Hc~+S`$EN@QZ4**iuRGBw zFX&XB+5$(7quR>gn&em;<1f87>A)XHKpE*Qku2R9+%DL(PO@%lt?k<-_u>$cym?_ z8#ig$iDOu+lvSCl{axK^Ap{efDg5$mFvq1q&%0)|fJ=RW?ST;4I|5($?4SKu59-N3 zEogCx>oGC+mpa$IFz;Sua5Nk|_3GKX@1AlAqWp&bg12=GZKKLw_i#MC%UM`E_nUM| z%J>7Vj%aa8r$Vh|=nGs7{Z7Z2;q7i;jj{Bj5-&^eBHPrenmkWnXwEK?{1Ifa*FUI+%-~Bib5K+zZ_j~#k1sp47P;Foqp?1fbT-yI}X%&$Old0M`t|& z(5L9-oetKu)s1aseDG*oqd5NtM;3IlUl=SP#$h;6v^O^I8S1yN?5tIPo4KL%P80-a zS!vA3CO`py{ZaY8{U%+!kx$-yJ_$Utt(`o7y7QjyBF%BN&e_*W*f*fm>s3uE<#g%y zsRwDE!iS;4kJ%HxzVIrZLwAvL4X_hR zkElV@A2g_nZyyh`Go{$FJTNx2h;`-y;swEQ`hcxz;bx&`xlGk+@Nu?^IziG(H-x4F@pV#^Z;&NBmW7wLw6!l6S*w%o^Q36WQ}x}@0^mK*pxGgbKLuSx7x!qQr=TL>s?ED06M z7#W*(K^n*sC3AHC>RkBd3k=>w{GyTt_OIbM7iyN}gnR=q(PPa`u5q26JT27{1f?41 z)T@dPhqZE!q*dV9)YJWdclp}c4-N0J0z4#yQZ~RiY{TS|+NuB^$3eBQzEFzzph_dFEN&j_9D-HvTDccQdcAgI+p!4RVz3 z<`4u&YPVAngE5lPcap<|?p;N(L|0p@RVeMieHupVrY7VC8=A-jYbkmzy4V8!HWUgm z&wx3EJ}GxfcTfC)6?RTY};yOvwRPRw7Gq9<#ryNQu<{=8AarLyb+zm9b*+@aXOkxvJT*X z5^$paBKg_jnvKnm^cQSRBCT#wW{EgUlJQ!a@S?yV)|(4gu03gF zq)5H}JR0@>3;YZB2NSiF8okRTi<9y|R{waHT$9`LAP7Xi0Aid2?KpU1{*@8G_26?@ zq|sA_Z@Ln?8}YN{OEzAKj(?3<#@-$bd$$?l)av&V5KEs#2EoxrzV#j3^d^jI-OR@IT77T4ADvh8kM?@uSP z5a!ub5L76i`@9R%*Pj}pa;F_AyL%bM6{v}_@>;SQ6%rIcyYxdF`WEG0lBbALpFui)puDW2J~4{!sg%Ik_8)5q%D6Hm20jkwLzci z`+NAtlyT-J0^=&Z^Xh(37Q!xmh)2Rd3d>yMGAe4yuH(NR4LNJ@qJgUz6YLewySUtB zn~)ikhcJY&&sbHa$2jh-83?-iA%dkLHp#k~9o=p{djZ>d#__E479ER+2&G~U`ICG@ zITu*^wYe#QDbj#UAI6p{V>#l0dyAK9<6z@>73&B(TxG-bX2&Ky>CotwDe+Ho4XFG8 z3>4{E<^ZYHdOv_A5|^F$K0&HKyl7kIi<$q8kYpfS^?CA=D+6G$E$mYKyK)Q}goH!nkoZnn}cG*9`FeffYOyfHVH!^#kYxl{q{E zQc_N4*2I$*D@Bw$yRXIHT0`Hs6BsHcx4gvGPJK=jAI1gR#E_l*6n3*Z=@wM4$34&C z9b~OsJ(%)8rjviw+5P9_^8fKqaPJvi9E$XTj$eN%LFh4RpCQ%^Dfwjt%Va3t>rMRM zYa7QK&Ptwvb(KedJfuSAuY46~$Q_LY><3p#?m4aZE^6P4j{)XrY_~P3Ph(1Z&n+JT z5i6)o6eF>_#z(-@;9tS_%e@agH4pfgNe>Mtu187#`e2#^)KHeS1F zc?68%|JA#@LX`%LJpz8KU5hP>A$tdVJH$rcCZej;lO9NY9-PHazuyr*0#I1ztB;R> zYxw`)y8jpVoqLOe67Xse$?BT4?tCJq+w$An{UYR-rK!rD(4FOc?_k04weZT057Z~( zux`%OudZ{^x99y=hg&hN;)WL9hWPNIz9Q~TqO|!rIJ@H^LEwMMVf^QE=s%O9|MME@ zzx~V24`Pclhzx84s1dTEd)+;);?VL&wi-%`^VH<^3}-lE3lR)VqBJ&LO#YB!20>wY zzRlpBj9T#Cu%Czs-vf0RfkHFiS}H@+%v)as5!6ha%;^@uKV`%pmy?zq)@AGYi6}@{ zva)DZ>6AQC9LnAZkz3JIq$Ef0Z)~1q_#Ce1@8++>sm|jLNAC7D2|(|bK{Ntqmzn)~ zJ4T1H)w*p0Z4MzAFRE0|V0kb+qqdLdS4Im-c+#G22F97I;HNhgjA4#`KECLsAEW)& zBTml{Vh9mj^*pGTK~;mI>L(JXNutIe`o7x5;wpQ}shuhRIZ&e7dG9&2SsAOSZuL2+ z6{FoUB%Zn`)SzT$oc!`<@Ka~*cw#P?Nv25(iQmESEOJEeHAfNw{cg51J#~k6q{Q8R zIc#_3qZP6A=ahAp9T3vaOZ1_LRNUd&L1-~@pqjxJO6_|>uH(n>O*WY6sqgsub%rq; zJQyaRVH7r}MNH*D;&#$(II1lw6R$_JZ-efI|1m-#PVmC zAF3bXbN9W~Zo@x7goM-@Zv9;Se~5N|aSV{EzU}w&^5o1_&%2KQ&Q@}C%@BA@Z=%Ft zdibp4r#u%@;Eni}Vd58c*`ModqIFlBP?U0?jMoEQ@O|_n;1qT34WZr()63qHpGk*+ zwkRA|&qSK_b!afCNiOT&i4`TImU4cG0w5j8p_FM*7++;G=)e)p-P9=c_!AdIZ#=F5Dm@ zaXtsNcec1sQ`${;AZI1FpLO}MSvmNpuBG;&qF+NnK^KNKA+fG2B6k~x*zk1>kWLoo zTTbkH1dN`myPh~MvwxR+$U=Q8TZA@rD>Rx6;84rt^)8t}J_ICq#01cy^w|6G$}+k7 z`B|7~!k*W`9s%7mwW4^F9K_zV6e!>!Si|)s#I0vvIPe(NKAK*Cb%$~OHiu46_v@4+ zp#Ol}AEQwM+IqZmYE-TzX&_*qs^-4$Sxz6NM|1y?40Y6*cGQXYapz01i{1zA{)fX~ zda0oH^9}ZvGGgxEK0NK4)U-(ezmvZWC?|V_^nuz@gJ`BFA zc0_qv1?@fZ>cfs5+4k}mR;}k{5JnFZ2cdB0Kp?m*i+pI7WnxWmj`Vi*^^QQ3cZ~g; z`aiGa!XL7dMl_gC!n4s{uHCz$?f^K~lQQc_^ry7qlJ6p--JU^J!u!1ho=7fSa06q!YjAnLWL8PWJiUG6v*<3pL-KQVk+8Ojw%*l8KzXt)gn8}(Rf7(z zq~5&3zrnvXMFBplc$g|M_IdVxJGP$p@C;UdpfcyY=Pi$`1=b_l+@fmTwsfgCp=jCvbZX6jm}(T`HOnJ_>78c9H|-QuwVDFvqS*Ew zz_&8#3iI>KWen*fpa~W0Ttx@RQD7oD|8?yqq$2{8-c-Wds(@yu1@bwaZqt;}EV&Us zGQZ5sTq->GU^jSmgQ}4*KtA>nFpt7d&ggVrcaNh`$S9LQ4eP4IQVwfB}p7R8H`&sUec3v=X(WPtH0#_*D%hK{?^RZ82^$KdSHREt_ylL4m^Fi67 zZmwXik13W)aTaknPV!qAsDC2NITn09Cv|_+`;dx4C!(;vI%0#pr>J3fqy50R1&#g| z+JJ~S8QF*m`yo-ne*RA&ZA4DJ=!F=<)?EL!kH*QnJp%^0z*4!EEoXeiHnfj8$aCEw z&wsN@IXp~00#t6(b;eAMG?&;hGJt|EliGCy?mvyc#3%j<{1d8<@4i>C^eL-yZIK57 z-WP3n0Ck!DWtPl`x2C5v=QEo8G))q@)r&ap=p7Miy#ZFunxqA#lhF;?%(bqTff_*K zybM3ne3A$;VpK5z`idCbRlu~vr;JbaSJFao?Ft%VMK8*Sdc!6F9E*yf7h`Zs*yc*z z;_Qm>^fnwmmd3>ZS{Jen+sjwXQBZduY=YwLe3EEq!0qH3sds76VKbuYR~bqSDQFW2@oLx=64}h4~dN1)A9uTf}AG+7b^o&z3RtR8-jjl=CdI_E6)RyVe+Zul~V+JPs(Dqw3wFp7|vc<{Eo<#+~NJL zRi}esX@HcGt|BNW=4?|4HkWqWfl&2yw6PdXkjW!}4sf-evRHC6aH3lnN|73@T&fg$ zl2Px&sjAv)44eZJzp6GZ1(gWTkvew`Lzj%g-J%PMna5K4oM+hFF-q+yM^!!sEpd#0 zx$ZwD3OucUGU2NlDDVKkK?W;>&Wp5Y_i%M8zf7dYt(LbAhWzw-nKfd~{_e?>NrN9- z8;}42G=t$Oe0$kGj7v2Wv68y}n?=dki|_Don2l;>L={qJTJC%{b~f3tsDjLU+%cc7 zu8}YkfrW9m(%+=Jm>WZ$B|- zdPODUqg&a;=NJl1pIJjTmsA3)N{Z6|dI-<*2>J|v(*nUUpQ_HO6%*g1d5;?Ek zBuD>D^cg?OgVO!{RiOq>PT44|!+hC;W*obSt?DZ*cZEXM?jSr6a`rKV$T_Xw3Xs$c z{))rQ%h|np1o7UEz_4w0)`hT);4jN|>Lh-y@k#z<-VngJW0HTC&+9v0edoXpCv^i_Rb z0>pE#D2QHS;=I8)*~z6#cH~rXsouxzwyYr4?@+1yeQ_|V>}M7tps$&&LBB4r9bLm0 z$R9{&)$cu>SYE&8q4WpB<6ZMH+p7?u3MXIC^`SU@E)q&4!!}j4C{R-;XtPjpQKRR0 zc##)d(6MF-eVWe7??ane8X2aWx;Cr9tou>oFpT+1>z+T5o)rp`8S;uU(i{+$-m%{3zqqSGT!oL&S45VV340+R5So@Ol zUlNHeNNYW0`rCNT-c-)HOdG3fM@DnBEY>FHu`cI3u}T5VvHLM;YJ%RmOY2D$rckQe zZTLf43h`dZuk=vYlmOdQ`mqm+r4?UZo1zd_s^>D7|5TI2nLMQJF&VNacYK{PmA9=$ zs#8P&gVC0<;KC*M^qZkG zo4Q`GUCL1j+tKPA$QIErdhCuXic8>VD=ET^ESkZ! zt`;<{y@-#aYEJt7BMNWDG4|Zf%GPoel&hg}_$`JSn-0=}JG0*nS2gLdtn=@8oi0#r z=1}5L;wqIDy7}9y4STsNN8LP5pylt1iq>F;av&2}fht1e$6=twd8hv|`+GR>^`M;N z28+BLI+cD28&gG4iht|xa-Q$GxyGZfGSQ=b0;cW0X1h^ylPoC`VGfYd8CvYQY9ce> zdHI2S)4RN#EA7nLD@QMUKMrJKvZ9L5GzBPZUF>4JXM56DK+}|bDfAU*e?YDpe{dX% z9EkL`h%X6Wey`MgE;8!98J%0W|Eo-_)RQgv=HuMl5m>B7N}-i?q5O*s$rjs4-x$k? zz>aqik&Npq50dW%uxd4;0KxuAC<Xe*MkNhN= z-WXx93Zs*wqykMlE$Nl7u<=AQ^@TV**4HD|C>fO+$VrW~9X zp0X}}jK8ctccqyWP|2+DcJ{21ioCIRrt0ih9LBV-uK|BD>+Y)lX+6)XR_p)WeGVze zleys(Yu&hgF|1_HCKh2M0akj87~-8rFW`XSIYdC?G_9?pC4f&o_$30t@*Bf2*nVe?sieSuntcSa`x=;FOfa&99?Bs0mD7 zY8n4nof$+MuEgb}PB8x@v)!kGr81_^>v_xj%+lAosMdRj^=3B9Av9WgDx}-`NgM{W zoR$_vkIXf^SraiX`m)=nBxR}Or@e`=T(Yq^4Z#r4VwAF>YJ9bVg4qSSwxJ8Q!_n#N z=gP4BS^7m-KbKWL%hMTOLFk}9`F?e`mJrXcSwg&kDWVv#i>h7R3JTJ!bz%B2LLYoc zD7HmvIxKb^g0eP!u`Aq1z(7Xe@n7hJ%`sB$)M3-7th)fcRxtG_d!z1ZDNOsN93;l& zR_=I+_@4TXlvX6P#P#6^=N)fD)(qfKIcj9$ZuGXoit(iqi@fgNMkCfmbxbpnwZK5! zj_YqBj=X7piWZH~Em{aW)5o61Q!3=e{Ak0t5viXFr{W;|Ydt;>mcnx8qL5Mp!Dv=e z-PSKmi1xi>0lE3JsO`ouDJU^a)HvRo^NaO{8p0K?QEY`Jh3fr&=oJ+QCvfxq1!8iu$svEX z+pb^TsACiO)VbsHit#Y??5X`9l)YtGT-%zpT?B{V7TkkFaCa}94Oo-Tm2rpz2zzHPzJ z$#A+)FtJ1)@5&0IR44Ilo*ogmqYxENnx5m;3|rPt(ju|nNO!`c zV#0iwS=LLa$bx4`K{^Z58U7;ewaq)e%wHSqp2TjwylRe&bLPEFL!QS))Rz>QJp9_C z88+mE_4ZBADwk=E|KL@BTj2Qx+u;lGE}j68Z3d(#UJnhu$}>+#C4jYC-p^gjrWr6b zU>XeKO=9=HpnT#}LnHOxciGBULENA%1h?j?ufnIG8i`tp$?U~$W z3snG8kk9oPP+El@t)RznqPpRI?ChPPNt)Am|D;Yx??a$pv^oC)-XoE}V~&8RyO3bKm6g$B{kiK3KF;dgXfyLo?v&x!@W z5tj;Sk-lXgdiQ!1geNOvqgtqZ*zPmFUN{iwWOl5SL`o^&exwQ#xmXS<-28~`+Px7f z7e06x+0UKA%7C02VEEKy7mBn!^9{#7ZoH^%z%oVIaWL1jiFAcCObjg5EZ#6E4^QsS zS`#@+e2FdcjWV|@x^j}}!MN9Nu0v;L)#~7vBfU$VOzSGmkmGVzy1o?U1z$NcfME%g z#8<*VslN@6TIE%2Al9a|O1Qk_kb@~e<^NPhjBXYPtEdbP3u=6lSaDqCmdon!s2cU2 zR_Sp=D0LERnSZmkf-oF=^(KoM4WtyRL>F61+u^w}A3QL463_A?>ibxZnI*XVx#W5K zP8)IG*keM?kjAjys>RHOk4Ym>AuD2!OCz=sZV*>99Ip8-ftSF$k!ySz!H%GOTe^## zcny|ftQK6S(t71&8fBLvXon+(=FGdZA%0i4Nouw-;v)_y@(izl6fKBw{ z-oyb~*tnLu$a>|Fj_zQUb|2%YC_SGyH=j~G_ox&nqV96>J#th{uO@G`2!*PC^vrfLcdr{;9%U?61=S?DuSFHAu(-MZ2O^|P zv_oQgn$7zmU8&HL?|Fb;RbYIqFLpbZ71Q?`%tRiyOFqgOw~j$gZzq5ZC>M^0ADy7B zebm7H;b66zf_unLg$u#*nQ%UPt&`C@9vCD$xHP9OY-=G^UqrT-UP~OGQanL|;ZdOH zdhaS=5Y%NqPT-G)LPVyD^5n#ozW`#QGcrY!o_>QxIZ4;Hz75WCMhX}NpHnV;5U>Mk z2XIs?TF-)V5?;%usd1b!5tv#S8C@NjgzG}IV$JlS4&KPII0_B(hMs!bLhjB}BynWK zKR1+ai=CLwP?G9T)qAJ_ZkQ+!SgAPTORca^Tb~-NXRXSyRs5aMmq_vbnK{UASwokf zuWqCVG=7|;RFaA;42bY&;heFO zSOEx)iv9d;fgv{b^CkFwOn4>#UcwGxBBthVY~2O~h%DVR@Zpa5R0e2qT$Bm{+cJL8 z!Ri4TC5XI@v_jal*NWB*lS*z8LC6Vs0JFA!+7ts7@H_pIML-I}UAv)|M)>l2<|6ty zJOpbG>L}yco9nCHuis8gXjI?Q3PIC$K~+5ALOF3k#G$G8!~!i<$$nF#p4SX7<@gZ! z6;)ji4VZe0jWRR=BcdPtGqfB;TU)g}^-50o(IoOz4v+l@S!X6*rm0?96rC~_ z`v7;P@II=X$OE&v>DCWMC2;~bttOVGC8Dt^lA1cL)uoj8sd+NcM0I#t%X!=vpRn&% zsjpRM{mL!;^uQJ4jmTAjjV8|wZQGPl(Zj4dw6|7k@XCB4ZUa%R=uqqxLBv}IKGg6# zpuu27KQq-JAZNpy_sgC)KHB8s-a&Xyz0GM!nsxCuteD*AU=|b1%1d3OCz}6tnfQDA z8 zY-nb=x{^5^qsX-8;=}}28Lb_vRA7>X7|Orqn_SSmKh4>A%TRX* zd?H$j57eXLnqCZt)gNCuo(V}O#eBzzP0U0}OyFu~g^(xuNBS$I039LLu?1JJa?h>Hv<8$Q4XiZT{1X!c#O zzwjsef5+AgL0|CoPYIal+HyCY%I&RfH0?dQ9<50S?@luxfoO!s?e`tFnk;$LrdJ|+SeS6NUtlA&eeP|-JF|k~g zA_Wk3fXcf0>W2K@EpfRa|Nu^ToL~vIG?Y52+ zMhq0wSHCpAH7QVO7Wpi86tYF;-lvrN6N^GxfRd#247a9H`hs?iD1Y#e(z5s0U!z8P zz3NLi8!2>GTIbMQilC$M7wP+V>la<(XYG#06nG-M{DS)#Ps}o!BQ=x?q`FD&O=2Hk z3C>;r6x1(>1O&^PFA(3We5snPg!e{rR8HZFK;>FSWeQwqhe$F^AZNwd51vnldSBjN z>EtlNKtzX}w6HP?i!n(7r6gRfEqSUCLgDZb7yGi;1qW8n(B@aW%A!-%4q_T;;#{R5 zFBhq$N(Z%B7Nxz1-XLxe<&fS^?%DV5^Gy}^legRy-Yg%8tZU-`0?d4Rg!xNYyg81T z+}OpZUymNu?qToACncDH1$GQ$+_km-Ncpt>r%b6}PATf|^N^9<+Lve;lkV}K$$h~2 z6uI?~T*+n%81LIS(Itl^REwnU-xrsc^*IheM=x=|5$nwx=QfuxH#@rxyZO|TW+7~5 z)a5!)!EQPYEvO1`Eo`OXupG%z+M5dpxy}MRb^blAqQj@Ex_xCkK$T}oD%0K`szq&jmMJ!MtlR9mqS7hz!-I}5 zmCR`*8&K|pb|u#vmnkuf<P3iM z=mUANG;eN4jG?*%fy{0*XzQ*Vgmd5Wfv6~S7TGPQS$NBW)qJzfu=K+PR9{D2UFe&| zkw$zuEqx)YKxG`ylNOagI0Kq%^I8uAX0VBse8FpS3v&CS$r@B>mk487_bCGa^?5d!1XF!~`nV<|XFeb;(7IcLT5=Q&dZ6;|gJH5rJa zK!nl*hw3={Z1_V^5u=!1R%Y(|Gf;(_4|@IZSQg`!3UaPEj(K|TscJd0MHdoTB!6M( z|A|CXT?#iLhaleG79j~MP4F!J6!$(k`B*2I{!AjTmDe(BD@U!~e}0}rr>oFJ^LLz0 zbl`tsc?%t}rk4jGP4lsqf40>s<6K#<75iA?nggX>4HE=2QpCG9yLdH<@CYPf3IcL` zk)ON8(P&Z^&5&u{ODn)Zbx9Q&09ki?QJqE>>p1UaJB9ubCP|~ariGB#jnrmM;yx@% zc@7HtkzS7e!g8!!TZ#}E^uOEDz;kRIYCaLX`LcE458r1Zn#8#fQ1W#+q)nPagx|*$ zP9zlSK+zl30sTH*l|RW?e&|t{ z#ThnLVr(iUO%klSMTBRC)jc=?(#W9;n`n(E0}=X7=eX}qoo@(Js@=Td?uM_>M0UKk zw`B|#(r*fDPH*RT2sYTdH3>E0;A^1ku^L1`*8h0B()^EiYc$Q?{GG22(T%*()8}%J zyM#`gRSXvl=vU{~Momby2>yQ78=L6mo1DXPW660J9UAj4WqoUImoUwaGFIyZ&Rv+4 zn|Hf4Ha%K@D(urKcEv`B=axubZR=P_+X7}zFRFUtJ33`RuOu0~^lDeta$5QRSqM0z z$>jnc7}_F&YhLk2yCM)aln%~-&Wp(XJ(t;DCy$S&8D)mC27KuI88M}ja$GOK z9C|N?L^_9siv>1qj(xz=E;P2`fx>rXWNtbmDmZctjZKXQ=%4V3f1)P5l z1u%G%wTe~2Wz#y({1j*lei;SxPAv_ zPTQaE%qU~em`ih13wHVoU>~SXI}`yvX40TTs1yysm)S3C4a7KRYcpQTaMnK>GP@C@ zAT^Q>Ol=xU%t6GlJZ#D@5Q>{ex}S}SeXiHYz&3JUbY&CpjorA07ttU%>f!*8+7GRG@ntQab*yOp4?rWm2l9V8r>E=HP|9^8S`?BRB zB#lexaiuJ}m~y@Z0}(_rN3J8S+^P`$9t!mF#xTHYcV()q{rg_`+vTv8c&7+$GSEww z#$KkQB&ao5vdYaM?oTSyJ(4as;5hBKg(r4-KxDKod-{!Y)Hc{5TiqPjAJJD&y7hZt zZ=GTZEvcqzfuFb`8_wHNvGUtUHG1OfyvgP!_i?>e-<4}sN5-7*2XTdSX~S_bH&%(x zin{o|0+rZa{zbO@z(vnDw2i5{+t(kB$eY>=)8Dx?ZDEO!40SJLNi}l~Kqf!sL%mhS z_`mK5>%=7%FgFQ(fBg?Sm9FbY0WFE zccEg3W2hgsbpOUbbYV_WBI)GRnr>&F$+{o>TXV~QjJ~G-+vwZzUq|2SqqX$rjwxt$hg&YRmIxwT7mpmMrcSwIr^ zQdhqC7lieVRw6~HJ2oZeY59()wNoQ(wlP@G(Eiqdgx{jE0B9siaPJmj(xOCb5V+l6ytly}-8Gs?cr zNt{<^DGE8fhwg~Kph>r0S=z(T5iE^pprp+D5H)eKkrQM+Qs$IqKw`<3=Lfo1DT_8& z(eT$(5*n*I#ZsAmVl9mUdUw&alPc0O0218nUc{}(xUoEbA-Y4NDd9v)5Lkx&1wuP7inPqnYHy zn2D~iP6T6|?e`7@x4Y*qvWwzeXq5I#zxc4U8LbPm%y_Qj59PFslmaFt zDHljc(%dWoi`eT5WuT=y=$*=BSC7=#CN*c$atTZvL)Fm4CunDrrQ2oR?i%?y>`2vA zY&sx22Hd6*Z0`F?i__uT9quRqOyR01^!3&D@7-&2;!LquM5GENLA~Gn)xLCwv9h=# zJp|HRLi>u&MBC}VRqbwJ&XnbOtNGTo)qpINJaQ=dS&gd(joelOBHjG_N`6d?K*Ee^ zixge|LW-7gY?7iNq3k_x}zmlZ~EB>-JFMSVRCeqySmi2VyN@afnK=3wfl`PWqJ ziM%BH7XUUU56zDT{})|5_`k^7D&%)j&*e{M0d6fPrXO=tam4=N+q!C%<;3g0X5Z8< zXA;*BxpwTSEBPD8O`hQXRMl%{VCqK5ZEa4FI55>Dr8g#R>`coyOgix{tbyg8$pD}C zxCeuRCkRU3kjDqT5cWENf@8d9lCtU!Ma8#>qgx_3eS%E~b!UnZ+&=g|e1g#4eYV3O z3U3!;n6!+{H>`Y$(O$P+o108@Nofm98leP9fJh_+G>~b%1M@}VW=G6Cs=@0)cBSuK z@#XM~WrD5m(x=mRj=md%W(mtba}d;&`=8`BuF0ua;C}Bkb2$GL7iiJ^LM|G#mZV}_295k&Zh)6ApKi2t1gh+pt>ibxDayOYa zh^p$kPB!;$)XWvphErGWO`7d7E3)%tRqJkb@k-{Qp+gf{8JD3**nzxgd*fv&h>}Hu zuFPlyb6L&pW?);*6BEiIyIjF3d!_k_I_;#yjiVmv=1T?6w@`W8YqaYD3-|snCM@A+ zzc-Xp6Om&E~7s%kN*VL{J^G455wp&nRgrV(nXHvX5%m%!AdN)ql$$^$}S%;$L z7Ec;h%Y0HPo6)_$!>Pqk)zKARax|I}hY0w3&vxMAR~2No&OH*uU4OS8$g~}lh|7(- zIRCKX)Qwm$(F|$CvgG?&xuD3bpjp?g>fTZH@v@}lN8t1Q4REvm8M}y_?}1zYj#TQm zwgw|rWql>x1z{>xxH+*Z<{ET_y7vLL#X|%gy!`LWdNj=z`LcZ7$9jmp61v8UvC>B; zM}h6+{bU)P+XiM!HxkK(giTVxaRF$q6YP8wht17%%%s@5G4-i0sfj0up-D`i;S9PZ zYrA;En$gQvr5(AR&^0I2!12kuBpB2hjRa~2Hm!{0u&$j zsZE1dGie5@0x3@KN(LQcO0a+_TcH;p5|RQg>jB6Pf10nsjC-jEPCw`84o?^i47NC} z6`3*3R4KSnRkh-|b3?Y*WOcaTZxU)2h;6eq_eDFlsC*6wfU~=ChJ<}4I-}C~et9aZ zO`~(CY{h+8Kk8L;><-|RF?o%;Wr?+1Ht&t4bnojmf3vpEIYHh6X7IT?7H0fG0N1z@ z2*(JD6QP0J(>77DWVsID@CvOEdP!NnoHm2K=^Ne(pdvC)1YC~`h;zyq&^4ZR3Mq#) zq{YE4r{l(RCXRFdIfxNC?r5dGT9S=hb&EBjk0fWNuE$1sHz9C!8n>n`lPOi{jfE!L z(1kkiwu7{fimwW}Zb#ES2UAWpa7Km?pVUK2|5D>5MBbV+0p%e~@Iiw}!6DZnHyh`F zb{&sE3-PN;pMb;D$_-_#a}O-)58f2!2Ny1UVQZ`Iad6khLZ-)|T;B4K7 zUNo4_7^6ii{e1HrS9NAzeC9B@8PvFo16A$O0QDQhL$Kd!vl(wMR2( zCv+|4(w{C;a2w@005DsE`D7n(92kvyYK}w#%2?j zd#)=HO`rW(gxIusrV8i!*+myoo0vhWANQiZJNn_N3>-QYxWjU*#)HR&TNxT_$*y{_ z*9EntY7Ue5i!FhgGfPTEpiK?S=CM$U2C*r~n-<08lX8Yt83P{G@;RZ%GJaJEbW$q5qs@Q@4FTZZ8jK(Q&KNpE=bg-y>RxzL=3hTX*|;Tp~sCpIBDY(cys*AquuBarfz z(zxmg#Ce2NcKBRN)9!?`UD!xh?t0f0U=w|CD3>?aLDXd8fu&XbcCC`n6UVNra-$*b zIi6@mPIwYu+TgZ_r16ksIM@O_EfCad$o}9cj(?$@`aFQ6^nY_d{H+Ur1?90Dm+lHJ zEo+cjwXlDkNKu@$x97G?(>D0Ef)##>FnJZClNQw72a;!L|7f)pUhdz7INs@Vc`~;lg&R z-<3ok-dN<-13yCjZ7YDLX z%wTj>yGLUWi=(yRCGS1m24%NR%!52b%@iLdigW5vQ*9p&IF*~1{FpCoo;`aCYyxBp z{?=P8(7E0T34~I#S*pebCe(^~6YlNNXh8L<S;H9Lj7dD*c_sj z5^u|--a|Rxn+UWZFclBP-$s%EN%f`>kxo#nLR7=ypmR&y=X!5C0^B~3Oc*{e3nk9J zkB9p(O`%1B^7eBFX^rA)QsBaQ=&p_s(ICQnPMNbUzF)C?Wl8HR#3g}5eIih-3XFAZ2x{K5e_>uJV%<3ni z8rQM&{lTrVuA_gbD>K@s#V^f`od)cK`_0*I{{pn?-r8Z+$NUAL{JYBw77y{ShLzxS zJ&3>P%)PSx^es9hUEl^TlyF+dit=TdlgJw)~d`^NcZ<$n9B z)4ENIO>Jzh9PFpPxMu^b7l}!*N=X947}5#G>8^gRB0gK#u}R3%J&$mu{r1~ye+^zA;*0P{`{&MA%yIr)j_@ds0knQ7zp1Zonhoj!1t)EY- z;|hJ4;?U!#aN;t)ZNXsb#{a44PPd=s4`hg25Q*MP+Z&kyxG2#aY(pF;=PjbA?+L0u zCQ|=meQVFAi<{aamUZ*`!R9O&Iyh-dZU>*@rn1G`e zJNX`%(h)u`Mt^8E7t>qA>R{p-Us@S?ddinl2vqzSiNBzVGE8^BkG4r|49zn4%?gn~ z&Oa(&`Hd=y=TtYDi7fMensZf0;f z0u#Az!T#je&t2BAKp6_Py;}DS8Jc=Snn)-B3!Ihht}UBrhCFK{ zr*!}J<2SnBnJuW5-Yr2GMiD5w{~*DJ8=ay|E(*=0-=LHVoMAz|;K*Q(TMbC`N6340V_p^A|*>6ER9p90574Iuc-)E?#6zE z{T-Mi4m?ZL#~dArE$B{+w%j8YK(?PFi{sbKZxcDwX0BQ+xS4tVeteACJZo#OTm{U+ zr4w#IQ4m~)Z5g2Q=C^m-KI(OxMdux~aqE#7PV#7@wi^J>VK9r9j-RwgdZEU~;i|lo zo9L1RvmJda;TE=NHzp#Elt(oL?=_W(v?%^yEX)zSZEo9L?3DNh<(?sgo z-IviY3^;g#8k$%h`!5eQO2=v)xeSuPuW1Ws(!`%M73&yn>sMZo!O)#P^xLUyv}8^c zK44aF1ECzAfu+pM+=BdN&_yoL3wc;W9 zXCb)iR|h zr(DXL-(>KB!h2XtkUB-qp{TRisc`W%tfH3nmdr#^IX;Ui6 zp%d7x*Scr*ORK`0jtJv4qMvef;Gd=`+i-3Pa4Z_Ucw4Y^Q8-Svw`c!0#qZPTU;0WZ zKj2pFXXBJxlK46cLUkiFYfs_B>DiEyB(Cr0d}Ct~_`}0=6Ha@$CgT1mQqXylRcHC? zR(^Od?3S#0w~Mi2LH|xyvv!ZAr^w#4nelrl3+#bumeFF?3+4ocyR_pV{Xpl-4mtLM z(w50-CMh6XYj7^qlz!JrV{E+3PTv>{fFL{{RdSQ4$})yY^!`f>tpckp!!D(wm zBgYtaJCvuw*RVZ%>ny5Qp6CiFD_)y!>3n(7b~aISdnP_Go2Rf$DWwJqinHbfbP0W4 zqfq$Ro8p*1_FgRNs5;N#zFfKuKRpYi(MDP$|Iu!YXBj^9C|Pz5TgthuRCjN*vx;m* z%{*?egl4X&9+9khExM+0x}o1offo7cQTJnCYm^DM>ejO$I$K;oc|kd5A%8t4+_?Ds z!)&G1ti!j0^YuHm95j%vLa(a-by(Kr?!%nzet_fIakW@bOfIYg#dz;~mYZeiy*{Z$ zJ_{8@I_2fIqmsi?#I4d3$O`$krn`i<5t86zXt$l~!z)9gx;q$M(&wX+`AzdIAt{Y; z$C50SO-z10(NIM|!vsp?rKL}oA;(LUw_Q|?1;)x4Qdo7DS1!Dp#$OP^0+ z6jkV7fF1km^?y6X&;7qn@f8a?Cn-IHl{w<{L}O0yuD}cXMZQZ0) zr;)&wTq=oi;r;WBs(`NQv&!xDF8ZIZkwQ^Db4}sOHHw}Gb2~nmkd6@)X1ePvFZI(N z@@KRv1M+u>;8{0*7l`K(hAD(})}7K#WZ0XCgmDm`l&PCZ+>6{Ty4eQeQ!(1OUIG8B+;ON9g3aYV8Qad#8$axoRMO6XcD^UA8|{p zqt>|UTH{J(gs1Yi0;%+NgQ^70_@9^K{`hVSmSp%(J8r5}R(FhmMNt}#{n$uGm3{^H zS*Z-D%GvCM)z`&JAAm=b-^HE6&!#+GUvZ7AVk+*aZt$eQ0uqb(UG!^n* z!AfQ?Grex{VpS?aRVzv0E<$i{1yjX-YTbiutHYMvj�hK>9C$fK6X(eb8){k3BNA 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

egd#R+2#o>Yw<&E! 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 z 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

GsJ4;vi_Se>Vgx3YmPP#(`grsWMJy6(8BCV;>b> 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 z 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%0Aq}q^ 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%0AeJ-&>)XDA56YYdu?29 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

-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 z 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 +9hK+$Yz}9n+J<+X4i!3Ev8h%W)OL}yY$~JF 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 literal 968674 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 KMa;Lx1riY=l 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

  • JCKu&vZ? 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%0A|pNZ^5FOGL>(b z{tFjQmXK4F38AGFRv9zekm7bk-AG;i5I$&^ScF8WdATRnp; zYm4m;kF+u`l-1}jK&pBdwoeMiQYJ6WVjt!Fg_~-QowLn-tR(g}6fgB|pWn0Yho;-}196Iek2?aEj1PqqkQS@|E;2VAFJj5UX1mjjds(O`&VnEA(gP z6hTv4M*hpCSo�RD?`suvB^`AKver@mt>6G8aAMI7LAFKSy*}RHm$dXwZpEI zqdV#-OV4Ra57Z;uam=nB002#k|;bWv4gyS(`aC3_5Ujl{9g~^>PgUn&7aTY3bu8w&uuQ& zAgpZfl-A{IB+7{cE&T}tL-Pn#VxD%b5jnOdI|;E)Z_%5JSxRwrkQ_Jd7s%_t1 z(%yF#(uF|G$D$5z`+%BI`y2(Oa~1Tmozu>q2nFRt^9YtG1za^nO;13Ghu@HsD3O3Q zjWO2DbFW}^e|Xr67RJH8(DQz^PvYz$KOmrS8c_iL(1}D$Lp4rxgv$^dFz4{oQN509sGO=42OJO&k6Wz9q1GeA(I%!A7U)1T+SX)U|G?PIJb9aq1=<;}BF z6#wR7T-y=Xr6Q7dOG+g~*JU!XaMrjndeTZdU_3Ir9)OM#(L6&}YhzQ@Y=Ek4QTnd% z#5D9znrC*&Tyk}K{xL{p(^6dY3zA#EpPrWp%x|EbW$ z@3yKJmeBS&u_Wg`tY8MPr&~6{HIx1~LC!iojvc}JcLMh8{?Iila&M*h99QzD=28s2 zkDqB^N`mEd7Z4C$jTFODcs&Za*-?QMs@b$?_i5XA#n4uG>v5X_r%1z-(G~&8lLS`4K(H7KxPw3Kaz)&0@pVqh^>?K;PNa zZ@VX0Pn#k%Z#{A{>4s&SJ5*477dGKOskb&Pp76euCQ3tViV%W7svUlZkqA=go(N9y z4T@QbgdILtjKwGR`-hT6O}drgf=*%vUce5}V(fTun*)#0s_cI~@CyGSI7R>YoaMLv z15&_zGyRSl{nj1dZRFIMS)0n5`BgKa9u}1MViXQOv@837Vx^7Q#gW+;q(DBd=se2$ z=4Lqm2h@Bl(#)c-m*q>ySlr#LbY5F}vHT4A@4lozW-OPVeJ z40A*wJ!=OIfvx$?6=Y4<#~8r)FGXLLo4$pc7XXlU;7Jf3aa+{hK}UqCaaPy;}dUwOzJ$zjdaUXu}8 z$76CnJF615q@)tOT_;eaRQc4n9{@*5a&Iql8v8uu_M~C5fk9nu*X-cmEk9FhM*z=R zaWUhe&8_Y|LTDU8QRlq=RqRXj3;wSHuFLCV7AJETxCOc$Jdvc6yc@QFp&m^zyMbaR zq%{f(S?;YqX4I9L(f|B@x+}rraQcG@d;6Phv9t7EY#%L27wWcpykR}aJ|%lq{TG!@UVhx+?T3Mp zemPl3|8xcb+&w+5ZSslp&@g*k#dZm%WbDii#AaS*95wiyTEp8Hs~YphM9)F()6`UF znTuh0ba~1k{SqKeAVx!s{8anmPaEA~7IoLSMrSl(EFBXHQs|DLaBTq`ZUV{knzz_K z86?Ru*;C}^EHa^!^(!a|6(l$v!2yONE7m2a3?j!>+VJtEK3T>W;IAI^m_4xhe|JuR z0`!6f?qhtC+93GWK3J zwcA~ar0^?ODk#=Uxjxp8_ZMZ>ueT)e}g zVU)nom=Y6DT%XqAD>z!Zt_0vWW@XZ`a8#m0M2WB2wp(c-Sq-0dw?S8TIgeZ@7DyS6 z6!Lvoz1MW|2;@zmNwaA(6z${P1sT2*ct6W<0`j^WDWy2C@0@IS1HfJI})brox)ZyJ^l7%_LY&JoF70 zegpptQ23_*orce{E@MUPw=!04&bKZh=BoHvHQg}OA9A^t5{iqmIzRvbZ#=6eYB1e!R*2j^%ERY5Z%oOVV0+#U~pFbZ?Ewfzv9QV*p=X)Cqg)t$&_2 z;RA|G9tyJ*X-pbumDu58SqWUiYB!P~CXzfNgDrxk1Y1P40%Iezm2?44}rzHbcyBhqU-ZfWOm&Jw&a9%1JP;k0lRS2EH5;H{9 znK`O(ZiC+p8F@4JCO^`O&~=RMJKe6G5#Ln66g%O3v{8i|sD356 ziUeDGDf03gvyJZ!6_2Z|7LfaJA=zQr4p`@&Z)j#CIPEK$+Fer?*}aQh!1R^Gpy{_3 z#rcTPew8c5nzj|PvkCuc_D@#Jyo6YymImAj=hx(0t|ezjLZ&yGdaxC?fBzzi{{@y# zwZ+!hMztrAM7N~x&t~u*Y8=}0k^1dd#wuYZF)`KC?H=+Re}>VOdrqKm4C?Rj+XNAzm0*nq>4_U%+}_Vhoalr2wO#iR)w)?H66+JV8rYy8A$eZgiyw{Fy2m zJJkgRI@BII8eWwFA-x0U``GWchA2@_M7AyOWz)Yec)x7ZQF|~TWSKZB7P#R>xAEQp zDYecD!lT9>C6$+S*nAejFc3qXr;8wb(9$Q|;ziPAOe~TBxSELK$MKQ+I$Jqj3U-YWrEJtuRZ!tVZSa zV`+?~teWtejUS}Y7==;?J?d=3f#}X<>)3)ST_sk`&T^aB0^>I-FkoM-q+depY_|85skALYFm%-@7#^-`NUK~K)TV~s>^`1_ee47~zAsu*c{brjB zmU%(_*~l*vr@nwSnNqOBV(+T3ffVu5$1>}6DitkiHn&Wa-d3Pt>p>4vEXr$ta!29U zU~y5Mg=U7O?RQ2A=d9L3^;sA0ib^d9s^&;KU8cb+EC2J|xBD*#zEZFI?}~M2y#l78 z!WbO4qd(#lg|+}VULVf`3&nXJd&P$Ww9HCA1`X7XIZX{<(R&-}e6D5o-J!t|F1=ri z_6yGPf9~sKX(SGX_J4MTniLhB>SIGlw2@?Wsv<3S7X@Z@NweTq>w+VKWikWJ1!F^z zg9I}fs?M*2vxPhA_>a%4%`-j^&i2u1bMz6EV1EMMklSVp0p?W|C(mxdW(U<1NS-s& zPXmQj)iyZ;GjZr8jl`+*#`L=xdfX8zsh44Af>Y#G3X@l#T$4L9>so$54Ova?z!fL> zRL0<11so2U%4VRDmz)d+?uYKl>j%A_ZH~*G&29{NtzmZc28_d~H0m^AP|y1+MMT4u zvD1|v;U!7(w)Y{0Qf5CnO_;O0^n6+3uh<&92AE>pyha0qZC6Sb$sx0Z9Z@&>X2i5z zP04rrMy}IOw=4;i0S|2AuI2mWqGA)-n~bzy{L)xR2XB`KW9=)vt4rTmkZ~|`HBA#H zxvHkOH!1j$$IQeo9Dux*3JCgakT%^*GKWN&c;7FeSVI(>Cjy)Y2KV0KJR>8+d5fFl?FWL7(W@YcGDSA?C#4H>K+<`7#4fuKP(ur4Pw@f z4o+JKYv3gp)jC*uJ^|7qA*@t{0T&aFxX_K#uc&BoLWaZNvB2=j!@|A9iy=%P1aCWpbjS9*_zdD9eDU{WldEoml@=gGEJ= zTMzf?A5hpGz_-O&WV#$$ar+lwa^$$K5kM170<#Z)?t!G?_g*H~l!u;c{-D{?tn}oM z__fNCmAzjZHlF;)fFSIOk{q6mB8xbH+`Qc6gE*R0B8x;V(PJEJT{#!!PIu~XCEXS5 z-AhcgbV8u++QQ|xe?Ze;HcV^Q4T6Y0cznJ%l7eR}y>_@P)(hZlQlr09%4iu-c(RWe zZi0irPJZfpZpkmq9hPw%1L7L{Su?q{c)0t@kCrTAvONPOo}}_VaFBjLem7A1U5g|g z`+G@11$EPRk;!lt|NNq7W{{Bhlc&X#Wd8xC54lh7;FL8SUB}DpwS)agJz3NH$BH+1 zR62`a`s@?Kt?cIQ2epCDjOfIBQSCF)10-1X#%Ur#>UJVUXk2W;D}=QqCZs>kB6ZQq zSy3KC0@oYn?Ca)#gWqyA`xnT7?#y?wKh4VEaV2kS_FkQ+-kI|FGhrl zVr!|Z=aV48+l{MGnpdE>bWor~c2OyS)<>UD3_)~68`56Hv#R~#iN$AMtS0c;qu(n0 zyt|qaCHgm?S-;k2u0po)16N#WHAUM2G=;PXb2mzB;uK#-%m;MtFwjQX1pft$Al;}2 zVu*JbQR~@Go)sUvyz5nmy_I9MA!Mzc=^e&(Q);X&{U)lSf?|y-{B57<>2--yhBwAA zlL=cPubz6qDc3HD8k^%7z<4aJbKJkO-C8czElEJS{CTemz zRaN;m@&zvrv=@r3{7ER|HX?h@lR0P*L6gUIJ3GrhOn2ipFhoUF#NR{Ww!BdT&7k^~6DDpZS+aRsC zoZT1ZjO~+24hys7hus7b-WCRRS-S3w1%j31rqssnH}c!}^ki}-tLur7z0%YRNl7AD zbHa99eocq%-GOS&e@1_>CdgbNz$K~ z-EB(PAqd1aEga5GMbAV`y9v&JMO7l=%fdGM@3PzNpUmI?%U=%{6oa94f54}GkCApA zX5?mT_-Zh?rC~97<~`Vtx~7!d%5(x>e~o>`=@WSr!9-;F$aEf=?E+)*QAC${c}7i` z6C%0HlQUl}=QiSNgCq~3d#LuFnt==oADqFc%}`(56x@2t%s;z*aaXz`F=c58R{$k> zy*FrxAx(`{TEi5*JmvgMn?mKGAtYNyCCq z#P1{|@~A}-jc?(x533Yc7xOLT_ja;F()Eo71`~X7Ny?atw6?SxJC}lSG*!0)6Nxb^ zlQT6#*25TR3CXUMcRlt7tVWIZT;GdvvRPcJDhkLOu<2@iraxe1r!7sS^1GMG5n~g4 z^-!LDPg_3oA)oiAk#c47kHzW81W`tk0^D(2h{5U_^S3>I=7y>57m#<3cXfJdk%`1A zi*v_ru~7zZ2_Muv=t$W4Qg=CTd}9Wg=Hp+$%*GSA_l)xAz1LEEiC*`C;8OhRg2Ut9 zu4_#wECa^KAQZCXQ++ki<4kJ(`*)d7>a*3NpW&hOrMC4w8%M+O9CZWkYg(D0_<_#F zzLwZD{hA&Z&pBSLep?C?HR!rRjY_K59#)_U5poz`d9=2uuw?dizV~)ALtJ!T^SkD* z<})6_S2*4mOgBldRG3C&k@rgjLT8z7B{B3`|A`qhe{J|jB`oyFsz`))V3JwoQCZXv zB9rXDlPffRD3qrqXY&w^9ipl>;t98Kf}>mtTf>c5medK#u$&Z$qHwi?F5?!^b@1)m zt|Dgi`4cr7nqYOXs?^t4wD}1B!&i8i?C<1F-6cZvEXHdLv~Hv<8^(JoehU-$sV@40 zXZzN-0))?@YF4iqS6|uj)uEERX7N&FHe!bj)0k@uU?If%<{SIWntEIGZ$0U3u7JaA zX(LiLpFS}yjK!pcf5C047+uh+Y2lsx!A`yXq^Txd>L6Oa&)#mm_7sOQrK=y3US_oi z1UEP}HSvojdKjY7Fm@cKOYxJg4!(YKx{0re=wPugm%}aBtoGuR62UI$Va41hL{qve z%%IZw=w8@;RydW_lrUel>lS>|ZE*p==BZVEu!qJF5XyO7SaY=$$^x5rY3HFueZ6x! zT93Z9Xnu?C`t?||oNve9>8ttIuC`mad6a)XZrD%ltG@&;VHd<;ReElnr9g7{Wp_eY zo(M}Hv*%lTKKx9ySCWVJZEGL?jGk4rnOJs}*bHAjFfaBLOI)3fS7`de45qW-iHz;S zfhPiCP7D)NTBF|F$_E}dPFuYp-(n>N!S0>M>T@} z%UP!C(h));^#1BMtg5+GUjFi#h0iEmY`1(~YS_b~L1#;wk)GR*oXfS5ql!3eQkfs~ zoH-=ft6Dj_AYpn*8({1kGlQd&a9 zW+?6~enl~TO_y{|1U#G56qGG;z%H%gwY0qxP9v`)+l;aF|mdver`|2@>>_ecx*BV*m5F(f5FPn=QMpK8Gag*RIs> zRKJa@8J|^WIRWPIUrBgYZB-38fK*$0WT33VckiWw3Mc9R0I;W~{!d-`l1A3rUxvk3 zQVJFrE*s_MkSkY-&M z#f2!ZqqdKCAw=^>cGt^~4BeFwkS!B691EsjVbI zI?-@))(NyR2Wl$cEMM*y=$s=n&x{P*Je9W|(+>Q9IMYh68{ME^a1%I<j&(amw!R@bbL*7`Jc0w{v` z@UG9xvQDtU0FpcPS%Wf!5Yo3cx@uEMW1IWVHzkG{YjX`My@>tsquNTD!CeuL%e&nY z0q4PDP14Iou2Q2x&~#Klf4}e#rPda_K8H7(8P<*)5jJfk8}D@LIr)0*)XhH)>Kb;8 zOX@#EB=@oH(6h`=vll-~7goxkj3;bCt1s@0@46^)LoJ(%p~4KlzDjAB;d1p3!li#at$HP;KS`CYni9F(f*GvI+U zhKv5h&G1<(Sz^A=ll1=!7%QqKOX?Kj4Uf|o4@PI&eN%6n`b*GKs3dwcHxBsux?g8? z#*N1p>8d01Ik?2yG5QRAsQuqL*!;hcLH*0@eG!yl9-{Vh>L<@#L*SBvgJ)F9NJAxu zH4~ISU;^J15@}N4TbnE>{)Lfe-lLMK))x^iMF1i06xm|A5l*OqRa%NaMa2D1SGf$B zK@t?oP=&4hw(MA)&#q|Sa_H?U-JY9M#h?6Ka?l;1T!TW`aWF2O%Xckg+IpgrZT!qA zYUCU&gRZIXD?qwZ9IYf9J+#@fQWwgq2DSB7W}kDJ_-~97+xc8m!h^-gU-eZy5)^-! z6c7?%5%2yr(}JIO#p|We1%hmRoKz(V&*leGMXIjzkss46lbjfQD%*2Q!C~itptYJi zUGn9p$|+K;gS;06#I;VuJ#%-B)175`m1+8Ca7Jcq8n4kDoh`!=SG2VU8T2I7BfoAv zHK>_AiLxU!lv6nt3{bPbcL3ckA1%9>K^LJ#+aYI2&XdkBClK`W6kL zheC?LB~7b9l1vnYA+aU4bP@L?_ zVruaL_aNev7z5A+nYV|o{X<#&018xr53|Ggd<{Zi`~8+fpvd2mOr|uZ--#!VIMe z)TaYcBiebW`S0yshhYD|k#Dx~-89>1B)1_H@^K{QPkK(^E%uV-%RbvFjQ&$}<^po7 zSs_f4ky=5TH`GrBP)0@`rsXu*|JX~@HoVQkZja+Nk4O8iANtbdk_eCM55v$=oasS9hwJ(Nh-y1P!h%~dyY zrBRI9njM^izg@;07|*>LobdX1J2I855LeG4Znu>CONC`Y89BtmZ@h0&5dGPtY{+^-KpfBKO*6Q*Kl6r?8c0EBTpL@K|Ew}Q&p+X}{38w#E+ z=LcXZ=K4e1qL&J$&DZHBc#zLjUy;AxaI75pH6xwa+{Z=;p%{rjEjES~JD{~GUQJtz zOz}3Q-I>@%=!ZBV%r-(9YAdX`B24V8i4KezgQPYv_!Uc*vyo!`j>B7q&62WQv>m(| z!)vigyS#=rWoN(%rYF{^u{~n7jN3`7^Gn+=n#^)-wT;FEUO2Oy|G@js8~Wg0XgL~` zN-s9f*9LP28z)Is)jpSe!_F6|-*BzE0{*n(sHAZeq45yp;vF&TqL;h;DSFwYzg*nz zq~^18t;Khcox4no5jq(F8H9csThZH7lCsnTGR>s1gV<(E25luFw5%M+x(7Jwgiw$g3UQCnpkqAZ$35m*Gmq_sLQjG!fCZDrl z(QZ46&bH9Ppua6qw>Te(qSp7AEPZPkC6?Be7DA$>#{<8~-H2xr!xeUMzi>RZ-aT8Y zUp7$bg6_QTLU_)yG!s!~(P!ZF7XajzWuF2cR4$;(sa*8^Xl&IRaVV{dZf(fqF?#(i z7e-OF%L=}1`@;gVqrudYF`RHRzN2G0SeU35PfwMf_5d^1jP-Q1`8NEXjKB5iUQP@l zdA-SaGtYVje4xDBzj5fpR$!7=H75dRRhSg&?xfEhE6D2Fd4rUzw?HIFB=>qn%$G?D zXgZfyc;kjJb-{uwcu+C>MrjN2@m2;Z8$D(5n<&aK_f_6JG^VI&zvi3-roL{dZ9Y$3 zq3(1d45Zg7PaK)DTrthUg@ga2lgju}!CfFg`h_OrX~5fRqqRF#na0%F!H3x4?pBPRSWIe z@Wd9s`Mg|&3p2DbAF}7MEFx?D#xFiWOKnH|Malu@tn+fEiiXnD6C5l`t1#m7Nc8U8 zwZNFF^GOuPBihyLo-P;$75R;x7ElmytfZe%^1+_k+#|qSy(T=R^L+?C%#SB(o%ab0 z(_)EwEk{LF=EYkXi|u(Lv4evBr|nJLK2T=gil>MB%0O-6-iSlGC)W2bp#O(sfYt9B zSC`Up^#0MeV|_{*lq}w#bfey8bBx1hJW9SbX}mTsahTF~>?nUQaY>-Aan$|@q`H=3d@ z8;f`gA$cwXOm&W6Zv3LjJ}c_IC1KAA@LhOsVE$SmZFP77!~%sO^jbxhhNcvqz*tol zQ@7m)3{^ip@OCvzumQhw``y55ZAiy-Pep6SsZ1y^l&mcUFVxi#i!>_0prayqt4wA0 z;#}%Gr-ecKrnEa)i_`>#wNCNkAUfIWWuvl&p=3yv$3Gbh{oH>lpU_=?hhL^)H>Tw3 zG4QW3T&gTaF=nbA`z<;gOqQv>R1lMW4ej%=*WEb10^VkIRx$#~dY5mv%Wd34D6-n{ zH9w}Q(h969j#WousD89prYhIgF*CGXd}PuP;}6z9EcVn$s2JhJh?5klXX#t3Tq9Go zgo!(DtA}KxX?@GHRn?WnHp-L7&(Wr@72=%QvvNvR@LAS8=Z|LpJp2053)G_g;sxU7 z-5<>-a6ivht9Wqaytbn(Dznarn8@)fL9|lKwn|>q)FJq`VR~lbK?Hah35lzTr3pH6 zPG*ZcZ#Y#S;>vgfK3>ewWfmdNI4aR~t_s#%1WVYES~lrkd=(`=>{*`zFZ}quDYY0uFX`=*9-Ss?Vz= z3xAH#rTg6GZ^S^p$^>Ftva4qkp;3=zuaZ-=ImaiI+OK^YB<|BY{T4B^TNGaUv5Wpo zVL;I|S8nWrHD8&d{(+zy;1%NqDBz8OPIbrjyfjmSTeG7G<$%;JtQ!l`^Dsmjqo-%A zM`=o?yn*&pAa3FRVeYE};)<3nI{`v~put^(LvVL@cXxMpcW*SfyF=sd65JbaENE~D zmf_y}?t3%uf8NYz@AGrId)MAot5&TgDM=7B@l74!IE&14+}RQd3y76&0VIC0!IB*hNH>H~&Daz6~@@7Un&xVNvsxJLw*MRz7b$9sg`EY?4Qkjs}rdT`-M1mHHqh z^pBRZ1shEB5ThSw)s#9XC$3Ki!PH8p%6Ebes8flf)r?W}Z^D3P^ENLeg zhM&=r_kuL^0zse%OGUWv=ug3aLZJadBhLICG1bAijTxCovuY@GNqL@KKd8-y!q6+G zC*Hv2;-7ET(*W`ZZBMZ361|o&b(h7g?|url_A|ACtC)g_zcamwSpoBq9r~v{#xP z6B6nX!`=6k3OJD)j4vRJd)*b0#9(WuMVzd{L%e2-$7vU_Tp8tU)4`>g3FEfa|Fxed1a;>I)jo1 z&78$0`ME<#5$-%*D?tNMytSGZnb8gMAdpqNR1_wPj2u0QHJ~~hX&ZnD6_aJkNN!|R z!Zh#kS;eg;D5IvFIt&0w5mIhy#Ti|+Df-Z0JthPIc2fR3bx}LH`wtNlY0`IuxUB@j zynojl?<;2YXLi%dyW{NGrZNqX`3tJdn3ky?qM;Z1Xm?uz;6Rv~LzHo98sn12me5;0 z&tvG-Qx?NR=v%G_ey=o@Re|!kH!#+cmzH*PIf$NO$##;i$g*}AVBp{6G%;Mvv_`D> zs>UX426A?p2%`#2$EW@aaK#grlo#Ciz}8vnhI4B)_hri;#w6`Sd*?NOeSJDcThS1r z65r{;p1N$?1_6)i-m{>z4|D-Bba6m1jM*Xx+|DbNt?Tzb+ak8S;P$m7VIZoYX#I}A z3bR(dyn}?cd&6EC&E*0XT`Bg7-4S+EpIZR=4MAdM*k<9RV6h%iw)E!wiLR+Hm+n-K zqp}99y--uX)NK3OUzYdq95pD>7RXGqyef8YU$-kmmlYq0K(bi3vR1tQ#nYLR!( zzw%zU<;ljQi^H_g-gAZ1(&}vqxk>sfZ9&E@;P4`Uad>_Ca#yKUym(q@wTR0THB-vp z*p;kTbPQ~>5fY*z zj(_sNVrh~V;HIe7WY@BOkSmHlrWyfZPbC>e&$Y%n1isr0cJ2Y0`)7VNiSQIUo+0lv zOmb9p2kQp5QOB3z(xWC6^Z66$DZ4iVdDd z+B~KqBi{Ey=1x&$m$vcLy&*ej6hof!^_25+cDqgA7&#&rSL*8eP->lk1ez;#7Jr zz!#6ocrgs0@C%KqPr}0Ovub2d^60N&e7wi$@kUp zvR51&%!I7iRm&pr4SKCViR!3KHtXct@gCyvKTljpuWaL-B?ZNL)W$xIQ(9VHCperG zeOiq_X}YL)+d8h;AD3ZbU~HLHLO7tN=5h3WUSXP5k>5yNOweoJ^UCi!Z#-Px#=@kK zmo0WXtQ3iK5%?(2q}HOf%Lxye;xBqJ$o%=_6W39?RB9-%vd!Plzc=>sOY zHy8CMZijM(yy{rRQo<6i*hzc`q>3AXkbe2IJ1NRq%W-V6TAgg&v+Ek~v@N3^gD`CR zvgCF_6F33*yJsnK5AA%f)Mn|j*fbE5lA9wb?>7%xc(6h#pEaSfmy+kDWB3aj?<`DH>5zQV;$EkP_Bh@mnB*1+&^U2PKIIrYl>O>anR4!GkV!~v(k1f zs@bCM_1mzj97ZFvJD`5$-DRV>Wf}MNu!>k8tDxDI(M(dts^3hC-%Vw_1S@V$Sr2aL z4_K(8{wwx`)!wujjh3X@hKT@*x2Z3!dW`xjU$ci+ZlCp{fPoXE=84oNv-yjCV91{q zXA!xCOJ#1q?vol-p!L+4zh2rD>(2#v6G6@2N1F;10~P5Und06gy{@Rb$C{eH1#ZNP z>`M0Ts-1$To!z;AaBPCV=-34&_4HU8+x zc{h?24#3xP>|wVu81jJf>0|6A_pO7k(EGS;5=r6vXox79qkx-h3n=bG`L0a+e=_ep z3;&%ZBR{rtm_B+g(=>fT7>^7-;^F+_qBQk>u7Bp}wD-0^zYOhb4z%IApGt5Vd(Z-X zA~w0IZEdW2Sr1>o-_$s3*FK-Ja(?T; zmsF;g8$Q=_YihMK);1c+`@-a=Ku^PhwLn9_4EDK|f~^?8u8jqc&U}u2z}e&VF>dOg zx(Z#u9P$;O)kRJ@g4#X3<-6PjzgFUCG-^vq(sF4lr|fnSMjZ!j^LJOJ-#gD8=s7$j zG2-<^7ycR85Bp}b5>?kWtqN>MAUhfHaXmje(vodNFv8}q^8B#)YfB8TUgEcLcbY-H z)4C$4gru8v-NxHxrY(Y^69J|#){RFMP5!fjAgs_rx0~5%vMtluJ_^C{<(Y!O7b3GU z2U*j3Os?tc_zm+{F`tK-o$5vq#;KyL>U#H^>(b8|rZ8T`iL7zn`p`W%==~4x72BFy zW{%jW9}gOcw%iO)=p9yN0NPK$N~JX0e+Ux z_%*G(7q0=x7wu0qE;yf2;mLX(CU4ZfQ<5BU_3vnF-eC6=>4^bHX4q=E>`Y&^n@?<{ zT6w<>#g}QjIw;D^4{pDC{{YYPEw3IhN2?zO*O64Ymc)xl(hMkn==%%E`&dP1w#urS zy*z{v*yyLuyqqnbV6}*XTKHRGB;C>rO@$vJ4Aewj62`8h?I@gB9A*#OCXX!r%c=8$vvo&(g`qL$P6kO5oB0e=!-39MZ=`P#n#O7SB zUug>~oOhKo?C4ais{{AIcVrpIdGqX)dK`xHRE=x8D@-*%oAy2w;`)kX+qsqz{)2y3 zG&076hpbB+vrs@M9~Ngs%x=~uuhb?3me+?!O%bLT*39J9surZS_Q3F!Q9&x@P+9$u z8<{w16*;h4J0qtmAci*Ty@B0YxJFn$vRQ+kAE|e-A9!$o?BuhhjzXX)&N6G%6l>gm zJ;9n}#aCalsD z=otxiAcY88R7b92>LEruS#9Y1rjz=&ERCKRFQ-)A#_wJ~^ydS%qDuoH^tL_Xh`k6Z z=HaM^PU@e}2JE5hjIHDqylAPM4(yeb9H6$y%5>e2b3vc1*tmZMWiLz3lw!r_67VF1 zGa^7lq62Td<#}pHo$htgO4z$#F%_ASyuaowb)T7j#e8`Gjs??$ZE6hSQBHyTro4Ji zp&wJJ;*K>k_)}SS#|E}e+Dg{-Pw1kW&g*zJ(Ai7!ivWHkTCL%PR<=OmtM-YdS_W+s z5$&(s`w)U3Ox4!|4-V?gObOc>5(s+X)q}1hmBFExH1}0UC`$BRTc)fEvLAr8!5ym0 zfw;{*4KnTjS-yK#{U6q589j7e*jskmgDOs>>orS`+`+%uPco>Qoqq6EuXSCb2uPqL?E~2_kE#=k`_h+?C+7CRm!J5R}fh8w%)u=6tYJ^ zKB9x<8h@sD*$s?izb-x#->C_x8m#$_&vLIVrbsL}<48f9RE%B}v34SYi^n8O@P70Y zxUd|r?*n||rB2m7`A-L))f;wKbYVFnXHZuP3zJt)H#0AVbkVnZRd)CEn%u)YqZeBY zLa+5<=ou*q1%FQ{45@~yjqCp|GLk;LoH5wA5a8Ohd%$UA-)VbV1eN~*7XAL35GVT` z%JLZh>}!|?vXIS~eFR>;K(iYh9N9yniwZV-)o<%(pO!1MBTQDwOerSdfFk^cO(rA- zC`qCT!-vGA<)-b>%*j<+by$gtKwf^iyVYjCi}}vhZYPwXn6~;%f%b0ho2PWD$|2Oe zO8Q2$DcPK;Esu6Q7-!*Wwr#)QKqI`+fKjt8U1vWul!SCUFcfJVThBK9TVLNud9wMk=;fc?8_i!e#u3|Af8Y{Nx%hwT ztkqXRTynNMYV;YFFKbyESZy)&rKExLLa--=)M2RqoERJ8r+j2T!fSIQl5HyQG1u!k z+??e*(_iQ{VdR)x@5Y|t;A!+vu z=ic)_RS)|uZClMw6G#QSIY38^!uRyBsJA7>0f`QL9#!i z;V3w*u&+^Z6>>t*(jNi_!eMg`*if$dDIB~m*g1CX>4085ErV;mJ;za!(I{=G491sLhK5Ogmh zoGHOCkx8Ct;c#8NKQK|gob6bmaV2b(BDNaGQ#iRJyR747bUUcSa6Hw*k)4pw z0){o$Y+Z;4xbYGfQ#fAK$t-}EhD+?N;9!aNkPTkI>EY{*;TB2il^HFk;po5|0?JK3 z0iM5r7uCR84B!2#>@rYx##Cd@2NDF^eXesHzRmy+#WVr*;DRO^upM}V_XpyyV@b_l z)x3@c$8o8O3rd}Gr4_#N%{J737=HcupxH;Vu<#ea+~uCZ(*cTifzcj)8Vr6BURuZm zzIfR-5a8j&Yteq@x8TB|EKAkV>|pg%4zvphJu7g>M>8d zIZNr=ip8S_&T1w*0wZ~elofHvokq;?_y4d1c~0<#dQ{vMdk{q!%F?byY*C>Iy`WaH zr|3h^j{8M{t?bMUhl8#k4UNXobaVF@KiYT@Ub|cJ7a+V{vbJK@rjKh?rZ_pboKcqZ z6r;Y+l>)U11*0z`r&1C38}ah9)yVmvBk9x<<~g|{bh=WL_%D4nj4`F7d>glc_yulh zZ*oe{#N9-Ad?_+ZX(+)W0+&=;KBm@&yUXS_Ohd)aX%|x`k!Tz;eiK)kcrEOQO*=N> zxC9+`p`Jw;pSoe4yF%cHIW!Ic--XkO)AlcogrLwrOru;=77JK?XG|7AG?a>3OnMXg zFC{qy^d-c!8LIb}C1{SyA3x2-enImNc4i5(jWzPPK0|g1$bh<4ikq==aGaCU;OqVg#TvJiz0i;pVEtN4Qxf~jG% zwa$;XpFKvqA&+;AamC*g6&`vvueMjRMze4|bi|?3i%m`4HvTdFGgqgDr%6SFkbTw$ z1|D005OY2F{|sgoKkm5N)AysMcfOR2x}wJ3t{-iWZEWVF?7Gvw`l)?omV(kA1u$}U z5{8h*ElZMt2)DnI(8#v!)?ymWISjnkgz0Ch)PBwBDue!>cFB}8rtgmt^rVseZ4`jK zIU+7FWNSa|h!g8_sJPJRX<~mAd^L_pjOrH-kx0jJnzrt$Y=ARLOTx&-JcW@E9;5bA z{tj|ZFbzZS{2)@NYtq`ePy;;9yq@_o3rl=BOvqW}YI|`(OB_ueqieP`jtz5FzqMif zBFLD>rY@2G2?8Dzm+U#VTF&7qbTb1UQwY&dsU1hG$%u(~V@?>gfb8YPl~2A)@(EJ2 z2^IS~b6sVYht;AoPa#)Q0p_zd)^(P+>eQ=9`|NvV8@gsW<^fTUX@FU$d1~xs*>Td zOEf&QB=mDDsCokLSGQ8CAvr{NJ03CW0BBFLYSxST*qd2>ZC$snTp{`I3PVpz#dT7k zwF`_9_iu5*ljGFN+LFYtYLMuRe_cBi|40(lJEyZi23ZHXCM1hbROXRIN1@upckG^j z0f)n={sGY1WY051FRO)=mtutiT~~hrQ_-aV_g5J;H)!V?2xNYOHKl>hpKX=UYgx?; zS<|#6rIo(}3K{=(bBbM_T6)2NVv8Tp#W3>*>B*e@lqs~=v=^PF1X;!8UQjI)e)9(0 z7)R#yV@AH+yw9GqQ$_ucu14RP&13SwKI0*_^o~oSi~0OJW8bFdXn|9r)mn@7?)qOE`Z1p>kJsINx}Z?;Nb{|8pRM|Sn&B2VP>UNUgq4#5VNkv2{+X{ZM(Bu)(N~*MwiQw}zu{Qn#hfJ3EKe*K0i{0_(m3qI zhz5A=y$2$?=-cOJiHBT)KMkS^|D&rKRSby@s{*U5cAz(D!9v>2f91nU7_~R0=NgB9 zG_c3q_@i+Oss8L@M)Jx1^9>FDpY4*EWe)gTTM6YG_B6EO>|i`}G1@qs@;Hh#Wwex7 z09DNYE&}nd(52(*dp^HDAL?Q6>)5i8i?dorEfO>r4QtyFm#f5`w4)FWpH~M}Svzu2 zdI^(*PUVMl#h&9-A-Eq($M^-k6ccw?&`2XqI}+e0bd@q219M|&TGL_%a;`# zDLSM&t9~}JuGI7El{(YTIn;vUAC*$6Of~9K``5AQ-r#ZlpydOt-I#5y$l>v#$g(y2 z8nXV-^2cAX*)6r!z}a()tF^EA;TsH+q8+5IPNijoRWXdYc6ed6Msksj1wb!ji3;8egQ~ zbXI&eE`c#Fi0GkVlsVYcW8QY zTYrbq+;yj;9rWN%7#F3!q+Z3jL3 zYe;5Z?9L7$7Y@y#;CEu>DPaBr=C8` zY!K$x@p8Y&kxt6}@qh!KIZG)~8y40Z3}YlErG!)7;bGd)0?YM^k>pw)8P_z`a1GFA z2U1rfpB8u`u@%zv+>Pp~w{W(5 zRvQwstENttuExK&(!{NdP3zvV?Xc2%4m@nWzR_W!T7FuiwMXfduMEBd?HtSuwc>GI zt6*Syu}J2(XWIS}5^~A@fkc49cWN@~8R_ZLA6@ZxGB(`Q$!hoJV^mF^9)Rcu|J=9S zQ)yqAs-S`Jx+@8z71Yw7FdGHsn`x?aDxFir{l zIhs62?Z4t0&-hnu_5{D(b$>@ zE}cf*;F@WOTw!`yuL?_yUe_1)QzTa2LD=4s52-#8qf8C9 zU6Z{X^~6zf%7S?z1+X{$x*|FQy^SX7$hv&*CVY7ZZaLFN>)XSQ}hndLF%?> zw7K6|eg|4s`R89TRunc=vDqi=+~$ZCxU!Br{?=&T%8a8J7MW?O#1|ue7RI60q>$%m zmn$c8|G>|q=zQ4H_xtiNHOVz{!z5a(WtBNg%id-E3T2ImEsYVZNv#QY|xmwS22%}oX$OF zL!$TeUy%D$j_uCT409GO*UD~*emG}UTBq+bg|xg%W=QTgPs1L*PWpKv z=o}8|bI~l=+;V%$sbdqUy-OGiLX;~8BFtNSdK=6+n)%bZi7@s}YAKcaLvcS_{)v=4 zHyvFoLn>D?*it8LC)lAp-pG<6z|gCy2KvU+!mc)HgTIPV@v)q zC*E6WU&~DESy}79bBF04!ouP{Y`{HI#6)thXn4*w>6ut}c6yUqvoU11YU^Y`3@6kI z+M@i8f54`JemEC5V+!$@P<{%!aL>mZk=T8mm!tdc>cQIV8DbJu9rs*rAm9q6e`4iv zCFd7q*6qYRGk~MPk9B<9NIJb})zz}msug=>uG%*1Wsx~(Ba$Oit{h@bEp?oQR2-;} zcR=tL&^R(3JIdE#F{#4&5l_64?&E1cX(wu~YPy*AJ&WRT8vi}<=4c69i(4=)poKk4}evE$y6wROcNduk}2PKhwLwK zGM?h5$8P+0-9fm9=lZ!QA`v0un22nLr$me*mnDt5!b=<43pXM7e7n$k8W?T4^S3{^ zlRDjXCn89SF>{nR281SB$hIXnw{f?Qn*Znou-$+)SsPo9(v3Ru*Z*Y4`ctk6Gw@S^ zlMHwHev3Fh`4<>q&i`r|V$q4-mq11D5g8Ve0_RjBQ4zV4NK0xB$XO_bW5#T>uoNZ! zSz`_ALH<^IqxsrvMzi~X$++_B<-P0PJ@@4}N6xZkxSKuF!ywz}XW(;ubGo)?^TYsf zk5)RdbRoetINwFZG;EsAv9QUySvLC9iJ|`?nz$H>7%u6INo=(fWaQPV#pVKe?JfY_ z9*ifoS*sDMZy~f;r-jzs>Y%+U1H^N}#@~tk=$)LvU8TH(-*==q<9*gafJWJaC<2M( z+hGr~^kA6!h-@Z)U$E<+KF{qRfZ*9%3EIG`LuEbBl^uH#@jfiS=%j! zWRSq)isGb^chSdUs)33BHul?Em|k|iyCWkD2em6`H+&PxQr!>9O58K5`YsPy19GHk z`OO5cyBSPi_fVWB%lf7;`bor7_@OO6S{mtNB#t5mZ1>MA-7TjldTu>l?z#tGmDhz% z(Dn@y7dGF-PYwnan;g8NYDx`92*T5f>L#k?!ZHHe%cSU?j{uhf55?-)HA*P^^~MW$ zKshM5Fh9vF^{3?qvnOUd-K+@j%w;h@9!&c%NUIX?)hnNw5uA#BMc~o2)|P;$@3?nJ zZ!p-+d{L#BQ#D{F*53E!Jq(OBt;j#_d*G=b1_|{K1l936L$$&aYv(;z0QtW{XB8!_ z+n0wJpBWTDThOQs@PD&Gq7suY$r|KfJxps8Hn+=koh-!v!G-_`V<6Re8Gx5mmQGU@ z!b=QEq>Gl20#ea|&&j!2c3b3TK1D)79eF(r`=lmSF3tSw3=#cTDWjb{6i;lUhp>l= z8>d}+{s-AQsPr7GQ@E7t>`SY=|IPpX+gw)ed@3WoC~j3)2PlumFk+vCM`Dt@>p zI7A@Y*aj=^xZ6|;aq>^chRkQScJx_Q7W$h(WIr9T!q5l#2J_qjS zv6w#hx;6a4WPrt!;?;RcbdImOkP(TGr0Bl*57-RGLP z;LjcA1z<0ZV68E*xPlEQU(+M)>%y?y34QeOFrLHb{h3{}G?y#06VWX^(N=7u>%klB zph=3cUrw|qdeVz27|^J(V<(a@yFE(V&onr58Aq+M$JQ1A5gSagKs`@#AJmH$nDorV zc_O2sw)H3k;dy6tAoFMb)C$K);yD9X{eOZ7|Fsj0f1{_z^yFP03}qbzA2Y8zhm>0M zVw!R+PM&e6sVX;f2BW7!Eusiv$mgdGLHMv_ip0mgL+L#0b?NX!QqguiFo@=T@s=7q zEBw=$j|Z@hgu7-kuAF7ZXv=U_FfD4fhn6#?z?IZ24}Z1>1fvn zhK+qGfdj)y`*&2r;rBgAdlo&$l=N2qf-DKhA%*4JZ_El-fgzhi&r86@u-=4@>pAa* zFHSbWb(W_Ljk!yeYfko0OZ{Uvxl&AfQ%3ap^=0fSAH%p48&iPHi2C0g$$Tt{0+w71 z7KnWaU7H+SV3L|+pnwbJr`gNQ-DX#(+M9RgWzCm^A;LyD$MX;_n z?>EdaAK`WBS){vWU{f>I9xDrHTR3~)!z)(Yaed=A9u@XcUQIlyQ9#?)hkID~54$eW zRP)(rm(RtSjXxq+E_Cxtm69gD57Nt|VKrGD+V7vOr|h{qJB6s{$~BB^8(gSgG!jb&Ly*Cv*+=p2rF4#(dp#b@#c!e>i3?&!raVlm zKd-YytdtB6Q-oI0(A9!$N?ZWYUI`!n0^EY>p;_85;)O{KTRB_e1mZiq>+l)vi|a9i7sVb@Hu+J3r<&V<>3pB#i}y5h9iBh7uK1DI|&G^Yctny3*Q| z;A`x|Iy~2S8MpB+;*=W3$k@g%)FrFZ`TmbO@!uanEd#&tI5md(X>{rRi5N2*7pg#C zvEKUvFi#5v@K)@PKdCVHr9=Y58heg0l6uG;oDl03%5NX*3KA{vIxKOI2k}P|g=}UX zqt51es)$fM@%Yb&J=$h`E*H!px_kzPEe%ffy2a~n&I>ntC0>YJB*Hv#6-dyGCcRRL z#i>wAKr{mgrhPqA4E#Bxk_~H-_>@p&!*m(qx-N2!DZXYyzjBSt0B!6WKsau28U=j& zt!hCdoXspkZXgveZR4@gqoncFM-x7AOvjoF%(ah!0$0&NYJA-iIYy*k#j1VSsw-cp zLWYl^3qgkV#{VNP;pg0M-TWCZwAJTScgP(|4E4ndf{nYa|1G* zJ+d}9_Q+b=C*=M}w{e??)B_htNt7qhfz=hhJ%K*m-tw4$)64reqQ;p;Hw7R;gr*tv zmHdnRnLlR98`iCU>Fx@kSwDK2eLL&7dIn5XQu|crgaMoN$o*n5Z2>`473&$(&~j&L zdbKs#l1*{uS364BgNw#g-S#Na|2iS5Vl+J^oc3lu)2(z9{tmYj@wM7i^X-sm8(ef( z2Yd5&hRihQN0?DqJ>bg=1Ca+BhRh-{&$@E=RvHE)=PA}AzBTCDZz6)c?468+ z6qhBCN&}+?n@g5M5*$it zbD7^A;-k(~T*bRm)*c|q_a_5=?Z{sMX?r)15amG!b7mlH7%^{C1g2%#TzWQ zJ)r*svQMv4UTRJ2b~)D4#J~uu%Q%yg%22MU>CmOpG4m1*1b-ej|8D0}6SQo9^;|pY zU6K1agiSuQp`fJ4nk`U#TWO3fl>&kVcPEm0Bd15WBkSjozhn7$AF0jGwng^cmV=yI zdV@|<#g=!?vUy%tQW=QDDF|QDL)J#n0^Xage$ulwhHX}8RKAuOBX0+t(1p0$g!oor zX1vSQ4?Q!&8C!9Pd#1OMeZ8rAblYw}7Ps#TTnXUEdXSG5f9v z!G8f5FEx4`DhpDT%n?9dv`OMM_j#6Sso$d=>m3_CYBmqp->y6&I|9@kTO`8DA0jzW zX<&Lzofh2>bkM`>MOg5K_~*fa)GpTAG*Z7(O<~lvWPu;2(r++cH9Q12zokjuk*SC( z5wop#j~3h>cBj&A@IvaofFck;IqC9a5SrVq5FgQPzT7=RI#5@Mu%p~3<=F_dl41Sb zUeB%1@TdB=zVOp(Cm%)q z^V}&|RclF?a|M?ygXU4OS~7Tjw8CPe>wCtd+uP#)}(= zpXpT$K7Z~f&RHeCG9~=;qK1?Ox=Ih`Zqn6mUV&4qb-k}yYy^pQ?85&+`{SVduh}3Q+z$>^Voy;D}f+cU?w%nD4|kP2*DuN82WuQZgU)K- z*=tSv#p0l$QC8}K+Q_bA>ZQ443>cCn9kdbp@nbkGT(l5DvsVzg@Azx_VpF;0b~Rnj z_P7uB3N9zTjf#-$Cc|z1sfjvTIja#_DY5mEz+$KiSt16nwIy% z+Y<_;1JwBiMAX-QEM_#Ux4G6Wl`C8Rwf3n{F5buqI#>v)3NjVUM=hweGlR$AiwS|r zQ?&YQYptg=Y^e>3L}ifem^XYU+}$N!rzCpW)nD=is}{};`0a-%MvLGD;V|_6q#rdX zGH;|DxoK#?)Pl{a!?yrR)ELkl*K#VVxvsMt+XsGzw885@?$%qxtXdf%Q#Ncw`wvIzEB0E=`8Pd<~+3SStvg z6hm>;=9de0ovX@Wm&Y9Dcks#dVV|?tZNqWN5MFjv;)#8-8agQfXs84Ck^T63ZwONs ziVHtqZ8Cm8X1VViX2YGwdROP+iCLS!C~kO0ciOYwJbl7QZO=Y@J+9d>?P_WFX^nl~ zc%AlJZLq}AZQmbx&DGciq8Mt|1KMGWku7dMS7QX&g z(ARadvok_o*E0j^Xl-&ZLXxnw$0UdwY` zo}5?MJ~1FgEX*z2Y5xT%7*Mj0n{(QeTSYoO$U_nfQ^<3QXgK?zZ;R*BKZVEdl*unK zV~ri>{B*F~-;aj6Qta02dv&Q=yJEDk$NQcIk+qbyT2qh|vKL-&Vj&O{BClzVm{s&3 z$Nv&24p%eVzV(jGa}Wiu!77DA75Z(5`9zdu=jCGbMrSjxWIN1h6RDi=e-`AJg7RV< zo6C&egO}CW5F6U>!SgENoX2SQ$z<3GV@ajp`qTyFkX;6D#E*6~iB*S`$?NEFb>k0jP><}07`61SezU=H?9zZ7u7ek`dGbO^uTpMyi2IY@$_zip=lha zJXI$i;mcR=!@1gbZ6^j49S zjrJNeOsk;8R#Pc6n=qNuKYg+zF_NSF6Mrobb zjvJqa8^iv%DG}YH4J#>Ok2dAd{iG#PWEC~}`N!<#YvEt66?+Rdg_$aHHbIo&*ED)a zF95Vv0lClqQKo6cO{p>1Dhgq-_JX5ePai7xlu|$98meW!4+%BlB(RP$aw&#(^!nrU ziX|hqxDz3HMfoC*_HGVvg#J6sZ`W_7r~Ew!t8%+}BeQh@#)!(3_FB5gZ|J%qk&Kdp zAuagYD22@h%$nf*d^kYjXW~3Ps5}VNR@J4x$RcC`5pO-2@O%&g2@tMiLoAEub;v8Y zU2fjx;ig$Dy(8#U-e!n5Ad|H=Nz|CK=l!;(bJrk zJF}soE%u}zoR@vp%il)N)P#c5Y(tgIKGArkPGKFgT%T+LlCuL_wpiEH0$1 zARS_yl+=Xd;4o~RS8nBo+pV}Mn*#5KkD@IWZ-X(ArrA7$#il{XhWr)8h_qB%?c(Y0 zdeF!kldXmJS}dbe%#Y(FDV+L~a}|_NK}HKtL273kpVAeLAw!pJWi-bkho6;AzTqfX zS*;0s1$d^S^~He1H3>QLuT(r5zO^=55s=$y$B2QvqWi=aQu?f=2jfdwn_Ez>*((OV z{@h5c1!;s{E`MAHm>LAk)|8c7JjreYDNx(Ioc4ASxtH$;>BFL-~I zva;vSU9)Z6*Wx-aIRNKE=fA=;EKAt}!eDV!Y}9ArAE>#c;Q1qocDq3u0|Hf6BXu%N zUY@ZkQJ?;B%``ORGED%l(!(<+ zZ1gHv)ZQ&AA_hI``px0Hot6K=l;`_e|k?593+IFjm11tQcGlsM4w&0^MXCjvnN&+n|$Czf}53Q+0mbNL(e zU%>g%U%;=ay*DXQ4`)a=*rZEnkG1qaF`q*tNJUdzQ%_T#&qFaLj=xDM~5_z4_KlfL}-SHjfX`3s0f`sj4B&2Ti3OQBOICn&rD3~RaN z$h3oo;Vd;JX@xRO?O=GURp$6Q;D4(L%QEDGu73QGUf)k{$ z?gt|wqN+Gqj68(B!RntsxkU5I|4G|*YiaU~9BbSlzcJ=6DM7L~3M)2kX=qL?h|gC- zr~L1~q!w+&76UJzlZLE7)uYc4s!wYJwc=vNeMO;it^%X85{7KV22}PM1%2YjrfjHS zx+tS%u!>5-L-Xqe@4X4nn9k4rW{qa5P)0nBz=C%@`+a;AF;xBe;&L-e(#T%Re?k*j z*-@yF@9oTac4<0N${S8X)RKgzxq(U;z1L;3M?@*^UGG5OyWCZ2SABP3ZvYMJ7$8kHZrD4WsaK@GHhVNs$SooC{QCXt)HWYzA|638Q84W#|0#N)S?yc$puwJQ} z>jc&8rr9g03-o(YK3nTZouzdfq+?RSCsULLal#CT2K#ZZq@;Ddxwa&(VPUU&6j@~F z1)Q8N$4tVPk#UX{-s$vGvtGEr`~}$0lz}+jGH)CqbKV@jjU6>{`XuzC7I2Bd0l10K zmob}P^E>L-Rj{>FXDJvy${|SZlRjCidc3!hyl9`|JpYq_6Z2`?*Ur;ufjj)T#KBh% zwKh$wZoN$6Pv%aKYPc?aTim!|iKepTgcK|R90tJ-wXFwjKR?$CJ)If8ymr&EaeKh{ zao4wj%GIl~-Aw6VT!^uAK$&H3!s|B}iD8S%%V3OQe!3R{`o!n=tTC z&IiIK;;1^`W#s7*ESO$f4C-u93qAkD{< zPXHTp_AdFztkq#};cdalUE!l3!Lk1syfQDPFv7AXpRe#3u8SzuW~_^>v6UPj?l2-d zLp1MVVd_eG*TgRyNeFkVGxp5f`mK;z7I0xrWE~MVxum%glZP}@UqN?8!@REGoWVT) z+^$vOd6ga9RbPP|`x{Z{2K$Pdr2nax^_@|^p=eF|El9uWpmV4fx^@V`A9Q4Y9%I|^ z2-4t~dC*Avn7ZB;Ra9Gn5af9n=Kdys5`Z4v+V7|L?%-+JF62b5ZAyvo#5Fdvt(GW3 zyY!ByicoW5Kp4UQWX+51GTT~yc@}MjN6j`Ruc}-8z^|&021_&M8B#1bQCq2Cf0g^* z3Eq04@xd>Ga4dP%MR8NZDaT!rll3g?DG?dULEBS9*tE^ACc|bk({7%AhwGC6_4&N~RAVH0e5zvOSskZY)y;V-7RHmBn~R72bb`Z`9Z}>z=ZEcogry-4?$OyZ z_>$uSjFU^<m~gc0Y}9(xg(DP- zCO7=M443WV!3L|;AKGS>?C|y&2jhFQm^Vw<&MKS@=?X>ct)8>}q6xL!xrLrt)JA+Q zY|W*Ui(HrwzPDbDhP7(V(!qSo$b-&+Xv*l!xxaA6Zfis&n4B!_CHjR-o&)0F z=}J03WuTF$=+_o%&1VSeGVBexs0ccRV;ytak9&Cp2CBCqYnw7AfgM_Wx+=4hhEi&; zB#rJD_a2=u;yorbv4~B#N(6v|a!n5QM zb`|5OALL7AakYFo`4?bY^cRq1PxKt!f4?d)^#?-$agq&0^FBcEvn%yg97OdWv`^7O zdhg!%>*q4Al#T63!ho|QvNcY?DapERgq;T%gO=eW*Ri!fO0A9=_N6${DN*uNi2({m zmT8nkne5=}rRxq%4(daL}Qy+C4P5J4Qr4z6FsTAl~eiEN+bfHPe z-|dx{Xqr-f5dL+pI?wCmsUKw=Qegm5DO_`QvmH*P!(yXYLA?b65)#EFgsCWuVx^H& z>cnjs`}dLu=0xO?sABmOTi&lz`cZPiQT*8GN;zF7^#^6fpuMtz2HCIx_$b1kITtWm z_QXM#FtJr9I2B?Q(dOyjR}sK8b_HERmmX0ln|Vc`X0KT0aX)Eyma7Ch4`SX>43iy1 z%SfC+7iRd1c~E$^s_o<0V|r? zN&^uVQWn@H=l>f|^t7LE5UusyB(|Bi>_-K~;4;ZcBs8?@#)-a@<_ScBF$Yr`h*!3YTn}O9N*ie=ukYtTjrzlrAYX`Z)-AYW-?C`?haP zN1l?hjqIS_;+I-J=T+bpV)A#ZB7nD4C*_>Jil0IeTdmKVVRv%1n~mIGOmCMaqJoo{x81Hf-A0d>(WT@pursi0jlr-!GlZTg;Tg&5eTj!1a}Ap z32ucuRX7CK;O_1gTq37Ax4(1m?d~!9C+t1;e&4m$oNGS6|Eq5MmOf7Y_D1{S^V6m- zb;MsN_TS_T$|4JYiAIqq6eqkgN!ai0?5%YWoBG;?t87HRC5_L-zOt2C?ZJw)zR3ru z#1D;%uG7KjnNMgNLxX-IZU9c$bBxdpP83oC3}V|rj@}N+?=d!UeWMoqH+k2GFwe$? zia8(N>NK)pH~S2F>q1W`fJeA6-YT>{3ywrZ#LV|%rv9+9YH^*8Y(vlR%PI2Y+#f5c zGnI=-uV+Q$yLBympJ_CeW~`-@2&a9yhAPWq__`N8hyqdd<+H<&;w}8+`Zo_mrmcr; zhH^S$u+0I+@17}!(rHdEeIymU_2l+A1tA>{_z9>?8zA zS6E|_PevOZ86Jd=h^tYf0uJdyk+T@|`_pOB?yt&J! zf^np$bz}9J;D(h3PpvXkR)y%d08ErzsUYZP?c7O^#-czb$ee?H6=i?(_ z3U9eZrbdIh>64IT{a0#&inKDsjtm6J?Ra(an^)>jvik&2Gm2MPk^iE_0M=VUYvN_u zvgqE(cGDa#F`@enOPVr2G3yNlBUn@F;3K+(tN3r=mmj7ZcyT7>bTn#7!-GaI;>Asy zoJ3r2D9Bw%IFk)_D$|C+q(U14VJrj&S1h!^vFgLAK~MQ)$;C4)$&mqhS=ZtI^xM_k z%(*Fs+D>zUyS4*a2OMp<>0<`n55K_X0hrBf10ga^`sz+{xc`OTu2t0-tds{r@zZG2v~#I8ME0FQTsIyq|8* z`EfnArbP%f=0v4tHcpq!aFC!@atbYJJZoS7!b?B$WKp=R$m3Cci8#QxBj1sjY~|96 zfjP{aur8Mcz6mXbafR(h1}e@fK|51KK@KgQj4mFE6J2`$BZ45Lp@eOj9_<#;(^S=%0R!sD2hOdmgWS=G67eRVVHGc}LOHPr+hZdt`rv}3*B%ybgl#qJP!PZ;cf`TH}&kMJUsZ%oS01OL~*T}`Zf z@UO;*^mX(bedpT|o&HtOi>q=a4~BVZ=t}Wob`vkrQa>)PzxmGG0p*se%Lp!( z?EsMOiRNY=hY|Cd{0*6lO}NFN(JRTcSg%1YR<;kSRx}aDR)V8B3jK7I!W;X7i^i-h ztGfzV?9Ng|1 z^bjw~5M6<^sJIeEEezP`F0^NnMd)f*`Yuq=Iffr(zBJ7|;nkku3uBN`YC|$O5fNYP z@FxjnM?a}W3p?Jd{iM7_Os3w{?$s%QDx|cbg(a_lRmJ`#Wf$dm-uM!bzQ}&(UC3jL zh#rE|3fR+WyT-!@kK*tZ->I4U$i$M}>v6b82zULqqTyjG#xEgOn%3lPxZU-Q8c9KX z7jVv`GEiDR>*V&oKO>UJZ`nB%x34zuOSf42Lb;0IPBh)AgvUI~*~14O!aMZq zW`f5ousIem0XxJ;m;5zwW1iS0jSa4J+Zxsqz(mKzp**Aw&?AMB1n$I#-c*jr>IBIF4EV!yf<1ky-Q!BAkiGyu=eprq!ayjab)Vd#~LJ4!}TqCu; zK(nfV#WZ=z@X|tIiD{o#0b*`VpN`XaM`;Sqb6gGrhHHnsqWs9dHkMWoe&b^upiws4 zhd2pCTwt`-CAdoGD|&TSL5V_kkaPNVvg5ZSi&_w9L#Z?CJrv|Q2LZ|yl&}H-N1%_V zbEVM?#QA*Vjb{;fEDqeSp3rV(GWyiUP4R;`4g?|j$px9oqJ)y|bxsEYE%Vn+>un^c zzhK;`D-{WO;;L)Z9ZS9udwj?KSM~0E9ACs23K`25Ao@9he_O%Gh~M`>+tREPTJIIHz*MV z<{x|7x=+nlqSQauBJa?mXu}KrsnbwJK2+VCGPJUMA`EfEq8tRfD$2^4fxZIdgm3Fd zxOk7_1<;jnSN0|zTIhR*3i58b!+0tS=qjUz{!B03dw(r=x~{VH^u`e^Rc?MA3?yjy zp_03g-XOuJIo;&Y=>%$gHhEU2>+hkYFhO)g2>w7=R&jxssVri8Zyr~+{a`4Bx!dE$ z4k=kG+`}ahcI;Zyfw8nx`wGZei35`P===w3u732% zLvJ0}T0q|)!ZMJbXSKwfllk1UrLfTD+0N;xjKS@xYuDo=E-9u?3qd`i9hGp*O-*#N zOJ@3b2xNyt04Z*@Nmw7>n0G|Mmg5AnL!j5v0Ho>4e@O95xLF>c}JcEIU*j!$JQ z`9uL9(QxADWWq`tAK(C5`E5uqH3;l6NmZQmiw0%OI^sU_#%i}u0N=6`HMoa;mMEQ*t^BxLLRMPulbK6e^2_mA z(L+~Y84E?V#6Um3hh=4xY30~IG!sDY|D?mnhx{`CCiDislBY9B_T5WOMMhp6@LwoT zP?px|DzU&>A*F-M+0A>PX7e}q$=Wp5l)OJ6qI31!)8Dfd4N(~8EdqJkMM_bq_~PCi z)&*?eK%W$(z_)tXe0l0nZ!FuAIyjMLFsgw@s(<<;dAHGM;YMY!F3*Br_+Zr5B*(50 z+`kKzRlN5X&VduplKD3RTCql(r<|O-r1yGDdMHZc!I+#RVGv1=ML}u<@@`$7Efeq=h}Xp^JP{WK~%=%g!yzL6J?eR6mG0P z2nT(8{iB?6n(7&Wf@0Zi#-g8ML#L&Vveufmp)hyJ&c+?XRR9oTNsMxTb@7{cx6{QA z(B7Y(!{wEemAFMVoiod_;Xx(&lq95PzWtMtB}R`+`N<63$jHhO&zp5*xN`o6&Uo;k zklm{GsvMs6+XN@uyKS?dkl$(8Fl^1!HF-u_y9!}OnM5)_=28{RTw+&gGESZ~y5QjfQ z^zf!Fg=;ZaFhB=|CE3ka)znZ^d5+b5ywpK;RVZ9I6|x6hTT<}X7b{WOoL1V^5-SV2 z37sALwO=nZqRMJ#WskcIV*m&G=}}S%Z1+TvmWT`&c?|?bxSDjhtMO4Wx$jChwV8dWp+pIy#4izVENji(NURl_i;|1CnaM*MN|+6-`8A z7=w#vSFt_;>H2;qhRv)ex==yOP2)i@%7sOoz@6LQ-Cv(CHy2CH z@2DBIvd+f5>Y)P|4zYKyzoUO7s_IO9FIg6A@gr{Z&5_K5lQ%C8Xt8OO6aHl=$$Ja4CVk{om)=xNUDR9{Oee zgK9HJ-u3sQA59x>16SNI8z=80gRf13IE}zvMavM`LclJ>7(#(N2|E_}U68`^Jcd*+-%HT#( zgM|whqS-nnxe(}pZgCP&-u(u*#Z-6#*?-0=73I|S34aC%(CcHl8ORPI8;gA&?2S$&J0hL{@;O?Vd9gcv^WsL@`Ic)nxm)DKh91f>M6MZi71l;z{x;6t+-jBdHL z>!dz!dKQfOmtQD5VnRcl25n`G-BfH63*vfjewOVW6mVO)L_H!Kl}nN)DU{aG5cgj< z2vRmpzkDjazWIGff}7#6NAK>p1M^tR^iVpyv4We-_yvf1;e4@AFg+f9Rr*+b%AER5 zK6NJ>a#q2UHf?@&pT1AEfYBP(p}_+)eG1WXQ5&>qn93x|&6~MCBTTCJ!|31TnD>2^ zeyggowRiPI4OQf!UZu9`SYzY0CG2PKN#KAZbrC{xw5 zk3{P5h~qH4;bF7CDS@-q|H*uAD%c_i$|i^_JZ;qImOlZc#eZ5M$K3-4wvhF~6?(6v zarXFHPsV`VQ|(;WK<0&$B|V7w%IRr|?|xp1k9lSoB!h9Id}Kv*Qy~1V6;qb2!_YOM zyOOA(`N<9-%pUecWlJZ{hc8vXc?COwTWj`q4e1F^dE+vQH1UOTrzk<_WU?hCnr1i_ zKMGEEO#;cHt8L&I5PJC~(O?L`;E6wjG7~BUuc0R$Q61eE|HzDPzJHh}EXagI%l_ri zISuC_V9yIkC+{2<3OGtji<6SS3wd~ZHlOo^0;)ood6Mt{8<1!DPhs0@%Jz=u34%kQ zYD<1qwQ6L;uHl|)`gYOi8XRfO&HSScNO=%dS0%(o#>8Eo9@hsrQ#zlkPVE`pw1Oc{ z0HM+m04oJ`l9wc#jjmC=+ z)Kyp+1@!J(uIg?9ja58}E5-T3IBRknj6F^bB&~@QB&%jW4Sb?m0L_wWeTcd)PDhWv zgX%iy1e)~R=7UUKXB7Eb(Fd~^uS?$;?5{=}?pZy(nU@tDSlGf@4ACFNyZse4rlV^* zQYj(h7#wSbUOxequWFaFdY~w90W&-FH;$Hnp>R|1mBi*DE0WCs01cP>n{sgq7dR&V z-f)51>0zREf2%r-y=GC{dXRC)3uhp$8zJYhk#dj^;65Sqec)e zPT``tY$tVVsD%IZsJ=j6#@8QO{7^4l*_z_zRR=}Qs;w|K41QYL$&b_a=y$qFpn0!C z>x=}vu3Z->VMpcwcvzWE%$vc?sMWP@?PwPBZz4kn-+xgutG7O=KrAk_qu#J~46h}X zzauDRs0b~yD*jel^)_sCOeO0sN?*>aCAGy!Vut&*3!$eYD$Zpkqn6Q7O%XLe-Mr2^ z%hg^h^*R~0YFq?HH&#p1{am1yn>{|cj&tls*jIslG-uKF=WpN7x(y86|#h(h@!d8Z>ZT*E7QAp$3FKf zdzlV>hz}X?1AYYGbi2&?W@pLOD>AZ-lT7)daLhva%}9~-NvwfoJTl037KL_f;|8wZFJso!9cT$%!outYd0 zX~5XX{>Zut6+Plr=hJuN|~(LQ=SUEC!xu-G4Iq* z(&jhM(LiBiATh+Yds_2LHcp^5SDGeVf+@G?@_Ue~Ye*WJv~w7-c@;`m%LTg05l!c; z=BeA((oX3J@R9}Y?e$#$t6B>)B|G=qA)u_9i;RXGTB4hrfeE=&`mSn-MP(@w(a{d# zmKq}ctq5C>U~~Chz=IYU+27)g?uEJZ^IHC0SNwqwOGLz!tn(8HMp75&Qem0Y!nnl~ zaw%3}7PI^xC5<{J&Xd%QrHDc%#O_RC=(AF@%+;&`!0`l`M<@C-ojaWHO_7Iw0iWF) z*kwTjjRVysNYUa)KIi5p#r5j>vivXOeD2>rVy>Cjf071~%KuN*rl~I0C5=dmFpB<fZ>xSSoidI)T*o|JCld}0}na4X!85BJHDjIwRaF@*M z39GrL_h`7wT(0euo(*6${bp0M7sr~`F7G_~iWfb*OMFv0x{YOoN<2lbDlu~T$MJ-g z+z2*(;2WEJtc*mwL4p=23V1S?+A_0Ua2aSA85+F8ztEeEXq?K{eME`LAL*Ci7R&se zMm9+uo8FB0&`7EdwH$B0=~L^hS{tXce{V;aFM!>M+a)A4`^&B3UnuuZ0@CXa+t_r` zhGPE$K>T+x(6dF3Mo4=f+L&B;KI?6RCVs`Y)V+Zo1u?vnsXbiitIIad{6%JJ)9Eq;DCGnql*KJYp$D+qL(NbWwzqdIZRW zZ$r40%v>vW`Lril0>kS?KGJsTAL)ez&f0C7Vqy^D2f;!!6W#QDpzl9AzF`*8lb8sq z(C)m|;&k0Kwp3Y=QhsY$1`VYpGil;*$!ucP$m14F4Aj>Cp|nx$O;$_GEgLj3v{1Mc zpQ}5G?DB1yPm5!?eHXIL_HaD@;m^m)(M`F^iGO$bO8gAzT5%jmj-85a+c; z5GmpDCBwiOX4S{8suh30PD^)x0ACBK;j$4agM+LqOKj#`v$aRn+L@jri3x18@|;US z<;v@l#sNmQaYsh*U@BlrP8C6?FSUEv9M3x)%^?dAUcL3zSwg*f0UAKm~W!N-BR0Y$~@96M?cP{y(&V0 zI&X(;QatN(hlh%40h?*L+``j=y3o|H{L}WYAQ_oIQCN-3+9LW(tU(JXImXInpX_#jQ zu`0h;F^6+JdGb4kr-7>KdEKSSB)bX1rdKT^n(MEs%o~4_%1qj@go*6mM#p0HxxFy} zXZ@5C$R{{F7_IEg#a{b6#i4U=!pK>q*_4~yAccelb1GP3ZAdWcLS%nf&$id5j-qO2 z$VhKUy^r>q&OH|W?m;iSmrgB62X5i)^%H4VNBoQUjC8z-S6nPxJ$YJ^Dq5NE~LN~hhD6ytzGq2 zQHT^>7nJD}SI0@Xx#8%p;zYP6Qep3+P+7C~u@R6MgELK6cCBO7N@5rteC8NjX7Aj8u zZc{^ZHAs{*Q)uIN84}-enjBDaY!gJ8oOp`=tbtD7RWB!uXPKn8Ny&?Q7eJ#PGBReK zn=Ar!qvCk>4)>rin)&w}HEv+G$*>3MXwW>FOO8|eI!lulTOy*s3$Krx2nPrEI5~8Z zRIP#DlbfqZ4^fwOMp~E{y7N3oIvF!iDW8L4hi;BxOwDY!r)Io?*ZSAGCxK!RNNS84 zgGQ%f;~5N1`2hP_2oO?XT>X?i`i_~uzZe=Sw$9BE8y<@g+eR%-ZSfgKVMeX ztw5+~iSlmtb7uMWbZ$lKT{38%ki5cJ*rA^rH}QM^=aI3ApfsZ@>5s6J@ShxUH^&KM z*!)tz4vut0XI0$@a`VV1ILfpfXX;LG$1Ri3Hc~8*y88-J)fp z=-AA?(%KSEhf7f4dX(Kx07%{n7=Q^i1x~cHjI^0r3|N}#rB27??&#!j_{*1D#Kn1G zf+E(ODdaFxIG-i+hVV<3vBU}+8aX7;XaKiXiwb*K2Uy*42W*0#LXLx}dD~r|1(VHk zrj*v)Vh>`G9UC_N~|GVWtlyXOE{VObxmDugP7wvn8fYV;el53onr@GrA*Kqe= zC~bQE4D6cAp3Nc{0I){qEH|njDDjm*iclh*7G+t}S%HNPQ}L~}u+uUV4(_7R!tpSG zWrD<4+bN{b@%zy-*n5XMk<}Pm??KdIqb<*eK^I%QCU#*>5uEF08XkrPzV*Vv>FO#D z#m(ykx=#>zqv{F5%NVChBItTc@H-QJgn~&-635pnZ;eXD68`6LH!5^snJdJX~cuymJ>Z-Gi z3|zgHZ@v2!*Yyv_)7y1e%E)UX@GC1FTA$IVfO8COo}PCMH1^(ci+yVF={@KMRi}q8 z+SZ)#{s0FhceG^S3sWn+&r1!jREOXVnY$<-WL{%UAw?=(x1w+6eYMKNity)ttRVYQ zp_wlh%o#+>*cSy`5yJ?2!6{UljddI z8JS4-SCJBOWCU(;vJ{dZX~spOxh(I$f^&j$7@a|D#7>skd@5;5F?yv7DU#!(c9V9H z@UtS@tV;@+cI@sAU%^G~LsNLYJ69c}z3FSxy-eEbs(XvE9H1}-at-YJG>=P%Z_dV& z;+o$+bK=2UL6nlYK~NxgaFtmg&26f^7Uc1)*Ts%AgcSSqPRDrQIfk=!|1pzxTZc`l zTan}jjyfUm8z^&Zoe~S?a?#Qq^(!l<+IW}sKUfqMAJ}|ZTG@RBoGNt4NYG{!=xYV! zP;KPJDt7D)sOB;%z#Qmu!p%n)wC9jzRXk)HZWk|~Q=Zm3BNhl>xQgjwRdl#~>grUn zJrTS5aSysn4nLy{-|&G`(x}Cf6;(Y;`&B-=ox<1xmjDkwId8R$m*Xp1gf_Mt92)y81o@Ll>+s)1^E z2GH+)X)`v{@qAVarSCH-dy1#4YtDv~d!DV;54o9Guk-`I@%-RReQ z+_h+uE0z#--uIG636ZGzxyBQ^zPF0dxUO4?7;A!py0X`p?YRUpW0p*FWb1Ni+GQSB zDh`EAjVsuT>n*QyZmue8)@Dgo;a>Xx7COt*qW>Eu`#~_9^TSc`HrpQ}LBc@N!C08y`4Ff;k+mFqSny|{CVbaj73=?qsjj;Ti3qrPt zKXf;=d%|+o#aap>RnERD{Dv0S!?z#oL9;AaU}9t;a>&T|Ig<+l&%!)L#|I)L>WRO4 z+!phh7`|9VysH+~t`s-s+&~wI?a;jqnF~$Xl)OyzE)2Gh0UY~Zo_HzE+Du`n8?0+ znZuX66hn+(SsQAh%-#tKCpZh${*6~|)Mk7#;&AwCW44=_#of|hg?z!%J>e^ju^tO6 zj3fDZ1e!XCoHUc2SbA42tJqS}YZ0){+FGuSmZfU@aL5f;6`g7=LCGZjQ>6n67$w#= zJ*5T-UTB{9A%{}Cmq%0^PmgVSOT})5in=6pk#y3G?wA^~a$1kfTI4=IVjf-YPV@h8 zYf%LKyKZ4l|63h@x;Cx0+{W}HI+#R$)4hF?_wMRV#ll|Ux#A_iNu4u-gsuDfN&uO< z*CtTlESsSUvhgZQq(#&9!jEioWl5({lG>w80~9PE=W2!CKt*Zl&q%k8+(L%xK|K@o zyxPW*OT$&kX=GX52*D&^Zuv}T5q}5hN`FWPWVsx?~d&q(5G!3 z(T>Q|9Cxg(6R7}tyb9kQZjyHX36PkG{Wv{^?4rL#b8YP5SSUzOee9vxs;u^XX6JgY zr#DfB&*NEUpJp(vRhy_IHFV$#?1m!33Texl`M{BF`wCdqSw^D;c;duO-k8+-DBX_#v?(2|vw7kkCsA4vVC_lx&XD*k^N2!XU=fD9+*Bv^n9C~**(}^2FCROt~1ZF-HshiyK1sfDhRg#zw`r?r3o(TRX+24**GPUrBtjV_` zjK!PGpOXhS@1jDw@vehf*vnM9bEhMeDRdEVy=eOCe1ta+YO#Qc$Rs3OrhoL zJ#9!Ijywz3T-j+O#r3zFD{(NSy}59!_5IJi8Nt-3!YmGF(fgZ=PdUhHr zD#b-E2X{AdE-AU`EJ2R9ZItD^?+WP&PF`j=nXYB<3u}*MR+@%a_>cV%f#79g^{F6f zZ%=Av%k5nCorB0G%OD1C*u?|o>6)v)t9k-6c0`GvM$V_y(dUBs@o*`?Y%FjgKyG`6^JOZs* zXtX{6>;6r(dCIv${I}o9aBJXCSrGq+O?1ttr9_H@7&0yLQ`cfW*U#ZCZ$ZdD6D3QDA6`>`iS;KA^U2UANBAfNQm)oZ`j^#}eHpm8e{p%d-mNu=C1|{n> z%?r1U6ryEm7Yj(>-bBF!X);d`(COigr-WT#{`J?q#rsyc9|1 z0tS6Po~z+7CzQy=Gw@P3Wk?eoHN`HjKk zM=@&eyYhiQrdr;qj3qJUIW|Eg;#@a1jCEd<4$5|=d_f3MpHVKku17*m)F0Q-M*G1 zoG0Dm>>>5cdA;%ujY>GSQaI|nLNpM72smZyGQW=0J{pgxPqj#ON3^M{H!XQ8L{BTn zhb2);cns&6-QXm#THb?viCVQ&Jk$ZG3FwkMV9RA|gcIB4;A-wH-$w{N>yH7y1jUb( zu-E`WnYeTk*aGtFrvKK-BmWtAQQl|REd@wi;KbSm<$U4$3uSCn{t2-;byMts@m~FU z!X_V0cfR<%A~gFL{;505HIG=9plPf7JtBnAB^x<%M7XrKp1*f=xj}CK6{xYg@y0rS zTR|n7MoM#-Z~iSowyuYf?GcKV;#>Wj;o-U3+C}f(_ z3h&~;^AvHvWLc9HcTE<4e;8h^vM&CvmzNr*Vm{k&e}twjOcr=UHGcA~=GFZu}L*{~KS+EYm)KCLHGxtF@| z1yn2B^3tX6V{{~w?<04^n}%taxS>rK~1k3?Kc_QriqA9=28GW2u5>XEQt+@j2H|E4r1YBqicb z&&_fMxe2(gznVUQwqH_A@*NKOq$;GRx6w)GW#Tp}Chjp*w7JQ9sL*N@f&a2Ix_P zt)Z{db*g*Ph;H5zdHfzbmng-rALnfNS%OkR$aFVLt)^2a&^*GXx%eX3F;%rLcLd^G z3MOlEahpx5XOrODPpE76@sCSxPMD!c*T?HyyT~_i1Q)&qtRsLWM5F1Wx&6`F)O|Qnmnk)llM^c>c3di=C&Bs@b=)m6-hsL>_1+CI!}Ldz2|hJ zEnLyl!BIc!&lk}r%kjuMS2;XZ)vqRO&`g!WkhaOEVx2zfCfLw=>Rh)(5Sj& zo$L74XCCtfw^-RiBRwiAfNd3>E@J*i`O03Ch3T9#V3#Jmp_od3vj*0cEc!gSXm;=O zvF7u(YSYU}X`Qkz+~@C8LCGm0^4P;;+g1Q(S^SowluqDkE6Z&;H4u+dFt`oQ1s@zq z3YY4aK9E-`ItDCr;B)zRgS9d@vh#EImZDzP!B>X8QYYY?!(Td;M-nv$id z{;8{Go)S-bLpA$|CQUb!lz*!XyJY{TH|Z}Fa<%@9E$`TJKYr+OM1?0>#!lVVZ{!ED zwl|!ma*U^jcfmNnmK6Av^Er7#!?-xus2FV{TiWd(*gSd_5JlgzdL7b}zsDG}QHM6! zx?5}`cQBaWUR~(HIr39DgbA>`H#h|3KVJWZGV~Wpg{NG*vJgGI>5yH$<8h^NFf!g~ z8&OEb#j%%mQc;Ql3DMhF2;B(TGKM}g$cWcFC+eWCP;<4t>J#hc6pf1F5p(&-`--ez zG?U#;JvCF)Q+nnJD73GWI(WouAA=9sGdyW9_yHe_akc#!rU5M(elK5%5Ph4@O|;-^ z!M28y7>iQdZW&oxc#M-Z&>$Fgwh`mp z#=7Rw_U8p#L`(A2;78FbK6h5JEA2zss+#a+eb&=)EEzE3O*;~XMUPLokE>K0Hm%9fiLT@oXROu+mg>lvIw}|5 zmX>8M{%sr;A7wE4BGi9aY7H(Vg9}Rrle`W_VTLCK`l%&l0BiC|rhnb2a=}0b*x0i2 zeI&B>D4RH)!|~o0VoH?=`42Ob&Rn%5F4^%2g_P}R-1m-jZj#$_bw!=H8eAZ-Z#0V7 zDx-Nc^Joz1uI*3UwdJcAwT>t}hYfTNUnj6mQSCarLvDV+WCDQsT;t!0wcJ1U)A%-d zyL;Suf33D(eLOffzZT(h`VnD6l@O}E%;!xD%HX<02?;0c{1)QjMQS{mMM4~U`jcPa zsd<&t%Y*Ibbz56P%ebh$V!<*AJr|{7#RFwDh1+4D^dqLyolG%}uCKocEx%rAv}&zs z3PUM~FD!X@S|gq-fIAE9S$>l@W&v#sxawA4YHKIKfvTE-@%_Q+dr3}{RoNA)XiQog2-?KIahmGFLy6lxf#Y~s;D0_Vo|gPdW@YkD z_e*KyFTT`djqRPlzWl`TAi;GD z0icGimv!&E2#fvUsDP5pb;`~{d0w|hjNeUvw!d^y;vfqDIUZ?n7;y$Om{c>jM&4J21F%$jMWgSY5a$m=E3-18ALJImek{||QoqhD zV(_HwRu4FmmY;iyZ~Qs+Q%pwbFqRrwCREuWr2ejreDHXz?WsSm08A7%^89-`R;{IG z|1SlIoZ&)zihg3QVMdQ|+&Lxmj_nDfs?lHg1Y~ZX>oCm1;cg9MA$t+_oY?5>vU#k% zf3yO!MH6%3BM(KG*&3~-_m*~rP%|jziu}Iu$|)hp{=H+e={WVqJyLV@b?K%z26MYOlU?dEPHq#QO{`9I&lUN1~r5;N~hjvu9)n%d)IwsX-kNCLs`9FLmRFsDL zJo7%6Stcio8!r232fZJ5VF|;UaLw=NE@+(exzX^o+;njilL{j$NKP_k-~ng`Kc!*x zm7I4nzJ0h;xJ_0N+Ri&RW$-kI0tx>f#KcMe$NwC+#%OGGzuT+1&rXhHU4Y`=Me?t9 zRXoMPmV0!%2phz|##&POa`!sf5m{5&8MjF(k2LbEoVxEFOs;eYEQ08p3{&-s|EksL znfS#)2OM3~XX`6wh#qhacxz_Y??!w>yBvU(WdtMUI1F)52$MV5i)+PUq#v<%<2OFj zQh&L8;}RY|_T_U4929a{KMWot#VQ%Ymu}rIYD$M#PV*&n=$J&QO2^}sf@pnEKkdAp ze`|J2eKSS?beG4)>psP#F9~0*6AzI|YvaH@jbC31T1xcd@ULmMKBF9oV^9Vvo81-Sbl&$fGyf!2CuIyfFkj z)H~H0GyleJ{L{w}W?cAxw&^2Vjb^J=#!po8B*;PZlIP8ACnSYRrFNl7biMv^SlJy2 zHeG_Tyd&U}R-{ov_K7v(H;?&Qb=b%F`n=u3>*EZR%V6!%x=?40%3y8&85))Lh9L=` zi%db0lLTgpDP&$ut>_Nfb8sN~&<5>bOS z$qOUU=JG?~pu5Jx7>ZSRqvSroNwsc@-ctocWz8QN;)fEfBz6CkKx7}~&|>WDZJ^&O zhwRIGm$*_=-4M8!4V6|hxDP`K8fN}38UvD=c4TxA{2!}U+)ybUC^heF z2ju$Nh~RYXDB~?b3@z;h;spj%zJ`P#$i7J)w>D?xoE6(uG`8gV;<0HDu%{xPyt^L- zH^Y9@{ga1$MT6$|Z@wK~+DZG35*I(pduNVs4E7_)^J&e3J+cdIwfRzM(&NnmO8BL+ z9n-&I0q&StBVncQ!hdhK^y@pNSDiE2TQfCWh0#B$()sPlX2f%KX_KZ2CWWF@${;MB zvT(5pWkWc5TSFvn*r9*Ue!~SQC6nm$3Zc=(_zG05iqLJPUjNh2K{NVmYn$Nu|3%na zc(u8$UEjDC3KS{sMS`>xcPSQ%1qhJf(h@>|pha8Ur9hwsiaP{%D^eVaySqavTBv;N z^FC+q^N#n7@A((j825dxb0Q|&|ViJ8p7a}w^8hTt#_8TY?3$d zIU857g$IZ9qi&I-=Z|=a*mWb0kv0^Wt#sZk_fD~3{M!ioh^%i^?W!`WKGCPLbvqkg zrg)-(HblqntCpoz6(^;5&m%=zwpdm-Xu)^z?%rJ_Q5 zoOCmLKi-A++xI3=ByU$!Y|}VU&Qt@*i_)V81z>-WUAPdh;0qC*_#V&b#DzmXrQZo6 zZ3mAy$G$SPWi>vKq^rv(Anxn!`jN6iTx!Rh(Ry_cR-vmEq~7`4@BH_M`%A`?dp^P& zk8bijygbz=G1dfwm_ZG#XumHrpZHIOhSyG}&!e za&bMX9ORi>Hx>`Eo$$P(Z8%V2=VfEY#ZpvE9PUGAOmpYN8Y1G23^K`f1i-=#dzu2r z6DCrAB|Om~G5Iwo?=#CwCGBv+2J3`}t;-KwcEZOhSw(-fPcuHEgSgfvWVx=?|4P#^ za@2qAlN%*nI;9P79MPIpBgAHujo0;~HadAmR_>l8 zp!!)RIhzMYJD6e@QmDUgltLw)l8`-Uq;RCFwcL3FR#jmfFjpmRRlz#ZZx$w)DGG@7 zj%!Owa8afkLFdDjE9$L#BW*)Crv()Hv{p^MYHihOC4Bl|=Zt(V*O=p+{?-%kbnA3_)isAMjo`OM;VGq6aneC-a_nUN4)!TX#xrUQ~GdfkWpt3;G_sw7ET+`%R7%Ry z|IN)0@Q3Z?Zzkor1SHGLRy>fH=@-xF6~T)Gd!m<`c4z7c0d8@9B*#E#p14kY1HBHB z;fISNk?F3ov~|5K>UDI4qp(=%$0qi@)W5D68&q3M$#`>-UL&QqN(V>qabTya%+#WW z$#3M0q%TkMSUnSnDBhdT=YyQN_cVQgL8t?#huq)y;ZmBC|4l7+5=rS@x??6dYIdCN z_Mti$Wg1 zRyC-88J3*%ox0neQ#od&)ESuGrLM4@g~iRGiS3-wGk8j|jBJJ?{1=`OJP% zR?R(6Qm1|fB@#w&%yuA#Cp?SgjvppYH>zVNqv;afCVHIzOT$fZP4N|Og!Ehj^^G3s zodgJ~p|L=nFIrQF?e$j|xX%V&#H0zshI^)QPon6gYwcI}4>KQ58s}1YLW2;NmszY2 zczAaBa|%^={$QlT{mAXz|1ve3eS-v_Z$H{@qRpC&Bt~Rd3gA!#Z?fkkQ`{3%D4daj z%Acg!E5Ex(ZWW_K)88`^I_DjO5*v%K=i({TdE6{5L-E4QTEpr^L_q>vW?5{)mPV`{vVu`iIQik}XN<|kr* zqvzPp*gM62!h>DdF~v#Zkl{%4xkA=Lh zUsIip+=J~U+DnGESnz{Lh59FF(hM?y8`(lJBLucS@;oY(hL>(Vst`yozGqz~d}(5` zhmUZh}4PC`p-6kfw8c&|$D9T&(Zj ztB9%DMvOhqGM!Z3!-D2KQBE zS|~I*I2di$cJUV}AD}gv^i)NWZODG0D_II3Rfl3Wh;8HJxRnZ@koZy6sI$cU&?Q)) z^?o&2Z?O^;vVFQlb!y=S&L%b^LAAEHmZMhs!C!3gy<79vY|W8!29QAy43msP7RnxO zD~BkzmmMQJ9wcDkIcJwO|JPfFG; z)~)NYO4jS7Q0Bfv=OxIUy(@K-N@q|vWKtj&c;i+*+AuFLyyRTZkWpyN@{2s~jo)SJ ztH(rdvEb~2H&XY;2P-q=79 zzm(vGTH>nbK^hKCw7HYA`*TCR^ zdiR$8qk3=BFfIniN+4OMgvp=UFZLSlfL=-6Gjy`+{lGB-i|oyPRrCmf(^2!|qB?tk zu=2*%hXvafh(kCMGrsqNt7t#6W6j#Dr<@}`dB~;&Df#Fs>3a?y&DL9sCHOPvN}}66^=UqMgT~}}U>vc(eyx1Gq-x6%8kvsN?jw3H*iXb9eH zM_yq^?(B1tc;Pp9Pd#R4yn>vPYV5pj{Kkq;C^sQ8DLb_N>0KMS(7H?eW4iS_LZ3FQ$PmsE6}jV@-jF1_If|ER+een7$esd4*w!^y zDrIl+E7wuiv%+x<8djc359!RK-uN%mHt8|PF*d$5vE>xd@;%jymCh?xyZ(Ba)L55% z-c&FTQmdjaZZq3B@a=h130cThD z{1~Jwf6BfD@n)9EsejMe%9T2^{;qaieJLY%h4zFyO88szRt5_cA$piQXcG0J@NpVr zUAUFL)dYi;s?c+dq@!So$ALMdr(4BD7-Tv8m1kl-)Z)+Ab8ko`%ePDF?sJfIv3Hn{ zrV1Ud@&kz|>C~(gO|)h5BS7P^9u>e0d*?xC%sjJ6Zok|B z(nO|_R-9dvgT|!&P^VJzJZ?Ni2Ba#F0tX}`FNr(bXi$rk)GqS0&_P#_H~x6=s;7iO zXH`_GSbz+?0eZUNcWFVzeTrv~EC$fO`?Rfdn#5~ekQ zYOLiHms5wSceO3B)!LKDxK2L5?}T_-V6N}MaSWmkq&QS_X9>Y@p{U(0kRg1`5oOgX zeb8g?=f#-!paw(9PTF{@9QX}nimWZx3=_>J0I1=@V7SI$O>$53zi)7VgH3wxVp4m=3?26c4=9`~W&^$Y5Q_E+4YG*r zSV{vvDT75Fm8aL%9+;Ee4d=P&(xFzWH9ZK-Q`=xMs!(+9<){M#fyJW zlA0Z*B@}@ZZ@Q~VKxi96G8$P)z4Im57eS8|U1;%3s*&3_bo(9ZIfa~f?>>u6Z^!7B z$iia{*o0}Y=s*z|KGF`iB^h3^>6&@zz<4nnE+Wv(`<%?=|Nxz6I zrJu$2W)lj!`|r1u!3Pu+KD-U_2C=dqG8#1&u#zU;>M)S+;Q1c>n$IC?8MnzK6f(As zyOms_WBIvp&~W<)y%+L-z=OIpOyV1R+VnReL5l{a zpD!EW#J|s=bmO($OA?1FPc>h^!F^F@LbC7kRMW}_t6G#^Ur}}|V(eaSc+(En_sHBlk zd0UMYHYUIIRriK2*)VOYP;2p(NG*ZQoXZh1ltkY*1Wnt=j4;Nf-48gQ}$9ATE z9l})JK~|)qyWDu!;uPr*w!D7hpHWbF@nV5>0Hiu4j07WHm8xi* z!YrOY={JHE4Os9McPYwa7 zlq#ZdnR#obk^rHKV*<8fT0q91fdtBu$|tR^Vn*P-1F4-8J528GwJDwB&#H zXq6Z4@%ibHWrPD~k2^jirJlaHPIa>sLeXSuSfxz`)?!{Ql-rUTTiS6cjKI?Y-*}?j zGQDf%TopG5^&;XE$b9^rJ@yR{J-HCWp5Hu8&{VGhphIn96Z3=!H1YwR?jMZ5I67?k z|Ll>XOnmqy`baq)I`zDpzYzue!Px2Z2IJfIZ8WHKz@||c;TtdBQF?k2#j_eIeuAal zzriLp$jY0vPNq|I>GMR~nihJ~h*!*tTr^^_lq{1z;_=b znwezAiV`c201v6Q0N6EA8R8T8UjRl~nj7e|Oz- z2bUf0j&#>l)mEm6ju%Vk5~m$3wK;tdXLnLOMc#s`SVz!cR9hRCqX0BX9U!(+;LqoE z#z_j;c?iN!20VC)rD5NPPUl)!5^blfoQqcLLy!-EgZ(sF4 zO4YyYzk)k8J#oMEf7<-P=)%kXgRvkuPR*MG_=&U3*=o5rrw1Ck7c}`5h`cDq79u^` zDH2u;zJfpm{n%2G&tE_vb-%?maXx!pd?FbXhP2|HSk$6zPTnMwuOIv{P6(paBYGoy z(A!g#W$m3z`Yb^?s4=e7k>^{+NeeTDuwPdn(tc%RWbPb8Bc>N=S<9m&BeQ`g6@7^n zUd=^(GK`ecT5R+xy&S0(UI=NU{z#-;{jwIt`i$~*aensNU{YQ-X>q%mZh|rJid?DA zkYII!&VRd@T;@I$)fyhtHVg|~9CXX457gga)F`r7jHh=iCE>Bb!EB6_%7(TQCsc^W zxXh$|Bu?%IX?E)7@kx6DHGnu4cvI`TpoDkv3Oc-M9H#Q$o+HN7O|IG>BcUPG%er|d ztdfD_UQ3lONRL#(uyZXLxu6f}e|U zk>VgOoh_Zy_&Pu%f*1U?Ne6@3Z6~~ms>s2UpR?#h(&b>5*DuGqa*HD?T5@5~U|gQT z#w*}bml`xtu|#(zqe)}j-KJvlQP)Xy->J%}p?YwF^ZWcRA4XlVKoT}1x5iOmtR-O% zw-}i~18lPdVmo?;b7xj-$^2v&qBnd$`9h4zlu>QZa||J%YXH{6cD zoqrMWhV5s5dzJMEqgj9Ru4|UVhNmH2x`%X^DrshW3w>?rF)FX7N3p z!_w#W1S+a8Jv%PWB`UPj@KJWMz5x2k%SEZOTZ6?Q091>XHUO^{@Pd*r2kqwt{M!#*Q~rubZ+;A4)`{(xCe6g1l>ID6Wy z68>S{?W^@NxWRpys=J&Y)>{B)#C1rY$|G-v66m$~lRn^kSQL57W5jsU&QsX!F7>WX ztmk#G>9elm2iFvDU_vi6{HmsYZaXF4W@0v&0LcpUz4JIV)D~RFb|o0SzAHXn9yzM@ zhZ_lR^=;J*KGLVCX+mUt@-NAcc8IIaT2BKRo>XJAhDOo>b!+3FWyW>id;H4$MCNqY z&04tz?NuX49_N!W{up1&%J_2k{8Bt}s$;AJ0O0s*)oS=3i7glG7_vn6m?cF_Q?1gL z`yzxE#@I2jE2Iy3Kg=$$-wp#Lb|AA6?gtv0GDe>%*VysNq|a7$Hm@ZF(3lO+fE`J+_u z)gVy|F+s){GLPqVlR6`OtSi5f%FwZHFuFEYF~PT)99);jYr~eTKYmr$x}e9#E`$}< z%HY6T-_>OZ(1GMNWRTdIYTz`acGN<>hA|g!G`c3vn$-yt+h%bHB>j zXL9z&YwxV8aWUgQ@W1_fQ}3KJd!kDWE#g(%X`jE@DaGNTlA4@gM!;BqTlupWm0}WL z7@vnsU~LOiXEZU|@02R$o|WI5=FOQe|GKJ_5l=Uz|6A<*=c-b{OiiAfgB9<&q!a%z z!`P!@^4I1!1I=r2ooEWJdY5dKA)kFJ93jDz-&!5|T`X~nTSD)(aGBU4s(I#1OJc&@ zD?S?vb7V*8qH1b{tU)80@0T_H>ek-j2Sqc{n}0AK)baHgyKOHGdk`&ZzzGSj8e9XR zqo9B(3gl{*2(`PWaNOMR?Cv)c<6Hk6(bIT?-#}Nt8VPi^c!8G?6%{QaMT@YPbWGKH z%eYat{T6KSL(Mv_Gu8>^ErQb5zZ)0Axh>9Dul8xI#v!is^mP9DP z6Wcz;L_G9ki5XefOn#;PbF)&eNf3D*KPRUK)3qh4XZ+9wz6#$Y4$f^J<6f%mF$(Qz zvq1$|8Q`%;Bl+Oe$97Kfwob+uJ+brm4cbs2!Xf0z2vtRLMu&Jh;PFlB4^{iE$U5 zja;Q!CZe1Gr9h!JOl__pJx(*)=gb)i$p%LQYMf@uW~dBj^~Xkak6HMF^4HPqZ}!-8GXMv^jvm!1{$d-~5$A zIg(zPDlhiH+Q}cJ|3tC5hLcB~^lAH+_f!a`B}o1;Sku@Q^7_R~RQ4Fiqs&c88}$;v zhS)aT7o#<+m|RCuU=N+{CxHu`D^6Ni|1D?hkN@wNBfh44#v_+0{1;Cb)iQ^AJzPe< zr`#{8aq}g*L4WMwDR6@LT^{9b6@p`nL6_#j&!!sUww%Km+T-+!q@7sZO4>s&SoGaf zjC)&<>(V&o!^jmzahcwaV}c9{jlN@JK^@eeObnI(ciO{HtYDfJB7YF_x~Iq`f3W)>T(9E z)mwjYdbdKml+mz1LYwE5yhvyl?u@=B7)Mw^k_zbp4@``_W!b_4*an@8zvF*E$)8Ue%!Z#pGmEY@qp+8jXYPOv0fhryodxu`l0_BHpgVR|-*Q zu>x>rIRJ=swn-GOQK^BM6`NUEiX4$VCqM-*J9Z9zcL$sCNfqF}oyaS(hh(Y5EJiov zSuD=Sl0=+s#L-aVN7PuE&^u>l-V=jw$FZMEAFW#(uVcoQ{RGFz*1O6rsE-!fU)=CA z5q?V*hzfK2B#IrB@6;0x44*I{iesy_+dVe34PS0zkG7f3<=}f!`ZWTu-D^VM7_m=% zmm9a`Vtqzl&(iC_n)eP1UmoKaT(>>5QKk79M#4D#IeY;m&^SgHrTWrFe0pP^jfu!L zguj|X^$P&Un+)&_vnz7dD8HXyjN&OC5`h-qvHHX3v=TAo+>cgTE=tCF9!wJ(R7uR?zLdS! zSkT14e-AzAy2yo3nOT7ne(#ELx!J%EUoWNuPnx zIVe*9bGTV!F`PB5I$(Dvn28?$WwOzVvBC-vrkhz zXLaCuklUj-T!bYV*;LZoSSl8i6uf#PK;a@Wo7qbOp^9?(J8=4UNZ#r*xzn9!TwSvo zh8bj3`%KW_n-o0aO6N_LhB?!c33%ID#{SSqEvM+jfwliYS4S!_+Ivh_0<3x+I1xt= zN!TU4V+x3PwqvCKTEOL_;-FH-)l65Lsxkvz=XBnD{gdkf(-C4Z@&40ykTz`HW#O`3 zj-C&Pa5vVQ(aJI&fcnwHj>s*M;2&v$)Vp=nUJMP`-LILgmrp7_my2A$;b*x!(yGaz zSIyoJYf0MxHIpK?U!QnR`@?sd%Y(bd*MvHMCJS$CA&%kc|trh0!l6--#CE zM62=sa>!`<`cxBk=Q_M)o)ULboRU|yzu6a>>Hn9PgmL#9n^=x z#Zbtt#3k-Mok%pl;$simPGpriVQ5S^`_wlfis7w++vJK6i@9*Cl>g^R*;QBl*Yxha zs3F_2fOq=%I?j*M-9*$6c3%yoxi7nM?5XygvA91}MhhN9& zAC6i09?c_N_LK7>o^AAweds4%K1rZd?QND)e{3N9u1rwnLmlTZrzWSevEuFK*lesj z0B^x;bhWUJwy57hIv8Nda>-1TKW`u@J;yu!S0=;O;2+;GQuWIV=h<)pHfe?K=7J*( zu3|Rpx-eUDR5guN53lWgLA*2c32^-= zA=_7HO*VDvILBc~N!!FaTOHAxAQ8)6OaS(YEkrAvDVLm!+rlRgZ6`lvt=l`{N{e!V z&%Qz#fD_N%+Nx5h>n-@GzvN}D*I(ZP=vywa^L>XUpFhd^Xsr1Q=BHI*#xj8qTWy*f z%^8x0e>;6O=^ar}cC{;u_~5x{1ea1OVWDpCA&(0vxs(J~U5p2H?O&8>0>yhz0rK`>k&mkYuoXd{TH7J%kvx71t>JSOk7|-p;kDvFuXXZ@w<)kt>7?DKr_egbN;(=Yjq7V~0pQKRIC@X;QR?7| z-cj;hdZ-iG*aQaAizHk@?8#I{W?N@2dL~1C`o}u;JDo`W%-0~Y&_H0CcB^)AiGx&# zF^+S4p<;-S)9VRD<(nxSm%q;8-eg6d^F)yMi8|m8lnxuMVT@*`V7b`Nhf%g)54o zTY21M`k~>x*wyk}b>!y!3!b2PH~TknR#PKg2p1~yo!ns)FZG4`sRaC%VRf@c)XmMkUl@BBy(nxaw3YY?-($aD5X`)v_pR;wk>^tu$E1W%+oDkn z>{ab5_8~+})QjOsRuHuzf=iv54qAS>r_&Sb&CxkH8%8qdyH@d^Xdwe83%d&B{S6%A zyX-4VOxa(pd6QlmZNuUh5nifZ0A8T8_tesYzA|S5mb53(f#PYrdY|{%XSWJlF>d_o zA{jj7S;Yxo^863g5t&(tg>} zA2Ck8>S~YWi6!Ohzkq9c_1M_8+l^31TE(vDYio+m$3qZRMvEWnB-nd;m<1&&?uZHe z%OmlB&u{Uz%=OW5ak<|H%bzd%?BmX;-pCqoj>U3IuUZL7m)vv>@h&=&moe#b(_%M@ zi;M*e*pxo&^|f%9k&ZE1E4@$MF(L#UXfLTuC#W`uYyj+qS32(uvrmY!iC|FuJPx!> z_6(QHav3)Tk7)d@8PnDPDvIl)f8Je=<5rnt;Pi#8tl&97m7w^H-r_H?c3aucRuNN-Xv`wfz_U{w_;c{cz#yLTD^qNW*M{=vYY8Qc4VvA)_o zTU>v+?3Ny?1bZ0;`jw4I)V~eDG?F6?J1QHOv;NIH8zo0Y5h0|gzZlb2ceBeQaTxDy zRoj&1OLSH)KbE)C$c%j%*^=V&XHkqPTT?%gT&C9LA2iPqxx=ib*;BwC5pK z96yqI!n^%wUgw*zAE@!0w4sR*onIYl72`qKN$X0Doy>k73aw?+bvmD)6{R8#jnte7 zjWvRX-*55O9F#3MMm7}a6KeK+7=k#jsO>zw#egzzm60rK- zY0`sCd0e$}CWj@z;pw{=zagIz4+`B7z_;7bkC_gmFGUp`?v^$hxtawi~U7}fa z2#*44jf{vh$nzeNGMM3a%rb+=)Br`33b6I}&fa4`ljEV}@j{Pw(%s8qDuLg|?%y`r zQN%PpK0|~^1pq>o*yytJdugaPpyO!UgioQn{7Az{MIxUab{Mah{%fPQX8_Zri#PD- zpLiO$xETFE((7Ml`TshMYUG{_^;`F5k|Z_g&*={k;L!A{NAF>ua{$Vbr#_jJxDu4g zzwpPYBu~iFGDfNfGz&~Z)BOt6uag&uu%_^{1X!5Ahmh<4dqlxL57uN~$`*esL{32< zdt0h*(L3b{V~eq@+R8@yo*+>MX7`h9`IwgGNVaubR4Me@sLU)A8LlNxc3vdTpLel* zVKBzrnQz9a zP5(D>z>CwL=}mY%A(!^cJ-Ju#J|t@I+9Wb5B%6qr=$^`06QBT#=~x5!79=m(s!7nQ zpU6^ao^*X{O;9{CBw-TRBM~@f;Sn&-E@dC9&d6yG*0nPiWGQBlnM&U3T8Lh%*MIx8 zGDrUV`LC&nj>g(+5P!C%8LNh)9wEow7mLUNc4CHxZh(y)yva-m>eUb!F!)frq@au7 z`kwXt;nen`iI`wJUjoO=Fd*>wK{?3+&8Ipbl-Kw~U$r-1lu@H!yiWfNNB|0z^ejmw z>>B464pbJj;o;Q+x$xqUxl~vOg`r&gwlOE4m-(94-(%WP3hj$z9}Won_~&-5!}nKn z;>+&w-f_G=MU-p6i=7#w2Gd~bp?+Wf>6pSd19$kzyziKHb=GzJWlLPwJ@%UX*)N~~ zH&nsF&hhRF*h&_zM}QYtFN(3I{|DnQi&PuzAB)r$*JGl@K3SGs@t>tF)_*Vx8B4@D zAq+g~ZWPmBor+JSOJCT&LLpWOl2O_8sYKVlt<8o&&fyeXTaWJhqFeExT`*Y|Q45qw zF#+;$cT(mcg~%+SZ3O|7px2jWYr~0vH^*O#bFNigG4JtMe?!)Mq%sSQ~xRxM!%bFKho$WaHW4rOE`^Zj#l_8 zKaj_(jwu#9-r(CF91uFjKs6!egB*-Fh~kUFy;UNNEr`-eXEp6Od4IMabTu=V!L(ei zAFrv_b4Jx)L(ikIusfk9dryLCm3*E-HSA-?UsCY=0EMup??jgkffCT|H$;qjnJ=R^ z5~LdjWoXbA%WZmQsU$A(qHEVYM=;D5zyQ|8Br;K=H_gqqzyx}-drP3Td1HNCJhY9J z9jup}KL>2HUtU`N3rC8cPYv&Vl;*NH1B9rNuk(a<6)KCM&?^!>|VZ=mtdc3a~NWAgYWU_&YL8UikBWh~r(J6V3WYGCWR z0(pEDSr?bb-T0lBXu#0y(*db)IkM;8LoTXe{UtU623KSA3CH-c9fr|kH$EFX(R91^ z(ouG(Otg3Gc9LqFKTLnLx$eQa?l0!J%-;5pUAxM5Ut(~Z!0knEh4<1{SF!*%FYKP3 zKT967sNKmWr*otK+9Dn@!Q>HkP0XrcF`)jQO1>zXo9T-en0vWq@Zx-xDp(4-ggqlfX7pL^KK-{&JJam;2NEmU3ZKSia0!D8SHqpqWLqTN3UDHO zSn=0NM``1)>5}I*sO+577NvjhsSTq3@7|C9+ErVR-$9n(YxS*S-tV*X=em};+_01y zqUA=4rz_9fOebOn8I{T3zPM0!nDWllw7b)2IEEG>>NTv1fTkaj$xE-u^c6vro536u zYS>)G!peG%&5MH6d$UoRy?k?zAWGx;s$K#@=WvXCJBT`wIu4ma=LorhE=}TuwTj}> zd)9j(8gUe8hJqqsSykrUxv+ACU(|J6EE(WdzHd$Y>@*ZJLVUAnbCKMMqXILX5 zUIShd=lP`D=`qC)&#fyIYi8T>xMRw5bIRjBc;~F5Viy@0UegzBKI!=xL38F3-g5o# zbN@T;X8rKdAjntxj6@wgA^d-yU{vcSD3cKWkeUHt1XoF%(&e;3HfkN_^wIZ;kU$xK z8TAAvE?0qe;k15>rN_3Ev#I%7`WKD$jHJ07P!t2}$rbZQP0z1Z@HTl9TGjK1JvIa< zft{BAcQ)?>rQ3K5AByCfE5X*GN~@xS`fd^l>15IFgg4VWd5#+~@TlU}Vr=cZmu@^3 zB)^*Pf6yayn;K@oBY`b5wmA^h7o7sVMjdqBikU zUpf8>`eAS*R&*?|K8oo0{+KG@$RbA?Dq0@BPqMKmt0Ax5RGx#;{u`LihISD^kj&9; zQRlvX>pXbBgBa4T^NEw1i{6)$qrM+Z|dT$FioJ`0tw1M>nsK1>ug;y+6fRR&K;7)mdY-1GpGgjgE;AQSt zp|V$C_+O#(I>0~e1xH#AVl)D}25ffNmXq$-Fc9{!HF}w-?dN37T&Pb197xaLs+)XQ}H}rgul&N3c_GzjNOtaV&$cl{c+?EKT)@_+uD= zsmM`s&Hqgxx+Q$nB(+2()u66xrU02bf_ot?&vMD0Z}GmpRL_K{ht3{g+3|?8_bYOy zlxPe*@GV*mw)2cdJn8+C!HAxrAT96mo3*At7>r(jFwW>2*_Qvo9<}|OGjH_y3y+=M zp_hBxO^dKzM#p!vPLU^cfN@ksRc_@+wWQnh`)H+jk_XF`0c8B3)sLC?HtCknDS}}X zrjfgBygw-uVM`Dh7~@v}$_=e|^3z0Ytt@g6cByvbQjNg>@=4$x?*Ma1iZ zRiy=_Hl5iwO893&S`ZZRl}eEcK!tm@N2NNGQiXT+$ybB*3z+7nv!|~8hlxDsrpsJ| zD1$MQgF^b<&Bc>!f`s%napRp?C33i#7pT+|pLu;0_mY`hM4re0ww~`wZBT^)WMa0P z(HB2Ak3E$MT(Ei*)E95C=2MnyG;paI_{cr+j*r~W$OAM?2lj7g3 z;Q*x|dIm!a~Y~5 zZiOa&0n%DIao$uoh5X{@_aPmpXIsL1+_7HoTottlX;1JSu0~!bYf7h!8-q!x%h|NL zW1aJy%+^bupXc(4Cxeru7bMa6!{j%HXr~*nr;6i2fUZV+aRhESFyYQ2EB{3ZfT&Ab zD?^p>5Q;$!{HACIYtl9T&2vFg2sCk*E;KlD7OSZ&1^8L-sga(Ke`c&ngyd`zO>pBb{qwb#>;4ZtMlZUTzBwRmtiyV4Tx>NEOiY5N?;DFyuFp4iwdep0e)5n;T0Y1{uYEI-U- z`-m7OMNwM@a51c*zb`tCRPTtg$#=34x1J59D6$yqlb$f2gj@P!pPrzRt> z+vkwV_B+XXIa@vR$sCHm=@}|;v4~rM%bwE2Nlp{{LlTOM1;F!Ffl`@rlbLw^%t!eX zyO38nxh&&AU2+f_-9O5?RevBPCYGih+dWWq*=5z`eJv%p|$@- z_!$*dLtbl#6=hBy526~x!8%=SSlLJxn6OUuTLyDKlMHY%rfQ=Yu$o{-78P3dBXaMV^Wu(hJz znGk`f!rnLFBJwq}P8XCbn|E~WzbTwV zbcYN@l^_YmubcL0OBOQSUe`@?cJdi6#7BxBr(VwAzlxtWldQW!RbB@-JK7}i%)F2ZqJNy3h!`nkty-lJ{Pg!82&qbIiKy$Tr57eM^*ow-^>; zWUbEO0hYSVcr6LeuRk~c@Zo2EAFzXzm6nHaRK6^6Ds@!KT&bIPZ_BlJ!p{842zP~J z6;0qxd0n8WCwTg7rkZjhqW`B)^s6eGkwPic!1f6l*%Y0zt9R=L{-4bgidL;YHXhIj$M_+@Wb?K;_F0#&85Y%ZN3MB(?cv68Pqed zjo7OY&haHATnVL|+U<%sZ8r6Mg*_k>fq&Va@9jxNZLfCs!&t;mq~^zFXUUb^`0Ezx z{Hg;ffY>jIXT|Ybzo@b{Vduaww<52+OR9%K98?cGTsO*eTD>#Gk)o|aw<?z7M99B(iU{a`T#i_K&Pb#Yv)e{QKTDdo zGVjm}U)FbcZR?+w)Rv7iZczt%GX>VF@aue2oI9aAr2YuC^A}y8!S%7G=un+&)lfscq<=Wb#g=!#-T?Y+71~d`46FOrFd0duYqne;xU5WO{`@#S_ zeD*^7wqPn&`^?@zowQv%EDY>V|GF=Y-IHtn3#9KMSz^1>xbyNtV*Ad5WOP8X>Ax9$ zo$SPhC!Wym^z0@(ShaT^W|PFhbEvT~Wr_8>p-{uzSstOJo+dj&OmPQ3&(YqP4siXa zggTnu@>r|G5`;jrU*;kr5+QKZuYnd)KHg+L5tiCIs{h;9Q*?>%}rR3R+5=55dt_DGo1kPE>ctE`p&~6`-(HP)I*AX_Y*gFkE>6)n9O7lC5A=^) z;dSZaqTJ?xQmsjRt>Wx;4LSWHKyB~Ov@}V5$x5o?_J{~-@!clN>uq4wPU7rn(V@9q zaqzxrZLHz)p8NRW$F}rX#l_J?Ey{jLDah9!RRi2DOADbXJ~-6Iyj*h7u4Zpci+C#U zcuyO2eWc?=n%|zI@45W*p1^$KG28#ntuuf=KWHL4!NNA;I09;NDnpZQLCa+#3t-PUG(G?lh9% z?!hIupL5T9=DjnwX6{r?)qJ^Mx@uQ-?dr99@AbEz2*y+ZQSEje-W@oAO|vl@223fw zuiDJmC@U|Z*g&z`%V)Y}_WX3JUy3h2;{drwm>VKknehul7!=gjj7%~gwI@f0CC{qy z6wWxYn^l(OhYfcg*l?X9m|3Kva+O}}^)R*=$w|mV1T8rz=2i}=6W^%Cj4+&#l-5bG zf4Mc2p{RMBzYDA`6oxd|?6q&^x;h5w!PSF(IRNn&lOIT&;=Rm)A*UzV!_@bhnEo#< z6)W)eVN7g}P~2K$UK$qXQo~;H2grm%log5uQk~khdQg4MI+C(*mW+&CHN~mdLEB?? z#Y}H&!_Kxy{-k$-nq;GuqC#mVkeLT@n$>VSuil1GE$E%=@K9TQ@X!Y2(W+u#L|>z6 zEx%u*^rS7{MRkGP5jMCm`v|F7{xRO!+D)!&{G5qj%jA7Bb-a#iO1gMB>bqOD>11zY zWc}mZY9iEMHbDcP){S*Zw4*3$W7;h^^YB+-M=fieKH0Ie{{sL9z+L!Hvj-^CUY_dB z>qS!s`HFnNR(aR$^;OJm8>83;M_v2}p(HkaAP*s0v6O|RHdS3iLB{z7aH)U9i&03Ag2rq&lIkj=#6hJ*R=WnU-x69J zjOAo4YYn6|R-*mdhPa!Q%*`$lLT%+pg3Wd)^8H0&Uf<@oRzk~>&uoNin{~U-oW=x* zX5bqOeSBYG9$m^2b5~5O{5_=^ke*Qvw_0r7wO0c2ifu{rwTY0&dbzz{!5tpfCV{k> z7-(bM^ym!LTnL5{R|i$@hc~zkF2_}&J7o{M{EkCs;RahewAP(k^T;_RsmIR(UNh2@ zLfwBP`=}*{j`5tSsVQQ)z}-_hVAwN@ZJn2P7i6Hb?@j>GBGI#fH}<$Xm77nt;4KSt}rT*&dKe(KcSyf~y8f-Sk1B#$cuoEJT1~3W*x{)HQ!W zoLwBCi3=`MXD+orzBcL6TR)em+#C&q^bkEy!&RFlUdewoDGLkjO3Aw2OVy%N@2Fj!b%vYl*(q`{9*C zxq^{x(PgAr!NE(`A9BCJQG$_!u}thV3T2I-Y?wUTwt@XAyZ~a2E%1uY>Yt|amn{I+KALiE# zN6wRR5|85es|+|3u)G>!7pUsn|EO2tdB(I|PMxp)E?Z$#!O3GgYzy@M{Z`&Hg}1k| zt64MtDRWUr5DKPA)Z)xi%;j4+AHLHhnnL;V$Zo5zr5 zt>yJcuGfWZ&P;n@V}zkn3HL_4D>=mBj$1ZgpUnq{G(Tw!mVFuCPmXrK5iS|46Y34K z)@tGrY7ZWNLqn_gl{hR@9zl?8V?#!&5=wY6^Y(bXb)||7q;u5G_@_u;srt78PYDsR z!-Lgw2@Ls|Pn9w>v1rx6N_HQI)w6S;Y{m&wL0XQ?U=SVBGMH^%+Qwy2DuE|;#$YN! zyDKNh&YoI~p{=QDTEZ1TFqUo@r6}5UDwWP(x&kHVJpe08MAeX$muxcxb6Jxe{o{hof+GI~(1_YfXzk&}!~pi$TX?kg^S z@?n_r-TbM;X$AjX?D(iQSO$p}gF!SPMD>!!CTMxc%P1_|Ab=xr>1b1_A3 zJ6X57Empc977!mZW%fQ{nVcvgzC~64U}y$d@k?QNw<9~2mTy=>RKp#w!IwlGVINyF z6HB`;HL`gqT(tAj$oOaq3V(Wtu|_qv5Bo33i(&r1d@6*tWA-@u4;g_AO$8oSwDM=! z3X8m>NT{uf2$f&x-Y*IM_>=Hezrsn?&!I z-{8ETwi}K(oli)=65MJWH^y6~wTWf-x9S=93%HkTEoFoiQjI7sE#uL?TZf=A(dJ<(g^WpD=KRS#}fy3rNT&r%`IXLMhfr!AL@Bg^p+1T=kAuR=&0P^ZRK0LA6*=CvdB<3gL22hi)-ghre_pKtGiCb~PAl7AxelFYP8 z?&tfey2d0Y<}d*$J*SzoI9P45xn{ojAP+q zVik)6YKAh3Po~fF=9D-Zh1Wg`q%Ht`e46Q5oX8w8!aTnECF2j%Id%xiBc`vHV0Y+k z&^S5(E`zs^m)biE`;4$jt>2xJ3v72BeXX^<5Njny%OLdSwQ*)XkhL>4nyKOCUvpwBt^X1Gclc1) zVwFZl+fthGf>zQbz0F!^yk*Z^7czKvgn)s^z{upuU)4&WhMlxWxA{(|O>thLlkk~Y zPjV$e{fm9AQy*!{4$8sx+%eRiPWwwzg~?nXF(af%6*sgW>`?m?$S?fr*C-wNwo=8i zWIEK`Rz&~hj2$~#_LE2h-KK*7brMt-A0$;zhWlbIw{-x|2B6yVZ2MB?>NC&Qrg@j9 z*t>cz%)>}t4<^=ws+bqHJgQPMxtj9kGplZY9Cje>5Q7XQwEaSlljHg%F}VtkQn&VE z1zXys!lDMC=n`mQt^bIm>QORco!0$1Kc(!tW-8pOID~|Z$^5R&4CA;@baV;{3gm~5 zf1lIjy?|4NwDFwKyik zc?~K<^%wNQq~{zfI`=F~NpVhUZK!aT#(<>((ML)+r&e+zrkY9|uUvIT?w=CRoyIjb zE)(pw>}rosZpq2dv-II~FqP84MklE2KRCE&V4r!;-&yXWxgLJrm2S@Mn9w$-IJI<6 zG0@BG9Vb>REd3tx`aw3g@Pnf?GSnx`R#bRLom(vh z993gM-}?GsG!WL1T^U){{9&=lL{d%(Yqp{Exr*GNqg{ZwkaGSYS>o{XepvM#pnc%i z2mXSHk9!7ORM`Oue_<5*W0GnKg~Q+7->QzqW%)Lh>)x`izX`x}Wr%XNNh6B8tY^#D zSz~ZS;XSD^N&#;uT~`8vXH7=fJ>8ZL!=9eqxp7x70p1 z4VaR)M?{z5dV09*PnBJ#ae4_sJ~_uTYga~L_t#mPs>c9LvZiNoOChi5XM5yvRCL+< zzG3IYLm?(XN7>i8j+c*ZN3K_)wJ|pq)5~tau8nT`>N*GEUNS~97&~$AitU1ZKjkbR zw0n>bD{hswuqIN+n(68up zc!@l8>bGzrD*f<^3jnck@m|Zr8tE~a^LaiM=R7GXyA=SZc^`YL*T@=R4*$W@O;nGe zZ|*tp1#kYmG}x!|T6Q+lh#hw)qHo;Z8x&2xp$-)vS-Ysqbpo=32Wy0!<~mpqbl3|4 z{$@NRO5WtG$)9TIGg*SR^h?1bX0$y@Qie;-$^*|i^`xfj>3GrJgb;&2slC%-!|{a*g@jtQ~k zQ&!!Ojt`jGeT)hJ@E69F!^z#G^J@6Kjk;kksf^1gDG!V276b3p>@vY<6({MJqUVyc z6()-X`Pn8iKlznc^4>EBt9mN*_Q!X~;Rr2PL@+SQJI9WSe(z~xO1EJUdKM%YS}kZ= zwGA2+gEibF8acR1lH+MmV3p!Z83dfvK`8oyRYe-g^EGQ3wur}5xHj#{`-)Ygr7^u& zqBiQyoYxvtS2>d@bNRBjLrjt9S%T9P{3pwI1{No|5xEK4hlNe(Xr}Yre@5clvo;mb zNqkHLoA8tV!hm?($kKYQ!O=&;XlU6dxpnR3+;T9cUfQFH>aO*}7V0c*J5^Q8T6(ky zAQgOhrvQ+UYAla4z>CT72^fMPVI!Q#VzlK2-{i5=Uv zs;DQEsT-!fU$Gd~u(gtn7qZiY^TDwa;!83OedpS19NF`8q;2a4`XOMcVo@PS-#{+v zPsofzaRk9Vb#$2ERDmZv#};Yb$hmG#TogtTOfg+Iju{A_niDmCjq*RTuvy;!=4B=< z(w6GEJb+jv=_c}G+Xi%^hPO&Ne6~rP(z?r`f1qbdmCl0vJUuf*FL%8^+U3x^1d3G_ z*lwgv)bR9Yp3k8i1>J8~_$K#VE9{w_<6niu2o+mGs+ajt4a)kdHs?*9bL9WRtcQBP zXQHFaeYdPo;s%R@Mst?%iqA*2x#ii2vK!P#9{*ZP)ppe}*onqwBU@by{*`7MBkJ?aMwea1|RiBNLkfUo^2?(?-`1 zU}_szIk?c9G^d`wsLOlcN?S4j8RX%Hu=x)hr=*!O&%Qo2g~>#NO%)LncE36hXqIPi zMd>zO?K%4sbcAEVyWfBx0= ztFQq=liL9ort#!)Q!ObOxOtq~Stl?)*6bP38MXZ3d#MWx_cLX~0WHH=?SrNi9LK;`mSA;1NzJG*e*4pZbzqX(>Id=L-}<7!xfvAFV{8=p`DVc zlKILx?E;bl21OYiwKKlF20MQU9Ht3!J{u3O!N5m-_44_s^*RmrwlQhtT-2VY5G;c~ zQz1)BK5eYa=$|YZIV3+1fchtRD}l&vXsY8r@$akIz$M5jiLIdQ%gw+t%i3VcSyKW5{_HkbrxzF%>XlbQyXNrzIk~@1_TL*&v&ZSe8-61 zmN1bS4~)xyVea@39{0ObXRIRsH}IQmZO z0^3ZUY@$mSsZH{bGC>7B-IS0Ih5j-InQO=Ffl?a#d>c#O1(eNYGd#iu!jP`A8=wC| zdC)%$0|Hu?I^R3KgX_2o%g-}RyFA}+W*S7V7r9S>PH7@Ef1;e{n*Gt3Z-@&!3SWJ( zVTmBUdBpUZevA1kC8ljNQ$_6fUeM5XFeH!f`sGJQ&f8EhzhT&i^5xtPk(O2Q7fpzq zw#y?L^j=YhKl@wNV=V{o<#QnCU1WKew`X_)1Kc@jl;)JJku%E)fdcd;_8xIm$Yi+- zO^@!$Cl)M@o_kVy^XstI6g=DMOWzM-FuhLx!emHG523;uzPeUljCJcKZ*8y4$8>Jn z!{<$qrL$i0Ki*3LmVx$*(+NfU%RffCNR2#v9dO+5K6uA-8vMR}@VBo+mKEHR=o2o_ zdNvA^W5NG*#RF6ky2*DSzoP$Et5rhaY5~z?Cgy&Z3w7$sW!8Ap4CuzH1woGuiuO4K~tnl|T44qCsc=*%pqpw2as+L~ynuTsu$q(1mpl z{frPn!<&9nG<=W}?NpJSdqH&lkj*XeY^SaK$mLDVNISOKiPO{PoXy=wt{HnMf_!`4 zml8g^jx9E_<16atZ`KOUP4Fju>KDDqWDxWzS00#1P1A--(c}(2bnGqv!VK0wA8o}+ zvEgl&|DM1=Xz+F_CLjwQb{&2LixGsn)(C-DP+%Yb0}HfKb%?ocvbY_5y?7rd zs4*j`)#cbmhj~%a)@tItceb-)Rzq|^kl6**9$MYwTjO0@CM2Y<`f(Yw3?<6{Bw2ZW2C{)p!mP3fRy|22 z@w7{GDuUcfWG<1(&(#Byf0#}qv=tTBZuQqKKu9V;p7(u!TFU0R6x35_EcJM1?UzM6Duv4+h4hZ+|xmb1|yCc;D6w{82n z#rw|BC)~DKZ#(QHarVYNCm5qnzzP!*C`+O655qglQp5@t5A)i(8csN^_x5io#9!U? z;#!gWyQ8b2W)I!TOo&70AKI&pYv6)RDf1Tpt;7l`OCX|G1w=ONoCzE?G; zgHq(P*F@;?O*2O7|X=mlWA)^LN)N0QD8pX^tO6`_c8iwUwF})8vL&f17SMrTkP~a{1*E)T~i@c}Dt5|o7D$YaF<;BzY0LOf~D~7FKw}@|B zlFI-0H>|4n6rR!Ynw*M5sA*cj8$)zU7VrboibB=h1vUOg}QX1>$vkBJkyg{ zbJ0(#_;UYyr~eoJ`2W4r|0FxP9d66o{sfn{04MBTGLop2%sPcuDH{{qCj1k{WEy5l zIaMVY6dH0yV#>?y3X+`ZIjF=eoO;J%_`-g1Eh^RT zH>uo22=ulQb`16GmWY+IQt=JSfJH+ZQIe$*X{4*RZhcvAQ#%T3f#TB2Vv*I#0!8Zv zfg(y;Q`K_?GX!a{tS&)F-9JeSQAuEKQgaF`XkSEhCH@RzrfX58kOCoi;Tw zg*^!~Hh_&Qikf#P$1cRL>nbc1;2AJSoW)wu@n?-FFPJOXrb8gfqL#maVE z0o%!g2iFm={BrGmndU&e6$2W4W&0(GF6lt~Vrq7+C(yjZh;afw|CoaR@xu2Inw=`e z569^`JejY)smf)p469}F)~44O2vOyea2{kYfbsN;*bc_6qD3th+X@_qRv&8hjL@IX zIytUnvLJ@yHan@8C;fk}Z?z`3)=7 zTZY!*B|$LV3N wM6NdwmMRp^Z-LTUBQMOwTrF#B}RKyER`1JI2tC6H#cQ`nQ;6Wc*$BZdkiZw2S>AY70ac9wk0hvyHh(K)jRIqJr&{yct`fc_1WZ&H;)BB?cf11o7Pj-)WK#!6QXL)GKTpbW)t!A z^4S%|$F4xkv<3|34^mG=pW#}!j7ByE2$_91jvir`KYkQ|&(O`ZgLoQ7iY}*M2 z3&tM;ik;uuC&HACn&X2>{%8Q8R>-XLElj`D6zN5_skbbnAjNKEUx zHX#}*c1I+X_w_B3EER`ecZoL#ySGwnPWEF|9l+B#mg4Ckw^vCcUmN|7) zpV1K76%{ik0vpKzZqu4>PjgmY5XUl}X(Lv{8QsZtoz(1Yy)>ZQhxtfKrvfEL3-N7oc1>Se$MDPZu` zaeqc)z4K?DALmLYmeJpG{84MO=(H(VZKdDxgJW(nM$V+f_Wu1DxGUkRhPizy?`A zU@J7X!C>}Lq|DAc(slpCn!?xQp*wg|<33O>Ho3=PDT4h;=6jNBT3eZS83tS?UUroi*W@>%_e<6%{NvlpBjlx9O$*OJ zE4OT$h`J)EQ?@m{fl)Jd3k4?`4@GaQXv7#rYoU@XtZH#b057~=l_a_0=2R1somer4 zLz6Oa3?_|3C%Er4ZEd7^~3$yyRW%$!cNC&fv+U3%kRZbbr z#+mz1taETn%eb@IP(jRAW1i7@=jXiTe?&# zF#ZemRa5zTeb)w{7)w|+!2NWi5i6Jf1laN18;C0_kH71lWF)&8A2ULsu_5b2vK84S zR_W)fb@asar!Bm|Yn{Btc(UE`T_D>o%Jo%dWl+G5ec%khRLQXMt|W#`x*&Qj{$~(| zMo9@RmgO5^&_t9kq^U~{1KnQMq%wxymQleLYt%@(%7^VsGIC&ROe!5_wz4qV_5 z(6J$SGHWl%ooJp2`6P}H@JM;SC|c^Z3xO#th0o3c}e?U_H$}^N_-0f6;G_avCGS5%0F4o-VvU2Z3;sL%)t$*L7@4_~sIu;!M zYn{e5(HvrE=!kiW`|0S7nsaiVXX*~*GK%3*mKRu;lE0L0DK}lS#&*wUo>*2T!U>rj zb@HEO0`07KyFQmC_-$ z+Jql(H?%D@ke42n+ZGDT7zAfR;}|-}We?bFB@fWxgpyN6SEcn+4O;w8iNn>~g1E z-zr?Ud4pK@^Iin9g`_UBe0=VX0+Sdasd{$qZB)sdTypuLx279q9@NBK#z_nL071z! zWXO=jvGL*aZB?$mbt-2|OMJdqqOjhGG*3$kHTOkSKWsg;CvO;?NY{;Eem*CnnuKAH|JKV3hC3sMD>2mkomg3nxV5B=%fBjDdj( zff0eCaBGLd{<)8*#ANeidag6x2gx^0T&#iy!JZ8dWGPuUMi<(&THJ6*e$0u|abPUvYyVp@*;nmQ7 zOlIbVA(Z7JXhcs+c*b+@E*#G@CEG@(An%y7dxEix^R9ODoO`43WT=Gt2+$Vajf{HqY zhmZj@#E5N~=YM7+n6{m}P9>A8%*(zG$ReYYMo^>+@1hd!DY?aAv$_k@U5?8@h?_?n zPb}?&^+OO?2J!`|o}n>aMRq-xT~>wREcVuRm-5W&_pig+-a@-{>pj0P4xsOb^df7; z6-Uo2PHEARpIlW&3_qlS$4OnqTsFo*t%m^{I#)}Jb`#K-*MK?mKB>b7jf;oWhA>sF4t$XQ>8|T8;F1--QnuB7j z_klvRR-wH;qYfK`XpycRwI@tzAstw9nxI1P8PC>R3H%%dU?`4Qhal~^-Lz>S4TizQ zv~1`sE6GQX;qT7lPYa8K%fuH#2up#WQc(spBnW(fz@vu!hw zxd1XQ^%rK`auWJsV^Gmjo69K_yHrALLwoPnCu z#y+_cUzv%9h~bv)%g}nPU62tm1wt%u_pqn)i;%%XL9d_wTAXCt8t^EI%HLTavUSKr zg0+^C5I7kNrezXUSx4^eEiX#nW{Z9W99nr>+jq7BP5Is}-t5tQ5F4poDNEaSrf`A> ztk^dbu<5xLrL4JWD7ZDbW)v9ClnEp?a6>@X8U!Q_pKjz4B$$GpYqjy3x z(s$n-TtYxI>)K_*e4oPbHoOjheGp_@PVc@(?RD&G4*2}h^+Q#<$&sCEct{bdE2F;q zoEm;ZN#40XVsuuV`|Na2+@eqEk#`oSp}uJD`N5h0Z~d=Y^KPFg=W=3s79DN3WYV`Cpi5s9OI|{|Xc*o5iv} z7dW3BUA{`DL@7rgJ7Tx0K2dE@F{(`NP31_o+o8vMn_GzxP1Cakgz^T=zNA`;KkUt; z>xWGi(~;%w!It&uej1NsdO@EziFnp=Vl$j z^X{W3*rE9lN4eCD_2@>)>7dSU^YkTFBPzT@ed`ygxnqUYrHyf$5x5O9?(0wEsl<7n z6NE11oXkK=AteZ&a9$41Kc7LKRFWh7Vr#nJ`@qQA#v-GLGg*Nyzp`-9y0{pFb>kj_XCGf~CPrhn2otr} zZ@`(&a7@{fb%Dr)r@4C@M3(Fz{X*W-C5iWbFqYzY6It=GZ}A0Nc~1P9kkOuId?9Q+ z0bsoiXTV&@tI+_$nuezUF`7M0yA{wl5CC{%pV|tE>BPev$*o%k>L? zK|LNhAm7#k1q}U~Va_sd?#tTwwC0gU*t{>fh3niuMdzHss=t7*rfeeGD|9J)!{s7% z3@ftt3e~H{{}bHXoAjorLBGr|6VyfBQsBRRyV@xN4;ZQ)n_u<A_ucL5u>Y=TWK$e8qQ#epo!h=|&f$S-ohjLh4m$eu{4 zzSX*nv?ux7Z1yX#m(RKineRqOaa)U@qA-EOBiZIbbVs&8Nu1C{gu} zTkAt%DRY6feEs)q=~QmfUpJVm?ws{9@1J-SbR&9jg3LP51cM;Y4AUrkj@=RZCi8%< zU)vxk(+Mb5{7qjdcKx>Qo!PL7f|bO!OkE#T4NJj{auE(UC}Ukqd1{q%id$Feo+Me z&YIauZU1! zxyrlMqkz#I8}ad#t@m+KaOVeau_bqfEk-HRq>f(MxvPMpZr_U7Uqj?Js<5FRxUntVE&Vn44r<~DSJnp;S!{iVBA^}C#KeF356lfebrg=3u|HpQXGRx@>LmaPVaEHx&HgF(bQM|{x)^JYE_VPe0eciAouEDM6CD~tQImm5*7HU zM#?s;GZwVI*HkS>J>9`&98Yr(4?s^_uU`p5pPHEf)ou?ub`ny00!z(|@cAE%mPy$f zWQhWvW|2ipv+MRUeil=16zM+n-zw;Qe<+9_$__%7K9-%fWyH>>JF$Bfcsrk=rGt{2 z&A<5wHNGS3saf$MtHaYedg&Q`bC|E|U&0K&v&t9{k9!$reVO!40fNzD|1|;BF&Yeb zHaNO?ew#CTwxP9Lc%8k1J}>@Je_?b2-bivDNor9WZm+8N#x8$mm_kv6IJXkMY6oX8 zJ#`ms?MS47JU^&6{=$G;s(zMp=iv05`E(iPM4ot7@>4FdJqC4s>^g_pR_YS82%yek%WdILoR9#r8y7c#dx(ARIOwvtzFJ13Ig zn`1}ncMl5>Zew(%l6#>HNGpoRU4%=)7tIEerR&tBOXoA>g?hL5e%H*KmxJPG zGb&xQodlXe7F}HQ1{+%x3uu!lhE1c zw#lbWftQcQwZ|_gx(ifT!wnhe?`iwbqqRujmlg%Wk_Ma#g3k;|b|Rc1xUd7U2ik&28cc922>7arq_D zYbNco3eMkp)2|nYb+=(H!$sD-SaB1rmfmwM|L}4D)xoEaLVJKh{cIp-#cP$}(wlwC@F1-ytgtPmhc_ecubHo!ft%CGwSEi=eO#Vqkt;7z@KS{c3-EV29wz( z*UYyjMzV7`!WaWXl$}l)Ny!AcR*-Y#6fJ>S=6)!cWJ0WMwjv|DQ(P836g!*yOy$A1z)?UN$H|DbWuofu6pV zlxwXIj#{bKQ#lgln1NEEGj;mXcLy|)WVslQ)lXVJE)Ct`v2be+EP4+y0bMq$?mp@# z%p+cDPQe9o4({x$n>kY$fiF^W#cMPY7ucFOoJ|H~t$o|Jrthu=ODLY7>2uK5x2oE| z_nl#uy(rpT`OGa73$CUZ8LzwN?4CGCC>o-=Sl<5!3fL|*}6)mm4OpL_AoopG^ zoyZ^F`thh%#eUDK5%lKewfw!66I0O?vK@f&z>@nA);GlpwzF9!ic%dnC|XhCqf>9@ zSEw3xhsu98A_1J5I@go_$s-uQCM0l8BxZ;RXxeak$L0z0XVI-gdfgc^MBkCiQ{+sr z2_fX!LtOMc<>vX{J{a66K`o9afG;enH2GY$#4fL&=IWy3BqFb(SzN`|0|U&@OVmb< zmq%f*TTdUOyj~u4zdTIv?Knf{0?GW-Xf%jR((>X}la^#@Jr&(=(6E|&KO+m+-rP!6t0yVY z1kq3&32XM;Mfaw5|GZ9~!P{tTot&%S0^g*e!n z)Dg!`$^nMpvh||qN(ZQ2%xuFQ*&JVlkVdVS23aGm01ufPf=YxGF+(p?!snGfDk|Cd zC1L!-ikHKo>Ei=kHDP}9>XlVoxrHm>T3WrTc#X{=R6t-F3J^_BnZqA9SWfp{dX-Qt zx@oqZ7QM5uf<^t=2RY$(nh!uJ2Eo%gS7=--a&|KZ&J z&x<^)2iuVy{kP9Ax9w{U4T@Yh9`&Y{RQeGlZ}#Wyodx!j--$U|4&b^mAG2xiifWE8 zq&buOqpG)I${)SUI(2G`{<}`|fX60=t>?OY*A-7_rhK!`{;^g3wtm5;>%|nfP+A_e z8e2GG41~j%6H}Yhkgq}E%bOMO@xyPC8i9o;YQN5T$Z)z8P2KAbKhR7}5=Vs2m zhK~-bNe!u)%w4%nVLsb)(kEu>)j7lqEAT;BxKGfF@nWa3TH;w|*COyjhd#`+6w)Fq z_t3xym(Rgi<+jWT&2@C{kB(}(9S8qci2I-I+y7*HqlmAxf7}~*lyYV_%oFuiAm+|a zP3R*`G=17Z85jl9yJV2GKq3Q0R~mRj=$Hs8B{kKg4JFd8LS|-d^@?L<%`Eo2s$xi- zq~j(&XbOjHA>2(5$m#2DW3*bT9b4K#pY-9+c1KMTG4DH4Q{tDuEaNw_APb}%*WmmJ zO3Wd|!rZ*EjFVzfY6V#jr62;$&qvqg%J&0zW|;G|S#AE`uI7Jn(f_}H&Dm%8fT-o9 zxBKHVA}10dmq8QWxUycRJ+?W`KxCLgxE}DcnjWD#@neYKObK4dZ&=NaWi&}e3_>&% zNQbCX|Fv!f&wpd;Ex6)Xw`gsg00|I+1c%^_6Wm>cyNBR3?(XjH?$)@wH}255y9Rgm z$GP|H^W7g%WAvyR)%C8q=A6&p8IW2}dYK27SGBy= zdDN{YS_l#Kt3<{~^9KhoJx)Q_UUb=GvHw)cb{{C@)JPPrKx2vSw*(h{R~I@l(pRjo z$bPH}yhMK|X~ZW^Na5$O_-+?IN5N3@`~%C1%0lh*lkhA*)HziPA1&rJw}d6I;*y-iC+U zSGVpEKrzOS)VAuW9Oq;7%xImU=>Xiaf^~8W2c>b33e`PJjnb}|jAhmlsT9RHMj?#5 z6E6fz zs}h`U#Xu@i#llqR_Hao!zJ{Q^^zgKZ<5%SoY;FMj;P`!=9FDEf$FaVO&zHvkET$m; zNRsU1R^^>H2W#m9m|bBlsB|5;Qa5vg7+w82IKdi|qYw?v4WbyRF2?&lIT6xAtpyeq zBDkrXA2Mqd4f4btKA8gQf20*#8b?rRtHo9pz?(+|xD(Uo4py7rKK{_GEQ zG*u->o#&gM798|8OgcqDD#5~!+L0J2KwZrNM&gBCSqW=}w8DL5G} z)$DVH!>G_=%AAy=aRSw8+00@v(+`e|cAE#RNp(`4IhYruowf-o0DLON@tF@R7@oct z_Q2CN=X?b7!1Q#Y!dLHZ3X$G3HTn9-qJ(10MFis3k(T^RmmJ)b9M=|Ud=vZtWIjp$ zS;>)`|3DeWd^p3aa%nHIl4SLc{?F@&UHzJ8LA}+O zCWR}Ic;$N<-8BYi_d@8JJ>9jrz&X=DlUD106`^r))e(5!)gmi)LaANRX27H%u^P3z z?PyOwx$`2KuSuVjAMt*Bl|cWEiikKjV+6F$v$3h$rRYHpBk`42PJeAyEQzPWQ7?Ud zP1#-7OrlQBzKi|`N_Sy#-S+FIGrJ4Lxc|3Rs;LL{iPJv}wr+z#*L-R&yf_j|54Y_q z5AE&*T0|liT<}IE6oLV>O^*4W9OTCybiUXv<1&ZC*#(L3f>?#QjPj^SMN3Vs&))9Z z2Ru@t$Z++4e%r*XirR#~q6-93&`8jW*yxk*mgtjeu?kus0jp!Gt5jn!SS_7d%1pY6 zl-Lp7$&h-FSUiZ!+bbDzWNRXu@82Ll>%QLjC2!=_^}cULhf&%fO{ zr*k*8n8Y041>MHoQDQd?T|8}zm*{GVE4L#$_pv|V-n^{?V~Em4XzDNTUaAJP{()*B zOdZ1dlD~7@VucJ_tL3q`7mK(AEGwOD;`HP7vTt|i6T(0kw=c1?j*;-H%`8O!gw%V( z$N#){l!wu^c{zy#IpU>H(ifA?MJNVqk7+QFu31aH={QbkKt5&TAs{|8w39M(hQ9b+ zfQE3bkD8`oeAOJDwB4%5?Jkul)msy79v&Xkz1nS&eZQ zz83R;Ug$^V@q**Fz&8t+&<-4jW{%grgKu{&)DgYz!K2X+2vZ9QkBV5_cg9JCIa*!C z6JK2!wY0z8;(F;{3cj!WDA8*%eVc@tdXo9i@~Jqq&M(qdwci`T53oi76;GTK%p8yop%;j+0- zdtXegM3}Q~?7~ zI$5gcTG)R*^zE0RUZ{H%h1plzW1jgwXK+DT4RJd@pAPTCeOra>R4)#0W5Z0(ilsm1 zEK39SgN$08CC=N3CQ7ZY$i>@xXp&b7K%@=i=(#7oBTCPvB?fb_Sm|CSiSwvVTub1) zGcU}5X6NU(1-3CI{>7${p#*0?m)7CT`IktE*;tjQlO2^!#YVxeeBP-cXgdhd>k-8CmrY;)|pH6J~-{Y%LClQr5~)`FV0)>22vJuyd|B=xVlK7pPTss7gn?u?40DsvAJ$Ce-$=czQmyM^ZINEJ4ZC=aFEQ$TJ4Z7Q-OM}mlSdTpz4XS)l>ob zHP(4N2CCd-J&7L(a7<19?iRRDT9}q9s#1^l zOtxG(D{ci=|0>NLH=%vaRDfM{2Yh2nwUX@< zmX@JbBsvj`(EWw}?HH=Y?CKm$+m_S;RpHu+0c`fIn}ljan7r#`J9|FQzb7?EIWEY5tyOwcKPIoy1Pww zpqeR#V}n`*AJps>G9ACa0BW{&g>-8gtN{jnOJDakW$X=Y!jn_RIj5+J_Q{_0k~lMm zI$SdWCOle&HzpnQ9Nt7cu1VkIro38@td+wQ?d~7oN@KYRsNXN8C&*T5vru$II?z+W?=dqijgDgcX4Y7MpWgmHzZNY3Xf1_T8!qV!!d4{8< zCnf;|_IFu=mb~01QNvOJGe%EntIp|od-z&#FcJ^O*U0!dzgYLhwA&gBn!*JX$}9Z^ zx0VPh{;@HwzjD@o8GkYuRhKXB`BaMXP**6hitcCgUUwvs1-azBxbKcN)4nw@8cHE> z?0}t4O)Y(W0m(95+MK=H{_}wvmkRhzx@+`I=S@Hx(ARkmgiRZ`Si~7yH%GR45968U zCsu9O`^V>3Rp`oj9!^>$3!eH(9qmpHk$hLBOwaBRrABIWB@A))SoxvW^rnuEU%dyH zKKZkFg885o8~xLF9M2DQstpR`ROP1>VGWT{C1}7BOz%pP(IIU0$47mPA!Tx0znm*? zv?A0!K*`P@j260baEg2UiPT9VI1S+${vYV0E-iEY8)R*QWL?l~QGToN4xaAS@|bF7+f?WvcghcJmX}?y zmem^Rq7Qgb=#zh=rPN$kfBn%skCk4NeW5N9*wa? z{wAqJv(zM)wLY?pxn1qn90f9U&-uXkd;-&TrIEOB@&EWkb~i^;tm7Q7&^v{&>f(st zWSE76F^gDNau{G&&F^D#baJ1*s*D5xe<5Nvg5`0D8iORY(08z+vfYN{`zOoQ%Zf9V z?~NFII1=^5X9d^XObPktG#abvOt8M~0Rn7QC#=bFkSyE#KUe4)8%f$>o4SUNH-@GRW4dF|uR=tw6w@H52L|faI zv`oDo1Glge6n;{|GKrUeyMRSn)XJ{mX*caet`VIJt=gIbHbHdnsNaK-q~vqQYu9Cz zxO#}M8?k@%4wpW#Q{09&cE*VX;XI63q6GZrc?um@)7iU>GHF(!lp82%7hyGClmgA; zf*B8W<|R3Tdjb7?(jtC{qlaMcajzD;v?gPZCEKkqI2RuAm1$2lcI=3!nJ|ik+KCe` z9-0sFexc1g3o~Dn3lZ`R7^#)EE30OwNq*RFWM(1aamKC_Jo!YSTN`Z+Lk&7WITkFq}*`m51Fhp-u`V8}teOVRxUW$eZHw}GD> zv^x{{Zlz!7Q}@(?T21>Q36Jpn1N9S!cPTMgsWXCLGKj?K9P%Qs^}I}qY63xdxNCgF zVF0DS(L|zD@dK=WXRltx9_uM3mcWvj?%q3LJxyI9q}EoGcz6>pc$+S;+N7Ql6@Jvi zkXyKg*blqVD2(8qM!EB~%k`pehwU_WS4pYysSlq{Q2Q9yee?i(}bT8sYV_F*uU-}8r zqm$M^*|l=XCg#M ze^NY>jDFkI>6;4wm8~>IBwcKc@TVgT$C*kWfIC=$vjC{P!xu{RW6g3&-u-y#e)|*%cJm43yoC5tDb%{AdF3M_S4$_UH5P(gm7CsDYUp!KVve?EYiay6=8Q)d>v= z-IPs?yGb+1|7SxWCNJPpD^M#2*sp*iK(`ash*1Rs`D5#b=iR|d^}xo#)u|K~@u7?n zC}W8xDcJLT`&!3;pl~(_@-ULFv{q^KXF^wJk)E4K=3N@)4Lh;2s`1tk(@5>CIJ5@` z=gBLJBD4c?FTCCwfB{i#D4(!Z+irG4g4709Qc&kS(=*}|Q!w#F^ag~RwzrCm`EKU; z0AXy3Lt+oFT>#u$J#|K$pJdXl;t~C&OU)seDMa&jzD}Qd*Igy8w?JC)LQjlxE^nA@%;#WX+tX}b)k^fr22|)aD!TN zuVpcpTUPB)QCoychz5&D_++08mNAJ(%QYe!W21oTw@lum?)0kyRyBS@%`4=iB(eY>H0U2f|tl%lf$QLEpnSdBZ7shhm3db6vyqOFt3FDvx*Yi^%xl)!HA`Oq6bMkObOjxX^d0z$9zch9RJ{DY+oO$BFN z{Zn=a;rwwF8b^Exv^m8L-&zaRpx+bQ356w1{G#DfVrXu`-EEx^DZBZy2~qVwVV3P{ z0l#Tl!_2Tt4jEdz(b(M9mku0JXSw0#xR|0H$JHVf2#~ z4UvF#MR_qNu*l&&-kF9|kTI6Fb;neryon)B~IvbM&Yh*l> zNXX=y58jh%#o(^$GCk9u;RYepw9<`Y(fA-yKD3s?J6t|+>EnVsrOYmW@H9{6hI~JA z7JE*gd1^z%ke8Pb7unp5xD#dNN6;L5qarVT>^CQYQ!KGrEX%U~>F?;>?kp?67>DLD zf96Sk{%$g`v1{T5j~JRy^@Mg6cl@FK#!M1v=^(Yaa+n7K9Q_ea>j zqoBCdBmJ>w0Ol{{I@}COk!W_PF+aWgO**1=p77E&9%BROv^tL*IjCy+5!tO+4L40P zd5a3vgNp?Ga8lNqUVLUUd#uhfWUy`3DEN;A$l|yy|0p!BUCYarT|kiYy*x|{k0i+bxMpHE8t`v}&FJj#Mk`+Fs6PLqK+~Ae{iSj3tLqz%gCHNv(H|hqN zc)?nKWJPK-L2DlJziO(MoLwLB!LUI>SFua&GS$WurATjb`lt_~$tbM^2=*ozHJ`RCZJ@$Yl4d0#oA1Kl1g}p5YfQNUJs-*H$%1=#uFYXI^|sa*-hh-dx^^GfD-c=+a-Cku;SE!18Y7x5vlYsG#$)+H;@s z6oMce@uDn(wv_aPmg_zRts~zLISS1^VlS^f?wR_cO8D0Oa+F|%;8<*ptn4^$jkvCM z{Gf4QEJx&pB3ig{jo~w{2?TGeN!y9SO7wKJuPfdgY93baHKu)a`B&`({tMuR@E*Q# zKwFJ#G6_LPX_(rW-0Np{C%1Zy++(OiBH=|LhfH=_j^$IAhtM+l4MwpNW+G=!evQMe z>giQgalLA>BYgA=cy2)jx>2^sP$r_n@ygDqrWrDde+>N-yj z2uxk&_i>Ml6$cO?wMHI%3Z=b!0PCH5x0+mT+6tP)KAMWni45S z{)?@q*tmG5T)S!L$mlm(>^cNV*!AIUWir^{ouY}qhgud$ij~i(6AZu@-o%!s`NTZj z^G<0#4CeTc8YsDJ61oQJ#+f0MoFM1+zoyaLx-9E$=BKV-mod;73`IHP*1!Dr-Fbe) z+=~hNW&SGBZkCVWMY}rxLS3gp!P=+7aCA@^W$kwC?hHhZPU3tS32(-;ihCZTfg^#< zE+_F?Ff{PMga3AU*VkbQ44~IeUr>^PZ&Ju@Br8cpgfw}NCJJ?M{bH*3FHZ|_>F8CS ztwtMkBD#@`sUZrXa+f4I{QewvSK9s?dJ@Mcf=~N~KA#pd}gSs$&(O_z3$DvGriCj!sf?QrV@X417aio-loheP3-$5y5998E`l1hF#G)k68QVWlhiu+a z@8g;~PUaFH)$K0tCJgqgrg;`?H%oAshAorK`}&Hd;exPc8_YNQP0W{b&@r80@M&GF zHiO&{Qgm|{u-scp{S3dwHDgZR{DG z2b%l&)a}xQsk@qC<`R1WqXM;>og4Y~;a~FlIF>PuIl2j;4%)9hNM3&0@AzO`mN)2V zI1A&@Bqi46DzR|GAf{~JLx6H)HYrr>0@V=X!Fl1M&89j5rUK9pdu1Abm*9A&tp1Ps zz{{%Q#QH%Te;>s+b%GA@MZZ&*%fD(UiNz|#Do1@Bdz@8U36Va=GG*o{E|SciG3(Bb z^?cQ6CP;nxu}Lp-Tu74ZLGYiqP{DtzsD8PbwDYzZuQN6a-B99m z=~=v}Uv#S+>zUmr__P(qo~mP!Hrrw^kvxpt@%bQ+Y;{o)mgEdqm->qfPXGOReB_0# z_aDw#JMgj7QTYE(xt_eSO=Bg$N*ggK>pbq1M z(m@11E0rS4yJ=2R$zPT}b!_Pf8u>~r`77wss}X8z8MU}MOYe0oqC&HO;gNZcPLkz}GR0J!9> z`>LF4_msOj=kF2zVsd5d9h=c}+OA4LON-=49<~w%JgAwIqr&M=Jr{cfNpL+SD8y&D z(#mA0*BZl`pGn;e8ls{(5vXrPt+;XN+g{+b^A6>SH+Jo@!4z>$4=ciQDuvASo^ZRV z?8NrCG_KFf*;dnZ%eKhIQ0}Z?hEBrg(cpjTMeJTq53bO9)9#J^P3@<{P;g@U)qOj2 zgnnBp$pVdv&>qD=^>%_M9r^ChKTrtqO`QzP0z&(ry&B22vtx4k%YQuoYuR6@PLu-4 z{R0JmMrSUeXQ7>5#iFBa^ab?&Ba9$#kkyDIX*ee5)h)J-{Yj^?U2CIRPtQa{A&yYS z+$g39!u4DaDN@AGptc0PZ?dts_VGm%olc-yB0ng(P~nm_FQ~V*@+GFe`T8P=dGaH> z5Q|xO+2FSCUWgdj6j58zO2_A}xTE?yPS_eO9^b~lWypa!Z(=+j_>!`};X$CLk@z16 z4R`8@68^poRcvIrkJH~n=&$4JX30B}7ni3b(DS)X=XN~Q#jUg(4&T3p-dFh$SF2{N z1joyaJRWZ4K9>aYN=`!#&LJ7x478>u2fN(ZLC}$?so>u%d;o*04;HG)1sWBFY(3kQ zW#GnUd=1bVA6P~FNvY8}%X@KsiZ)!W#-0f)I)p5b@I;TiwzF0i7r&+L6>NO)_gb%i zvo4a}LUS~XYR5rK5H{#^NU^_W!~tJ|r0$)T);;kGd<9fgqSZ#Xnpa@3_8*u}cw zE(DzP_WHkTa?Tda4zQqtfZdVv+yQl`Vz)K*$tM!MU5?cF0| z%*Y!v#!B&RVyjrH1r6P=p*vFPBWaly5P_CvjQ_RxFG00_YjRU!E5`#@P}b<+&lR6UHvxgMP9n9d|FmbTgHZDSUA5>~ zT!~q9>pW&vXLtVc8kV)F==(vc@ky8uwB|?@0LwPE`SXCE3Z_S0*nD0MwjN|9dT+~u zE-l3WrwT4WM!7zTsdj@QWi_D*MMpfbKQfoMnVX`}Z~kxxNZDE&OYp90{h7-?Tf^00 zAfsRgQZPdZpk2c*JQw7bs7~q2D+J~@4`88s%GS9mttA}4@dg0?i2e)jaKJXMLZ!1mu1hA(mfJ5ALgl=LBD!|``5IE5Wag(T$ed-J)| zW3)1cRv<=Cg>7&WN|?KogRthS54!c0m)MtPxx_uZ6fxkV&f7_Gl0WPMmQlC=3Hn7@2AF=WxIr)h?u^ zydXB9vE#jBD8RA9TFnagCf!)aST=^6r^1TXxOPm-!voAG^qsSUK_6uik{8Vje?-FG zU-X54H7e4|4ggQ?`NhbVLm~+SMHb6>j=V&BNt2okSfqK)MRR<2`*yc-^n@mWw(i#n@7LcJKqd_QJ4d9E;SDL!N>3ZwuVM>u=gosxek`s3v|YsO2%*^ zqQ45)`eOrc9@T`o)J)zSStE&}CWwqU$M0n7rHFKl0dLGF;F^H!_NSlu;67ga-UU0UWWJ<1tw0BQWkEXtI8H}{n)fu{ z%dt8!I6{UbseDOeF~TW{Tfxbr9>*0hIwOsf&*r%d@ffWCrBejn14|dS%=UeE*dQf2 z;Y`si)!wh0?tSCtTa!RKFNUs4{7~vIb)(21Si1`CURDcIw%wxP@SA#2HVI%5|Kt zD<8i6G>ihUICH1&n=?ed6i_woE_n)gIm(cmO?oYs7H`acw0~{&eK-GlUM{Q<+@~D4 zNA!p*V5-+R;qgm;?P}e$DItk&?s_Ao$Pvm*NZM3wQ~QYfHq7)=UnoDUcF5Ufl$Vtl za4PUW0)jT?zmM30YSgx{#CH*{y6(Ve2&B zUf(7A2dXS0?JCQPaT|)dhzgf*%BKhK`CJ6_qVEqRgPf#XJRjkf27+<7Ztj-#R^8@^ z0PYk6w3~hHMvk~#iky46HPgr5xw)~`@Nij5Ihpl~ z)nKp)2TM(XtG9KccTnw6!d@HZ?Al% z5udN{eq_z1C;vb%qERR+q@aS!3hzPau*;QZ;5=R2)T_eFvxO6|RG_Hb7by{zLy(s~ zWU;~9fTyoTKbS3R+=NB32K-J_qUg|;aT{_$4LM^wD9V?NO4sAc>kA)A=Lu?CJSFW; zU8<)54Kgy=*KH0ME$R|z3pwDo@6>k;jqU3=fj_bFN6IK`&bL`>Tkxdd{S4>LJ3s;v z8@pkjnMUaKT`^FX@^{a2fMD4n=QtTw%N%C;K%j3C4V|@skmwtrP6HvSC;m(H=u$RC z9lTN7^OSWdW^Q6YERu%4y?elhH#?y+A&6O6e z;l`qB0!oGzT9I9;eF=V3PZ~^%&3u3%<^pKK!ix~PyAhX{qO%_#fJA`uPIK9WvT}J_ z#^Fj5Qru1-)GFN7m=5(hQ5s(?7@9wupJu&s)O5BFk46;0t7?qc*LC(Q@_nIQ|JNsj z5!%=d4txN;{-_6KcwCRQ#q&tZ@J)Z#6fJ#45OA&JljB;% zktT~6TYO-ogvF&s&b8AIA3d_E-^0Hmq~Q?`MrZ@pDm^cx-8D)a)bPgOf#)@wV$X;oljxCZi+5ok)oF>Xtt$EgG<*52{m9b19p5+4mTL&I#=usYty( z{lMozkWqss9Co2r-5$Nr%jrXn!^Q#ZvqZ0Rp>}XZP`4xehErsSCzqP*=tgo_syYPe zyN8dZ76h!*kGabe(TuoLaNk^&npr&s$1^4i>^=+$WmasMTh!3gWxDPOG3Q)WhVBUu z>|dyxb5vUGPPW1(qPlm6;S%(EV&wZbk)y{@Bq!(Wv44#JOcPWoqC!?STfbeM z66P_jy*$;rV_X22857gI@&herMTu4^a-UINZSKwrsIve(eL#Seq=H08tZ>skK)yQL zyY1+E>iwhjbGL9={HN^C;xDfb7tJC6;S^0bFogbV$+U+ZXm!@daE%OdSXnKzHWQa` ztCVr5UeH?+I-nO`U}%dKbpau%15TNfeonN!GX z;K^`|4UzR*ToB9_Q=ME^_n7&mQJuWoVqzt`zhI#aP;QaBHTQFncb9;h$;Rzz)HHT% zCVfMf)YNA9^h0aa%1(v#Sh<2X;fcrXgouZO^+E%Z{b@=|vxM9}cYvGb`miI~_dTkrGKg3DHmZ01XJ4?VOzR#qgNaD29KoeR| z_Y3gv24YT(F_40V6+*jnWo`VWEY*UZ;`W@n2WiEF`h(`FNze=RF}_5fG___yE@GV( z7n?Y*eb>fLp!P7_OS;!}z2Gc?GU;4JIMBnoiT@KF-NXM|*Z+TVqB_q{!U$1u71oM} zgLbPsmeW|cQdWW#yoWz817Zrgp`z0s7u`@?6!&$Jcq;0quWXd`k&xHtt-e1#Ef|5= z>#E}2kIm-@0=@<|vh7@F%6H^LBjJ+l4o7#XW~=k^jP-%~9crrBc@q4O<`)aj_9{40 zo((z48ll(DU)5AX+mVke80GXRi+N;QzRh^3IDE`A-;bA`Rpd&?PsrM)aFt4xMfYj^mf~t>1)-wX<%?wFQ`bb)KDeLIfD#3XIAmOR7;y~yeD}mc)K1>h zK6qMo*dQd;QHKkt8GYvd=1(W8IVA83KP+a4wbA=hwDUX9tN@ZqdP+jJ)K18^gYHKW zsakU~tdR_B)3&N#t^qmpm_cM^-{pleUCJBi})oxrSG|z=7CCtubp=KUwxO`%=4`>QJ1zYZw9rd5hABmD)RVm@ z4o4N|4!e!;1MDtDshoG;?<%z>v+C3?w?4E#{qO@Bp4%&~I@4&*=Pn<%I{`(`)N^_f zWXt%t=sof+?~8?-S;wh*>4WJhr)#|Dw7rIS{+3r&IF$HI?TM~}*4d;eUl)ESreg!w zcHpDJ344>Jq>4bg0GWcbPr5K-X##eDDHwbC)8JUtwtg=V4;!h$RoEhZ>dg)XfdCi zaS&Nmx1QhJE4V$kNg{7=rj}$4PufVyVCDND$1C)XmPS^T z|3H1*eau;`g~S0sv^09qd4JaM$NYBv_sGc7ci7e@X2J_1vyjR8fC;?nz9=thYL%k3 z>PaH^XyMoOKAEbbq-6CQeXdGlhhX&8hx~`gVDWDIFF;N|IJCB_G!n-)iy%5Wh&<-{ zLwM%E~5MP2ZzwB1-t??DXn_MkEN2Kvlus; z=@AghOYQhl$+?eg;9nQB!1u+#lV@F&77l+yCKziLMs)Z%^8|_(_eUkk&?a>wQb8`Y zZJFNvuo6>Z(c)BB*7_&nkG2?LSMhzl8Irn=;^72`$TM}7+$6L@M8*5?>1i@EbH%^u z{lMd2?B`8CrM>n$`h->6TZwc%Pgt0XLshW}7ddrF{!Y-~FuUkj)P+7PhmzQxAyX=Wjx z<&NC3ML|%LXo5Ve^`?jFtnwKo;y9Di0vVL5boje4nhoGF_t4jc7@5zD9&ST#7TO|6 zfwMe{U6c9FxAti7IBnq+^WM4v$O$1wZtg>nVH@}O`!mBDsJ(e7>$unioQ?A<)d9MU zDl`F|XS%Y|JC^hGa9&C}nmD%m2rK>qUuZt%2S0s&NVf`khN6fy!JKJKHV@>Y&7F^y z0*Y&Zb(w9Y(+3L>`U2{=QcBxzQI3zbhrXTAMW}HEQAaCYY})!jXyIxbXTRds)RuhD zqd#I|jJh0E(_TY>5jx@LS2?<#pxq=7x!fF%-t=$W`V`^O5b)+>?5+F}&*By*yP#B- z7XyBhe!kFBj!wHkTiz%?(fu`8YNQ*&pY|T%Bky*ca6zJca+%KG^)ZqT;0R=90YpX| zn}RA}iH>eL?;at}Xh^MAnu;ft3zOGRc#`Ig}X_DGDA_f86r^Z;GKlV$eEsbr11mygq9U>fe?a;I;f2nOEej*2M_2=3|jS=aBzqkDoK4u+A!5%^=RVAeUiJ ztM07Iesta$1d~E!P9b4VEb6!Cfp;&d&G6~)S}A+n+6>3QyWe_tBVXE>b#KhoNlY>( zYt*Lf_&EA-3-F7|T3kIYrH$0p1#;4C`k&KRdh5TsKXpX%J7raymhp{Fzg-fSBT#t_ zUsBjM5t` zL825Q!n)zAAHmDOgAOiSEv+8ge3m_3Bd*p&?x2`LVfQ$d+Uz1t0vIMCCEzdBP}#D* z($?r!EGkw=?2L-^dQYS4`X7fCjA<1Db64a^%vcZNu7V<9|C(OCLO09HX4PM#W^|e|lFsT)$tGl4&2nYQnP@Z*TooFeddSQ%6(B2Ls5M5}4Ryo+!N6Nx zi~oK9Kf-D_0A7oq3<9C+W^?11FCwvcXp0ju_y{Qa6nF;ktE5%eg!g)qiM zBjkQL=cS8Q8g&=3zG>W=E!Az9*YStcHpGIah(x+!rz(hFf zau^mw(zWc%+PL&T?O)Kf@tw`5yWr8z9%f^UsMo!V*@Eaqnj3bU7z$9^3C}Nit8^=a z_%pM@k!Xa)5fl<>5y`V^eGxGA)r00Izj_C1{{!_Wrms@r-y>3S4j^B}lh6F_^ETcn zAes*jcj4}%0!cZPJ0k32R^U0ktKw0pxytU=Kp;b%HXj60(~`b7(3D)Ak3Q&DP1|C6 zz}@z$y4uC=-Yc5T`DJ3*wVIP94XxCMUX^8nrG$=7@A9LKXAx&ey&&J zQ2Rb6pni9)Z9E@JfD*MKz&HmuK4Ta#bfDWt{hj11hc=M?HevE2={dg}^UKRewRge7 zU_J)j84)@CXmr2N%8q6Bp)gil&P#q%N3Z0UL;p2`&x|K3s1M=7=Ft*$)4#aZpr{Uq zptPJsjK?+emxa*A#3T@dU+Ie?Nivj{X)ltlJiBzE>OM z4-5^m&)l(2miUt|;akf3F~v6~PSmBxf1vWKtxp~}2Zf*dNfJLBQwm>BMNBl+=DNQ{KC(!xV&ei|n}gQaWH)8Gz64KH9aHf3WrBW}#w8qUgpv-> z+xfH9%7ur=-tOOn2k9!{(3^(-BxbAfJ zNqlJ3wmKp!b}Tx7YJT&?c2>Wmlss?q?^)!zc!dJ*Rj)BLjiiF29>)1ATU;yE$IViPgwAW*v4Ne(3fehoJDP9}IP1mbUb%1QNV-{k{CKoZf{l zW5VciU3XRA^S5491t{GQ9r4*$U7fR3#Vt^Ncs0L04blk0-BL}Ru$ffIpeY99YP}U# zK%%`33=&i(e)bcOZ2#$Eun7Hu;aLB<4D3R2NWcdJbsnPxtj=9IV2kw{`tv65lXB94 zVTkDZ(*Hm_BX>KXmRcubfXqPpnH^e<#cM`qBMH;JWb{~&-&(+Df%3z%2zL6q1Gmn9 zBkhO&^L)e+E0F{?l3;JQdLg|oV<)8N)9>2z)f33ft*aB&JLz?tulx~~Q;3530656X zTH34Rw+(z}Va2%V>Dyi3qS+x&5y?Wr_3MX~3h$huXtqmaFkzVU(IM!e+>&vftezeJ zJdjllI|M7L=V3)&(A{k@I&%(AT+GU{os)B@P4bMh3<&Ux z<@Y#GTWd6k>uw7(;qRrs#J5*GGh>ceZ{G0pyLHnT@#B(YrY&2a>d{2m`_C?Fqw~lK z$GRW7V@)f|5Sg9TX8$S5{!sFgkj8gAp1FYRG_n`k>8;bM(O4@LZK8WOD@oBDQ>RAw zrb`|6ym<`XLDvVq{FO%YS00`T0?5NXFa7R+Obx~L|G%(gHy0iM5$wTpjljys&Z}V9 z7UAN03AYyIM5J8$rTS>WVuiJ8f+kGx`w1LvElejYpbivW#GJJ+y|QZ!&su{PcjjGV3l#g) zqnYXQnIOn24oQjvHIK?hB!>HL38fF%_SdcirJK{xA0O%s~e`nfXU>)7kbwKojupO0!wEqxJBx`F>{K7a*ywttNUA5vYb$S!*? z|Hw|eCJ*1DKO=Ll&JJmbLu-ozX9A&>a{4vgQn$8box-N@9P zHMGytQV0$2(V(IbJj^9lxKx_yWfe{E^B#gkB^b&`IJu_vjZM~szD=)lNi~B>lX#Ic zTyT{VGGBb5+_SSJV%b)#L*>@TuS;1Jzn1SCfJg>tEy0^QQN8BJi6yx=r|-Fuc%Znb z#htcy*i11R1d#i(b94Dd7+IzyCobG))9REGxw~TdcA%&%&r#`ldk7>&CB{s?UR+}% zMGa|UvtNZ)azU-?l50(ses*K5DpI@5yacq zm>D-$B$dcg$R1gC%97Vv@MzSJJs|GQUph|{``1mHMWxtEMmk(x)Jix$k}B^LGM^Oa zD?W05Tgks`+Yi(2e;=Wi$8`a#-rpx9Nr88@AERRK1hg1R8VRY(&%G7)?K)~VkL&qdD zvMwZeFR_q{6Uus$e^`r z-RWskqIL8^iduUo*gR>g9sgDQE#mU-kp^#@{tG!pVl`Ce$D+Fw>-$~aA!Ri&e9_EB zWZlgh&--`1*h8Fv+8hmW7c}BfP&u72Z7NQ`}gDO&ds{)wr?qLACDLWQv$k(8+ z7YQfae>&&a;vBrXx>c|Elx&DNV$C)L%A1?{LVr$o{ZU#i$4|^&?Fju|Ws>vjaI2~3 z4TrXbd4^SzzanQ)RhNsAl(C^{N&!2TJK;1(=&iBJu*+okk4GFln`aYQXqN_J3*2POz3CZu{(2PA4U-OYs<)Gk)~ z!Z5`7^7ZA-z8rKZ71?A&2ahhkB_GQ-HP5UQWqFoVy&iDW_eNWI(yuAYDUkDAaTalT z7z~loyX^Qm;}z|$W<~qJ1T*&B_biDUgPZkqf3IzG?d;v@`TPp{-#i$O1Nz$J!Qdm+ z;WZT6YP0hPzozA_B9D87o^#hegWU09MM$8VEnOsC+kkx`#t~my^(~PsmjPWO%XnVE zNUT@fr^Vc)y)#<0!t*e3u5sO zMKMNl5rL&1qE6;3Z3RMDJ!=P^q9rJ53-uJ^Sd$rKmx2pxC&jZNAc1=ZRc#O!7r#4t zRtF=ue`PthsB7TjO^c%9HmtWZo07HLE&nULrh#)>E66X%8_yd8G#=7agvW)$azY5C zo8k#c6AKS?!JL-<>My8pnxG8#na-n3QHp{yx+cEJ37Qk3P~8vWTiPlQD&mTY3bF!l zPKpVMwlth;7j6B~rk%m_$43n!ZI7@H{0BeJ>wF ze3huWRKY5k3pgs)Aqbb9G}^1&rn65*;5HVFdHeRDPFwX$3->#lX)~J&@Ji=sC#Ls` z!>y`fb-^U8_Q#KPLQ82o@chT0L?qSvHTcm47YVuLcun; zKAo&(aCJ`*fZ|YDsi9^z?cSQJX4N1WdzFu!&JAohJCVCOUs=%ont#DP9_p?Zb-BFx z{G!37^sz<=VL+5Sr_E<$c9qDnF82|TT%onL9q2v3o(*ixj5yxk*W~(k7H5az=x_Zl zrn1}i@Ee(4GW*)pCCYx_B~-(%b2&W#vW%lSYD5e4l*mq}Z%~p1?*KG|m5}2_%6-px z<@PTg9qY$tpb-l38+Qm|hCJ|Dc_v3;t8H3zLR2>3uiwhy>oJOUf@c{JE{oWc`OLH* z?jKmof++8z91;V?>w?(%`CC;#i1k{WCj4$1&itz;POfV?VbDxOy{$ZJX*S!x8IN>5 zGEsaqi7&{njXgE=k7FCvZbT#BSV*+aJFXCH|0+2o?yOCyy0Z7=~2QXN1=eb zZJw1kGgkY=upu%TqQROUOx@73yR_i(H8M%M=W^K{2E==Exu<7O)AUKC0=5WquoxWNUH9=!C)6cp z?udeSn7ZKUxh&p_(i=UOK5~M_N8om%v89UpFSxHkGZBf@9wZLP-LBJTwdMF>K-7eO z=3$tI7Y{d%xf0!Ovy49RVKC6MGIebtq4xH84(Z<^q%XOwoZzT1?Mw8&jY4s>IRbay zz@6_x+N8%cELE+}j@b$gDTOR(1Jl+ba}bMD6ziXqQcmizgDmL|LxiV$HsN}Q1upLL z3A8DR2FYHhu6F}jO00k|%;1|)U%#c$-<6PY(mHnolu$HPRAIbXoetdR>(Th+9Cleb z+f!u(`pQ0#wFts@q*ET?JL6BmGOm!iKOVe4D)|^~bo;$klV>JPM~c3u3oK`X)O+;R zD~aPYpHqnf1!Zal&rZ{8NC(8Amk*kafm%9$r)QGB+k{?!iHh*P2FR)@n!*ase(`Ab zIF&i~vTNM2X8A1>Qu4=)1vvwAYsLQHda9&?f%}5$ilvtI$Aj+yU*No@u#O?UuzJa@HdSF}rqMJ2fMnDO`o`W+?(x z3ZX;5G})eo^pBJ9kau1Hp01gjQ`184l_lis{+)|vvw*9%Q%8?drj^H;!zkJvp%6LU z(+0Q$O?;T=U(4lqmh|zX{^vvL@al4c<5%DLUpJvDcJP`<_B@yF3YLQ&U|0KPhr7Gv zKl`TA@WUU9QI%S@6tTq-)}&EaoKss^^tMEzA4_u&d;6L_NqxPTt?cYVxDDjJgMZvh zh<$mAxlz}XF`ti0iZ5ondsNHK?snvT#zavCC%K@&i-rdN&24wK{kv;UhRu3^%J`u* zEnK1hy%rD{?-@-GqwQ|Oi(?=x4;e)?M}tXA%%WO-@~E`!K`4`YCi3RchFtug*x52i z>35YMaH=}QR~T%UBdt7@sOT-}5i>XLaao-eHFay+$eVSOgE~Ffh@QwgT7G!|Ml0~z zL4@(j`5cV({6Y<00CHa@Zqyo3T?rm4GyCrdXK&qiIE7c?0ALlBF5XnJLt_({T15$K2D|DsKi*@@e^l!h4Q;Qs^nH}9g9pyc04jJoSx z8AG<-TZp$Dg4UODu1Rm)wRS-9)QWZq@`74E#p_mS+%sgfnK8Nm`&ym~p7x7HfyA+4 z?qLDnX6G^b_eS+|f)&3`?MDElIFBbp1b&y1(pW-Y7#7PHb2UE3^j~vFh=~u)D&eWA zuSB5E3Y%AtOClT>B$tJ!2|$?@S{OXuyfj@|ugvZ!5m200Y6><2Bx>iV;BGq7e()v# zJ@FLrc)0CNRG+`@|MhQ-isA(QL5V;V@3LJByK-4RLpp=SNLx%%Q(SA~{#mt>=;R)9 zjM7P&(|YtwS_W8K2QNrsh`Q0CreoxT@~k*I(wu<^!5*0$n0R8Ot)2%F6#@e-g9z&Gk9R}~DSVxI&KsusDMlBL zZw=*U3Y>#;PM=I0?^KcF@Ssdm64HW$ZAwPzPoVJ{_v)@WO_ae^7Yc;@@G8>FYXbr| z9b=>_Imwx3kt&~OtOi)g^pW1hLW0bqPeYz8JjpZZ3(V1l=fr8;{@Geq@hnYUu`AvQ zmt(EvX`xl^gQhoVuW2cJ20%IvKMq4v+M}j-IzsDTQQ#1ATW%|Z7rwciIHxlUZ4WLS zwTN&ToN~8%TJc>x09+Q~i=kM!VX(Rv`o_ikV0}A`9!uTL%aK>9Ld9#s^{%HE&C7pH zhYUG8dH%CS1AhK-?DjO^{F48M`*qxbNHhHMVW|1gTyN2>KpkqD1NRa3Ek#T)jFlR> zik2ITl4une)@L;I!{05&i2}9E2l48ufTs!C-vgJz|0wK~?ma^+(9gr#E%I5}gKjCm z9x4h_#3rGTNcx2NfMRbJZ%(bOu8|;+%I=<@$C1+YlQ7D+)k6Gt>CCDhAE(=Mv_+)h zPcJIbzlY;&S(aZMZmoS-)S6q)=H-Qd?Ii3|9s_9=?iX)o(5RL@4HYK55ET3O zX}RA7YnQu;3fR&*kRu6W@`2%8 zJstrj6z4RH=(c-XKiseG|9Qa9ttSG_Yv>VJ##T+s=b_egrrA)E z2L7V>yLb^!j@vkmk*-ZMa8_8$M6s#C1Rv#J(XfS!`q8w5zrV^EndHN5ksvYNZpcdO znMrAK@%wJHzVw=|-AJ9_(v}mCyQlg%4+L1#b!D8lg}iS5*sodf4qe98deQsN7|!>2 zVP#fy^R^#(dlj-m2^c3XxOe+}w_}p-PhS%Uu6y1nEeB2(h(0wh3@SrgX2a%2U1{Q~ z@_lhKf0gD<3n|_W4Mgl!+dXE2Cw6M;+BZ%R6C!ROe9iT4V4Lo!C&BYaSvw9B&b^&v z_cK*TRJ0Z8IkLY`9k>Zv_rfFF&AqVarPxKf51^A%87d%_|9nKd$d`X+;Q$d6_Y;I$*=DI5AH zW~VxqI-tx}a|119ruewokd!WWn4FX&rb1?;fQTACZtPk}%v8fm7QqZzU>M5#!^G}h1u6?ftTSZ30c2>c4>Z% zC|cy@Q*6$9fn?0nP5GyrSG8Z0!@>&|jihcTG4rz5S_qrVgpUhkKOPc@TSw~Tn?lQt z4<_MJ<-FHaWqx;EJ%E7kccUQF=Ie&3H%D2;R0*ECOJN8zmnZEvZ>jdLbT$|hz%SpM z!!>(=>y>i`u*SX*n9Ilhl+CZw-z|SI3#AGzJiQ|6=YII5?`PHlZTvieX1B4i zLhX&2CCU>R+jB4+?>mJF zbmC;W4M)HCh z&0U}WrwUU3qY4uLwbgeH+eL}O21A@wMse^gf|3y9nxdu!CGHWj1l~U{DQn(nl6V0j3FiU{chC7| z8?JaRPetTY&A;znHCUWC?GPY8n*zNAueQc^>+q=?=I58ygzJlG_MHM~?4P|&nx_@V zW|u2n7p75K*!72%pHKSDKW?-MgkKAwq7(oou(jarm?_!xc|;{wfwaP5$szH|IcG)i z(OIB7bqXHGiU{5&m0e)&ShKDz_Z>z!{4NygnVAZ2jkqB_7HQc#Vzm8omFLvYS0rD6Wyvgk)94sdEmb#oW&-&QkPV>N7{wtcA5!_S0YS?h7=o%^J1jJJXbp zIA(vwb6i$j8{Q3^_}YsVJ~2aJ4LGbKQ88JSC;8`fzvCy7)%9R~A24^;2cMghk6%^p zZUKjaVk$OU%)d6k*CRBn%&y*oocU%&MzNptW(v(JKg9059Us;`g$ne2@_a=xzbCre z&5=+z)oEXSZY6aYT-7Ug3qGl2rXPJ~9JS*Wy3=fCPX&)vW;7!{XJc686y3bKq=Jn8 zzNYlv;y>8CWGp}4tAF%ozuJ<4ms6&(zk<7^P%d9;_s%1Up@BfgE`N7abSi2bjf|40 zE?f2Bd)4O*k_Mt7*ib}VBl6$mo>w;y3x*0Jk_JK)6)%-B^VaAq;-q&^PiXWU z5Dv0=QZT^ElmUjTA-mS!Eb=}GlnFj)28W6)FNuoLO4%zCf%{wXn;<8$WL%SbP5OqO z3C4tCDTQ0L3aHV>0Az{Vp1Rfa_?HC(G)52`5`Pz^pP0V&q@?LjmuFIUlm=D_h&l;MWDN3bt3>q}++o+WA#n0iZKs*MiB#`I>mTG#z)?N38HC-R#NX^bjet=GElR|I)* zavPvc&=^m};x}8n)Y{J7qkqvT_@Y&lE)QItlAQp~zo$muHM8%LY-qS0*=x=mCb}sQ zKm!0BGdg}>^BhuQl=S*)nAn9UIAC2T;@76|My(y(-0&Eo(d?sJy`XcUA-A_gdPiT; z>8Pg*tR(UWXRTR31hlacZ@Z|U_kHr~9wg&&JfVpGJ29IpR#T~_TbRAJfA}|Y!fob3 z1@}K>;7F}EWzebI##r*IhiU@(Vez&kKn}rJT^op)uzYY|wp2JW5QExX@Vt+!PEG`( z?3(CltuVi&Qm8NbL{vv>H)u(Pwx7a>^+P1aHm0O_N`gkgG4Av)7v7}VsbsL47Hn2;Go|>aA=83humyUOB6oAkAB961d4tw z$RqO_#AKCe0xx2C>8!%K8QyMWC)(N20USLmc?s?NmfIDs2iJ0pg+cPz31;`my{0jw zLBC9CYtc)*2#UamGN1c!?}6G@xoI|7@_&*PP4yk}YlgR}0R7|wp9X810@kuNHsTcd z!kNJ1Q+aP6CI^4uapwBWPId6STXsJug-gzDLbH&By!J$kFX-Z7zW|WRLuWA~EoSH+ z^lVu#3b>PAXFEQ>xPL1VNLirw%8<8%4~TVARQmP^0;ZCPYa5*Xeu^4*v_Y}o`v;D# zH}FzTftgO9$og-uFZHne?qqpeHjem!V0y-SORcCo3NM=hAZxISbZL0@MTG0;nV4t2 z-kSfE!j1l!?Eu}%S3qcMnCG*?tprN7r`@6*8f1xV#;Q{KtF##0SJDMc`WNWT{KNFJ`s44LY{8)0#>= z+VosXXHk8~>+`&r*L?QMJ;j@KuENQecli{!*1X^6J&c8mDdTE}oF$LhpD^YfyNp=0 zPya`~yS@riPwd?{U);WU`oyc}F~Rc=M++EEnV1j1u)t&HD>v>Qs`Y`1Zi=1HTZxIw zYdhqWhm1w4=Bx6G6FeMdr-nw+0<5pV0>xo%tjqk&Zk#xP3u^7U&_&(&~2AanlFQmA7lAY}*n{ z&&s=?AP!7yME{~lScj~|)l9apzp4PgChPjCISe7VW+& zQ2~KzlzFpHv$}Omxk&3e@g-3KMGcY;mO-mZeWXk~E8m+&Oj&M{7@|r< zzj%W30Am4U>SVQNtz8HeBFkQBB0u zTC&@eU~m}rjgRH@PkEpI29Z23eEj2K6tp#DrIc)atTK`;OcFpw-sE|Q9(IB ziN;4avQv!4BA6J4DNDISAsC0yG6%~es7Cr@ejaSBb<$Y9X{{^&N=ZvSgHjD>+VT)MYO?-p-B?JP%}RS;*{SeAxXf(e+IGeu9mg`%@g%5rg~ zf#Z8pL>KSW?>glbBWGw2Ux1)WoWM|55QL3ej}&-Q_3qt>+(c{eZ0c}fB7dx=Xb$q8 zy~D&)xuJ=c?htS$`5t3qn|i*XGL0#B(@P>YRNKM+Q{bfg`NF2!yE$W6Zz^Es`*%(} zh^f%!Lc4dpyb+P%_bI11M|;xm>iVE5)p?wFxF_vOaoR6Ub7lS4h^4#{n|j3wTWzPK zsz>yr7?n=jw)XS$3!?NXZT>-ZS%P!eIY|dXH7#lX-IGSn{YS_7UuCz2dcYgAnp)TU zd`V9?W#99B)XZSC^iwc`8E^B^>1%dv8a1iMIELZTY2|<|q#J&Or~3RG@w^^!X(IE| zg25Svpr1Y(dPG)Vf+igqS>dpixqjXs>eTCmar5jG>6&_fN30`$n~N`K5D=Y&Iv}Jb z28G1^#P+FPe*6X++^&#GN%C2)ljJ-YL^wWPbh2jHziR`ji?}fF+~xhC~3FRRy>i}K8-0g)Ik62 zqDw5k-I)W@x~H>$Z_N*kSVqJ&CKHinT0kXT#|Dkw>a3unr2TYzdMGWu$ID$xL}WP8 zlpCBL%v#m0JEOYsa6IX-P|L&lV-}MsMo}@s#cAXunP~^GVnUKXPB+^Y!+fkPn1q{P z{;j8Fm`w-Qe-*esp0zl7_MW%TsSZsQiFxuhHk#vB*rjZ>ew4z@ zu|kuIT&YO=G$nwr(C)li7R@e0_NaMK&l>W6^?|~?o#J1Dj>GPM^SkP!8~Zv27^mM# ztRuV*G-zwG#O*uAg0%DJXIac=643hO92YU#(20;Ex^ix7gYx2(_P9^K@?7;O)$;dF zo`SPamD4zchoekGW6rJ^EHr$81i%-27I@uyq}?!L&#pcE0#H5hIm|j|Cr$>*y~WJ9 z>g-mNEyIF^mF2I`-(?_ft{`F#g}kV~;Qpot5t%wjKPaj!u=n>L!##-|3>Ec_$ht-iOg!2svn4}FP@R%*}Qh_wSlu+^wzoJSW z9>7KQ8B2|a)+b%vyms#-#`$2(;rOy_T3PB!sfBWDdt&%qpNgF49U2UsCaVKC*@~Rz zYXet)exTmHDtMjT)flnf)H!2OW1y<*J55SzOPIO&zdY8e5&X$$18dikO8NU`|?Dg4~-dW*Bx zX$)0=imA5An8aP>mSoA`coKknHNDaVQ@0|hW-0?qaOfgon_b#iL4}IFt~W>0NmNPf zaig-sl$qH+@Poka^0=IFFr|;Q*uqm;hP8-vRzVlFI|}^`0tI#r%e-b%^Uyc%_n#?k zF;(apMWjWKf@x=t5V)68wA(aM>fc89xYdNz2Z=~YZC`Az?ll?Ria6epK&)*XU;e5( zCLxyQMxVXbUREe6leijMpxAiU*#869n5|zoD9zlD6ZF-JoC6lK%1Se`Lp+yENfCp-{A-CSW<$}2r@cTw+_ zb;`K(bVwpizP*a5DGkh2Dx)*m-O<+N^AFr)3HM~5iQ|V+%cr#cromCtGKa0ubxQ|L zSfN|9%6w~5JzC-=E+p3%skBuxbjwn9H~$~&>5OjdNR z^qS7%9k3(&OFzxaf4YEl!wq@tl!6b_XUW)OQ8*AXS`w`WB2-721J*g#boG5&-5wI2 zONG+q(2uxJ|90V;>>GIw&P@pE0+ZVN$%FCEbVsJ=9hhKnxQ}TiI<|*2&)z-O zLXKW{laxN=V?t=^ELMe609v508QZYF%2H(r>Cz3(Nk#vExm8ZL3jgtg!iHt6 z8V|F{v>vf@FTc4m^faWRRX&S@-}gx;)mOp&jq#_Vr(r1DU+WrVMB2ftKnDF{Ci-Bm z7!NgzOT9sIr&Xw1GLo}Wq5m+Jf2O06Q8-id5HVO}6LqS$s!X+Eu;rXPb z`2Et=6IqIli1n)`xi)3|yIJ2YZ`UVnfis(=Pw0ABuA150eW!a67S}k3IHawmP<&)@ z#zCp2mL$k!Yan-}pz0`-{#>KE_Tvvm#(m+yQ9J%&ev#n=CX*Egr(8Y4QkuhJ9j{k1 zOldI3PJnV+X z>gLbnphyR6p-p)RBFg(HD>TYG5eXEsaO#n|elv4LQ392RuTLKxUL(ZNsdiFJT^ZN2e^;f3DueB0Ir3R=MnhRm3DZ=6u(-qa{x}87RLgpOAs@U{(biA;Q zB*J_46K4F{#6|aMtg~61!FzFh^HBXEI^uf+tQui|{YFpuU|q>_%-7eu#HRi?Gw*Ua zZnj`XK7$dq9Hk%6{IjLAJD*tNPBUlU;HVPWtZ!X07VO&jkO-Up!Ds#hx2$s1(k-mc zZnFm-95zV+Ql*TnkRM%=u?Q+J+hPRBPJkB(pN@B=D;-(fWCmkguLX0bzK+8JnNkiC(d{cT9ZxrZr*Nct( zn4iNhEOzcst*Od_0ZO*F1KwzbuZu-4ek^MK=Cd<4E|+o0ClI1)y*R7)(}JPGLl?C4 zmflvX8krlJ58Y+be05X$D%8N1HExz3vP^}RZaeqijw9MumW--1cd(tDXiMe-27G)a zk$LG@jGVO}ku{-a+KzyrlaEH-rt8kfYJsygLGq>}z!YMtr<7Uut+p<=&acrtp`Zi2 zw9qAaT`O;e&L3V(Q@(!AKK;$CIA}fKSoaNPipKGd-fo+%l{d);0qC;8#|@o*nQ%p- z(%^Kr_JdIypH?URZ_6fdBPt&^6KRs%mn0M3?wV@qIA-zJBx{jqyBZRAoX?8UbZ~Gq zISyazaTGSy9SbrEjfQH#r3yowf##~SlX9Av_)7_|^*%nk1`A;<377sPc7@+o0^Ytm z#btdv<;hX7b%6iwt@$IUZ2wyBg&~suKVf}qwh`N9`wM_#!x5~;O{9lv1nCs{+>P8ZlyY$(Nav>DwWoI3|KU*hxnYmzoJpqWik*q%+a#+MZER= z_yIycS%YXbe=q;AQk8-#DpLSRn$vENLDV^xAWVUR)_DBIPHOUgG>Ut)^|7jr2dI}B zG5A^(W`JG47BH-SlJ}0}6_xP8Jmrm$v9sfU3H2RD*g-33vS#32`2F29PPjC9n@~v(EIO&F%1u?bAM=PvwFPowL8&zVTx7RQ5X#7O-uE0!Tricij z?K1|rm6Y2jtg_@uK^Qx%g&si>?wx1Zn*jv0SXu0L`|&Z7S#B3b5QtZ6*S<%qULa|o z_QmQ6r9?sq%&M$RZLnjH;NzrMex6%_<1%b)`LjY&qo-D6ygFwbb{($|YEs=w+@uGq z{!j)EI^S-WyHfwC5y(9t*>AkP)95a?2)TD~Maz{DO%!9(u-zhUT9MnbIa%J3v1;cJ zdH+&o>*0(y(KWmz{~Psu62=#C#TPW-ir8x!5NnwzyfhfBKdX{KjQx6fI=BxBZ5jzB zpH&E#jo-@sA|AVyN`?68tO!S`Lbz2UgQPb`5l%P@@``j#CUN5#UC0DyRhbO(lnV1XOj4S+g$m|HW2piGUW(b7pFq#44ccL;}#! zNH>-$o=Ap6&NUOpb4D`%W{dN61Xs*_nKm|^nIWNGKd|dT^Vik8`31aR=TGsPkd59h zsW38U)g2GnZuyX68vgeFFR_XHqfeh3+QPS>irJ@bX#JebZl`?td%?8Ukt~qpW=nu0 zRNPd=JE&y;%UBKOFG1C*uhjzGFe|6>v?rFDLX0BKKR$%*0 zi1}9j43O)5s7klwSnAw`TXKfIqwV@m%e9b1?O_kfaPQ>D9rFRY>9%RJ=L|6S>AOy4 zZXOl!iuHN>T#o#p(hB-}WgmYYCd-+P|DO18bAQ~XWUwM5--Zr`%+ zT;ByNXc0eM!c(KJ;g-SqmAmv0TFxBZcu$q(ZUpc( zO*8~J+)dp8SAN|*z9hs(dM~`3Y(KRmpa*UkuP%7T@1|v|TE-GyS~vCtbtIj_OXw>j z&+NGynKT^aJj=1RKu3<2!oI#Y!p9ObEQz>G>z*Luw`|tQ_@&}X8?@lShuSEM39TED z@?@p8ZK{GTSfT=T1Fu8?KB*RiyJjoQVkjyKQH=H6+p?OD@p1dRx33yf0p-P- z1?*?{sCijDNem1|Ede;lD7FY$5V=+@M)j`@17%J9ZqB;;G>mNwj3VJ8V#HPEx+HRH zQcf8F>5GOrI%U^LP3SChzc^5ag_Xy~Q;O1TcTlsU`N`l{`8Qlfz5mVJ)TjQf{qfUZ zifvoY!$wgpv&N3!M=Fo=!K2wrJYU~wW&nCgZRa3)3fRBYFX=T5s#<`51E;w#&PSv!V2&h`H3nrd(L}nJKkN$yEaJdBw zGW7i!zIhs1MTkO07Ss6H-siM}uWM$<1V>RhLG)ZIMf<&ls%fh9fz_=46WiJ^QyD(btuB$?g(DeJvfL{l?>1V<47uf-nqryq^cB0t^w{k||u@W))A*{#a z%%R{F9rk(&{7DKzf!FrLz%-zt>u3IM9dLYHjGpGc%;q3yo&5GTE9i+u_>CEv&q)B* z`7$@wgiMXFwgOK!bbI{PN!**##Md&&g`BbPUm)tze%?wNkk8>PE`RnC-U5kI|K;Mz`|K+q)3{?Kqk0_M_VM0Tx&3ft0 zX~PE^1I5|K+wc`k{0Ht%x$!y4v)-e59po zScR<4Wd4~_6Izwb^HMs?CB3P)PIsBxKnkXn%UE)b-VT>t>Wu#g36t4RUrP3TiZV|h zz`@#9w<)CCh#nGNzX0(_d9^d2|48@Mo-FBN>ttLSDNJz#7!hVj$q}({&0RJJTnH9- zyVcj{Q+4?$NRN?uOlciWw0H}>TktUeLTK(lwk~I)B?Z2WE`i6I zVZ|Auzn`3Jv8}$27fTV+KLrT+g!49|EoXM^t*DuqHQ;j1Tp+1L(=k(Dz4m6yrQiPw(&r zpB4a`D-^TSWGnNx-tVa54+d0F z)=xW{@Jb5{c-|tQGRmYzKbFnwCi}iJ*GNanje|tQ;Uq#mLY{*e+!>yXk{<p$gL4ylqJ6qZdAoyX2~y1UXq3bdXx91yYmpj&Sn}- zp8bho)9s6Yi4{+a+h~Vda$B?#1zYcPrGiAIYi35&r*BrTvO9de!i7-oF8Q3Ac-%yW zyL(xZ*4y$W7ElyHq@kWqVz%=woSl%)J`OS_vfOqW?A-Or*fmIy5$Kwkaj@8N7ZR^D zD-|{)eMu*465t~cONg6%vvrMQ?_M6%G3_F z7qAb}A#U}z`So;F?S1h(9z&^;bIr6}v5Hf5#`=THJAmKZEHgu^!b;R`)|Gp;a)^Jj zY}x1z(kANnYEMrpomitf3oE3*C+o?KBI>E)e5wn{C{?=Y7@y0zSwz=bc6UBZCq7M2 zV&uW}|rAFn|v=zlE=Qv+dSZ=@dSVVE+zkaeqxl=@aJxkjO_Mwxp_2zSu(km|UE zsK$XB)6G~{u9tCDF6>$G#Y=;Wf<3p|8tJMu<=vrxaM~ACoI(XqQ!fK6o6#^+*Eot| zL6z+Ey}HS;Zi_Rb(a^PobiQPh_ctp==ihb+@Z*MGad!cOaVUk>FkD7kgnqI>y$xk9 zKyX2^8Epy&TdjDfohl&-4lh0(v*-l=AGpliWpD{d8D5vWzr!FB$50PSi}6l;Kt`#j z-1x6;sYDJ$a-eWd=WSrV7 z=3Drbk5QfMjC195*@EUeP$v#AwkT2-WkuCH7V8(!)T9J?Zf}$T_^Ec+l%1u0F8GHZ zD*rx|2E9LM6-!HZ5ecZ#e323x%QaWXF5C60s$iS)l^Uz$ao(ERpHPdH_D#No%#P#Tu%TB8{|9-c;PwA8HW=H$5^-34 zYsKILIzigOK&l#(oJ=oIR2gi~fPoA$K6!GR7QY1c?XR+m;DN6oe$!CZsL4ns6dG;kwP#}*=OXYg3KwJv@bCQmUPr1z(!sXQTL8gFM zPA$^aoiNgyYCEc{A>IBydMhW3qt3morQ$a^bW67Nioix@K9bPn*UJaLQiC>u3wuB4 z)=9=k^i zXmb3A6aNomV~_}pw_5Yd!*OFgN6Z-aU=vPRkv)BGAQ?MAjUR;2O6AJ-U-v+9rTTx$ z#MnmMCWLxV3lZN%X%LAg%!m%M`?eqb9^-NGGHv*#;0B0!f;4J7sp8J~qG@7oIVyoQ z`YCZ8C@{*SV+OCQ_8Uok{YHd;Aj^L#r*=|QTNXG06k?Y3OneBNbLLs%6IdQPDWX|l z4Y{XfL`;h6%G@E}@l9HuN^TCE*!9kf{nh0-QIn!mX>Hd_+YXh0*J2WprTGW0a!%d) zvkd~=`E$9>7?rd8wc!EOtu)UE`b}|aR8B-WN0y!NY^_TdY#pjqlzoXB+;h4qyZdW~_b1?@HyW3kl zv$&xytu@crk>i_k@W)@v!`e)vV4Q5;fLKXcV4{pN>VZtTX{2q`+L^c8L#Y(`qHM|e zh1lU^8N_6ze5yAfDW8FY5}fWMeAJ0sf3q3)gqQbC9*Rhe9JVlzXEyXrUNYU(?{1oO zNy$mj-=Zhy3x9PR`Rjs=!65&Kkx*R*UsSbmJ48f&9FBz?vNuuJo_U@n&^q5>?<)a` z93U^fwsG=>(evxiMoA)XR4|$lP{<4PNw?GLce=5R-dKXCLd@TiP?OMAl{M$5;S-MI zEWw?&w$RLNm`w>%!!;Jfe>;Fb`+wsgFh0b8|08YR>3u*dM?qq)AFT@`9vITP^pzp` zvAwpPGcPEr);Q*+^E(yx4Rr-fiW2;106rUCiJqZ1A`5(v+q`aPYyEWPO10!!lx@(V z|8`xO;1NgCOj__Kg*v(5Bmum>j*%AceAjN#!UiFej*uyC?}|?!NQ-?7Hdfyz$GRIL z9a!MX>&dep3#wvGT*>kJ>>pyrJQ-O_Q^ETAw}%KT$_+>uj$G-|$)qMnVvE|AB14m7=)sY+r?u54 zY^yh+Gds85gVejkt>-q<0;N>JADkjM{eJ>=7FGvcR~dl+l|VUYtvoy%Z`ERv4g)Jj z?^S$Oz9>*HcMlGAF{$ivlX^b%9Iac|4h9h+Ht_y<1}03w<0R4xL28he>=ubxl6VHt z)o^MV%yd1yMdswsKft&p9`4zlhU4>>54xN9N%IT8?~mK?*BiApmxw|*hSiSl+i$iJ z;oz6|lnjz44s`gRqH~r8>jGv1oU>wT9!1M5ML1bnocH`unn+Ez8sx*%X=a|T=99@A zxObeAdfj7jAY6fgb(z70WGG-m#|Pt#0wSM+Dx2yDRwbncYcC&Bz&L9+ujM+*_7Fhw z<*Vbn(Vm02)HpEt+Dphlz^I%u4#%9lO7{Rfg<(&JgEllqvfFHbA0}!$zZ|a0zuuD= zT$`MYGwi>syhdlSbUnd}dQ=D{Thp|2?gPS=CeDk0NKM zU&};`yxHjTR9W+MU}T>lmt}hHxKRW?GWp?pe5(V?XzHc-dzq7_{HPS8K(6nmB&}AN1ujgZY~=YD8Z-EtFNBb{)^gYnPmKty}o9r%~AA^ zl94_k;nT6Q<^$=Blux7%XhnPZ;2 zOgeQQmR8$Y@(relO_t5VPb{x@i&=%))!$WN_GNBhHk}*l=920(T z*Wiiz(@8ApQ!S&S`Z0?A5jN`>6d_oX!8A2_^e?%=fj<-HEOnf4B= z)l{B`h(~uQrYU48!aE*h|8ch0;@Vm_4fsZQ3-`D%d3c-a(VMz*|8)MkFzfQF>slQK z{`;c2_OClfH@W_QYi_Q~Qz+ly+Gk^N+A$?pki`C}y(a0Id%tbSqdKKvas;YMmx!}L zDOOGL;jgh(Qfu^Y5V`m(A}g)qW*{6^+nf`>J_tbCvuaime=!qGOdpnNm-e9sL0UZ# z89M4qr8w*nbWlor!6h`~&6hKU zXTe4lnu;FWR6lC56-;O|cB%8#zQp>ls590rim~FlfL~zML2jrQV;{XW!(@~#Sim}=t%W3v(E-1lC9R~2=^aYdY`4UCu{V*Y*d!qwqZ8*aTZ@C=Esjs zE@D&VPB$4-F>sHi)N_u;$42A2d@F4fM+F@O5AsDhEBTdbhiVov77So?uwjPh7hjm? zZt%R^SM1w^*j7V~c~+UtZvYd4{u{gsju3X}Ev99h#KwRKV4(tW)TF*Tn3b}6a z8A8>IzJ$*q-h|C(GGl^CQpjniR81Lo-M&jo4Rt>tZJ$(TB_cOL=GvGT`Z1u)ed%Q^ zRhpy*Dy@^>v%x(@FL<<1W7l!Ebv5Lc7!0M9PZ4SGXYD_3I$4tUPnSl&!FH{xh4{|t z`y~K%A3!$>WZ~_9a5IDA@_)bJal#W}$f`t^`IIdIyM}x`Y9-yCyCNLS`*EzCZZfPm zl=0f(`{ZBzI`h73uS{sSu`gnWnh%ivNaQ%LeY&;fie^9-5tSlNueC2@PYbrZG5vZXzj1qv=HSqXR|xE; zzWZndnK@MPsA(m7H@HPW&BkQam~OS5BodeTiw5>@{XbNlWm}u=x^9D&0tE_1ibH{7 z1zOxGZY{3Cixb?vI23nx_uvp*iWiqaaCdj@&YWw$bM5s9@*zi_+|PYo=Q+lDg-1Jk zx~HecR*NzP%S|-+T2Z?v&Egh4qigm#QD@p9w52X-x9LDtOP;9r^2=F zo{4GR=aW_amJY9z4=4i>>&iO3vW~5`i#HkuoDV6zt=N+Wvlg(OR$H2<=h?>Z`+Hlt z#h-CSm*2l1Ri10u;=RrWpLDpY-})j!jyfs{>1Ju?{D(wFLeaXB=$fFgCK-g-WL3MG z{cRjbBYV$anvLTq$MBRS_x0dGP8`4c{Vg~vG14ipwbM4q2Xu%j-_3+-DLno72~vC? zMOBETp^$U(ATV_d9)*kp-wQ`_={$WvDIh0YZpm^nKKhEb;V_#=M zKZ7E#RS`ra@Ku`MY~xGNSqc>ds|33^-rqjrYX3$}_owWF5dwsIdVN``Bpf85=-vKO zslqsM&#=xh4a9!xVF3uWI%p$fWA z$mvfLx1+$8L7gUVD^Be9Kx|RPz%Ar#zA=@MJ)= z8e5^Uefplpg07{?6;%@Gu50gW37443%Y*m&6RtRGZ88?s{!nG^j83ZT+$0b^Y69#> zSMzYl{xPJkx+1>lpkJpar=>Wo0!E~A(|nlD9IRf?29ps{6nu3mTw71}?VCj{+FhyG zlv!*SZvo1iCVLWfd%{qlN&1n?kvfI~mrmla9hdP4a{^bO`!S06*8Ln#rBM+`+i!KL zDzKgEL6?6;;P?5FpnBh;v4f@!Ba!@6W{R@kK0E^sAtrYPt_@J(c83g$W&(y}k;1x>?@gPP6=O#V=jp>+zTb=dDoez9#sAB@STWmOoF1RlT_cjw zItD3dri!|rl@vd#;PGiuP66rgq+q8h=tuP(b9PIQ5x%o%XdjMs&H)OJ&m{bhSv-$f z{9e9*X8>T8+lFOR83v2u^ELcKN1j=8jVo}#V&JWB1tw&T!NTj@i~e>CmN}|0`cCNK z1HWAX)u6c-r=p*fLunzlOoc1R)B^$CQY^35O2abUy|~ixnOMC`4=Ky8lMz)Mo%CZU8doG&5DPd^MtJB` zP#>_yZCd{cy}84m+83!6{gK%Gs^o?GQKPnE=81O-mWLE$J2&Xaz4aOLhPJOB{2{Jt zpxu-&fEhI$X|H^3;%95c@4tZdzK0u%N-&c|!zcr~VA(qvpF!a`2#%*Co)P(OTByDTgk2nn&WBP0BTYoK7q{q*89eiBkCr2p;Gb z65G^VpJM;kL(C*xb}%yIGjj*yVQ#&1@E)Su0@pH+{*g_n&$%SC2FdWET3lCJr40DZ zQ;a%(oOsS#!P41@&rs~nKOsy%PPS!6EGRY-FW9Y=39&-msI#PYYFG0=NRQSBFG${v z7ZPotzP|Q}(-tw^wMgpqjKhM8V)Y>$5a3G9FtPht9&@Qff}Vq3B$MA+7opS|r`+y^ zyIOKNOn{-tLh*kVH7_pZDkIx?AW%A$MTXylKvd;ALn5l zEp|s7zW!oF)28O()d5lM%a7un-$}=+(RYoqLdbTmhoimVNoO_JG#43*#c#xxcgBaDotpU=OZud^Hf7xe6vC zm}N{Oo#xT((NscD*cZM=`wdnYp8VP_gG#=palo@CWuIy+zuo?r)!1J@?#$17wjc}8 z&)SL#L%&4rgeqBC4J{^u8rUGYVCNt;kEs~W+tJ|;Npbg^U()sx)E+b(ua#r4uhe|) zJp7qB9t<`}-L&hyMJB#XRT&|R+Biz(CBL!PS6`Bff+>5H1Y!?7GO(uhNs^dXLpCoG%$<8SmP3G23>M*i ziJvb*29TJeXq3h)|s0OE8{ zRf`(D%lUq@D%w#786x;=d$zt*Z!9^#5S@*f#lRPD?o8ypV2c@iqFTjP-(WBoV?;Gl zc81I#>uyEJJIa;g`YtYD*KhS?)Ej9e{VO;tuZ*K_PITD;d571_KauN9Nm)ns*FLmL z1oagE+xac}`qu!twc_x+4J_01-#uhjPI8NLNNKOp6vYM}vO6DVQQvfGLHp2ai( zuX8WrIZRnl%b+HoCBGuW;=}F7zi-o6-4|&!qel!a!gx1o6RvasY zuJh@7z)L$5QtUU}UEfgj@m4(*3$NUQOxZz@u@ULkzq>Tv0w(o(slk_hX1CJ9@lRpX z;7NJ7vJqZY%|`|d!_$i&5MsN z5UA5Q#cUnk0j;s$FE6Mq6mm@m)-MdJ#VFfPbtH?kFfIuaGBPvmB#^9|@c%##-mLlp zV9UXp*+qkofEzm;zVqj%_N`K67oT+Gi&J38>E6m{If~2cwo3=JG3Q7VA(aS52{#>7 zv2;q@grI3H{RBg6$E$E+J8G^UE0TC|Q%&ftj%+D?u~6l+eXBgFKFc)}x9nc+lg=ga zm|YKFDzbi)^*&QZz(6Xcz;0||8?gtR`eDd%Dlpr*?Oqf*MVn)IOKcy@KN)YW^XyNL z@PNl#;xQ;TKhHm$)IH~fa8{9lrx~-X+mpzdK&9wM3MyxJM(-aFGnQr2U`K1ruRdD7 zW+C+kj{UncvNuBf-x4t4`T-`6Avt50>M}*y@jef$b`j;zbTv0Og|Kb4#%X-Yr*-=SKjhNE9V zkfjf)O1fdw$1RH~K+!nvH{>BzphMs^H4@AnBjV0_rn04jHeOpMv4o?x%ATd__l@+F zz8SOoW4Vkld7v|XvdZ*WfvpW`(>`a^6gJwu$!g17q;;RQM9wK&{V{Bu`3L&FjeJD) zl{19^-Zh1@*A^6G1Pe4BbYmw=8zGATcqr%B@ycXq>-FI8ZJxgyhheI05cf3MslMY` zwvWM^`BOY&Lss@tG~HK=E|8qH62|onBwv)n_*6lys0DWG*>0(Qd=CM|u&7Yj1sS1-r7_T5cYgkIr=iq_ zVh(4^cNdI_4^_)NV3!yjgOzO3uoSW3a;%bn6Nw3OyhG;j@l_b>zl1YQ{~rG1}=0(3cv#~0J9J)&HOm&i_xt4q|?CZ zJ4;>TC~V5gmVZHp8(DMyzsMm4*|OH=UjUAb{Lw*ptyq@WJF;64Q^&>Z`*jiHO6{q@ z2>L7hb&d*$A##FVTesjz!{2dAoZ~{nTad6;X%?5n0N~FgAB>VSqeoNKL9yspUCJW; zdUckTN-T?|(KCMwlemG(XmZ+q4|e5G&k1q~-KBEGGBt zpb)6$EVx_9Ce~*{sH;|kE&D$QPb%4?{0?$=r=Hi5Qfa95sS6v%&cL@P7*-{?XYe=z zuHY_xREa}%CEUKD@p(w_J?31d;x~_%)9z4W7Mkr1O45}K2h#9cwKx#6l3!xB`G2`) z5D~UvN-x7(ENlD;N`U5awJ3Nfhe`_uOsr`Nn~2}SZ+c<2FaV@!R4e{}Jib28|HI=` z*$h`4Zof;JsrVB$qEr#Pwy0E{(Gpmle9I&lwU185XUK3lstP2vDoLJ0Wzzc{dOG^) z#hF2q5hPeGPgWP%N72gmUjVH&y2?E-k&M+R zyq89owOxGEU(xLKP0(4>Iq7L4@{w|at-|J-oiAA~1S?Wsb6fwo-|T12UMUc4ps#76 z_~?`KIZ(Cn;2kmomG?xkNYDjU72>2y`$VF#`PCvxMwzY~&;In+Kp15JLA2U&%ATaN zxMEFI9?;lrhZ1|tJ`6kLTtQXo{qqt;{h&=hbbgm~lwT;Xm3Fog0S^3#*o*Pg>)Ibc zq2uTzYW?>WS1Zvq!X*uA7i49Nm@!AG4$H5t3!F$2^5>0jE7*Ly^iB{bUweVy7}RQP z=fPnGchsYG!{W{Fj5ygiidyOqI1NM4*Dn}hjf$r$H_6?$)^F{Mj z=Sm;R`kAV?s&_hZc4*H!i{i+7gd5cQGj`E0L2TBIGs>dANMoo)V@8Du^n0Z&lHXQ24Uk=@b$n( z^K~U&u=Y18Ejc*k!2U`~|G28Px8RbyY4!B-4$?<$0W1k+>;QYfZq(_LYrr=6cD5I#U29huRj?nhl&W0ib{`i$p zk{2UyH)sz+bp>FP{G7WFm$f?5(z)$s@6}nFv2ncGJ-k&T*p2(`>tRieoK5KoRh!CW zK&D`wW#m}nogZi!<`df4d@cBHh>})T&^}-yM#}LyF&%hwfEndel|0=|2+Pl-kFM|` zsO3t}D#eXEv^98xV&He}db}$sij~n);q6nNwx)@pd*@NHT|nE|Jjg=TzyWsuTHaZu zkexiwwAG-L+}7-X|D~(v%-i$nC%jNvCy`FuM^EGF8{n5=HgY-!qJeEJslOh-dRVub zak>Zg4+`6?l+RgVr#%ch%gAVcRU#S?Tb!X-)@LuDlb}3Xj2|AY3`A{4$nx%-)&Aoo z*2_02OTl)o%tPG?CkC=^@Sx-${_lJd#7nV$;AbvJ5aG z#xX`H`srG4WF!IDH5ab^rQ3$)t9l#(1FmY56^If}|D`wBDl`Kd&UiRg-F~0>GI=Dt z{!A#Wgx|8bEXC8h(b#7hc3dvCVobZs{XuPjCW1WZ6T;yRxOJ}98LLF+4e%%2Rg{~v zA8CPm0Gj`)zgPW+oZ)Nh@Yd2&a|7}-9j^tgzB0O>utgP~^{Z_wJw@l7dW3a;RrB3yzP2uh0g%ShyvW=}o z!c>|ClT&W>_7{P@n6BYWev0rd6TSBdBju zS6Y{}rg`gff>e5Od8+IEPKWXwwTf`?x_R{`m)bq&6$pB`(P)X%1hW>M+lX5OQ3XNj zW20KJJR?X|i_(o(==(19%gW_%uiuZ50_+}(_Eu>;CU>W1w8ai2w0^hp*9|W=v~6kV zc=;uZ&Q#_&>m-14*wKkETDNq=!XMJl$gtRI%#UyCN zzbvf~_$0n6E*^gVL)(ys{Om#B*s;+UW!f=C$~PUam2ThKwsjv#OERLEPbH^xhuiM! zkzq7r@+gp|@p`-WS6AonC*hVO1)?mvgT00v1ZOQ8XuH;^=cmHr?U7UjTskRLvkaOG zRR=|ZTA#9fEs_s0jqC=l%KNAGSlG_#FIk;ZS%>iJEJHTti@`=@c4&2eLf_1pJFe=x zX;?~+$Gx*vK0FyX*utF#^w@%`HYUIn=gnzo8HkYmmI5Z?&&vWZ*x0YT)EWtVMMj^M ziy3J$ZUq%&V_aOIwiV@;{wt?&)bW9N3)MfA?fxi1Aq6tGu;PWMX^*0#%z%A*Pos`& zW$ifGsEyAA{Hi4%c9hrck&5XYJXks9`p)W6o5PqsxLHQB5r$ghGxwtdbw~D5p5N7o zA-e~pO%_;xThwY$zz+4>YXRfbZ;;NZ`W~oM7YcF*Y?Yn1()c%Xsl@{u!D1LPK9$U-AJRlC!XM$>)YT6 z!@z~&x)>eBIxU>|$TYvSV6?hen^ne&sE^$Y?vrsF%GKU5dwne*W@qcLYvcSSfxk#p z1(GLJSjZWyesWR1-VV{x4`SOU|8`TrQT=4hP{>si#I?txNImmb!U6c2Zo!;!n#Flt zNr`wLMS;q{lnE#)P5$-C^2b3~N_n*!G?<&+8LGZOD?7kT#h~F75tUd(C8B8u(5?J$ zS!8?T|CB`<&bJG+!Z&~i%{FbZu8kti?W5}JWAxf|2K#}51GdFgC+&9Zf1ZmHV1H~h z8GSM$CJhIxDl&(ZtwwtRzk#?|~AT3p!IErvY10)JGogi=9CPmi?CPNfo-rsny3 z*0TL`vC?0Clb8kbr#|iGz_REC6C1rPg`dq)dy_N{tcl7$Fb0 zd#ss)y%uhk^>v|boQ!aWqDrQ`_enb_C}tA`4~DnFrVd&^%C1?yKj|lut1N9>mntQL zr${@i1orIIY~roawLaoUt^Qd5`D(MTwM;d+fu+pF*w$PwG%fI?0xDd%++|NCQ{J^0U$k(uvax#0B*#V0w&erGSGzkoRvg&U3OpXlLp!Y^Wf z0jXt>_q$5AlvOgidE9QhxksqvGC($d`ggnV<;v{%!hvLj0n4qztTwXzDCyG-qK*bS z9xT2-=a|yDyXtGqTRHEr(-8{T2b4Cu3b|1K21j9yoWqxP#^C*4>%Q{ctw2JR@%QS< z%34kZ#WlxpBg7A04AIT@0$lW~==wPS*ECo7slOwF%D-uPMV)jE?9AoF$Gl>Pe*&m@ zx&aIH0#VFNw`pbEqn8WZ9Rc@rWa~Z+ej*o5mNRflJ-%ab4nAn^{`AQNwOC(v!#p57 zyfsRw9Xh|CW0>%6_3_!WBC?QkC}KZjCi@b zW7~9;$w$X2v>P*_#6Ql#`*ikl4?EMb!NXJtcPIQMd%>Z;ox3Lyd?G1jP)CqxKk$xB z29uT=5DDQK7yStx)YugirQ=EFcwjAtqJ#SpBoh^6+0 zZ5S9A_>Eo}bykrMvCZrBKR(Q1&wVYEw<8QRVthsoCe?J8FI&v#B%Y?Notj!gRZhm0 zx2y1rjp2vJ){MFkm}!`ZQTH^FHK6yz_ArEBGDDH>xZF;0$lLM{rox<0QqM%54SO70po~6Q(F|9S?-sO(n$0YWg;q9V>^d14+Ka`NpiZ zvYm8YHwiHtFAj5#3BzOVO1T_^s8E`6aDN>cyG+M0RYOm^=$Up;aH<$LQ&dhfZT&In zkhIj|Nq)QB(ea0{c&|1_!!?qg$2zDZWKYYLm&J%F)ioj4Zyu27i`t9tNc^6me7Vnb znYMsqCvaNP$tSL%$);|R_|xw&Sc38tn>>ON9fYp*608xf+pL&xy4k*hb1Pa9AKe(* z)PdO4XRTL?C!zE|$9V(Nw(wtoIX|k7nWp$(z)aE9KB0iqEmq-*fpqowmeXi%fM%1U#r8&JheW#sl{brI4|4@8>eKeb7CpnW^oDfQ zWvT+*V@%&3+TrZUK~(z>=hv5-&QU%w!GcBOcnB{mhi*^EhxBJxa%U%RE`Ibw_=bDX zU@#p~)kK7)$OS>K#Ho&ODdCXZFDs|qLMhLO7n+pwVwjIPxtp9na6&ibuFZt z*r#UQTroG*#>pVxZ&vEvr#)EBQ=nWwvkI$|Zwk?*0ltYr^jFkGhchl4hdXoo+gzRi`Z;>XQ!V{G3z`s(+=#C3 z4c<|#nirC~!=J1skCvNXqAeqB@8=vb2bA&RaucckI8%My{SzORC{Dcj_H>?na~EV< zeCOfX5&$%hW1`UKbWH3oxz%EkBQ*UXXHV52lyaxsK9vFA9K~<3fsElckI;Um8P8=F zr|e#0cu)=J4_ybgkL^b8t!6bRdX50+aC)o_Bak3&wXMy}U1Wd4OAxfIUJ46YT>Z)a zux>%@Et&0lA&ok9IL*U-&pJjdoXeyAn}KiV-l5sjGjTTB)WIlD`I~82uuCq0uK752 z!U=yYxdw2OXg>9E~@VJs|OEtQD?ynv*eEE;n}YB*pZr&a4~a$=!qbj9b}&S zQMHicB6;MS!NLx%REx(I;ObCIpC3H8 z^Tp8nxCHB2s0sH8qRXREL+q)`24X`^*iv4yAp3nIEaD)kF347KFA749FYTCt2}Yn? zX84K85?*bOEw@Cf?1;NhnrKueqKSIc&B@IF#GB$hi#rVyJ@}Z>Cer>J9?7kp*|V{B zE@ZM$JcbChzXq3iH~fwb>T@zS(d5}Qo+bQFVAbNno;7oHH^!B;<*=-*Tv5ru`ye%F zR%tX7GKAwq_lMvm=`MFBpya)#|Em`Hv~q# z`&jNg0{qibT3ddRW>U}0V1mG)&^~`NE(QaW$;z$KM};G~3AYR+W8&bhn>qAxYwBoN z#nc|9R5k}b%8VbfB5$t4sz=zj%z_mXol=WKh205G1}3ef(42RIJQl4c2~0kYvq152 zjKuAipKj8n-&;rl%8_V{IA^9TQ*J`b%4_e*E2mAT2Tj|%ZncPyJuN?Gx9P?U%Gu!2 zZS9WIVwP&%xl}51_Yz33d^2vp28DlKTh@(dIBd1FR2eTFSY=wCG;`VZk`X-IZ8DB) z2@L3YG?Q<>v)_X{G$Iv9YcKGR8{i6bYo0owdl0}M^pMQ(lmW|au%D`4~ z6I8hTl-cJrt+qYsLOs-X5%gN%DRWRRY`KX{)IRN(0iu89X$)UEdS)@H#B6GvQs|$S z;Z+7?-zoLX|2diBau=g|Ak z;KyC3?JUS8A4=%y)nxp=op~qU%(YJPHrVSd>JDyJo@z$fxzLzuwjR+aEDoFAqRu9N zN;TgON?Jy;Lv}j#$G(|?ZJgi>eOysPY|gJpbu_vS*?jSV&*~EaZI{M=a8quBODJAG<45p9M_nra{a& z<~d!c^W^PC>|5{Z}yX#VP z!s{>>b-Ce?M_2#9FS^_R49ww@xV*xKGsLdN96Ye*@Aq^RPleoL9Zh$9)GW1%E0b^m z{LJj3R0@lfzQF~VR>V4ntv%V9&%&KZp76p_F^ zPEVbYu&&v^xuYXeML#5WmdDBU3ndlGm4Hd3f*_}1 z7nP#YE6HJkFGXO{+w^TU|5{RY%IU{fh5o~Bp$|hXk8ixlf2N^&@t~R%EM)E9p@mYSd$8n?B7JYT%_#<_k>ezzR4v z&YDog;$orXP7<$$sHm#bmv$>Z3EBqOS%)&2%3#TcDJ2TMtKUV(*!%qXm2@7X7O8h@ z=>pq^MX>m5FkjElgi;%x4WP5O4r$E@1GB$NqLYTlhnBq#$^(pKoTB~x)8DC9@noq= zCpg@^I5tVanuc0D2Z<$#u1ECYjQ>f<=^^d>#EH(%qi}RR&12rJX&r511FNEcX#US6 zQRQBW`B&?izPzZ;jJWKzm+n}FF~X4w!b9tAnOThFqOiU{G=Dl$EaUsV0#W?Ur_F9|QF0vRX!vsYbI!&rLnOdRRN&OBfeRq#dX9Jm#t$T9i_ z)eP#3qHm@C6U8*d4I({#arGo^JIGdG!k~$PS+I$~d)P`jQ#dU?D(B2I^ zy8>HEohD*wWd4MO7uQ&uMJGzm-Y2}(r6?N0wz9}h@UO6k=4zll<3|gsT<&MW5h}ZW zJAPfWwK_@Cq1V%mt3P}{p03Y(+*GOO+Vk(CSfUXJ1o8c;F&zBV3n_>xuzrxyIIt1) z_gl=+7&utNj_t>(cVInic}(G~?JEY+`Rw|se#uT;#z4JNOd-{7PVgjyIi*Y~*1id> zP1bTmc0udD!v=F|8R>imZQ;kYYA#?BBFy9dq>f!}ra)1@eaDIPy-1D_!?>}gUB((D z+v6aRxC`A>Ywykg*e;kyF%({;(pVgQ$GM9dnGz=2an$}6?lNOTGDC{Id9XN_-`?u5 z^g=Of&Zp~$(g>>RYkPbLqPHvV!>kK|q88*%l{iQ{n6z6m7j8z_NID<|6e~?!y=vjJ z*79$pVC}R8>I=@bd_FkBIY=RX?6&s#ahez>RwYmHrKc{AzP6_G&^; zQQ2`)L_S8Uq>?R`CX2G{I6B(-0%lFOAQk)sY3>Xbs%=>L_KT$yo!7}1C$7yJVBno7 zLh@ZwSXf`p{uPx{Q+Byt<)cbuWf7#@%JV?fL0O0fyT3pTcswRFEPn=D+f_S%PP%%6 zH$2oC{`cW_porqSS>B|0tFN;h_Eg$xh_(lQu!arq-2ZCGjRXMw1k}4t7`^+f6%`pD z^fhEF|6smXOBTo??ERtC!fnrMPIDp~$5&9WMWMi0fjA92_c zINONg#bpPBCN|uZ*z_5T?_}Br^eB>GQ(jXy5^j1@Ov~MBVjF=js}}ol7&aW$n>JL& z4Cpe0%Bp<+*oqP!L$A4)Nq5?;?W)zCTkmRvN_ddKRu?9Pe31l%??b5IwTE-;8YhHu`t<@^$+Warv`qvxhl`wl z2xO>~bQAGBgH{++U8hn;Zbd~L8R;O@WG$-S=g`#{8e@L^a2}0QZA#d!|HQyQ&^~SB zsGWnXr%|Ds^w0UsBwF)-D2c{*BR~3~q2J{$bp~jK4(&-Z2>fHoWup8>6hxXGrlu~T zWrO3gegv}6_l+h7yMhrY)INGh{8Gul%2850INIWntecz#odjhj=3iR1+cLeIX!>pO zQybX@a90I(Ur(?|c1hw!Nv1>%@Zi z)+;h8D#>DIVS6*2bR_R%PMI8B{PR>j$ct?z93!%3r}rPMx$>Sg%%-D99UEYfjo;P- zV7MCopp^8}wEF$$oZ;w?8*?)aSaY(ALyEFZtcD_r$XkhK#Z^rC)K^OW{W#4oq(2p+ ztR1>$4NqT1gP}Kyt?lcJTPYLFUsT9f;fPiTFW+K$S=mH*^ES!zJ_CwnlQVU?jZJ^^ z1hr@(gw$W|+?BbK`X3=fhQHdGP|}d6C=m_UO3Ak?SgBRgF8L)6%*w2H!pFE1>p*AB z%%XgD&Y({((3(5rtE>DJ;!kjGwAV=~CX}F}LZXQ$ge2i`beksf7b+v!*E`dk zIU^LAbCSk#Y7d|~S;7QMrTc-#mG2b=`uU$F*hyK8(s0JvqM}&4h4=g4np28KmWNZ} z;U*$YxFs&WnN>y>8qE&AvT^9>z8LZz-$H-G7^zw{44eO1ipTwf;v~rMDs2@Gf5}un z4?N@v5q?JE>bQK)YI0Rh(EkgF7rsv^nUVfsZg;Jd18Msf*j!+PzJ!~@@5QwL&=HaR z7T$Ge&5e8;g5!@mJ}J>a60X542tX}!oL_^Eq@>-R2t+CDHC`njf%5+q=q7hYb2euF ziYt_CuV)2FC3Pod39Q6zHGEQ|NeS(LNqO{8Qx4q?jaRQ3Eu447!lw>+!=nqLR|Jqg zQ?EWUZ8pHX<8iuo&ySj0c3NaMJ>55<=#f-be8e=FzmZGavw{6{sKnY!-zZVfpA*7X zvD1PR8qXTfWb2?7hq_YVedn@-v2EiYQPAi z-5ae>(3yRmA+O1uj!s&aI=NUJix}60Aj~eTlp~Q*SEEmvxxTv(7xm(|t$(In9~h3~ z?xw$07G=m|_!)sGQFHfqwI#EAyLr}ajO5049lqSTYAHx8Q|ADNW4Q4iyNw=wIODuO zDU;nsD@e@Ee&_hXt!8xbux+NxU#cC`g%v-Fz+6cLNXS}M0*^j423E(gUq3K$oDJ{R zW4BnVtZoh}a5Bm$;}z1v!|npnCy(WRLK*4<+3nBA)}|?8j=@s1pW^@B35k0m`tNYz zm$+i4d4|rS##I`{uRQwae-*-1HRPPjPRYL5RB$}fJ7XjBc-V>zE6kgR{pR4tq?Y=@ zFwOP#k77b?5Su@|eJ@RPHT1X_wpdgjg5@O9Z!)(`+i8)e)~>*eYR1W8gtO%XX}`g9fa|V}OV8lMh)3(=I3f5BI=#**ac6?F6QCLR3~>0?~EK?Bw4^ z$HxW&@L$T!Gjb}{0ui&?bs zw15>;l6lLLYHC@&zaHHl>QLP*O>SLB1l;O0NMus`EuOm~b-org@ zoFv1-1WcO85xVNX0KM6XX;EjJ zBKyO=`h7}1s5=j7R`0TH)4w>0%7y=Z`om+F9AjX2Bj9)BV%B__Dvt8Ag>=Hh8AD|X zOpYLP#pIRHfFaSIB|AjB&l%Btegs~_)zd9YWqBP(xUP-8eqVPTnh=G`ez|mucwDNB zj(JgR*gWHH@kU97W%9|=Fbr@NND3;pWwR9W5FMbnwAj>Cg=P4h?m?#d+UK{*h1$<; z(chpEWD>nw819yCZCTxo6S!xfX7~%Bzpi*#sk+>n4!eB`cZn~O@}W8DG<>XdOzhh+ z;j2RnPk`zI!=vzndlIt>WtD~wm!RXZJC_;Y9NcLHgX$t;c0~)O!w88^X-ID(ts%Wh zv)>MMH*%l%II9`IQ|?vbUx4?VI;JF8QRvW|VW*UoY1$>BzOaE!B?_OmRjiW##Hg6V zb}8W6pDCBRUXkk;1?{*QtjK#(7(a@YJ3Mo2mC9wlQfn;-FNmR_bQ{^XE-Mp(OrShn z2-0dpNuQ>@F*&$PFl-qF&by*rnEj{=>8D|^V7{=cx1y$!;29K@s&xBeUHB)30|Rt) zt1j1(E*pEd4&cAEAIcyit;`U0Exd|IL}fiY}!({%N1g?_g9S{)=i(`#)`xF>K8_&N`4mv>~20Pt*3_=$HhZDLwi(x^91{h zeeI`th8+=mJn11l5LKywHZ4PWJ|44*;RJvGg!#g?fbFMMz21}j_u6szHaQ5E0if?B z<@M8_=rs44W@8~G#V%~@5u4P42g~(s96U@n!iaZOnhJGx(ZF0< zDiP`F+8eN-Xe~+ixYwLJM`gk)ie-o{jhMxtMkdL6{_n~i5Me7TN`uE{e@w~Pr^ax{ z$dUrGE*W}d-(ioygxkXy(0qL>W__aBW3LYlf@=5LDhcxio^Sx>5ByUqMgj)Q#VvU; zXE{E1;dAs3`LfBs0F=(K7@(V0U&H^!2 z+-hb*`qZS(rZ>>V9DuRik4>~&Hde_$9)}bkXlW-T`A8{3c|Np(Xg*{Rrepf!Nty-N z;?!gb_4a^9Dl1M7KYWzxy@&ZlX?JNaQdT5ZdAT>7kIN9LlS%b@D-~974M{h3+9z7Z z^s*TjQyaubDf=;~FNaYXlK4@sS%k6Cw8#zj{u?1x6_*8X$PVPs_dN2ff!t!i!K<~iMsLBCkB zK_BDQ9_;Mn_c8|WRJnh{c7q=dhd*Kh$1qUywk2jU8)FIzc4=kC<#TSpjdORtNiuO? zE?&aDFdgfwqFtm2@96b%oCeK10)iN{DAWZGcd(L;s`;~*wF+54(mbwPZt9xbJhDqe z2cJPn8(KaAhiAISUqAsm*N>d_6%3dW$PZW>&2e&T0s(!SJB5=tXX zWcZ78IRi$wrX@20Wf5}wMr+Mc)0_piL`S7`)f>nTwKCG(Wam-yRmiMXwv=yHp*yt) z1#DkZHYxPNu8VDC5*g|pKPP&Y51+SAQxCcx0wa^)tM2~5H?na z`0Q_CAIi;o!FW}u?5xxBo{u}BRk2>w2kx5eEVZ*)_gZ;OORTR%G}(;#Ix8hZ3*HJ4 zYfk!KdUmvYi0wLyE|~AX3+1`Slb{M(kCyE3w>~EQ=}#Y~X1LaoQqz{a(QVDB@B^1V zoU%VEbdULzQ^hJ6xBKyw$xa}Q*IFj>zSRYkFXJ1yE>4epaAw3AJ~1_4(jj}W*-oa z%QNNDdLuIM$9$nfh#FFLH*WH_bt${KBTulc4^P~=USzR-mt+@Dz60B6B1Ew9W zrCslakWQ5;8E$BpvLmMq4z9%#7JOV47USJ zq(>2L=;5VKH-&;j{|u`O)Cs*(N2+NR={Z~-g1ugi)zm1@!~6GE@t3%c$L7_P8x)-W z)qa0WNQbD6ev_fU=Jp>mX5G1qnO(~`#9ADc;T+Yng`)pI z=H4XK|yX2i~%{iav=Ydr6GP!?ztksfxr!~~xD2&lsLZ!RMfF>6|=ulJT zO`;$mJlGIXqjNJVt-^58Exf9?G9r4oBvvlVsSE~<+2_(Lq* zq86WRMytD)e$l4i1ieknp#w?Jw46#2?dhR>!)f%2zjm9!AsOrkFpw#fUi~zIUZCe? zr)(#Pkzq0@f%}%U)a62zd3(++0&}FT2bw<>@E2VBOd7i6ahxpnS=E%pknALp7{nkw zRKJVfrCl->*TuFVl`!1`nql5+BuS0g=6_2}AX`cZq;Mg`v&TosmznAldp`lh@C?_0 zbhKw8{bsJPi#hMPYTR)m2-voO#GPb#jVvMlQXA(!OusyHe5&yNY#U5Y5G7F4&%{kG zn>te=4Un^XuNa*ey?7L#vu>-M72GYjT29){)$zz^Sw;w?*m_`-5lPyT`<`>1;6_9Z%>;eUKX#(P=}LCmCMu*LaHny!vR zG>-jzT;1~zvslPqa8=X{XRp`%|D-i(>Vz2!=x2xj1!tguFH_{BbRqcLvUJDr_qTo4 z3K-7E|D~V%fBS>fzl9y0$MOMT7pI#m543CNmOL`G|5&lW_g9G&EdatSd64`7CXO`2 z#Vg!^E)9ES85BM-g)ehR6`XD)KGnoM^NjORhtLJ!pOXh)^Q`_+tLiXA+E|wM%R_?< zDDoqcFYy7D1&&uShWVW}?MXhnL@#X}%GyU`$p)-pe3_>PZ07eSUh4nw8~fY)UPi_v z_&T`dAm_F({v%kYZvrtV#VbbUS6YnINSivo^#89p`1_z>CpMvoEWclj#agH63J_ht zbN;B0^N$Yb;Ae>o;|CoWv2bnr`?*vxmD6M9y?Y*+>;I4Q{%;dubQAkE_8U9&%;49a zHo?mFM}1f!YZr&^_R5!I`L|EOI7SEmp{D!~`-<0=gb2*OKOBc__)WI4UY`z~+l_M! zY(*2sFhOTTMDMc3ozhiAXBpN(v!I{=uDtm4o#fiND{nxnC{pWMe-i1sfinE1*h?tA z-i>h>g>X5q3k31Y)MK0U5lbM}P-FM(-HjYS;R=cS(wfDf9#kHQNgjP2*SQHUo=}DS zwD6tpTx(1k9Vf}Qx6zMb>()-zcc@+9qT4<{em{u=WsRyYG&O8~N=A8lEky7q^3C2K z!>YVLx^r}##M&HGbzZ&pr28@}@C~Huye&NZWt}bH9?QW%QjRo5JTA_mE!DARwrDqV zp7?HSu}Q{FzswGyE@V9!( z-m~^{>|;C1n|tOx>m47JZ`dsIDEqFD1U_ZVpud@tyw2)BrdTHSp=m(a@-1G8UUH!; zWnoVFYZEcV|C5c-FX%;YEcx}iH9QSQP4&q>1#_7NjyBs1;VG8?^68Ff6$YVVb$Ry* zwo|3HF|LsPZ*-l0qlDQMOx1#uabtSxF&P|=B2j!A3#`Tlruj^3pk09%enA;=yxU*X1(f=b1$ znnA_fmUJ4q^*6r(;z6|!>o!*E)+mv=UY-$v-%uRDQA4Od%T4Ipu}ckrAGnePPD&*- zlqsm4s9*vG^#KbsI+c@(`G9pv+u#7qz>5cW6lPa#Rv=E#8U2^HwAwjoe)i8PbKExz zFWlpIIiHt)zoOH!GMZkny@?-XD`He}FMkx(>lHpRgl4Qyo(JD)c-5K#->Va(PnC(e zb^fyZ!eK-5a!29IC=7I7) z+Hz*rn*|$BAo-a>X^K;;EE|Yi-dlQfi&O;@eLH|NECwyNB%{fWOaI(q*b*rZo|GJW_ka$P~@k z50znzTaucesUn~&aU!f_G}(xk-^0aSrjF@X)R`%qmR)M%JrTgNt~IOerhb+hnzPw2 z!qHuscSCWle-^b@*E-{^s_3l@y7{O>p)ap4Rs^Xud&W~==eIkn7V<=T?{$@E%)x%I zGm=om7%_$p^8Q@ja_I1loz-WFkf$coD6$bF8|vt^#`I&SD)!Bv*CN=q`pTlc^2nQSP46X} z_%=q3CXcImMs0MFijcjBj+>D16!$URCf|yUmXsViDZk5>gGGrDk+$xAMM}Rd*QqAH z`~rlkw-pdt-Rm2!_dL?Bv!;Ht33qI2Za8yDpPFcGcp3r&<8ra^9ifc7cBuw2BhjBj z3<;+n0q$6DemqdwZ^xAo{Kq7+r;cUd?c~sWM7Y2gjA7P2^Wkm0 zR8?ALPY;-Lw;>Nx0&fx(wf;#Bl{B2ZBSY~QZvjrMXG9IUAi2TUL{7v)+Q4RLaFx!|K zum2qAvX=TU*bwaMsqnsk;e4pxG3m;0=Z>dldmxN^d)M~6rVHGa{t_~RiJGkTP{U&G1))b#c~L}{*ZC1FK;RWE7n%OTg=7@fCl#`&_wH|_hdidO#x zw`|)N`-k|n>mmj1)obLz>C4y)k-qY)p8Pe>v(fe!+#{f6OZ>^mCic(P*k5p84eb-p zr~-aN7+y?sa2~4+H$#H9Rmq-tF1kV^1RBMU8DedM!TZf zl}bI{2j-hMhKMv+-w}w&v+ggGThzdUvPU)F$XFbj!&Qmhb^PlSw2a} zS)A(SW##I{*;mhYayjc06L*E7Q1vM^9f#PtJ{J+9o zRUPmAHrD*-zWe+2-Sbk99V9s~f}L8(`n~!-M?W@Zpe zDdGezTVdQDgrsY+`d-G)J`_X`#av|dw>;;E#m;H0KREa4ed*yR7pS>L?mXGYE;-CF zOdq6Qvg->Cr4!hmHiYCKS2$9e0*aV`;<^d8y=3EuRAbus1#^ch8wU-I`dcWt8}JNp zYDklaznHn-d`_Ex7Ty>{&fcW6r#70vu4;|zYc*6tH;@mH>hm)@dh48C1n>rZo%!}d zr){FhC5Cz+2NUw0Fp`Q%pZ@b}70&Pk!sa37p4evF2l46T|g zod^)EY%SX*vvQTASy*hFm1bccHtL9eOi6*6!_=ZioEaGfoxRD)nXp?=mtI+@LS?81 zebyy{p@h)*29>tVB*h<_z%U0Zi1=njESO65BJhE8&dnCXIyK{?HIpB0bgRzE^rzOP z#Ris?gYkiRG(&Ik0JPX6 z?MH@DHmu8DDEoeZ&OhjW z>-=HoT;c4%@2Ct?EHE63BjJq48FO%OD{Ru3^53K7t1TR4TV~KuUqst+UJje5qxi*D zNL-z|zhy1e-kir=|DHWPgpw|>X>DnNp>)t7A@%LbcfEoq_PoOr{}(RPQmCzaJ+~aETjn3s8NC-jyn#gwc#3$H$X^vrwecV*SEn+{Z*-Ict z5dvCLuTrY;Zbk=u6*X0 z;mFa3q*6FguNfC5x%(^2^ht!a?VGBZR$D13aH7qm0kj zbkC5qP6kSM-7~Ahp38-5n_MYRCCQ3<7 zdVP^vITPX6+EWhc^>Opj8v3}d;gk~meFW@MWKVsnu!{Ruz0l0OKUZ4-WsSEEQ%BYO z%rh>WQE&`yeuXyCEZA&QJ0i3<7O`}D{9D-bA39hse^$6p!q$2sK|B$F>s3hyDOOwY zR!jQo>8Y(*gh#xzdDyOgUyF+ z`Gy}V{!lJ#1#?@`;T(R1e=MhDIa0h!h~1jLEk3JR-YecNDj>O>gDu*L+kYKB&oeGB zZe_~K?5_U2~KiJe#*9;4HfXere>)jXr}5h!nGAcR@@xRBUHeB z2z|qHQVZz+u(KEpFu0#CdUsvMq(Z5!DOgT&e*}^ySNZ(Y@=oiZHKxK4tJDT-gO(wN zYZY7abU-v^b$<7%?C+P=zrSk1*IRW)g@KhGRP6G4riSO3$DvWW8kWp>*erW#xxwuz ztBml1f~Y!bDA}@x3N$~LxxdsJo<%IKVHEUrDT0iEa&If#Oi$QTa^h*{t$>j@{}==0z?`8bNY>%=Xz0F z6~VS_oR?<7>H<0Wg-+G7-rVz%<4GZX=JY$?duEdWK`HZhd*sqB;H%^f(xlo`X#DA_ zI7ivxW3LG3Ay3`6!mWytD;3sj-#XOoU}yhcF1pI#Gw#vgEFJIq<=c-h&TPn|N-YGtyg1EMDMf#FkDtguSr2`+QtJw&%0? zuhS`GFpa@}zL%P3n_DUg7N9@q9j?42?OMNq+2se!#OIc09WhbkB_ZeCX|vyjJlPT} zE0c5R4`o>CGwDpR??g_w)$Hg zB@tAu6Fl`4SlQZm?VZwQ8CQO8d712+>shtB50P8FA(^}l))rkwXE+T6)xT`*nVi-~ zfv$MQ5GJy!dx~&j|NHi&!4~#twUeVP5(BvA;WmLU^j#LNmFqBfYD#Ej+5T@w;qOGj z`)0j!nU3ELQj%==n&ZWM1~SESG)XWxO4+=wMw#9!oF=hQx~8gzicmVd5II*O95mGN zpLv*IDXzMNHG)cC zLZ|bu|AK36dQ}A6=~$<$8mCh1zEBpnYlIhiO!SQ@7LjadWq?N~q3?gR8S;L}cUnRt zE#y9B{OFQbGHZa@oLsiCj50BVe5`3TOS`u zuJ^#IUqs>_NzQW-i>_;EIc|UG)LhRy#o2w*NYbbR-$a1~um+O?iE@e)a=p{bx_+8V z{?cVB;v@yAs&RZ}L>okEX~(v$J*X4*5u75`i6xx~CUsWS-?SQ&?)`8!({QYWospRy zKEXwa^Cv*F_^wD_Vhu*O6E)XKrq5(TOdFfNpQSltWi}_jWp0;5vECS{Ga=%|3bCK` zqEht9_HtIY_GPkyt={58-o31w3q&{E+-tZ8Nv(q=*cb^~=JW(X9m*i$`9n#oeTO3= zna8x^dves_z>%{tj=Mct9jxWD66*6r2;1d&7?bNq3I%xFOHckZz5= zBvM?vT?l*1LH`m^#anqZA2~Ij%If9yQuYhhXMrv7Nbzk&K9X8qcc)?e)+`B^GokLI zxwTJ!h9n#s(!z<>qh4C^;pyx{wb}Z;y)&2`s`++xc_;n+N^hb!CT8nHz-Bp53C?;% znOe1mpPfZyMiZ5JBVf9@HkE#UMSsK^ZTF0c1c-Nw$-#N@dEo`Q|ET`(Rw$N8^#{TQ za%-IxF7oxr2(Qy#(SPNe{vIyWW2hZxq@XGz(c(2Xvx>5()>{Shy3(wc>V2T*t2lRkfiGp>R|E)Rbu z+{_vuE8}@S<^9=o^fc-fa5d2=PdO)APo8)B!&Lr9IMtdY(09CGUE7zFBLH=u8E{0J zBAURvWU|b`!5t$yAqYB7?xa{>W1e%g%pkO7iFxvlaBpl#Dm8y6D=8{DrWA>O}PI-m=P61HV;e=D#R#FfX*fw@#cNyal|i9 zdkm*w4O!h%c*smf?|N|CSTC7NfK^?~zLy!_Xw1xx7gB^WR22p_mT|t@h@~#1rzX-@ z??xP{aKUL=2^(1=(wggi7aW@_&|T{nQt1<><1LQr;cg-%uqW^WUTcm|!&vc|8` z3Z$QTP#PKij;2Z4HzG3l$Khb?AB1C~L_2=&c$ z_OAuj;21cZLA1rzlwzVzSz-34d3Y55A4txpF(V!`Ru+X^i!_Y#KqmzOD!kdb3LHL& z@07>CpSNYqW`!7(Y$}QZuKgOlHOJURb%ZrC_i;|H6xq0Rf*6tiKo;DOJv!ZIZ;1j zW&sm;_AQB^Ag_LIbT@*4{->k#W`ld)Up`CUQ5ojLsLAh87ef6o`={$&l-p!pCD^Jh z?=McQ@XY&|(nH8h+4&kXfy+98B*amWmQEL(!+58Z=e7V`j-)ogpcaiJEsc2Qy%RJl{na(r8e(!4 zT7LAiGUrQLjyoLu1)R=KQR*5|u`6Kj$Cr*3-(tViZ#z$ltFHri-rO7YdO^)i-Yqdu zA;cFw@sC6O{#_uzo3-|cE;u&&pCee%d@(4wcCND~={ggolu>4Ps>?PYHNWk2dYTH< z)c~qHkoc~~#i=~wN)TTROe@f4GS%w|6E7|wVG4)V4mf20kZJf8V)WKpF{}L6a;lmv zI08toPp{Ob{OyFEzJwG=s(;R!R~1v~A*{`VxEwqQDglIpzn+84H^pIu<;;U=lnaYv_uAq^W(GK5AJr!>2r z!uX~<62WjY#lW^;XIET4A_?rIIQe@bqnDB9wJN^0+iJsvdxu!DU!uta$%KlM13A_v zMe<;+DFx~{$umqZ3CH{jvo*57MXRWQ+;pnm36uwCUt0}pWx8T}XhAir0`3{tKCw~- zSw<9{&_+xE95MhYK*;S->-CT*oX*u`<5gUvJ%OdOu``J<(EduAZuz0*Ja-}XA}eN* zZmTPaMdF0(umJqhT0^LktN@)wAp=|-bK~K*>3726*3L$cpHAW^nQ*Fo{+4^d#Db7? zeC4^s)tUHT&ITbNc^`uTdnHB9hfzsYu!OJKKu|!^S5y+}1ZCA;NTR`2y>GQwbX(Wv z%lcf#ezsHIJQX@Q>Wq$}^3hzr!QC-N%I{ZE#>OJ7PoU>sYa-W2Vrrm@^x8Br7MJFk)8-I`Qx}n++PbI~K1f zkQ_!7wR$YO!{1&QGI@12TK!b@!@@$2KQPqxv+%Mp#(XB9Ct7L^1zB5j8@C9hmdI-D zIhl-tCEz+R*-_7KfX*%TnXY3LNDh2*dtX$D;%*@Z7&rq*h=Izr7p}U`THBhA?xEm8 z4KQ!=RnPf^+lStFB~m#b@XE|t1xWN_wgjsj@_h$|?NvQPYbJw;WpRb9;efI!OVk5=yDT>16GB(h&RkNMUa?1)tx-gA%TUA=i@fOY_P zs_vG}pVeofkD@(qy^X{9N4@{6?WW1Xu;Ql!Oj;DJ+Nv$R>A537rY=cbYGw~L3SwT| z`e}|b_1Q{WF?UR|iJ5eh`=*6kvCc z?~|f51RV`7?&8~WgEMlcCj$nAsna6lAAEbNonT({3Mo+Ce6X(yO4%U&P`Trcr4tjj z5#qnOJ4OWIs8XYZ1d?E`^13c>QvfnuFn|f$5>XfwEtDU1qJk^=*e}Ijp-!`wbNqH0 zzK#Qk44m7M-d-xaWpi%_-MW8 z8;uvRSV97&er(|UF}PeW)oHyE!)rz=9s0T#3?0G{OXCEb88KAj6M;4y*;qea+AysO z*Cn|yt4^sS-&r-+%z6HKS};2Oy^#*d)K=E}olrws)B6jRx3kP!&&H7ElwS|h@N=$7 zOw-M>akAGcrB{W%OhH~)!V{hNaHU9LQuf}Smie1dagFM`5dIlCVx-6$I^Eyzs`)xG zFXl%E5+iM97^B8R65ku;KyY(b-Y%@THp!E{T&O)2ps&6;`)Xn~g@>%R9gK2(i%Wu@ zyQ`ch8odH<{O(+*6>_Mc?gz z{R&oHrn~T)@Y8R-FYhwK7y7kXA4pgw?mDggLU+xl__MU0Zbic_H+lEaThzqPUUicd%U=cEJ=`}^qhan1~5qApAy`YxN%f#zfs zP=ALFa^3E@OueoVU<;UT$G5(>4TMl0!6CjSK0dN?IdP7xw_JTKft>j2YvC&g5vDXn znqeBLC@Sb+T6fzMTp~vb@qW(qGl)c_9JO!ecS)n%=+&2Cyc;l73Px-ouy;HYRZ#`s zUew+;LvKfFRA*sAp!2u06bXztuhoG#xt+pvZW-%pD(izseFgnwv=tIXeF&R$O=X!4 z3pi=J95kO_gbPek7*meIAOqJQ@#5MPa*f#Ke0>ffxGF6Be<%?B_wf9G&c^_lmlWG_ zVLrmMtpUA7)hYvqbw1y!@X&7?piFkO?!-6am^_Rra=$z@qbK)ixZceWbhcn7w-E0HWhOTi#YSX!PeTY1QI z;(|?8yu8lS)*^vEj3S^g!Z_-o*?amn;HXbA2mOFzR=?hF+`nglF zgbCEyww)8nof~R)O!p%R3k|uNCH(w}OAfk!H`it3Nr+ro|7UgfNi!;PXgR6{GVb|iAcP{ehn|(P!>96l>lIacqGn@H6 zG_soUm<`8qd8LBKpjvwG;iq*F*Gf63X77=jJd~dLObQFS8x^$>G@U4u9MEtce#T~F zRi)B&EIT{8%?L7)5hOYOvpX5n!AuudOiHk1L@m(0+)X-EgMvinqeRtG9u8IZmk%X< zD56}#J*xtbRwW2l3BL_0n-&f_brALwJyL0`_h3dsFS zGhzzKithT?!Dbm7s7~z>2pQq5J_{ z#>DMneb(K2zMFCVy>_U+tP6RVg8ZzqR>3l$qZJ%F%2CO$i5^eRm)-Hgp7Ypx12D8- z^_V0295P6D*ssex-B5 zIiD(bbhGPS_$p}%{v;GShnP(NUNt;&tv{7owy_*P94C>Gr-ag4vT0~g)OvSYxc2OY zs=VfNQH`)oZ22``e#Eu|DM^ai&>R-u7Vy=Yqp2Sm$%R3rv%{uc!zI#9x`z6%@higypXzYy~jchf5|=B3`;jW7 z&=tc24+CicnA*lWlSSH?YbAL&Y_;j#G(WQ-=#?RtjH|+>z^i@QH??U%x=gG&<>T(r znT*M`FhB{CfQv6V&Hha*27NAnBUMameNyvCHgFzMCF%2dMmSQD$;eT|r11>Y?%(H^ zW5leMNZYHR9v^K6QO&r7ZDApYYFYhm4Pbpy>(pwc@YN8L2MxTmp~D=*42 zZ0_T|jj*O$ux1J1Llw|W!6qj6ofQ#xEhBf0{WO1CxlMhkJb z;;=*f4WVi`ModR{N?vR1+hQVgv89L0!NK4SH{}gvikNJjsnTE4Ggp zzm*%jF@5`%n$nh8S^@Zomvl?LJ+vU_F&)55{mZOB*5TKbn&P@-)N_XzGhXGh6?ALG z$^I6yV27^s>L!CA+DN);ks}4GQ;{>;7iIZSuXeD$L@e98=xoeu?yh;J_1ezy7hFFk zuSbjW7GZHtd6hFQK6v|MQ+Gro#acj782~|EVF)P>=;%e-x1MX}Is)k^@8Y#M8AH5m zw_J=3otQHafNj@Awq|2iKmG7-e-VU41im>j*Utljiy4t=JoFV8qv-s16vP5*W{>%K z6p97TO=VJ>CbY$>%#IzRe-XanwpZBVzH-Oa-gYB%n~d|SDD?aKY|HIhpW?tk1=sPu zSuZxo5769Ix+(9VW;@%(6jUVOHA4`LD_pT=#ZXFHQsqmfcmY%Tpt{OzV1SAI?S?&q zpdRYBR>l5v)a{kdszzpwEb!X=kQ<-5EBYc*ergVtGooruMpNt+FOIs z#(1W4p#rZUoZ=Cw=zKUPotw}-?;Fu8p}QIqx{T6f{d5$xLHEnyt+a+p=`CxBf+(kX z6IFjilXq$o3Ul8=OczlYx<;lEWWr;E3=<|Sr;>JOr^U{VXXn1t(Dx!hKr7DuqNQ9v zxE~>~aO~~w$B2^K`KS*S=US0CJ}Ts#)HHL;6>$*w&9cs8?+|CX|DqZH+UB>;45&B! zcwAG`>L>A3i?8AS7p`S~%WGprfk7qny@PB6c^2u$cj$yiOVyP|Cj3Hz zBjj*_I*iOm|J5lJnJC6aT^B=lblV(PSFtk}9}~!48lY_9ZI=Ny+q5}`Fs?ecy3&urm(=+g?-kwD*F}7&GPJ>)A}yi&2~sR z6$B)7*keo)#4t#r7~=41VN%Vbg7|TI-%E_ZF7q5(aW&~n5v*t@=0O{uxxyKB%aRd`9MNi9*5LGthn>R?3>y zSMf5gwI4E7D73L7C`g?h6g5cYU~?$Vy+dZan3K~HW|hh1~}KRZB8 z#7VVLU<_!~D~nLn_ct@4USUY6({F^_&xEwN8`?2DE9SF`7q|;;eKmTUL1wyisAttS zq{f0t%|QY33^uKZXR&n^Zc>XJ5YKF3sFucWHUsLww)Oswe9q%cox->bNexRM2`Kj7 z9#Uj9EQlUSXlt_$UgA%f=<&Bxjov`R!7nFugi|~PS01lI zm#gxu3YVPGs9*hFA_K{;U430RW==ELNphP)ScW$1Q__L6F&hzUCElaf8-YL2e_^}# zE1vo>J#?70zCU!BQ(v}*I8BCZ6_CmQpr@!`eEF21DonK{>r;U8IHl&pM+A%PJ11&z zqRZfGwC7?lm9bmaH5QaET}K`9j*oNV-dCGG5@A7Jsd*oIB+QN|-FcxNEwiN*M6~tsCDaf%nMf_pJa*5bSNcVhg-?2iGjN?7}d36C`DzVSdOe@}6|8N$(vMe3j zd;N;bFk!~oB8yBovsh}f^|tn;O)o%3lRQ4F@gy04gIc~;nefBS;rJHRuLf#!C%=vE z-V;6J4wg|S5{-xP7~3Tj|F{+qq{8NYr8yR4LIjvgHcf>8zFig%?SCEunWvFk`3{Jn#(*>l@n z+5ocpX>K`P9*gI$s+9>w;~fDiQ(;9wQR9H#zA~r8_}jDJiZ5Az4aIQNy&I)jY6KPL z*;vB^${OO(g*cmq$F!_WPM3hZ z{3Ol(eGnGw>E#lQw5?&rpXQxGWecghEgmC{zx^HuMV7S3~=Z{gcvnd<-Tm z)$NyfRS)6Co7NQiY=EOR6x+;(K52IP*(l`mL6At}Rx6_Jpe#wm`PIX6hN&$@OEU{L zg&f4y34IZ$9`wh>RPT!Ty0XSuIe^it!cIiph^x3inPli(E|!ohz+h!YI8-TCwfy@} z(k)#$hXo4+tD3$e#pqB~@j`&LVq6xpt7>CaOmpIjyHbVq3HOeWdTU8vZ%Hh|NsiWs zub9dA#k=8{^lec+-L4|>BYMD0oulY3^1D*&-Kcao_{V2_1BHBquBz~JFr7SXbv+!= z%~yJ>$4HGIzvJcW=eq7qu_>gRCEIC}X{1%JXoEgmrB{-#oYI8I-VCbC*R1L%8Gd4+ zQkhpQx3+5myqrI>$lVZH zi&sihzq4Mq{(JAnuR4|J{dY>@wwgPQlds;AxC&P{#FggA9#EYZ5~t?Xno9j$<+q9> zOzSEB>U1u|Kdx)cOuTy)iVRXnff=G<(Z)A@Pv)MfyA8?UU6~}{`!Z&-o|&&iNtP`K z(CGq3PQfXE`$~(?baAKx+GFA+l|*YaPBO=8A12BmGbAANpH+54VfC=FGI=^c{kadw zkH9F!lm(rR=i&?dN&dcIb@}&-9mmGWwN|{lF$Kb7r)2J>g1)Gk!$c;!U3R`GGt(hT znBdko4q|z_^n0=GB@ar4e1Z~?W8MAd7H&k)A$riK;~y!aEm(59?Hr)oI?)sJS9rBx zamZ_zCT1pvnl=h=&$71c^gIP-em2xVcWS1FhKcfLgMt^L)AV;V?dbq{W~9vA->z?3 z`R^QkpnjpXl%v9#_c=7`YoPv=6+xmlbD!lkA102Bgd(vJ=VXK;1~~soynQ`huT+k3 zy?aqX@g?OZyj_c6;T}4dZcQ%%>o+ioU6Sll7jqj}oDEYG6U$Im~D)3+{ zSByw=5F+z`jgW?P z8vl}NicIL_TuJ1Q@X8Chn0bFo$6hl{-hcblZ<2QA9Vv${EdX96vrZFfh!4tCbF67+ zX&MhRp-)+8G0$-obB)n%S-mJ{Wz+fQh*X?l5R+fO1n2sAsX2&bvZTg}80_Mpx*j*F zHltG39^aLE)5)7VB1=k?GPS11Fm718^|Kjh6?@^Wlk@XT%fD$&!{@nU1tbOR3C!SJ<(92wxw%Tx+a*<$NO(_8V)d1##EhPPYa&6kt*Xlx#$5bR-%{;>tSxcYfkZ%? zzXVbdiWs>z2qwKT4i6adSJn8%I6kwSzmQFon|(aECzWde8$tuCc%lo4TjmwKvYF9# zP1AVGPLPxHtX!GY)Q*Ir0*^SnXZ2~n$!enNeK8m{Xe+_guEQeF3A|YCcW(fZz|#|{ z{?m_WHRA7L@b9WoiuLn;WMB)OGGZKi3cy2jmcp4Y|h&V|(N%Zv*R6wc0DsV&; z(?$p<{$@*8))9I@2#3GStFugAnpI> zXtL*=gL#=3opSLQnh8OtOOehk!YUEdqY74ZZn`$9QM7st)~%A*o`6xZUj-E2TD)as z5^IZ9(i)oyiLlOXFP=wck;44VrGu`n(!^uv5<&s#ucT+lmHJA|uq864_RucG`r)a3 z)Pb6%fH1ALs(RFbjvg`$`C4{b{a< z8jypR?&{qVV_Cp;YEPSaj2O1o^t`v4p5~|N@AG!HQF~-oQ z`68ZKLoGMO^VYMiO( zCan3*8-RAk+`;Xq>MtLFge9dw1`a&xE!&ZkH7KO zn*{0@v@=&!9i%!e0%i1b+LyK7f)>^GQ#thC3U^;0YBeg5Pm_NsPn1C*xAyCq#dL8I z8_{RFHw3pP9zZqB#AalkgWyY&H$QB9XT9tCY?0qMm#Tf;Mh4|_AKpLSP35B`-#EQ`ZrRX*pl_V2^?FN*OgMM&ShDfCp!6E7b|_S zV`S9Jn)HoV7H-t3u?V;T>RE0gyJ8n^LYgaK>l$CZO|Z7|@Oy&y?`~+6>X=fl@A1aE4#iUL<+b-wwmVSFg4J< z*}B?c0*cZc$cE1Et=1`Gu=k7;VTW-^0b>cK*j5N$;JMxTy^elCdrLKC@>9|0g-`$7 z=O;Cqe+Sk7&t$;AM}Hz}f$3*Ck6(RnC|g9wY_-;UR;1GuA=UcBXgawQN~C*zpM1t` ze-9Z6!%Ml6I`Ea`k2e0&Cbgz1l9TFY)ICm&Da6_F72`Ql$@ob8$t%*S_MW6+cN$Vn z*qI*0sOab-IV>yWc13wu!*kVXo3^+L>)xs;pzr1hFs{Xl>=QUb$Y6zC zqc9~N<~fI!4>o4!w2UMq0@vjwP!lBP4}>E+Z9jXCH*Z=_CQ95{6681-X1Bg$N>KfD zBNxycOx>u$Fr>sycy4K5`iL0@zA!{=6yw$PE==sNpv?0^4(9p}eX|9-rtNIBSLQ4J z<|>ib$56~sc{A{a(-2A%-4+-aO;z z0UQRR@+6{TCTZ8h!~vG(WJveF%iD4An&7I_>tn&!de&iH3?PGV?aR4&4PkymE9jDT zrp)VcXhW2q6z#_)cbl|)ZM3Z!@68OGO)AxYD>^tS#ds+y!zNL_QqADdO@CuA+NF*-)bKJwEk$(&QzD#djVMH0sDYHNU z44?qZQyx;A2gS#62}MNmVh0za{sl*6Y>p6Jqm2DtDO#^2swfzMRVMo8Er}{fr2Zwj zzNlT;7j64qj%?G-EXX+T)$MDs;G()N;@@B~d6yw2I(=&rt8PD3$7g`!LOb%tkG4pK zEi2##S;De$_HqU5_yDb#@M!VxMIYIiuladawi( z*IzBPeweT&$;&rL=7|>i(Rj_^T&V8cF-CiqFg@lCf)tzzi##<324f@Y%836jn38q^ zX{>z^xf z_Y6NKPo7SMQb#edB%xlNlEK_~SQoK}wPo0f9V2hv|9ZmrBk1@i84tyyJ>gqBU!w>R zA^0*bpfb)KfxW{FS3AY7y&PaQ&*$M?=Ta zhaAp2PLhG+1jB)k?j$7r-b-MqMPa0m;P<^b1Yx$Hn57|udfoDm72GaAt=9=uqN@e< zz{CB%(g<9-wF4GKx!!rr!)jDmYtB!{RshEhg0x5ZY@boeOJi+=bA!>Um!S|dz!~x# zUed-624xWG?G?(`SLC}f604bYCIRvGdXaay_8R41a6fASTNw0oA4D`85`Z9X{|hQ@ zOy0+WQjC7kwIX(C8^0}CU!#I)GS}4z*bb|!<`zST^I9-JB6Ex(*%^bI2?GcZkUA6{0Op{dc!;YTGXPJ0B0QpYhdV?65cH+Lzd#C;@&a>-kX|srW!pl zPawsFRo5MPc^ytUL1zjTkv6w-C2y?55VXW#GL|_vxm^-0*|=j?f!wCJBd%m7xS&i= z3|!`eWm-fc!#~XW>2DU;QAw?28rd|3J3j`MIt4b{nbFZ(585b`K<$yKhJn)dD@(7m zR~rrNpds@R{Gh@T!R6|a<2~#sJvO7A=%l*ySHKxorj}Ya3iYPJ%=YtPiCOyf|_4no!D7hOocfNll79e z8FH1NszK}keh5p^=~-*0S2`otZSS&;w~w?4TGi3rZSML!(JU4=VV_mIdkp@zCwuzS z3Tad0P8J10p(|qWS!mwPm!Wd+E!bvGWIUiDx0*xGe7}ss%iM*)EkkXLWf+bO?bHA( zIoBBFMI1{TsabDLJFj{5eXlfT3t)~ui5iKX-tsNtcQ`YclQC^zxC0^Vgr<3-wOP&~ z?n<4eCs`m4QQ;_FuXr|o0-Z)!1y~U?4LS6Dja)P@OJY|sa&|tP>#?5Rkd~TZed_Pz zL_hEC@xrAHSeRuu{pZZxj#qtMrPB`$mCh=j<|Cq3OGTPI%b?u|Nl8yXjIn`%v{CO= zY2$L&bs`^a43?lPiM++xj?v`bcs!UCWXl6xnzx%Y7G@VxuDhJ86jBPBOmA{WT z$@wQJ-caUWcv_JXomyu!P{mNUKcs5{mVKfM#e_#^TQ&e9{;dxnx!O~|@jyH#uJ;I2L@D#}KF`f=e)0tXhd&|Reyj7QVu3Qs3R;X;)bIa`s`qeYvk%*bsa0Fm z-ijhdTP?Nsj9NkLRa9+3>`kl^Gqk83Bld_*QCp4LV$|NNW+}Zt&+|U_`2L6Myng3# zoX41+e349{h-||idHkC^HuCh_H0qGF2hO*^u>>Xj$u43$sWs>>0sdWaqZ@BVk#(R; zTINnYEj1&)O~6cQQs|3-Ektf5OU3@&XenU;aH9egAszb=v!Q2{XhpTkqsx*JbBnjn z7hgm!$alIjcQM0X=sB3ZEIsU6fe&?#~|ol7qR8iW zDPX2ZhiR05Yvd2_fOd&<3)9xUe!~FzIOQq_X62E!?jjPqT~<{KWl00)IAG?Si(j{L zf4bcwkWIa04i5Cno$;w~(oY&{!O=v<*PjhXG0%Mvg>dF3z#Q>or&b+o$*%0;7TkVp z@opCcy%!NbBkZK3&NO+9w8Z%6OGN_nQARcxs!!xbML;fDs?!1P70AA!=gCWmkS*#9 zQ4CEbtqHUo-!;*5WS*4Df549~qPp6j+Pbk1o!-m%<;o*`p6;PA%<=w|Y_G@7#TlVW z+-Wb1)N|Zmi=wtRR3_|}nO@uvew073Tg(sUzbtu(VOT||<$=oD59Z3D4mACuZ z_=n&Fo%HY>8SZfi5+zMj@vy{nTD*|c z)nZA>o0!vnvyxMmgCZra)NXQBU+N;HOxha3RG?7e&A!=*)kYi&iJ>W$79}b8rplm$p21HRCXKs~F z?@D-Dj@5NrDI-=c_w{_d2Xs$VH_h_O2V?=t*vAvF%J&U0(>M;;wvfcnlcv4?U)(4S z;OpbBVR=O-2H~%%H(b=5?T;kFL0(xn&MJx$oau~i9u!1OEY^9{{>HO$B~Bc$0~Y8O zXsr{paA!R)j|$N9=q{N91p7iMx!sOH*jmEZ9jjs(f;vm^(o1!@`lr`sx_{@>@d1DS zUk*3Tlb^yaFwgHaCA!H(wElK3>mk$w!MHh^7p6raAUnQHX^sO8xX9juZjK-**fvbv2DXeEh!J9M9teyWAT49+ zd|sFsuy2~^^Zig%rX>@@IaEd4Po*H?-QdT$?NIac*HrF3*G#C_s^!~O21S%Lj!tF> zA|V^q1%qzR4>`W+XVa`ld~|*<9ZUDI);!s&nTx*x87PcB$+}yj@Hjx;A-05prt!zd z!JXgklO5RqxkhN8-74;w=wia7{nAJpKKe4mZkP)`+bth32N6_y#P+Q5--1hG@YC`F zri!@Jmw>d#)Y~p<$V+45a&0451+{t(&0$3KZ{3AN7{B#9anD}u>x{4U<(rj|?v~x* z2oV>Z)Z5;U*PGMc^cVY^Ck5_u_Q#0V=8L>V6;nWmCwcwZESC`!iCB2NQc;@ifa?wG zrQ0?{_S1BmRcjWS9~^VSwuh}5+CP1B)0Qmsxl4zXe2Y`QLKZ7NMJmSvVoy!N_Hs-B z5I*B*u|2=@5$zS`D{$n8E}gQ-Ty?>y1v|fh@4H4OG-pZnOiV3GP&6%f^bFaWuX5kMhSSEMu0CBQejyZ<>=stj%E~Zf%(PU-YMrZ19I#n!Q>c&lm zn$Auf)Gtyk{2=fNwg*V*&f@2it~x(SU46-@K-%B<#!6L{s~1bJ=w`jK63-p_K#QUC z7yp>`;M3|3i?=_99oAX?OcXQ$EtI=ysP7)$Lpl96sR=Tb?N09X9>Hc) zidF@9Mg@a8((!O@hmDQ(HStLFP4d!U(3rFCkdA7ibum{>(iF~|H^CtiT`6d_>Z4`r z6Lc-UG2wi=mPaCz>-7i`CetnbxkDN%1#Z7ddzkfHh8m04NhVYuyNA%Z9_c>GWreN6 z?Xn(shxjo$8#Z*#ntuVs%h^i$qk0S2u<-mR^I%x62T)z%8242tuBMr@FmqB z$zN}z-pIZcQ?u84#zDN4GBvY8!XEcv%)Q-_G>nEOLGqxs!E^cRee~KxolCj#K%WW?{`i@h5Pj0`eN2Q;|M1bj4>Wo=ktO#` zZBpbz?7Lp51T8(EuEU?i^RicyFSWSR!X54uxel-x4CRmQe3#TcnpLa>2;NB^3y?+> z+S-J|zvfk1Z$NxGrtKY7-y_ZFtKLDL%3mV5vFk|+!A5BAjoOwj5mZJTo1nZQ763RQ zx0~~Z{8>ElxA;HidO2I~-ON2^rGpq0!%U0`hh&Fp&Sgc%(*2OXk`ymOVqfR#qjj#;V>J*cFd2 zVpYm``r7|4s|omfusjhC|3{zyubIi+qPKk-^lQF!jaT+mP$-d-z;)~y!4=rx1H|MB zogrs!&U>JiDMMI|jf8N0C8a6YD=8#L*JybGkS-pN=M`_~2WVukLy%mcmM`nDs+f7` z^poosiioxrnbn=Kvv}68^yQT?WxZs8CsXg;i*S2!2&G0;C8_hOu+6p&ty;PS3t138 z`P2u&`PEPR9o0kpCG4syl-sFW2ldw`nNwNqWLb$)eD#}9v>%<4F%zJ?D~9^#X5~lp zXon;`9wQ>Ue(RIc#I_~JUY#K!)!kqEiivJzg6HN*u_pH}c%<3GQk=K3F=xC>18h~1 zA6!v-2aBv0H|A)09v)H9Ue!N{$bhG`;{Ux2ogG3yOoQl+!I*}W5<2?7uy%Z@O~XCx zjp*vsv)e3nL9f=Uc*Q`-my4cb?Ru=O2xM4wE(7}~L9=}J$V_eG9j$a=c$EvKJi`LO zIe7Bu$x6&YJ$Rz_HK!-2CdF{$!Hf2Ogb61je_1Qoq`b`00mkTVN(Y`ysH#HvmIS!6 zEx`!BEp+LO1V5O@@9E8>)NWn~ibVz3A1FOtGk!&Q)!7pq=U^2SHz4N*-_>v2jB*Zs0?^Slk6aVegx+BGX)lmE33E! zz@mRIz;G5d)RV3zLXX7_BZbD*o)t#vZbcC&Ts{iFn(mINQqompu~3qaegiwZul(7g z^bgnnBC6vb4>}RZZCDQlxaPMYymmLu2`KmxlxqZ^6isYI*O(!^o^eckm5vJd-he)3 znv4Ibr7=#WRs5UDZN}>#?ulxu>rtiTGicY@I zB34@@FmHdUb5t(2Y17X7&V9A`vqDmGc+&wE)aaMK`>Upjiizk&ywi3kFW)!n&u98* z)Rp#xu-b(4FH~gw(p%H6cr+ql<@o1ii-GNT6KYi6Ge2%sC3sj+K35M(NgA!bo zcA$|U9QOde^b;($9#|ofAqG%#n>-k?vq?&YfAx0wE*r;}$(<4Qq2SE|t%ny!+>sL- z6mY0biZu>SUz=WPePg%-q;n)>ejt~-DK|e<;KCtT>Q;y+^od?sf1d9S6ttY<{2nty zd2Ak}&hc}bXz2Di85K|u9(7QPg;mr2Iolw4z2U1B8ztB;HAlv{Br3{s6Ktwp-HutN zFeIaZk>J`5MWkO-F>PffwwIF#vl`iNG=vZacI%M`mF!*yJ3B>aBMBMnPg)=Sz0m6q z5&b*o0{qviAA*MSD2gc10epGJ5W@3 z)jx25%;C70MIfp--~D052;4Xf_`5%Rq#87tV`ReA4YP%Z4suP^ zMMo9AKy#-!N{qn|R)Y$^ZF1}pM-|Dk;ovMn87>0Yd%wj*WU?xoEt`u$XAW>%{Z+g( z-a&2{uPL349Mq*pv$w5!m6ur#r}5@y+WA@HgYn!GuP}p5r>0Wd*%?G`a#%!&$c^WN zx{fFK*Z5RS53vxxMZV=uFeQ0-z2q9>NS@>7-0%$m{8~BvnV|o)x$y9)?TCLcat%D( zF+H#3aHFou`eh*8=o=|n@!Aw`+pLb??2D z8R581`lTP;@wcEQRjH3fQq0q}$E(SYA({TRyd|%1N?cT`;`?&-KK|HILWLO7@~JNQS8IP(sr3VSb5yTRD6tyx~3^ymI-GSj155_pK(RrD%B;ZUU-- z0T+gPouZCYIo04o3|%&k^tN*~H7J}IugxKUhtaXi&Vl2fsC_66LWnq1PE%MjSN8=i4bvZY+hRhXPJB3vVsH^! z!p7Ng%C_lYhw3xkM||=l+^z|)vn&>Kkn@NHlxF`CPzG%D-q+~j2Sw5k;L1Xnza!C zSVG31!l`U+U!eod=%Mvb72l@fM-!>-kvTjcdY8IR{7SQmow%E85#1a#Hs}fM+Cwm; zoEHwSy{aMsyOoveemiuw1jwl=3^Sif5D%j^y*(0fA}TlV6yH^5gE- z8h-gJ2_%K#%fm9c?kGhBkO;d$Bh&z&GOy}tcN3afUO^p~Tn3=eKj9A$BQ14#`~&C9 z$1;o)e`{?itEDA1A2(f<>bW@+ia^_h)9aVMt8)qUh7JO2jzdbx=YfA|uxLv*Q*QWm zb2|2qb-KT>oE<;F2n4JDq5U2HzN831e||I5A`}4F@RT_4Y%iT(+6xns;@Q~XAad_3 zd3JhSHHCh2v;LY^NNXr5CVL`!I7L#@P=pAP(L3KaL?{2!`GG0`sT;x4kHCZD^*vy4 zMCoT_eJT{Zmh;l|v-(z2ynj?8KUO-^2{koLJZ<4^5Qj6bYYUKWOd-4JCKSJ+pBT#K z)OD`L(9cNBw7>MIqyQ@jx`U zNZQu;&_(^6tHyxyHA(vr$A}8Sou5HylewzWM9bnNSL7$Fh9NzJsg$^>c`K{bWP1~n zh%*i8h&F)({A`B#Y}2elNpeX%kN9w*fP|ZP_Fq`!e;B?#-m??YNzVPAAaphDCJZieoEI2R zZ92$JkG|k2Ii9Vl{P5}-wB?1BFU{PNi{Y5^eBn#?K=rS3h}1t2L(U5n{PUS8mZ*vO zq#RHfhtjTd-oa2eyw*EnnH(qIVBuz(a>jf&Uwl?C*Mb;#_LpS=xL_~94Eo9Tk zTLQ`iGr>A26xtqZQiyq{Zf^pUpsMF4;$g1S^{m8Ingc{TngU_FHl|i}K9jjyPqxza zLV^tg`1%HvYRnmk!((fg4`xrU?YtPFK28WIHG$Abg@EHT$fkkuL7k;S&!WIoGBCF8 z_l{93>8mnC-Wr1HxBrfhdK~(7n}08Np7s&>k+7)M6R8B6I=D!)&cNF@O`|p35PNIf z$K!VwmJ4(kQ62VpcE3tKGKJV7BO^VV2nyu6HY+PoEVqfGlwTsogmlG-SA}8=`4C9S zCHes5PWd`JeANuQJ8bXq|9kulO8)!!ElcDPuUAo=&=5iO7b^YiFiVyGG2~*sWf`ij zwNbnhGZB58eNox5FP2^nAUS`iD_l1!H+ROO=(z{z zZzC`?##v~HO&Xj0iBu67+6$cnhhP(3ehH(}5Pvs&*0NR_Qq&#jKn*RC8RUUI5b`D8(y8fBj1_ts^8Fw9vwop=i?5LQT|UrI?c8CQf;Onhj>bm}A8EZ%w+sUS6bdbf?;qG``Syar$< zS9j@vKl5o5%j2eP+uOvksSgjd>cG)W>gXAlfAY~Q{wA0V zANK`--?oqokxw_@5wXb6wXu%PGUT5TK`66U(%0*x=@;-r3z(m07GMw}k*77!LIxbKa{0Yq>wu}eb-SG^zbInZ7 zPnx=YnnENrtQaS*U5Qi~mLXZ6Y(7UZvbUH$rh9wpME&9Q?F_>)RMX=XJCEH`M?mAhK?*dSG-^5&eU~&-t_q2gFF+Kovs_vKX?N({@6@Bk1MbJDcMJ@dK&)H5ef?$|4T;CS z-AdIdKbss@&#Q3Z8L`;Frb?I;zvLiWi<6S>v&j<$&4)@}xHyy2Gpl2>v((9|yR&;0lME258o-0N&9X|pDsLGx zMS-Y!+cK`du=Et(;br$aLuQxl+?lmSfhrz3Z{QbQRvs5F7+T@3DhS%ZdCl1Q#dcjO zdz0%!h#FVXAo1RF?6a}Hh8`Fc^t}vsVm``G01xA#yMsXIa{?XM9 zK;JoH%EVxABRF*C%cFgnD^L02D8+nvlXSHhuzZtR2#|Fu<=LSj^&JIft6o}=DW}v_ ze}VE{^#umCoQ-tp6TFRC)yHJmGK^`obe~4CxUI7)hQ-Bp00tjwAm+&anW;+i{}e{m z>uyQ}&J>eBwvm*?f9`yxD! z;Q7RN80inYRRgg?D;GxU5jHD>aI1S8YG`a3Pfb!G zLsQ6BY~i-fB(qaL+d%u%AA8n~gzk3pXD$Djk|4A2Jx@q$w7mfA^|h{-l*C_HlP>om zj*ZFX*s>=@i~x2uF=i=z2U#qt=t_Mm@50-geN8S$r})mYMu*RH$N&}M!SgdgZdUc- z;?GKkVB6J^TD@pDCMOpNnpcVYz6y0##94iT*AXwVxo*JZN!65&OKf{??|bB>8JE54 zZurmg7osrKvg&KFo!95gWHJms_4n4V0GXZU1(boU%9t;a4#x zPSf1~c3;pw@mbsB{23fWRuZ;uoV_#Q2i@iEGGy^qm2V)Sj;%oEiPg8cAw(ZU-_HrK z3eSy$>-(A-Tl8saBS*xMjJ^rWz@RmlTOn*MKUsJyZ9;?Q+f$mg^y{y1)NhAR zwy`pRnuxxoVdkF%+WpfLPXP0e8tC0zq{Ksw%zyo?@qD#8L3*V9y9bGxQ+HzS%wi+k z=O~pi=-)3%uL$iZI~o*G>`paxBM2<$07wgdM>sxNETSQvI6tUwd=wU$Bh}fhSJ_#n<`l3NRzphlkKhx?AJ>^?}d_#^fedr~>;mH1i`6~=7E96{wKs{G{7L;{G zZJpWNP%{TuV3327J+IYEr+{2cnH-g^nk+!hh03A24qY-t7ltgA7NP_NuXBo)sraVN z7gtqR#X9y2CLUr0Ujjj7@^WuD-b-t!ukkpalmDkVJ;CK*5QAT;9}p};_uZG-fKre9`j%89E- z1+Cwv!HP=)XU=^>+9t%j=Ia{)(ZbeTk&Hi^WP~@yWwe*dH~0%s&~5Sy+&NmW)wUim zW&Wg^qr>xnpYS`twmLGAAQ}8liQiQKiwCwHYbw&J7&M75KJ#bV8Lt)}vLCzs=~Y!{ z@aA20L!%ByOx)`%es&^~NZ*ueYmZp2`sC++SN*wX!U|@v@1&A^)&|$hb4GB=b=l-% z>bYwhmVVZlDoJ2>wa7@Re#t9b-lU{Y-`bne@QrnXu2BEr*)P=ktPP`50Ar7&Zv>KQP|CIGqu_ay$#nqz4I3>Vjzh{iIcJNiIux-*9p&z zYr>~iA?~xz-T)bh{F6~#olWF;Ui1CxF+I`d;nj+#G(UuFdClr6TqD5W%25E5>h-UG z8!Oxu`1QU^O;DXrC#4yeRx-L@;bInDKg-u2`XmlB{;gEA38SFN?T}#ve(hICgwCIK z!OJyX4*nnImwd**=TOdH$M!(c)*j-JAaNsbe#<71o7Vy@Hf}BDNRqs;^E?MC$}ho3 zn%locEB5u%ELH+cRiKT!72^@R$cXqlB7>J{^2k+ZH7^}8cr{gx?-x2{S1DO$kx+0L zzH1t+AEv>-l0HMedQL^PM@BdI$#`3OerReJ^u5XVb2CTjq0#0EoqZ)sW5QHfe$qJU zvCD%#CQy@oyy_xteVwmh6@*vwd6wtyhSJ*<+bHFI?sJn>-}I4&u<%85ze(D(yhQP= z$H%wQq9rZzc(6jD+e!;?S=p?nF}F}iNR{W~uqt+K%E&FmcZHUi+o@sAABz*AA5XgP zK7ptxQ;Qq37X$q6n#-PKL^W;|^V`_!?Jt0sBI6ZoEqIHE(H zPGtsP{zjEXQWd;9sdv;g;aUKO%`eAQYsZkel4 z)t@G|DrNMIwS3lud&LGW*$&`bAvQLd3|}PvWtdD7p@P?|${Y9>mQSe)QUC1)^VUf# zsU^0#sN3(KP{}6mxAS!xz^R1@8>9kDhwuK?6lTRV@@0KlQOUm~|v z&E(Q6jZlWbo_VbHgdc^;js=&^q?Rt%jfK|dNvbw+)uqP3BXV@wX8KNO3;2rfPiwCd zPE}UT^MC&nwnfV#dK87|m+~8SrYMGLED*@t&K%nKoH6J=$+VR>vHY#P`#~G`boxYE zg_<=MzNrHkU$id=Zf|xECCW-k!h>2aMo`kI5efLZoC;9SuGC2C#^9b=FGt#Z*;CaK zm?*F#ZM*4jiz7*7VC-!lOn_ogS)hZV=hYvsH} zDd!&9b1aHDAaX%^U4e2~qL0t5vptfjsphfg0NWv8r#9(4>1Tgm(PCIxq9Gc1I3qq@ z7ecwj^IO%E4LkX@-qC4ZlW{?P z>*y>)pf3^A=Bm;0G_|Mlq0i==^gnB5g^sTAKl>8ThlDH#e@W{#32rH2=arS5KaO72 z&AE~Y&j%yru7u%-lHIDke$(aUtClfDT+NRQlPi+sL%F3O89kFAN&{&PIYCT0t$-NA zD%Dt^+I_+v)_uISR3#QFt}sLAbi&ZS!AQkywLU?2`!1}GRv)V);mt@nO@3o!C1nvG z&JQErLwNY`3g5WB!$Q-z{>&X8Di_x@F`@;Qnkb%Je(gte(&)D6Yy62Rj!*Jsmw>w8 zWKHqc7ni`;QhuJlu$n8xSgv{=g~!blbsv_Tyw=gtcujhz`}I(Eu_$@+Cx_^sUP{*K zXi)S;7f10My;l>oO|bBi=MPIQBTNzOQ?I{?^$`*@Rd~r-NOYf@Mm#??RQL!2so}Ky zQ3q6sjtYzyb#Z22u(`Ff2XZ0(-x~6rUF;W@V_-=!M8OET)6u*>-8RKEu9u`BW9{*Q4Uy>axkGx{TczduO__OwRrcPC*Hml`FJfq)bM*Fj$s5<@rkJU zf^0Hm%e}ZI9Qg4a%jddf247NinkLt*7;mueFo_)UB=J2E_y*6#iWQ*yx<9(#`$s2U$N!PUEU#> za*Fz+{C57|v~A>;d39{Q*3GQWz++}a9PFreI`x-P9#rGcx^#D%v0f1!Uu3=;llERA z(_dKOtpqCoh@$B!e3wRWL0|;0E}$KGCbG?n*_57m%j>|#`Frk+q%6ZATqDFHB$OjyYmrMz4^e0=qZwD_vd?@TyIL5rS87kkIll-X5-b3 z$yl{@?c3TAV0a5*^=wj<`BLAf_xyExnO!`I$ra64#-V=yGJBUv&h;S0TZ=C?3-q$v^L5CcbqAAbkSU-d1Gy3o8@L;g_T z^IB_0(gQ!h6VY6vhnHY662liQGj|f-<`-mnn6Av~x*y_(NR){!Lgw^{%lIr=%C;t< zK^sLqGoZ+!T7vU-8KQ&_3V=S9<~QZu=v|dqffC-h^Uq7-SZ&bXH+R!E9tKR$Y@%=Y zB3nXY-0%zQHw#;2eajO@s%DFm{$N_Z{@QehCeq!m!xD1hIC~(Pqw*H2oZ;KxgT+Ne zG(`nPDwimI;JC3NyJB`&nd7}Z*iBc(R{V5g+(&?P0Hlq*gRg6BN$sE*h9@|D^0%wV z@9*>C|5mG+daq|ph)(vrA$f#4x(mK}f$6(VM$7V)P$@mwp>k*{y~__M9S@Ar407hM zXC(piVvN_-Kb5?57=}qpV`b2$GT(J`j#_C+7ISVYCA0p{ zQG6_H5`#ZG{UU@&FK)?dn5>5PJ_Mea-3(ie&H5_#e9*^083V9$Z0fM;N*K{5CWLa; z6NtkH#YB&1SrGn0SSH~I8~p3!hJQ3p()4C+M}kbBnkx`N37tgOzdBH0lmiBKvo@GW zz-w!BF_I|m)0UxbzrfbM?1@<@*Ez3iU*JPy1X>U)Wy)?vwby-Ragf(`I%G%f(h%#_ zxr)M(h^)?@H1%|A_qBl^A0m7HiP@Yw@Nwe~g8y3Y%U3JK#PLcC5y1r?(xzolH7SS4 zH08eeSf9F3_$U^o=8HSTTUgoD(*@(8-_n2zd7Pk@9Z6# z_i|AkrmhVDCbXhOyY8mBo0=d>-ZxH+9E<)XnFi-*<}`DAnXJT(ZW#2dm5J;xPr94E zh5@6nmb|noaW5z6V$##)d<1V84W=%BXYk7J9xUsCtV6wM225p*3?i=VGNzwbzOy+p z@@Z=LWK~^ExLYrvXlcz%4#^Q;z)QC>J(eJ&mSNbIL7@*!xH1%BN)v}7Q$;gE^%WP? z0qztJ9z>5Jbt)T04X|w-`@F5Jmc@wC-N!C(iof0;yVac4)pWTb1D)Jh=WI6&t#34k z`NF4+83h6ZW<+)c5ORsMj08jwp2Y`&jcc;lMFAQqHT4|2_fJoIYQMXP681aPGn!Kp5PSbG z_f7O4+p{EOLU(Z8;E{=%WC5yj9@mZlvv_z?UL~Sx&^`O&>v##30hTd{icsp#0o(pb z*e9bT>23Pw3r#J9u1lKKA@~wGA>|n%bl#Y*5=Vt{ykI_eDi6ZlLC@yYENFKm;aES~ z$~v6TWl~N-gEj7C<_|#FE4v50Do~`5iG-2lOtY$PAC;(jIPP;KyvLNxw_+;En?CVA zyo7y*ClqGIJqX&Pe+K9iiN7f|s|3wAcEiopom-Tt9yc*ZmB_SI!UwPfaw|e781mYM zzuFzA^R;FQWc5$1afmLcaWa<--M6FA|4IPv2=_d1%G4X>?e6ZnffyGpy3|>uG9^+qfPm%A{+bf)ds8xud-O<{bfZ4b=JaKi31!1=ZTyVG&vF&0OzBbB#5nS z%7A`l$6<$M_JW4!i3IrJ#o^^eS;qSkZBc_XdeVJTel$BTwEr_7My1T>R>OiJg)~LI zvh8p3(YWZpk2`BBdX~X}jM#?c!+_Ws>%fivV}{&{XvW3mVHM}&3ZaRH(Oyp21BvjA zLcEIW?tzm^cXem8rw#juB2Ng2xb5|kD`* zEIHbD7YZY89XU$mQ4~Z!99!j0FD(Qfj?seh^PeNQj5=j}exszh5R>6U&UT}u=B$m2 zE(Wigzx6#bHHC>p6teSnE$V4m)d%`k!n39k0rf_X410X-%g!J4_k`7*i_kA1&PeNB zF5n-h(Cv+&p<%|)>yP)ETh?Y})eNbdC}Ry=bv3zzCm=OV3Fe44Mv)GiB(JK`xn88m zb!8n7yP}9bn`QZ5Sn9>AAp0|F(yNfl=i}cT^VBO;)ZJ4-doytqD(2bQ`tOG-5BTp^ z0tE_U(m7w=V&1hqzHk+-a9-h4Auj&*Hz=<%So){(p{cch*5(>&L|&2T{ig2Z+h@~CEByN>jW%NAE%To%qY$YIgP=!=ru8p#JwX5iA#h99KVykWWS ze%HR91V`n{ZEs~)Ez`}nQmCyAkNw^{?>2G`q+;Hd+Js1Cq%Nq|=3RzKwx{}1%s2F1 zg44kC=Gb@EP3L!=GeQbMdq?jVZmWTDKcw2{4OKDasq7LS2_*)(+k6n(kdDI}5B=(# ztnc&y;N#Trx!dP_-AkRxRW|OgV(E;=v`(V*9m;SC6P4~$A!2+Ik-QBa>#V(!- z&;wp{DQD7bUa#Y7z>+h1XFcg7wB(@d;}KEJC^q#D(U;ir??QC`CiBVPg24TwL1MfW z3_<(j4>!FW|GiT4P5(d7t)LQcmDE|B^Ael!Y<0W$Gh;9}_PTc1gq>&xy|NniHUxgo0TcI+#U z1>AM+4m?@>rd5+pb7KaxnQw^v3+89_{cZAai9l#RM}1kw-k<@qT5o3hqpZ;4_C&)2 zk>b}*_NM)|t%(l?aR|HJv3^Z$O-1?2m)^UE0m09r8kejJ^Tq5SMXRlBiV!ksu@QE* zlH}!JliYpybWr-6-TU?*j#3942CMgjV}n+Q(650iMMotcL@`f_F+$(0TDr%PAv$Gu;YUz#>1;dnP^f!09p@Txn6op|g_wf8?#`VMHOoZ8- zi?tK8HhqPy4Jw9E4Y`2p!on37(|L`Y(kEhnVI9QVC&1jO49tEh-8^!=iNNl1A2UQi#r4e+%VBU(=XDeTV{Ag z=8*$DtCb0(-rlAyR(UU!i$JU*$+o5TaSp##(msDV2H%_XYA#nxoDeE_gl6aVo-pj< z*k|LJq5T4Bwa~?t7ZDECfA0hS9c!v_LF|M-OxiL|OymmCUL?@T@utQxn<+|A+Vrhk zayE`B^%BW(!68&|I(rNg^>cN*1=hjmuna2R;|!JCi_~(OzmWM#^YIgox=NF|4N}ee zh&>-lkkH^}@=i&HE!5G?ohg!x=>pzBYkn)3QtqwBr ztm1F8raQ>cdOX;v-)CK@P%`6M=CWXELpN^U%#Hh zz4W!A?nA#=rVnqTL3yz1-Og@*PVfF%(32&H@R(f^2?_FqXt{(8w~g(26=%XMOGMiVLjSB zbh#*h+9>7{+wegfoK}6KKTavTCqA2J=w6su>Co5_IWC{NB~q9jwf{?BcP*aZI5gmy z+RH`wx0o`EEuEu6>?r~LFgv=zN}|>xMW)}CRFLb_H_;Uh^KN8F09fMgSy{V{;2={~ z0ksckyM8%`#&#^6ecQH?spyqwt(;(XxOXR0#tFKx3|lw}vHEq;Kot-C`zsNo2+@Yf zk=%Y#ud*p=W!V1+Avo3c&J}F3esVML^)gdZzruh}^A)of@a9ndQFb(L%4~C2Kd`|U zb9qm7%6!`gINPo^pw`Tz`~;(3aI1x-%~2p#6@p_Tx@l*{Q14L-EA*SmIK z(`+P);-zDs*>W1;8cXD~sdNk4b*2TpZY9OIBqW{)+pc_YQ<#ho$uVyK-p2YId3Mpt z0n>75HqJ{GWT03ZBqZX!ioPg~WsBlzFDzRe!1(Jdav(d?I61Mtk1m&<9eJ47Gv)zv zw_hXVO7j=yLAZ~bg|Nu7yxf9Myh}y)C98~`L55untr~@hT^dBzsebtaBx{(idK0L`L!`?~<}xrifC`(?t9vsK z#V^k4g)ccG0B?%jdftKbkf94$emB`+wf8B;3s|kImPMbO`$9IVT-e+aqKz4>1@?yB z*D4&zic{NHRp@zfNtm0uZbo0~IlOwjTgS8Mecmzv#ksbFtv$gAZ+^o2MADmr-PIh? zI1JVF!o9g(XF(@bNFv$`DX}aXGy72RBF_NFxIO_`V(B2xVgQ%IqH)ORxa`1~am|EO z1!mfD%({ETlzMe0d#z13|9D*R(c^EjAKV(L>eHsMhtzGHLGB*2Rc~e$iaO^9m&tqG zTD~qZ$%gTLSGtw;F`jC}Mi-kYO+T+{3357@CyU;5(Iw*r@Dgk3C3+<#`mZCMGF1=7 zTG40Uhn~_A(;6L3*eTkQOMcCx2Yn2%O!N;4bO^y$Qy~&5c{XY6elo!dtioZf8QWxS{6Zb36>2{)?$4bvCu#5GD#D zxdShFew%-*Kt|w5!CaXm*=FbC{VRh|M}VERgKeKowXhpBEGZPmWIa}Vb6K8|$ly)c zj7f`Zbt95T2u{<~op{8_A8$2~LO~vK9C_(m+mC|v@!2E0p5P2ct4m!43`{0j1^^RNi8e9nh zdnvQU{YVq~8g;kew{^=A({a0Z*y7us&1wtIe3_{)Y6?k<7yAQJ5|+&H#S0eKP*X&& z)roe69aIw*tH{(q%vm(2W;jc8D*&}oe=poy$K;X2HK49F7Edp(D1YFux;Z$trj(1!;|fLCYLWv#qI6bxl|MHM-@B9TIPfAZyxkxC zNu+1~bJGe`!=Fue{MQKR__t2$f8*1dCi@#mq-7xNxKvS4sgX|d>|H_D!*ZE58R`ZO zXCewjNMVY3X%=rJqAp0sj9p%>JFUH}-#te>Jadg=8t&1^=Ot>?=}6Kp-B5WFn1^Jm zNPU!)@ahjiu|+)eJVONg_FfTWGt-{qK}-%Q=$@|~H0$e6#e60bL&3HSVt9xRUYJm>^~v z6I5DLFV;__Qzoib2E?n_*ZWvo$VYGN7p5ON0S`TtP#s$CuLZl>5nudu|4)(qE)weI z{*oN2w#9y4TuM-R)Q-(8jY&Btk7Tl#2JOyDAb(xnNKTHIc|-=)!|X9=sG+!I|Pw3xjK7gK%;#4s>Kwx{z%ofkYWp5 za~y!D+zW_pTwc&UZg}m2kwj?>rP{T$%11O!oGT0gL;TidO3!#7$^99c8Kv&T?7RM> z9ndxZ+iErYg>i>(l?yFPY4WAI=29g|Z>;lIX`lVDoM_m7>||&lz76`vo&oTF>rStITub?u^rtsCr3avIVyP>o?c~zB z=h?=Q;93uB$@er3<6?B{xeuFN2Zf3ohTFx)bBoX~jdiaA-%S$QR@-)K<1Q^libH|oP~6=ef;$vwk>c*|?i9CR!3hvt z3Zy`B3GPmj;@bYa-~T@H9c%5a&E&||OlIbNU1N-M_{F4&Pe3;Tkdj0n}!dKXQ>+X#LqeNqrN&vI`|YW`0W}oaXeH zAc{ptd4@@PnOhVTUnxsos(rodyMVF{ zSlWNVE3XqY(%2UlS$%7(-#}bDPS`5tto2McW%ZbUFZh|&vim!_B>Jf+;(TXv;YFjG zgA=C99rGsM7>$bbY_6;%8y8&>=SM^J4Hh{CVg)yxggSDM=hwe@TIHros1zzD3QwNr z(S1rbe`~$H7Mb`qWf8!7r_-iyS?rM!G+pBWIn>Sh0nuIz@b$IWOjJy0D$#&=Jv;?k z%}lv_bbd+O{fN!{1?FR6M2`M$9@H^CAF&t}@huUVxlvv2%dNmq5$2E+mgM10?KV&1 z3JS^?72Y-`$7+82O7PEN!sEfBgG@g11;`<3s99Vn#Epi+KQY7BMf@(>Zb+v~IBr&! zHfmWBtayGh5I|{zX0W&Uk+Vh@L8m-h^;*te@mA}A9Dx5p;smy>Am}$aL@$8kaq>&= z>#W;_>Is+e9_nTQxbY8M1o?-POKl>v6~d><`lqcRr{#dQiz_%EUAaz`bzX+RbNXpkJ>lqDj3F| zT-L=BP>Vph<>XZw;oC;)H$~iACbCzIG?m?WTfhqW-nBnQ}~rS3&XmLX^^V>k@?e z4Bg*dtH{DcHbgIHB}SH4SLg2==h)R|wX7LGCr1C8a3mtTEuku>Y>mZVluPZK)=A0s zz2=!s$aT%v2_ho##A9#2EUWLnn!H!uXTGoR2Hr4$M{^cI=so2`kzmzF^t<*s?jrAEur?M=8)yIk;>=qPTPFC z{Fc5SnT$dQh9XpJ&SBNy9XA5`#4p-|@s-D835Dm-fuA%dRo8((8bQ<9_-%$C^Ggjy zZgQ-^)fGT*+N)E);{@~K~c8| z!C_w$lDKlQ_gZiW6Jw4L|1Y6}VG7p8tF1fOfd1w{NR6h413=*zGU_TK+Br{@$N|h7 z=Tjn7GJof71I+y(iI5{Qv#V*{%!@s`IqbKb_WejfjfKWW)B>SUhCh5N$leU&E2e=7 zl9~IUPYt#FmXS#CEK+V|?}q||Di>rDeI8aE%r)tKeZ2RXsEkF+PdsLU_U2g`cv=r` z)EBr`#F;K>Mp63Kb!*HFfQJ2W+~B@3%YDp)B`#Yd?$xA)*Y6petvabE>oEk7R9k_&+$nx zg3_DmEtB|!NxpQ#Z+BL<&dEmMkH@k+`zS z9<~@7)Uz7L_@CUHO8fArr#U8s%kj0uk|ms(gdgyLv}8|qQ+>^-`n$$!5a~9%Rqm%x zh>Dm7y1{W9C8)n@NX&JTP3+yj{j(5K{ND?qlPv}COUx+y#B3)|O85`l?RDbM>I909 zI$5fO{JP}@>E4PLFBZ9wGTWB#^3=^OnXWtNA^`;ahV3%rb0nCh9;oR!-yD+3f=9&{ z-YkUpeBQD<$X=&oBOZ;fE}tR<3RTG%C6I|E1SzoNoc%pw_y^`K&u#4tK}DzZeky z?0>nMc7NdFJ=I|t_CRaq)j)G3? zON7aFJkq_r{oN78tzLF)={=&TTl^DPYR6IA&A99>T zk6+XI{cf8-7eQF`ee<)+BhTDlIu1PBKPXLjHyt7gIN}Hjzo(vBp%|f|K?Qm}^VEFKAhkD)1K}< zvK+gQe*`@&DmWosiO5eR)utN3!6ghjBh|s3FdaL`t;BZd%W9HSEA;iEwmNnv3l`s1 z?bTf2(+`ZtslDnHwL4*m@J?j<@f1}_{v&HcbYAR!TcMhZ&sF8taKppe!zgAZ<-NSU zUD}~J4sUu9(#DI&4NkObM}OCv3fbM|n2H~gO!)ZCoLMmf!N&t+AU@%)Z@p6y%ZHSa z0ok`!{2&Q+)eSu;BenDRAA1PK?myWHp1Y8g(OfTBg&9K)N!bx$(+s%P2e+yLf<0&* zmZL65Dw)DroKERW3(L*Ml+ZMJ)km}%SkC>R*{RYoV7{Sd4D6frxhb*0`#z7e!y;I2 zkMu||JE-g-%x6Wd0vsaDOj=u^(}PQLUNEC5AbF^Pz&!x&=R;JrPqmB5_m-l+6r$`D zvKsp2Rh=>myJY0=P7!pU7_fL>iz>WbF#5~bB(si0ex=`8M^vQYq4KGNwadrz!oN)Yr!+WgvpKG` z)S`&;v%^byw>fF%gyN&Kt6E^4yG%JaFIBnCC1A!T7Bf2xaoC;_1C9cMNbaiXjkBz1 zn7<)4HhFhZ%Zs8x&@2Sr4fwTEouW1btf0Ho5X*mGtmC zQ*Asc5I=_7rRUSYJ6e4WgHNY}aFdLrEgCW*S-SU%^i_Qn>SkiM_amTbG>OrfNuX`a zNHPEfWE$;IMu>~qRPyBH*+GRyP~Dx5PMYXzHwY42KwC0Q5Lhm^Ot;}D*)%?AZYE9I z16V>XFj4bn&Xuom3LX*J8LDx3ZPR7tKjS#~dL^1u`rXVCojjwy!Z7)S@*X5iGs<8B zbI5&s)jk$w{=;!ik&V4&2#}rJ#h+>3w<1WPIY$_^>xAS+IVee>k+2g!h_l$v&I+!kU%yJ)lAC_4QrxP`SoZU-MRyREYDf*E z7r~YkpBWjhXp#Uq-qCO3!MtYboB3X+SbdFBhIoLPv5T09CG&rO{poQ-;a$_tmIe)G zD-jKSs0Li~+4RNW_!b-#2^*bP3J%k%O>4Y5>4L3j4g{H4Szdkrogic}l0BZBWcJpW zl}OhvV$oYqP0hf4Eq?xR>U4Q*aac+9yF9WThK>i2|EF4cW>zgGxGq5@%*vCv(ynCP zjZk`Sg<~!Qbw{d8Z!OlvU5bUuVIdq&;`@OQNm`P^YgVrjSXpv*)<7~TMsESmiriH8 zd$CuRO9X;59Q)coZ0MBCYj$5?+K~Z07-AC4G;e|}uJn4=UXe?ITU9Buhu281&L-M> zn^Cs5TR#>)4l8QmMfmPixXF{lQDQ7lTi6wt?S49bp0GK1?+89wsXbWkz?ZyYnRW6uj^q8>3VvHf`e z?_Gug!Cy4`|H0`vzoZ>#=xRmnbkTpiT(XM$tFZ){RgXW8O4|_#cOuj&#z3kYHm9U6 zf*q)EKIY1g`^LFZcGu1DuCzULhEF{zDY~jiYoZI6kTdp27D7!`ONweARf34HHb?%z zmDZu{)nWw!jQf^K7M^gkc(OexJHdQ00CYwrIn42C4h?g*O|4DE)T}Zz?3QwP;sa)w zmDdV;sj}gyx*h<>C%)@|G~x9k6C|Z&W>@=MYXWmHGuWx9VKNDIUG5zCYGn3|;30r> z4bu5jy|i6NiXYVzb~q>2-PRP|2DA=YaAvM-c%*&Um+tiC70-9*e5JEQd&6sFh ztA6+CGzn;Q=zeuX4Gc9ywc$giY}Oci(W8orGj+WFPd%#JYt^Z>U&;Hrhm-4>a%Wm_ zmUdI2vj%PpVKR>a0Y~!$+w9@?SSvZaGIH*tc30l26W97kp-Tccc5RFoO?1z}Z< zTIoo|Ss8@BF+65%c5T0Y*(E*xy3z5LU$JXkM(b^uV2;b)R*{}DxH%~|gIo>Oz|cPc zE`#W7vD!=Noi6z0AG>*=zT$L6)~J{ltFM9UKFg64|=NCMQShH^JuwrC7|Q9<8zeLF9EA{bMK{auDMm%?*GZ8b~U-%PgadDOf7I zS?YYY8kP1^*H6=$uaC*8%$;sfW!$6f8JFxKTT(df2R#zc(|$*!(Q6mM#rg-aKU5|4F73kqZHhj%ka4t7uw}Bl!<7; z3{4_e*)&S;(jXK{FYgv^IInVsFmu(1D_~0~#S_5Qxpq{n1PFYUiT(FhL4hPcO(|S@!ll-{l-Zfw`cf=junc;oJsRp}#1A3yY zEhnK%e5Q1q;+a3JwTYiQB4V!4ccS~U*8}MTAMDzqlSYnV*xU>&&|+`$!@1Ks)YK(O zIR;|nv8d*2yz%BY$@YyUWONz@7e~p!=N?HEJR&;FFYbLD_2dZcE+;hFCmX)%jDL5AwRpc zmg!uV0_Vn%0HF}P>W3;wc7%Ppo8HOE3Sq;F^xZF=ikVz*<+Lm)^O=bQV=DwqMO!Q`pr?1hBmwJBm^17AA)OPnw7!oJ1&ExYgjY7M z4I})Z&6$GM_x*jWVvo(Mw$?1(7xQxI5A#TPk?B^v)WrHZ$4|E?4@r%xCuJ}_Ly35M z_b4V!S!QdF$v1mp@r4Cy9^Fk2lcai^e(P+Fb+N&?8jA)Hs3cyrN_aKSMt)@7x0=si z%J{yxH2h$_#2LkYp^sqcI&-}BJia(8EBOF)j4TNIgGl6WK zs>v6ZR=0#gZu1|`7nj$+G+VB&s|Zsa73IvE`#&+6Ma**IC*_(w2e{Y1t`G8MqrLb_ zX4#o~4+_YhYaszLPh^_53BXAD}B)~6yF!G6Fcm1DIx;M(?9Sq(dXxdwO5dA%5*C_sP%pT<+Kw&$fhNf6$ z%NkQu@h1GLih{EgHa+l`-9a)S>p|i2VNh$M_7^-Rlb5Gd(lxV{*SFfw6w)y>z+KBZ z@-bu1>E2jr?WQwo6{Jek@Aq3BK?|5ss=9IYJLoI(7&>bg9?1*)-|xM3OMWm^hI6&9 z(ioK>K?LJMaGfLuE#0gl`ZFH!cl;x=AD9og_IEYyqIY#RjhH<-O2twRZxe)`n;qme zFq)4`t*0cMXG=T)DJ6;QSBP4Kq&lH~%-D5W(s?cp!ZMef3h*MX!L!d_>y+%3L#C`O z&R#7!x3$cT?}q5aRai9qfis%NmXfn7d)L-no5PEFIW51GX{3%g@vg0wSa+^MW#pd8 z0!Y@MR_$3Cswh#&5>0;HxsNklx-T$TQh4s?v=bBirVqL!X2FUwYeUKWp*PwxT~aAUj>4GM-lUEkoAr4EU0>$gkR{1h zp_Do&hsT~NEe&L4enFT_Cpv3Kd1MEdt+O=xEq9Uf70qRDTw*Z&yN)G1L*&O=oL0Q2 zjKLm)QDC8T2G=`54@Snfn2r^+ltyM-;LwJddnTq+^BJDC0mt=34n1iHJ#8>B( zA&c-P7O0dIdo^)M>si`Dbl!*eahq4bey}IT`>xp!n?5l6T?78mN;AV+5}$#sY17$O zluh2S3QO>k*5$}U$ZOb!Z3KBpV%<-0#8=ksApGJ9VI#epvS~%aPN1<*+_qT!`%ga@ zq_^$9_An5pnBwxEFkRybB4Hb&cYM?PK9H8L6@0zRVEPA6xRwprVGQwMOB#WJ5*l1k z8~Sy5zOWXy#>i=5_XM4&Bk7r-7*`vBKvtEQQk#RyM`?`4lCCR0+Px{Y*4M^F|6vz_ z>vaDn{Xr(6eXostw-D4faA>qvXN?4ea9f0CM78sJ@k;5O)cL+TyM_u)7OoL?mEX>} zAP{sjxQa5V^v<=^3fl0JTScaHlvvdtdn@X2MT(~Qlx~{JzfQ=r9TW0XfO~kF6D%Zu zedinKKEJ?pBhyUXb!4+T?CErnUyh_ZEzhTS+U@qbzo?ou*6*qf}67wY>cv0-lSKm;AWkR(%_= zwh_#+5hEJIQGQL!I9>Lh>t2&f+ktTf9k~#rA)(Mpt|yDfikNJ}FnGP8=deH8t^{#~ z*_0A&>lNIWr(GV4otYcby0F6c#l4}6>8E_3s_Ik%2lozt+d2g_PqvxDDUX zA6nTz0jc`w`b7>35NCwhG+Og;YSI*!bh4fKirQ+BlsI9B#NP_Z|B9@rrRC!R+rGWz z4DnmKy{IaJ;C{rU@%$S~vu4!0pyDn3%h}pp2t0u2aKNmN;tTvVQjNiHw7B%40d}47IRN_r*5_ zC)%CT^1AX2+-2j`a-5cYjG^@%h)6^(A=0+U^zpaH6syBw>{S>ShIZ*Ff;0*sENoK_ zUV;Bsq7PcAY?N#S2)A z{8{Ui?B0s(WJ&?tXnN1b!r;b_D&~#_niSWU3SDE`UZN`=1+j;ZO3otM>0mbCZk0W2 zu6VzwVKQ~E?=8PS6QNdJMI1?FszrKI^sL&+#nw{w&j!5XQ8^OUyP%eI?(hXHn`~_v zn8Uq(kpqSaOe*_kNR0RwHhRe#usd{BlKk_WTKTtT(Vc~~T!cP%iy{KmrzL>z=9)wi zzJ(ffldH~MrbB$lSM7?|+X=pf&w2!A%iYtQSF-=x8+#A6mh~iWPO+$To*%F2ATn0J zRaAxwV)P#4h!Ny1yr1>Cx~^LqJt+dSW+;kdK)EPubm|#ejxlJM4Dt3Fx2>^C8~}+t zlw2khF6|n6m=~Ib^tXQ2PIXLD{cgm5x>F6_!Hhol*vv?`WRrFaIqf=6IwG2trH^c2 z84P=w9sW|@(lmZ8K6lgxav!oQo~zT5`@#FdI_!bA@#)6lFX>g%Zp;rD4+<0z0Wpp0 zr3}+7R+SB*hCaaJn9D_og5>i~#SN0TwnqB}D7k}U5m4@`+Tk1$e~OZRx{a);rk;EM z2W|ooxVp4UhzHX%MQeL6Eq}43xM;HzDWxP!7?L)tBW*h-h$2euL4n{)-inqvQKEKTAcJgLw9m#4=Ho>yj(%;0 zA|4(t4?AsPxu|jQBXedYg`qLwdE1MJX0f`O{$uL>bwYW$WWtM z$QfRGhnY58ym~4L6M&<0y*0GAzttO_)4%S;WXz28CoG#vhMrW4Cl&`bRv~zs>+*PhTMdyjy+0FmnZqu3@DF{eZXOa*;|Jg-wg8pkA7{$lmS5pMGA z3NqL&Ytt&(>QewQhs_KN%36LKKqm?RfD}+*gg6hDp%P9Xm={0p)h4rnd~;Qy-q-*{ z0XP!E`6mo+bXsaY+U2>mMGnzcIh0DrSur9Z;e6E)ct!$D~jWxxmkuO{;|B zstZwRn}OhgnYArDhP7nEiugcOij2;JsCa{|O=VJJ-G8DmNB`}JV)g#jduSJSlS0f! zV9RjWdn%SXe5~PJl!m<;UfBLH$Gcrli4hZ&CjX^UmBH-AZ5*m^nTDfP!EI%MiAB)w zA%!BCN$Ir<5O{YxDt`xa zEm!DJ_K!BoGsJl`6di3WDjMuci^$VpWVp@X+P%@~N4(R62C5Cg+Y%A*#EDU#kzszxud!$6bRi3p9_+k9@m0TZSp zLreCLEn@cd%Xm7+ueGU4`Cr&inq3OWbaKSs$>FM#ZC6E02C{zjl6RfW@jP?=d=SG_ zW*dXtLK~N?)fA#&EOO$Sv~ElyBZhlww?$v!Logh|L9fv-2WBOp;VED%{o5yw7aR@bG4zE_ z`dtn7+?aQ|7=g`Cy z%oX=7CFMSM36jPm{1<4c=)&2yzNHtkysS49wp)XudCTs_OEEb<5@=1GzVKbumtdIE zJOojR+NoGtDG<*s_f~ydQD&MSkRz*m#_XtkfBj^;N*gvl)Ip4q355`bPIMD#)g+3% zo1oBSbQWjFR3OK5owYcAVm>sIeM#@h5SVR~4||+atUAEY$3-E3#ilk4A*|Uz$|VcJ zL4N>or@Vb@W!;WxsupI;gB`wlUNoQ2I%eMCHyZ0a|8t-cw(RI?j)sI3wl9L?+A-Q} z=Bee4uta3vg+ouo=MD9FIJ>Kq^0RD$M8DpN#7hOsd1GJ#WCQhlaMuA2?X11YQtf4G zoA*JaMz}jAnE^DX91E@e{yTI^Kf-GepMQ~G$k--Uh+~`ns1sXpjmy46PJI81Ca!o+ zq=GI@E$cWcl5tX$6mw%68Mp##H=Ci?`8gG3a7VYq99c^6sL00NK_voS^QvB=2%cqQi6EZ&|y zYVgVR9ZTBIE_Hd^0lE!#Iz+J*E{=S?y^DoxX&l;qgFEJ|t2Ywrz9riTS)810l%M+VeIgsiyp%zV6|wLc}_x$xb1iiRmV8f7l^y13?5Cu))sMyUx2+ z+D>CcPE^SXb0btz;WzL%r=?JQo}*0Q#9ai0YHui#FKTdk#)GJwQ3sW7WNDY(y1FXa z;nYFJ)99!V%B44An+$&9m$eynRiZ66(1`~I8*tK_c8iPOAmcuj!$Zk&y%X%-pU4rA3%4S=ky#Jg6!|Zl4>!V%i{7Q7C1e_INV5T+VtUQ8VHf= zNZOKp#fP{m@Bk_sc6;@KAG~OEPh69?ETPd6-nX3Q-ew<6g7qm^TnSCy8zyo(qEFtL zAj=D9Fji#gqf5 z1p;eNP--2F=K0R|naou{ac;I!9$I;QSs@T6l+L;S%Hd;zZJFNmFIa`;i1KF>YUgas z+b9}1pO`fDOnx|!$0B)n(>i@;y7KJU4}(_5^Gx(>rsL=4?v|IUT;Ea z=JuZoB(7hN+5(@q_Fu1vGi%KAWwapeY^XT-Ur%@s_h>8Fw|!h}Pmbo(barsq`}&0@ zqbYs_s&PGg#;3Bl(P8-1%2tBhG= z^(7!LitnZ|NE2sE+g1ic$>GC#Rq~{NdW`HV#VJxK22nYWC1%aV)yH-n*6FFw3aCW} zcrC>L*7diGdrUOF4h-V}p9hMF?gW&`mYDrcoMYNL zW7W2y4`+l2fLFC30|mL|M5Y|@$-9`E5}THb`pj2F@?noNSC77WBHH2QG{jKVuaC@; zplP16CEaOjcNcqXujcT5=g;bfbZ;B&gN5KmQuc4Wb*aZ)RoEUW$k@`29JnS}t>{|= zeJd*NfQtRMzu$hYTU*okg_6%`vQZh3v`toCAmy@$AGXae02d0_t58d*F14 z$stvUyc-oeq$#Fpql}IWnw7)4#;bluRMUXb+l@`g`7R8dPALPoaLFQ}!2L^PNVV-z z;@=9HZslM9YrWlE#4lKpX5KW%_rJ$c|G-JfSM3mfD4kU3pHlHX`NbkcCZ&f*!bIA2 zF0v8OKE6i;SM3U7+x-Z$Ecoc&STI5GYHd91flQkn<)RQSNzd@j#=}nYax-20?`WsN zHg14ZVNqMN$H}6IUGr4bCD(=ytEQ55O=;*LtEsgxq`K;woQk^lLY9=uTM$Q82v5eH z645yOiBN;o^;0@w4Hy)aA@@@^hekagf?UP207IzM$Y{iw2SQhbK{qKD}QkRcm=~iIpDwSdQQOgKp^@lH&KlnqhnUN@KEAS|Ef;MXH zwq=(1bW4WqXhbg*P+>JbR?I&*>8O+`Ng0qpNlYWw|o&D2xizD#AD1K*k9}*io|23N(GwpM~LQn^#XyyHF>;c5$>N-)Ow$Lv zishze-^K=%UrRrg*Wp;nEntuLFS4_QOKL;T+@&_18OX^f7H=7ws#;4&K9d@@Z++RW z03=3KaU{;vEs;xMd!26fpR)u$I)`fNm>W35`KWyJ^ zgwEd6+6UcuU08tl-XfgKQDO?To|mWU9X8bpVBZ?R<=~hBX#ZLG*KEabP?*~Zps|8vg z7|n&S&zvXo=Cz2RJ=UWUi-$-LY|$m!XK?Y2<#?xrvW$YGk4`bZRLt;-{3Y!z!8g~= zk>@l%Q6vo*Y5V|IOU!Mc+({$AW$uHIgn#zmn)Bk~M015M8FX)_Y{DCth3qOR;3OC}a zt(ti0j$8@1Qfn_=MRc|r2H2V8_}`>FtXikNV4xEeC0q8%pMIU!VX^R2>+x{5hSa^P zS=xIOZNTjo@@98TEMcj+kPjZPPekf$()7_zz_Al-%}3L6(H5hmTEPIS>(p+oJU-N4 zFT-)Bx+o-7%$6xJQZdIGo09P^0KvW9;pQ?4h6qbRy`kV~<; zR-{RTOb)8n(GOU)l7_?@+z3U!jtjf~y#kx#kH0tK;|7CpNgOen&*!fh6{PBhq|`X` z3mx`oEodqznlnCUS#W}lS^Wj6MS%^eI)(E%j7M*sPBMiWLQ44Ci!=I@(!lYBNY}@y z`Q3W8Hb*J^nDCxGE7_mFAAC#9NE;^m*xDYArDQMBT*AV?6f(PbC2-1hGZzo5fAwM+ zd=jGzWbJ)&DuD&i2$$9mc9Z0j?XtQU=^-JYb^=fXtH4|p{VRxfFV9{``TJEbA{g zRq5#!zE*?5Q<0;inX|F>_H?|%v=?&~Am-e8)*Wi(RzpHe@^QI+!u1p)V!}vVLEDnk zdx!jWdo0k|ni~&oHE%hHfL?ZK)$R?QmyiKuSa28RZ0p^vQ|o{O4ZE!XkYnksltsRC z>xS=h^H@S$B5>BM|M>QwNB93eKm9nvuRx3vOrFl$FfL7oHQ*!#l2mTm+I=xM3z>0v z9J}|tu8Kl40R5cNB(%l5fXAdl#t9>vN+`Dy4^|RBNT6A&t_f32%6yY+uj?39yH)@g z!m3W3$vm$mNsY_kZYf?lhgQ&21=az*E9NaQ4!AAJs>Le2CTE8+q6QB;E3P!lZ3A9P zD)J$&s`n~99z_ZK;cW&qy{cuNuD8~s%mPe!>T>JZ7b1u|yozaE5^?whcDZ~l{qTpG zEw6+_Xz47U2j=^x7gjo}9gbAR+!$5|m$Br2ShM#q_B!t+7o1d2OO<_sZ{|I6$00;0 zwY9vPpq?v7A`7D*-B3{{8NCQ6=6M6Z#{~1qbna|xIK<=!q{-_j(32}XBKx@1i<~+) zYS|o9vR{rP<3FU%{Pw9%l-Zk7nx24W8EHm;wJiYkg8rWm* zU%a%;kg}#z4v&O2r`D?jfoll*$fcUE>8&ckkD-S;!=qs8I{2JsF>3-uqpzgrkzKDlgu}SvANw*9sz>#&wO#N@5`Eei~E6j!g zY>O|)hOx(qPRot@vwhm`W1Q89DQZZy=}z&cThfwedyq*uHEt;) z%w!{c>BC@z_=3}RdR~_ z*{v3E%4SRSBW`ci_7NV$&|Ze*E1~hQGf+1Di`DefyGsg9pyj?#E}Yd{b*MzlUR%2- zB^AGcWk7R~6T2AQwJ3}=a!0ypbqSYS6{<;9)BJjs3g`YVv9^3;$Z0O} zz}e&2_v?v4h*E-rgAj+28<-E}tGJRi;sc{RI^uUN+Li6ktp`;ZA_F~h250kh%dCxi zK>Nn$-Xd!oBnE0K&*AGjbZ4hdriJ;gQmmwg^Nip5Hqcc?aez3c`ijr>fVrRP6u*^3j?&UHc}b5xOq7Ue$nh;gXV>No{{&3G zeCE*Yq*1&6sF|z74&j_|?~}NPn^5rzRwbi>*6H9&?}^1IP$6YJ?MANVXze2mB zxjXlh0V`3YL8yD!bJs;AemRz>W+aIY4sQh>n!uq+gqP0EEk;viKxIDJS0JIIs^8Jb zHeKl@VG^9^8Qn|UsqzXoT!TP9X~eEohhe_Th|~u_z9Bq4dcS1U*=~L_;ReDMkOodv zJ7Dv9QS*8*|J|}A!D|}~MLCTQ@`-|}+AylQbh!RCU2Di+ro1knf5o3JQi&_=88cJx z)3IJz$1u`|`|ui8c^@lb01^~fW8Pi-Mgz;;=8N4oNULqcN(Xvx|AEWFm;Qf#SH`W$ z+F0nLYmP(EjN-MTcrhc~0f)3H`0xJ7t;DD?^;rilXA-tkrHYq5%Y4y{4;D;(T(tIj zEa^URph|uuQer;k(|ay#Fohheyrh$Ql91c=qh0T|8^WbE#dA zZ2c987>mT5n;wy}fhqzhlt67D*rr-iVd&;<$+IK)^;xbv%hfBq957Zd9wU_zSsL;! zf#7s$m{LNK{vi1lW5>?N&KyOjJ+k=Bt-JJASbXo4_VPIZ(@2ei4NLJgdy4|ET=bH_ zDv9ZAU2(v}##c3GrNi?T=1XDo_M-aY{@gD&hV)Ki?!H^Ex@akgmiRX=GDw{VX|@U_ z>V&N}>a>kNZX-{xdw#q$?`FfACrGOi0Tk_pmtFzXvUvFST*)vMBZ|?QSyQtvxTcX&4BnqwWwrJGWJ#%fZT{WKqA zcPOPxwZ|D_#wic}wa#(y4|-H*Krn5AX!Gby%GQ=n1UAGt^Dk+JSuy*+(#-!)h1>Wg zQC0_<7tFTvfVRmVGR{Kemo&!!?fzyMm7_+V;qBV(FK4S`-AW5MN#9io^l6G7Zyvx< z2<~sldoLNN<}4Wq$=Q^AMsb<9((#`$3MyjiwGMwJP@R{RA^i3a6;wMykCz zF_@f34(>FFUz6KQ7_EDXNUS6U*3WB}i)}Jn@bqqOnw+@qeiN70SK$s3qTa}T_OIMj z7Cn5LE72(PFj^m$H#4SdUz)6BeH`w4x)-1baNiHF@IZf>?VbXD5`RkfGb=<0Lb^Um zy8#iGE@u*CI}~+b;e)ah$c}2a$Lv7$YY4mDy26WEDXGJ>+zFqycLe>f6E{g495KGnMsv7h8QM24T&%9BPUjMMa1b14wL}H!**FGU%r|`bQ z@z0j4OP5(;{`feWA*{E}+*&D?N+S7j20^G}M->Buz1nSQ%?Amq!1p@QA@n^eyrHET zi_cK~Tmt|wRO$@guJT{^z15N@L*Co!w6tS2+CaZQm7qbUUp6V2AdnLYJLliZa!Ko>KXh}lvA7p*ZWq1(j`^fKQ}JCl^=B69DD`R-gT>RXNJj*>3zi)Fsau=O15=c1pH> zc&r;mOlk~vX;7(5v0ZZ_3UN=Ui2SOyLMfg8SQ}tNI$Z=4d9zfAjTN3zhdFdudCl|f z-pzM=WRIRnT@vLF-0FPkQD7FR#NAu5*uv2C9dMD4d35*nA|3SrodV*7067!((zZCe zWjCsOLNiWlX2lLwQP46=9JQ$26Vu$=#r|^)W59p3sVg(NTtmjRY7U)k%{P*)Wb5ahP^m~aG4k`;ls<=kmSFjC)@ z-rf9CZ8f{RKJ88u8yy>CyGn3z?Yr^2xYgkV&DbGD`Jdo7SGoy7w@0=<`c~7B7A_sG z=XCb?&``HRgAAj^5&yx?hgE0aTxSOYM(^J#(X_Bc>j2{vFc;v)jNp}pTErS2Mwa_i z3SMXU=kK(+33Jj(Z9@yYwXCj)QWPu5@1|Sft>-e5ot#h*OW@e8X>p&Et6r|QU`8m*p3-K>74{T^uY$kS+y-{CgyU(RrZ(QD-L$7hO_53ziSNV@Gc1?X2y z$XyVjLSJTi_g`m7?P*~t&dW9WVi%U!cFsz1_n5(r-J}6)8y?f8MO0wT(LQQv@6!8O zLuUB}->Ro?KeP-Cb%m66WoCjfG+WEn6hl{tM-J^ROpap-qZ(ywxjxGD8_F1K zhEzX1!9UtAWYJ#Y5Q@~gCS3N%-TAeTb{uaqnUT&>15dAMt6H+F;1x#O{|3)_760og z{+A~CSK;daq!a#n0qNMnRHGXgaHhCXU$*C|JhL9|+pGTJc5_Fvr>K&BZ8Ain`XaER zF0)qI?oyXR7Knwqqo8-9Y4&G8!xGv_eR?$`++=QyVEkRGBn-91wL-t4bT_gicz+4o6(jVFbULaX{7?ubjfp*+cX|SR z+5E`4nyF#IWZWWok|o=Z`>0a>gi3qq%Eo|xxyPlmtHq_eP=C>oJzE;O$4Gbfxm^7z z16hQXS-#sf2=DyC{M~qf`^rAN+*^B*Mujo!x#P{LM2@DzRqwJ%l`8iS-oB~*^J9U~ z(U!`rXwTyx@(na8?^$^{7q6{4wT?=-_%w8n(oDc zD3HUOU*!!6CAmv-zZnI%Bc*st!hfzx5_&fKB=(tq3Vmni*+(#>l~gMF2acMCrX61N zcEPTAJZT<5;YF+ESXIw714NsCHZUvto=i8|rDlT^26d&z@| zP$Ru>hn%j2$IQoo^CRAk(a5qCvb4GYu1M(hP(MzHXli^LKc%e%nj7L%2THv^tY(RF zAN3#mh<{Mm?=KVs8*xX*p?bnkjY&1!yw9!>tmIMQ7?v^Qc5{$zZUFJG>`eycA_Zyw zE?Ct$lpwNW{#rl%v-R&u-{60jW5U?qWMgWY*q`>4klI%|qyVeyBVE+;3DN2p2&lIB z4T8GyyfQKAh@^w_3$B>xe;;)&5p~ma=^kvFMsJ2*whQ_!eWZMe+Ni{vI5OppW8Ecq zoq8zCr0#)e-vw^iG=Rni4c~jYZKqu*w@|aw^WSGv5nuP(=1A)6v<2YvxAGw4N}5w` z3uj@01FonvEdV3sa$ywAGzX1m_w|8|FQ3!K^3vEwvI=huFAXi&dnLD`Io}1`1vQCM zc%6|88A>Y$hFiy!+-890b`5IPkcDNa@XMr)DE`1*kx>3VDzvcKq5J>X`^v63w=P>W zxVyVs2<`-zV1-j?fZ*;LAh4|+kHRWA8ev$fV|mq8VyDc5C4@ zI1@EipWVUs-|^syvyCuH`ElqB42fOtE>LQV<4%{yW1K$%O|BlUpZ>r&C46-0MrVY_ zxqm+yZ>5u^dUP>yRUhl#r}`>mg-NlvR=@A{4L+RisW zop(IvurdyHTcj@Ll3URZJ|=I+w!Xp44?7lBtwQHSB;$~x1~yUMU>&fK zG5%dw8umf}%a|k?)n2VAf9~)a$xG#aJDQ=jB`^z^pOmnR{rQm;c~OM<8@XR?sVJ9A z`D!IF&%zz6lW#pLZk>5SE9NYz7yQh>Eb+AWxe)Z7i^CfWDI0*M92_B)G9UVR#Ms{U z)@375Wc@H23p!lWYmh-<)|WO61CkyC`!yicRmz8Pz6}F)kR#H;qcg!D^|4B7G}N`> zZP>*j(2(%$s&DyR% zFl2;4R*y*oeFK64x%Yh{$0PEcrVlI)v`?=OK3$H<(Hj;^F)^+x#shiXoi^)4n~2A^ z-B~v`T-hbLWi!8^>L5!6ufuM?aTf2?G{uRwy_qfzdqKNS|2lnMN;|)0jY(aVT$G5V z`Ugh8oQTM^)ktAurTS4kBjSye0?+|OACR`mBK8kU=f7P$|MS2ha4xW+tZYotWJ^I* zqBXL5%zYRNX{)}4ucOd6nEPSJOah4NfbrO4t;a*DBWj6ToUSYlb!1zit3fCsEISZl zmR6JtoDQ;mA7}HOC?m^6XAPCytU=m#&5?_TA}N%bAM=gd?mOSis~G+gdgt|u2!F2g zA3F@H!sjf<_o3*Ycjv~Z5?EW*&d7S? z(vujqL-wxZEy05xQfx}gdF+nwJ1Lc3@hQ_AFYg&e4XT2Cbc9|5SFez=t9i09Ftpqb z;0mGwR9VcZhQ;$sP4WRCA=Qd!YCZJA#)La*DbO_f%GxDkVmdDxvWm3A;HQvUyDlbz zuRupW3PnvNG{x;wA&UB`vOCH&#-7!vmHC?0XT2zJj2o7Sg z+lfwaO}3yQd4kz9(WXDAO93|mw(bB7J$3*4JrR$k%)HRfg->qFmlm}R-XFI<(y`JK z<`0FVihXOv`2!OJK)1#(&~h+xR|^wo7N)bKUF}R>4+zFfr1|?e&_PUU*ctI&ZXmE0& znk3ADVkz1XP$`7&a@DMwudCVQ%rv;~% zvb7cCGNzIAKQISz&(kvZb!*QW?ah&S{J=jj6#};!1Sx6<6nGVm8HapPH#;Au@KPL_ zAx9^43)|)CtH?viaDQO zRI1v1bv4@Np*?r`gr_PJQXQpPp}_h|v;7+;k2NND7R?3ZPpW^d$`Ksa;|up$_7=p) zg$dp!SmEUdO+7^8+3nQGmiWC}RBA(A1O!Q-Pt@A=HY{EQ@Ge?8dqar@VBpyhN@tA)2a{P|k$<$%`zKaDP<_P<{4?++Jp=@j;x-=_l-$~1`nLZEuaREX5K`j_Uz)S(pdhsD9;nk6GSq=8Duqn~xb6>{l6AvA~d!ycW` z*b?#-j1$ z?cHa=dC*b~w@(fCSmXtz)7Qlza=Gnf0R|g@mPi==mucOg2n&{<0zICs*a6QoR)7CP z2O-ZYjc}@(1m6QIXv>rUNujZ*w9kJNi~UC-C5vd6K#m#sP|Z0;(!iFHs-PtcOerh) zrWnAwSQ7JoWW!7{B-;Wfy0$O==7i`RsHQR-?p;FUuzQnP3j_&Q64Dp4vh^N}l~&iT zI^9}(4*Q$pKQ$#3q#Gavp{Cd2<`!d?HW6&l6b@y({M3CThr;xIP#b&@^1q5W+1(>g zV`7hnGJjbd@4tf2|HTjeTi|Ag?R<8L9U3RKz?H8tt~l8bl}nO-T)kST4-@tftw=|V zq1OS)5Bk%2TEydpK4V#8y#RumFwfdJLKer@@iaT=>sj~aG@XdoH$73}ZOLnp`pU0y>PTKY+o}RT&|1x?q=zlxlKf$+M(;+A&wb!1iBC-NEwb+af zF0$P^>MzKi?3lH0$z%5+g1~8qea25IPg1+xeMF}4oIDhGJj7aLqdM$nia^7;LA6~Wb zX7LT)U2t3&8d`0&Q8a{}#5P>2PohY_vXlg=k6O5GB|$oN%g&mAO};Ok+1telZksls zXv&X(H4O>yrr)+yIyODPqPvsuVYI7tvi>a+MB~#66iwZ^<^_#^w#_N2JQP1 zZl^fPenPht(D!at30goggM3EYdT2r6Vq<=CRTAKhV)k)OK8ACdA8&v-bLfP3yq^~p zH$DnAtkJne)*W-%7KF&-C1E`^hs(2ZKkKA^hDc1HY{-n!(7Eh`s-tu)Xw2JeAZ)hn zqLMFX`CQH2M9#!OY9?qzz~~>b;xZY*SOwE(h)5{KWl?nc9_O`5Y-vJdq>b zVLUaL)R^Jc8#`hy=n)NcGB%<9I6rl(-f z3!z_0tC*b*X26|8AC*ym7DZ4_aB%WzMnM_r|nyhh+_wzuN}CaUXxOhRHmqmnR)+@5E^pkHoH|P^ep=> za6L-zk5>R9xo9tn6K_s?%u-^a?tN;Gl ze0HKR=Rns8OVz{_H+$uzLi|p%L*kn^OUk493>>GaKp^NtTB9?J!GI16--eQ8t<#6V zLlBAAQUeB)H}Tr&DL1dky<@%nJjd4tI|tR@Q8wg4Mq|Pr@f00x5Uk`i#Y(7xrRpXB z>A{k<>dKO@6$$<9_gn8J5$zYd-xgDS!p_sWc|9EM4*7GX4CZ11{g}))C*m|VY%ErWClA|5vnc_MuTP|=y-~MK+mThNnBDDEk?oz zvDs=S7AamZMn<{Q-z4iY|cR9 zoLn>v97*weo42eI9KJbZDoW|64r9FAgqv-Ao@q#f2{Ww}gL6oF1?5z3w~7fIlg_)> zM073tAV6^rQ0UD?Np)(dToR%*plO9iCw4i&9<)GEz`Q|l)G|-b$B)12x|SV3*kH<7 zxJs8{;EO^CBH)4t__i1V&)BnmBj|2d%~%3iVc10 zKWNG8?z#>&@}bI8V;PFv3+vm=hz4rk40rWI?YP2qnoK0*n+n;8*jjWMr9L*2MMB72 z-{CJV?-CJ2;Ns$99#rT3`ii~M;&Uxy1SkZP#gQH{> z%qizBe&O8bFe+co{&qppV9lJ(m&dxqkM>S$QQvj3b7CtnhI#Lh1%%#iR7{ z8cy*O^W2uQ*JG9ndXXX5qtXn*}J&f;-jvPdjzHo^$7 zLGcHlEEyX&N4(O4{^T$}C7tj^hhlo{)UY)6$8HKQ~6I`3=E~x zf|H9K_o`xN*!||aoJ884n=^C7^R&z3TKsbngH&btdMvajo^(3S(F_jksK^DCi;lg- zWs5XfA2@$Baa1lMcq_W(`6#l=&163oTm2Z=H^{x9HU;i^bzP2hLmn;9fv$HOnmNTNO&J(#UjRKI3CkY{$h{!mId>o8&e_`{vK8 zOLq>!m#7EZ1ccM&DZuDmp;H2WF@T*6Dfo7;)qd zl5}jQ)NqRJ!5_R4SP@s)7S|?Q3Ec>ooNdx1glA z-})oMiJ>RZj=fp$S~#7g)||#Jl01=^`;zrD++(jXzDtaZwU|>+nB6cF_Jm7hPn74^ z@0LqeJ+T%cDJ0C&vCzfW-CHJCtyI5lT-I?D{5ZR~knhc6oDfC!v;K`{VL|#3l$x9O zZ(1g<^e%dPj9FyY33Gn#gB2P(Q)>9|#gx6Lnm>vTdRE%$vW2KWz9n_~IOx&{*vc-& zhfCi~2IE$giEUELmp4;X-2k^I_j79e=m*iwtlc6J(jkaFYY5{%=JimYE4&XS-k;&} zS5Gcmm`6_Wah61tRvSd@$_Q8bBo>4G=bhE@FRKc;xKh(6!OR7S;&tx5Nse|9{mR;T zR+|0lS0E>#dn3F73i0CG`%MlX>}7PUI&*=yy9K>qw2 z`~B}moq<{K<={VCGOwfjnB4Je6_6qR%#(17GokE)Z@ZDLk$~fjfZTfF=&yT-qDnuo z_L6`he{ovuMB#QaG0mcQj$P2(GORV3iy-;u`FQ(r(gB&6y*asofMZDmo>XHN zayw}vz1Jf)v;Ck+*ofX2x-<8+yZVaMm>6+;p>f3&2CMlDa-NqU;D~8#xkSCTGxq)P zO*NLSjP=~sGK0-E119TkZ;ceT&I8=NtrU=D2)`l!nH0s6JM+k=X0@UC_)S=5V+1z* zH$Sfs_`5}8l+NAL#VNzX->YYpJsc*cTmGs{$V0J9T!vMIS52@VrCAJpG=x~}Ygb3- z^p#S^w|*3@Jw*tLcnvUSeL&I-XX@TCI{R&fM7{EY_(4?p!=`x72YEr4J{1+m8PW=6 z&j9Wcv!!FqK2I}6wt(J&@WamVMEuL4wV+h&w^~V>(?pOH!G(462lgDAW*>W78XI%O zrkTTX{hcV}s_hGg4K~b>n3Iw^YcD6a8aHwmdm5DZUsemz zVT2SOmMZIMG{}7za*Bp?ktaWr5nqPo65gXXd)djD&0dhsiSokm3_3F zse(onaN>e{gbD*P@86A&^l2x{f^;LRk2LW@5qk8s3vW|esJ$)@dng&9!8V(wKuo`;~+EPT6#k**55wR16L$5HUg3N<*` zp=UpTzT;1i}DTJ;x?`zo0CFxuHk?v1{uftz{w(6P!pw*qK% zHHzi<+v7qDXnNVyCqpY08z3K?+fhpVlF2x>C34N ziaTiym$C|ju)v`GV69h5GZ-(LjzGHt%ybU^f|KwYaU>{wGDj)VYNP~1Dpc&XX(j(U zfqN`3{d~hi;BRtnaUU3yRr?2~%tjpRRn||(p&Bjre>UV9a6Xc$MTo%rlg${COy61> z9XFS3c|%2LxSP=8%O{tUE>40v%!PasVPZfZ`(&aOlFKdTn_2*^+?5> ztl^iCptoALn23i~;fXViqa2S^I1RnubVxFzJbBv)uW@8i4J@TJ7sj|71W_p!m4+TR zfb!u)W}T~MF*SioDhF>9aG7LX1WzzlWJ?!j_U!1w?y#S5a^}wYb~zTbyC{Zn zmvKeKE(5TMx8E*%;%cR5SyHGc>nKG>r&dpsIvcESSuUq~>9~CgS0E;x|9R;6xKO{G z`{c(8EQN)B^GztKo#W)`a0Bis*5x!9Pk{imHT03?@rSrHkBYk-k_2wphu%zul6(Gd zTPHXNPEEk&_2o82@3_C`VM=ne)SJ%JEV-Of*E$Gnw9TKoNa-|h;;*RD#SrQ>#tes` zxd_3Q(7!^j03Zfr4n-wE2#TV8`KvT?(xLkw7(bV`PC4T$M&){)6P{)uj<=1gnB zic~?Flb$IP1}6G00EYEF2W8u~&eYM|8|^kyG)t8DJzRXW=uzcv81wsPZ%z(7!^1)> z%1GaAj&yyR7^lcN-nh98FXFAGSF-j%WV;yS%IVC6P;#TExP&STMvq;DEHp3vp7lvm zEhtD8GU(yZIIpw5i6W`9dQWUf{=u>G22A`A%N3P$u(_%qBpu`8CI6;_ehz6RV6jzD z&wZN{f01|Q=7TpmSJO~av69^)RkH{!d%BTkyrXJw^`Nqk5(;&8P$H&$A9FFu-+N}O7->eq0TB-dUlRftM!iy>x?1bfqzbCD#>QB>bk} z!hZAn>FEndI?r8@X&$a9Ud}bX0M~$Rt^rvYM}B7gaYHLjhQA)gkLT4U`-Cl)2X2J= z?%A>`W}Zs~iz?<9@3ymUc4R$H-`qucZyt&oZS>@>5OF8#CB?}+f(D@tW9U`suP^92v=!uk4wG_1__Xq91#2c+WvSrQ6xJm96 zmB`rhUnuUb7#&VgM(b7yN|b*(M@7QF^QkqrS&{6Gxp1|0By`Fy_!Ua|TOd98l1)0& zxhf2aJ1h}k+b^RG`94u`t)D+9w<0uUOVZQ=K^0NpGo0w89HJIw8Sx5#QW%GbGb=)W zZSof;lx?qA7>pB8Z2OS_&58w6%Mmp&m+_C3CiDD0?daZ^{}|!iUfTnI{uwkaE%LE| zOj+`0;H~fNSou|}J%Ozu{l7I<-)s`0w{u?01yARRJz{N(U3=B2)w>1My9;bxK%CUL z?w^;w*A~Tk3{;<=atL&SAa})MkxGB@C9rt&jBrkz%ysijZ9~xm zP{%+&E-%|POn~wu#j226!%{pXIV_Auk%Iq=x;yMBVsjp`EJ0)3M{m$l{u7gH%+>Qbd-e(jcC{ z`{+c(OC-Uv_}ZIn^Q&1AHFfggZ^4d&z{Y^-MkJ(boorofPExMO<3-2jB><$%Ao(~A z7Z{31$m<~wv~_n&E+9|NFBw=1jV!9lYvJf0O3BAbp1`A@HVRYNzyGQwLV!&Y1$^?f4J47(5)BN(}QGXVH!r6FzC-G5;-|L#RF z3lMu-KC#;+Q&Gcsr@CekT3e zK3}Zvwn63FDuP6OkqIB+v^x>ZXuh2M5 zl1uV3<1+8IA%neVT8U@kT_~OK1+{znuEJ*Toe~^>_GehCjM87pv)y=wpjER#5;Jsi zI%OH?;ZkC!bMPRiW`#bz6{ZI`7=lx_MXR&PKzSRYf%SR5{Y#A{lQ2fJvm(IR>PAmY z)&1>?o<|mGunVb78HD=r9rlLg)6!R;xE`3$)T&~Hb<&_IO*EA4mB(tVL)pa=TQXwU z>V?J;!U-yzFQ*4J6M|H=j@ddB%etFHghj@dd$T9#G7w4jCFuMXZ@GJAl>0z-QBcx$F_}`<9UDKEnJ68 zQrVrQu7;x#(PfDFQP2Wj%z1XB*8i44R z>O~>UApV*09Is8i_B-hh1(<^X z+>nbdNx%>Q4xl*LK}@o*8;f3}9LY(Kibi4mf@pKdg+SCXqD#{zZ=L+>?vfDt6z}F* zEPM_tlB!;O>5Na1UCeBHQ~o`eD*PzyXCR0^bFHy=$GPIP1O7$>gJDB9h6-V2gX1ys z7T7k}Cbe7krF?<}T{Xr9S0?;b$t+uGS*l}MO&(T9az))SvuIw;uic|2u)$(BphB>N z%rku@WU)}h^yUgc!PV(t@RP>CJFPdDiB5O9;g>#l6?ee`j$ITA02liyj9U00$48~~ z)8_Y7ka8ESj;%`6Qupd%4YyKMbEq+V!-L)p61Jf-1kVr?5p9g z_bR(gc(rl?d}a%N zW3%~PS{6xzOp?gmr&iWZKJ2Ri21NyjZ=RuQTKTnVVO%BoH2&5qwu zbx&%onAW@wl5M`EC=bc$=gfoliq?azSvltKyuPdBNR3!7CuJwCZ)PXk>8=B6W6^?p z;p5xK(3OXk!0G&36Es~88uag0iF5kfk(ZNlmK*K=W zGT-pDX71u-S~rV`U@LH3L~vh#Qq@d0!K`k8vgM{@%H|hgHxsG4!d_1(Z4dpD<9Wz^ zi(x1vBx~{9V2S0kD}1yfptIHpFAB@9e8$l9DV6#FyPvFKvbUMm3${6Xs(-a=3yGw% zE6>_byrxbs1r2z}cr7;F3?a{+0b`Rb`q7{lC@m(P15(|lXR0vaf7w?FN6{wTqVYo} zPcQrTiU}B`{>>Zy^T2ACDv|9lS^YF>((t{}YfHq7K6Y!Y&097aVBRPwGGVqLPFkdR zc3k33$@eAJ$lcw}w<`17R~pVPXczSlZge87uhd1KwK!~6=J@0nUOUWmt?^i$9uYcp z#?OvpY=g^7+agIG_j5wp4+&pLr!FStaRr@v?jCeCjH`b*EJjM0sdOR!>POxFNvt^l zov5UCfZb+tZlSgi*jkrXBw?Ap1@Dn%`Y{Zp{`C zh`rM+7RGs877JJtFjknkcS8E2c#dasxR%>id9kbAtXAj8KW2WTrw|7T-1@ar@99}e z(r_ZMBMFv2 zFwc_}pTKo!)&Pvx)w?wI0$J8|U5&LrFtLANUiLK~)#`3-f70#HCN8}#8C~~_>rMl! z{v0jX4aZhR(Y?@^b{8DW^SwQ$t(I;>G!E2gp|7ERUE&pVT#m8$R!A?>ecRPVsnkr< zwGgWWs{vmT&y(z;)nWv=^K4Lu5% z(+SG6BHo|RebKL6;>lK6>Ob6TefJg(jGcAybvWp80_05Hcx8n@Rb8oxF#u4-$GR|H z|Dq*guuEQlse9-BU3+xmBJSywmNuoc-7=VEf@+E0mLf`destMSz=_)RT>z_<9+K0D zj&liVe}8yl!_wksnZ0}8T-(q4^CcP)M>)bfN;dk3NlO$W_u6%~bfyUU?M_oOI{iZZ zzu0#3v7Sme(CjqLoE>nDZ=WmPPFu3Yf%Onl@K6yv29AI0txZeIf+2^w5)7V8jH%Co z65guEjqA@pkh8=&pc160ufj(eJT@Bf$$AfTFmBHB#^nV0cBanV^(J|xw^|XRiTp2i zL|ADwGFx}3{eNIy1&Lnv^&$=9Y$=-{MdS56H%$W<${SXV94v0eh`^NLfzr0d$w7fE@SngCu)g3%iy!t@g z*QNIDGSUMs?UTRpsanwXErCdK)=i8hxzgYpzf@u@2JRD8+uNdV7-jTfgkeo1p;i@A zGfM@$vZircQ<3lFw$B7UARH^z-+RzssSk*8XvwO!r{V$STRZAi*5kj%x1{u@8yUCw z3na#^D1u|*muhox49)KLHl@JYhw?_PqDvf?>jqP9K?mTJcsXdGJBL-Zvt`DZ=NAH^^Fh?U2nj1{iTEA2?wc7B4QNG$}M5oZ4{%4FDy@ zu5%cLTWF|zn<$+KI7u=9veWnxE35dGO#uXUhzKj_`_N9;tZMU?J=C{VU!^sh+Cv?Q zHnIw`mTC^z&ymK&=cb3_ zK&2hd#yhtni_Unw$(t6IW6bg$!(C%ZNn&tK)C}ncqN1Ce)&IKa2e3bqDgzdk zf0ePYlDuN-{u_(YKl_mXaSzJcs8&s(O`lj7+oJi_9=}%^^z5V&pZ*$V`TgEWq{-5> z)RQ|mRo3&Lnwu!Aj@YzV^gvxZr%7xt=9pC}9N@|vbMu#n{tc1&w;%a`JAmbP=!5w; zIx5-JKMK)U&uC-=)I$nWBi-Kl2IK{NoQsVWH!L6Yy7p>fx5grG^R@T>PQ67)<;1~LDN$2wc{AGC;TjzZ`e=YqTs={Udh^y_a_QZ`8|=?XvNui(lt~lSyE; zlkPHcS^E3i1L2$M#Fk#z&V|zj$~D>41}kz7UxRn<4qM@ipYBVv!tf#dt6>Vt2dV;> z{jCZNdSZQB)4DBd$lPrO9hZUa1R7H$n7h!BR;Xex8WC3YL-Ek23>5LMIj z2-?%Qvd}c>utAXFh0oh6nEU7)h(r*4Mr^bxX!id2WR)m;xYDhrR>hW1h2@$6p>cJ( zI3;DWWRMIh_~mnEA~iW%e;xF4L@<4WVKP;4-mOj?Y$D?&nQKwznzyb;_f?mB&Ww1EyIlinztL%rzou+pMQR-W*@Z|@nseY8X#_qDrP467t%$D_E(Pu-8 zrDUI!nfKNKYTEQybW~wD`Zdl*ttx?=(C=$aoK$tn;(ZIi*jsw~FKt3YjrWv=kyV5B zFPeR}gSZClDIDwNZq*+er<*Vf6g4p`UBx!}6W@>E7$SB@HE)FyjgpGIS75X9x=z(^7So$fo8%{D6EraT29QB=6O#70B?eHSPH2w&Nj5PKu1t1vabyv2akBZq!jV2hXNvMF z0?Q7giuGYP^2bi*aru=KIVr?{tLdG?xbp!fS~cT`ww8`dvQ*}nnq{`+qc$?c->F(4 z-ekpxvS_paKGyrMn8D7ssn#Qw6}%|!cAgW%1Q5dLU+?kG)ilNWoyT&3jb%1o6^o9Z zgo2jY1suA9Q$g%&K_V1vaozHdmv}!rMKWWTXreN3Jam?A4^V41V7XP+TdH5_Bz6PR7oF*25O)5afa}n%g zW@h@UCHa3LWptk`U3Bid12no7_#;w7jhCAuI>hef7$r6^aIA7ER;XHSyxoeK)1Zr5 zYX5BI{J%xM|2;+dS0X(-MhSuHP-5%vss*Stv?+AUFjPMdMlm1v`Fft7RT*3$NIe6p zU7LXgt~nkU7n7x^$=T-CO!-w9jtc_8Lk$-do6w~b36^E1kM9Q$6Ika47<^H0poqK= zMg7o*OB5I<2R$S@rqaN)p`Ajau59n4REsQmE+q zWGTZBL3>?yzYL1s8m_JNE%LTAG<>T@HQ|l%>7pIZhz?c#dA(uV+sX!Z&~({iB9-)DHlMn5B&h2N*cMz#4wA zQaI;H8`UDmiK@eP2rdXdw3O~w9xLs0nlqtJ*h-7V{;$3+oydI+z(jT}S-ak6OB`+0 zoZ^$jquUYjhZQF?U-o1)#{$#G5q8Rcl6@Hyv<&N3Fzwx>JpXE~cVm@c_U*tWzU+2* zYSRyLn%GvfA0Q++K)Y6+^jRTm23{F?1e?0PgX2IG&S!Pv5!}WU%oj zS~CRi7`NrgEtB?e?w@T#ng1qN^WTb2cAib19*>CN8!c%wWTSkFPUt3V`zY@RpRr7lb28lHQckzG&eto`_~}mxT_FlblTU7>3?<18xnT# zp9R+Yk84d{q2`N$|7czOEkhim@f3L1v}qEC{6M;q@4lPUA~&sSXaGg4$AXrm4#ewo zxaK&Ka6$HjvM5nwK;Do{;LpL(U^{6>BL zNlLyu;h@ZqKPSIdVU5{}JoA1OqKL(d}s+tFsJbk>&Ze^C8$b?t6WwGy-PF@Q8*hC=jUuk0vQVRj0 z7bnKup;FkoK9?7{t02HyWl^sDWb3$D%Of#q2KMzwF2rPbw>!H|Kc{zXRUIGzk1vy- z+f?8TIm?xG>D_g__&psEjZm0ng_3d^m(h@>aqeEIGKIRsane4`m@t>(Zv4V)xJj8b z;T>2uFuPI=1frl2bEY5F|VWv-ijG~~ZA4+=D*2NU<^2Buw!fT#Z zkzoEExl6bQwGP0ZuImBLk+@=6_(r&M}8#S0ZHTsqgJMrSYYUZWuG z2F#<6NIOoBJ0kn2lm`uugwd13C6-RRIxCWhxFVSp`#lhLSH$=YA_;CiRAm2#e{Y|F zbvIag-6LrB&1HsrmJGOO{aEf?OaOzzL^776O^xA$vGKvVj#vmLK{(_(aN@OM_~%O7 zLCo7RI;V4PYWtK?An4vxcE|w@2=Sbh^ZU&9Xq&>x&ekJYuAQ*Mz4bhLOFH?IzHz5~ z@@8nlArm#gm*i83lp(CV3@L{qXFGEOIh~X*M~nQP*GZyfJxl3|^?1Nuh*-p|=~60nQ7e5`{a#UD zALy;nr`b}dz-OJRGP3k>bklU#b8hzOzWT5hy}@0<3xY#Q4xv%fl-&se zyo-{-`*QV;K&w&ZgA@8RFWUM|drz(O{QIKBTCY=ba@EP3tNmk*?j@rP-Oz}1tN!HW zx3eyZtIylGD5#h?@$2Nlps{&=LCtoCHyMKS1M0*QEb@4TMju52Cxjhk>x6Vixi@5z zqc}@f7fTF*2U1Amg9fU?S7L16Ue5j0zO}kNr-hPsJ8L01}4w zrCc`HU~JC7s0gqnS1^#UN)KPHxzu@XKwvq9#Iv zO*6dcVU*GfVhQ|xb*(hexf_UAEZ>9r)AHCMWnS~vStuQiv+t0rY;8CG$>2CX-oH0! zZ0T$vt@*JMkPepdf>+5VD3i$uzV@hU9(YnX9AC_Wk2~IRgS!FVcTU$$E=e-k>b%Y8 zS^Q1}9zkFsP#RW)VzJPFImy=kB1${tiH4ZYt5=a{uOAtT3yIO+h5Ap+Cmz7u>8R8? z#MIUJW7;f{)$i3crZhO)P9Q3_pKa(0X!!*1?uJW_`kEFPaVJ0|&=r$=|G?}RDBkck zjh&-hG)dmoT8=0GChJX6Bokqv=_Y0CDSG1aex_^-7sfKa<|l0HH_ZpzWEyruR|5QJ zzQlTtl5|1#J;&M2=`?CG^oWA8LFS*0p?A7*-d`gKI2zwppm%*ukkv#1Dmx1$ z$QEN`orc zI+ocyx80lftCJE$ag8u(x2&$0A@zg->q9mF`-IAmoDQ*!!+?z}Fq z3fW9{L@SxduR`^GNyq3u9LR_q%UHRZCi4IY8GFWyM59aM-UP_n>_0<8Z$1z@X3%GeLQ zf%9KlyZ=O64MMDQj!h@kGsYo~@n3%NHP8lar^d9$YC1@RM0~k5Wq0#H#~yxh=jkGc z-oWr2pZ9PdSzo)g5IgjE!A^7Xx9~my#D0&kg{&kmnKX_LJ6Q*3_p70Aayc!mTG)1b z>w-$kC)(e#fikpGETMbLI1f;wHHn!u!w)ncT_z9TGJ|ojU{Q`0Nkfmdn!dfN39KH? z7=T5v+AR0BYc0(k9x}hwYpmznXD=@oVjogKK`4#~8Cy^pfT}a$INJRL&a^b%q|0vT z)K2?4{&sGg=i->J#ZpM1HePUn9f-E5wACWN)u!mJLQ0x*MN*v^A8#En-in)c+Bm;` z)ftn)ZZ_Yz?cvYaGAfZlY{O+NueYqMdP9lHyE_G0{8-EMjl${&Lh3eyu`G}-Ct2`2 zc|s-S@I+ch#no%VM40qc*k1BP{0u%k50(L{{jEu)f&Z6|xpl@+J!s=V3o7XM!ib`wi0Ic}M?K!WVVm`&m#DDEfQ6?+%{yf^7R37QA5h^METcdj=RmOtM&nBQLBtC$~Qin zz~uv@@J(_CW;$YB!$e=qb{#vz1dA-@8JAJy4fGFQBRUvnjPvy3y%T$bi3O}KG8z0Q z2)UnDmI!?-$vdhX1^az#)p(noJvT>kRRiSvSEtc|foB?XeA=D&L!PwXl8$2>`ixc=$w(6AKwWJ8jQ~!pxivk# z`-p<~cR^#xb|kDI7{>^ zH8cCWk;uK`M-QwW0%>)DNT<4r1~-O2ZZp)hQd3You%5;NPkh8d%`zufTn*zOJgahv z!)M-v3;7Kl+Q)x-ng7xM?4YFHAMmw{>}-+l=uVxo1-RlDXL~5pmAKr^QUrhL-c6s+ z_6)&7edVzzY91NXC9c%iE=x@UT% z(@?W%9LG2o2H2?4WjLg%0xn} zK8dsN?CvbNK*Bop+U7z{@)jzr6fPa_b`WbJL15y3Mq zn5vyW;*);HsjL6b=R(qQe_q@CX^SeG9!4_c1Xl23p}L|6z5acZtj`iHLS3fn@zuRG ztdf1E@~-4_Vz6$=y#9nM4_3b=?`<&gq_g)L=|D#K+VFIq;1#)cge0Tv3v78q3edIY zceWVsthdX|`e&0#=*6=g#4z0o>r*OUJh&G5GDXK#<5Bv@KMsKu7e~JX?DWlGW1}A! z(VMm>z(>>tL&#sXt6os3II~7=6Ze{gf7@zXYY`AmqgRJE0+t$Z*`(=e7~G9t2&AH< zC$>8&&tElZ*3W1zLP;%vTeK=EQvLdEzZB@=abd*iei{IJO}P>>Ze)gSKpS!pi>+vY zLNyN)q{bi()%(!$-8RtE`+ESf5kasb8hpp}b!Cgm1^=k;R0FlyVbVd!LRG-jCcpY= z{w4X(Lqy7zb_)L?^Lz0_`n)Gwwg6VZxuA|2u`#(ai&;$*7}gc73HaT5RY~CR0@r!u zN6!YaDCjD6yYl1!BN@&^2wL%%ljp}_uZ}1+(Z`s_>mPxY_VM4LCO|Dt%IJbNSXLl7 zweVKc|3E^lwEvY2nxCoJxOy&XxlO#V%q$>`)}sj0#ps#!7R+aRhsa1`93%@6!Ly7d z$lNJ0>DGf2=)12r`Ahk?);ddkZVnu^1Fm?YEbdHAlfsX`w;Qsn7=3S=yR_|VxY(md zek@bucpBJU3afMY+1lMhpVd$}A+wQ9x*-H|A63&zT5d|%T|eJuuyPYUaWFrPSK6KA ztjmIxPfp%3sVU>Jq*1$}qvbuDCa(JsQ%kPp;Pzf|spi#1;q}R#Ch0f*Vhh!_6eeFz zMn&LHFsM(x^h8$2sqfR$>wtw%Ld0wAu+C@{nPU8TS?%ZPKSvW&S6py(DLq6A@ji;2 ziFdinX`i)b$yxer9ET8oU=t!6gh?sq`j*g-jzo6xUT5?VstE|~YmscD`jJpwML)!Nxqx=V<*$i3^b&-#_1je_UHJ*k14- zOdq~~%yQ+Wr`{>I<|k-p27{l=uGQdU*8RM0qejQN zb}`RxldJ<}|2;>M$it-gAePryiU0-x0HAC9?W&F4aaw89cJ@x>SISjE+GS-KTB&4d zvObW**&1l!3+R|JXK6C6k)FyY7ggJ3%Xz02P zl2l1e4b<4i{Gy&m4fWH#O=~fimt2g?lWLhRZV1S7T^5ip6)JJ8Vpm@^rGnJy%74d) zL||Vvq#DHK7Q7MlH@Mb2*&l6zH(@bkUiRR?N*E-u2N2Dh>L-?jF(z9zXX$Hj|eg7 zB)vk+c?DWkP6+WW`Tj;vif4m}#Pl8Jpb1t?65oHapL_T0^`a;FvN(fv-%JGTRj1;! z^XDQ#D8`Z+WMWu{4T3d-)drWR=t<1QDRPCMn5&PvF(e>9zsxjAX8#ej{LiOmpnL^4 zIJ?8R_i43Zg%)lQj!1)jax560HZl|(puLkyz10AWAt$QfWT(W|WLt0cwe;Ydw`pqf?@WE7`E1G=PZ;i(v;bZsn(zsycuG z|K8l9vxGVygy7mPvY)OtikxpLIm&p#!dEqauGXXNoZRXBK~oOv$Z_~2r=vpSA%PxS z)%H$>FW+&I`EK>3Eq;=_ICsEhV4ln+wE>+}Y<#)bRJF$vzx45t_GKEOCtA?z_5Gc0 zw|9yFg;Hc+bK80U+VVa>z@gy}$%xcYAK1tHwwDHb;Zr5vJiI4)?le);5x+Zzo1|Sh;_82<4 z_OWg}3l(ehrvLeSK7;)HWWeVI>CEY8^Wft?U5XKn<=!=|*&15h&H>--1HqudgleY> zUQz(C67*VL8mUL-s{H!@>RL94`3Ld-pA-cthF}iH zvd!%)^b*3A=OUMxFg&bhdT%iri^iO+swhZEQ~D`~~M&WEvm$Nh3O zX>nO@i9S|b{+w0B)*t=rJGxf#V&cV>g6z1#lwxPMq%gE(jd0xjDB35sD=fvU#LCAV zMdt~zea3--@juf}T9L91PiEe}L=`Nc%|v19d7Ig9GdNLqf+hou_ITS^r?pk}wbFI= zB3ac+O4&C_Y5e_0!PxCJR4iDRDODKEsik%Ghvr1-k zU$;euknC*Za@Iz=^QCf3mlEI+?%<2OmPA652yH_R!Co;QAL!Xkz34iCryPw}Z--5o z%nC^z+B3kARpnE=XuDD;M>C}kp2LHO9rg;)hto9A74PNLd#i?W8$;Y84o9>qj|AVd zli4DDUIDqzxy;@kZAJeQYe@(;i(n>!EZILaZqmgH#AcdK`Tm9w2z)NtNJFM zN&@8AJnj8+TBSORqj#E}7DemLM~7EMqC}5tcQf3xQz!>ND)BNEXDC+S0jwo&|8#W| zKiM>nxo)hMN~Z*4p&Jiis4ts*p$J-cH&3d?jhB$q=Onjv=}T=U$z*-zL8Et3?R>#g z^yrZUVLivoOu+5AgvyzOH2Pp+^tHC}H#7RK(bXNVYC7k6AG#dr@^#VP18+1N2(op$ zjL;bs-OcEBFBEdJpFj4}gqiF|P;z*D=PI3BiBMPT#MLz@u|G;nnR$r&&iZ;nWbX6T z*A~v_nDE0@dk@J(?2KnO%n0tL-#aAv$Ec~Rzp`?w4T+WWiT?W}H9Fp5Wit@G`4&b0 z>Gvzxijl|=*>3ZmtOlqE(lVL^0{2Pw!IKiW7a|ev>h)tC8wPOn1{Nolvn4=+C+0;y zCl=RWL)pepEM};(e4m)G#aTXUOdOCR^~sgOkg-I-{ZYin`Y#|jvfC?ynqsAoD6}EX zg^E^m`8fSeb>vU1=v^TcWi`;VS4pv-AOu=!+RUW9l3F;--jxrSW7EV8ikcSXDSg_7 zh#nK6lwjye=o0zZUm3!y0;$BQs0bt~)FymI?9 zvs8GZy4wO30CAYq0Jp4(?gFs`he8b9N0IiFV)!EVu$VZJTr{T&UCvAX8~z>$$0}XR zbKUQ`mY|c%zku|}wx9oYVg8e)kPG$$du25^ST0rXURci{*uj z3NydEvudnx39#^~(#3_wrjYTH@_9v6atJr;sCBJZfgJ_DjN&OJ)5gLrs1JWjVj{13 z0N_X;u^N{_)u~%*u_8dN6FgsH>iy=%U1_=br?-7dL)I6n8T=0c#2I=BM|jXTeNh$= zv)P?~@S^=Jf4it}CK(&Zj0J>SAu58~!K% zBXHf^@#U-fjmJmb&j;)@V^96I4!cxUds=q5-q6|98l>1wp1r|>3tK|4;o*gM>_Y0u z)re2V`$aBKi2Uppx!Jv&=Z>g{HAzm+eAwmk7)fU*mY#^oOf>@T3m zG+_13vRHEltS=>vaJf%64DB2NRHO|QxdK&Q@lWSi$%n?P1Y-lh5o}pn^dlTlM z#?DX5l>~XQw#Z&P?#XCNS(ChUjY)G=h>Z^F4 z8;R~MedV)NMU4b!0gs|)oFA?OF@BIS30jPWCB-WS7;$Xo^KeNK~lX{v$oAiNwx`*>3KT3S*I{@7Z)28qol7=$LU zk)VpcT36>)-72&fk2 z)ylAd!EV7KxOzG9-yi8-wiwzH7iIh!q zNfu)-W>Mx~-O!X8y4UsihM^AZ1z5O^bSQ`BQK{A`ktFKEF#Vu|J0^bt@4n$yuoaSY zJrPTf&sb{145YQyT;GNK1&A5Z+FSCVjfCXlnR1PVt>?Hb+d7Jd*BELX63;%Pq2H+B zu9L%T2#+2IYEc$DkQ%!q=F}iHsAB7d%y&0O;HiP76&r9hpK`T0S@+8J<`WT8!suke z*8VSgK>Yz!SjLIwpcWgDDu*eaJ;;OjvTA6jIy`c~kkVA#BQO60rfQXZzGXoCB;7#l zZ+VKXC0R)(1|n9uxZFlc>Qz`-#D{!dy|wgM^JA(4KVOgU_ID{t`_+UxW-R?#l@mv2 zcy3t_=jo8VPv3DqaDZX={H)~;? zxL&ErABGO&ozow)Z8A*#l)}5A+4)+iw}+lgJWFJ|9;vp?(E(Kxh5Y;r(22Wf#(`~m zBcAK>V1Z$7i`6^nhczgD$EtKTY-W9i2darz8Ycn!BB4prDWN^OFiTWY}@I?5ZtPAQma0LO|$U&tHJae850M1%R|6U0bws*&u@j z`=}xQ2DceTsrrMCX>wC|9*8bWrvpcJ4JcR2$^16puBN>M% zldCI{`FdXJC7Q1fwK9kHWP<}D*ZgPG-z4=k{W^kpFO7n;6=tQywv%uCwdL&6oO0gC zD8ZV+CpIifueD6lqp`*UNS}hl4Em>#i$ID3|kJ?ZqzG!9C zv`-t~YFO$ysVVO~0;XEEF*qz>dnJgxi1s#mi@3HrR+68oKsk>F2T|0R><)a zZE$hF++zdvx?x-v^x_-jAXpoZq@V?|=5c{}JZV=thRaJnc(E=c%Ho782(R!`w@Y&0 zs_F_@_G%q7SMQIZVPUUnWOhRh!WrH}6}AFu2w{}GC{QhVE3lgs_HxQ^uFY-B?b~_I z51hgo%Y3ow_l5@QlO&<7iOEY{18UkM3Dq4T=jFpnCr3A^A0KIC1>dXh5&u(UF%@Hb z|BtqlH~%R9CVNmVj;y{Mu3S|~$kxD5JbJM^{|>Mv_a7a*vY(@AI-0)5j3~ik<3A7g zlu=5KOkFTHezrWiuUgs}c2So3VYn3DGYppY$?oz-yP$@TW#~{aE2I&&p3M=2-9wgq9IbU*Vz6olPOQkc%8Heuj9-e zCSpr9x1zokoG1WXrqroswdJh@?Ro4zXy~qOhYC+()_}T+FLX~&3O2tC7phN9@S;Qr z0r36;jL89-$wRp1T5HWS+tO-tR %or{2y<3s%AAC>eOIE))Qo#qWqMd+c7vQ)i- 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≤=hDwL?g;jQR0P=63uXqqECCs0J->~h_kF1 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 B6Vw0z diff --git a/images/networkredux.png b/images/networkredux.png new file mode 100644 index 0000000000000000000000000000000000000000..b2e4f39424a20ad0567a16ab5cda060936294102 GIT binary patch literal 3233 zcmdT``!^GeA0DIR9`TM?OQmw@E3z)=T?&noOBL_}t}l0Klu>lkz#=wz&?$&XeFC5k!c?L}LNx0wesf5I7za zjCI3e0u!RxSZe?P2ynS{)y~7x?9rn~lDXN!!oun4>1W<9odyRfg}H09v(mBgc@~pS zr~i^lhlhtHA`!p)bx?^r|P{CMP&01s$aiDk>^?1Y-A%=-}Ys+1XiYM8Jpal(+@KAS4Ps(;9zA;*wDv8;d_p&tLvIXBD#~y;c%Yf0+tpRnM`Iwi1*0- zqUpi+G)*m9Jg&d#Wph*z$Ng$wRtg%8p6u^?h;$;8$p!`n{h0}6Ue2F7>FGp54F=J3 z&Nk`%83u!~F#KiW>C=b4SBGwUP zbRQp|Wgd@_7(Vu8DB8s_&g>v14p-{#urN1Q;C6B9GdGzK{W&3Vb7P|&3|XC?ei9Yh zk`TW1et<}foq72x?9Wqe+Mw|N9PF%q)_2J{6LzBC<65ts{npl2XYKR(`T3QVm9@3C z-@kuJC zBF9Hm5klw1;&(1CoE}!R@jhQSmk$X`c zb!&4|JU{=xGb<~8#|&GamN(SZ4)$}lwl+I!tJW45xDk;bL$32;#Ig1sspbr&rGdvY+x?I2iU!Jb#(%PAPxTKor~6uc>jM&ifHAJIv?Z zvfB;}mEh*=zWwa~AppB;GHw6>3W4wo=dQ*J{rQ=)a#XxhAm8vPO-t^j%<+kIHj3J2 zhI2=Vyeb*(iTymX4Q%jC{s-rS`6<1`Y9$!pcm*gnafoswQy+bkPy`DcMBd&wnLNkSM_Zz(CE2ps2Vi=S_YY{b zPaYXS9?LKB;u*ZqReRxQ14#p@?1G@ZI3>!invI%PU$xYSuGM{QU}N@nXEyV19_C!o zyl4dW+uf`JNd-|FPc9njeBbCl^M$-4i0IVcv5MW>O)<&%?Uh6cR~eC)O(J%6f!Snw zV8nO4s4aM)+=l@flK01R{fDFc|M2L2`Nu6aV$y;T5!cS#Ph!dka`Jrcc}=4Z{nQ2F zT9GPzqbAE+9w$S?@@`EcT`5(F^s`I~%lc!r_1Hi%HeI}lUdMyf$a2~LUIG?Kf zj2>H;CSzvN0K#$2`9`!>%-lg68u^|pNp_qRgT2-SsxK97xx-?V zg*yZ^)3@#pP1?l1O0S5ks0O+`5;?P#` zQA#%a8AvHV>OFGFlMd}ZXeGt3n#-w1TH1qHzX~hWFaSAq9abu1qz?wNh+R04g4T%L zZzGx4j{GUf0X8SLR!yJP7-pfdGpQD86S7;PjO329_OjRdOH)}{Uig4sYxS-a|2gC^ zdGtPgXTgJn199`;ynyhxN#=R7?q&*8#ia|vDN$oso5#|W58ZKt=gXg&e6;IC(1tT& zj*Pn8bu@MFQOpJVa8XI`uA}OdAia#7S|NweTqex%uJ|%*=*4>`q}#^CSiJ@9)efsT z4vijrsbWD1#mBB5`>c)*t*DNkOna>{bRJ5nYI-o^1P!;5M84yhMxy#|qYyJaX`Yb* zoe_Amk%1S7X_BCV>c@3@X4SLi;Zv4;xj>9j`AK1}U<*nm%Ac44z4#VzAV9)ldh zI^r2Y9w}*9974jiXxx)p6sTEvu8Esyb}O;}Eg3ZuhU<_yVOY?Ew>bRf@i^~!_ z^Ay>4J*5sS(y548QQzK1grwJbflMUotNNh)@I?u;R9Vp06;~Il6B64@Sm8ZiK8KL_i>gwC^JF{he@A$3JH9>&!NTZj$noUXr}hM%DEDj`)Hn@{@<9btVj$VdE)7;Hj$B zH5yQVA~sU>z!%DNhEV7R>#4tM?!WW&H10w5P20EcQ#O7s$`)POklJeY+%V%S0XL-c zHygz`PvZOtEkX?hke4prn&n$A^KxyHel7xaW%mfxu41ZX>;LY$S2nz`Uq2%g(z9nE zDkEgnFFv_YDy$57_AgWBSn#<#Hs?%5WXQ;Drf#Ih=Z_gP*7Dvu4?O;OyidSuH8s|B zC}1~O=R8LiS>>QKJd>?|?ZYe9mMpHy>IYzyjRLIX?@Dz3l$oxw*-$;I7s*aP6||98 zMn^iCqbz`kVp0jKa3yuYC7+NBsQscFrEu|a7Qf9B{4aq|yRzRLJXyT)x8N5wyy$E~ z+#C-P7fcdQwI|^XKO9%%Qo|8{{jOqC?2(Hb)^n$*cGBjVo6V zOm2WLp7)>0oA1qQl<|UumI0#gT)gj?UbApe%Lg%_V~P4X#EpN0t?|ohWL+<9BZ)DSOpkw__JIb` zyP*$&&>WK_+H~Lm@_j7+m0zd#$0-VKjYqclTy(?~2pz^gh{8<`4(2np*|cx4o(5=t zl%2v8E0(gjm|RGRO=BB+X9!?eD@CQmS5z*lA~$&u-xx zCF9_an*#kv7YI$>QL(tz+vapfy1X2D9V*XviaTb?Wg2K<}HN?Pyr&+Eq z{Gm#hy9}^cO-*#+{>f5BZ=6)8A|Ov9QwQ7;Cm0Nl>`!b@8;>A!fx$E^SW literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 6956fc0..a144159 100644 --- a/index.html +++ b/index.html @@ -1,18 +1,17 @@ - - - + + - ImageMagick (legacy) – Convert, Edit, or Compose Digital Images + ImageMagick – Mastering Digital Image Alchemy (legacy) - + - - + + @@ -22,19 +21,82 @@ - - - + + + + + + - - + + - - - - + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + Color Modes + + +
  • -
    +
    @@ -71,36 +133,27 @@ -
    - - - - -
    +
    +
    + +

    Mastering Digital Image Alchemy (legacy)

    +
    +
    -
    -
    -

    ImageMagick (legacy)

    +
    -

    ImageMagick® is a free, open-source software suite, used for editing and manipulating digital images. It can be used to create, edit, compose, or convert bitmap images, and supports a wide range of file formats, including JPEG, PNG, GIF, TIFF, and PDF.

    +

    ImageMagick® is a free, open-source software suite, used for editing and manipulating digital images. It can be used to create, edit, compose, or convert bitmap images, and supports a wide range of file formats, including JPEG, PNG, GIF, TIFF, and Ultra HDR.

    ImageMagick is widely used in industries such as web development, graphic design, and video editing, as well as in scientific research, medical imaging, and astronomy. Its versatile and customizable nature, along with its robust image processing capabilities, make it a popular choice for a wide range of image-related tasks.

    ImageMagick includes a command-line interface for executing complex image processing tasks, as well as APIs for integrating its features into software applications. It is written in C and can be used on a variety of operating systems, including Linux, Windows, and macOS.

    -

    The main website for legacy ImageMagick can be found at https://legacy.imagemagick.org. The most recent version available is ImageMagick 6.9.12-93. The source code for this software can be accessed through the repository. We recommend upgrading your legacy version of ImageMagick to version 7.

    +

    The main website for legacy ImageMagick can be found at https://legacy.imagemagick.org. The most recent version available is ImageMagick 6.9.13-22. The source code for this software can be accessed through the repository. We recommend upgrading your legacy version of ImageMagick to version 7.

    -

    Creating a security policy that fits your specific local environment before making use of ImageMagick is highly advised. You can find guidance on setting up this policy. Also, it's important to verify your policy using the validation tool.

    +

    Creating a security policy that fits your specific local environment before making use of ImageMagick is highly advised. You can find guidance on setting up this policy. Also, it's important to verify your policy using the validation tool.

    -

    Features and Capabilities

    +

    Features and Capabilities

    One of the key features of ImageMagick is its support for scripting and automation. This allows users to create complex image manipulation pipelines that can be run automatically, without the need for manual intervention. This can be especially useful for tasks that require the processing of large numbers of images, or for tasks that need to be performed on a regular basis.

    @@ -112,7 +165,7 @@
    - + @@ -124,7 +177,7 @@ - + @@ -144,19 +197,19 @@ - + - + - - + + - + @@ -164,7 +217,7 @@ - + @@ -176,7 +229,7 @@ - + @@ -188,11 +241,11 @@ - + - + @@ -220,7 +273,7 @@ - + @@ -232,19 +285,19 @@ - - + + - + - + @@ -252,11 +305,11 @@ - + - + @@ -266,19 +319,19 @@
    AnimationAnimation create a GIF animation sequence from a group of images.
    accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.
    Color thresholdingColor thresholding force all pixels in the color range to white otherwise black.
    uniquely label connected regions in an image.
    Convex hullConvex hull smallest area convex polygon containing the image foreground objects. In addition, the minimum bounding box and unrotate angle are also generated.
    DecorateDecorate add a border or frame to an image.
    Delineate image featuresCanny edge detection, Hough lines.Delineate image featuresCanny edge detection, Hough lines.
    Discrete Fourier transformDiscrete Fourier transform implements the forward and inverse DFT.
    offload intermediate pixel storage to one or more remote servers.
    DrawDraw add shapes or text to an image.
    convert an image from one format to another (e.g. PNG to JPEG).
    Generalized pixel distortionGeneralized pixel distortion correct for, or induce image distortions including perspective.
    accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.
    Histogram equalizationHistogram equalization use adaptive histogram equalization to improve contrast in images.
    Image cacheImage cache secure methods and tools to cache images, image sequences, video, audio or metadata in a local folder..
    juxtapose image thumbnails on an image canvas.
    Morphology of shapesMorphology of shapes extract features, describe shapes, and recognize patterns in images.
    support multispectral imagery up to 64 bands.
    Noise and color reductionKuwahara Filter, mean-shift.Noise and color reductionKuwahara Filter, mean-shift.
    Perceptual hash map visually identical images to the same or similar hash-- useful in image retrieval, authentication, indexing, or copy detection as well as digital watermarking.
    Special effectsSpecial effects blur, sharpen, threshold, or tint an image.
    Text & commentsText & comments insert descriptive or artistic text in an image.
    ImageMagick is thread safe and most internal algorithms execute in parallel to take advantage of speed-ups offered by multicore processor chips.
    TransformTransform resize, rotate, deskew, crop, flip or trim an image.
    TransparencyTransparency render portions of an image invisible.

    -

    Examples of ImageMagick Usage demonstrates how to use the software from the command line to achieve various effects. There are also several scripts available on the website called Fred's ImageMagick Scripts, which can be used to apply geometric transforms, blur and sharpen images, remove noise, and perform other operations. Additionally, there is a tool called Magick.NET that allows users to access the functionality of ImageMagick without having to install the software on their own systems. Finally, the website also includes a Cookbook with tips and examples for using ImageMagick on Windows systems.

    +

    Examples of ImageMagick Usage demonstrates how to use the software from the command line to achieve various effects. There are also several scripts available on the website called Fred's ImageMagick Scripts, which can be used to apply geometric transforms, blur and sharpen images, remove noise, and perform other operations. Additionally, there is a tool called Magick.NET that allows users to access the functionality of ImageMagick without having to install the software on their own systems. Finally, the website also includes a Cookbook with tips and examples for using ImageMagick on Windows systems.

    -

    Community

    -

    Join the ImageMagick community by participating in the discussion service. Here, you can find answers to questions asked by other ImageMagick users or ask your own questions. If you have a technical question, a suggestion for an improvement, or a fix for a bug, you can also open an issue to get help from the community.

    +

    Community

    +

    Join the ImageMagick community by participating in the discussion service. Here, you can find answers to questions asked by other ImageMagick users or ask your own questions. If you have a technical question, a suggestion for an improvement, or a fix for a bug, you can also open an issue to get help from the community.

    -
    - + - \ No newline at end of file + \ No newline at end of file diff --git a/m4/Makefile.am b/m4/Makefile.am index 3c39efd..f7c0a96 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -15,7 +15,6 @@ # Makefile for building ImageMagick m4 macros. M4_EXTRA_DIST = \ - ac_func_fseeko.m4 \ ax_append_flag.m4 \ ax_c___attribute__.m4 \ ax_cflags_warn_all.m4 \ diff --git a/m4/ac_func_fseeko.m4 b/m4/ac_func_fseeko.m4 deleted file mode 100644 index eaeabb9..0000000 --- a/m4/ac_func_fseeko.m4 +++ /dev/null @@ -1,72 +0,0 @@ -# This file is part of Autoconf. -*- Autoconf -*- -# Checking for functions. -# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software -# Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception, the Free Software Foundation gives unlimited -# permission to copy, distribute and modify the configure scripts that -# are the output of Autoconf. You need not follow the terms of the GNU -# General Public License when using or distributing such scripts, even -# though portions of the text of Autoconf appear in them. The GNU -# General Public License (GPL) does govern all other use of the material -# that constitutes the Autoconf program. -# -# Certain portions of the Autoconf source text are designed to be copied -# (in certain cases, depending on the input) into the output of -# Autoconf. We call these the "data" portions. The rest of the Autoconf -# source text consists of comments plus executable code that decides which -# of the data portions to output in any given case. We call these -# comments and executable code the "non-data" portions. Autoconf never -# copies any of the non-data portions into its output. -# -# This special exception to the GPL applies to versions of Autoconf -# released by the Free Software Foundation. When you make and -# distribute a modified version of Autoconf, you may extend this special -# exception to the GPL to apply to your modified version as well, *unless* -# your modified version has the potential to copy into its output some -# of the text that was the non-data portion of the version that you started -# with. (In other words, unless your change moves or copies text from -# the non-data portions to the data portions.) If your modification has -# such potential, you must delete any notice of this special exception -# to the GPL from your modified version. -# -# Written by David MacKenzie, with help from -# Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor, -# Roland McGrath, Noah Friedman, david d zuhn, and many others. - -# AC_FUNC_FSEEKO -# -------------- -AN_FUNCTION([ftello], [AC_FUNC_FSEEKO]) -AN_FUNCTION([fseeko], [AC_FUNC_FSEEKO]) -AC_DEFUN([AC_FUNC_FSEEKO], -[_AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, 1, - [ac_cv_sys_largefile_source], - [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).], - [[#include /* for off_t */ - #include ]], - [[int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);]]) - -# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug -# in glibc 2.1.3, but that breaks too many other things. -# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. -if test $ac_cv_sys_largefile_source != unknown; then - AC_DEFINE(HAVE_FSEEKO, 1, - [Define to 1 if fseeko (and presumably ftello) exists and is declared.]) -fi -])# AC_FUNC_FSEEKO diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4 index 39a7a5e..9f35d13 100644 --- a/m4/ax_pthread.m4 +++ b/m4/ax_pthread.m4 @@ -244,7 +244,7 @@ AS_IF([test "x$ax_pthread_clang" = "xyes"], [ax_pthread_flags="-pthread,-lpthread -pthread"]) -# The presence of a feature test macro requesting reentrant function +# The presence of a feature test macro requesting re-entrant function # definitions is, on some systems, a strong hint that pthreads support is # correctly enabled diff --git a/m4/version.m4 b/m4/version.m4 index 48ce8d2..1221b85 100644 --- a/m4/version.m4 +++ b/m4/version.m4 @@ -26,8 +26,8 @@ m4_define([magick_name], [ImageMagick]) m4_define([magick_major_version], [6]) m4_define([magick_minor_version], [9]) -m4_define([magick_micro_version], [12]) -m4_define([magick_patchlevel_version], [98]) +m4_define([magick_micro_version], [13]) +m4_define([magick_patchlevel_version], [25]) m4_define([magick_is_beta], [n]) m4_define([magick_base_version], [magick_major_version.magick_minor_version.magick_micro_version]) @@ -36,8 +36,8 @@ m4_define([magick_version], m4_define([magick_bugreport], [https://github.com/ImageMagick/ImageMagick6/issues]) m4_define([magick_url], [https://legacy.imagemagick.org]) -m4_define([magick_lib_version], [0x69C]) -m4_define([magick_tarname],[ImageMagick]) +m4_define([magick_lib_version], [0x69D]) +m4_define([magick_tarname], [ImageMagick]) # # If the library source code has changed at all since the last update, diff --git a/magick/MagickCore-config.in b/magick/MagickCore-config.in index b4b36ea..5b7f492 100644 --- a/magick/MagickCore-config.in +++ b/magick/MagickCore-config.in @@ -6,13 +6,16 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ +libdir=@libdir@ +pkgconfigdir=@pkgconfigdir@ +export PKG_CONFIG_LIBDIR="${pkgconfigdir}" usage="\ Usage: MagickCore-config [--cflags] [--cppflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version]" if test $# -eq 0; then echo "${usage}" 1>&2 - echo "Example: gcc \`MagickCore-config --cflags --cppflags\` -o core core.c \`Magick-config --ldflags --libs\`" 1>&2 + echo "Example: gcc \`MagickCore-config --cflags --cppflags\` -o core core.c \`MagickCore-config --ldflags --libs\`" 1>&2 exit 1 fi diff --git a/magick/Makefile.am b/magick/Makefile.am index 10cdb82..20dbf40 100644 --- a/magick/Makefile.am +++ b/magick/Makefile.am @@ -194,6 +194,7 @@ MAGICK_BASE_SRCS = \ magick/magick-config.h \ magick/magick-type.h \ magick/magick.h \ + magick/magick-private.h \ magick/matrix.c \ magick/matrix.h \ magick/memory.c \ @@ -453,6 +454,7 @@ MAGICK_NOINST_HDRS = \ magick/image-private.h \ magick/locale-private.h \ magick/mac.h \ + magick/magick-private.h \ magick/memory-private.h \ magick/mime-private.h \ magick/monitor-private.h \ diff --git a/magick/accelerate.c b/magick/accelerate.c index becdece..51c4cab 100644 --- a/magick/accelerate.c +++ b/magick/accelerate.c @@ -43,7 +43,6 @@ Include declarations. */ #include "magick/studio.h" #include "magick/accelerate-private.h" -#include "magick/accelerate-kernels-private.h" #include "magick/artifact.h" #include "magick/cache.h" #include "magick/cache-private.h" @@ -2739,7 +2738,7 @@ static MagickBooleanType ComputeFunctionImage(Image *image, parametersBufferPtr[i] = (float)parameters[i]; parametersBuffer = clEnv->library->clCreateBuffer(context, CL_MEM_COPY_HOST_PTR, number_parameters * sizeof(float), parametersBufferPtr, &clStatus); - parametersBufferPtr=RelinquishMagickMemory(parametersBufferPtr); + parametersBufferPtr=(float *) RelinquishMagickMemory(parametersBufferPtr); } clkernel = AcquireOpenCLKernel(clEnv, MAGICK_OPENCL_ACCELERATE, "ComputeFunction"); @@ -4688,7 +4687,7 @@ static Image *ComputeUnsharpMaskImage(const Image *image, goto cleanup; } - kernelBufferPtr=AcquireQuantumMemory(kernel->width,sizeof(float)); + kernelBufferPtr=(float *) AcquireQuantumMemory(kernel->width,sizeof(float)); if (kernelBufferPtr == (float *) NULL) { (void) OpenCLThrowMagickException(exception, GetMagickModule(), ResourceLimitWarning, "Memory allocation failed.","."); @@ -4698,7 +4697,7 @@ static Image *ComputeUnsharpMaskImage(const Image *image, kernelBufferPtr[i]=(float) kernel->values[i]; imageKernelBuffer = clEnv->library->clCreateBuffer(context, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, kernel->width * sizeof(float), kernelBufferPtr, &clStatus); - kernelBufferPtr=RelinquishMagickMemory(kernelBufferPtr); + kernelBufferPtr=(float *) RelinquishMagickMemory(kernelBufferPtr); if (clStatus != CL_SUCCESS) { (void) OpenCLThrowMagickException(exception, GetMagickModule(), ResourceLimitWarning, "clEnv->library->clCreateBuffer failed.","."); diff --git a/magick/animate.c b/magick/animate.c index 2914eff..81094b7 100644 --- a/magick/animate.c +++ b/magick/animate.c @@ -225,7 +225,7 @@ typedef enum StepBackwardCommand, StepForwardCommand, NullCommand -} CommandType; +} AnimateCommand; /* Stipples. @@ -239,7 +239,7 @@ typedef enum Forward declarations. */ static Image - *XMagickCommand(Display *,XResourceInfo *,XWindows *,const CommandType, + *XMagickCommand(Display *,XResourceInfo *,XWindows *,const AnimateCommand, Image **,MagickStatusType *); static MagickBooleanType @@ -342,7 +342,7 @@ MagickExport MagickBooleanType AnimateImages(const ImageInfo *image_info, % The format of the XMagickCommand method is: % % Image *XMagickCommand(Display *display,XResourceInfo *resource_info, -% XWindows *windows,const CommandType command_type,Image **image, +% XWindows *windows,const AnimateCommand animate_command,Image **image, % MagickStatusType *state) % % A description of each parameter follows: @@ -363,7 +363,7 @@ MagickExport MagickBooleanType AnimateImages(const ImageInfo *image_info, % */ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, - XWindows *windows,const CommandType command_type,Image **image, + XWindows *windows,const AnimateCommand animate_command,Image **image, MagickStatusType *state) { Image @@ -382,7 +382,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, Process user command. */ nexus=NewImageList(); - switch (command_type) + switch (animate_command) { case OpenCommand: { @@ -518,9 +518,9 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, { *state|=StepAnimationState; *state&=(~PlayAnimationState); - if (command_type == StepBackwardCommand) + if (animate_command == StepBackwardCommand) *state&=(~ForwardAnimationState); - if (command_type == StepForwardCommand) + if (animate_command == StepForwardCommand) *state|=ForwardAnimationState; if (resource_info->title != (char *) NULL) break; @@ -1257,7 +1257,7 @@ MagickExport Image *XAnimateImages(Display *display, HelpMenu }; - static const CommandType + static const AnimateCommand CommandMenus[]= { NullCommand, @@ -1267,7 +1267,7 @@ MagickExport Image *XAnimateImages(Display *display, InfoCommand, QuitCommand }, - CommandTypes[]= + AnimateCommands[]= { OpenCommand, PlayCommand, @@ -1293,24 +1293,24 @@ MagickExport Image *XAnimateImages(Display *display, VersionCommand }; - static const CommandType + static const AnimateCommand *Commands[MagickMenus]= { - CommandTypes, + AnimateCommands, SpeedCommands, DirectionCommands, HelpCommands }; + AnimateCommand + animate_command; + char command[MaxTextExtent], *directory, geometry[MaxTextExtent], resource_name[MaxTextExtent]; - CommandType - command_type; - Image *coalesce_image, *display_image, @@ -2195,7 +2195,7 @@ MagickExport Image *XAnimateImages(Display *display, if (id < 0) continue; (void) CopyMagickString(command,CommandMenu[id],MaxTextExtent); - command_type=CommandMenus[id]; + animate_command=CommandMenus[id]; if (id < MagickMenus) { int @@ -2209,11 +2209,11 @@ MagickExport Image *XAnimateImages(Display *display, if (entry < 0) continue; (void) CopyMagickString(command,Menus[id][entry],MaxTextExtent); - command_type=Commands[id][entry]; + animate_command=Commands[id][entry]; } - if (command_type != NullCommand) + if (animate_command != NullCommand) nexus=XMagickCommand(display,resource_info,windows, - command_type,&image,&state); + animate_command,&image,&state); continue; } switch (event.type) @@ -2525,63 +2525,63 @@ MagickExport Image *XAnimateImages(Display *display, if (resource_info->debug != MagickFalse) (void) LogMagickEvent(X11Event,GetMagickModule(), "Key press: 0x%lx (%c)",(unsigned long) key_symbol,*command); - command_type=NullCommand; + animate_command=NullCommand; switch (key_symbol) { case XK_o: { if ((event.xkey.state & ControlMask) == MagickFalse) break; - command_type=OpenCommand; + animate_command=OpenCommand; break; } case XK_BackSpace: { - command_type=StepBackwardCommand; + animate_command=StepBackwardCommand; break; } case XK_space: { - command_type=StepForwardCommand; + animate_command=StepForwardCommand; break; } case XK_less: { - command_type=FasterCommand; + animate_command=FasterCommand; break; } case XK_greater: { - command_type=SlowerCommand; + animate_command=SlowerCommand; break; } case XK_F1: { - command_type=HelpCommand; + animate_command=HelpCommand; break; } case XK_Find: { - command_type=BrowseDocumentationCommand; + animate_command=BrowseDocumentationCommand; break; } case XK_question: { - command_type=InfoCommand; + animate_command=InfoCommand; break; } case XK_q: case XK_Escape: { - command_type=QuitCommand; + animate_command=QuitCommand; break; } default: break; } - if (command_type != NullCommand) - nexus=XMagickCommand(display,resource_info,windows, - command_type,&image,&state); + if (animate_command != NullCommand) + nexus=XMagickCommand(display,resource_info,windows,animate_command, + &image,&state); break; } case KeyRelease: diff --git a/magick/annotate.c b/magick/annotate.c index 2b9959e..5e30648 100644 --- a/magick/annotate.c +++ b/magick/annotate.c @@ -636,7 +636,7 @@ MagickExport ssize_t FormatMagickCaption(Image *image,DrawInfo *draw_info, q=draw_info->text; s=(char *) NULL; width=0; - for (p=(*caption); GetUTFCode(p) != 0; p+=GetUTFOctets(p)) + for (p=(*caption); GetUTFCode(p) != 0; p+=(ptrdiff_t) GetUTFOctets(p)) { int code; @@ -690,7 +690,7 @@ MagickExport ssize_t FormatMagickCaption(Image *image,DrawInfo *draw_info, s=(char *) NULL; } n=0; - for (p=(*caption); GetUTFCode(p) != 0; p+=GetUTFOctets(p)) + for (p=(*caption); GetUTFCode(p) != 0; p+=(ptrdiff_t) GetUTFOctets(p)) if (GetUTFCode(p) == '\n') n++; return(n); @@ -1057,12 +1057,6 @@ static MagickBooleanType RenderType(Image *image,const DrawInfo *draw_info, font=DestroyString(font); } sans_exception=AcquireExceptionInfo(); - if (type_info == (const TypeInfo *) NULL) - type_info=GetTypeInfoByFamily("Noto Sans",draw_info->style, - draw_info->stretch,draw_info->weight,sans_exception); - if (type_info == (const TypeInfo *) NULL) - type_info=GetTypeInfoByFamily("Nimbus Sans",draw_info->style, - draw_info->stretch,draw_info->weight,sans_exception); if (type_info == (const TypeInfo *) NULL) type_info=GetTypeInfoByFamily((const char *) NULL,draw_info->style, draw_info->stretch,draw_info->weight,sans_exception); @@ -1229,7 +1223,7 @@ static size_t ComplexTextLayout(const DrawInfo *draw_info,const char *text, return(0); last_glyph=0; p=text; - for (i=0; GetUTFCode(p) != 0; p+=GetUTFOctets(p), i++) + for (i=0; GetUTFCode(p) != 0; p+=(ptrdiff_t) GetUTFOctets(p), i++) { (*grapheme)[i].index=(ssize_t) FT_Get_Char_Index(face,GetUTFCode(p)); (*grapheme)[i].x_offset=0; @@ -1724,7 +1718,7 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info, if (image->matte == MagickFalse) (void) SetImageAlphaChannel(image,OpaqueAlphaChannel); } - for (p=draw_info->text; GetUTFCode(p) != 0; p+=GetUTFOctets(p)) + for (p=draw_info->text; GetUTFCode(p) != 0; p+=(ptrdiff_t) GetUTFOctets(p)) if (GetUTFCode(p) < 0) break; utf8=(unsigned char *) NULL; @@ -1839,6 +1833,10 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info, MagickFalse; p=bitmap->bitmap.buffer; image_view=AcquireAuthenticCacheView(image,exception); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(status) \ + magick_number_threads(image,image,bitmap->bitmap.rows,4) +#endif for (y=0; y < (ssize_t) bitmap->bitmap.rows; y++) { MagickBooleanType @@ -2105,7 +2103,8 @@ static MagickBooleanType RenderPostscript(Image *image, unique_file; MagickBooleanType - identity; + identity, + status; PointInfo extent, @@ -2281,8 +2280,13 @@ static MagickBooleanType RenderPostscript(Image *image, if (annotate_image->matte == MagickFalse) (void) SetImageAlphaChannel(annotate_image,OpaqueAlphaChannel); fill_color=draw_info->fill; + status=MagickTrue; exception=(&image->exception); annotate_view=AcquireAuthenticCacheView(annotate_image,exception); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(status) \ + magick_number_threads(annotate_image,annotate_image,annotate_image->rows,4) +#endif for (y=0; y < (ssize_t) annotate_image->rows; y++) { PixelPacket @@ -2291,10 +2295,15 @@ static MagickBooleanType RenderPostscript(Image *image, ssize_t x; + if (status == MagickFalse) + continue; q=GetCacheViewAuthenticPixels(annotate_view,0,y,annotate_image->columns, 1,exception); if (q == (PixelPacket *) NULL) - break; + { + status=MagickFalse; + continue; + } for (x=0; x < (ssize_t) annotate_image->columns; x++) { (void) GetFillColor(draw_info,x,y,&fill_color); @@ -2308,7 +2317,7 @@ static MagickBooleanType RenderPostscript(Image *image, } sync=SyncCacheViewAuthenticPixels(annotate_view,exception); if (sync == MagickFalse) - break; + status=MagickFalse; } annotate_view=DestroyCacheView(annotate_view); (void) CompositeImage(image,OverCompositeOp,annotate_image, diff --git a/magick/attribute.c b/magick/attribute.c index 5f4abe4..a695819 100644 --- a/magick/attribute.c +++ b/magick/attribute.c @@ -124,14 +124,14 @@ % */ -typedef struct _EdgeInfo +typedef struct _CensusInfo { double left, right, top, bottom; -} EdgeInfo; +} CensusInfo; static double GetEdgeBackgroundCensus(const Image *image, const CacheView *image_view,const GravityType gravity,const size_t width, @@ -240,7 +240,7 @@ static double GetEdgeBackgroundCensus(const Image *image, return(census); } -static inline double GetMinEdgeBackgroundCensus(const EdgeInfo *edge) +static inline double GetMinEdgeBackgroundCensus(const CensusInfo *edge) { double census; @@ -256,6 +256,10 @@ static RectangleInfo GetEdgeBoundingBox(const Image *image, CacheView *edge_view; + CensusInfo + edge, + vertex; + const char *artifact; @@ -263,10 +267,6 @@ static RectangleInfo GetEdgeBoundingBox(const Image *image, background_census, percent_background; - EdgeInfo - edge, - vertex; - Image *edge_image; @@ -458,7 +458,7 @@ MagickExport RectangleInfo GetImageBoundingBox(const Image *image, GetMagickPixelPacket(image,&zero); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -978,13 +978,10 @@ MagickExport ImageType IdentifyImageGray(const Image *image, *image_view; ImageType - type; - - const PixelPacket - *p; + type = BilevelType; - ssize_t - x; + MagickBooleanType + status = MagickTrue; ssize_t y; @@ -998,30 +995,44 @@ MagickExport ImageType IdentifyImageGray(const Image *image, return(image->type); if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse) return(UndefinedType); - type=BilevelType; image_view=AcquireVirtualCacheView(image,exception); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(status,type) \ + magick_number_threads(image,image,image->rows,2) +#endif for (y=0; y < (ssize_t) image->rows; y++) { + const PixelPacket + *p; + + ssize_t + x; + + if (status == MagickFalse) + continue; p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); if (p == (const PixelPacket *) NULL) - break; + { + status=MagickFalse; + continue; + } for (x=0; x < (ssize_t) image->columns; x++) { if (IsPixelGray(p) == MagickFalse) { - type=UndefinedType; + status=MagickFalse; break; } if ((type == BilevelType) && (IsPixelMonochrome(p) == MagickFalse)) type=GrayscaleType; p++; } - if (type == UndefinedType) - break; } image_view=DestroyCacheView(image_view); if ((type == GrayscaleType) && (image->matte != MagickFalse)) type=GrayscaleMatteType; + if (status == MagickFalse) + return(UndefinedType); return(type); } @@ -1059,13 +1070,7 @@ MagickExport MagickBooleanType IdentifyImageMonochrome(const Image *image, *image_view; ImageType - type; - - ssize_t - x; - - const PixelPacket - *p; + type = BilevelType; ssize_t y; @@ -1078,13 +1083,27 @@ MagickExport MagickBooleanType IdentifyImageMonochrome(const Image *image, return(MagickTrue); if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse) return(MagickFalse); - type=BilevelType; image_view=AcquireVirtualCacheView(image,exception); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(type) \ + magick_number_threads(image,image,image->rows,2) +#endif for (y=0; y < (ssize_t) image->rows; y++) { + const PixelPacket + *p; + + ssize_t + x; + + if (type == UndefinedType) + continue; p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); if (p == (const PixelPacket *) NULL) - break; + { + type=UndefinedType; + continue; + } for (x=0; x < (ssize_t) image->columns; x++) { if (IsPixelMonochrome(p) == MagickFalse) @@ -1094,13 +1113,9 @@ MagickExport MagickBooleanType IdentifyImageMonochrome(const Image *image, } p++; } - if (type == UndefinedType) - break; } image_view=DestroyCacheView(image_view); - if (type == BilevelType) - return(MagickTrue); - return(MagickFalse); + return(type == BilevelType ? MagickTrue : MagickFalse); } /* @@ -1273,11 +1288,8 @@ MagickExport MagickBooleanType IsOpaqueImage(const Image *image, CacheView *image_view; - const PixelPacket - *p; - - ssize_t - x; + MagickBooleanType + opaque = MagickTrue; ssize_t y; @@ -1292,22 +1304,38 @@ MagickExport MagickBooleanType IsOpaqueImage(const Image *image, if (image->matte == MagickFalse) return(MagickTrue); image_view=AcquireVirtualCacheView(image,exception); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(opaque) \ + magick_number_threads(image,image,image->rows,2) +#endif for (y=0; y < (ssize_t) image->rows; y++) { + const PixelPacket + *p; + + ssize_t + x; + + if (opaque == MagickFalse) + continue; p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); if (p == (const PixelPacket *) NULL) - break; + { + opaque=MagickFalse; + continue; + } for (x=0; x < (ssize_t) image->columns; x++) { if (GetPixelOpacity(p) != OpaqueOpacity) - break; + { + opaque=MagickFalse; + break; + } p++; } - if (x < (ssize_t) image->columns) - break; } image_view=DestroyCacheView(image_view); - return(y < (ssize_t) image->rows ? MagickFalse : MagickTrue); + return(opaque); } /* @@ -1424,7 +1452,7 @@ RestoreMSCWarning range); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1474,7 +1502,7 @@ RestoreMSCWarning */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/magick/blob.c b/magick/blob.c index 339884a..da0d15f 100644 --- a/magick/blob.c +++ b/magick/blob.c @@ -139,9 +139,11 @@ struct _BlobInfo MagickBooleanType exempt, synchronize, - status, temporary; + int + status; + StreamType type; @@ -174,7 +176,7 @@ struct _BlobInfo Forward declarations. */ static int - SyncBlob(Image *); + SyncBlob(const Image *); /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -277,7 +279,7 @@ MagickExport MagickBooleanType BlobToFile(char *filename,const void *blob, for (i=0; i < length; i+=(size_t) count) { count=write(file,(const char *) blob+i,MagickMin(length-i,(size_t) - MAGICK_SSIZE_MAX)); + MagickMaxBufferExtent)); if (count <= 0) { count=0; @@ -497,9 +499,9 @@ MagickExport BlobInfo *CloneBlobInfo(const BlobInfo *blob_info) static inline void ThrowBlobException(BlobInfo *blob_info) { - if ((blob_info->status == MagickFalse) && (errno != 0)) + if ((blob_info->status == 0) && (errno != 0)) blob_info->error_number=errno; - blob_info->status=MagickTrue; + blob_info->status=(-1); } MagickExport MagickBooleanType CloseBlob(Image *image) @@ -520,12 +522,13 @@ MagickExport MagickBooleanType CloseBlob(Image *image) blob_info=image->blob; if ((blob_info == (BlobInfo *) NULL) || (blob_info->type == UndefinedStream)) return(MagickTrue); - status=SyncBlob(image); + (void) SyncBlob(image); + status=blob_info->status; switch (blob_info->type) { case UndefinedStream: - case StandardStream: break; + case StandardStream: case FileStream: case PipeStream: { @@ -591,7 +594,7 @@ MagickExport MagickBooleanType CloseBlob(Image *image) if (blob_info->exempt != MagickFalse) { blob_info->type=UndefinedStream; - return(blob_info->status); + return(blob_info->status != 0 ? MagickFalse : MagickTrue); } switch (blob_info->type) { @@ -647,7 +650,7 @@ MagickExport MagickBooleanType CloseBlob(Image *image) } } (void) DetachBlob(blob_info); - return(blob_info->status); + return(blob_info->status != 0 ? MagickFalse : MagickTrue); } /* @@ -750,6 +753,7 @@ MagickExport unsigned char *DetachBlob(BlobInfo *blob_info) blob_info->mapped=MagickFalse; blob_info->length=0; blob_info->offset=0; + blob_info->mode=UndefinedBlobMode; blob_info->eof=MagickFalse; blob_info->error=0; blob_info->exempt=MagickFalse; @@ -859,7 +863,7 @@ MagickExport MagickBooleanType DiscardBlobBytes(Image *image, if (length != (MagickSizeType) ((MagickOffsetType) length)) return(MagickFalse); count=0; - for (i=0; i < (MagickOffsetType) length; i+=count) + for (i=0; i < length; i+=(MagickSizeType) count) { quantum=(size_t) MagickMin(length-i,sizeof(buffer)); (void) ReadBlobStream(image,quantum,buffer,&count); @@ -870,7 +874,7 @@ MagickExport MagickBooleanType DiscardBlobBytes(Image *image, break; } } - return(i < (MagickOffsetType) length ? MagickFalse : MagickTrue); + return(i < (MagickSizeType) length ? MagickFalse : MagickTrue); } /* @@ -1231,7 +1235,7 @@ MagickExport unsigned char *FileToBlob(const char *filename,const size_t extent, for (i=0; i < *length; i+=count) { count=read(file,blob+i,(size_t) MagickMin(*length-i,(size_t) - MAGICK_SSIZE_MAX)); + MagickMaxBufferExtent)); if (count <= 0) { count=0; @@ -1426,9 +1430,9 @@ MagickExport MagickBooleanType GetBlobError(const Image *image) assert(image->signature == MagickCoreSignature); if (IsEventLogging() != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); - if ((image->blob->status != MagickFalse) && (image->blob->error_number != 0)) + if ((image->blob->status != 0) && (image->blob->error_number != 0)) errno=image->blob->error_number; - return(image->blob->status); + return(image->blob->status == 0 ? MagickFalse : MagickTrue); } /* @@ -1806,7 +1810,6 @@ MagickExport unsigned char *ImageToBlob(const ImageInfo *image_info, (void) FormatLocaleString(image->filename,MagickPathExtent, "%s:%s",image->magick,unique); status=WriteImage(blob_info,image); - (void) CloseBlob(image); (void) fclose(blob_info->file); if (status == MagickFalse) InheritException(exception,&image->exception); @@ -2042,8 +2045,9 @@ MagickExport unsigned char *ImagesToBlob(const ImageInfo *image_info, blob=(unsigned char *) ResizeQuantumMemory(blob,*length+1, sizeof(unsigned char)); } - else if (status == MagickFalse) - blob_info->blob=RelinquishMagickMemory(blob_info->blob); + else + if (status == MagickFalse) + blob_info->blob=RelinquishMagickMemory(blob_info->blob); } } else @@ -2072,7 +2076,6 @@ MagickExport unsigned char *ImagesToBlob(const ImageInfo *image_info, (void) FormatLocaleString(filename,MagickPathExtent,"%s:%s", images->magick,unique); status=WriteImages(blob_info,images,filename,exception); - (void) CloseBlob(images); (void) fclose(blob_info->file); if (status == MagickFalse) InheritException(exception,&images->exception); @@ -2955,7 +2958,7 @@ MagickExport MagickBooleanType OpenBlob(const ImageInfo *image_info, (void) SetStreamBuffering(image_info,image); } } - blob_info->status=MagickFalse; + blob_info->status=0; blob_info->error_number=0; if (blob_info->type != UndefinedStream) blob_info->size=GetBlobSize(image); @@ -4501,8 +4504,6 @@ MagickExport MagickOffsetType SeekBlob(Image *image, blob_info->eof=MagickFalse; break; } - if (blob_info->offset >= (MagickOffsetType) ((off_t) blob_info->extent)) - return(-1); break; } } @@ -4706,18 +4707,19 @@ MagickExport MagickBooleanType SetBlobExtent(Image *image, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % SyncBlob() flushes the datastream if it is a file or synchronizes the data -% attributes if it is an blob. +% attributes if it is an blob. It returns 0 on success; otherwise, it returns +% -1 and set errno to indicate the error. % % The format of the SyncBlob method is: % -% int SyncBlob(Image *image) +% int SyncBlob(const Image *image) % % A description of each parameter follows: % % o image: the image. % */ -static int SyncBlob(Image *image) +static int SyncBlob(const Image *image) { BlobInfo *magick_restrict blob_info; @@ -4728,9 +4730,10 @@ static int SyncBlob(Image *image) assert(image != (Image *) NULL); assert(image->signature == MagickCoreSignature); assert(image->blob != (BlobInfo *) NULL); - assert(image->blob->type != UndefinedStream); if (IsEventLogging() != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); + if (EOFBlob(image) != 0) + return(0); blob_info=image->blob; status=0; switch (blob_info->type) @@ -4747,7 +4750,7 @@ static int SyncBlob(Image *image) case ZipStream: { #if defined(MAGICKCORE_ZLIB_DELEGATE) - status=gzflush(blob_info->file_info.gzfile,Z_SYNC_FLUSH); + (void) gzflush(blob_info->file_info.gzfile,Z_SYNC_FLUSH); #endif break; } diff --git a/magick/blob.h b/magick/blob.h index fc8154a..5b845d6 100644 --- a/magick/blob.h +++ b/magick/blob.h @@ -25,7 +25,7 @@ extern "C" { #endif -#define MagickMaxBufferExtent 81920 +#define MagickMaxBufferExtent 524288 #define MagickMinBufferExtent 16384 typedef enum diff --git a/magick/cache-private.h b/magick/cache-private.h index 8255877..cf4defe 100644 --- a/magick/cache-private.h +++ b/magick/cache-private.h @@ -249,6 +249,17 @@ typedef struct _CacheInfo height_limit; } CacheInfo; +static inline MagickBooleanType IsValidPixelOffset(const ssize_t x, + const size_t extent) +{ + if (extent == 0) + return(MagickTrue); + if ((x >= (ssize_t) (MAGICK_SSIZE_MAX/(ssize_t) extent)) || + (x <= (ssize_t) (MAGICK_SSIZE_MIN/(ssize_t) extent))) + return(MagickFalse); + return(MagickTrue); +} + extern MagickExport Cache AcquirePixelCache(const size_t), ClonePixelCache(const Cache), @@ -302,6 +313,10 @@ extern MagickExport void GetPixelCacheMethods(CacheMethods *), SetPixelCacheMethods(Cache,CacheMethods *); +extern MagickPrivate void + ResetCacheAnonymousMemory(void), + ResetPixelCacheEpoch(void); + extern MagickPrivate MagickBooleanType SyncImagePixelCache(Image *,ExceptionInfo *); diff --git a/magick/cache.c b/magick/cache.c index dc6de89..c7e9d6f 100644 --- a/magick/cache.c +++ b/magick/cache.c @@ -251,7 +251,7 @@ static cl_event *CopyOpenCLEvents(OpenCLCacheInfo *opencl_info, *event_count=opencl_info->event_count; if (*event_count > 0) { - events=AcquireQuantumMemory(*event_count,sizeof(*events)); + events=(cl_event *) AcquireQuantumMemory(*event_count,sizeof(*events)); if (events == (cl_event *) NULL) *event_count=0; else @@ -312,13 +312,14 @@ extern MagickPrivate void AddOpenCLEvent(const Image *image,cl_event event) LockSemaphoreInfo(cache_info->opencl->events_semaphore); if (cache_info->opencl->events == (cl_event *) NULL) { - cache_info->opencl->events=AcquireMagickMemory(sizeof( + cache_info->opencl->events=(cl_event *) AcquireMagickMemory(sizeof( *cache_info->opencl->events)); cache_info->opencl->event_count=1; } else - cache_info->opencl->events=ResizeQuantumMemory(cache_info->opencl->events, - ++cache_info->opencl->event_count,sizeof(*cache_info->opencl->events)); + cache_info->opencl->events=(cl_event *) ResizeQuantumMemory( + cache_info->opencl->events,++cache_info->opencl->event_count, + sizeof(*cache_info->opencl->events)); if (cache_info->opencl->events == (cl_event *) NULL) ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed"); cache_info->opencl->events[cache_info->opencl->event_count-1]=event; @@ -370,8 +371,6 @@ MagickExport Cache AcquirePixelCache(const size_t number_threads) cache_info->number_threads=number_threads; if (GetOpenMPMaximumThreads() > cache_info->number_threads) cache_info->number_threads=GetOpenMPMaximumThreads(); - if (GetMagickResourceLimit(ThreadResource) > cache_info->number_threads) - cache_info->number_threads=(size_t) GetMagickResourceLimit(ThreadResource); if (cache_info->number_threads == 0) cache_info->number_threads=1; cache_info->nexus_info=AcquirePixelCacheNexus(cache_info->number_threads); @@ -910,7 +909,7 @@ static MagickBooleanType ClonePixelCacheRepository( status=MagickTrue; #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - cache_number_threads(cache_info,clone_info,cache_info->rows,1) + cache_number_threads(cache_info,clone_info,cache_info->rows,4) #endif for (y=0; y < (ssize_t) cache_info->rows; y++) { @@ -949,7 +948,7 @@ static MagickBooleanType ClonePixelCacheRepository( sizeof(*cache_info->indexes); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - cache_number_threads(cache_info,clone_info,cache_info->rows,1) + cache_number_threads(cache_info,clone_info,cache_info->rows,4) #endif for (y=0; y < (ssize_t) cache_info->rows; y++) { @@ -1848,29 +1847,25 @@ static Cache GetImagePixelCache(Image *image,const MagickBooleanType clone, MagickBooleanType destroy, - status; + status = MagickTrue; static MagickSizeType cpu_throttle = MagickResourceInfinity, cycles = 0; - status=MagickTrue; - if (cpu_throttle == MagickResourceInfinity) - cpu_throttle=GetMagickResourceLimit(ThrottleResource); - if ((cycles++ % 4096) == 0) + if (IsImageTTLExpired(image) != MagickFalse) { - if (GetMagickTTL() < 0) - { - cache_info=(CacheInfo *) image->cache; - if (cache_info->file != -1) - (void) ClosePixelCacheOnDisk(cache_info); - (void) ThrowMagickException(exception,GetMagickModule(), - ResourceLimitFatalError,"TimeLimitExceeded","`%s'",image->filename); - return((Cache) NULL); - } - if (cpu_throttle != 0) - MagickDelay(cpu_throttle); +#if defined(ESTALE) + errno=ESTALE; +#endif + (void) ThrowMagickException(exception,GetMagickModule(), + ResourceLimitError,"TimeLimitExceeded","`%s'",image->filename); + return((Cache) NULL); } + if (cpu_throttle == MagickResourceInfinity) + cpu_throttle=GetMagickResourceLimit(ThrottleResource); + if ((cpu_throttle != 0) && ((cycles++ % 4096) == 0)) + MagickDelay(cpu_throttle); LockSemaphoreInfo(image->semaphore); assert(image->cache != (Cache) NULL); cache_info=(CacheInfo *) image->cache; @@ -2826,7 +2821,14 @@ MagickExport const IndexPacket *GetVirtualIndexQueue(const Image *image) assert(cache_info->signature == MagickCoreSignature); if (cache_info->methods.get_virtual_indexes_from_handler != (GetVirtualIndexesFromHandler) NULL) - return(cache_info->methods.get_virtual_indexes_from_handler(image)); + { + const IndexPacket + *indexes; + + indexes=cache_info->methods.get_virtual_indexes_from_handler(image); + if (indexes != (IndexPacket *) NULL) + return(indexes); + } assert(id < (int) cache_info->number_threads); return(GetVirtualIndexesFromNexus(cache_info,cache_info->nexus_info[id])); } @@ -2934,17 +2936,6 @@ static inline MagickBooleanType IsOffsetOverflow(const ssize_t x, return(MagickTrue); } -static inline MagickBooleanType IsValidOffset(const ssize_t y, - const size_t columns) -{ - if (columns == 0) - return(MagickTrue); - if ((y >= (MAGICK_SSIZE_MAX/(ssize_t) columns)) || - (y <= (MAGICK_SSIZE_MIN/(ssize_t) columns))) - return(MagickFalse); - return(MagickTrue); -} - static inline ssize_t RandomX(RandomInfo *random_info,const size_t columns) { return((ssize_t) (columns*GetPseudoRandomValue(random_info))); @@ -3031,7 +3022,7 @@ MagickExport const PixelPacket *GetVirtualPixelCacheNexus(const Image *image, MagickTrue : MagickFalse,nexus_info,exception); if (pixels == (PixelPacket *) NULL) return((const PixelPacket *) NULL); - if (IsValidOffset(nexus_info->region.y,cache_info->columns) == MagickFalse) + if (IsValidPixelOffset(nexus_info->region.y,cache_info->columns) == MagickFalse) return((const PixelPacket *) NULL); offset=nexus_info->region.y*(MagickOffsetType) cache_info->columns; if (IsOffsetOverflow(offset,nexus_info->region.x) == MagickFalse) @@ -3305,7 +3296,7 @@ MagickExport const PixelPacket *GetVirtualPixelCacheNexus(const Image *image, break; virtual_indexes=GetVirtualIndexesFromNexus(cache_info,virtual_nexus); (void) memcpy(q,p,(size_t) length*sizeof(*p)); - q+=length; + q+=(ptrdiff_t) length; if ((indexes != (IndexPacket *) NULL) && (virtual_indexes != (const IndexPacket *) NULL)) { @@ -3807,10 +3798,10 @@ static inline MagickOffsetType WritePixelCacheRegion( { #if !defined(MAGICKCORE_HAVE_PWRITE) count=write(cache_info->file,buffer+i,(size_t) MagickMin(length- - (MagickSizeType) i,MAGICK_SSIZE_MAX)); + (MagickSizeType) i,MagickMaxBufferExtent)); #else count=pwrite(cache_info->file,buffer+i,(size_t) MagickMin(length- - (MagickSizeType) i,MAGICK_SSIZE_MAX),offset+i); + (MagickSizeType) i,MagickMaxBufferExtent),offset+i); #endif if (count <= 0) { @@ -4032,6 +4023,9 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode, cache_info->storage_class=image->storage_class; if (status == 0) { + if ((source_info.storage_class != UndefinedClass) && + (mode != ReadMode)) + RelinquishPixelCachePixels(&source_info); cache_info->type=UndefinedCache; return(MagickFalse); } @@ -4099,12 +4093,17 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode, } if (status == 0) { + if ((source_info.storage_class != UndefinedClass) && + (mode != ReadMode)) + RelinquishPixelCachePixels(&source_info); cache_info->type=UndefinedCache; return(MagickFalse); } return(MagickTrue); } } + if ((source_info.storage_class != UndefinedClass) && (mode != ReadMode)) + RelinquishPixelCachePixels(&source_info); cache_info->type=UndefinedCache; (void) ThrowMagickException(exception,GetMagickModule(),CacheError, "CacheResourcesExhausted","`%s'",image->filename); @@ -4115,6 +4114,8 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode, */ if (status == MagickFalse) { + if ((source_info.storage_class != UndefinedClass) && (mode != ReadMode)) + RelinquishPixelCachePixels(&source_info); cache_info->type=UndefinedCache; (void) ThrowMagickException(exception,GetMagickModule(),CacheError, "CacheResourcesExhausted","`%s'",image->filename); @@ -4128,6 +4129,8 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode, } if (OpenPixelCacheOnDisk(cache_info,mode) == MagickFalse) { + if ((source_info.storage_class != UndefinedClass) && (mode != ReadMode)) + RelinquishPixelCachePixels(&source_info); cache_info->type=UndefinedCache; ThrowFileException(exception,CacheError,"UnableToOpenPixelCache", image->filename); @@ -4137,6 +4140,8 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode, cache_info->length); if (status == MagickFalse) { + if ((source_info.storage_class != UndefinedClass) && (mode != ReadMode)) + RelinquishPixelCachePixels(&source_info); cache_info->type=UndefinedCache; ThrowFileException(exception,CacheError,"UnableToExtendCache", image->filename); @@ -4193,6 +4198,9 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode, } if (status == 0) { + if ((source_info.storage_class != UndefinedClass) && + (mode != ReadMode)) + RelinquishPixelCachePixels(&source_info); cache_info->type=UndefinedCache; return(MagickFalse); } @@ -4420,7 +4428,7 @@ MagickExport PixelPacket *QueueAuthenticPixelCacheNexus(Image *image, "PixelsAreNotAuthentic","`%s'",image->filename); return((PixelPacket *) NULL); } - if (IsValidOffset(y,cache_info->columns) == MagickFalse) + if (IsValidPixelOffset(y,cache_info->columns) == MagickFalse) return((PixelPacket *) NULL); offset=y*(MagickOffsetType) cache_info->columns+x; if (offset < 0) @@ -4619,10 +4627,10 @@ static inline MagickOffsetType ReadPixelCacheRegion( { #if !defined(MAGICKCORE_HAVE_PREAD) count=read(cache_info->file,buffer+i,(size_t) MagickMin(length- - (MagickSizeType) i,(size_t) MAGICK_SSIZE_MAX)); + (MagickSizeType) i,(size_t) MagickMaxBufferExtent)); #else count=pread(cache_info->file,buffer+i,(size_t) MagickMin(length- - (MagickSizeType) i,(size_t) MAGICK_SSIZE_MAX),offset+i); + (MagickSizeType) i,(size_t) MagickMaxBufferExtent),offset+i); #endif if (count <= 0) { @@ -4659,7 +4667,7 @@ static MagickBooleanType ReadPixelCacheIndexes( return(MagickFalse); if (nexus_info->authentic_pixel_cache != MagickFalse) return(MagickTrue); - if (IsValidOffset(nexus_info->region.y,cache_info->columns) == MagickFalse) + if (IsValidPixelOffset(nexus_info->region.y,cache_info->columns) == MagickFalse) return(MagickFalse); offset=nexus_info->region.y*(MagickOffsetType) cache_info->columns+ nexus_info->region.x; @@ -4689,8 +4697,8 @@ static MagickBooleanType ReadPixelCacheIndexes( for (y=0; y < (ssize_t) rows; y++) { (void) memcpy(q,p,(size_t) length); - p+=cache_info->columns; - q+=nexus_info->region.width; + p+=(ptrdiff_t) cache_info->columns; + q+=(ptrdiff_t) nexus_info->region.width; } break; } @@ -4722,7 +4730,7 @@ static MagickBooleanType ReadPixelCacheIndexes( if (count < (MagickOffsetType) length) break; offset+=(MagickOffsetType) cache_info->columns; - q+=nexus_info->region.width; + q+=(ptrdiff_t) nexus_info->region.width; } if (IsFileDescriptorLimitExceeded() != MagickFalse) (void) ClosePixelCacheOnDisk(cache_info); @@ -4753,7 +4761,7 @@ static MagickBooleanType ReadPixelCacheIndexes( cache_info->server_info,®ion,length,(unsigned char *) q); if (count != (MagickOffsetType) length) break; - q+=nexus_info->region.width; + q+=(ptrdiff_t) nexus_info->region.width; region.y++; } UnlockSemaphoreInfo(cache_info->file_semaphore); @@ -4828,7 +4836,7 @@ static MagickBooleanType ReadPixelCachePixels( if (nexus_info->authentic_pixel_cache != MagickFalse) return(MagickTrue); - if (IsValidOffset(nexus_info->region.y,cache_info->columns) == MagickFalse) + if (IsValidPixelOffset(nexus_info->region.y,cache_info->columns) == MagickFalse) return(MagickFalse); offset=nexus_info->region.y*(MagickOffsetType) cache_info->columns; if ((offset/(MagickOffsetType) cache_info->columns) != nexus_info->region.y) @@ -4864,8 +4872,8 @@ static MagickBooleanType ReadPixelCachePixels( for (y=0; y < (ssize_t) rows; y++) { (void) memcpy(q,p,(size_t) length); - p+=cache_info->columns; - q+=nexus_info->region.width; + p+=(ptrdiff_t) cache_info->columns; + q+=(ptrdiff_t) nexus_info->region.width; } break; } @@ -4895,7 +4903,7 @@ static MagickBooleanType ReadPixelCachePixels( if (count < (MagickOffsetType) length) break; offset+=(MagickOffsetType) cache_info->columns; - q+=nexus_info->region.width; + q+=(ptrdiff_t) nexus_info->region.width; } if (IsFileDescriptorLimitExceeded() != MagickFalse) (void) ClosePixelCacheOnDisk(cache_info); @@ -4926,7 +4934,7 @@ static MagickBooleanType ReadPixelCachePixels( cache_info->server_info,®ion,length,(unsigned char *) q); if (count != (MagickOffsetType) length) break; - q+=nexus_info->region.width; + q+=(ptrdiff_t) nexus_info->region.width; region.y++; } UnlockSemaphoreInfo(cache_info->file_semaphore); @@ -4992,6 +5000,29 @@ MagickExport Cache ReferencePixelCache(Cache cache) % % % % % % ++ R e s e t C a c h e A n o n y m o u s M e m o r y % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% ResetCacheAnonymousMemory() resets the anonymous_memory value. +% +% The format of the ResetCacheAnonymousMemory method is: +% +% void ResetCacheAnonymousMemory(void) +% +*/ +MagickPrivate void ResetCacheAnonymousMemory(void) +{ + cache_anonymous_memory=0; +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % + S e t P i x e l C a c h e M e t h o d s % % % % % @@ -5201,14 +5232,19 @@ static PixelPacket *SetPixelCacheNexusPixels( return((PixelPacket *) NULL); } if (((MagickSizeType) width > cache_info->width_limit) || - ((MagickSizeType) height > cache_info->height_limit) || - (ValidatePixelOffset(x,width) == MagickFalse) || - (ValidatePixelOffset(y,height) == MagickFalse)) + ((MagickSizeType) height > cache_info->height_limit)) { (void) ThrowMagickException(exception,GetMagickModule(),ImageError, "WidthOrHeightExceedsLimit","`%s'",cache_info->filename); return((PixelPacket *) NULL); } + if ((ValidatePixelOffset(x,width) == MagickFalse) || + (ValidatePixelOffset(y,height) == MagickFalse)) + { + (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError, + "InvalidPixel","`%s'",cache_info->filename); + return((PixelPacket *) NULL); + } if (((cache_info->type == MemoryCache) || (cache_info->type == MapCache)) && (buffered == MagickFalse)) { @@ -5223,7 +5259,7 @@ static PixelPacket *SetPixelCacheNexusPixels( /* Pixels are accessed directly from memory. */ - if (IsValidOffset(y,cache_info->columns) == MagickFalse) + if (IsValidPixelOffset(y,cache_info->columns) == MagickFalse) return((PixelPacket *) NULL); offset=y*(MagickOffsetType) cache_info->columns+x; nexus_info->pixels=cache_info->pixels+offset; @@ -5325,7 +5361,7 @@ static MagickBooleanType SetCacheAlphaChannel(Image *image, image_view=AcquireVirtualCacheView(image,&image->exception); /* must be virtual */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -5753,7 +5789,7 @@ static MagickBooleanType WritePixelCacheIndexes(CacheInfo *cache_info, return(MagickTrue); if (nexus_info->indexes == (IndexPacket *) NULL) return(MagickFalse); - if (IsValidOffset(nexus_info->region.y,cache_info->columns) == MagickFalse) + if (IsValidPixelOffset(nexus_info->region.y,cache_info->columns) == MagickFalse) return(MagickFalse); offset=nexus_info->region.y*(MagickOffsetType) cache_info->columns+ nexus_info->region.x; @@ -5783,8 +5819,8 @@ static MagickBooleanType WritePixelCacheIndexes(CacheInfo *cache_info, for (y=0; y < (ssize_t) rows; y++) { (void) memcpy(q,p,(size_t) length); - p+=nexus_info->region.width; - q+=cache_info->columns; + p+=(ptrdiff_t) nexus_info->region.width; + q+=(ptrdiff_t) cache_info->columns; } break; } @@ -5816,7 +5852,7 @@ static MagickBooleanType WritePixelCacheIndexes(CacheInfo *cache_info, p); if (count < (MagickOffsetType) length) break; - p+=nexus_info->region.width; + p+=(ptrdiff_t) nexus_info->region.width; offset+=(MagickOffsetType) cache_info->columns; } if (IsFileDescriptorLimitExceeded() != MagickFalse) @@ -5848,7 +5884,7 @@ static MagickBooleanType WritePixelCacheIndexes(CacheInfo *cache_info, cache_info->server_info,®ion,length,(const unsigned char *) p); if (count != (MagickOffsetType) length) break; - p+=nexus_info->region.width; + p+=(ptrdiff_t) nexus_info->region.width; region.y++; } UnlockSemaphoreInfo(cache_info->file_semaphore); @@ -5922,7 +5958,7 @@ static MagickBooleanType WritePixelCachePixels(CacheInfo *cache_info, if (nexus_info->authentic_pixel_cache != MagickFalse) return(MagickTrue); - if (IsValidOffset(nexus_info->region.y,cache_info->columns) == MagickFalse) + if (IsValidPixelOffset(nexus_info->region.y,cache_info->columns) == MagickFalse) return(MagickFalse); offset=nexus_info->region.y*(MagickOffsetType) cache_info->columns+ nexus_info->region.x; @@ -5952,8 +5988,8 @@ static MagickBooleanType WritePixelCachePixels(CacheInfo *cache_info, for (y=0; y < (ssize_t) rows; y++) { (void) memcpy(q,p,(size_t) length); - p+=nexus_info->region.width; - q+=cache_info->columns; + p+=(ptrdiff_t) nexus_info->region.width; + q+=(ptrdiff_t) cache_info->columns; } break; } @@ -5982,7 +6018,7 @@ static MagickBooleanType WritePixelCachePixels(CacheInfo *cache_info, (MagickOffsetType) sizeof(*p),length,(const unsigned char *) p); if (count < (MagickOffsetType) length) break; - p+=nexus_info->region.width; + p+=(ptrdiff_t) nexus_info->region.width; offset+=(MagickOffsetType) cache_info->columns; } if (IsFileDescriptorLimitExceeded() != MagickFalse) @@ -6014,7 +6050,7 @@ static MagickBooleanType WritePixelCachePixels(CacheInfo *cache_info, cache_info->server_info,®ion,length,(const unsigned char *) p); if (count != (MagickOffsetType) length) break; - p+=nexus_info->region.width; + p+=(ptrdiff_t) nexus_info->region.width; region.y++; } UnlockSemaphoreInfo(cache_info->file_semaphore); diff --git a/magick/channel.c b/magick/channel.c index 523d793..49d15f4 100644 --- a/magick/channel.c +++ b/magick/channel.c @@ -152,6 +152,10 @@ MagickExport Image *CombineImages(const Image *image,const ChannelType channel, status=MagickTrue; progress=0; combine_view=AcquireAuthenticCacheView(combine_image,exception); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(progress,status) \ + magick_number_threads(combine_image,combine_image,combine_image->rows,4) +#endif for (y=0; y < (ssize_t) combine_image->rows; y++) { CacheView @@ -417,7 +421,7 @@ MagickExport MagickBooleanType SeparateImageChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -690,7 +694,7 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -761,7 +765,7 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -845,7 +849,7 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -890,6 +894,51 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, image->matte=MagickFalse; break; } + case OffIfOpaqueAlphaChannel: + { + MagickBooleanType + opaque = MagickTrue; + + /* + Remove opaque alpha channel. + */ + image_view=AcquireVirtualCacheView(image,exception); + #if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(opaque,status) \ + magick_number_threads(image,image,image->rows,2) + #endif + for (y=0; y < (ssize_t) image->rows; y++) + { + const PixelPacket + *magick_restrict p; + + ssize_t + x; + + if ((status == MagickFalse) || (opaque == MagickFalse)) + continue; + p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); + if (p == (const PixelPacket *) NULL) + { + status=MagickFalse; + continue; + } + for (x=0; x < (ssize_t) image->columns; x++) + { + if (GetPixelOpacity(p) != OpaqueOpacity) + { + opaque=MagickFalse; + break; + } + p++; + } + } + image_view=DestroyCacheView(image_view); + if (opaque != MagickFalse) + image->matte=MagickFalse; + break; + } + case ResetAlphaChannel: /* deprecated */ case RemoveAlphaChannel: case FlattenAlphaChannel: { @@ -920,7 +969,7 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -976,7 +1025,6 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, image_view=DestroyCacheView(image_view); return(status); } - case ResetAlphaChannel: /* deprecated */ case OpaqueAlphaChannel: { status=SetImageOpacity(image,OpaqueOpacity); diff --git a/magick/channel.h b/magick/channel.h index f101873..d0c3a07 100644 --- a/magick/channel.h +++ b/magick/channel.h @@ -24,6 +24,26 @@ extern "C" { #endif +typedef enum +{ + UndefinedAlphaChannel, + ActivateAlphaChannel, + BackgroundAlphaChannel, + CopyAlphaChannel, + DeactivateAlphaChannel, + ExtractAlphaChannel, + OpaqueAlphaChannel, + ResetAlphaChannel, /* deprecated */ + SetAlphaChannel, + ShapeAlphaChannel, + TransparentAlphaChannel, + FlattenAlphaChannel, + RemoveAlphaChannel, + AssociateAlphaChannel, + DisassociateAlphaChannel, + OffIfOpaqueAlphaChannel +} AlphaChannelType; + extern MagickExport Image *CombineImages(const Image *,const ChannelType,ExceptionInfo *), *SeparateImage(const Image *,const ChannelType,ExceptionInfo *), diff --git a/magick/cipher.c b/magick/cipher.c index 42f1484..913fa31 100644 --- a/magick/cipher.c +++ b/magick/cipher.c @@ -58,6 +58,7 @@ #include "magick/splay-tree.h" #include "magick/statistic.h" #include "magick/string_.h" +#include "magick/timer-private.h" #if defined(MAGICKCORE_CIPHER_SUPPORT) /* @@ -79,7 +80,9 @@ typedef struct _AESInfo *decipher_key; ssize_t - rounds, + rounds; + + time_t timestamp; size_t @@ -204,7 +207,7 @@ static AESInfo *AcquireAESInfo(void) (aes_info->encipher_key == (unsigned int *) NULL) || (aes_info->decipher_key == (unsigned int *) NULL)) ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed"); - aes_info->timestamp=(ssize_t) time(0); + aes_info->timestamp=GetMagickTime(); aes_info->signature=MagickCoreSignature; return(aes_info); } @@ -681,7 +684,7 @@ MagickExport MagickBooleanType PasskeyDecipherImage(Image *image, EncipherAESBlock(aes_info,output_block,output_block); for (i=0; i < AESBlocksize; i++) p[i]^=output_block[i]; - p+=AESBlocksize; + p+=(ptrdiff_t) AESBlocksize; } (void) memmove(output_block,input_block,AESBlocksize*sizeof(*output_block)); EncipherAESBlock(aes_info,output_block,output_block); @@ -900,7 +903,7 @@ MagickExport MagickBooleanType PasskeyEncipherImage(Image *image, EncipherAESBlock(aes_info,output_block,output_block); for (i=0; i < AESBlocksize; i++) p[i]^=output_block[i]; - p+=AESBlocksize; + p+=(ptrdiff_t) AESBlocksize; } (void) memmove(output_block,input_block,AESBlocksize* sizeof(*output_block)); diff --git a/magick/color.c b/magick/color.c index 335df73..b5b6898 100644 --- a/magick/color.c +++ b/magick/color.c @@ -1174,8 +1174,11 @@ MagickExport void ConcatenateColorComponent(const MagickPixelPacket *pixel, color=pixel->red; if (IsHueCompatibleColorspace(pixel->colorspace) != MagickFalse) scale=360.0f; - if ((compliance != NoCompliance) && (pixel->colorspace == LabColorspace)) + if ((compliance != NoCompliance) && + (IsLabCompatibleColorspace(pixel->colorspace) != MagickFalse)) scale=100.0f; + if (pixel->colorspace == XYZColorspace) + color/=2.55f; break; } case GreenChannel: @@ -1183,8 +1186,11 @@ MagickExport void ConcatenateColorComponent(const MagickPixelPacket *pixel, color=pixel->green; if (IsHueCompatibleColorspace(pixel->colorspace) != MagickFalse) scale=100.0f; - if ((compliance != NoCompliance) && (pixel->colorspace == LabColorspace)) + if ((compliance != NoCompliance) && + (IsLabCompatibleColorspace(pixel->colorspace) != MagickFalse)) color-=QuantumRange/2.0f; + if (pixel->colorspace == XYZColorspace) + color/=2.55f; break; } case BlueChannel: @@ -1194,6 +1200,12 @@ MagickExport void ConcatenateColorComponent(const MagickPixelPacket *pixel, scale=100.0f; if (pixel->colorspace == LabColorspace) color-=QuantumRange/2.0f; + if ((pixel->colorspace == LCHColorspace) || + (pixel->colorspace == LCHabColorspace) || + (pixel->colorspace == LCHuvColorspace)) + color*=360.0f/255.0f; + if (pixel->colorspace == XYZColorspace) + color/=2.55f; break; } case AlphaChannel: @@ -1211,7 +1223,8 @@ MagickExport void ConcatenateColorComponent(const MagickPixelPacket *pixel, default: break; } - if ((scale != 100.0f) || (pixel->colorspace == LabColorspace)) + if ((scale != 100.0f) || + (IsLabCompatibleColorspace(pixel->colorspace) != MagickFalse)) (void) FormatLocaleString(component,MagickPathExtent,"%.*g", GetMagickPrecision(),(double) scale*QuantumScale*(double) color); else @@ -2605,7 +2618,7 @@ static MagickStatusType ParseCSSColor(const char *magick_restrict color, geometry_info->rho=intensity; flags|=RhoValue; if (LocaleNCompare(q,"deg",3) == 0) - q+=3; + q+=(ptrdiff_t) 3; break; } case 1: @@ -2906,7 +2919,7 @@ MagickExport MagickBooleanType QueryMagickColorCompliance(const char *name, if (((flags & ChiValue) != 0) && (color->matte != MagickFalse)) color->opacity=(MagickRealType) ClampToQuantum((MagickRealType) QuantumRange-(MagickRealType) QuantumRange*geometry_info.chi); - if (color->colorspace == LabColorspace) + if (IsLabCompatibleColorspace(color->colorspace) != MagickFalse) { color->red=(MagickRealType) ClampToQuantum((MagickRealType) QuantumRange*geometry_info.rho/100.0); diff --git a/magick/colormap.c b/magick/colormap.c index 670d666..0e354dd 100644 --- a/magick/colormap.c +++ b/magick/colormap.c @@ -201,7 +201,7 @@ MagickExport MagickBooleanType CycleColormapImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -302,9 +302,7 @@ MagickExport MagickBooleanType SortColormapByIntensity(Image *image) status; ssize_t - i; - - ssize_t + i, y; unsigned short @@ -342,20 +340,23 @@ MagickExport MagickBooleanType SortColormapByIntensity(Image *image) pixels[(ssize_t) image->colormap[i].opacity]=(unsigned short) i; status=MagickTrue; image_view=AcquireAuthenticCacheView(image,exception); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(status) \ + magick_number_threads(image,image,image->rows,2) +#endif for (y=0; y < (ssize_t) image->rows; y++) { - IndexPacket - index; - - ssize_t - x; - IndexPacket *magick_restrict indexes; PixelPacket *magick_restrict q; + ssize_t + x; + + if (status == MagickFalse) + continue; q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception); if (q == (PixelPacket *) NULL) { @@ -365,6 +366,12 @@ MagickExport MagickBooleanType SortColormapByIntensity(Image *image) indexes=GetCacheViewAuthenticIndexQueue(image_view); for (x=0; x < (ssize_t) image->columns; x++) { + IndexPacket + index; + + ssize_t + i; + i=ConstrainColormapIndex(image,GetPixelIndex(indexes+x)); index=(IndexPacket) pixels[i]; SetPixelIndex(indexes+x,index); @@ -373,8 +380,6 @@ MagickExport MagickBooleanType SortColormapByIntensity(Image *image) } if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse) status=MagickFalse; - if (status == MagickFalse) - break; } image_view=DestroyCacheView(image_view); pixels=(unsigned short *) RelinquishMagickMemory(pixels); diff --git a/magick/colorspace-private.h b/magick/colorspace-private.h index a8da9db..8974f00 100644 --- a/magick/colorspace-private.h +++ b/magick/colorspace-private.h @@ -113,6 +113,15 @@ static inline MagickBooleanType IsHueCompatibleColorspace( return(MagickFalse); } +static inline MagickBooleanType IsLabCompatibleColorspace( + const ColorspaceType colorspace) +{ + if ((colorspace == LabColorspace) || (colorspace == LCHColorspace) || + (colorspace == LCHabColorspace) || (colorspace == LCHuvColorspace)) + return(MagickTrue); + return(MagickFalse); +} + static inline MagickBooleanType IsRGBColorspace(const ColorspaceType colorspace) { if ((colorspace == RGBColorspace) || (colorspace == scRGBColorspace) || diff --git a/magick/colorspace.c b/magick/colorspace.c index a6e9222..4ae5623 100644 --- a/magick/colorspace.c +++ b/magick/colorspace.c @@ -341,7 +341,7 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -407,7 +407,7 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -465,7 +465,7 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -542,7 +542,7 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -762,7 +762,7 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -828,7 +828,7 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -917,8 +917,8 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, I and Q, normally -0.5 through 0.5, are normalized to the range 0 through QuantumRange. */ - primary_info.y=(double) (MaxMap+1.0)/2.0; - primary_info.z=(double) (MaxMap+1.0)/2.0; + primary_info.y=(MagickRealType) ((MaxMap+1)/2); + primary_info.z=(MagickRealType) ((MaxMap+1)/2); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) #endif @@ -972,8 +972,8 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, Cb and Cr, normally -0.5 through 0.5, are normalized to the range 0 through QuantumRange. */ - primary_info.y=(double) (MaxMap+1.0)/2.0; - primary_info.z=(double) (MaxMap+1.0)/2.0; + primary_info.y=(MagickRealType) ((MaxMap+1)/2); + primary_info.z=(MagickRealType) ((MaxMap+1)/2); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) #endif @@ -1027,8 +1027,8 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, Cb and Cr, normally -0.5 through 0.5, are normalized to the range 0 through QuantumRange. */ - primary_info.y=(double) (MaxMap+1.0)/2.0; - primary_info.z=(double) (MaxMap+1.0)/2.0; + primary_info.y=(MagickRealType) ((MaxMap+1)/2); + primary_info.z=(MagickRealType) ((MaxMap+1)/2); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) #endif @@ -1057,8 +1057,10 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, YCC is scaled by 1.3584. C1 zero is 156 and C2 is at 137. */ - primary_info.y=(double) ScaleQuantumToMap(ScaleCharToQuantum(156)); - primary_info.z=(double) ScaleQuantumToMap(ScaleCharToQuantum(137)); + primary_info.y=(MagickRealType) ScaleQuantumToMap( + ScaleCharToQuantum(156)); + primary_info.z=(MagickRealType) ScaleQuantumToMap( + ScaleCharToQuantum(137)); for (i=0; i <= (ssize_t) (0.018*MaxMap); i++) { x_map[i].x=0.005382*i; @@ -1122,7 +1124,7 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1341,20 +1343,14 @@ MagickExport MagickBooleanType SetImageColorspace(Image *image, MagickExport MagickBooleanType SetImageGray(Image *image, ExceptionInfo *exception) { - const char - *value; - CacheView *image_view; - ImageType - type; - - const PixelPacket - *p; + const char + *value; - ssize_t - x; + ImageType + type = BilevelType; ssize_t y; @@ -1372,13 +1368,27 @@ MagickExport MagickBooleanType SetImageGray(Image *image, value=GetImageProperty(image,"colorspace:auto-grayscale"); if (IsStringNotFalse(value) == MagickFalse) return(MagickFalse); - type=BilevelType; image_view=AcquireVirtualCacheView(image,exception); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(type) \ + magick_number_threads(image,image,image->rows,2) +#endif for (y=0; y < (ssize_t) image->rows; y++) { + const PixelPacket + *p; + + ssize_t + x; + + if (type == UndefinedType) + continue; p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); if (p == (const PixelPacket *) NULL) - break; + { + type=UndefinedType; + continue; + } for (x=0; x < (ssize_t) image->columns; x++) { if (IsGrayPixel(p) == MagickFalse) @@ -1390,8 +1400,6 @@ MagickExport MagickBooleanType SetImageGray(Image *image, type=GrayscaleType; p++; } - if (type == UndefinedType) - break; } image_view=DestroyCacheView(image_view); if (type == UndefinedType) @@ -1404,7 +1412,7 @@ MagickExport MagickBooleanType SetImageGray(Image *image, image->type=GrayscaleMatteType; return(MagickTrue); } - + /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % @@ -1442,13 +1450,7 @@ MagickExport MagickBooleanType SetImageMonochrome(Image *image, *image_view; ImageType - type; - - ssize_t - x; - - const PixelPacket - *p; + type = BilevelType; ssize_t y; @@ -1465,13 +1467,27 @@ MagickExport MagickBooleanType SetImageMonochrome(Image *image, value=GetImageProperty(image,"colorspace:auto-grayscale"); if (IsStringNotFalse(value) == MagickFalse) return(MagickFalse); - type=BilevelType; image_view=AcquireVirtualCacheView(image,exception); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(type) \ + magick_number_threads(image,image,image->rows,2) +#endif for (y=0; y < (ssize_t) image->rows; y++) { + const PixelPacket + *p; + + ssize_t + x; + + if (type == UndefinedType) + continue; p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); if (p == (const PixelPacket *) NULL) - break; + { + type=UndefinedType; + continue; + } for (x=0; x < (ssize_t) image->columns; x++) { if (IsMonochromePixel(p) == MagickFalse) @@ -1481,8 +1497,6 @@ MagickExport MagickBooleanType SetImageMonochrome(Image *image, } p++; } - if (type == UndefinedType) - break; } image_view=DestroyCacheView(image_view); if (type == UndefinedType) @@ -1493,7 +1507,7 @@ MagickExport MagickBooleanType SetImageMonochrome(Image *image, image->type=type; return(MagickTrue); } - + /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % @@ -2002,7 +2016,7 @@ MagickExport MagickBooleanType TransformRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2066,7 +2080,7 @@ MagickExport MagickBooleanType TransformRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2128,7 +2142,7 @@ MagickExport MagickBooleanType TransformRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2206,7 +2220,7 @@ MagickExport MagickBooleanType TransformRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2429,7 +2443,7 @@ MagickExport MagickBooleanType TransformRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2495,7 +2509,7 @@ MagickExport MagickBooleanType TransformRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2726,7 +2740,7 @@ MagickExport MagickBooleanType TransformRGBImage(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/magick/compare.c b/magick/compare.c index a711423..2bf3b11 100644 --- a/magick/compare.c +++ b/magick/compare.c @@ -42,6 +42,7 @@ */ #include "magick/studio.h" #include "magick/artifact.h" +#include "magick/attribute.h" #include "magick/cache-view.h" #include "magick/channel.h" #include "magick/client.h" @@ -1268,7 +1269,7 @@ static MagickBooleanType GetNormalizedCrossCorrelationDistortion( for (i=0; i < (ssize_t) CompositeChannels; i++) { distortion[i]/=sqrt(alpha_variance[i]*beta_variance[i]); - if (fabs(distortion[i]) > MagickEpsilon) + if (fabs(distortion[i]) >= MagickEpsilon) distortion[CompositeChannels]+=distortion[i]; } distortion[CompositeChannels]=distortion[CompositeChannels]/ @@ -1302,6 +1303,7 @@ static MagickBooleanType GetPeakAbsoluteDistortion(const Image *image, y; status=MagickTrue; + (void) memset(distortion,0,(CompositeChannels+1)*sizeof(*distortion)); rows=MagickMax(image->rows,reconstruct_image->rows); columns=MagickMax(image->columns,reconstruct_image->columns); image_view=AcquireVirtualCacheView(image,exception); @@ -1338,7 +1340,8 @@ static MagickBooleanType GetPeakAbsoluteDistortion(const Image *image, } indexes=GetCacheViewVirtualIndexQueue(image_view); reconstruct_indexes=GetCacheViewVirtualIndexQueue(reconstruct_view); - (void) memset(channel_distortion,0,sizeof(channel_distortion)); + (void) memset(channel_distortion,0,(CompositeChannels+1)* + sizeof(*channel_distortion)); for (x=0; x < (ssize_t) columns; x++) { MagickRealType @@ -1425,33 +1428,54 @@ static MagickBooleanType GetPeakSignalToNoiseRatio(const Image *image, exception); if ((channel & RedChannel) != 0) { - if (fabs(distortion[RedChannel]) >= MagickEpsilon) - distortion[RedChannel]=(-10.0*MagickLog10(distortion[RedChannel])); + if ((fabs(distortion[RedChannel]) < MagickEpsilon) || + (fabs(distortion[RedChannel]) >= 1.0)) + distortion[RedChannel]=fabs(distortion[RedChannel]) < MagickEpsilon ? + 0.0 : 1.0; + else + distortion[RedChannel]=fabs(-10.0*MagickLog10(PerceptibleReciprocal( + distortion[RedChannel])))/48.1647; } if ((channel & GreenChannel) != 0) { - if (fabs(distortion[GreenChannel]) >= MagickEpsilon) - distortion[GreenChannel]=(-10.0*MagickLog10(distortion[GreenChannel])); + if ((fabs(distortion[GreenChannel]) < MagickEpsilon) || + (fabs(distortion[GreenChannel]) >= 1.0)) + distortion[GreenChannel]=fabs(distortion[GreenChannel]) < + MagickEpsilon ? 0.0 : 1.0; + else + distortion[GreenChannel]=fabs(-10.0*MagickLog10(PerceptibleReciprocal( + distortion[GreenChannel])))/48.1647; } if ((channel & BlueChannel) != 0) { - if (fabs(distortion[BlueChannel]) >= MagickEpsilon) - distortion[BlueChannel]=(-10.0*MagickLog10(distortion[BlueChannel])); + if ((fabs(distortion[BlueChannel]) < MagickEpsilon) || + (fabs(distortion[BlueChannel]) >= 1.0)) + distortion[BlueChannel]=fabs(distortion[BlueChannel]) < MagickEpsilon ? + 0.0 : 1.0; + else + distortion[BlueChannel]=fabs(-10.0*MagickLog10(PerceptibleReciprocal( + distortion[BlueChannel])))/48.1647; } if (((channel & OpacityChannel) != 0) && (image->matte != MagickFalse)) { - if (fabs(distortion[OpacityChannel]) >= MagickEpsilon) - distortion[OpacityChannel]=(-10.0* - MagickLog10(distortion[OpacityChannel])); + if ((fabs(distortion[OpacityChannel]) < MagickEpsilon) || + (fabs(distortion[OpacityChannel]) >= 1.0)) + distortion[OpacityChannel]=fabs(distortion[OpacityChannel]) < + MagickEpsilon ? 0.0 : 1.0; + else + distortion[OpacityChannel]=fabs(-10.0*MagickLog10(PerceptibleReciprocal( + distortion[OpacityChannel])))/48.1647; } if (((channel & IndexChannel) != 0) && (image->colorspace == CMYKColorspace)) { - if (fabs(distortion[BlackChannel]) >= MagickEpsilon) - distortion[BlackChannel]=(-10.0*MagickLog10(distortion[BlackChannel])); + if ((fabs(distortion[BlackChannel]) < MagickEpsilon) || + (fabs(distortion[BlackChannel]) >= 1.0)) + distortion[BlackChannel]=fabs(distortion[BlackChannel]) < + MagickEpsilon ? 0.0 : 1.0; + else + distortion[BlackChannel]=fabs(-10.0*MagickLog10(PerceptibleReciprocal( + distortion[BlackChannel])))/48.1647; } - if (fabs(distortion[CompositeChannels]) >= MagickEpsilon) - distortion[CompositeChannels]=(-10.0* - MagickLog10(distortion[CompositeChannels])); return(status); } @@ -2109,7 +2133,7 @@ MagickExport Image *SimilarityMetricImage(Image *image,const Image *reference, similarity_threshold; Image - *similarity_image; + *similarity_image = (Image *) NULL; MagickBooleanType status; @@ -2117,6 +2141,9 @@ MagickExport Image *SimilarityMetricImage(Image *image,const Image *reference, MagickOffsetType progress; + size_t + rows; + ssize_t y; @@ -2131,17 +2158,24 @@ MagickExport Image *SimilarityMetricImage(Image *image,const Image *reference, *similarity_metric=MagickMaximumValue; if (ValidateImageMorphology(image,reference) == MagickFalse) ThrowImageException(ImageError,"ImageMorphologyDiffers"); - similarity_image=CloneImage(image,image->columns-reference->columns+1, - image->rows-reference->rows+1,MagickTrue,exception); + if ((image->columns < reference->columns) || (image->rows < reference->rows)) + { + (void) ThrowMagickException(&image->exception,GetMagickModule(), + OptionWarning,"GeometryDoesNotContainImage","`%s'",image->filename); + return((Image *) NULL); + } + similarity_image=CloneImage(image,image->columns,image->rows,MagickTrue, + exception); if (similarity_image == (Image *) NULL) return((Image *) NULL); - if (SetImageStorageClass(similarity_image,DirectClass) == MagickFalse) + similarity_image->depth=MAGICKCORE_QUANTUM_DEPTH; + similarity_image->matte=MagickFalse; + status=SetImageStorageClass(similarity_image,DirectClass); + if (status == MagickFalse) { InheritException(exception,&similarity_image->exception); - similarity_image=DestroyImage(similarity_image); - return((Image *) NULL); + return(DestroyImage(similarity_image)); } - (void) SetImageAlphaChannel(similarity_image,DeactivateAlphaChannel); /* Measure similarity of reference image against image. */ @@ -2152,12 +2186,13 @@ MagickExport Image *SimilarityMetricImage(Image *image,const Image *reference, status=MagickTrue; progress=0; similarity_view=AcquireVirtualCacheView(similarity_image,exception); + rows=similarity_image->rows; #if defined(MAGICKCORE_OPENMP_SUPPORT) - #pragma omp parallel for schedule(static) \ + #pragma omp parallel for schedule(static,1) \ shared(progress,status,similarity_metric) \ - magick_number_threads(image,image,image->rows-reference->rows+1,1) + magick_number_threads(similarity_image,similarity_image,rows << 3,1) #endif - for (y=0; y < (ssize_t) (image->rows-reference->rows+1); y++) + for (y=0; y < (ssize_t) rows; y++) { double similarity; @@ -2182,7 +2217,7 @@ MagickExport Image *SimilarityMetricImage(Image *image,const Image *reference, status=MagickFalse; continue; } - for (x=0; x < (ssize_t) (image->columns-reference->columns+1); x++) + for (x=0; x < (ssize_t) similarity_image->columns; x++) { #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp flush(similarity_metric) @@ -2190,8 +2225,6 @@ MagickExport Image *SimilarityMetricImage(Image *image,const Image *reference, if (*similarity_metric <= similarity_threshold) break; similarity=GetSimilarityMetric(image,reference,metric,x,y,exception); - if (metric == PeakSignalToNoiseRatioMetric) - similarity*=0.01; if ((metric == NormalizedCrossCorrelationErrorMetric) || (metric == UndefinedErrorMetric)) similarity=1.0-similarity; @@ -2206,8 +2239,28 @@ MagickExport Image *SimilarityMetricImage(Image *image,const Image *reference, } if (metric == PerceptualHashErrorMetric) similarity=MagickMin(0.01*similarity,1.0); - SetPixelRed(q,ClampToQuantum((double) QuantumRange-(double) QuantumRange* - similarity)); + switch (metric) + { + case AbsoluteErrorMetric: + case FuzzErrorMetric: + case MeanAbsoluteErrorMetric: + case MeanErrorPerPixelMetric: + case MeanSquaredErrorMetric: + case NormalizedCrossCorrelationErrorMetric: + case PeakAbsoluteErrorMetric: + case PerceptualHashErrorMetric: + case RootMeanSquaredErrorMetric: + { + SetPixelRed(q,ClampToQuantum((double) QuantumRange-QuantumRange* + similarity)); + break; + } + default: + { + SetPixelRed(q,ClampToQuantum((double) QuantumRange*similarity)); + break; + } + } SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); q++; @@ -2229,6 +2282,7 @@ MagickExport Image *SimilarityMetricImage(Image *image,const Image *reference, } } similarity_view=DestroyCacheView(similarity_view); + (void) SetImageType(similarity_image,GrayscaleType); if (status == MagickFalse) similarity_image=DestroyImage(similarity_image); return(similarity_image); diff --git a/magick/composite.c b/magick/composite.c index ef60a02..d71e35f 100644 --- a/magick/composite.c +++ b/magick/composite.c @@ -1516,13 +1516,12 @@ static inline void CompositeThreshold(const MagickPixelPacket *p, composite->red=Threshold(p->red,q->red,threshold,amount); composite->green=Threshold(p->green,q->green,threshold,amount); composite->blue=Threshold(p->blue,q->blue,threshold,amount); - composite->opacity=(MagickRealType) QuantumRange-Threshold(p->opacity,q->opacity, - threshold,amount); + composite->opacity=(MagickRealType) QuantumRange-Threshold(p->opacity, + q->opacity,threshold,amount); if (q->colorspace == CMYKColorspace) composite->index=Threshold(p->index,q->index,threshold,amount); } - static MagickRealType VividLight(const MagickRealType Sca, const MagickRealType Sa, const MagickRealType Dca, const MagickRealType Da) { @@ -1717,7 +1716,7 @@ MagickExport MagickBooleanType CompositeImageChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(source_image,image,source_image->rows,1) + magick_number_threads(source_image,image,source_image->rows,4) #endif for (y=0; y < (ssize_t) source_image->rows; y++) { @@ -2312,7 +2311,7 @@ MagickExport MagickBooleanType CompositeImageChannel(Image *image, { if (y < y_offset) continue; - if ((y-y_offset) >= (ssize_t) source_image->rows) + if ((y-(double) y_offset) >= (double) source_image->rows) continue; } /* @@ -2320,10 +2319,12 @@ MagickExport MagickBooleanType CompositeImageChannel(Image *image, */ pixels=(PixelPacket *) NULL; p=(PixelPacket *) NULL; - if ((y >= y_offset) && ((y-y_offset) < (ssize_t) source_image->rows)) + if ((y >= y_offset) && + ((y-(double) y_offset) < (double) source_image->rows)) { - p=GetCacheViewVirtualPixels(source_view,0,y-y_offset, - source_image->columns,1,exception); + p=GetCacheViewVirtualPixels(source_view,0, + CastDoubleToLong(y-(double) y_offset),source_image->columns,1, + exception); if (p == (const PixelPacket *) NULL) { status=MagickFalse; @@ -2331,7 +2332,7 @@ MagickExport MagickBooleanType CompositeImageChannel(Image *image, } pixels=p; if (x_offset < 0) - p-=x_offset; + p-=(ptrdiff_t)x_offset; } q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception); if (q == (PixelPacket *) NULL) @@ -2355,7 +2356,7 @@ MagickExport MagickBooleanType CompositeImageChannel(Image *image, q++; continue; } - if ((x-x_offset) >= (ssize_t) source_image->columns) + if ((x-(double) x_offset) >= (double) source_image->columns) break; } canvas.red=(MagickRealType) GetPixelRed(q); @@ -2377,7 +2378,7 @@ MagickExport MagickBooleanType CompositeImageChannel(Image *image, */ composite=canvas; if ((pixels == (PixelPacket *) NULL) || (x < x_offset) || - ((x-x_offset) >= (ssize_t) source_image->columns)) + ((x-(double) x_offset) >= (double) source_image->columns)) { switch (compose) { @@ -2409,8 +2410,9 @@ MagickExport MagickBooleanType CompositeImageChannel(Image *image, } default: { - (void) GetOneVirtualMagickPixel(source_image,x-x_offset, - y-y_offset,&composite,exception); + (void) GetOneVirtualMagickPixel(source_image, + CastDoubleToLong(x-(double) x_offset), + CastDoubleToLong(y-(double) y_offset),&composite,exception); break; } } @@ -2447,7 +2449,7 @@ MagickExport MagickBooleanType CompositeImageChannel(Image *image, source.opacity=(MagickRealType) GetPixelOpacity(p); if (source_image->colorspace == CMYKColorspace) source.index=(MagickRealType) GetPixelIndex(source_indexes+ - x-x_offset); + CastDoubleToLong(x-(double) x_offset)); if (source_image->colorspace == CMYKColorspace) { source.red=(MagickRealType) QuantumRange-source.red; @@ -3007,7 +3009,7 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture) image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,texture_image,image->rows,1) + magick_number_threads(image,texture_image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3059,7 +3061,7 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture) sizeof(*indexes)); indexes+=width; } - q+=width; + q+=(ptrdiff_t) width; } sync=SyncCacheViewAuthenticPixels(image_view,exception); if (sync == MagickFalse) diff --git a/magick/compress.c b/magick/compress.c index 8aac441..c60ab8d 100644 --- a/magick/compress.c +++ b/magick/compress.c @@ -330,10 +330,10 @@ MagickExport void Ascii85Encode(Image *image,const unsigned char code) } (void) WriteBlobByte(image,(unsigned char) *q); } - p+=8; + p+=(ptrdiff_t) 8; } image->ascii85->offset=n; - p-=4; + p-=(ptrdiff_t)4; for (n=0; n < 4; n++) image->ascii85->buffer[n]=(*p++); } diff --git a/magick/constitute.c b/magick/constitute.c index 32212a6..e5457e8 100644 --- a/magick/constitute.c +++ b/magick/constitute.c @@ -660,10 +660,13 @@ MagickExport Image *ReadImage(const ImageInfo *image_info, *clones; clones=CloneImages(image,read_info->scenes,exception); + image=DestroyImageList(image); if (clones != (Image *) NULL) + image=GetFirstImageInList(clones); + if (image == (Image *) NULL) { - image=DestroyImageList(image); - image=GetFirstImageInList(clones); + read_info=DestroyImageInfo(read_info); + return(image); } } for (next=image; next != (Image *) NULL; next=GetNextImageInList(next)) @@ -1054,7 +1057,7 @@ MagickExport Image *ReadInlineImage(const ImageInfo *image_info, Extract media type. */ if (LocaleNCompare(++p,"x-",2) == 0) - p+=2; + p+=(ptrdiff_t) 2; (void) CopyMagickString(read_info->filename,"data.",MagickPathExtent); q=read_info->filename+5; for (i=0; (*p != ';') && (*p != '\0') && (i < (MagickPathExtent-6)); i++) @@ -1229,7 +1232,8 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info, (void) AcquireUniqueFilename(image->filename); temporary=MagickTrue; } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; } } if ((magick_info != (const MagickInfo *) NULL) && @@ -1335,7 +1339,8 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info, (void) RelinquishUniqueFileResource(write_info->filename); status=ImageToFile(image,write_info->filename,exception); } - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; (void) RelinquishUniqueFileResource(image->filename); (void) CopyMagickString(image->filename,write_info->filename, MaxTextExtent); @@ -1439,13 +1444,7 @@ MagickExport MagickBooleanType WriteImages(const ImageInfo *image_info, p=images; for ( ; GetNextImageInList(p) != (Image *) NULL; p=GetNextImageInList(p)) { - Image - *next; - - next=GetNextImageInList(p); - if (next == (Image *) NULL) - break; - if (p->scene >= next->scene) + if (p->scene >= GetNextImageInList(p)->scene) { ssize_t i; diff --git a/magick/delegate-private.h b/magick/delegate-private.h index 2971084..41ae353 100644 --- a/magick/delegate-private.h +++ b/magick/delegate-private.h @@ -103,7 +103,7 @@ static inline char *SanitizeDelegateString(const char *source) sanitize_source=AcquireString(source); p=sanitize_source; q=sanitize_source+strlen(sanitize_source); - for (p+=strspn(p,allowlist); p != q; p+=strspn(p,allowlist)) + for (p+=strspn(p,allowlist); p != q; p+=(ptrdiff_t) strspn(p,allowlist)) *p='_'; return(sanitize_source); } diff --git a/magick/delegate.c b/magick/delegate.c index 7d9ef57..b6a2599 100644 --- a/magick/delegate.c +++ b/magick/delegate.c @@ -86,6 +86,11 @@ #define system(s) ((s)==NULL ? 0 : -1) #endif #define DelegateFilename "delegates.xml" +#if defined(MAGICKCORE_WINDOWS_SUPPORT) + #define DELEGATE_ESC """ +#else + #define DELEGATE_ESC "'" +#endif /* Declare delegate map. @@ -94,67 +99,71 @@ static const char *DelegateMap = (const char *) "" "" - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " #ifndef MAGICKCORE_RSVG_DELEGATE - " " + " " #endif - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " ""; + +#undef DELEGATE_ESC /* Global declarations. @@ -495,7 +504,7 @@ MagickExport int ExternalDelegateCommand(const MagickBooleanType asynchronous, p=strstr(sanitize_command,"cmd.exe /c"); if (p != (char*) NULL) { - p+=10; + p+=(ptrdiff_t) 10; for ( ; *p != '\0'; p++) if (*p == '/') *p=(*DirectorySeparator); @@ -1017,7 +1026,7 @@ static char *InterpretDelegateProperties(const ImageInfo *image_info, return((char *) NULL); \ q=interpret_text+strlen(interpret_text); \ } \ - q+=FormatLocaleString(q,extent,"%s=%s\n",(key),(value)); \ + q+=(ptrdiff_t) FormatLocaleString(q,extent,"%s=%s\n",(key),(value)); \ } #define AppendString2Text(string) \ @@ -1033,7 +1042,7 @@ static char *InterpretDelegateProperties(const ImageInfo *image_info, q=interpret_text+strlen(interpret_text); \ } \ (void) CopyMagickString(q,(string),extent); \ - q+=length; \ + q+=(ptrdiff_t) length; \ } char @@ -1122,19 +1131,19 @@ static char *InterpretDelegateProperties(const ImageInfo *image_info, if (LocaleNCompare("<",p,4) == 0) { *q++='<'; - p+=3; + p+=(ptrdiff_t) 3; } else if (LocaleNCompare(">",p,4) == 0) { *q++='>'; - p+=3; + p+=(ptrdiff_t) 3; } else if (LocaleNCompare("&",p,5) == 0) { *q++='&'; - p+=4; + p+=(ptrdiff_t) 4; } else *q++=(*p); @@ -1892,7 +1901,6 @@ MagickExport MagickBooleanType InvokeDelegate(ImageInfo *image_info, { (void) FormatLocaleString(p->filename,MaxTextExtent,"%s:%s", delegate_info->decode,clone_info->filename); - (void) SetImageOption(clone_info,"quantum:format","floating-point"); status=WriteImage(clone_info,p); if (status == MagickFalse) { @@ -2084,7 +2092,7 @@ MagickExport MagickBooleanType ListDelegateInfo(FILE *file, if (delegate_info[i]->encode != (char *) NULL) (void) CopyMagickString(delegate,delegate_info[i]->encode,MaxTextExtent); (void) ConcatenateMagickString(delegate," ",MaxTextExtent); - delegate[8]='\0'; + delegate[9]='\0'; commands=StringToList(delegate_info[i]->commands); if (commands == (char **) NULL) continue; @@ -2295,10 +2303,9 @@ static MagickBooleanType LoadDelegateCache(LinkedListInfo *cache, path); (void) SubstituteString((char **) &commands,"\\","/"); } - (void) SubstituteString((char **) &commands,""","\""); -#else - (void) SubstituteString((char **) &commands,""","'"); #endif + (void) SubstituteString((char **) &commands,""","\""); + (void) SubstituteString((char **) &commands,"'","'"); (void) SubstituteString((char **) &commands,"&","&"); (void) SubstituteString((char **) &commands,">",">"); (void) SubstituteString((char **) &commands,"<","<"); diff --git a/magick/deprecate.c b/magick/deprecate.c index 5da41e0..6abb928 100644 --- a/magick/deprecate.c +++ b/magick/deprecate.c @@ -1106,8 +1106,8 @@ MagickExport void *CloneMemory(void *destination,const void *source, /* Overlap, copy backwards. */ - p+=size; - q+=size; + p+=(ptrdiff_t) size; + q+=(ptrdiff_t) size; for (i=(ssize_t) (size-1); i >= 0; i--) *--q=(*--p); return(destination); @@ -1301,8 +1301,8 @@ MagickExport MagickBooleanType ColorFloodfillImage(Image *image, &image->exception); if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL)) break; - p+=x1; - q+=x1; + p+=(ptrdiff_t) x1; + q+=(ptrdiff_t) x1; for (x=x1; x >= 0; x--) { if (q->opacity == (Quantum) TransparentOpacity) @@ -2590,14 +2590,14 @@ MagickExport void *GetConfigureBlob(const char *filename,char *path, blob=(void *) NULL; (void) CopyMagickString(path,filename,MaxTextExtent); #if defined(MAGICKCORE_INSTALLED_SUPPORT) -#if defined(MAGICKCORE_LIBRARY_PATH) +#if defined(MAGICKCORE_LIBRARY_ABSOLUTE_PATH) if (blob == (void *) NULL) { /* Search hard coded paths. */ (void) FormatLocaleString(path,MaxTextExtent,"%s%s", - MAGICKCORE_LIBRARY_PATH,filename); + MAGICKCORE_LIBRARY_ABSOLUTE_PATH,filename); if (IsPathAccessible(path) != MagickFalse) blob=FileToBlob(path,~0UL,length,exception); } @@ -4963,8 +4963,8 @@ MagickExport MagickBooleanType MatteFloodfillImage(Image *image, &image->exception); if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL)) break; - p+=x1; - q+=x1; + p+=(ptrdiff_t) x1; + q+=(ptrdiff_t) x1; for (x=x1; x >= 0; x--) { if (q->opacity == (Quantum) TransparentOpacity) diff --git a/magick/display.c b/magick/display.c index bbf2f91..9747f05 100644 --- a/magick/display.c +++ b/magick/display.c @@ -1403,7 +1403,7 @@ typedef enum SaveToUndoBufferCommand, FreeBuffersCommand, NullCommand -} CommandType; +} DisplayCommand; typedef enum { @@ -1532,12 +1532,12 @@ static const unsigned char /* Function prototypes. */ -static CommandType +static DisplayCommand XImageWindowCommand(Display *,XResourceInfo *,XWindows *, const MagickStatusType,KeySym,Image **); static Image - *XMagickCommand(Display *,XResourceInfo *,XWindows *,const CommandType, + *XMagickCommand(Display *,XResourceInfo *,XWindows *,const DisplayCommand, Image **), *XOpenImage(Display *,XResourceInfo *,XWindows *,const MagickBooleanType), *XTileImage(Display *,XResourceInfo *,XWindows *,Image *,XEvent *), @@ -1562,7 +1562,7 @@ static MagickBooleanType static void XDrawPanRectangle(Display *,XWindows *), - XImageCache(Display *,XResourceInfo *,XWindows *,const CommandType,Image **), + XImageCache(Display *,XResourceInfo *,XWindows *,const DisplayCommand,Image **), XMagnifyImage(Display *,XWindows *,XEvent *), XMakePanImage(Display *,XResourceInfo *,XWindows *,Image *), XPanImage(Display *,XWindows *,XEvent *), @@ -2400,7 +2400,7 @@ static MagickBooleanType XAnnotateEditImage(Display *display, x=annotate_info->x+annotate_info->width; y=annotate_info->y; if (annotate_info->width != 0) - p+=strlen(annotate_info->text); + p+=(ptrdiff_t) strlen(annotate_info->text); break; } } @@ -6333,7 +6333,7 @@ static void XDrawPanRectangle(Display *display,XWindows *windows) % The format of the XImageCache method is: % % void XImageCache(Display *display,XResourceInfo *resource_info, -% XWindows *windows,const CommandType command,Image **image) +% XWindows *windows,const DisplayCommand command,Image **image) % % A description of each parameter follows: % @@ -6351,7 +6351,7 @@ static void XDrawPanRectangle(Display *display,XWindows *windows) % */ static void XImageCache(Display *display,XResourceInfo *resource_info, - XWindows *windows,const CommandType command,Image **image) + XWindows *windows,const DisplayCommand command,Image **image) { Image *cache_image; @@ -6391,6 +6391,8 @@ static void XImageCache(Display *display,XResourceInfo *resource_info, if (undo_image == (Image *) NULL) { (void) XBell(display,0); + ThrowXWindowException(ImageError,"NoImagesWereFound", + (*image)->filename); return; } cache_image=undo_image; @@ -6608,7 +6610,7 @@ static void XImageCache(Display *display,XResourceInfo *resource_info, % % The format of the XMagickCommand method is: % -% CommandType XImageWindowCommand(Display *display, +% DisplayCommand XImageWindowCommand(Display *display, % XResourceInfo *resource_info,XWindows *windows, % const MagickStatusType state,KeySym key_symbol,Image **image) % @@ -6633,7 +6635,7 @@ static void XImageCache(Display *display,XResourceInfo *resource_info, % may transform the image and return a new image pointer. % */ -static CommandType XImageWindowCommand(Display *display, +static DisplayCommand XImageWindowCommand(Display *display, XResourceInfo *resource_info,XWindows *windows,const MagickStatusType state, KeySym key_symbol,Image **image) { @@ -7002,7 +7004,7 @@ static CommandType XImageWindowCommand(Display *display, % The format of the XMagickCommand method is: % % Image *XMagickCommand(Display *display,XResourceInfo *resource_info, -% XWindows *windows,const CommandType command,Image **image) +% XWindows *windows,const DisplayCommand command,Image **image) % % A description of each parameter follows: % @@ -7024,7 +7026,7 @@ static CommandType XImageWindowCommand(Display *display, % */ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, - XWindows *windows,const CommandType command,Image **image) + XWindows *windows,const DisplayCommand command,Image **image) { char filename[MaxTextExtent], @@ -10165,8 +10167,8 @@ static Image *XOpenImage(Display *display,XResourceInfo *resource_info, if (filelist == (char **) NULL) { (void) XFreeStringList(files); - ThrowXWindowException(ResourceLimitError, - "MemoryAllocationFailed","..."); + ThrowXWindowException(ResourceLimitError,"MemoryAllocationFailed", + "..."); return((Image *) NULL); } j=0; @@ -11049,7 +11051,7 @@ static MagickBooleanType XROIImage(Display *display, MiscellanyMenu }; - static const CommandType + static const DisplayCommand ApplyCommands[] = { NullCommand, @@ -11104,6 +11106,7 @@ static MagickBooleanType XROIImage(Display *display, AddNoiseCommand, SharpenCommand, BlurCommand, + ThresholdCommand, EdgeDetectCommand, SpreadCommand, ShadeCommand, @@ -11135,7 +11138,7 @@ static MagickBooleanType XROIImage(Display *display, ROIDismissCommand }; - static const CommandType + static const DisplayCommand *Commands[ApplyMenus] = { FileCommands, @@ -11151,8 +11154,8 @@ static MagickBooleanType XROIImage(Display *display, command[MaxTextExtent], text[MaxTextExtent]; - CommandType - command_type; + DisplayCommand + display_command; Cursor cursor; @@ -11464,7 +11467,7 @@ static MagickBooleanType XROIImage(Display *display, Wait for user to grab a corner of the rectangle or press return. */ state=DefaultState; - command_type=NullCommand; + display_command=NullCommand; (void) XMapWindow(display,windows->info.id); do { @@ -11490,13 +11493,13 @@ static MagickBooleanType XROIImage(Display *display, if ((state & UpdateRegionState) != 0) { (void) XSetFunction(display,windows->image.highlight_context,GXcopy); - switch (command_type) + switch (display_command) { case UndoCommand: case RedoCommand: { - (void) XMagickCommand(display,resource_info,windows,command_type, - image); + (void) XMagickCommand(display,resource_info,windows, + display_command,image); break; } default: @@ -11533,8 +11536,8 @@ static MagickBooleanType XROIImage(Display *display, Apply image processing technique to the region of interest. */ windows->image.orphan=MagickTrue; - (void) XMagickCommand(display,resource_info,windows,command_type, - &roi_image); + (void) XMagickCommand(display,resource_info,windows, + display_command,&roi_image); progress_monitor=SetImageProgressMonitor(*image, (MagickProgressMonitor) NULL,(*image)->client_data); (void) XMagickCommand(display,resource_info,windows, @@ -11548,7 +11551,7 @@ static MagickBooleanType XROIImage(Display *display, break; } } - if (command_type != InfoCommand) + if (display_command != InfoCommand) { XConfigureImageColormap(display,resource_info,windows,*image); (void) XConfigureImage(display,resource_info,windows,*image); @@ -11568,12 +11571,12 @@ static MagickBooleanType XROIImage(Display *display, Select a command from the Command widget. */ (void) XSetFunction(display,windows->image.highlight_context,GXcopy); - command_type=NullCommand; + display_command=NullCommand; id=XCommandWidget(display,windows,ApplyMenu,&event); if (id >= 0) { (void) CopyMagickString(command,ApplyMenu[id],MaxTextExtent); - command_type=ApplyCommands[id]; + display_command=ApplyCommands[id]; if (id < ApplyMenus) { /* @@ -11585,7 +11588,7 @@ static MagickBooleanType XROIImage(Display *display, { (void) CopyMagickString(command,Menus[id][entry], MaxTextExtent); - command_type=Commands[id][entry]; + display_command=Commands[id][entry]; } } } @@ -11593,7 +11596,7 @@ static MagickBooleanType XROIImage(Display *display, GXinvert); XHighlightRectangle(display,windows->image.id, windows->image.highlight_context,&highlight_info); - if (command_type == HelpCommand) + if (display_command == HelpCommand) { (void) XSetFunction(display,windows->image.highlight_context, GXcopy); @@ -11603,7 +11606,7 @@ static MagickBooleanType XROIImage(Display *display, GXinvert); continue; } - if (command_type == QuitCommand) + if (display_command == QuitCommand) { /* exit. @@ -11612,7 +11615,7 @@ static MagickBooleanType XROIImage(Display *display, state|=ExitState; continue; } - if (command_type != NullCommand) + if (display_command != NullCommand) state|=UpdateRegionState; continue; } @@ -11770,9 +11773,9 @@ static MagickBooleanType XROIImage(Display *display, } default: { - command_type=XImageWindowCommand(display,resource_info,windows, + display_command=XImageWindowCommand(display,resource_info,windows, event.xkey.state,key_symbol,image); - if (command_type != NullCommand) + if (display_command != NullCommand) state|=UpdateRegionState; break; } @@ -14135,7 +14138,7 @@ MagickExport Image *XDisplayImage(Display *display,XResourceInfo *resource_info, HelpMenu }; - static CommandType + static DisplayCommand CommandMenus[] = { NullCommand, @@ -14286,7 +14289,7 @@ MagickExport Image *XDisplayImage(Display *display,XResourceInfo *resource_info, QuitCommand }; - static CommandType + static DisplayCommand *Commands[MagickMenus] = { FileCommands, @@ -14307,8 +14310,8 @@ MagickExport Image *XDisplayImage(Display *display,XResourceInfo *resource_info, geometry[MaxTextExtent], resource_name[MaxTextExtent]; - CommandType - command_type; + DisplayCommand + display_command; Image *display_image, @@ -15028,7 +15031,7 @@ MagickExport Image *XDisplayImage(Display *display,XResourceInfo *resource_info, if (id < 0) continue; (void) CopyMagickString(command,CommandMenu[id],MaxTextExtent); - command_type=CommandMenus[id]; + display_command=CommandMenus[id]; if (id < MagickMenus) { /* @@ -15039,10 +15042,10 @@ MagickExport Image *XDisplayImage(Display *display,XResourceInfo *resource_info, if (entry < 0) continue; (void) CopyMagickString(command,Menus[id][entry],MaxTextExtent); - command_type=Commands[id][entry]; + display_command=Commands[id][entry]; } - if (command_type != NullCommand) - nexus=XMagickCommand(display,resource_info,windows,command_type, + if (display_command != NullCommand) + nexus=XMagickCommand(display,resource_info,windows,display_command, &display_image); continue; } @@ -15669,10 +15672,10 @@ MagickExport Image *XDisplayImage(Display *display,XResourceInfo *resource_info, key_symbol,command); if (event.xkey.window == windows->image.id) { - command_type=XImageWindowCommand(display,resource_info,windows, + display_command=XImageWindowCommand(display,resource_info,windows, event.xkey.state,key_symbol,&display_image); - if (command_type != NullCommand) - nexus=XMagickCommand(display,resource_info,windows,command_type, + if (display_command != NullCommand) + nexus=XMagickCommand(display,resource_info,windows,display_command, &display_image); } if (event.xkey.window == windows->magnify.id) diff --git a/magick/distort.c b/magick/distort.c index 2c85557..1f7eeae 100644 --- a/magick/distort.c +++ b/magick/distort.c @@ -2287,7 +2287,7 @@ MagickExport Image *DistortImage(const Image *image,DistortImageMethod method, " jj=jj%s(%lf*rr*rr*rr %+lf*rr*rr %+lf*rr %+lf);\n", method == BarrelDistortion ? "*" : "/",coeff[4],coeff[5],coeff[6], coeff[7]); - (void) FormatLocaleFile(stderr," v.p{fx*ii+xc,fy*jj+yc}' \\\n"); + (void) FormatLocaleFile(stderr," p{ii+xc,jj+yc}' \\\n"); } default: break; @@ -2672,7 +2672,7 @@ if ( i == 0 && j == 0 ) { /* derivatives... (see Anthony Thyssen's personal notes) */ ScaleFilter( resample_filter[id], cx*cx, 0.0, s.y*cx/coeff[1], cx ); -#if 1 +#if 0 /*if ( i == 0 && j == 0 ) {*/ if ( d.x == 0.5 && d.y == 0.5 ) { fprintf(stderr, "x=%lf y=%lf u=%lf v=%lf\n", d.x*coeff[1], d.y, s.x, s.y); @@ -2779,14 +2779,19 @@ if ( d.x == 0.5 && d.y == 0.5 ) { } else { /* resample the source image to find its correct color */ - (void) ResamplePixelColor(resample_filter[id],s.x,s.y,&pixel); - /* if validity between 0.0 and 1.0 mix result with invalid pixel */ - if ( validity < 1.0 ) { - /* Do a blend of sample color and invalid pixel */ - /* should this be a 'Blend', or an 'Over' compose */ - MagickPixelCompositeBlend(&pixel,validity,&invalid,(1.0-validity), - &pixel); - } + status=ResamplePixelColor(resample_filter[id],s.x,s.y,&pixel); + if (status == MagickFalse) + SetPixelPacket(distort_image,&invalid,q,indexes); + else + { + /* if validity between 0.0 & 1.0 mix result with invalid pixel */ + if ( validity < 1.0 ) { + /* Do a blend of sample color and invalid pixel */ + /* should this be a 'Blend', or an 'Over' compose */ + MagickPixelCompositeBlend(&pixel,validity,&invalid,(1.0-validity), + &pixel); + } + } SetPixelPacket(distort_image,&pixel,q,indexes); } q++; diff --git a/magick/distribute-cache.c b/magick/distribute-cache.c index beda933..730fd8b 100755 --- a/magick/distribute-cache.c +++ b/magick/distribute-cache.c @@ -159,7 +159,7 @@ static inline MagickOffsetType dpc_read(int file,const MagickSizeType length, for (i=0; i < (MagickOffsetType) length; i+=count) { count=recv(file,(char *) message+i,(LENGTH_TYPE) MagickMin(length-i, - (MagickSizeType) MAGICK_SSIZE_MAX),0); + (MagickSizeType) MagickMaxBufferExtent),0); if (count <= 0) { count=0; @@ -455,7 +455,7 @@ static inline MagickOffsetType dpc_send(int file,const MagickSizeType length, for (i=0; i < (MagickOffsetType) length; i+=count) { count=(MagickOffsetType) send(file,(char *) message+i,(LENGTH_TYPE) - MagickMin(length-i,(MagickSizeType) MAGICK_SSIZE_MAX),MSG_NOSIGNAL); + MagickMin(length-i,(MagickSizeType) MagickMaxBufferExtent),MSG_NOSIGNAL); if (count <= 0) { count=0; @@ -504,15 +504,15 @@ static MagickBooleanType OpenDistributeCache(SplayTreeInfo *registry,int file, */ p=message; (void) memcpy(&image->storage_class,p,sizeof(image->storage_class)); - p+=sizeof(image->storage_class); + p+=(ptrdiff_t) sizeof(image->storage_class); (void) memcpy(&image->colorspace,p,sizeof(image->colorspace)); - p+=sizeof(image->colorspace); + p+=(ptrdiff_t) sizeof(image->colorspace); (void) memcpy(&image->channels,p,sizeof(image->channels)); - p+=sizeof(image->channels); + p+=(ptrdiff_t) sizeof(image->channels); (void) memcpy(&image->columns,p,sizeof(image->columns)); - p+=sizeof(image->columns); + p+=(ptrdiff_t) sizeof(image->columns); (void) memcpy(&image->rows,p,sizeof(image->rows)); - p+=sizeof(image->rows); + p+=(ptrdiff_t) sizeof(image->rows); if (SyncImagePixelCache(image,exception) == MagickFalse) return(MagickFalse); status=AddValueToSplayTree(registry,(const void *) key,image); @@ -560,15 +560,15 @@ static MagickBooleanType ReadDistributeCacheIndexes(SplayTreeInfo *registry, return(MagickFalse); q=message; (void) memcpy(®ion.width,q,sizeof(region.width)); - q+=sizeof(region.width); + q+=(ptrdiff_t) sizeof(region.width); (void) memcpy(®ion.height,q,sizeof(region.height)); - q+=sizeof(region.height); + q+=(ptrdiff_t) sizeof(region.height); (void) memcpy(®ion.x,q,sizeof(region.x)); - q+=sizeof(region.x); + q+=(ptrdiff_t) sizeof(region.x); (void) memcpy(®ion.y,q,sizeof(region.y)); - q+=sizeof(region.y); + q+=(ptrdiff_t) sizeof(region.y); (void) memcpy(&length,q,sizeof(length)); - q+=sizeof(length); + q+=(ptrdiff_t) sizeof(length); p=GetVirtualPixels(image,region.x,region.y,region.width,region.height, exception); if (p == (const PixelPacket *) NULL) @@ -618,15 +618,15 @@ static MagickBooleanType ReadDistributeCachePixels(SplayTreeInfo *registry, return(MagickFalse); q=message; (void) memcpy(®ion.width,q,sizeof(region.width)); - q+=sizeof(region.width); + q+=(ptrdiff_t) sizeof(region.width); (void) memcpy(®ion.height,q,sizeof(region.height)); - q+=sizeof(region.height); + q+=(ptrdiff_t) sizeof(region.height); (void) memcpy(®ion.x,q,sizeof(region.x)); - q+=sizeof(region.x); + q+=(ptrdiff_t) sizeof(region.x); (void) memcpy(®ion.y,q,sizeof(region.y)); - q+=sizeof(region.y); + q+=(ptrdiff_t) sizeof(region.y); (void) memcpy(&length,q,sizeof(length)); - q+=sizeof(length); + q+=(ptrdiff_t) sizeof(length); p=GetVirtualPixels(image,region.x,region.y,region.width,region.height, exception); if (p == (const PixelPacket *) NULL) @@ -682,15 +682,15 @@ static MagickBooleanType WriteDistributeCacheIndexes(SplayTreeInfo *registry, return(MagickFalse); p=message; (void) memcpy(®ion.width,p,sizeof(region.width)); - p+=sizeof(region.width); + p+=(ptrdiff_t) sizeof(region.width); (void) memcpy(®ion.height,p,sizeof(region.height)); - p+=sizeof(region.height); + p+=(ptrdiff_t) sizeof(region.height); (void) memcpy(®ion.x,p,sizeof(region.x)); - p+=sizeof(region.x); + p+=(ptrdiff_t) sizeof(region.x); (void) memcpy(®ion.y,p,sizeof(region.y)); - p+=sizeof(region.y); + p+=(ptrdiff_t) sizeof(region.y); (void) memcpy(&length,p,sizeof(length)); - p+=sizeof(length); + p+=(ptrdiff_t) sizeof(length); q=GetAuthenticPixels(image,region.x,region.y,region.width,region.height, exception); if (q == (PixelPacket *) NULL) @@ -740,15 +740,15 @@ static MagickBooleanType WriteDistributeCachePixels(SplayTreeInfo *registry, return(MagickFalse); p=message; (void) memcpy(®ion.width,p,sizeof(region.width)); - p+=sizeof(region.width); + p+=(ptrdiff_t) sizeof(region.width); (void) memcpy(®ion.height,p,sizeof(region.height)); - p+=sizeof(region.height); + p+=(ptrdiff_t) sizeof(region.height); (void) memcpy(®ion.x,p,sizeof(region.x)); - p+=sizeof(region.x); + p+=(ptrdiff_t) sizeof(region.x); (void) memcpy(®ion.y,p,sizeof(region.y)); - p+=sizeof(region.y); + p+=(ptrdiff_t) sizeof(region.y); (void) memcpy(&length,p,sizeof(length)); - p+=sizeof(length); + p+=(ptrdiff_t) sizeof(length); q=GetAuthenticPixels(image,region.x,region.y,region.width,region.height, exception); if (q == (PixelPacket *) NULL) @@ -1129,17 +1129,17 @@ MagickPrivate MagickBooleanType OpenDistributePixelCache( Serialize image attributes (see ValidatePixelCacheMorphology()). */ (void) memcpy(p,&server_info->session_key,sizeof(server_info->session_key)); - p+=sizeof(server_info->session_key); + p+=(ptrdiff_t) sizeof(server_info->session_key); (void) memcpy(p,&image->storage_class,sizeof(image->storage_class)); - p+=sizeof(image->storage_class); + p+=(ptrdiff_t) sizeof(image->storage_class); (void) memcpy(p,&image->colorspace,sizeof(image->colorspace)); - p+=sizeof(image->colorspace); + p+=(ptrdiff_t) sizeof(image->colorspace); (void) memcpy(p,&image->channels,sizeof(image->channels)); - p+=sizeof(image->channels); + p+=(ptrdiff_t) sizeof(image->channels); (void) memcpy(p,&image->columns,sizeof(image->columns)); - p+=sizeof(image->columns); + p+=(ptrdiff_t) sizeof(image->columns); (void) memcpy(p,&image->rows,sizeof(image->rows)); - p+=sizeof(image->rows); + p+=(ptrdiff_t) sizeof(image->rows); count=dpc_send(server_info->file,p-message,message); if (count != (MagickOffsetType) (p-message)) return(MagickFalse); @@ -1206,17 +1206,17 @@ MagickPrivate MagickOffsetType ReadDistributePixelCacheIndexes( p=message; *p++='R'; (void) memcpy(p,&server_info->session_key,sizeof(server_info->session_key)); - p+=sizeof(server_info->session_key); + p+=(ptrdiff_t) sizeof(server_info->session_key); (void) memcpy(p,®ion->width,sizeof(region->width)); - p+=sizeof(region->width); + p+=(ptrdiff_t) sizeof(region->width); (void) memcpy(p,®ion->height,sizeof(region->height)); - p+=sizeof(region->height); + p+=(ptrdiff_t) sizeof(region->height); (void) memcpy(p,®ion->x,sizeof(region->x)); - p+=sizeof(region->x); + p+=(ptrdiff_t) sizeof(region->x); (void) memcpy(p,®ion->y,sizeof(region->y)); - p+=sizeof(region->y); + p+=(ptrdiff_t) sizeof(region->y); (void) memcpy(p,&length,sizeof(length)); - p+=sizeof(length); + p+=(ptrdiff_t) sizeof(length); count=dpc_send(server_info->file,p-message,message); if (count != (MagickOffsetType) (p-message)) return(-1); @@ -1279,17 +1279,17 @@ MagickPrivate MagickOffsetType ReadDistributePixelCachePixels( p=message; *p++='r'; (void) memcpy(p,&server_info->session_key,sizeof(server_info->session_key)); - p+=sizeof(server_info->session_key); + p+=(ptrdiff_t) sizeof(server_info->session_key); (void) memcpy(p,®ion->width,sizeof(region->width)); - p+=sizeof(region->width); + p+=(ptrdiff_t) sizeof(region->width); (void) memcpy(p,®ion->height,sizeof(region->height)); - p+=sizeof(region->height); + p+=(ptrdiff_t) sizeof(region->height); (void) memcpy(p,®ion->x,sizeof(region->x)); - p+=sizeof(region->x); + p+=(ptrdiff_t) sizeof(region->x); (void) memcpy(p,®ion->y,sizeof(region->y)); - p+=sizeof(region->y); + p+=(ptrdiff_t) sizeof(region->y); (void) memcpy(p,&length,sizeof(length)); - p+=sizeof(length); + p+=(ptrdiff_t) sizeof(length); count=dpc_send(server_info->file,p-message,message); if (count != (MagickOffsetType) (p-message)) return(-1); @@ -1341,7 +1341,7 @@ MagickPrivate MagickBooleanType RelinquishDistributePixelCache( p=message; *p++='d'; (void) memcpy(p,&server_info->session_key,sizeof(server_info->session_key)); - p+=sizeof(server_info->session_key); + p+=(ptrdiff_t) sizeof(server_info->session_key); count=dpc_send(server_info->file,p-message,message); if (count != (MagickOffsetType) (p-message)) return(MagickFalse); @@ -1408,17 +1408,17 @@ MagickPrivate MagickOffsetType WriteDistributePixelCacheIndexes( p=message; *p++='W'; (void) memcpy(p,&server_info->session_key,sizeof(server_info->session_key)); - p+=sizeof(server_info->session_key); + p+=(ptrdiff_t) sizeof(server_info->session_key); (void) memcpy(p,®ion->width,sizeof(region->width)); - p+=sizeof(region->width); + p+=(ptrdiff_t) sizeof(region->width); (void) memcpy(p,®ion->height,sizeof(region->height)); - p+=sizeof(region->height); + p+=(ptrdiff_t) sizeof(region->height); (void) memcpy(p,®ion->x,sizeof(region->x)); - p+=sizeof(region->x); + p+=(ptrdiff_t) sizeof(region->x); (void) memcpy(p,®ion->y,sizeof(region->y)); - p+=sizeof(region->y); + p+=(ptrdiff_t) sizeof(region->y); (void) memcpy(p,&length,sizeof(length)); - p+=sizeof(length); + p+=(ptrdiff_t) sizeof(length); count=dpc_send(server_info->file,p-message,message); if (count != (MagickOffsetType) (p-message)) return(-1); @@ -1482,17 +1482,17 @@ MagickPrivate MagickOffsetType WriteDistributePixelCachePixels( p=message; *p++='w'; (void) memcpy(p,&server_info->session_key,sizeof(server_info->session_key)); - p+=sizeof(server_info->session_key); + p+=(ptrdiff_t) sizeof(server_info->session_key); (void) memcpy(p,®ion->width,sizeof(region->width)); - p+=sizeof(region->width); + p+=(ptrdiff_t) sizeof(region->width); (void) memcpy(p,®ion->height,sizeof(region->height)); - p+=sizeof(region->height); + p+=(ptrdiff_t) sizeof(region->height); (void) memcpy(p,®ion->x,sizeof(region->x)); - p+=sizeof(region->x); + p+=(ptrdiff_t) sizeof(region->x); (void) memcpy(p,®ion->y,sizeof(region->y)); - p+=sizeof(region->y); + p+=(ptrdiff_t) sizeof(region->y); (void) memcpy(p,&length,sizeof(length)); - p+=sizeof(length); + p+=(ptrdiff_t) sizeof(length); count=dpc_send(server_info->file,p-message,message); if (count != (MagickOffsetType) (p-message)) return(-1); diff --git a/magick/draw.c b/magick/draw.c index 423d0ae..2436446 100644 --- a/magick/draw.c +++ b/magick/draw.c @@ -761,7 +761,6 @@ static PolygonInfo *ConvertPathToPolygon(const PathInfo *path_info, } } polygon_info->number_edges=edge; - polygon_info->number_edges=edge; polygon_info->edges=(EdgeInfo *) ResizeQuantumMemory(polygon_info->edges, polygon_info->number_edges,sizeof(*polygon_info->edges)); if (polygon_info->edges == (EdgeInfo *) NULL) @@ -2005,6 +2004,7 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image, bounding_box; ssize_t + height, y; /* @@ -2025,11 +2025,12 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image, exception=(&image->exception); GetMagickPixelPacket(image,&zero); image_view=AcquireAuthenticCacheView(image,exception); + height=(size_t) (bounding_box.y+bounding_box.height); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,bounding_box.height-bounding_box.y,1) + magick_number_threads(image,image,height,1) #endif - for (y=bounding_box.y; y < (ssize_t) bounding_box.height; y++) + for (y=bounding_box.y; y < (ssize_t) height; y++) { double alpha, @@ -2042,19 +2043,19 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image, IndexPacket *magick_restrict indexes; - ssize_t - i, - x; - PixelPacket *magick_restrict q; ssize_t - j; + i, + j, + width, + x; if (status == MagickFalse) continue; - q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception); + q=GetCacheViewAuthenticPixels(image_view,bounding_box.x,y,(size_t) + bounding_box.width,1,exception); if (q == (PixelPacket *) NULL) { status=MagickFalse; @@ -2066,7 +2067,8 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image, offset=GetStopColorOffset(gradient,0,y); if (gradient->type != RadialGradient) offset*=PerceptibleReciprocal(length); - for (x=bounding_box.x; x < (ssize_t) bounding_box.width; x++) + width=(size_t) (bounding_box.x+bounding_box.width); + for (x=bounding_box.x; x < (ssize_t) width; x++) { SetMagickPixelPacket(image,q,indexes+x,&pixel); switch (gradient->spread) @@ -2405,15 +2407,21 @@ static SplayTreeInfo *GetMVGMacros(const char *primitive) } if (LocaleCompare(token,"push") == 0) n++; - if ((n == 0) && (end > start)) + if ((n == 0) && (end >= start)) { + size_t + length=(size_t) (end-start); + /* Extract macro. */ (void) GetNextToken(p,&p,extent,token); - (void) CopyMagickString(macro,start,(size_t) (end-start)); - (void) AddValueToSplayTree(macros,ConstantString(name), - ConstantString(macro)); + if (length > 0) + { + (void) CopyMagickString(macro,start,length); + (void) AddValueToSplayTree(macros,ConstantString(name), + ConstantString(macro)); + } break; } } @@ -2467,6 +2475,7 @@ static MagickBooleanType RenderMVGContent(Image *image, *token; const char + *p, *q; double @@ -2501,13 +2510,6 @@ static MagickBooleanType RenderMVGContent(Image *image, PrimitiveType primitive_type; - const char - *p; - - ssize_t - i, - x; - SegmentInfo bounds; @@ -2520,10 +2522,12 @@ static MagickBooleanType RenderMVGContent(Image *image, ssize_t defsDepth, + i, j, k, n, - symbolDepth; + symbolDepth, + x; TypeMetric metrics; @@ -2711,7 +2715,13 @@ static MagickBooleanType RenderMVGContent(Image *image, status=MagickFalse; break; } - if (LocaleCompare(token,graphic_context[n]->id) == 0) + /* + Identify recursion. + */ + for (i=0; i <= n; i++) + if (LocaleCompare(token,graphic_context[i]->id) == 0) + break; + if (i <= n) break; mvg_class=(const char *) GetValueFromSplayTree(macros,token); if ((graphic_context[n]->render != MagickFalse) && @@ -2726,6 +2736,7 @@ static MagickBooleanType RenderMVGContent(Image *image, /* Inject class elements in stream. */ + (void) CloneString(&graphic_context[n]->id,token); offset=(ssize_t) (p-primitive); elements=AcquireString(primitive); elements[offset]='\0'; @@ -3204,22 +3215,34 @@ static MagickBooleanType RenderMVGContent(Image *image, if (graphic_context[n]->clip_path != MagickFalse) break; factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0; - opacity=MagickMin(MagickMax(factor* + opacity=1.0-MagickMin(MagickMax(factor* GetDrawValue(token,&next_token),0.0),1.0); if (token == next_token) ThrowPointExpectedException(image,token); if (graphic_context[n]->compliance == SVGCompliance) { - graphic_context[n]->fill_opacity*=(1.0-opacity); - graphic_context[n]->stroke_opacity*=(1.0-opacity); + graphic_context[n]->fill_opacity*=opacity; + graphic_context[n]->stroke_opacity*=opacity; + } + else + { + graphic_context[n]->fill_opacity=(double) QuantumRange*opacity; + graphic_context[n]->stroke_opacity=(double) QuantumRange* + opacity; + } + if (graphic_context[n]->fill.opacity != (double) TransparentOpacity) + { + graphic_context[n]->fill.opacity= + graphic_context[n]->fill_opacity; + graphic_context[n]->stroke.opacity= + graphic_context[n]->stroke_opacity; } else { - graphic_context[n]->fill_opacity=((MagickRealType) QuantumRange- - graphic_context[n]->fill_opacity)*(1.0-opacity); - graphic_context[n]->stroke_opacity=((MagickRealType) - QuantumRange-graphic_context[n]->stroke_opacity)* - (1.0-opacity); + graphic_context[n]->fill.opacity=(MagickRealType) + ClampToQuantum((double) QuantumRange*opacity); + graphic_context[n]->stroke.opacity=(MagickRealType) + ClampToQuantum((double) QuantumRange*opacity); } break; } @@ -3486,15 +3509,15 @@ static MagickBooleanType RenderMVGContent(Image *image, (void) GetNextToken(q,&q,extent,token); if (*token == ',') (void) GetNextToken(q,&q,extent,token); - bounds.width=CastDoubleToUnsigned(GetDrawValue(token,&next_token)+ - 0.5); + bounds.width=CastDoubleToUnsigned(GetDrawValue(token, + &next_token)+0.5); if (token == next_token) ThrowPointExpectedException(image,token); (void) GetNextToken(q,&q,extent,token); if (*token == ',') (void) GetNextToken(q,&q,extent,token); - bounds.height=CastDoubleToUnsigned(GetDrawValue(token,&next_token)+ - 0.5); + bounds.height=CastDoubleToUnsigned(GetDrawValue(token, + &next_token)+0.5); if (token == next_token) ThrowPointExpectedException(image,token); for (p=q; *q != '\0'; ) @@ -3909,15 +3932,15 @@ static MagickBooleanType RenderMVGContent(Image *image, (void) GetNextToken(q,&q,extent,token); if (*token == ',') (void) GetNextToken(q,&q,extent,token); - graphic_context[n]->viewbox.width=CastDoubleToUnsigned(GetDrawValue( - token,&next_token)+0.5); + graphic_context[n]->viewbox.width=CastDoubleToUnsigned( + GetDrawValue(token,&next_token)+0.5); if (token == next_token) ThrowPointExpectedException(image,token); (void) GetNextToken(q,&q,extent,token); if (*token == ',') (void) GetNextToken(q,&q,extent,token); - graphic_context[n]->viewbox.height=CastDoubleToUnsigned(GetDrawValue( - token,&next_token)+0.5); + graphic_context[n]->viewbox.height=CastDoubleToUnsigned( + GetDrawValue(token,&next_token)+0.5); if (token == next_token) ThrowPointExpectedException(image,token); break; @@ -5519,8 +5542,8 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image, else if (*primitive_info->text != '\0') { - const MagickInfo - *magick_info; + const char + *option; MagickStatusType path_status; @@ -5534,15 +5557,23 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image, (void) CopyMagickString(clone_info->filename,primitive_info->text, MagickPathExtent); (void) SetImageInfo(clone_info,1,exception); - magick_info=GetMagickInfo(clone_info->magick,exception); - if ((magick_info != (const MagickInfo*) NULL) && - (LocaleCompare(magick_info->magick_module,"SVG") == 0)) + option=GetImageOption(clone_info,"svg:embedding"); + if ((option == (char *) NULL) && + (IsStringTrue(option) == MagickFalse)) { - (void) ThrowMagickException(exception,GetMagickModule(), - CorruptImageError,"ImageTypeNotSupported","`%s'", - clone_info->filename); - clone_info=DestroyImageInfo(clone_info); - break; + const MagickInfo + *magick_info; + + magick_info=GetMagickInfo(clone_info->magick,exception); + if ((magick_info != (const MagickInfo*) NULL) && + (LocaleCompare(magick_info->magick_module,"SVG") == 0)) + { + (void) ThrowMagickException(exception,GetMagickModule(), + CorruptImageError,"ImageTypeNotSupported","`%s'", + clone_info->filename); + clone_info=DestroyImageInfo(clone_info); + break; + } } (void) CopyMagickString(clone_info->filename,primitive_info->text, MagickPathExtent); @@ -5830,7 +5861,7 @@ static MagickBooleanType DrawStrokePolygon(Image *image, clone_info->stroke_width=0.0; clone_info->fill_rule=NonZeroRule; status=MagickTrue; - for (p=primitive_info; p->primitive != UndefinedPrimitive; p+=p->coordinates) + for (p=primitive_info; p->primitive != UndefinedPrimitive; p+=(ptrdiff_t) p->coordinates) { if (p->coordinates == 1) continue; @@ -6224,9 +6255,9 @@ static MagickBooleanType TraceArcPath(MVGInfo *mvg_info,const PointInfo start, status&=TraceBezier(mvg_info,4); if (status == 0) break; - p=(*mvg_info->primitive_info)+mvg_info->offset; + p=(*mvg_info->primitive_info)+(ptrdiff_t) mvg_info->offset; mvg_info->offset+=p->coordinates; - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; } if (status == 0) return(MagickFalse); @@ -6356,7 +6387,7 @@ static MagickBooleanType TraceBezier(MVGInfo *mvg_info, coefficients=(double *) RelinquishMagickMemory(coefficients); return(MagickFalse); } - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; } if (TracePoint(p,end) == MagickFalse) { @@ -6364,7 +6395,7 @@ static MagickBooleanType TraceBezier(MVGInfo *mvg_info, coefficients=(double *) RelinquishMagickMemory(coefficients); return(MagickFalse); } - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; primitive_info->coordinates=(size_t) (p-primitive_info); primitive_info->closed_subpath=MagickFalse; for (i=0; i < (ssize_t) primitive_info->coordinates; i++) @@ -6429,32 +6460,33 @@ static MagickBooleanType TraceEllipse(MVGInfo *mvg_info,const PointInfo center, primitive_info->coordinates=0; if ((fabs(radii.x) < MagickEpsilon) || (fabs(radii.y) < MagickEpsilon)) return(MagickTrue); - delta=2.0*PerceptibleReciprocal(MagickMax(radii.x,radii.y)); - step=MagickPI/8.0; - if ((delta >= 0.0) && (delta < (MagickPI/8.0))) - step=MagickPI/4.0/(MagickPI*PerceptibleReciprocal(delta)/2.0); + delta=PerceptibleReciprocal(MagickMax(radii.x,radii.y)); + step=MagickPI/(MagickPI*PerceptibleReciprocal(delta))/8.0; angle.x=DegreesToRadians(arc.x); y=arc.y; while (y < arc.x) y+=360.0; angle.y=DegreesToRadians(y); coordinates=ceil((angle.y-angle.x)/step+1.0); - if (CheckPrimitiveExtent(mvg_info,coordinates) == MagickFalse) + if (CheckPrimitiveExtent(mvg_info,coordinates+1) == MagickFalse) return(MagickFalse); + i=0; primitive_info=(*mvg_info->primitive_info)+mvg_info->offset; for (p=primitive_info; angle.x < angle.y; angle.x+=step) { point.x=cos(fmod(angle.x,DegreesToRadians(360.0)))*radii.x+center.x; point.y=sin(fmod(angle.x,DegreesToRadians(360.0)))*radii.y+center.y; + if (i++ >= (ssize_t) coordinates) + break; if (TracePoint(p,point) == MagickFalse) return(MagickFalse); - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; } point.x=cos(fmod(angle.y,DegreesToRadians(360.0)))*radii.x+center.x; point.y=sin(fmod(angle.y,DegreesToRadians(360.0)))*radii.y+center.y; if (TracePoint(p,point) == MagickFalse) return(MagickFalse); - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; primitive_info->coordinates=(size_t) (p-primitive_info); primitive_info->closed_subpath=MagickFalse; x=fabs(primitive_info[0].point.x- @@ -6613,7 +6645,7 @@ static ssize_t TracePath(Image *image,MVGInfo *mvg_info,const char *path) status&=TraceArcPath(mvg_info,point,end,arc,angle,large_arc,sweep); q=(*mvg_info->primitive_info)+mvg_info->offset; mvg_info->offset+=q->coordinates; - q+=q->coordinates; + q+=(ptrdiff_t) q->coordinates; point=end; while (isspace((int) ((unsigned char) *p)) != 0) p++; @@ -6655,7 +6687,7 @@ static ssize_t TracePath(Image *image,MVGInfo *mvg_info,const char *path) return(-1); q=(*mvg_info->primitive_info)+mvg_info->offset; mvg_info->offset+=q->coordinates; - q+=q->coordinates; + q+=(ptrdiff_t) q->coordinates; point=end; while (isspace((int) ((unsigned char) *p)) != 0) p++; @@ -6682,7 +6714,7 @@ static ssize_t TracePath(Image *image,MVGInfo *mvg_info,const char *path) if (TracePoint(q,point) == MagickFalse) return(-1); mvg_info->offset+=q->coordinates; - q+=q->coordinates; + q+=(ptrdiff_t) q->coordinates; while (isspace((int) ((unsigned char) *p)) != 0) p++; if (*p == ',') @@ -6718,7 +6750,7 @@ static ssize_t TracePath(Image *image,MVGInfo *mvg_info,const char *path) if (TracePoint(q,point) == MagickFalse) return(-1); mvg_info->offset+=q->coordinates; - q+=q->coordinates; + q+=(ptrdiff_t) q->coordinates; while (isspace((int) ((unsigned char) *p)) != 0) p++; if (*p == ',') @@ -6766,7 +6798,7 @@ static ssize_t TracePath(Image *image,MVGInfo *mvg_info,const char *path) if (TracePoint(q,point) == MagickFalse) return(-1); mvg_info->offset+=q->coordinates; - q+=q->coordinates; + q+=(ptrdiff_t) q->coordinates; while (isspace((int) ((unsigned char) *p)) != 0) p++; if (*p == ',') @@ -6809,7 +6841,7 @@ static ssize_t TracePath(Image *image,MVGInfo *mvg_info,const char *path) return(-1); q=(*mvg_info->primitive_info)+mvg_info->offset; mvg_info->offset+=q->coordinates; - q+=q->coordinates; + q+=(ptrdiff_t) q->coordinates; point=end; while (isspace((int) ((unsigned char) *p)) != 0) p++; @@ -6860,7 +6892,7 @@ static ssize_t TracePath(Image *image,MVGInfo *mvg_info,const char *path) return(-1); q=(*mvg_info->primitive_info)+mvg_info->offset; mvg_info->offset+=q->coordinates; - q+=q->coordinates; + q+=(ptrdiff_t) q->coordinates; point=end; last_attribute=attribute; while (isspace((int) ((unsigned char) *p)) != 0) @@ -6912,7 +6944,7 @@ static ssize_t TracePath(Image *image,MVGInfo *mvg_info,const char *path) return(-1); q=(*mvg_info->primitive_info)+mvg_info->offset; mvg_info->offset+=q->coordinates; - q+=q->coordinates; + q+=(ptrdiff_t) q->coordinates; point=end; last_attribute=attribute; while (isspace((int) ((unsigned char) *p)) != 0) @@ -6943,7 +6975,7 @@ static ssize_t TracePath(Image *image,MVGInfo *mvg_info,const char *path) if (TracePoint(q,point) == MagickFalse) return(-1); mvg_info->offset+=q->coordinates; - q+=q->coordinates; + q+=(ptrdiff_t) q->coordinates; while (isspace((int) ((unsigned char) *p)) != 0) p++; if (*p == ',') @@ -6964,7 +6996,7 @@ static ssize_t TracePath(Image *image,MVGInfo *mvg_info,const char *path) if (TracePoint(q,point) == MagickFalse) return(-1); mvg_info->offset+=q->coordinates; - q+=q->coordinates; + q+=(ptrdiff_t) q->coordinates; primitive_info=(*mvg_info->primitive_info)+subpath_offset; primitive_info->coordinates=(size_t) (q-primitive_info); primitive_info->closed_subpath=MagickTrue; @@ -7012,23 +7044,23 @@ static MagickBooleanType TraceRectangle(PrimitiveInfo *primitive_info, p=primitive_info; if (TracePoint(p,start) == MagickFalse) return(MagickFalse); - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; point.x=start.x; point.y=end.y; if (TracePoint(p,point) == MagickFalse) return(MagickFalse); - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; if (TracePoint(p,end) == MagickFalse) return(MagickFalse); - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; point.x=end.x; point.y=start.y; if (TracePoint(p,point) == MagickFalse) return(MagickFalse); - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; if (TracePoint(p,start) == MagickFalse) return(MagickFalse); - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; primitive_info->coordinates=(size_t) (p-primitive_info); primitive_info->closed_subpath=MagickTrue; for (i=0; i < (ssize_t) primitive_info->coordinates; i++) @@ -7077,7 +7109,7 @@ static MagickBooleanType TraceRoundRectangle(MVGInfo *mvg_info, degrees.y=360.0; if (TraceEllipse(mvg_info,point,arc,degrees) == MagickFalse) return(MagickFalse); - p=(*mvg_info->primitive_info)+mvg_info->offset; + p=(*mvg_info->primitive_info)+(ptrdiff_t) mvg_info->offset; mvg_info->offset+=p->coordinates; point.x=start.x+segment.x-arc.x; point.y=start.y+segment.y-arc.y; @@ -7085,7 +7117,7 @@ static MagickBooleanType TraceRoundRectangle(MVGInfo *mvg_info, degrees.y=90.0; if (TraceEllipse(mvg_info,point,arc,degrees) == MagickFalse) return(MagickFalse); - p=(*mvg_info->primitive_info)+mvg_info->offset; + p=(*mvg_info->primitive_info)+(ptrdiff_t) mvg_info->offset; mvg_info->offset+=p->coordinates; point.x=start.x+arc.x; point.y=start.y+segment.y-arc.y; @@ -7093,7 +7125,7 @@ static MagickBooleanType TraceRoundRectangle(MVGInfo *mvg_info, degrees.y=180.0; if (TraceEllipse(mvg_info,point,arc,degrees) == MagickFalse) return(MagickFalse); - p=(*mvg_info->primitive_info)+mvg_info->offset; + p=(*mvg_info->primitive_info)+(ptrdiff_t) mvg_info->offset; mvg_info->offset+=p->coordinates; point.x=start.x+arc.x; point.y=start.y+arc.y; @@ -7101,14 +7133,14 @@ static MagickBooleanType TraceRoundRectangle(MVGInfo *mvg_info, degrees.y=270.0; if (TraceEllipse(mvg_info,point,arc,degrees) == MagickFalse) return(MagickFalse); - p=(*mvg_info->primitive_info)+mvg_info->offset; + p=(*mvg_info->primitive_info)+(ptrdiff_t) mvg_info->offset; mvg_info->offset+=p->coordinates; if (CheckPrimitiveExtent(mvg_info,PrimitiveExtentPad) == MagickFalse) return(MagickFalse); - p=(*mvg_info->primitive_info)+mvg_info->offset; + p=(*mvg_info->primitive_info)+(ptrdiff_t) mvg_info->offset; if (TracePoint(p,(*mvg_info->primitive_info+offset)->point) == MagickFalse) return(MagickFalse); - p+=p->coordinates; + p+=(ptrdiff_t) p->coordinates; mvg_info->offset=offset; primitive_info=(*mvg_info->primitive_info)+offset; primitive_info->coordinates=(size_t) (p-primitive_info); @@ -7285,9 +7317,9 @@ static PrimitiveInfo *TraceStrokePolygon(const DrawInfo *draw_info, offset.x=primitive_info[number_vertices-1].point.x-primitive_info[0].point.x; offset.y=primitive_info[number_vertices-1].point.y-primitive_info[0].point.y; closed_path=(fabs(offset.x) < MagickEpsilon) && - (fabs(offset.y) < MagickEpsilon) ? MagickTrue : MagickFalse; - if (((draw_info->linejoin == RoundJoin) || - (draw_info->linejoin == MiterJoin)) && (closed_path != MagickFalse)) + (fabs(offset.y) < MagickEpsilon) ? MagickTrue : MagickFalse; + if ((draw_info->linejoin == MiterJoin) || + ((draw_info->linejoin == RoundJoin) && (closed_path != MagickFalse))) { polygon_primitive[number_vertices]=primitive_info[1]; number_vertices++; @@ -7296,6 +7328,7 @@ static PrimitiveInfo *TraceStrokePolygon(const DrawInfo *draw_info, /* Compute the slope for the first line segment, p. */ + closed_path=primitive_info[0].closed_subpath; dx.p=0.0; dy.p=0.0; for (n=1; n < (ssize_t) number_vertices; n++) diff --git a/magick/effect.c b/magick/effect.c index 66bb32c..5e83aa5 100644 --- a/magick/effect.c +++ b/magick/effect.c @@ -313,6 +313,9 @@ MagickExport Image *AdaptiveBlurImageChannel(const Image *image, blur_indexes=GetCacheViewAuthenticIndexQueue(blur_view); for (x=0; x < (ssize_t) blur_image->columns; x++) { + const double + *magick_restrict k; + double alpha, gamma; @@ -320,9 +323,6 @@ MagickExport Image *AdaptiveBlurImageChannel(const Image *image, DoublePixelPacket pixel; - const double - *magick_restrict k; - ssize_t i, u, @@ -966,14 +966,17 @@ static void Hull(const Image *image,const ssize_t x_offset, ssize_t y; + assert(image != (const Image *) NULL); + assert(image->signature == MagickCoreSignature); assert(f != (Quantum *) NULL); assert(g != (Quantum *) NULL); - p=f+(columns+2); - q=g+(columns+2); - r=p+(y_offset*((ssize_t) columns+2)+x_offset); + assert(columns <= (MAGICK_SSIZE_MAX-2)); + p=f+(ptrdiff_t) (columns+2); + q=g+(ptrdiff_t) (columns+2); + r=p+(ptrdiff_t) (y_offset*((ssize_t) columns+2)+x_offset); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) \ - magick_number_threads(image,image,rows,1) + magick_number_threads(image,image,rows,2) #endif for (y=0; y < (ssize_t) rows; y++) { @@ -1005,13 +1008,13 @@ static void Hull(const Image *image,const ssize_t x_offset, } } - p=f+(columns+2); - q=g+(columns+2); - r=q+(y_offset*((ssize_t) columns+2)+x_offset); - s=q-(y_offset*((ssize_t) columns+2)+x_offset); + p=f+(ptrdiff_t) (columns+2); + q=g+(ptrdiff_t) (columns+2); + r=q+(ptrdiff_t) (y_offset*((ssize_t) columns+2)+x_offset); + s=q-(ptrdiff_t) (y_offset*((ssize_t) columns+2)+x_offset); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) \ - magick_number_threads(image,image,rows,1) + magick_number_threads(image,image,rows,2) #endif for (y=0; y < (ssize_t) rows; y++) { diff --git a/magick/feature.c b/magick/feature.c index 6b9d760..921546d 100644 --- a/magick/feature.c +++ b/magick/feature.c @@ -910,7 +910,7 @@ MagickExport ChannelFeatures *GetImageChannelFeatures(const Image *image, continue; } indexes=GetCacheViewVirtualIndexQueue(image_view); - p+=distance; + p+=(ptrdiff_t) distance; indexes+=distance; for (x=0; x < (ssize_t) image->columns; x++) { @@ -1841,7 +1841,8 @@ static Image *RenderHoughLines(const ImageInfo *image_info,const size_t columns, } (void) DrawImage(image,draw_info); draw_info=DestroyDrawInfo(draw_info); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + image=DestroyImageList(image); return(GetFirstImageInList(image)); } diff --git a/magick/fourier.c b/magick/fourier.c index c9a11d5..cb5647a 100644 --- a/magick/fourier.c +++ b/magick/fourier.c @@ -281,31 +281,27 @@ MagickExport Image *ComplexImages(const Image *images,const ComplexOperator op, } for (x=0; x < (ssize_t) columns; x++) { - QuantumPixelPacket - ai = { (Quantum) (QuantumScale*(MagickRealType) GetPixelRed(Ai)), - (Quantum) (QuantumScale*(MagickRealType) GetPixelGreen(Ai)), - (Quantum) (QuantumScale*(MagickRealType) GetPixelBlue(Ai)), - (Quantum) (image->matte != MagickFalse ? QuantumScale* - (MagickRealType) GetPixelOpacity(Ai) : (MagickRealType) - OpaqueOpacity), 0 }, - ar = { (Quantum) (QuantumScale*(MagickRealType) GetPixelRed(Ar)), - (Quantum) (QuantumScale*(MagickRealType) GetPixelGreen(Ar)), - (Quantum) (QuantumScale*(MagickRealType) GetPixelBlue(Ar)), - (Quantum) (image->matte != MagickFalse ? QuantumScale* - (MagickRealType) GetPixelOpacity(Ar) : (MagickRealType) - OpaqueOpacity), 0 }, - bi = { (Quantum) (QuantumScale*(MagickRealType) GetPixelRed(Bi)), - (Quantum) (QuantumScale*(MagickRealType) GetPixelGreen(Bi)), - (Quantum) (QuantumScale*(MagickRealType) GetPixelBlue(Bi)), - (Quantum) (image->matte != MagickFalse ? QuantumScale* - (MagickRealType) GetPixelOpacity(Bi) : (MagickRealType) - OpaqueOpacity), 0 }, - br = { (Quantum) (QuantumScale*(MagickRealType) GetPixelRed(Br)), - (Quantum) (QuantumScale*(MagickRealType) GetPixelGreen(Br)), - (Quantum) (QuantumScale*(MagickRealType) GetPixelBlue(Br)), - (Quantum) (image->matte != MagickFalse ? QuantumScale* - (MagickRealType) GetPixelOpacity(Br) : (MagickRealType) - OpaqueOpacity), 0 }, + DoublePixelPacket + ai = { (double) (QuantumScale*(double) GetPixelRed(Ai)), + (double) (QuantumScale*(double) GetPixelGreen(Ai)), + (double) (QuantumScale*(double) GetPixelBlue(Ai)), + (double) (image->matte != MagickFalse ? QuantumScale* + (double) GetPixelOpacity(Ai) : (double) OpaqueOpacity), 0 }, + ar = { (double) (QuantumScale*(double) GetPixelRed(Ar)), + (double) (QuantumScale*(double) GetPixelGreen(Ar)), + (double) (QuantumScale*(double) GetPixelBlue(Ar)), + (double) (image->matte != MagickFalse ? QuantumScale* + (double) GetPixelOpacity(Ar) : (double) OpaqueOpacity), 0 }, + bi = { (double) (QuantumScale*(double) GetPixelRed(Bi)), + (double) (QuantumScale*(double) GetPixelGreen(Bi)), + (double) (QuantumScale*(double) GetPixelBlue(Bi)), + (double) (image->matte != MagickFalse ? QuantumScale* + (double) GetPixelOpacity(Bi) : (double) OpaqueOpacity), 0 }, + br = { (double) (QuantumScale*(double) GetPixelRed(Br)), + (double) (QuantumScale*(double) GetPixelGreen(Br)), + (double) (QuantumScale*(double) GetPixelBlue(Br)), + (double) (image->matte != MagickFalse ? QuantumScale* + (double) GetPixelOpacity(Br) : (double) OpaqueOpacity), 0 }, ci, cr; diff --git a/magick/fx.c b/magick/fx.c index 6042259..a026d13 100644 --- a/magick/fx.c +++ b/magick/fx.c @@ -148,9 +148,6 @@ struct _FxInfo RandomInfo *random_info; - MagickSizeType - cycles; - ExceptionInfo *exception; }; @@ -427,7 +424,7 @@ static double FxChannelStatistics(FxInfo *fx_info,const Image *image, (void) GetImageChannelKurtosis(image,channel,&kurtosis,&skewness, exception); - statistic=kurtosis; + statistic=QuantumRange*kurtosis; } if (LocaleNCompare(symbol,"maxima",6) == 0) { @@ -465,7 +462,7 @@ static double FxChannelStatistics(FxInfo *fx_info,const Image *image, (void) GetImageChannelKurtosis(image,channel,&kurtosis,&skewness, exception); - statistic=skewness; + statistic=QuantumRange*skewness; } if (LocaleNCompare(symbol,"standard_deviation",18) == 0) { @@ -740,14 +737,14 @@ static double FxGetSymbol(FxInfo *fx_info,const ChannelType channel, if (color != (MagickPixelPacket *) NULL) { pixel=(*color); - p+=length; + p+=(ptrdiff_t) length; } else if (QueryMagickColor(name,&pixel,fx_info->exception) != MagickFalse) { (void) AddValueToSplayTree(fx_info->colors,ConstantString(name), CloneMagickPixelPacket(&pixel)); - p+=length; + p+=(ptrdiff_t) length; } } } @@ -2166,7 +2163,7 @@ static double FxEvaluateSubexpression(FxInfo *fx_info,const ChannelType channel, FxParseConditional(subexpression,',',p,q); for (alpha=0.0; ; ) { - if (((fx_info->cycles++ % 8192) == 0) && (GetMagickTTL() <= 0)) + if (IsImageTTLExpired(fx_info->images) != MagickFalse) (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitFatalError,"TimeLimitExceeded","`%s'", fx_info->images->filename); @@ -2241,7 +2238,7 @@ static double FxEvaluateSubexpression(FxInfo *fx_info,const ChannelType channel, FxParseConditional(subexpression,',',p,q); for (alpha=0.0; ; ) { - if (((fx_info->cycles++ % 8192) == 0) && (GetMagickTTL() <= 0)) + if (IsImageTTLExpired(fx_info->images) != MagickFalse) (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitFatalError,"TimeLimitExceeded","`%s'", fx_info->images->filename); @@ -2623,7 +2620,7 @@ static double FxEvaluateSubexpression(FxInfo *fx_info,const ChannelType channel, FxParseConditional(subexpression,',',p,q); for (alpha=0.0; ; ) { - if (((fx_info->cycles++ % 8192) == 0) && (GetMagickTTL() <= 0)) + if (IsImageTTLExpired(fx_info->images) != MagickFalse) (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitFatalError,"TimeLimitExceeded","`%s'", fx_info->images->filename); diff --git a/magick/gem-private.h b/magick/gem-private.h index 3289b78..6096579 100644 --- a/magick/gem-private.h +++ b/magick/gem-private.h @@ -97,9 +97,12 @@ static inline void ConvertRGBToXYZ(const Quantum red,const Quantum green, r=QuantumScale*DecodePixelGamma((MagickRealType) red); g=QuantumScale*DecodePixelGamma((MagickRealType) green); b=QuantumScale*DecodePixelGamma((MagickRealType) blue); - *X=0.4124564*r+0.3575761*g+0.1804375*b; - *Y=0.2126729*r+0.7151522*g+0.0721750*b; - *Z=0.0193339*r+0.1191920*g+0.9503041*b; + *X=(0.4123955889674142161*r)+(0.3575834307637148171*g)+ + (0.1804926473817015735*b); + *Y=(0.2125862307855955516*r)+(0.7151703037034108499*g)+ + (0.07220049864333622685*b); + *Z=(0.01929721549174694484*r)+(0.1191838645808485318*g)+ + (0.9504971251315797660*b); } static inline void ConvertXYZToLab(const double X,const double Y,const double Z, @@ -157,14 +160,22 @@ static inline void ConvertXYZToRGB(const double X,const double Y,const double Z, double b, g, + min, r; assert(red != (Quantum *) NULL); assert(green != (Quantum *) NULL); assert(blue != (Quantum *) NULL); - r=3.2404542*X-1.5371385*Y-0.4985314*Z; - g=(-0.9692660)*X+1.8760108*Y+0.0415560*Z; - b=0.0556434*X-0.2040259*Y+1.0572252*Z; + r=(3.240969941904521*X)+(-1.537383177570093*Y)+(-0.498610760293*Z); + g=(-0.96924363628087*X)+(1.87596750150772*Y)+(0.041555057407175*Z); + b=(0.055630079696993*X)+(-0.20397695888897*Y)+(1.056971514242878*Z); + min=MagickMin(r,MagickMin(g,b)); + if (min < 0.0) + { + r-=min; + g-=min; + b-=min; + } *red=ClampToQuantum((MagickRealType) EncodePixelGamma((MagickRealType) QuantumRange*r)); *green=ClampToQuantum((MagickRealType) EncodePixelGamma((MagickRealType) diff --git a/magick/gem.c b/magick/gem.c index 78eb3ff..e96ed2b 100644 --- a/magick/gem.c +++ b/magick/gem.c @@ -743,8 +743,8 @@ MagickExport void ConvertHWBToRGB(const double hue,const double whiteness, static inline void ConvertLCHabToXYZ(const double luma,const double chroma, const double hue,double *X,double *Y,double *Z) { - ConvertLabToXYZ(luma,chroma*cos(hue*MagickPI/180.0),chroma* - sin(hue*MagickPI/180.0),X,Y,Z); + ConvertLabToXYZ(luma,chroma*cos(DegreesToRadians(hue)),chroma* + sin(DegreesToRadians(hue)),X,Y,Z); } MagickExport void ConvertLCHabToRGB(const double luma,const double chroma, @@ -796,8 +796,8 @@ MagickExport void ConvertLCHabToRGB(const double luma,const double chroma, static inline void ConvertLCHuvToXYZ(const double luma,const double chroma, const double hue,double *X,double *Y,double *Z) { - ConvertLuvToXYZ(luma,chroma*cos(hue*MagickPI/180.0),chroma* - sin(hue*MagickPI/180.0),X,Y,Z); + ConvertLuvToXYZ(luma,chroma*cos(DegreesToRadians(hue)),chroma* + sin(DegreesToRadians(hue)),X,Y,Z); } MagickExport void ConvertLCHuvToRGB(const double luma,const double chroma, @@ -1330,8 +1330,8 @@ static inline void ConvertXYZToLCHab(const double X,const double Y, b; ConvertXYZToLab(X,Y,Z,luma,&a,&b); - *chroma=hypot(255.0*(a-0.5),255.0*(b-0.5))/255.0+0.5; - *hue=180.0*atan2(255.0*(b-0.5),255.0*(a-0.5))/MagickPI/360.0; + *chroma=hypot(a-0.5,b-0.5)/255.0+0.5; + *hue=180.0*atan2(b-0.5,a-0.5)/MagickPI/360.0; if (*hue < 0.0) *hue+=1.0; } diff --git a/magick/geometry.c b/magick/geometry.c index 34afb78..b9f070c 100644 --- a/magick/geometry.c +++ b/magick/geometry.c @@ -88,25 +88,25 @@ static const PageInfo MagickPagesize("4A0", "4768x6741"), MagickPagesize("2A0", "3370x4768"), MagickPagesize("a0", "2384x3370"), + MagickPagesize("a10", "74x105"), MagickPagesize("a1", "1684x2384"), MagickPagesize("a2", "1191x1684"), MagickPagesize("a3", "842x1191"), - MagickPagesize("a4", "595x842"), MagickPagesize("a4small", "595x842"), + MagickPagesize("a4", "595x842"), MagickPagesize("a5", "420x595"), MagickPagesize("a6", "298x420"), MagickPagesize("a7", "210x298"), MagickPagesize("a8", "147x210"), MagickPagesize("a9", "105x147"), - MagickPagesize("a10", "74x105"), MagickPagesize("archa", "648x864"), MagickPagesize("archb", "864x1296"), MagickPagesize("archC", "1296x1728"), MagickPagesize("archd", "1728x2592"), MagickPagesize("arche", "2592x3456"), MagickPagesize("b0", "2920x4127"), - MagickPagesize("b1", "2064x2920"), MagickPagesize("b10", "91x127"), + MagickPagesize("b1", "2064x2920"), MagickPagesize("b2", "1460x2064"), MagickPagesize("b3", "1032x1460"), MagickPagesize("b4", "729x1032"), @@ -132,8 +132,8 @@ static const PageInfo MagickPagesize("folio", "612x936"), MagickPagesize("halfletter", "396x612"), MagickPagesize("isob0", "2835x4008"), - MagickPagesize("isob1", "2004x2835"), MagickPagesize("isob10", "88x125"), + MagickPagesize("isob1", "2004x2835"), MagickPagesize("isob2", "1417x2004"), MagickPagesize("isob3", "1001x1417"), MagickPagesize("isob4", "709x1001"), @@ -151,8 +151,8 @@ static const PageInfo MagickPagesize("jisb6", "128x182"), MagickPagesize("ledger", "1224x792"), MagickPagesize("legal", "612x1008"), - MagickPagesize("letter", "612x792"), MagickPagesize("lettersmall", "612x792"), + MagickPagesize("letter", "612x792"), MagickPagesize("monarch", "279x540"), MagickPagesize("quarto", "610x780"), MagickPagesize("statement", "396x612"), @@ -492,6 +492,8 @@ MagickExport char *GetPageGeometry(const char *page_geometry) int status; + if (Pagesizes[i].extent == 0) + break; /* sentinel */ status=LocaleNCompare(Pagesizes[i].name,page_geometry,Pagesizes[i].extent); if (status == 0) { diff --git a/magick/histogram.c b/magick/histogram.c index e2d80ea..98b9193 100644 --- a/magick/histogram.c +++ b/magick/histogram.c @@ -66,14 +66,14 @@ Define declarations. */ #define MaxTreeDepth 8 -#define NodesInAList 1536 +#define HNodesInAList 1536 /* Typedef declarations. */ -typedef struct _NodeInfo +typedef struct _HNodeInfo { - struct _NodeInfo + struct _HNodeInfo *child[16]; ColorPacket @@ -87,20 +87,20 @@ typedef struct _NodeInfo size_t level; -} NodeInfo; +} HNodeInfo; -typedef struct _Nodes +typedef struct _HNodes { - NodeInfo - nodes[NodesInAList]; + HNodeInfo + nodes[HNodesInAList]; - struct _Nodes + struct _HNodes *next; -} Nodes; +} HNodes; -typedef struct _CubeInfo +typedef struct _HCubeInfo { - NodeInfo + HNodeInfo *root; ssize_t @@ -113,24 +113,24 @@ typedef struct _CubeInfo colors, free_nodes; - NodeInfo + HNodeInfo *node_info; - Nodes + HNodes *node_queue; -} CubeInfo; +} HCubeInfo; /* Forward declarations. */ -static CubeInfo - *GetCubeInfo(void); +static HCubeInfo + *GetHCubeInfo(void); -static NodeInfo - *GetNodeInfo(CubeInfo *,const size_t); +static HNodeInfo + *GetHNodeInfo(HCubeInfo *,const size_t); static void - DestroyColorCube(const Image *,NodeInfo *); + DestroyColorCube(const Image *,HNodeInfo *); /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -143,13 +143,13 @@ static void % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% ClassifyImageColors() builds a populated CubeInfo tree for the specified -% image. The returned tree should be deallocated using DestroyCubeInfo() +% ClassifyImageColors() builds a populated HCubeInfo tree for the specified +% image. The returned tree should be deallocated using DestroyHCubeInfo() % once it is no longer needed. % % The format of the ClassifyImageColors() method is: % -% CubeInfo *ClassifyImageColors(const Image *image, +% HCubeInfo *ClassifyImageColors(const Image *image, % ExceptionInfo *exception) % % A description of each parameter follows. @@ -160,7 +160,7 @@ static void % */ -static inline size_t ColorToNodeId(const Image *image, +static inline size_t ColorToHNodeId(const Image *image, const MagickPixelPacket *pixel,size_t index) { size_t @@ -205,7 +205,7 @@ static inline MagickBooleanType IsMagickColorMatch(const MagickPixelPacket *p, } -static CubeInfo *ClassifyImageColors(const Image *image, +static HCubeInfo *ClassifyImageColors(const Image *image, ExceptionInfo *exception) { #define EvaluateImageTag " Compute image colors... " @@ -213,7 +213,7 @@ static CubeInfo *ClassifyImageColors(const Image *image, CacheView *image_view; - CubeInfo + HCubeInfo *cube_info; MagickBooleanType @@ -223,7 +223,7 @@ static CubeInfo *ClassifyImageColors(const Image *image, pixel, target; - NodeInfo + HNodeInfo *node_info; const IndexPacket @@ -251,8 +251,8 @@ static CubeInfo *ClassifyImageColors(const Image *image, assert(image->signature == MagickCoreSignature); if (IsEventLogging() != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); - cube_info=GetCubeInfo(); - if (cube_info == (CubeInfo *) NULL) + cube_info=GetHCubeInfo(); + if (cube_info == (HCubeInfo *) NULL) { (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'",image->filename); @@ -277,11 +277,11 @@ static CubeInfo *ClassifyImageColors(const Image *image, for (level=1; level < MaxTreeDepth; level++) { SetMagickPixelPacket(image,p,indexes+x,&pixel); - id=ColorToNodeId(image,&pixel,index); - if (node_info->child[id] == (NodeInfo *) NULL) + id=ColorToHNodeId(image,&pixel,index); + if (node_info->child[id] == (HNodeInfo *) NULL) { - node_info->child[id]=GetNodeInfo(cube_info,level); - if (node_info->child[id] == (NodeInfo *) NULL) + node_info->child[id]=GetHNodeInfo(cube_info,level); + if (node_info->child[id] == (HNodeInfo *) NULL) { (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'", @@ -359,20 +359,20 @@ static CubeInfo *ClassifyImageColors(const Image *image, % % The format of the DefineImageHistogram method is: % -% DefineImageHistogram(const Image *image,NodeInfo *node_info, +% DefineImageHistogram(const Image *image,HNodeInfo *node_info, % ColorPacket **unique_colors) % % A description of each parameter follows. % % o image: the image. % -% o node_info: the address of a structure of type NodeInfo which points to a +% o node_info: the address of a structure of type HNodeInfo which points to a % node in the color cube tree that is to be pruned. % % o histogram: the image histogram. % */ -static void DefineImageHistogram(const Image *image,NodeInfo *node_info, +static void DefineImageHistogram(const Image *image,HNodeInfo *node_info, ColorPacket **histogram) { ssize_t @@ -386,7 +386,7 @@ static void DefineImageHistogram(const Image *image,NodeInfo *node_info, */ number_children=image->matte == MagickFalse ? 8UL : 16UL; for (i=0; i < (ssize_t) number_children; i++) - if (node_info->child[i] != (NodeInfo *) NULL) + if (node_info->child[i] != (HNodeInfo *) NULL) DefineImageHistogram(image,node_info->child[i],histogram); if (node_info->level == (MaxTreeDepth-1)) { @@ -416,22 +416,22 @@ static void DefineImageHistogram(const Image *image,NodeInfo *node_info, % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% DestroyCubeInfo() deallocates memory associated with a CubeInfo structure. +% DestroyHCubeInfo() deallocates memory associated with a HCubeInfo structure. % -% The format of the DestroyCubeInfo method is: +% The format of the DestroyHCubeInfo method is: % -% DestroyCubeInfo(const Image *image,CubeInfo *cube_info) +% DestroyHCubeInfo(const Image *image,HCubeInfo *cube_info) % % A description of each parameter follows: % % o image: the image. % -% o cube_info: the address of a structure of type CubeInfo. +% o cube_info: the address of a structure of type HCubeInfo. % */ -static CubeInfo *DestroyCubeInfo(const Image *image,CubeInfo *cube_info) +static HCubeInfo *DestroyHCubeInfo(const Image *image,HCubeInfo *cube_info) { - Nodes + HNodes *nodes; /* @@ -441,11 +441,11 @@ static CubeInfo *DestroyCubeInfo(const Image *image,CubeInfo *cube_info) do { nodes=cube_info->node_queue->next; - cube_info->node_queue=(Nodes *) + cube_info->node_queue=(HNodes *) RelinquishMagickMemory(cube_info->node_queue); cube_info->node_queue=nodes; - } while (cube_info->node_queue != (Nodes *) NULL); - return((CubeInfo *) RelinquishMagickMemory(cube_info)); + } while (cube_info->node_queue != (HNodes *) NULL); + return((HCubeInfo *) RelinquishMagickMemory(cube_info)); } /* @@ -464,17 +464,17 @@ static CubeInfo *DestroyCubeInfo(const Image *image,CubeInfo *cube_info) % % The format of the DestroyColorCube method is: % -% void DestroyColorCube(const Image *image,const NodeInfo *node_info) +% void DestroyColorCube(const Image *image,const HNodeInfo *node_info) % % A description of each parameter follows. % % o image: the image. % -% o node_info: the address of a structure of type NodeInfo which points to a +% o node_info: the address of a structure of type HNodeInfo which points to a % node in the color cube tree that is to be pruned. % */ -static void DestroyColorCube(const Image *image,NodeInfo *node_info) +static void DestroyColorCube(const Image *image,HNodeInfo *node_info) { ssize_t i; @@ -487,7 +487,7 @@ static void DestroyColorCube(const Image *image,NodeInfo *node_info) */ number_children=image->matte == MagickFalse ? 8UL : 16UL; for (i=0; i < (ssize_t) number_children; i++) - if (node_info->child[i] != (NodeInfo *) NULL) + if (node_info->child[i] != (HNodeInfo *) NULL) DestroyColorCube(image,node_info->child[i]); if (node_info->list != (ColorPacket *) NULL) node_info->list=(ColorPacket *) RelinquishMagickMemory(node_info->list); @@ -504,35 +504,35 @@ static void DestroyColorCube(const Image *image,NodeInfo *node_info) % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% GetCubeInfo() initializes the CubeInfo data structure. +% GetHCubeInfo() initializes the HCubeInfo data structure. % -% The format of the GetCubeInfo method is: +% The format of the GetHCubeInfo method is: % -% cube_info=GetCubeInfo() +% cube_info=GetHCubeInfo() % % A description of each parameter follows. % % o cube_info: A pointer to the Cube structure. % */ -static CubeInfo *GetCubeInfo(void) +static HCubeInfo *GetHCubeInfo(void) { - CubeInfo + HCubeInfo *cube_info; /* Initialize tree to describe color cube. */ - cube_info=(CubeInfo *) AcquireMagickMemory(sizeof(*cube_info)); - if (cube_info == (CubeInfo *) NULL) - return((CubeInfo *) NULL); + cube_info=(HCubeInfo *) AcquireMagickMemory(sizeof(*cube_info)); + if (cube_info == (HCubeInfo *) NULL) + return((HCubeInfo *) NULL); (void) memset(cube_info,0,sizeof(*cube_info)); /* Initialize root node. */ - cube_info->root=GetNodeInfo(cube_info,0); - if (cube_info->root == (NodeInfo *) NULL) - return((CubeInfo *) NULL); + cube_info->root=GetHNodeInfo(cube_info,0); + if (cube_info->root == (HNodeInfo *) NULL) + return((HCubeInfo *) NULL); return(cube_info); } @@ -569,13 +569,13 @@ MagickExport ColorPacket *GetImageHistogram(const Image *image, ColorPacket *histogram; - CubeInfo + HCubeInfo *cube_info; *number_colors=0; histogram=(ColorPacket *) NULL; cube_info=ClassifyImageColors(image,exception); - if (cube_info != (CubeInfo *) NULL) + if (cube_info != (HCubeInfo *) NULL) { histogram=(ColorPacket *) AcquireQuantumMemory((size_t) cube_info->colors+1,sizeof(*histogram)); @@ -591,7 +591,7 @@ MagickExport ColorPacket *GetImageHistogram(const Image *image, root=histogram; DefineImageHistogram(image,cube_info->root,&root); } - cube_info=DestroyCubeInfo(image,cube_info); + cube_info=DestroyHCubeInfo(image,cube_info); } return(histogram); } @@ -607,40 +607,40 @@ MagickExport ColorPacket *GetImageHistogram(const Image *image, % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% GetNodeInfo() allocates memory for a new node in the color cube tree and +% GetHNodeInfo() allocates memory for a new node in the color cube tree and % presets all fields to zero. % -% The format of the GetNodeInfo method is: +% The format of the GetHNodeInfo method is: % -% NodeInfo *GetNodeInfo(CubeInfo *cube_info,const size_t level) +% HNodeInfo *GetHNodeInfo(HCubeInfo *cube_info,const size_t level) % % A description of each parameter follows. % -% o cube_info: A pointer to the CubeInfo structure. +% o cube_info: A pointer to the HCubeInfo structure. % % o level: Specifies the level in the storage_class the node resides. % */ -static NodeInfo *GetNodeInfo(CubeInfo *cube_info,const size_t level) +static HNodeInfo *GetHNodeInfo(HCubeInfo *cube_info,const size_t level) { - NodeInfo + HNodeInfo *node_info; if (cube_info->free_nodes == 0) { - Nodes + HNodes *nodes; /* Allocate a new nodes of nodes. */ - nodes=(Nodes *) AcquireMagickMemory(sizeof(*nodes)); - if (nodes == (Nodes *) NULL) - return((NodeInfo *) NULL); + nodes=(HNodes *) AcquireMagickMemory(sizeof(*nodes)); + if (nodes == (HNodes *) NULL) + return((HNodeInfo *) NULL); nodes->next=cube_info->node_queue; cube_info->node_queue=nodes; cube_info->node_info=nodes->nodes; - cube_info->free_nodes=NodesInAList; + cube_info->free_nodes=HNodesInAList; } cube_info->free_nodes--; node_info=cube_info->node_info++; @@ -682,7 +682,7 @@ static MagickBooleanType CheckImageColors(const Image *image, CacheView *image_view; - CubeInfo + HCubeInfo *cube_info; MagickPixelPacket @@ -698,7 +698,7 @@ static MagickBooleanType CheckImageColors(const Image *image, ssize_t x; - NodeInfo + HNodeInfo *node_info; ssize_t @@ -717,8 +717,8 @@ static MagickBooleanType CheckImageColors(const Image *image, /* Initialize color description tree. */ - cube_info=GetCubeInfo(); - if (cube_info == (CubeInfo *) NULL) + cube_info=GetHCubeInfo(); + if (cube_info == (HCubeInfo *) NULL) { (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'",image->filename); @@ -745,11 +745,11 @@ static MagickBooleanType CheckImageColors(const Image *image, for (level=1; level < MaxTreeDepth; level++) { SetMagickPixelPacket(image,p,indexes+x,&pixel); - id=ColorToNodeId(image,&pixel,index); - if (node_info->child[id] == (NodeInfo *) NULL) + id=ColorToHNodeId(image,&pixel,index); + if (node_info->child[id] == (HNodeInfo *) NULL) { - node_info->child[id]=GetNodeInfo(cube_info,level); - if (node_info->child[id] == (NodeInfo *) NULL) + node_info->child[id]=GetHNodeInfo(cube_info,level); + if (node_info->child[id] == (HNodeInfo *) NULL) { (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'", @@ -805,7 +805,7 @@ static MagickBooleanType CheckImageColors(const Image *image, break; } image_view=DestroyCacheView(image_view); - cube_info=DestroyCubeInfo(image,cube_info); + cube_info=DestroyHCubeInfo(image,cube_info); return(y < (ssize_t) image->rows ? MagickFalse : MagickTrue); } @@ -853,7 +853,7 @@ MagickExport MagickBooleanType IsHistogramImage(const Image *image, CacheView *image_view; - CubeInfo + HCubeInfo *cube_info; MagickPixelPacket @@ -869,7 +869,7 @@ MagickExport MagickBooleanType IsHistogramImage(const Image *image, ssize_t x; - NodeInfo + HNodeInfo *node_info; ssize_t @@ -895,8 +895,8 @@ MagickExport MagickBooleanType IsHistogramImage(const Image *image, /* Initialize color description tree. */ - cube_info=GetCubeInfo(); - if (cube_info == (CubeInfo *) NULL) + cube_info=GetHCubeInfo(); + if (cube_info == (HCubeInfo *) NULL) { (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'",image->filename); @@ -921,11 +921,11 @@ MagickExport MagickBooleanType IsHistogramImage(const Image *image, for (level=1; level < MaxTreeDepth; level++) { SetMagickPixelPacket(image,p,indexes+x,&pixel); - id=ColorToNodeId(image,&pixel,index); - if (node_info->child[id] == (NodeInfo *) NULL) + id=ColorToHNodeId(image,&pixel,index); + if (node_info->child[id] == (HNodeInfo *) NULL) { - node_info->child[id]=GetNodeInfo(cube_info,level); - if (node_info->child[id] == (NodeInfo *) NULL) + node_info->child[id]=GetHNodeInfo(cube_info,level); + if (node_info->child[id] == (HNodeInfo *) NULL) { (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'", @@ -981,7 +981,7 @@ MagickExport MagickBooleanType IsHistogramImage(const Image *image, break; } image_view=DestroyCacheView(image_view); - cube_info=DestroyCubeInfo(image,cube_info); + cube_info=DestroyHCubeInfo(image,cube_info); return(y < (ssize_t) image->rows ? MagickFalse : MagickTrue); } @@ -1233,14 +1233,14 @@ MagickExport size_t GetNumberColors(const Image *image,FILE *file, number_colors=0; if (file == (FILE *) NULL) { - CubeInfo + HCubeInfo *cube_info; cube_info=ClassifyImageColors(image,exception); - if (cube_info != (CubeInfo *) NULL) + if (cube_info != (HCubeInfo *) NULL) { number_colors=cube_info->colors; - cube_info=DestroyCubeInfo(image,cube_info); + cube_info=DestroyHCubeInfo(image,cube_info); } return(number_colors); } @@ -1322,7 +1322,7 @@ MagickExport size_t GetNumberColors(const Image *image,FILE *file, */ static void UniqueColorsToImage(Image *unique_image,CacheView *unique_view, - CubeInfo *cube_info,const NodeInfo *node_info,ExceptionInfo *exception) + HCubeInfo *cube_info,const HNodeInfo *node_info,ExceptionInfo *exception) { #define UniqueColorsImageTag "UniqueColors/Image" @@ -1340,7 +1340,7 @@ static void UniqueColorsToImage(Image *unique_image,CacheView *unique_view, */ number_children=unique_image->matte == MagickFalse ? 8UL : 16UL; for (i=0; i < (ssize_t) number_children; i++) - if (node_info->child[i] != (NodeInfo *) NULL) + if (node_info->child[i] != (HNodeInfo *) NULL) UniqueColorsToImage(unique_image,unique_view,cube_info, node_info->child[i],exception); if (node_info->level == (MaxTreeDepth-1)) @@ -1393,14 +1393,14 @@ MagickExport Image *UniqueImageColors(const Image *image, CacheView *unique_view; - CubeInfo + HCubeInfo *cube_info; Image *unique_image; cube_info=ClassifyImageColors(image,exception); - if (cube_info == (CubeInfo *) NULL) + if (cube_info == (HCubeInfo *) NULL) return((Image *) NULL); unique_image=CloneImage(image,cube_info->colors,1,MagickTrue,exception); if (unique_image == (Image *) NULL) @@ -1415,6 +1415,6 @@ MagickExport Image *UniqueImageColors(const Image *image, UniqueColorsToImage(unique_image,unique_view,cube_info,cube_info->root, exception); unique_view=DestroyCacheView(unique_view); - cube_info=DestroyCubeInfo(image,cube_info); + cube_info=DestroyHCubeInfo(image,cube_info); return(unique_image); } diff --git a/magick/identify.c b/magick/identify.c index 154210a..5890629 100644 --- a/magick/identify.c +++ b/magick/identify.c @@ -93,6 +93,7 @@ #include "magick/string_.h" #include "magick/string-private.h" #include "magick/timer.h" +#include "magick/timer-private.h" #include "magick/token.h" #include "magick/utility.h" #include "magick/version.h" @@ -522,6 +523,9 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file, ImageType type; + int + expired; + MagickBooleanType ping; @@ -1465,6 +1469,29 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file, image->rows/elapsed_time+0.5),MagickFalse,format); (void) FormatLocaleFile(file," Pixels per second: %s\n",format); } + if (image->ttl != (time_t) 0) + { + char + iso8601[sizeof("9999-99-99T99:99:99Z")]; + + int + seconds; + + struct tm + timestamp; + + (void) GetMagickUTCTime(&image->ttl,×tamp); + (void) strftime(iso8601,sizeof(iso8601),"%Y-%m-%dT%H:%M:%SZ",×tamp); + seconds=MagickMax((int)(image->ttl-GetMagickTime()),0); + expired=' '; + if (seconds == 0) + expired='*'; + (void) FormatLocaleFile(file," Time-to-live: %g:%02g:%02g:%02g%c %s\n", + ceil((double) (seconds/(3600*24))), + ceil((double) ((seconds % (24*3600))/3600)), + ceil((double) ((seconds % 3600)/60)), + ceil((double) ((seconds % 3600) % 60)),expired,iso8601); + } (void) FormatLocaleFile(file," User time: %0.3fu\n",user_time); (void) FormatLocaleFile(file," Elapsed time: %lu:%02lu.%03lu\n", (unsigned long) (elapsed_time/60.0),(unsigned long) ceil(fmod( diff --git a/magick/image-private.h b/magick/image-private.h index 8e037c7..040baf0 100644 --- a/magick/image-private.h +++ b/magick/image-private.h @@ -65,22 +65,33 @@ extern "C" { static inline ssize_t CastDoubleToLong(const double x) { + double + value; + if (IsNaN(x) != 0) { errno=ERANGE; return(0); } - if (floor(x) > ((double) MAGICK_SSIZE_MAX-1)) + if (x < 0.0) { - errno=ERANGE; - return((ssize_t) MAGICK_SSIZE_MAX); + value=ceil(x); + if (value < ((double) MAGICK_SSIZE_MIN)) + { + errno=ERANGE; + return((ssize_t) MAGICK_SSIZE_MIN); + } } - if (ceil(x) < ((double) MAGICK_SSIZE_MIN+1)) + else { - errno=ERANGE; - return((ssize_t) MAGICK_SSIZE_MIN); + value=floor(x); + if (value > ((double) MAGICK_SSIZE_MAX)) + { + errno=ERANGE; + return((ssize_t) MAGICK_SSIZE_MAX); + } } - return((ssize_t) x); + return((ssize_t) value); } static inline QuantumAny CastDoubleToQuantumAny(const double x) @@ -105,22 +116,26 @@ static inline QuantumAny CastDoubleToQuantumAny(const double x) static inline size_t CastDoubleToUnsigned(const double x) { + double + value; + if (IsNaN(x) != 0) { errno=ERANGE; return(0); } - if (floor(x) > ((double) MAGICK_SSIZE_MAX-1)) + value=floor(x); + if (value >= ((double) MAGICK_SIZE_MAX)) { errno=ERANGE; return((size_t) MAGICK_SIZE_MAX); } - if (ceil(x) < 0.0) + if (value < 0.0) { errno=ERANGE; return(0); } - return((size_t) x); + return((size_t) value); } static inline double DegreesToRadians(const double degrees) diff --git a/magick/image.c b/magick/image.c index 1159188..68b0a21 100644 --- a/magick/image.c +++ b/magick/image.c @@ -136,6 +136,9 @@ MagickExport Image *AcquireImage(const ImageInfo *image_info) Image *image; + int + time_limit; + MagickStatusType flags; @@ -181,6 +184,9 @@ MagickExport Image *AcquireImage(const ImageInfo *image_info) image->blob=CloneBlobInfo((BlobInfo *) NULL); InitializeExceptionInfo(&image->exception); image->timestamp=GetMagickTime(); + time_limit=(int) GetMagickResourceLimit(TimeResource); + if (time_limit > 0) + image->ttl=image->timestamp+time_limit; image->debug=(GetLogEventMask() & (ImageEvent | TransformEvent | CoderEvent)) != 0 ? MagickTrue : MagickFalse; image->reference_count=1; @@ -520,13 +526,10 @@ MagickExport Image *AppendImages(const Image *images, image_view=AcquireVirtualCacheView(next,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(next,next,next->rows,1) + magick_number_threads(next,next,next->rows,2) #endif for (y=0; y < (ssize_t) next->rows; y++) { - MagickBooleanType - sync; - const IndexPacket *magick_restrict indexes; @@ -536,6 +539,9 @@ MagickExport Image *AppendImages(const Image *images, IndexPacket *magick_restrict append_indexes; + MagickBooleanType + sync; + PixelPacket *magick_restrict q; @@ -839,6 +845,8 @@ MagickExport Image *CloneImage(const Image *image,const size_t columns, clone_image->blob=CloneBlobInfo((BlobInfo *) NULL); } clone_image->ping=image->ping; + clone_image->timestamp=image->timestamp; + clone_image->ttl=image->ttl; clone_image->debug=image->debug; clone_image->semaphore=AllocateSemaphoreInfo(); if (image->colormap != (PixelPacket *) NULL) @@ -1090,7 +1098,7 @@ MagickExport MagickBooleanType CopyImagePixels(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(source_image,image,geometry->height,1) + magick_number_threads(source_image,image,geometry->height,2) #endif for (y=0; y < (ssize_t) geometry->height; y++) { @@ -1822,7 +1830,7 @@ MagickExport MagickBooleanType IsHighDynamicRangeImage(const Image *image, *image_view; MagickBooleanType - status; + hdri = MagickFalse; MagickPixelPacket zero; @@ -1834,12 +1842,11 @@ MagickExport MagickBooleanType IsHighDynamicRangeImage(const Image *image, assert(image->signature == MagickCoreSignature); if (IsEventLogging() != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); - status=MagickTrue; GetMagickPixelPacket(image,&zero); image_view=AcquireVirtualCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) - #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + #pragma omp parallel for schedule(static) shared(hdri) \ + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1855,14 +1862,11 @@ MagickExport MagickBooleanType IsHighDynamicRangeImage(const Image *image, ssize_t x; - if (status == MagickFalse) + if (hdri != MagickFalse) continue; p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); if (p == (const PixelPacket *) NULL) - { - status=MagickFalse; - continue; - } + continue; indexes=GetCacheViewVirtualIndexQueue(image_view); pixel=zero; for (x=0; x < (ssize_t) image->columns; x++) @@ -1870,34 +1874,34 @@ MagickExport MagickBooleanType IsHighDynamicRangeImage(const Image *image, SetMagickPixelPacket(image,p,indexes+x,&pixel); if ((pixel.red < 0.0) || (pixel.red > (MagickRealType) QuantumRange) || (pixel.red != (QuantumAny) pixel.red)) - break; + hdri=MagickTrue; if ((pixel.green < 0.0) || (pixel.green > (MagickRealType) QuantumRange) || (pixel.green != (QuantumAny) pixel.green)) - break; + hdri=MagickTrue; if ((pixel.blue < 0.0) || (pixel.blue > (MagickRealType) QuantumRange) || (pixel.blue != (QuantumAny) pixel.blue)) - break; + hdri=MagickTrue; if (pixel.matte != MagickFalse) { if ((pixel.opacity < 0.0) || (pixel.opacity > (MagickRealType) QuantumRange) || (pixel.opacity != (QuantumAny) pixel.opacity)) - break; + hdri=MagickTrue; } if (pixel.colorspace == CMYKColorspace) { if ((pixel.index < 0.0) || (pixel.index > (MagickRealType) QuantumRange) || (pixel.index != (QuantumAny) pixel.index)) - break; + hdri=MagickTrue; } + if (hdri != MagickFalse) + break; p++; } - if (x < (ssize_t) image->columns) - status=MagickFalse; } image_view=DestroyCacheView(image_view); - return(status != MagickFalse ? MagickFalse : MagickTrue); + return(hdri); #endif } @@ -2100,7 +2104,7 @@ MagickExport Image *NewMagickImage(const ImageInfo *image_info, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2304,7 +2308,7 @@ MagickExport MagickBooleanType ResetImagePixels(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2414,6 +2418,10 @@ MagickExport MagickBooleanType SetImageBackgroundColor(Image *image) status=MagickTrue; exception=(&image->exception); image_view=AcquireAuthenticCacheView(image,exception); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(status) \ + magick_number_threads(image,image,image->rows,2) +#endif for (y=0; y < (ssize_t) image->rows; y++) { PixelPacket @@ -2534,7 +2542,7 @@ MagickExport MagickBooleanType SetImageColor(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2751,6 +2759,9 @@ MagickExport MagickBooleanType SetImageInfo(ImageInfo *image_info, *q, subimage[MaxTextExtent]; + const char + *p; + const MagicInfo *magic_info; @@ -2766,9 +2777,6 @@ MagickExport MagickBooleanType SetImageInfo(ImageInfo *image_info, MagickBooleanType status; - const char - *p; - ssize_t count; @@ -2983,7 +2991,9 @@ MagickExport MagickBooleanType SetImageInfo(ImageInfo *image_info, image=AcquireImage(image_info); (void) CopyMagickString(image->filename,image_info->filename, MaxTextExtent); - status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); + sans_exception=AcquireExceptionInfo(); + status=OpenBlob(image_info,image,ReadBinaryBlobMode,sans_exception); + sans_exception=DestroyExceptionInfo(sans_exception); if (status == MagickFalse) { image=DestroyImage(image); @@ -2997,7 +3007,8 @@ MagickExport MagickBooleanType SetImageInfo(ImageInfo *image_info, */ *filename='\0'; status=ImageToFile(image,filename,exception); - (void) CloseBlob(image); + if (CloseBlob(image) == MagickFalse) + status=MagickFalse; if (status == MagickFalse) { (void) RelinquishUniqueFileResource(filename); @@ -3217,7 +3228,7 @@ MagickExport MagickBooleanType SetImageOpacity(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -3695,7 +3706,7 @@ MagickExport MagickBooleanType SyncImage(Image *image) image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(range_exception,status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/magick/image.h b/magick/image.h index 0dbd4d2..018d306 100644 --- a/magick/image.h +++ b/magick/image.h @@ -27,25 +27,6 @@ extern "C" { #define OpaqueOpacity ((Quantum) 0UL) #define TransparentOpacity (QuantumRange) -typedef enum -{ - UndefinedAlphaChannel, - ActivateAlphaChannel, - BackgroundAlphaChannel, - CopyAlphaChannel, - DeactivateAlphaChannel, - ExtractAlphaChannel, - OpaqueAlphaChannel, - ResetAlphaChannel, /* deprecated */ - SetAlphaChannel, - ShapeAlphaChannel, - TransparentAlphaChannel, - FlattenAlphaChannel, - RemoveAlphaChannel, - AssociateAlphaChannel, - DisassociateAlphaChannel -} AlphaChannelType; - typedef enum { UndefinedType, @@ -356,6 +337,9 @@ struct _Image long tietz_offset; + + time_t + ttl; }; struct _ImageInfo diff --git a/magick/list.c b/magick/list.c index 19b2a34..d768eff 100644 --- a/magick/list.c +++ b/magick/list.c @@ -219,15 +219,14 @@ MagickExport Image *CloneImages(const Image *images,const char *scenes, *clone_images, *image; - ssize_t - i; - size_t length; ssize_t first, + i, last, + offset, step; assert(images != (const Image *) NULL); @@ -249,6 +248,7 @@ MagickExport Image *CloneImages(const Image *images,const char *scenes, while ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ',')) p++; first=(ssize_t) strtol(p,&p,10); + offset=first; if (first < 0) first+=(ssize_t) length; else @@ -294,7 +294,7 @@ MagickExport Image *CloneImages(const Image *images,const char *scenes, } if (match == MagickFalse) (void) ThrowMagickException(exception,GetMagickModule(),OptionError, - "InvalidImageIndex","`%s'",images->filename); + "InvalidImageIndex","%g `%s'",(double) offset,images->filename); } } return(GetFirstImageInList(clone_images)); @@ -719,7 +719,7 @@ MagickExport ssize_t GetImageIndexInList(const Image *images) */ MagickExport size_t GetImageListLength(const Image *images) { - ssize_t + size_t i; if (images == (Image *) NULL) @@ -733,7 +733,7 @@ MagickExport size_t GetImageListLength(const Image *images) assert(images != images->previous); i++; } - return((size_t) i); + return(i); } /* diff --git a/magick/log.c b/magick/log.c index 08bcbd7..4564fc9 100644 --- a/magick/log.c +++ b/magick/log.c @@ -1113,22 +1113,22 @@ static char *TranslateEvent(const LogEventType magick_unused(type), { case 'c': { - q+=CopyMagickString(q,GetClientName(),extent); + q+=(ptrdiff_t) CopyMagickString(q,GetClientName(),extent); break; } case 'd': { - q+=CopyMagickString(q,domain,extent); + q+=(ptrdiff_t) CopyMagickString(q,domain,extent); break; } case 'e': { - q+=CopyMagickString(q,event,extent); + q+=(ptrdiff_t) CopyMagickString(q,event,extent); break; } case 'f': { - q+=CopyMagickString(q,function,extent); + q+=(ptrdiff_t) CopyMagickString(q,function,extent); break; } case 'g': @@ -1139,19 +1139,19 @@ static char *TranslateEvent(const LogEventType magick_unused(type), q++; break; } - q+=FormatLocaleString(q,extent,"%.20g",(double) (log_info->generation % + q+=(ptrdiff_t) FormatLocaleString(q,extent,"%.20g",(double) (log_info->generation % log_info->generations)); break; } case 'i': { - q+=FormatLocaleString(q,extent,"%.20g",(double) + q+=(ptrdiff_t) FormatLocaleString(q,extent,"%.20g",(double) GetMagickThreadSignature()); break; } case 'l': { - q+=FormatLocaleString(q,extent,"%.20g",(double) line); + q+=(ptrdiff_t) FormatLocaleString(q,extent,"%.20g",(double) line); break; } case 'm': @@ -1165,39 +1165,39 @@ static char *TranslateEvent(const LogEventType magick_unused(type), p++; break; } - q+=CopyMagickString(q,p,extent); + q+=(ptrdiff_t) CopyMagickString(q,p,extent); break; } case 'n': { - q+=CopyMagickString(q,GetLogName(),extent); + q+=(ptrdiff_t) CopyMagickString(q,GetLogName(),extent); break; } case 'p': { - q+=FormatLocaleString(q,extent,"%.20g",(double) getpid()); + q+=(ptrdiff_t) FormatLocaleString(q,extent,"%.20g",(double) getpid()); break; } case 'r': { - q+=FormatLocaleString(q,extent,"%lu:%02lu.%03lu",(unsigned long) + q+=(ptrdiff_t) FormatLocaleString(q,extent,"%lu:%02lu.%03lu",(unsigned long) (elapsed_time/60.0),(unsigned long) floor(fmod(elapsed_time,60.0)), (unsigned long) (1000.0*(elapsed_time-floor(elapsed_time))+0.5)); break; } case 't': { - q+=FormatMagickTime(seconds,extent,q); + q+=(ptrdiff_t) FormatMagickTime(seconds,extent,q); break; } case 'u': { - q+=FormatLocaleString(q,extent,"%0.3fu",user_time); + q+=(ptrdiff_t) FormatLocaleString(q,extent,"%0.3fu",user_time); break; } case 'v': { - q+=CopyMagickString(q,MagickLibVersionText,extent); + q+=(ptrdiff_t) CopyMagickString(q,MagickLibVersionText,extent); break; } case '%': @@ -1278,7 +1278,7 @@ static char *TranslateFilename(const LogInfo *log_info) } case 'c': { - q+=CopyMagickString(q,GetClientName(),extent); + q+=(ptrdiff_t) CopyMagickString(q,GetClientName(),extent); break; } case 'g': @@ -1289,23 +1289,23 @@ static char *TranslateFilename(const LogInfo *log_info) q++; break; } - q+=FormatLocaleString(q,extent,"%.20g",(double) (log_info->generation % + q+=(ptrdiff_t) FormatLocaleString(q,extent,"%.20g",(double) (log_info->generation % log_info->generations)); break; } case 'n': { - q+=CopyMagickString(q,GetLogName(),extent); + q+=(ptrdiff_t) CopyMagickString(q,GetLogName(),extent); break; } case 'p': { - q+=FormatLocaleString(q,extent,"%.20g",(double) getpid()); + q+=(ptrdiff_t) FormatLocaleString(q,extent,"%.20g",(double) getpid()); break; } case 'v': { - q+=CopyMagickString(q,MagickLibVersionText,extent); + q+=(ptrdiff_t) CopyMagickString(q,MagickLibVersionText,extent); break; } case '%': diff --git a/magick/magic.c b/magick/magic.c index aad6d11..b05af6f 100644 --- a/magick/magic.c +++ b/magick/magic.c @@ -90,6 +90,7 @@ static const MagicMapInfo { "8BIMTEXT", 0, MagicPattern("8BIM#") }, { "8BIM", 0, MagicPattern("8BIM") }, { "AVIF", 4, MagicPattern("ftypavif") }, + { "AVIF", 4, MagicPattern("ftypavis") }, { "BMP", 0, MagicPattern("BA") }, { "BMP", 0, MagicPattern("BM") }, { "BMP", 0, MagicPattern("CI") }, @@ -103,6 +104,8 @@ static const MagicMapInfo { "CALS", 8, MagicPattern("rorient:") }, { "CGM", 0, MagicPattern("BEGMF") }, { "CIN", 0, MagicPattern("\200\052\137\327") }, + { "CR2", 0, MagicPattern("II\x2a\x00\x10\x00\x00\x00CR\x02") }, + { "CR2", 0, MagicPattern("MM\x00\x2a\x00\x10\x00\x00RC\x02") }, { "CRW", 0, MagicPattern("II\x1a\x00\x00\x00HEAPCCDR") }, { "DCM", 128, MagicPattern("DICM") }, { "DCX", 0, MagicPattern("\261\150\336\72") }, @@ -127,7 +130,13 @@ static const MagicMapInfo { "HDR", 0, MagicPattern("#?RGBE") }, { "HEIC", 4, MagicPattern("ftypheic") }, { "HEIC", 4, MagicPattern("ftypheix") }, + { "HEIC", 4, MagicPattern("ftyphevc") }, + { "HEIC", 4, MagicPattern("ftypheim") }, + { "HEIC", 4, MagicPattern("ftypheis") }, + { "HEIC", 4, MagicPattern("ftyphevm") }, + { "HEIC", 4, MagicPattern("ftyphevs") }, { "HEIC", 4, MagicPattern("ftypmif1") }, + { "HEIC", 4, MagicPattern("ftypmsf1") }, { "HPGL", 0, MagicPattern("IN;") }, { "HTML", 1, MagicPattern("HTML") }, { "HTML", 1, MagicPattern("html") }, @@ -179,6 +188,8 @@ static const MagicMapInfo { "PSD", 0, MagicPattern("8BPS") }, { "PWP", 0, MagicPattern("SFW95") }, { "RAF", 0, MagicPattern("FUJIFILMCCD-RAW ") }, + { "RAW", 0, MagicPattern("IIU\x00\x08\x00\x00\x00") }, + { "RW2", 0, MagicPattern("IIU\x00\x18\x00\x00\x00") }, { "RLE", 0, MagicPattern("\122\314") }, { "SCT", 0, MagicPattern("CT") }, { "SFW", 0, MagicPattern("SFW94") }, @@ -991,7 +1002,7 @@ static MagickBooleanType LoadMagicCache(LinkedListInfo *cache,const char *xml, *end; *q++=(unsigned char) strtol(p,&end,8); - p+=(end-p); + p+=(ptrdiff_t) (end-p); magic_info->length++; continue; } diff --git a/magick/magick-baseconfig.h b/magick/magick-baseconfig.h index 0b62e6f..3980a27 100644 --- a/magick/magick-baseconfig.h +++ b/magick/magick-baseconfig.h @@ -94,12 +94,12 @@ /* Define if you have GVC library */ /* #undef GVC_DELEGATE */ -/* Define to 1 if you have the `acosh' function. */ +/* Define to 1 if you have the 'acosh' function. */ #ifndef MAGICKCORE_HAVE_ACOSH #define MAGICKCORE_HAVE_ACOSH 1 #endif -/* Define to 1 if you have the `aligned_malloc' function. */ +/* Define to 1 if you have the 'aligned_malloc' function. */ /* #undef HAVE_ALIGNED_MALLOC */ /* Define to 1 if you have the header file. */ @@ -110,22 +110,22 @@ #define MAGICKCORE_HAVE_ARPA_INET_H 1 #endif -/* Define to 1 if you have the `asinh' function. */ +/* Define to 1 if you have the 'asinh' function. */ #ifndef MAGICKCORE_HAVE_ASINH #define MAGICKCORE_HAVE_ASINH 1 #endif -/* Define to 1 if you have the `atanh' function. */ +/* Define to 1 if you have the 'atanh' function. */ #ifndef MAGICKCORE_HAVE_ATANH #define MAGICKCORE_HAVE_ATANH 1 #endif -/* Define to 1 if you have the `atexit' function. */ +/* Define to 1 if you have the 'atexit' function. */ #ifndef MAGICKCORE_HAVE_ATEXIT #define MAGICKCORE_HAVE_ATEXIT 1 #endif -/* Define to 1 if you have the `atoll' function. */ +/* Define to 1 if you have the 'atoll' function. */ #ifndef MAGICKCORE_HAVE_ATOLL #define MAGICKCORE_HAVE_ATOLL 1 #endif @@ -135,32 +135,32 @@ #define MAGICKCORE_HAVE_BOOL /**/ #endif -/* Define to 1 if you have the `cabs' function. */ +/* Define to 1 if you have the 'cabs' function. */ #ifndef MAGICKCORE_HAVE_CABS #define MAGICKCORE_HAVE_CABS 1 #endif -/* Define to 1 if you have the `carg' function. */ +/* Define to 1 if you have the 'carg' function. */ #ifndef MAGICKCORE_HAVE_CARG #define MAGICKCORE_HAVE_CARG 1 #endif -/* Define to 1 if you have the `cimag' function. */ +/* Define to 1 if you have the 'cimag' function. */ #ifndef MAGICKCORE_HAVE_CIMAG #define MAGICKCORE_HAVE_CIMAG 1 #endif -/* Define to 1 if you have the `clock' function. */ +/* Define to 1 if you have the 'clock' function. */ #ifndef MAGICKCORE_HAVE_CLOCK #define MAGICKCORE_HAVE_CLOCK 1 #endif -/* Define to 1 if you have the `clock_getres' function. */ +/* Define to 1 if you have the 'clock_getres' function. */ #ifndef MAGICKCORE_HAVE_CLOCK_GETRES #define MAGICKCORE_HAVE_CLOCK_GETRES 1 #endif -/* Define to 1 if you have the `clock_gettime' function. */ +/* Define to 1 if you have the 'clock_gettime' function. */ #ifndef MAGICKCORE_HAVE_CLOCK_GETTIME #define MAGICKCORE_HAVE_CLOCK_GETTIME 1 #endif @@ -178,54 +178,54 @@ #define MAGICKCORE_HAVE_COMPLEX_H 1 #endif -/* Define to 1 if you have the `creal' function. */ +/* Define to 1 if you have the 'creal' function. */ #ifndef MAGICKCORE_HAVE_CREAL #define MAGICKCORE_HAVE_CREAL 1 #endif -/* Define to 1 if you have the `ctime_r' function. */ +/* Define to 1 if you have the 'ctime_r' function. */ #ifndef MAGICKCORE_HAVE_CTIME_R #define MAGICKCORE_HAVE_CTIME_R 1 #endif -/* Define to 1 if you have the declaration of `pread', and to 0 if you don't. +/* Define to 1 if you have the declaration of 'pread', and to 0 if you don't. */ #ifndef MAGICKCORE_HAVE_DECL_PREAD #define MAGICKCORE_HAVE_DECL_PREAD 1 #endif -/* Define to 1 if you have the declaration of `pwrite', and to 0 if you don't. +/* Define to 1 if you have the declaration of 'pwrite', and to 0 if you don't. */ #ifndef MAGICKCORE_HAVE_DECL_PWRITE #define MAGICKCORE_HAVE_DECL_PWRITE 1 #endif -/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you +/* Define to 1 if you have the declaration of 'strerror_r', and to 0 if you don't. */ #ifndef MAGICKCORE_HAVE_DECL_STRERROR_R #define MAGICKCORE_HAVE_DECL_STRERROR_R 1 #endif -/* Define to 1 if you have the declaration of `strlcpy', and to 0 if you +/* Define to 1 if you have the declaration of 'strlcpy', and to 0 if you don't. */ #ifndef MAGICKCORE_HAVE_DECL_STRLCPY #define MAGICKCORE_HAVE_DECL_STRLCPY 0 #endif -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. +/* Define to 1 if you have the declaration of 'tzname', and to 0 if you don't. */ /* #undef HAVE_DECL_TZNAME */ -/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you +/* Define to 1 if you have the declaration of 'vsnprintf', and to 0 if you don't. */ #ifndef MAGICKCORE_HAVE_DECL_VSNPRINTF #define MAGICKCORE_HAVE_DECL_VSNPRINTF 1 #endif -/* Define to 1 if you have the `directio' function. */ +/* Define to 1 if you have the 'directio' function. */ /* #undef HAVE_DIRECTIO */ -/* Define to 1 if you have the header file, and it defines `DIR'. +/* Define to 1 if you have the header file, and it defines 'DIR'. */ #ifndef MAGICKCORE_HAVE_DIRENT_H #define MAGICKCORE_HAVE_DIRENT_H 1 @@ -236,7 +236,7 @@ #define MAGICKCORE_HAVE_DLFCN_H 1 #endif -/* Define to 1 if you have the `erf' function. */ +/* Define to 1 if you have the 'erf' function. */ #ifndef MAGICKCORE_HAVE_ERF #define MAGICKCORE_HAVE_ERF 1 #endif @@ -246,12 +246,12 @@ #define MAGICKCORE_HAVE_ERRNO_H 1 #endif -/* Define to 1 if you have the `execvp' function. */ +/* Define to 1 if you have the 'execvp' function. */ #ifndef MAGICKCORE_HAVE_EXECVP #define MAGICKCORE_HAVE_EXECVP 1 #endif -/* Define to 1 if you have the `fchmod' function. */ +/* Define to 1 if you have the 'fchmod' function. */ #ifndef MAGICKCORE_HAVE_FCHMOD #define MAGICKCORE_HAVE_FCHMOD 1 #endif @@ -266,85 +266,85 @@ #define MAGICKCORE_HAVE_FLOAT_H 1 #endif -/* Define to 1 if you have the `floor' function. */ +/* Define to 1 if you have the 'floor' function. */ #ifndef MAGICKCORE_HAVE_FLOOR #define MAGICKCORE_HAVE_FLOOR 1 #endif -/* Define to 1 if you have the `fork' function. */ +/* Define to 1 if you have the 'fork' function. */ #ifndef MAGICKCORE_HAVE_FORK #define MAGICKCORE_HAVE_FORK 1 #endif -/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +/* Define to 1 if fseeko (and ftello) are declared in stdio.h. */ #ifndef MAGICKCORE_HAVE_FSEEKO #define MAGICKCORE_HAVE_FSEEKO 1 #endif -/* Define to 1 if you have the `ftime' function. */ +/* Define to 1 if you have the 'ftime' function. */ #ifndef MAGICKCORE_HAVE_FTIME #define MAGICKCORE_HAVE_FTIME 1 #endif -/* Define to 1 if you have the `ftruncate' function. */ +/* Define to 1 if you have the 'ftruncate' function. */ #ifndef MAGICKCORE_HAVE_FTRUNCATE #define MAGICKCORE_HAVE_FTRUNCATE 1 #endif -/* Define to 1 if you have the `getcwd' function. */ +/* Define to 1 if you have the 'getcwd' function. */ #ifndef MAGICKCORE_HAVE_GETCWD #define MAGICKCORE_HAVE_GETCWD 1 #endif -/* Define to 1 if you have the `getc_unlocked' function. */ +/* Define to 1 if you have the 'getc_unlocked' function. */ #ifndef MAGICKCORE_HAVE_GETC_UNLOCKED #define MAGICKCORE_HAVE_GETC_UNLOCKED 1 #endif -/* Define to 1 if you have the `getdtablesize' function. */ +/* Define to 1 if you have the 'getdtablesize' function. */ #ifndef MAGICKCORE_HAVE_GETDTABLESIZE #define MAGICKCORE_HAVE_GETDTABLESIZE 1 #endif -/* Define to 1 if you have the `getentropy' function. */ +/* Define to 1 if you have the 'getentropy' function. */ #ifndef MAGICKCORE_HAVE_GETENTROPY #define MAGICKCORE_HAVE_GETENTROPY 1 #endif -/* Define to 1 if you have the `getexecname' function. */ +/* Define to 1 if you have the 'getexecname' function. */ /* #undef HAVE_GETEXECNAME */ -/* Define to 1 if you have the `getpagesize' function. */ +/* Define to 1 if you have the 'getpagesize' function. */ #ifndef MAGICKCORE_HAVE_GETPAGESIZE #define MAGICKCORE_HAVE_GETPAGESIZE 1 #endif -/* Define to 1 if you have the `getpid' function. */ +/* Define to 1 if you have the 'getpid' function. */ #ifndef MAGICKCORE_HAVE_GETPID #define MAGICKCORE_HAVE_GETPID 1 #endif -/* Define to 1 if you have the `getpwnam_r' function. */ +/* Define to 1 if you have the 'getpwnam_r' function. */ #ifndef MAGICKCORE_HAVE_GETPWNAM_R #define MAGICKCORE_HAVE_GETPWNAM_R 1 #endif -/* Define to 1 if you have the `getrlimit' function. */ +/* Define to 1 if you have the 'getrlimit' function. */ #ifndef MAGICKCORE_HAVE_GETRLIMIT #define MAGICKCORE_HAVE_GETRLIMIT 1 #endif -/* Define to 1 if you have the `getrusage' function. */ +/* Define to 1 if you have the 'getrusage' function. */ #ifndef MAGICKCORE_HAVE_GETRUSAGE #define MAGICKCORE_HAVE_GETRUSAGE 1 #endif -/* Define to 1 if you have the `gettimeofday' function. */ +/* Define to 1 if you have the 'gettimeofday' function. */ #ifndef MAGICKCORE_HAVE_GETTIMEOFDAY #define MAGICKCORE_HAVE_GETTIMEOFDAY 1 #endif -/* Define to 1 if you have the `gmtime_r' function. */ +/* Define to 1 if you have the 'gmtime_r' function. */ #ifndef MAGICKCORE_HAVE_GMTIME_R #define MAGICKCORE_HAVE_GMTIME_R 1 #endif @@ -352,12 +352,12 @@ /* [Compile with hugepage support] */ /* #undef HAVE_HUGEPAGES */ -/* Define to 1 if the system has the type `intmax_t'. */ +/* Define to 1 if the system has the type 'intmax_t'. */ #ifndef MAGICKCORE_HAVE_INTMAX_T #define MAGICKCORE_HAVE_INTMAX_T 1 #endif -/* Define to 1 if the system has the type `intptr_t'. */ +/* Define to 1 if the system has the type 'intptr_t'. */ #ifndef MAGICKCORE_HAVE_INTPTR_T #define MAGICKCORE_HAVE_INTPTR_T 1 #endif @@ -367,17 +367,17 @@ #define MAGICKCORE_HAVE_INTTYPES_H 1 #endif -/* Define to 1 if you have the `isnan' function. */ +/* Define to 1 if you have the 'isnan' function. */ #ifndef MAGICKCORE_HAVE_ISNAN #define MAGICKCORE_HAVE_ISNAN 1 #endif -/* Define to 1 if you have the `j0' function. */ +/* Define to 1 if you have the 'j0' function. */ #ifndef MAGICKCORE_HAVE_J0 #define MAGICKCORE_HAVE_J0 1 #endif -/* Define to 1 if you have the `j1' function. */ +/* Define to 1 if you have the 'j1' function. */ #ifndef MAGICKCORE_HAVE_J1 #define MAGICKCORE_HAVE_J1 1 #endif @@ -393,7 +393,7 @@ /* Define if you have the header file. */ /* #undef HAVE_LCMS2_LCMS2_H */ -/* Define to 1 if you have the `gcov' library (-lgcov). */ +/* Define to 1 if you have the 'gcov' library (-lgcov). */ /* #undef HAVE_LIBGCOV */ /* Define to 1 if you have the header file. */ @@ -411,7 +411,7 @@ #define MAGICKCORE_HAVE_LINUX_UNISTD_H 1 #endif -/* Define to 1 if you have the `lltostr' function. */ +/* Define to 1 if you have the 'lltostr' function. */ /* #undef HAVE_LLTOSTR */ /* Define to 1 if you have the header file. */ @@ -419,17 +419,17 @@ #define MAGICKCORE_HAVE_LOCALE_H 1 #endif -/* Define to 1 if you have the `localtime_r' function. */ +/* Define to 1 if you have the 'localtime_r' function. */ #ifndef MAGICKCORE_HAVE_LOCALTIME_R #define MAGICKCORE_HAVE_LOCALTIME_R 1 #endif -/* Define to 1 if the system has the type `long long int'. */ +/* Define to 1 if the system has the type 'long long int'. */ #ifndef MAGICKCORE_HAVE_LONG_LONG_INT #define MAGICKCORE_HAVE_LONG_LONG_INT 1 #endif -/* Define to 1 if you have the `lstat' function. */ +/* Define to 1 if you have the 'lstat' function. */ #ifndef MAGICKCORE_HAVE_LSTAT #define MAGICKCORE_HAVE_LSTAT 1 #endif @@ -450,12 +450,12 @@ #define MAGICKCORE_HAVE_MBSTATE_T 1 #endif -/* Define to 1 if you have the `memmove' function. */ +/* Define to 1 if you have the 'memmove' function. */ #ifndef MAGICKCORE_HAVE_MEMMOVE #define MAGICKCORE_HAVE_MEMMOVE 1 #endif -/* Define to 1 if you have the `memset' function. */ +/* Define to 1 if you have the 'memset' function. */ #ifndef MAGICKCORE_HAVE_MEMSET #define MAGICKCORE_HAVE_MEMSET 1 #endif @@ -463,17 +463,17 @@ /* Define to 1 if you have the header file. */ /* #undef HAVE_MINIX_CONFIG_H */ -/* Define to 1 if you have the `mkdir' function. */ +/* Define to 1 if you have the 'mkdir' function. */ #ifndef MAGICKCORE_HAVE_MKDIR #define MAGICKCORE_HAVE_MKDIR 1 #endif -/* Define to 1 if you have the `mkstemp' function. */ +/* Define to 1 if you have the 'mkstemp' function. */ #ifndef MAGICKCORE_HAVE_MKSTEMP #define MAGICKCORE_HAVE_MKSTEMP 1 #endif -/* Define to 1 if you have a working `mmap' system call. */ +/* Define to 1 if you have a working 'mmap' system call. */ #ifndef MAGICKCORE_HAVE_MMAP #define MAGICKCORE_HAVE_MMAP 1 #endif @@ -481,7 +481,7 @@ /* Define if you have the mtmalloc memory allocation library */ /* #undef HAVE_MTMALLOC */ -/* Define to 1 if you have the `munmap' function. */ +/* Define to 1 if you have the 'munmap' function. */ #ifndef MAGICKCORE_HAVE_MUNMAP #define MAGICKCORE_HAVE_MUNMAP 1 #endif @@ -496,12 +496,12 @@ #define MAGICKCORE_HAVE_NAMESPACE_STD /**/ #endif -/* Define to 1 if you have the `nanosleep' function. */ +/* Define to 1 if you have the 'nanosleep' function. */ #ifndef MAGICKCORE_HAVE_NANOSLEEP #define MAGICKCORE_HAVE_NANOSLEEP 1 #endif -/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* Define to 1 if you have the header file, and it defines 'DIR'. */ /* #undef HAVE_NDIR_H */ /* Define to 1 if you have the header file. */ @@ -514,7 +514,7 @@ #define MAGICKCORE_HAVE_NETINET_IN_H 1 #endif -/* Define to 1 if you have the `newlocale' function. */ +/* Define to 1 if you have the 'newlocale' function. */ #ifndef MAGICKCORE_HAVE_NEWLOCALE #define MAGICKCORE_HAVE_NEWLOCALE 1 #endif @@ -525,52 +525,52 @@ /* Define to 1 if you have the header file. */ /* #undef HAVE_OS_H */ -/* Define to 1 if you have the `pclose' function. */ +/* Define to 1 if you have the 'pclose' function. */ #ifndef MAGICKCORE_HAVE_PCLOSE #define MAGICKCORE_HAVE_PCLOSE 1 #endif -/* Define to 1 if you have the `poll' function. */ +/* Define to 1 if you have the 'poll' function. */ #ifndef MAGICKCORE_HAVE_POLL #define MAGICKCORE_HAVE_POLL 1 #endif -/* Define to 1 if you have the `popen' function. */ +/* Define to 1 if you have the 'popen' function. */ #ifndef MAGICKCORE_HAVE_POPEN #define MAGICKCORE_HAVE_POPEN 1 #endif -/* Define to 1 if you have the `posix_fadvise' function. */ +/* Define to 1 if you have the 'posix_fadvise' function. */ #ifndef MAGICKCORE_HAVE_POSIX_FADVISE #define MAGICKCORE_HAVE_POSIX_FADVISE 1 #endif -/* Define to 1 if you have the `posix_fallocate' function. */ +/* Define to 1 if you have the 'posix_fallocate' function. */ #ifndef MAGICKCORE_HAVE_POSIX_FALLOCATE #define MAGICKCORE_HAVE_POSIX_FALLOCATE 1 #endif -/* Define to 1 if you have the `posix_madvise' function. */ +/* Define to 1 if you have the 'posix_madvise' function. */ #ifndef MAGICKCORE_HAVE_POSIX_MADVISE #define MAGICKCORE_HAVE_POSIX_MADVISE 1 #endif -/* Define to 1 if you have the `posix_memalign' function. */ +/* Define to 1 if you have the 'posix_memalign' function. */ #ifndef MAGICKCORE_HAVE_POSIX_MEMALIGN #define MAGICKCORE_HAVE_POSIX_MEMALIGN 1 #endif -/* Define to 1 if you have the `posix_spawnp' function. */ +/* Define to 1 if you have the 'posix_spawnp' function. */ #ifndef MAGICKCORE_HAVE_POSIX_SPAWNP #define MAGICKCORE_HAVE_POSIX_SPAWNP 1 #endif -/* Define to 1 if you have the `pow' function. */ +/* Define to 1 if you have the 'pow' function. */ #ifndef MAGICKCORE_HAVE_POW #define MAGICKCORE_HAVE_POW 1 #endif -/* Define to 1 if you have the `pread' function. */ +/* Define to 1 if you have the 'pread' function. */ #ifndef MAGICKCORE_HAVE_PREAD #define MAGICKCORE_HAVE_PREAD 1 #endif @@ -588,96 +588,100 @@ #define MAGICKCORE_HAVE_PTHREAD_PRIO_INHERIT 1 #endif -/* Define to 1 if you have the `putenv' function. */ +/* Define to 1 if you have the 'putenv' function. */ #ifndef MAGICKCORE_HAVE_PUTENV #define MAGICKCORE_HAVE_PUTENV 1 #endif -/* Define to 1 if you have the `pwrite' function. */ +/* Define to 1 if you have the 'pwrite' function. */ #ifndef MAGICKCORE_HAVE_PWRITE #define MAGICKCORE_HAVE_PWRITE 1 #endif -/* Define to 1 if you have the `qsort_r' function. */ +/* Define to 1 if you have the 'qsort_r' function. */ #ifndef MAGICKCORE_HAVE_QSORT_R #define MAGICKCORE_HAVE_QSORT_R 1 #endif -/* Define to 1 if you have the `raise' function. */ +/* Define to 1 if you have the 'raise' function. */ #ifndef MAGICKCORE_HAVE_RAISE #define MAGICKCORE_HAVE_RAISE 1 #endif -/* Define to 1 if you have the `rand_r' function. */ +/* Define to 1 if you have the 'rand_r' function. */ #ifndef MAGICKCORE_HAVE_RAND_R #define MAGICKCORE_HAVE_RAND_R 1 #endif -/* Define to 1 if you have the `readlink' function. */ +/* Define to 1 if you have the 'readlink' function. */ #ifndef MAGICKCORE_HAVE_READLINK #define MAGICKCORE_HAVE_READLINK 1 #endif -/* Define to 1 if you have the `realpath' function. */ +/* Define to 1 if you have the 'realpath' function. */ #ifndef MAGICKCORE_HAVE_REALPATH #define MAGICKCORE_HAVE_REALPATH 1 #endif -/* Define to 1 if you have the `seekdir' function. */ +/* Define to 1 if you have the 'seekdir' function. */ #ifndef MAGICKCORE_HAVE_SEEKDIR #define MAGICKCORE_HAVE_SEEKDIR 1 #endif -/* Define to 1 if you have the `select' function. */ +/* Define to 1 if you have the 'select' function. */ #ifndef MAGICKCORE_HAVE_SELECT #define MAGICKCORE_HAVE_SELECT 1 #endif -/* Define to 1 if you have the `sendfile' function. */ +/* Define to 1 if you have the 'sendfile' function. */ #ifndef MAGICKCORE_HAVE_SENDFILE #define MAGICKCORE_HAVE_SENDFILE 1 #endif -/* Define to 1 if you have the `setlocale' function. */ +/* Define to 1 if you have the 'setlocale' function. */ #ifndef MAGICKCORE_HAVE_SETLOCALE #define MAGICKCORE_HAVE_SETLOCALE 1 #endif -/* Define to 1 if you have the `setvbuf' function. */ +/* Define to 1 if you have the 'setvbuf' function. */ #ifndef MAGICKCORE_HAVE_SETVBUF #define MAGICKCORE_HAVE_SETVBUF 1 #endif /* X11 server supports shape extension */ -/* #undef HAVE_SHAPE */ +#ifndef MAGICKCORE_HAVE_SHAPE +#define MAGICKCORE_HAVE_SHAPE 1 +#endif /* X11 server supports shared memory extension */ -/* #undef HAVE_SHARED_MEMORY */ +#ifndef MAGICKCORE_HAVE_SHARED_MEMORY +#define MAGICKCORE_HAVE_SHARED_MEMORY 1 +#endif -/* Define to 1 if you have the `sigaction' function. */ +/* Define to 1 if you have the 'sigaction' function. */ #ifndef MAGICKCORE_HAVE_SIGACTION #define MAGICKCORE_HAVE_SIGACTION 1 #endif -/* Define to 1 if you have the `sigemptyset' function. */ +/* Define to 1 if you have the 'sigemptyset' function. */ #ifndef MAGICKCORE_HAVE_SIGEMPTYSET #define MAGICKCORE_HAVE_SIGEMPTYSET 1 #endif -/* Define to 1 if you have the `socket' function. */ +/* Define to 1 if you have the 'socket' function. */ #ifndef MAGICKCORE_HAVE_SOCKET #define MAGICKCORE_HAVE_SOCKET 1 #endif -/* Define to 1 if you have the `spawnvp' function. */ +/* Define to 1 if you have the 'spawnvp' function. */ /* #undef HAVE_SPAWNVP */ -/* Define to 1 if you have the `sqrt' function. */ +/* Define to 1 if you have the 'sqrt' function. */ #ifndef MAGICKCORE_HAVE_SQRT #define MAGICKCORE_HAVE_SQRT 1 #endif -/* Define to 1 if you have the `stat' function. */ +/* Define to 1 if you have the 'stat' function. */ #ifndef MAGICKCORE_HAVE_STAT #define MAGICKCORE_HAVE_STAT 1 #endif @@ -712,37 +716,37 @@ #define MAGICKCORE_HAVE_STDLIB_H 1 #endif -/* Define to 1 if you have the `strcasecmp' function. */ +/* Define to 1 if you have the 'strcasecmp' function. */ #ifndef MAGICKCORE_HAVE_STRCASECMP #define MAGICKCORE_HAVE_STRCASECMP 1 #endif -/* Define to 1 if you have the `strcasestr' function. */ +/* Define to 1 if you have the 'strcasestr' function. */ #ifndef MAGICKCORE_HAVE_STRCASESTR #define MAGICKCORE_HAVE_STRCASESTR 1 #endif -/* Define to 1 if you have the `strchr' function. */ +/* Define to 1 if you have the 'strchr' function. */ #ifndef MAGICKCORE_HAVE_STRCHR #define MAGICKCORE_HAVE_STRCHR 1 #endif -/* Define to 1 if you have the `strcspn' function. */ +/* Define to 1 if you have the 'strcspn' function. */ #ifndef MAGICKCORE_HAVE_STRCSPN #define MAGICKCORE_HAVE_STRCSPN 1 #endif -/* Define to 1 if you have the `strdup' function. */ +/* Define to 1 if you have the 'strdup' function. */ #ifndef MAGICKCORE_HAVE_STRDUP #define MAGICKCORE_HAVE_STRDUP 1 #endif -/* Define to 1 if you have the `strerror' function. */ +/* Define to 1 if you have the 'strerror' function. */ #ifndef MAGICKCORE_HAVE_STRERROR #define MAGICKCORE_HAVE_STRERROR 1 #endif -/* Define if you have `strerror_r'. */ +/* Define if you have 'strerror_r'. */ #ifndef MAGICKCORE_HAVE_STRERROR_R #define MAGICKCORE_HAVE_STRERROR_R 1 #endif @@ -762,58 +766,62 @@ #define MAGICKCORE_HAVE_STRING_H 1 #endif -/* Define to 1 if you have the `strlcat' function. */ -/* #undef HAVE_STRLCAT */ +/* Define to 1 if you have the 'strlcat' function. */ +#ifndef MAGICKCORE_HAVE_STRLCAT +#define MAGICKCORE_HAVE_STRLCAT 1 +#endif -/* Define to 1 if you have the `strlcpy' function. */ -/* #undef HAVE_STRLCPY */ +/* Define to 1 if you have the 'strlcpy' function. */ +#ifndef MAGICKCORE_HAVE_STRLCPY +#define MAGICKCORE_HAVE_STRLCPY 1 +#endif -/* Define to 1 if you have the `strncasecmp' function. */ +/* Define to 1 if you have the 'strncasecmp' function. */ #ifndef MAGICKCORE_HAVE_STRNCASECMP #define MAGICKCORE_HAVE_STRNCASECMP 1 #endif -/* Define to 1 if you have the `strpbrk' function. */ +/* Define to 1 if you have the 'strpbrk' function. */ #ifndef MAGICKCORE_HAVE_STRPBRK #define MAGICKCORE_HAVE_STRPBRK 1 #endif -/* Define to 1 if you have the `strrchr' function. */ +/* Define to 1 if you have the 'strrchr' function. */ #ifndef MAGICKCORE_HAVE_STRRCHR #define MAGICKCORE_HAVE_STRRCHR 1 #endif -/* Define to 1 if you have the `strspn' function. */ +/* Define to 1 if you have the 'strspn' function. */ #ifndef MAGICKCORE_HAVE_STRSPN #define MAGICKCORE_HAVE_STRSPN 1 #endif -/* Define to 1 if you have the `strstr' function. */ +/* Define to 1 if you have the 'strstr' function. */ #ifndef MAGICKCORE_HAVE_STRSTR #define MAGICKCORE_HAVE_STRSTR 1 #endif -/* Define to 1 if you have the `strtod' function. */ +/* Define to 1 if you have the 'strtod' function. */ #ifndef MAGICKCORE_HAVE_STRTOD #define MAGICKCORE_HAVE_STRTOD 1 #endif -/* Define to 1 if you have the `strtod_l' function. */ +/* Define to 1 if you have the 'strtod_l' function. */ #ifndef MAGICKCORE_HAVE_STRTOD_L #define MAGICKCORE_HAVE_STRTOD_L 1 #endif -/* Define to 1 if you have the `strtol' function. */ +/* Define to 1 if you have the 'strtol' function. */ #ifndef MAGICKCORE_HAVE_STRTOL #define MAGICKCORE_HAVE_STRTOL 1 #endif -/* Define to 1 if you have the `strtoul' function. */ +/* Define to 1 if you have the 'strtoul' function. */ #ifndef MAGICKCORE_HAVE_STRTOUL #define MAGICKCORE_HAVE_STRTOUL 1 #endif -/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +/* Define to 1 if 'tm_zone' is a member of 'struct tm'. */ #ifndef MAGICKCORE_HAVE_STRUCT_TM_TM_ZONE #define MAGICKCORE_HAVE_STRUCT_TM_TM_ZONE 1 #endif @@ -821,22 +829,22 @@ /* Define to 1 if you have the header file. */ /* #undef HAVE_SUN_PREFETCH_H */ -/* Define to 1 if you have the `symlink' function. */ +/* Define to 1 if you have the 'symlink' function. */ #ifndef MAGICKCORE_HAVE_SYMLINK #define MAGICKCORE_HAVE_SYMLINK 1 #endif -/* Define to 1 if you have the `sysconf' function. */ +/* Define to 1 if you have the 'sysconf' function. */ #ifndef MAGICKCORE_HAVE_SYSCONF #define MAGICKCORE_HAVE_SYSCONF 1 #endif -/* Define to 1 if you have the `system' function. */ +/* Define to 1 if you have the 'system' function. */ #ifndef MAGICKCORE_HAVE_SYSTEM #define MAGICKCORE_HAVE_SYSTEM 1 #endif -/* Define to 1 if you have the header file, and it defines `DIR'. +/* Define to 1 if you have the header file, and it defines 'DIR'. */ /* #undef HAVE_SYS_DIR_H */ @@ -850,7 +858,7 @@ #define MAGICKCORE_HAVE_SYS_MMAN_H 1 #endif -/* Define to 1 if you have the header file, and it defines `DIR'. +/* Define to 1 if you have the header file, and it defines 'DIR'. */ /* #undef HAVE_SYS_NDIR_H */ @@ -910,92 +918,42 @@ /* Define if you have the tcmalloc memory allocation library */ /* #undef HAVE_TCMALLOC */ -/* Define to 1 if you have the `telldir' function. */ +/* Define to 1 if you have the 'telldir' function. */ #ifndef MAGICKCORE_HAVE_TELLDIR #define MAGICKCORE_HAVE_TELLDIR 1 #endif -/* Define to 1 if you have the `tempnam' function. */ +/* Define to 1 if you have the 'tempnam' function. */ #ifndef MAGICKCORE_HAVE_TEMPNAM #define MAGICKCORE_HAVE_TEMPNAM 1 #endif -/* Define to 1 if you have the header file. */ -#ifndef MAGICKCORE_HAVE_TIFFCONF_H -#define MAGICKCORE_HAVE_TIFFCONF_H 1 -#endif - -/* Define to 1 if you have the `TIFFIsBigEndian' function. */ -#ifndef MAGICKCORE_HAVE_TIFFISBIGENDIAN -#define MAGICKCORE_HAVE_TIFFISBIGENDIAN 1 -#endif - -/* Define to 1 if you have the `TIFFIsCODECConfigured' function. */ -#ifndef MAGICKCORE_HAVE_TIFFISCODECCONFIGURED -#define MAGICKCORE_HAVE_TIFFISCODECCONFIGURED 1 -#endif - -/* Define to 1 if you have the `TIFFMergeFieldInfo' function. */ -#ifndef MAGICKCORE_HAVE_TIFFMERGEFIELDINFO -#define MAGICKCORE_HAVE_TIFFMERGEFIELDINFO 1 -#endif - -/* Define to 1 if you have the `TIFFReadEXIFDirectory' function. */ -#ifndef MAGICKCORE_HAVE_TIFFREADEXIFDIRECTORY -#define MAGICKCORE_HAVE_TIFFREADEXIFDIRECTORY 1 -#endif - -/* Define to 1 if you have the `TIFFReadGPSDirectory' function. */ -#ifndef MAGICKCORE_HAVE_TIFFREADGPSDIRECTORY -#define MAGICKCORE_HAVE_TIFFREADGPSDIRECTORY 1 -#endif - -/* Define to 1 if you have the `TIFFSetErrorHandlerExt' function. */ -#ifndef MAGICKCORE_HAVE_TIFFSETERRORHANDLEREXT -#define MAGICKCORE_HAVE_TIFFSETERRORHANDLEREXT 1 -#endif - -/* Define to 1 if you have the `TIFFSetTagExtender' function. */ -#ifndef MAGICKCORE_HAVE_TIFFSETTAGEXTENDER -#define MAGICKCORE_HAVE_TIFFSETTAGEXTENDER 1 -#endif - -/* Define to 1 if you have the `TIFFSetWarningHandlerExt' function. */ -#ifndef MAGICKCORE_HAVE_TIFFSETWARNINGHANDLEREXT -#define MAGICKCORE_HAVE_TIFFSETWARNINGHANDLEREXT 1 -#endif - -/* Define to 1 if you have the `TIFFSwabArrayOfTriples' function. */ -#ifndef MAGICKCORE_HAVE_TIFFSWABARRAYOFTRIPLES -#define MAGICKCORE_HAVE_TIFFSWABARRAYOFTRIPLES 1 -#endif - -/* Define to 1 if you have the `times' function. */ +/* Define to 1 if you have the 'times' function. */ #ifndef MAGICKCORE_HAVE_TIMES #define MAGICKCORE_HAVE_TIMES 1 #endif -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ +/* Define to 1 if your 'struct tm' has 'tm_zone'. Deprecated, use + 'HAVE_STRUCT_TM_TM_ZONE' instead. */ #ifndef MAGICKCORE_HAVE_TM_ZONE #define MAGICKCORE_HAVE_TM_ZONE 1 #endif -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ +/* Define to 1 if you don't have 'tm_zone' but do have the external array + 'tzname'. */ /* #undef HAVE_TZNAME */ -/* Define to 1 if the system has the type `uintmax_t'. */ +/* Define to 1 if the system has the type 'uintmax_t'. */ #ifndef MAGICKCORE_HAVE_UINTMAX_T #define MAGICKCORE_HAVE_UINTMAX_T 1 #endif -/* Define to 1 if the system has the type `uintptr_t'. */ +/* Define to 1 if the system has the type 'uintptr_t'. */ #ifndef MAGICKCORE_HAVE_UINTPTR_T #define MAGICKCORE_HAVE_UINTPTR_T 1 #endif -/* Define to 1 if you have the `ulltostr' function. */ +/* Define to 1 if you have the 'ulltostr' function. */ /* #undef HAVE_ULLTOSTR */ /* Define if you have umem memory allocation library */ @@ -1006,22 +964,22 @@ #define MAGICKCORE_HAVE_UNISTD_H 1 #endif -/* Define to 1 if the system has the type `unsigned long long int'. */ +/* Define to 1 if the system has the type 'unsigned long long int'. */ #ifndef MAGICKCORE_HAVE_UNSIGNED_LONG_LONG_INT #define MAGICKCORE_HAVE_UNSIGNED_LONG_LONG_INT 1 #endif -/* Define to 1 if you have the `uselocale' function. */ +/* Define to 1 if you have the 'uselocale' function. */ #ifndef MAGICKCORE_HAVE_USELOCALE #define MAGICKCORE_HAVE_USELOCALE 1 #endif -/* Define to 1 if you have the `usleep' function. */ +/* Define to 1 if you have the 'usleep' function. */ #ifndef MAGICKCORE_HAVE_USLEEP #define MAGICKCORE_HAVE_USLEEP 1 #endif -/* Define to 1 if you have the `utime' function. */ +/* Define to 1 if you have the 'utime' function. */ #ifndef MAGICKCORE_HAVE_UTIME #define MAGICKCORE_HAVE_UTIME 1 #endif @@ -1031,28 +989,28 @@ #define MAGICKCORE_HAVE_UTIME_H 1 #endif -/* Define to 1 if you have the `vfprintf' function. */ +/* Define to 1 if you have the 'vfprintf' function. */ #ifndef MAGICKCORE_HAVE_VFPRINTF #define MAGICKCORE_HAVE_VFPRINTF 1 #endif -/* Define to 1 if you have the `vfprintf_l' function. */ +/* Define to 1 if you have the 'vfprintf_l' function. */ /* #undef HAVE_VFPRINTF_L */ -/* Define to 1 if you have the `vsnprintf' function. */ +/* Define to 1 if you have the 'vsnprintf' function. */ #ifndef MAGICKCORE_HAVE_VSNPRINTF #define MAGICKCORE_HAVE_VSNPRINTF 1 #endif -/* Define to 1 if you have the `vsnprintf_l' function. */ +/* Define to 1 if you have the 'vsnprintf_l' function. */ /* #undef HAVE_VSNPRINTF_L */ -/* Define to 1 if you have the `vsprintf' function. */ +/* Define to 1 if you have the 'vsprintf' function. */ #ifndef MAGICKCORE_HAVE_VSPRINTF #define MAGICKCORE_HAVE_VSPRINTF 1 #endif -/* Define to 1 if you have the `waitpid' function. */ +/* Define to 1 if you have the 'waitpid' function. */ #ifndef MAGICKCORE_HAVE_WAITPID #define MAGICKCORE_HAVE_WAITPID 1 #endif @@ -1065,32 +1023,32 @@ /* Define to 1 if you have the header file. */ /* #undef HAVE_XLOCALE_H */ -/* Define to 1 if you have the `_aligned_malloc' function. */ +/* Define to 1 if you have the '_aligned_malloc' function. */ /* #undef HAVE__ALIGNED_MALLOC */ -/* Define to 1 if the system has the type `_Bool'. */ +/* Define to 1 if the system has the type '_Bool'. */ #ifndef MAGICKCORE_HAVE__BOOL #define MAGICKCORE_HAVE__BOOL 1 #endif -/* Define to 1 if you have the `_exit' function. */ +/* Define to 1 if you have the '_exit' function. */ #ifndef MAGICKCORE_HAVE__EXIT #define MAGICKCORE_HAVE__EXIT 1 #endif -/* Define to 1 if you have the `_NSGetExecutablePath' function. */ +/* Define to 1 if you have the '_NSGetExecutablePath' function. */ /* #undef HAVE__NSGETEXECUTABLEPATH */ -/* Define to 1 if you have the `_pclose' function. */ +/* Define to 1 if you have the '_pclose' function. */ /* #undef HAVE__PCLOSE */ -/* Define to 1 if you have the `_popen' function. */ +/* Define to 1 if you have the '_popen' function. */ /* #undef HAVE__POPEN */ -/* Define to 1 if you have the `_wfopen' function. */ +/* Define to 1 if you have the '_wfopen' function. */ /* #undef HAVE__WFOPEN */ -/* Define to 1 if you have the `_wstat' function. */ +/* Define to 1 if you have the '_wstat' function. */ /* #undef HAVE__WSTAT */ /* define if your compiler has __attribute__ */ @@ -1104,7 +1062,9 @@ #endif /* Define if you have libheif library */ -/* #undef HEIC_DELEGATE */ +#ifndef MAGICKCORE_HEIC_DELEGATE +#define MAGICKCORE_HEIC_DELEGATE 1 +#endif /* Directory where ImageMagick architecture headers live. */ #ifndef MAGICKCORE_INCLUDEARCH_PATH @@ -1135,17 +1095,19 @@ #endif /* Define if you have OPENJP2 library */ -/* #undef LIBOPENJP2_DELEGATE */ +#ifndef MAGICKCORE_LIBOPENJP2_DELEGATE +#define MAGICKCORE_LIBOPENJP2_DELEGATE 1 +#endif /* Directory where architecture-dependent files live. */ -#ifndef MAGICKCORE_LIBRARY_PATH -#define MAGICKCORE_LIBRARY_PATH "/usr/lib64/ImageMagick-6.9.12/" +#ifndef MAGICKCORE_LIBRARY_ABSOLUTE_PATH +#define MAGICKCORE_LIBRARY_ABSOLUTE_PATH "/usr/lib64/ImageMagick-6.9.13/" #endif /* Subdirectory of lib where ImageMagick architecture dependent files are installed. */ #ifndef MAGICKCORE_LIBRARY_RELATIVE_PATH -#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-6.9.12" +#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-6.9.13" #endif /* Binaries in libraries path base name (will be during install linked to bin) @@ -1224,7 +1186,7 @@ /* Define to the full name and version of this package. */ #ifndef MAGICKCORE_PACKAGE_STRING -#define MAGICKCORE_PACKAGE_STRING "ImageMagick 6.9.12-98" +#define MAGICKCORE_PACKAGE_STRING "ImageMagick 6.9.13-25" #endif /* Define to the one symbol short name of this package. */ @@ -1239,7 +1201,7 @@ /* Define to the version of this package. */ #ifndef MAGICKCORE_PACKAGE_VERSION -#define MAGICKCORE_PACKAGE_VERSION "6.9.12-98" +#define MAGICKCORE_PACKAGE_VERSION "6.9.13-25" #endif /* Define if you have PANGOCAIRO library */ @@ -1303,45 +1265,50 @@ #define MAGICKCORE_SHARE_RELATIVE_PATH "ImageMagick-6" #endif -/* The size of `double', as computed by sizeof. */ +/* The size of 'double', as computed by sizeof. */ #ifndef MAGICKCORE_SIZEOF_DOUBLE #define MAGICKCORE_SIZEOF_DOUBLE 8 #endif -/* The size of `double_t', as computed by sizeof. */ +/* The size of 'double_t', as computed by sizeof. */ #ifndef MAGICKCORE_SIZEOF_DOUBLE_T #define MAGICKCORE_SIZEOF_DOUBLE_T 8 #endif -/* The size of `float', as computed by sizeof. */ +/* The size of 'float', as computed by sizeof. */ #ifndef MAGICKCORE_SIZEOF_FLOAT #define MAGICKCORE_SIZEOF_FLOAT 4 #endif -/* The size of `float_t', as computed by sizeof. */ +/* The size of 'float_t', as computed by sizeof. */ #ifndef MAGICKCORE_SIZEOF_FLOAT_T #define MAGICKCORE_SIZEOF_FLOAT_T 4 #endif -/* The size of `long double', as computed by sizeof. */ +/* The size of 'long double', as computed by sizeof. */ #ifndef MAGICKCORE_SIZEOF_LONG_DOUBLE #define MAGICKCORE_SIZEOF_LONG_DOUBLE 16 #endif -/* The size of `unsigned long long', as computed by sizeof. */ +/* The size of 'size_t', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_SIZE_T +#define MAGICKCORE_SIZEOF_SIZE_T 8 +#endif + +/* The size of 'unsigned long long', as computed by sizeof. */ #ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG #define MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG 8 #endif -/* The size of `void *', as computed by sizeof. */ +/* The size of 'void *', as computed by sizeof. */ #ifndef MAGICKCORE_SIZEOF_VOID_P #define MAGICKCORE_SIZEOF_VOID_P 8 #endif -/* Define to 1 if the `S_IS*' macros in do not work properly. */ +/* Define to 1 if the 'S_IS*' macros in do not work properly. */ /* #undef STAT_MACROS_BROKEN */ -/* Define to 1 if all of the C90 standard headers exist (not just the ones +/* Define to 1 if all of the C89 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #ifndef MAGICKCORE_STDC_HEADERS @@ -1363,10 +1330,10 @@ #define MAGICKCORE_TIFF_DELEGATE 1 #endif -/* Define to 1 if your declares `struct tm'. */ +/* Define to 1 if your declares 'struct tm'. */ /* #undef TM_IN_SYS_TIME */ -/* Enable extensions on AIX 3, Interix. */ +/* Enable extensions on AIX, Interix, z/OS. */ #ifndef _ALL_SOURCE # define _ALL_SOURCE 1 #endif @@ -1427,11 +1394,15 @@ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # define __STDC_WANT_IEC_60559_DFP_EXT__ 1 #endif +/* Enable extensions specified by C23 Annex F. */ +#ifndef __STDC_WANT_IEC_60559_EXT__ +# define __STDC_WANT_IEC_60559_EXT__ 1 +#endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 #endif -/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 #endif @@ -1512,7 +1483,9 @@ #endif /* Define if you have ZSTD library */ -/* #undef ZSTD_DELEGATE */ +#ifndef MAGICKCORE_ZSTD_DELEGATE +#define MAGICKCORE_ZSTD_DELEGATE 1 +#endif /* Number of bits in a file offset, on hosts where this is settable. */ /* #undef _FILE_OFFSET_BITS */ @@ -1520,12 +1493,15 @@ /* enable run-time bounds-checking */ /* #undef _FORTIFY_SOURCE */ -/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +/* Define to 1 if necessary to make fseeko visible. */ /* #undef _LARGEFILE_SOURCE */ -/* Define for large files, on AIX-style hosts. */ +/* Define to 1 on platforms where this makes off_t a 64-bit type. */ /* #undef _LARGE_FILES */ +/* Number of bits in time_t, on hosts where this is settable. */ +/* #undef _TIME_BITS */ + /* Define for Solaris 2.5.1 so the uint32_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ @@ -1541,22 +1517,25 @@ #define below would cause a syntax error. */ /* #undef _UINT8_T */ -/* Define to 1 if type `char' is unsigned and your compiler does not +/* Define to 1 if type 'char' is unsigned and your compiler does not predefine this macro. */ #ifndef __CHAR_UNSIGNED__ /* # undef __CHAR_UNSIGNED__ */ #endif +/* Define to 1 on platforms where this makes time_t a 64-bit type. */ +/* #undef __MINGW_USE_VC2005_COMPAT */ + /* Define to appropriate substitute if compiler does not have __func__ */ /* #undef __func__ */ -/* Define to empty if `const' does not conform to ANSI C. */ +/* Define to empty if 'const' does not conform to ANSI C. */ /* #undef const */ -/* Define to `int' if doesn't define. */ +/* Define as 'int' if doesn't define. */ /* #undef gid_t */ -/* Define to `__inline__' or `__inline' if that's what the C compiler +/* Define to '__inline__' or '__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus /* #undef inline */ @@ -1589,10 +1568,10 @@ /* Define to a type if does not define. */ /* #undef mbstate_t */ -/* Define to `int' if does not define. */ +/* Define to 'int' if does not define. */ /* #undef mode_t */ -/* Define to `long int' if does not define. */ +/* Define to 'long int' if does not define. */ /* #undef off_t */ /* Define as a signed integer type capable of holding a process identifier. */ @@ -1615,13 +1594,13 @@ # define __restrict__ #endif -/* Define to `unsigned int' if does not define. */ +/* Define as 'unsigned int' if doesn't define. */ /* #undef size_t */ -/* Define to `int' if does not define. */ +/* Define as 'int' if doesn't define. */ /* #undef ssize_t */ -/* Define to `int' if doesn't define. */ +/* Define as 'int' if doesn't define. */ /* #undef uid_t */ /* Define to the type of an unsigned integer type of width exactly 16 bits if @@ -1648,8 +1627,8 @@ pointer, if such a type exists, and if the system does not define it. */ /* #undef uintptr_t */ -/* Define to empty if the keyword `volatile' does not work. Warning: valid - code using `volatile' can become incorrect without. Disable with care. */ +/* Define to empty if the keyword 'volatile' does not work. Warning: valid + code using 'volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ /* once: _MAGICK_MAGICK_BASECONFIG_H */ diff --git a/magick/magick-config.h b/magick/magick-config.h index 27784c7..2ae2cb5 100644 --- a/magick/magick-config.h +++ b/magick/magick-config.h @@ -110,7 +110,7 @@ extern "C" { #endif #ifndef MAGICKCORE_MODULES_PATH -# define MAGICKCORE_MODULES_PATH MAGICKCORE_LIBRARY_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_MODULES_DIRNAME +# define MAGICKCORE_MODULES_PATH MAGICKCORE_LIBRARY_ABSOLUTE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_MODULES_DIRNAME #endif #ifndef MAGICKCORE_MODULES_RELATIVE_PATH @@ -149,7 +149,7 @@ extern "C" { #endif #ifndef MAGICKCORE_SHAREARCH_PATH -# define MAGICKCORE_SHAREARCH_PATH MAGICKCORE_LIBRARY_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_SHAREARCH_DIRNAME MAGICKCORE_DIR_SEPARATOR +# define MAGICKCORE_SHAREARCH_PATH MAGICKCORE_LIBRARY_ABSOLUTE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_SHAREARCH_DIRNAME MAGICKCORE_DIR_SEPARATOR #endif #ifndef MAGICKCORE_SHAREARCH_RELATIVE_PATH diff --git a/magick/magick-private.h b/magick/magick-private.h new file mode 100644 index 0000000..a3abff5 --- /dev/null +++ b/magick/magick-private.h @@ -0,0 +1,32 @@ +/* + Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. You may + obtain a copy of the License at + + https://imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore private magick methods. +*/ +#ifndef MAGICKCORE_MAGICK_PRIVATE_H +#define MAGICKCORE_MAGICK_PRIVATE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickPrivate void + ResetMagickPrecision(void); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/magick/magick.c b/magick/magick.c index 508e224..e7adb55 100644 --- a/magick/magick.c +++ b/magick/magick.c @@ -130,6 +130,9 @@ static volatile MagickBooleanType instantiate_magickcore = MagickFalse, magickcore_signal_in_progress = MagickFalse, magick_list_initialized = MagickFalse; + +static int + magick_precision = 0; /* Forward declarations. @@ -1368,7 +1371,6 @@ MagickExport void MagickCoreGenesis(const char *path, #endif (void) RegistryComponentGenesis(); (void) MonitorComponentGenesis(); - (void) GetMagickTTL(); instantiate_magickcore=MagickTrue; UnlockMagickMutex(); } @@ -1518,6 +1520,29 @@ MagickExport MagickInfo *RegisterMagickInfo(MagickInfo *magick_info) % % % % % % ++ R e s e t M a g i c k P r e c i s i o n % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% ResetMagickPrecision() resets the magick_precision value. +% +% The format of the ResetMagickPrecision method is: +% +% void ResetMagickPrecision(void) +% +*/ +MagickPrivate void ResetMagickPrecision(void) +{ + magick_precision=0; +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % + S e t M a g i c k I n f o % % % % % @@ -1594,9 +1619,6 @@ MagickExport int SetMagickPrecision(const int precision) { #define MagickPrecision (4+MAGICKCORE_QUANTUM_DEPTH/8) - static int - magick_precision = 0; - if (IsEventLogging() != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"..."); if (precision > 0) diff --git a/magick/matrix.c b/magick/matrix.c index 3034da8..e851284 100644 --- a/magick/matrix.c +++ b/magick/matrix.c @@ -150,10 +150,10 @@ static inline MagickOffsetType WriteMatrixElements( { #if !defined(MAGICKCORE_HAVE_PWRITE) count=write(matrix_info->file,buffer+i,(size_t) MagickMin(length-i, - (MagickSizeType) MAGICK_SSIZE_MAX)); + (MagickSizeType) MagickMaxBufferExtent)); #else count=pwrite(matrix_info->file,buffer+i,(size_t) MagickMin(length-i, - (MagickSizeType) MAGICK_SSIZE_MAX),(off_t) (offset+i)); + (MagickSizeType) MagickMaxBufferExtent),(off_t) (offset+i)); #endif if (count <= 0) { @@ -683,10 +683,10 @@ static inline MagickOffsetType ReadMatrixElements( { #if !defined(MAGICKCORE_HAVE_PREAD) count=read(matrix_info->file,buffer+i,(size_t) MagickMin(length-i, - (MagickSizeType) MAGICK_SSIZE_MAX)); + (MagickSizeType) MagickMaxBufferExtent)); #else count=pread(matrix_info->file,buffer+i,(size_t) MagickMin(length-i, - (MagickSizeType) MAGICK_SSIZE_MAX),(off_t) (offset+i)); + (MagickSizeType) MagickMaxBufferExtent),(off_t) (offset+i)); #endif if (count <= 0) { @@ -938,7 +938,7 @@ MagickExport Image *MatrixToImage(const MatrixInfo *matrix_info, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/magick/memory-private.h b/magick/memory-private.h index 17666f2..61dd3ce 100644 --- a/magick/memory-private.h +++ b/magick/memory-private.h @@ -62,7 +62,8 @@ extern MagickPrivate MagickBooleanType extern MagickPrivate void ResetMaxMemoryRequest(void), - ResetVirtualAnonymousMemory(void); + ResetVirtualAnonymousMemory(void), + SetMaxMemoryRequest(const MagickSizeType); #if defined(__cplusplus) || defined(c_plusplus) } diff --git a/magick/memory.c b/magick/memory.c index 92d4375..633b301 100644 --- a/magick/memory.c +++ b/magick/memory.c @@ -1563,6 +1563,33 @@ MagickExport void SetMagickMemoryMethods( % % % % % % ++ S e t M a x M e m o r y R e q u e s t % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% SetMaxMemoryRequest() sets the max_memory_request value. +% +% The format of the ResetMaxMemoryRequest method is: +% +% void SetMaxMemoryRequest(const MagickSizeType limit) +% +% A description of each parameter follows: +% +% o limit: the maximum memory request limit. +% +*/ +MagickPrivate void SetMaxMemoryRequest(const MagickSizeType limit) +{ + max_memory_request=MagickMin(limit,GetMaxMemoryRequest()); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % % S h r e d F i l e % % % % % @@ -1645,7 +1672,7 @@ MagickPrivate MagickBooleanType ShredMagickMemory(void *memory, SetRandomKey(random_info,quantum,GetStringInfoDatum(key)); (void) memcpy(p,GetStringInfoDatum(key),(size_t) MagickMin(quantum,length-j)); - p+=quantum; + p+=(ptrdiff_t) quantum; } if (j < length) break; diff --git a/magick/method-attribute.h b/magick/method-attribute.h index 4b09547..b1e3696 100644 --- a/magick/method-attribute.h +++ b/magick/method-attribute.h @@ -22,7 +22,7 @@ extern "C" { #endif -#if defined(__BORLANDC__) && defined(_DLL) +#if defined(_DLL) # define _MAGICKDLL_ # define _MAGICKLIB_ # define MAGICKCORE_MODULES_SUPPORT diff --git a/magick/mime.c b/magick/mime.c index cc51302..beeab9d 100644 --- a/magick/mime.c +++ b/magick/mime.c @@ -904,6 +904,7 @@ static MagickBooleanType LoadMimeCache(LinkedListInfo *cache,const char *xml, (void) SubstituteString((char **) &token,"<","<"); (void) SubstituteString((char **) &token,"&","&"); (void) SubstituteString((char **) &token,""","\""); + (void) SubstituteString((char **) &token,"'","'"); mime_info->magic=(unsigned char *) AcquireString(token); q=mime_info->magic; for (p=token; *p != '\0'; ) @@ -917,7 +918,7 @@ static MagickBooleanType LoadMimeCache(LinkedListInfo *cache,const char *xml, *end; *q++=(unsigned char) strtol(p,&end,8); - p+=(end-p); + p+=(ptrdiff_t) (end-p); mime_info->length++; continue; } diff --git a/magick/module.c b/magick/module.c index 11e9bec..1108d57 100644 --- a/magick/module.c +++ b/magick/module.c @@ -60,6 +60,7 @@ #include "magick/splay-tree.h" #include "magick/static.h" #include "magick/string_.h" +#include "magick/timer-private.h" #include "magick/token.h" #include "magick/utility.h" #include "magick/utility-private.h" @@ -147,7 +148,7 @@ MagickExport ModuleInfo *AcquireModuleInfo(const char *path,const char *tag) module_info->path=ConstantString(path); if (tag != (const char *) NULL) module_info->tag=ConstantString(tag); - module_info->timestamp=time(0); + module_info->timestamp=GetMagickTime(); module_info->signature=MagickCoreSignature; return(module_info); } diff --git a/magick/nt-base-private.h b/magick/nt-base-private.h index d260d45..05c360d 100644 --- a/magick/nt-base-private.h +++ b/magick/nt-base-private.h @@ -87,7 +87,7 @@ static inline void *NTAcquireQuantumMemory(const size_t count, } extern MagickPrivate char - *NTGetLastError(void); + *NTGetEnvironmentValue(const char *); #if !defined(MAGICKCORE_LTDL_DELEGATE) extern MagickPrivate const char diff --git a/magick/nt-base.c b/magick/nt-base.c index f0fe79b..a1d286e 100644 --- a/magick/nt-base.c +++ b/magick/nt-base.c @@ -71,18 +71,19 @@ #if !defined(MAP_FAILED) #define MAP_FAILED ((void *)(LONG_PTR) -1) #endif +#define MaxWideByteExtent 100 /* -Typdef declarations. + Typdef declarations. */ /* -We need to make sure only one instance is created for each process and that -is why we wrap the new/delete instance methods. + We need to make sure only one instance is created for each process and that + is why we wrap the new/delete instance methods. -From: http://www.ghostscript.com/doc/current/API.htm -"The Win32 DLL gsdll32.dll can be used by multiple programs simultaneously, -but only once within each process" + From: http://www.ghostscript.com/doc/current/API.htm + "The Win32 DLL gsdll32.dll can be used by multiple programs simultaneously, + but only once within each process" */ typedef struct _NTGhostInfo { @@ -213,13 +214,13 @@ static unsigned char *NTGetRegistryValue(HKEY root,const char *key,DWORD flags, status; wchar_t - wide_name[100]; + wide_name[MaxWideByteExtent]; value=(unsigned char *) NULL; status=RegOpenKeyExA(root,key,0,(KEY_READ | flags),®istry_key); if (status != ERROR_SUCCESS) return(value); - if (MultiByteToWideChar(CP_UTF8,0,name,-1,wide_name,100) == 0) + if (MultiByteToWideChar(CP_UTF8,0,name,-1,wide_name,MaxWideByteExtent) == 0) { RegCloseKey(registry_key); return(value); @@ -783,6 +784,57 @@ MagickPrivate MagickBooleanType NTGatherRandomData(const size_t length, % % % % % % +% N T G e t E n v i r o n m e n t V a l u e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% NTGetEnvironmentValue() returns the environment string that matches the +% specified name. +% +% The format of the NTGetEnvironmentValue method is: +% +% char *GetEnvironmentValue(const char *name) +% +% A description of each parameter follows: +% +% o name: the environment name. +% +*/ +extern MagickPrivate char *NTGetEnvironmentValue(const char *name) +{ + char + *environment = (char *) NULL; + + DWORD + size; + + LPWSTR + wide; + + wchar_t + wide_name[MaxWideByteExtent]; + + if (MultiByteToWideChar(CP_UTF8,0,name,-1,wide_name,MaxWideByteExtent) == 0) + return(environment); + size=GetEnvironmentVariableW(wide_name,(LPWSTR) NULL,0); + if (size == 0) + return(environment); + wide=(LPWSTR) NTAcquireQuantumMemory((const size_t) size,sizeof(*wide)); + if (wide == (LPWSTR) NULL) + return(environment); + if (GetEnvironmentVariableW(wide_name,wide,size) != 0) + environment=create_utf8_string(wide); + wide=(LPWSTR) RelinquishMagickMemory(wide); + return(environment); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % % N T G e t E x e c u t i o n P a t h % % % % % @@ -819,20 +871,24 @@ MagickPrivate MagickBooleanType NTGetExecutionPath(char *path, % % % % % % -% N T G e t L a s t E r r o r % +% N T G e t L a s t E r r o r M e s s a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% NTGetLastError() returns the last error that occurred. +% NTGetLastErrorMessage() returns the last error that occurred. % -% The format of the NTGetLastError method is: +% The format of the NTGetLastErrorMessage method is: % -% char *NTGetLastError(void) +% char *NTGetLastErrorMessage(DWORD last_error) +% +% A description of each parameter follows: +% +% o last_error: The value of GetLastError. % */ -char *NTGetLastError(void) +static char *NTGetLastErrorMessage(DWORD last_error) { char *reason; @@ -844,7 +900,7 @@ char *NTGetLastError(void) buffer = (LPVOID) NULL; status=FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM,NULL,GetLastError(), + FORMAT_MESSAGE_FROM_SYSTEM,NULL,last_error, MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),(LPTSTR) &buffer,0,NULL); if (!status) reason=AcquireString("An unknown error occurred"); @@ -885,7 +941,7 @@ MagickPrivate const char *NTGetLibraryError(void) *error; *last_error='\0'; - error=NTGetLastError(); + error=NTGetLastErrorMessage(GetLastError()); if (error) (void) CopyMagickString(last_error,error,MaxTextExtent); error=DestroyString(error); @@ -1005,12 +1061,10 @@ static int NTLocateGhostscript(DWORD flags,int *root_index, status; static const char - *products[4] = + *products[2] = { - "GPL Ghostscript", - "GNU Ghostscript", - "AFPL Ghostscript", - "Aladdin Ghostscript" + "Artifex Ghostscript", + "GPL Ghostscript" }; /* @@ -2146,9 +2200,10 @@ MagickPrivate int NTSystemCommand(const char *command,char *output) } #define CopyLastError \ + last_error=GetLastError(); \ if (output != (char *) NULL) \ { \ - error=NTGetLastError(); \ + error=NTGetLastErrorMessage(last_error); \ if (error != (char *) NULL) \ { \ CopyMagickString(output,error,MaxTextExtent); \ @@ -2161,7 +2216,8 @@ MagickPrivate int NTSystemCommand(const char *command,char *output) local_command[MaxTextExtent]; DWORD - child_status; + child_status, + last_error; int status; @@ -2229,7 +2285,7 @@ MagickPrivate int NTSystemCommand(const char *command,char *output) { CopyLastError; CleanupOutputHandles; - return(-1); + return(last_error == ERROR_FILE_NOT_FOUND ? 127 : -1); } if (output != (char *) NULL) *output='\0'; @@ -2565,7 +2621,7 @@ MagickPrivate void NTWindowsGenesis(void) (void) SetErrorMode(StringToInteger(mode)); mode=DestroyString(mode); } -#if defined(_DEBUG) && !defined(__BORLANDC__) && !defined(__MINGW32__) +#if defined(_DEBUG) && !defined(__MINGW32__) if (IsEventLogging() != MagickFalse) { int diff --git a/magick/nt-base.h b/magick/nt-base.h index 11bb630..251944d 100644 --- a/magick/nt-base.h +++ b/magick/nt-base.h @@ -69,11 +69,7 @@ extern "C" { #endif #if !defined(chsize) -# if defined(__BORLANDC__) -# define chsize(file,length) chsize(file,length) -# else -# define chsize(file,length) _chsize(file,length) -# endif +# define chsize(file,length) _chsize(file,length) #endif #if !defined(access) @@ -106,13 +102,13 @@ extern "C" { # define fseek _fseeki64 #endif #endif -#if !defined(fstat) && !defined(__BORLANDC__) +#if !defined(fstat) #if defined(MAGICKCORE_WINDOWS_SUPPORT) && \ !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \ !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800)) -# define fstat _fstati64 +# define fstat _fstat64 #else -# define fstat _fstat +# define fstat _fstat64 #endif #endif #if !defined(fsync) @@ -224,13 +220,13 @@ extern "C" { #if !defined(strtod_l) #define strtod_l _strtod_l #endif -#if !defined(stat) && !defined(__BORLANDC__) +#if !defined(stat) #if defined(MAGICKCORE_WINDOWS_SUPPORT) && \ !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \ !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800)) -# define stat _stati64 +# define stat _stat64 #else -# define stat _stat +# define stat _stat64 #endif #endif #if !defined(strcasecmp) @@ -282,7 +278,7 @@ extern "C" { #if !defined(write) # define write(fd,buffer,count) _write(fd,buffer,(unsigned int) count) #endif -#if !defined(wstat) && !defined(__BORLANDC__) +#if !defined(wstat) #if defined(MAGICKCORE_WINDOWS_SUPPORT) && \ !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \ !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800)) @@ -292,17 +288,6 @@ extern "C" { #endif #endif -#if defined(__BORLANDC__) -#undef _O_RANDOM -#define _O_RANDOM 0 -#undef _O_SEQUENTIAL -#define _O_SEQUENTIAL 0 -#undef _O_SHORT_LIVED -#define _O_SHORT_LIVED 0 -#undef _O_TEMPORARY -#define _O_TEMPORARY 0 -#endif - #undef gettimeofday typedef struct _GhostInfo diff --git a/magick/opencl-private.h b/magick/opencl-private.h index cf80a47..9b08024 100644 --- a/magick/opencl-private.h +++ b/magick/opencl-private.h @@ -24,6 +24,13 @@ Include declarations. #include "magick/studio.h" #include "magick/opencl.h" +#if defined(MAGICKCORE_HAVE_CL_CL_H) +# include +#endif +#if defined(MAGICKCORE_HAVE_OPENCL_CL_H) +# include +#endif + #if defined(__cplusplus) || defined(c_plusplus) extern "C" { #endif diff --git a/magick/opencl.c b/magick/opencl.c index b84909d..3929ae0 100644 --- a/magick/opencl.c +++ b/magick/opencl.c @@ -41,6 +41,7 @@ Include declarations. */ #include "magick/studio.h" +#include "magick/accelerate-kernels-private.h" #include "magick/artifact.h" #include "magick/cache.h" #include "magick/cache-private.h" @@ -911,8 +912,8 @@ static void saveBinaryCLProgram(MagickCLEnv clEnv,MagickOpenCLProgram prog, } for (i = 0; i < num_devices; i++) { - binary_program[i]=AcquireQuantumMemory(MagickMax(*(program_sizes+i),1), - sizeof(**binary_program)); + binary_program[i]=(unsigned char *) AcquireQuantumMemory( + MagickMax(*(program_sizes+i),1),sizeof(**binary_program)); if (binary_program[i] == (unsigned char *) NULL) { status=CL_OUT_OF_HOST_MEMORY; @@ -2457,6 +2458,8 @@ static ds_status AcceleratePerfEvaluator(ds_device *device, CloneString(&imageInfo->size,ACCELERATE_PERF_DIMEN); CopyMagickString(imageInfo->filename,"xc:none",MaxTextExtent); inputImage=ReadImage(imageInfo,exception); + if (inputImage == (Image *) NULL) + ReturnStatus(DS_PERF_EVALUATOR_ERROR); initAccelerateTimer(&timer); diff --git a/magick/option.c b/magick/option.c index cb85a94..fef6f51 100644 --- a/magick/option.c +++ b/magick/option.c @@ -43,6 +43,7 @@ #include "magick/studio.h" #include "magick/artifact.h" #include "magick/cache.h" +#include "magick/channel.h" #include "magick/color.h" #include "magick/compare.h" #include "magick/constitute.h" @@ -106,6 +107,7 @@ static const OptionInfo { "Extract", ExtractAlphaChannel, UndefinedOptionFlag, MagickFalse }, { "Flatten", FlattenAlphaChannel, UndefinedOptionFlag, MagickFalse }, { "Off", DeactivateAlphaChannel, UndefinedOptionFlag, MagickFalse }, + { "OffIfOpaque", OffIfOpaqueAlphaChannel, UndefinedOptionFlag, MagickFalse }, { "On", ActivateAlphaChannel, UndefinedOptionFlag, MagickFalse }, { "Opaque", OpaqueAlphaChannel, UndefinedOptionFlag, MagickFalse }, { "Remove", RemoveAlphaChannel, UndefinedOptionFlag, MagickFalse }, diff --git a/magick/paint.c b/magick/paint.c index b788789..8755c1f 100644 --- a/magick/paint.c +++ b/magick/paint.c @@ -147,22 +147,17 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image, *floodplane_image; MagickBooleanType - skip; + skip, + status; MagickPixelPacket - fill, pixel; MemoryInfo *segment_info; - PixelPacket - fill_color; - - SegmentInfo - *s; - SegmentInfo + *s, *segment_stack; ssize_t @@ -200,7 +195,11 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image, floodplane_image=CloneImage(image,0,0,MagickTrue,&image->exception); if (floodplane_image == (Image *) NULL) return(MagickFalse); - (void) SetImageAlphaChannel(floodplane_image,OpaqueAlphaChannel); + floodplane_image->matte=MagickFalse; + floodplane_image->colorspace=GRAYColorspace; + (void) QueryColorCompliance("#000",AllCompliance, + &floodplane_image->background_color,exception); + (void) SetImageBackgroundColor(floodplane_image); segment_info=AcquireVirtualMemory(MaxStacksize,sizeof(*segment_stack)); if (segment_info == (MemoryInfo *) NULL) { @@ -216,7 +215,6 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image, y=y_offset; start=0; s=segment_stack; - GetMagickPixelPacket(image,&fill); GetMagickPixelPacket(image,&pixel); image_view=AcquireVirtualCacheView(image,exception); floodplane_view=AcquireAuthenticCacheView(floodplane_image,exception); @@ -230,12 +228,12 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image, const PixelPacket *magick_restrict p; - ssize_t - x; - PixelPacket *magick_restrict q; + ssize_t + x; + /* Pop segment off stack. */ @@ -253,16 +251,16 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image, if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL)) break; indexes=GetCacheViewVirtualIndexQueue(image_view); - p+=x1; - q+=x1; + p+=(ptrdiff_t) x1; + q+=(ptrdiff_t) x1; for (x=x1; x >= 0; x--) { - if (q->opacity == (Quantum) TransparentOpacity) + if (GetPixelGray(q) != 0) break; SetMagickPixelPacket(image,p,indexes+x,&pixel); if (IsMagickColorSimilar(&pixel,target) == invert) break; - q->opacity=(Quantum) TransparentOpacity; + SetPixelGray(q,QuantumRange); p--; q--; } @@ -292,12 +290,12 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image, indexes=GetCacheViewVirtualIndexQueue(image_view); for ( ; x < (ssize_t) image->columns; x++) { - if (q->opacity == (Quantum) TransparentOpacity) + if (GetPixelGray(q) != 0) break; SetMagickPixelPacket(image,p,indexes+x,&pixel); if (IsMagickColorSimilar(&pixel,target) == invert) break; - q->opacity=(Quantum) TransparentOpacity; + SetPixelGray(q,QuantumRange); p++; q++; } @@ -321,7 +319,7 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image, indexes=GetCacheViewVirtualIndexQueue(image_view); for ( ; x <= x2; x++) { - if (q->opacity == (Quantum) TransparentOpacity) + if (GetPixelGray(q) != 0) break; SetMagickPixelPacket(image,p,indexes+x,&pixel); if (IsMagickColorSimilar(&pixel,target) != invert) @@ -333,6 +331,11 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image, start=x; } while (x <= x2); } + status=MagickTrue; +#if defined(MMAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(static) shared(status) \ + magick_number_threads(floodplane_image,image,image->rows,2) +#endif for (y=0; y < (ssize_t) image->rows; y++) { const PixelPacket @@ -341,26 +344,37 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image, IndexPacket *magick_restrict indexes; - ssize_t - x; - PixelPacket *magick_restrict q; + ssize_t + x; + /* Tile fill color onto floodplane. */ - p=GetCacheViewVirtualPixels(floodplane_view,0,y,image->columns,1, - exception); + if (status == MagickFalse) + continue; + p=GetCacheViewVirtualPixels(floodplane_view,0,y,image->columns,1,exception); q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception); if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL)) - break; + { + status=MagickFalse; + continue; + } indexes=GetCacheViewAuthenticIndexQueue(image_view); for (x=0; x < (ssize_t) image->columns; x++) { - if (GetPixelOpacity(p) != OpaqueOpacity) + if (GetPixelGray(p) != 0) { + MagickPixelPacket + fill; + + PixelPacket + fill_color; + (void) GetFillColor(draw_info,x,y,&fill_color); + GetMagickPixelPacket(image,&fill); SetMagickPixelPacket(image,&fill_color,(IndexPacket *) NULL,&fill); if (image->colorspace == CMYKColorspace) ConvertRGBToCMYK(&fill); @@ -381,7 +395,7 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image, q++; } if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse) - break; + status=MagickFalse; } floodplane_view=DestroyCacheView(floodplane_view); image_view=DestroyCacheView(image_view); diff --git a/magick/pixel.c b/magick/pixel.c index f2a5b5f..70c7958 100644 --- a/magick/pixel.c +++ b/magick/pixel.c @@ -39,9 +39,9 @@ Include declarations. */ #include "magick/studio.h" -#include "magick/property.h" #include "magick/blob.h" #include "magick/blob-private.h" +#include "magick/cache-private.h" #include "magick/color-private.h" #include "magick/draw.h" #include "magick/exception.h" @@ -59,6 +59,7 @@ #include "magick/option.h" #include "magick/pixel.h" #include "magick/pixel-private.h" +#include "magick/property.h" #include "magick/quantum.h" #include "magick/resource_.h" #include "magick/semaphore.h" @@ -4502,7 +4503,7 @@ MagickExport MagickBooleanType InterpolateMagickPixelPacket( status=MagickTrue; x_offset=CastDoubleToLong(floor(x)); y_offset=CastDoubleToLong(floor(y)); - interpolate = method; + interpolate=method; if (interpolate == UndefinedInterpolatePixel) interpolate=image->interpolate; GetMagickPixelPacket(image,pixel); diff --git a/magick/policy.c b/magick/policy.c index 4acb37b..b735658 100644 --- a/magick/policy.c +++ b/magick/policy.c @@ -38,12 +38,16 @@ Include declarations. */ #include "magick/studio.h" +#include "magick/cache-private.h" #include "magick/client.h" #include "magick/configure.h" #include "magick/exception.h" #include "magick/exception-private.h" +#include "magick/hashmap-private.h" #include "magick/locale_.h" +#include "magick/magick-private.h" #include "magick/memory_.h" +#include "magick/memory-private.h" #include "magick/monitor.h" #include "magick/monitor-private.h" #include "magick/option.h" @@ -51,7 +55,10 @@ #include "magick/policy-private.h" #include "magick/resource_.h" #include "magick/semaphore.h" +#include "magick/stream-private.h" #include "magick/string_.h" +#include "magick/string-private.h" +#include "magick/timer-private.h" #include "magick/token.h" #include "magick/utility.h" #include "magick/xml-tree.h" @@ -133,6 +140,8 @@ static SemaphoreInfo static MagickBooleanType IsPolicyCacheInstantiated(ExceptionInfo *), LoadPolicyCache(LinkedListInfo *,const char *,const char *,const size_t, + ExceptionInfo *), + SetMagickSecurityPolicyValue(const PolicyDomain,const char *,const char *, ExceptionInfo *); /* @@ -167,7 +176,7 @@ static LinkedListInfo *AcquirePolicyCache(const char *filename, LinkedListInfo *cache; - MagickBooleanType + MagickStatusType status; ssize_t @@ -280,16 +289,17 @@ static LinkedListInfo *AcquirePolicyCache(const char *filename, static PolicyInfo *GetPolicyInfo(const char *name,ExceptionInfo *exception) { char - policyname[MagickPathExtent]; + policyname[MagickPathExtent], + *q; + + ElementInfo + *p; PolicyDomain domain; PolicyInfo - *p; - - char - *q; + *policy; assert(exception != (ExceptionInfo *) NULL); if (IsPolicyCacheInstantiated(exception) == MagickFalse) @@ -324,26 +334,31 @@ static PolicyInfo *GetPolicyInfo(const char *name,ExceptionInfo *exception) /* Search for policy tag. */ + policy=(PolicyInfo *) NULL; LockSemaphoreInfo(policy_semaphore); ResetLinkedListIterator(policy_cache); - p=(PolicyInfo *) GetNextValueInLinkedList(policy_cache); + p=GetHeadElementInLinkedList(policy_cache); if ((name == (const char *) NULL) || (LocaleCompare(name,"*") == 0)) { UnlockSemaphoreInfo(policy_semaphore); - return(p); + if (p != (ElementInfo *) NULL) + policy=(PolicyInfo *) p->value; + return(policy); } - while (p != (PolicyInfo *) NULL) + while (p != (ElementInfo *) NULL) { - if ((domain == UndefinedPolicyDomain) || (p->domain == domain)) - if (LocaleCompare(policyname,p->name) == 0) + policy=(PolicyInfo *) p->value; + if ((domain == UndefinedPolicyDomain) || (policy->domain == domain)) + if (LocaleCompare(policyname,policy->name) == 0) break; - p=(PolicyInfo *) GetNextValueInLinkedList(policy_cache); + p=p->next; } - if (p != (PolicyInfo *) NULL) - (void) InsertValueInLinkedList(policy_cache,0, - RemoveElementByValueFromLinkedList(policy_cache,p)); + if (p == (ElementInfo *) NULL) + policy=(PolicyInfo *) NULL; + else + (void) SetHeadElementInLinkedList(policy_cache,p); UnlockSemaphoreInfo(policy_semaphore); - return(p); + return(policy); } /* @@ -1094,8 +1109,8 @@ MagickExport void PolicyComponentTerminus(void) % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% SetMagickSecurityPolicy() sets the ImageMagick security policy. It returns -% MagickFalse if the policy is already set or if the policy does not parse. +% SetMagickSecurityPolicy() sets or restricts the ImageMagick security policy. +% It returns MagickFalse if the policy the policy does not parse. % % The format of the SetMagickSecurityPolicy method is: % @@ -1140,30 +1155,160 @@ static MagickBooleanType ValidateSecurityPolicy(const char *policy, MagickExport MagickBooleanType SetMagickSecurityPolicy(const char *policy, ExceptionInfo *exception) { - PolicyInfo - *p; - MagickBooleanType status; + LinkedListInfo + *user_policies; + + PolicyInfo + *p; + + /* + Load user policies. + */ assert(exception != (ExceptionInfo *) NULL); if (policy == (const char *) NULL) return(MagickFalse); if (ValidateSecurityPolicy(policy,PolicyFilename,exception) == MagickFalse) return(MagickFalse); - if (IsPolicyCacheInstantiated(exception) == MagickFalse) - return(MagickFalse); - LockSemaphoreInfo(policy_semaphore); - ResetLinkedListIterator(policy_cache); - p=(PolicyInfo *) GetNextValueInLinkedList(policy_cache); - if ((p != (PolicyInfo *) NULL) && (p->domain != UndefinedPolicyDomain)) + status=LoadPolicyCache(policy_cache,policy,"[user-policy]",0,exception); + if (status == MagickFalse) + return(status); + /* + Synchronize user policies. + */ + user_policies=NewLinkedList(0); + status=LoadPolicyCache(user_policies,policy,"[user-policy]",0,exception); + if (status == MagickFalse) { - UnlockSemaphoreInfo(policy_semaphore); + user_policies=DestroyLinkedList(user_policies,DestroyPolicyElement); return(MagickFalse); } - UnlockSemaphoreInfo(policy_semaphore); - status=LoadPolicyCache(policy_cache,policy,"[user-policy]",0,exception); - if (status == MagickFalse) + ResetLinkedListIterator(user_policies); + p=(PolicyInfo *) GetNextValueInLinkedList(user_policies); + while (p != (PolicyInfo *) NULL) + { + if ((p->name != (char *) NULL) && (p->value != (char *) NULL)) + (void) SetMagickSecurityPolicyValue(p->domain,p->name,p->value,exception); + p=(PolicyInfo *) GetNextValueInLinkedList(user_policies); + } + user_policies=DestroyLinkedList(user_policies,DestroyPolicyElement); + return(status); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% S e t M a g i c k S e c u r i t y P o l i c y V a l u e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% SetMagickSecurityPolicyValue() sets a value associated with an ImageMagick +% security policy. For most policies, the value must be less than any value +% set by the security policy configuration file (i.e. policy.xml). It returns +% MagickFalse if the policy cannot be modified or if the policy does not parse. +% +% The format of the SetMagickSecurityPolicyValue method is: +% +% MagickBooleanType SetMagickSecurityPolicyValue( +% const PolicyDomain domain,const char *name,const char *value, +% ExceptionInfo *exception) +% +% A description of each parameter follows: +% +% o domain: the domain of the policy (e.g. system, resource). +% +% o name: the name of the policy. +% +% o value: the value to set the policy to. +% +% o exception: return any errors or warnings in this structure. +% +*/ +static MagickBooleanType SetMagickSecurityPolicyValue(const PolicyDomain domain, + const char *name,const char *value,ExceptionInfo *exception) +{ + magick_unreferenced(exception); + assert(exception != (ExceptionInfo *) NULL); + if ((name == (const char *) NULL) || (value == (const char *) NULL)) return(MagickFalse); - return(ResourceComponentGenesis()); + switch (domain) + { + case CachePolicyDomain: + { + if (LocaleCompare(name,"memory-map") == 0) + { + if (LocaleCompare(value,"anonymous") != 0) + return(MagickFalse); + ResetCacheAnonymousMemory(); + ResetStreamAnonymousMemory(); + return(MagickTrue); + } + break; + } + case ResourcePolicyDomain: + { + ssize_t + type; + + type=ParseCommandOption(MagickResourceOptions,MagickFalse,name); + if (type >= 0) + { + MagickSizeType + limit; + + limit=MagickResourceInfinity; + if (LocaleCompare("unlimited",value) != 0) + limit=StringToMagickSizeType(value,100.0); + if ((ResourceType) type == TimeResource) + limit=(MagickSizeType) ParseMagickTimeToLive(value); + return(SetMagickResourceLimit((ResourceType) type,limit)); + } + break; + } + case SystemPolicyDomain: + { + if (LocaleCompare(name,"max-memory-request") == 0) + { + MagickSizeType + limit; + + limit=MagickResourceInfinity; + if (LocaleCompare("unlimited",value) != 0) + limit=StringToMagickSizeType(value,100.0); + SetMaxMemoryRequest(limit); + return(MagickTrue); + } + if (LocaleCompare(name,"memory-map") == 0) + { + if (LocaleCompare(value,"anonymous") != 0) + return(MagickFalse); + ResetVirtualAnonymousMemory(); + return(MagickTrue); + } + if (LocaleCompare(name,"precision") == 0) + { + int + limit; + + limit=StringToInteger(value); + SetMagickPrecision(limit); + return(MagickTrue); + } + break; + } + case CoderPolicyDomain: + case DelegatePolicyDomain: + case FilterPolicyDomain: + case ModulePolicyDomain: + case PathPolicyDomain: + default: + break; + } + return(MagickFalse); } diff --git a/magick/prepress.c b/magick/prepress.c index 238e865..a7dac09 100644 --- a/magick/prepress.c +++ b/magick/prepress.c @@ -113,7 +113,7 @@ MagickExport double GetImageTotalInkDensity(Image *image) image_view=AcquireVirtualCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/magick/profile.c b/magick/profile.c index 23317ca..82a5066 100644 --- a/magick/profile.c +++ b/magick/profile.c @@ -986,8 +986,10 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name, source_info.scale[0]=100.0; source_info.scale[1]=255.0; source_info.scale[2]=255.0; +#if !defined(MAGICKCORE_HDRI_SUPPORT) source_info.translate[1]=(-0.5); source_info.translate[2]=(-0.5); +#endif break; } case cmsSigRgbData: @@ -1036,8 +1038,10 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name, target_info.scale[0]=0.01; target_info.scale[1]=1/255.0; target_info.scale[2]=1/255.0; +#if !defined(MAGICKCORE_HDRI_SUPPORT) target_info.translate[1]=0.5; target_info.translate[2]=0.5; +#endif break; } case cmsSigRgbData: @@ -1482,10 +1486,10 @@ static void WriteTo8BimProfile(Image *image,const char *name, q=p; if (LocaleNCompare((char *) p,"8BIM",4) != 0) break; - p+=4; + p+=(ptrdiff_t) 4; p=ReadResourceShort(p,&id); p=ReadResourceByte(p,&length_byte); - p+=length_byte; + p+=(ptrdiff_t) length_byte; if (((length_byte+1) & 0x01) != 0) p++; if (p > (datum+length-4)) @@ -1497,7 +1501,7 @@ static void WriteTo8BimProfile(Image *image,const char *name, if ((count < 0) || (p > (datum+length-count)) || (count > (ssize_t) length)) break; if (id != profile_id) - p+=count; + p+=(ptrdiff_t) count; else { size_t @@ -1574,10 +1578,10 @@ static void GetProfilesFromResourceBlock(Image *image, { if (LocaleNCompare((char *) p,"8BIM",4) != 0) break; - p+=4; + p+=(ptrdiff_t) 4; p=ReadResourceShort(p,&id); p=ReadResourceByte(p,&length_byte); - p+=length_byte; + p+=(ptrdiff_t) length_byte; if (((length_byte+1) & 0x01) != 0) p++; if (p > (datum+length-4)) @@ -1629,7 +1633,7 @@ static void GetProfilesFromResourceBlock(Image *image, SetStringInfoDatum(profile,p); (void) SetImageProfileInternal(image,"iptc",profile,MagickTrue); profile=DestroyStringInfo(profile); - p+=count; + p+=(ptrdiff_t) count; break; } case 0x040c: @@ -1637,7 +1641,7 @@ static void GetProfilesFromResourceBlock(Image *image, /* Thumbnail. */ - p+=count; + p+=(ptrdiff_t) count; break; } case 0x040f: @@ -1649,7 +1653,7 @@ static void GetProfilesFromResourceBlock(Image *image, SetStringInfoDatum(profile,p); (void) SetImageProfileInternal(image,"icc",profile,MagickTrue); profile=DestroyStringInfo(profile); - p+=count; + p+=(ptrdiff_t) count; break; } case 0x0422: @@ -1661,7 +1665,7 @@ static void GetProfilesFromResourceBlock(Image *image, SetStringInfoDatum(profile,p); (void) SetImageProfileInternal(image,"exif",profile,MagickTrue); profile=DestroyStringInfo(profile); - p+=count; + p+=(ptrdiff_t) count; break; } case 0x0424: @@ -1673,12 +1677,12 @@ static void GetProfilesFromResourceBlock(Image *image, SetStringInfoDatum(profile,p); (void) SetImageProfileInternal(image,"xmp",profile,MagickTrue); profile=DestroyStringInfo(profile); - p+=count; + p+=(ptrdiff_t) count; break; } default: { - p+=count; + p+=(ptrdiff_t) count; break; } } @@ -2211,7 +2215,7 @@ static MagickBooleanType Sync8BimProfile(const Image *image, count=(ssize_t) ReadProfileByte(&p,&length); if ((count >= (ssize_t) length) || (count < 0)) return(MagickFalse); - p+=count; + p+=(ptrdiff_t) count; length-=count; if ((*p & 0x01) == 0) (void) ReadProfileByte(&p,&length); @@ -2237,7 +2241,7 @@ static MagickBooleanType Sync8BimProfile(const Image *image, } if (id == 0x0422) (void) SyncExifProfile(image,p,count); - p+=count; + p+=(ptrdiff_t) count; length-=count; } return(MagickTrue); diff --git a/magick/property.c b/magick/property.c index 4a26c3b..6315efa 100644 --- a/magick/property.c +++ b/magick/property.c @@ -833,6 +833,7 @@ static MagickBooleanType GetEXIFProperty(const Image *image, #define TAG_GPS_OFFSET 0x8825 #define TAG_INTEROP_OFFSET 0xa005 + #define EXIFGPSFractions(format,arg1,arg2,arg3,arg4,arg5,arg6) \ { \ size_t \ @@ -843,56 +844,59 @@ static MagickBooleanType GetEXIFProperty(const Image *image, \ for ( ; component < components; component++) \ { \ - extent=(size_t) ((ssize_t) extent+FormatLocaleString(buffer+extent, \ - MagickPathExtent-extent,format", ",(arg1),(arg2),(arg3),(arg4),(arg5), \ - (arg6))); \ + if (component != 0) \ + extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent- \ + extent,", "); \ + extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent- \ + extent,format,(arg1),(arg2),(arg3),(arg4),(arg5),(arg6)); \ if (extent >= (MagickPathExtent-1)) \ extent=MagickPathExtent-1; \ } \ - if (extent > 1) \ - buffer[extent-2]='\0'; \ + buffer[extent]='\0'; \ value=AcquireString(buffer); \ } #define EXIFMultipleValues(format,arg) \ { \ - ssize_t \ - component; \ - \ size_t \ - length; \ + extent = 0; \ + \ + ssize_t \ + component = 0; \ \ - length=0; \ - for (component=0; component < components; component++) \ + for ( ; component < components; component++) \ { \ - length+=FormatLocaleString(buffer+length,MaxTextExtent-length, \ - format", ",arg); \ - if (length >= (MaxTextExtent-1)) \ - length=MaxTextExtent-1; \ + if (component != 0) \ + extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent- \ + extent,", "); \ + extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent- \ + extent,format,arg); \ + if (extent >= (MagickPathExtent-1)) \ + extent=MagickPathExtent-1; \ } \ - if (length > 1) \ - buffer[length-2]='\0'; \ + buffer[extent]='\0'; \ value=AcquireString(buffer); \ } #define EXIFMultipleFractions(format,arg1,arg2) \ { \ - ssize_t \ - component; \ - \ size_t \ - length; \ + extent = 0; \ \ - length=0; \ - for (component=0; component < components; component++) \ + ssize_t \ + component = 0; \ + \ + for ( ; component < components; component++) \ { \ - length+=FormatLocaleString(buffer+length,MaxTextExtent-length, \ - format", ",(arg1),(arg2)); \ - if (length >= (MaxTextExtent-1)) \ - length=MaxTextExtent-1; \ + if (component != 0) \ + extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent-\ + extent,", "); \ + extent+=(size_t) FormatLocaleString(buffer+extent,MagickPathExtent- \ + extent,format,(arg1),(arg2)); \ + if (extent >= (MagickPathExtent-1)) \ + extent=MagickPathExtent-1; \ } \ - if (length > 1) \ - buffer[length-2]='\0'; \ + buffer[extent]='\0'; \ value=AcquireString(buffer); \ } @@ -1470,7 +1474,7 @@ static MagickBooleanType GetEXIFProperty(const Image *image, if ((all != 0) || (tag == (size_t) tag_value)) { char - buffer[MaxTextExtent], + buffer[6*sizeof(double)+MaxTextExtent], *value; if ((p < exif) || (p > (exif+length-tag_bytes[format]))) @@ -2881,7 +2885,7 @@ static const char *GetMagickPropertyLetter(const ImageInfo *image_info, (void) CopyMagickString(value,image->magick_filename,MaxTextExtent); p=value; q=value+strlen(value); - for (p+=strspn(p,allowlist); p != q; p+=strspn(p,allowlist)) + for (p+=strspn(p,allowlist); p != q; p+=(ptrdiff_t) strspn(p,allowlist)) *p='_'; break; } @@ -3708,7 +3712,7 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info, } \ q=interpret_text+strlen(interpret_text); \ } \ - q+=FormatLocaleString(q,extent,"%s=%s\n",(key),(value)); \ + q+=(ptrdiff_t) FormatLocaleString(q,extent,"%s=%s\n",(key),(value)); \ } #define AppendString2Text(string) \ @@ -3728,7 +3732,7 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info, q=interpret_text+strlen(interpret_text); \ } \ (void) CopyMagickString(q,(string),extent); \ - q+=length; \ + q+=(ptrdiff_t) length; \ } char @@ -3839,19 +3843,19 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info, if (LocaleNCompare("<",p,4) == 0) { *q++='<'; - p+=3; + p+=(ptrdiff_t) 3; } else if (LocaleNCompare(">",p,4) == 0) { *q++='>'; - p+=3; + p+=(ptrdiff_t) 3; } else if (LocaleNCompare("&",p,5) == 0) { *q++='&'; - p+=4; + p+=(ptrdiff_t) 4; } else *q++=(*p); diff --git a/magick/quantize.c b/magick/quantize.c index 5f9e677..5c79d99 100644 --- a/magick/quantize.c +++ b/magick/quantize.c @@ -211,16 +211,16 @@ #endif #define ErrorQueueLength 16 #define ErrorRelativeWeight PerceptibleReciprocal(16) -#define MaxNodes 266817 +#define MaxQNodes 266817 #define MaxTreeDepth 8 -#define NodesInAList 1920 +#define QNodesInAList 1920 /* Typedef declarations. */ -typedef struct _NodeInfo +typedef struct _QNodeInfo { - struct _NodeInfo + struct _QNodeInfo *parent, *child[16]; @@ -237,20 +237,20 @@ typedef struct _NodeInfo color_number, id, level; -} NodeInfo; +} QNodeInfo; -typedef struct _Nodes +typedef struct _QNodes { - NodeInfo + QNodeInfo *nodes; - struct _Nodes + struct _QNodes *next; -} Nodes; +} QNodes; -typedef struct _CubeInfo +typedef struct _QCubeInfo { - NodeInfo + QNodeInfo *root; size_t @@ -276,10 +276,10 @@ typedef struct _CubeInfo free_nodes, color_number; - NodeInfo + QNodeInfo *next_node; - Nodes + QNodes *node_queue; MemoryInfo @@ -313,30 +313,30 @@ typedef struct _CubeInfo MagickSizeType span; -} CubeInfo; +} QCubeInfo; /* Method prototypes. */ -static CubeInfo - *GetCubeInfo(const QuantizeInfo *,const size_t,const size_t); +static QCubeInfo + *GetQCubeInfo(const QuantizeInfo *,const size_t,const size_t); -static NodeInfo - *GetNodeInfo(CubeInfo *,const size_t,const size_t,NodeInfo *); +static QNodeInfo + *GetQNodeInfo(QCubeInfo *,const size_t,const size_t,QNodeInfo *); static MagickBooleanType - AssignImageColors(Image *,CubeInfo *), - ClassifyImageColors(CubeInfo *,const Image *,ExceptionInfo *), - DitherImage(Image *,CubeInfo *), + AssignImageColors(Image *,QCubeInfo *), + ClassifyImageColors(QCubeInfo *,const Image *,ExceptionInfo *), + DitherImage(Image *,QCubeInfo *), SetGrayscaleImage(Image *); static void - ClosestColor(const Image *,CubeInfo *,const NodeInfo *), - DefineImageColormap(Image *,CubeInfo *,NodeInfo *), - DestroyCubeInfo(CubeInfo *), - PruneLevel(CubeInfo *,const NodeInfo *), - PruneToCubeDepth(CubeInfo *,const NodeInfo *), - ReduceImageColors(const Image *,CubeInfo *); + ClosestColor(const Image *,QCubeInfo *,const QNodeInfo *), + DefineImageColormap(Image *,QCubeInfo *,QNodeInfo *), + DestroyQCubeInfo(QCubeInfo *), + PruneLevel(QCubeInfo *,const QNodeInfo *), + PruneToCubeDepth(QCubeInfo *,const QNodeInfo *), + ReduceImageColors(const Image *,QCubeInfo *); /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -414,7 +414,7 @@ MagickExport QuantizeInfo *AcquireQuantizeInfo(const ImageInfo *image_info) % % The format of the AssignImageColors() method is: % -% MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info) +% MagickBooleanType AssignImageColors(Image *image,QCubeInfo *cube_info) % % A description of each parameter follows. % @@ -424,7 +424,7 @@ MagickExport QuantizeInfo *AcquireQuantizeInfo(const ImageInfo *image_info) % */ -static inline void AssociateAlphaPixel(const CubeInfo *cube_info, +static inline void AssociateAlphaPixel(const QCubeInfo *cube_info, const PixelPacket *pixel,DoublePixelPacket *alpha_pixel) { MagickRealType @@ -448,7 +448,7 @@ static inline void AssociateAlphaPixel(const CubeInfo *cube_info, alpha_pixel->opacity=(MagickRealType) GetPixelOpacity(pixel); } -static inline size_t ColorToNodeId(const CubeInfo *cube_info, +static inline size_t ColorToQNodeId(const QCubeInfo *cube_info, const DoublePixelPacket *pixel,size_t index) { size_t @@ -477,19 +477,19 @@ static inline MagickBooleanType IsSameColor(const Image *image, return(MagickTrue); } -static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info) +static MagickBooleanType AssignImageColors(Image *image,QCubeInfo *cube_info) { #define AssignImageTag "Assign/Image" ColorspaceType colorspace; - ssize_t - y; - size_t number_colors; + ssize_t + y; + /* Allocate image colormap. */ @@ -530,15 +530,15 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info) #endif for (y=0; y < (ssize_t) image->rows; y++) { - CubeInfo - cube; - IndexPacket *magick_restrict indexes; PixelPacket *magick_restrict q; + QCubeInfo + cube; + ssize_t x; @@ -561,7 +561,7 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info) DoublePixelPacket pixel; - const NodeInfo + const QNodeInfo *node_info; ssize_t @@ -581,8 +581,8 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info) node_info=cube.root; for (index=MaxTreeDepth-1; (ssize_t) index > 0; index--) { - id=ColorToNodeId(&cube,&pixel,index); - if (node_info->child[id] == (NodeInfo *) NULL) + id=ColorToQNodeId(&cube,&pixel,index); + if (node_info->child[id] == (QNodeInfo *) NULL) break; node_info=node_info->child[id]; } @@ -706,7 +706,7 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info) % % The format of the ClassifyImageColors() method is: % -% MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, +% MagickBooleanType ClassifyImageColors(QCubeInfo *cube_info, % const Image *image,ExceptionInfo *exception) % % A description of each parameter follows. @@ -717,7 +717,7 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info) % */ -static inline void SetAssociatedAlpha(const Image *image,CubeInfo *cube_info) +static inline void SetAssociatedAlpha(const Image *image,QCubeInfo *cube_info) { MagickBooleanType associate_alpha; @@ -730,7 +730,7 @@ static inline void SetAssociatedAlpha(const Image *image,CubeInfo *cube_info) cube_info->associate_alpha=associate_alpha; } -static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, +static MagickBooleanType ClassifyImageColors(QCubeInfo *cube_info, const Image *image,ExceptionInfo *exception) { #define ClassifyImageTag "Classify/Image" @@ -750,7 +750,7 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, MagickRealType bisect; - NodeInfo + QNodeInfo *node_info; size_t @@ -794,7 +794,7 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); if (p == (const PixelPacket *) NULL) break; - if (cube_info->nodes > MaxNodes) + if (cube_info->nodes > MaxQNodes) { /* Prune one level if the color tree is too large. @@ -821,18 +821,18 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, distance; bisect*=0.5; - id=ColorToNodeId(cube_info,&pixel,index); + id=ColorToQNodeId(cube_info,&pixel,index); mid.red+=(id & 1) != 0 ? bisect : -bisect; mid.green+=(id & 2) != 0 ? bisect : -bisect; mid.blue+=(id & 4) != 0 ? bisect : -bisect; mid.opacity+=(id & 8) != 0 ? bisect : -bisect; - if (node_info->child[id] == (NodeInfo *) NULL) + if (node_info->child[id] == (QNodeInfo *) NULL) { /* Set colors of new node to contain pixel. */ - node_info->child[id]=GetNodeInfo(cube_info,id,level,node_info); - if (node_info->child[id] == (NodeInfo *) NULL) + node_info->child[id]=GetQNodeInfo(cube_info,id,level,node_info); + if (node_info->child[id] == (QNodeInfo *) NULL) { (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'", @@ -875,7 +875,7 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, else node_info->total_color.opacity+=count*QuantumScale*(MagickRealType) ClampPixel(OpaqueOpacity); - p+=count; + p+=(ptrdiff_t) count; } if (cube_info->colors > cube_info->maximum_colors) { @@ -898,7 +898,7 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); if (p == (const PixelPacket *) NULL) break; - if (cube_info->nodes > MaxNodes) + if (cube_info->nodes > MaxQNodes) { /* Prune one level if the color tree is too large. @@ -925,18 +925,18 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, distance; bisect*=0.5; - id=ColorToNodeId(cube_info,&pixel,index); + id=ColorToQNodeId(cube_info,&pixel,index); mid.red+=(id & 1) != 0 ? bisect : -bisect; mid.green+=(id & 2) != 0 ? bisect : -bisect; mid.blue+=(id & 4) != 0 ? bisect : -bisect; mid.opacity+=(id & 8) != 0 ? bisect : -bisect; - if (node_info->child[id] == (NodeInfo *) NULL) + if (node_info->child[id] == (QNodeInfo *) NULL) { /* Set colors of new node to contain pixel. */ - node_info->child[id]=GetNodeInfo(cube_info,id,level,node_info); - if (node_info->child[id] == (NodeInfo *) NULL) + node_info->child[id]=GetQNodeInfo(cube_info,id,level,node_info); + if (node_info->child[id] == (QNodeInfo *) NULL) { (void) ThrowMagickException(exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","%s", @@ -979,7 +979,7 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, else node_info->total_color.opacity+=count*QuantumScale*(MagickRealType) ClampPixel(OpaqueOpacity); - p+=count; + p+=(ptrdiff_t) count; } proceed=SetImageProgress(image,ClassifyImageTag,(MagickOffsetType) y, image->rows); @@ -1056,8 +1056,8 @@ MagickExport QuantizeInfo *CloneQuantizeInfo(const QuantizeInfo *quantize_info) % % The format of the ClosestColor method is: % -% void ClosestColor(const Image *image,CubeInfo *cube_info, -% const NodeInfo *node_info) +% void ClosestColor(const Image *image,QCubeInfo *cube_info, +% const QNodeInfo *node_info) % % A description of each parameter follows. % @@ -1065,25 +1065,25 @@ MagickExport QuantizeInfo *CloneQuantizeInfo(const QuantizeInfo *quantize_info) % % o cube_info: A pointer to the Cube structure. % -% o node_info: the address of a structure of type NodeInfo which points to a +% o node_info: the address of a structure of type QNodeInfo which points to a % node in the color cube tree that is to be pruned. % */ -static void ClosestColor(const Image *image,CubeInfo *cube_info, - const NodeInfo *node_info) +static void ClosestColor(const Image *image,QCubeInfo *cube_info, + const QNodeInfo *node_info) { - ssize_t - i; - size_t number_children; + ssize_t + i; + /* Traverse any children. */ number_children=cube_info->associate_alpha == MagickFalse ? 8UL : 16UL; for (i=0; i < (ssize_t) number_children; i++) - if (node_info->child[i] != (NodeInfo *) NULL) + if (node_info->child[i] != (QNodeInfo *) NULL) ClosestColor(image,cube_info,node_info->child[i]); if (node_info->number_unique != 0) { @@ -1196,8 +1196,8 @@ MagickExport MagickBooleanType CompressImageColormap(Image *image) % % The format of the DefineImageColormap method is: % -% void DefineImageColormap(Image *image,CubeInfo *cube_info, -% NodeInfo *node_info) +% void DefineImageColormap(Image *image,QCubeInfo *cube_info, +% QNodeInfo *node_info) % % A description of each parameter follows. % @@ -1205,12 +1205,12 @@ MagickExport MagickBooleanType CompressImageColormap(Image *image) % % o cube_info: A pointer to the Cube structure. % -% o node_info: the address of a structure of type NodeInfo which points to a +% o node_info: the address of a structure of type QNodeInfo which points to a % node in the color cube tree that is to be pruned. % */ -static void DefineImageColormap(Image *image,CubeInfo *cube_info, - NodeInfo *node_info) +static void DefineImageColormap(Image *image,QCubeInfo *cube_info, + QNodeInfo *node_info) { size_t number_children; @@ -1223,7 +1223,7 @@ static void DefineImageColormap(Image *image,CubeInfo *cube_info, */ number_children=cube_info->associate_alpha == MagickFalse ? 8UL : 16UL; for (i=0; i < (ssize_t) number_children; i++) - if (node_info->child[i] != (NodeInfo *) NULL) + if (node_info->child[i] != (QNodeInfo *) NULL) DefineImageColormap(image,cube_info,node_info->child[i]); if (node_info->number_unique != 0) { @@ -1296,26 +1296,26 @@ static void DefineImageColormap(Image *image,CubeInfo *cube_info, % % % % % % -+ D e s t r o y C u b e I n f o % ++ D e s t r o y Q C u b e I n f o % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% DestroyCubeInfo() deallocates memory associated with an image. +% DestroyQCubeInfo() deallocates memory associated with an image. % -% The format of the DestroyCubeInfo method is: +% The format of the DestroyQCubeInfo method is: % -% DestroyCubeInfo(CubeInfo *cube_info) +% DestroyQCubeInfo(QCubeInfo *cube_info) % % A description of each parameter follows: % -% o cube_info: the address of a structure of type CubeInfo. +% o cube_info: the address of a structure of type QCubeInfo. % */ -static void DestroyCubeInfo(CubeInfo *cube_info) +static void DestroyQCubeInfo(QCubeInfo *cube_info) { - Nodes + QNodes *nodes; /* @@ -1324,16 +1324,16 @@ static void DestroyCubeInfo(CubeInfo *cube_info) do { nodes=cube_info->node_queue->next; - cube_info->node_queue->nodes=(NodeInfo *) RelinquishMagickMemory( + cube_info->node_queue->nodes=(QNodeInfo *) RelinquishMagickMemory( cube_info->node_queue->nodes); - cube_info->node_queue=(Nodes *) RelinquishMagickMemory( + cube_info->node_queue=(QNodes *) RelinquishMagickMemory( cube_info->node_queue); cube_info->node_queue=nodes; - } while (cube_info->node_queue != (Nodes *) NULL); + } while (cube_info->node_queue != (QNodes *) NULL); if (cube_info->memory_info != (MemoryInfo *) NULL) cube_info->memory_info=RelinquishVirtualMemory(cube_info->memory_info); cube_info->quantize_info=DestroyQuantizeInfo(cube_info->quantize_info); - cube_info=(CubeInfo *) RelinquishMagickMemory(cube_info); + cube_info=(QCubeInfo *) RelinquishMagickMemory(cube_info); } /* @@ -1388,7 +1388,7 @@ MagickExport QuantizeInfo *DestroyQuantizeInfo(QuantizeInfo *quantize_info) % % The format of the DitherImage method is: % -% MagickBooleanType DitherImage(Image *image,CubeInfo *cube_info) +% MagickBooleanType DitherImage(Image *image,QCubeInfo *cube_info) % % A description of each parameter follows. % @@ -1438,7 +1438,7 @@ static DoublePixelPacket **AcquirePixelTLS(const size_t count) return(pixels); } -static inline ssize_t CacheOffset(CubeInfo *cube_info, +static inline ssize_t CacheOffset(QCubeInfo *cube_info, const DoublePixelPacket *pixel) { #define RedShift(pixel) (((pixel) >> CacheShift) << (0*(8-CacheShift))) @@ -1457,7 +1457,7 @@ static inline ssize_t CacheOffset(CubeInfo *cube_info, return(offset); } -static MagickBooleanType FloydSteinbergDither(Image *image,CubeInfo *cube_info) +static MagickBooleanType FloydSteinbergDither(Image *image,QCubeInfo *cube_info) { #define DitherImageTag "Dither/Image" @@ -1490,9 +1490,6 @@ static MagickBooleanType FloydSteinbergDither(Image *image,CubeInfo *cube_info) const int id = GetOpenMPThreadId(); - CubeInfo - cube; - DoublePixelPacket *current, *previous; @@ -1503,6 +1500,9 @@ static MagickBooleanType FloydSteinbergDither(Image *image,CubeInfo *cube_info) PixelPacket *magick_restrict q; + QCubeInfo + cube; + size_t index; @@ -1578,7 +1578,7 @@ static MagickBooleanType FloydSteinbergDither(Image *image,CubeInfo *cube_info) i=CacheOffset(&cube,&pixel); if (cube.cache[i] < 0) { - NodeInfo + QNodeInfo *node_info; size_t @@ -1590,8 +1590,8 @@ static MagickBooleanType FloydSteinbergDither(Image *image,CubeInfo *cube_info) node_info=cube.root; for (index=MaxTreeDepth-1; (ssize_t) index > 0; index--) { - id=ColorToNodeId(&cube,&pixel,index); - if (node_info->child[id] == (NodeInfo *) NULL) + id=ColorToQNodeId(&cube,&pixel,index); + if (node_info->child[id] == (QNodeInfo *) NULL) break; node_info=node_info->child[id]; } @@ -1645,10 +1645,10 @@ static MagickBooleanType FloydSteinbergDither(Image *image,CubeInfo *cube_info) } static MagickBooleanType - RiemersmaDither(Image *,CacheView *,CubeInfo *,const unsigned int); + RiemersmaDither(Image *,CacheView *,QCubeInfo *,const unsigned int); static MagickBooleanType Riemersma(Image *image,CacheView *image_view, - CubeInfo *cube_info,const size_t level,const unsigned int direction) + QCubeInfo *cube_info,const size_t level,const unsigned int direction) { MagickStatusType status; @@ -1774,13 +1774,10 @@ static MagickBooleanType Riemersma(Image *image,CacheView *image_view, } static MagickBooleanType RiemersmaDither(Image *image,CacheView *image_view, - CubeInfo *cube_info,const unsigned int direction) + QCubeInfo *cube_info,const unsigned int direction) { #define DitherImageTag "Dither/Image" - CubeInfo - *p; - DoublePixelPacket color, pixel; @@ -1788,6 +1785,9 @@ static MagickBooleanType RiemersmaDither(Image *image,CacheView *image_view, MagickBooleanType proceed; + QCubeInfo + *p; + size_t index; @@ -1836,7 +1836,7 @@ static MagickBooleanType RiemersmaDither(Image *image,CacheView *image_view, i=CacheOffset(cube_info,&pixel); if (p->cache[i] < 0) { - NodeInfo + QNodeInfo *node_info; size_t @@ -1848,8 +1848,8 @@ static MagickBooleanType RiemersmaDither(Image *image,CacheView *image_view, node_info=p->root; for (index=MaxTreeDepth-1; (ssize_t) index > 0; index--) { - id=ColorToNodeId(cube_info,&pixel,index); - if (node_info->child[id] == (NodeInfo *) NULL) + id=ColorToQNodeId(cube_info,&pixel,index); + if (node_info->child[id] == (QNodeInfo *) NULL) break; node_info=node_info->child[id]; } @@ -1902,7 +1902,7 @@ static MagickBooleanType RiemersmaDither(Image *image,CacheView *image_view, return(MagickTrue); } -static MagickBooleanType DitherImage(Image *image,CubeInfo *cube_info) +static MagickBooleanType DitherImage(Image *image,QCubeInfo *cube_info) { CacheView *image_view; @@ -1949,17 +1949,17 @@ static MagickBooleanType DitherImage(Image *image,CubeInfo *cube_info) % % % % % % -+ G e t C u b e I n f o % ++ G e t Q C u b e I n f o % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% GetCubeInfo() initialize the Cube data structure. +% GetQCubeInfo() initialize the Cube data structure. % -% The format of the GetCubeInfo method is: +% The format of the GetQCubeInfo method is: % -% CubeInfo GetCubeInfo(const QuantizeInfo *quantize_info, +% QCubeInfo GetQCubeInfo(const QuantizeInfo *quantize_info, % const size_t depth,const size_t maximum_colors) % % A description of each parameter follows. @@ -1978,15 +1978,15 @@ static MagickBooleanType DitherImage(Image *image,CubeInfo *cube_info) % o maximum_colors: maximum colors. % */ -static CubeInfo *GetCubeInfo(const QuantizeInfo *quantize_info, +static QCubeInfo *GetQCubeInfo(const QuantizeInfo *quantize_info, const size_t depth,const size_t maximum_colors) { - CubeInfo - *cube_info; - MagickRealType weight; + QCubeInfo + *cube_info; + size_t length; @@ -1996,9 +1996,9 @@ static CubeInfo *GetCubeInfo(const QuantizeInfo *quantize_info, /* Initialize tree to describe color cube_info. */ - cube_info=(CubeInfo *) AcquireMagickMemory(sizeof(*cube_info)); - if (cube_info == (CubeInfo *) NULL) - return((CubeInfo *) NULL); + cube_info=(QCubeInfo *) AcquireMagickMemory(sizeof(*cube_info)); + if (cube_info == (QCubeInfo *) NULL) + return((QCubeInfo *) NULL); (void) memset(cube_info,0,sizeof(*cube_info)); cube_info->depth=depth; if (cube_info->depth > MaxTreeDepth) @@ -2009,9 +2009,9 @@ static CubeInfo *GetCubeInfo(const QuantizeInfo *quantize_info, /* Initialize root node. */ - cube_info->root=GetNodeInfo(cube_info,0,0,(NodeInfo *) NULL); - if (cube_info->root == (NodeInfo *) NULL) - return((CubeInfo *) NULL); + cube_info->root=GetQNodeInfo(cube_info,0,0,(QNodeInfo *) NULL); + if (cube_info->root == (QNodeInfo *) NULL) + return((QCubeInfo *) NULL); cube_info->root->parent=cube_info->root; cube_info->quantize_info=CloneQuantizeInfo(quantize_info); if (cube_info->quantize_info->dither == MagickFalse) @@ -2022,7 +2022,7 @@ static CubeInfo *GetCubeInfo(const QuantizeInfo *quantize_info, length=(size_t) (1UL << (4*(8-CacheShift))); cube_info->memory_info=AcquireVirtualMemory(length,sizeof(*cube_info->cache)); if (cube_info->memory_info == (MemoryInfo *) NULL) - return((CubeInfo *) NULL); + return((QCubeInfo *) NULL); cube_info->cache=(ssize_t *) GetVirtualMemoryBlob(cube_info->memory_info); /* Initialize color cache. @@ -2052,48 +2052,48 @@ static CubeInfo *GetCubeInfo(const QuantizeInfo *quantize_info, % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% GetNodeInfo() allocates memory for a new node in the color cube tree and +% GetQNodeInfo() allocates memory for a new node in the color cube tree and % presets all fields to zero. % -% The format of the GetNodeInfo method is: +% The format of the GetQNodeInfo method is: % -% NodeInfo *GetNodeInfo(CubeInfo *cube_info,const size_t id, -% const size_t level,NodeInfo *parent) +% QNodeInfo *GetQNodeInfo(QCubeInfo *cube_info,const size_t id, +% const size_t level,QNodeInfo *parent) % % A description of each parameter follows. % -% o node: The GetNodeInfo method returns a pointer to a queue of nodes. +% o node: The GetQNodeInfo method returns a pointer to a queue of nodes. % % o id: Specifies the child number of the node. % % o level: Specifies the level in the storage_class the node resides. % */ -static NodeInfo *GetNodeInfo(CubeInfo *cube_info,const size_t id, - const size_t level,NodeInfo *parent) +static QNodeInfo *GetQNodeInfo(QCubeInfo *cube_info,const size_t id, + const size_t level,QNodeInfo *parent) { - NodeInfo + QNodeInfo *node_info; if (cube_info->free_nodes == 0) { - Nodes + QNodes *nodes; /* Allocate a new queue of nodes. */ - nodes=(Nodes *) AcquireMagickMemory(sizeof(*nodes)); - if (nodes == (Nodes *) NULL) - return((NodeInfo *) NULL); - nodes->nodes=(NodeInfo *) AcquireQuantumMemory(NodesInAList, + nodes=(QNodes *) AcquireMagickMemory(sizeof(*nodes)); + if (nodes == (QNodes *) NULL) + return((QNodeInfo *) NULL); + nodes->nodes=(QNodeInfo *) AcquireQuantumMemory(QNodesInAList, sizeof(*nodes->nodes)); - if (nodes->nodes == (NodeInfo *) NULL) - return((NodeInfo *) NULL); + if (nodes->nodes == (QNodeInfo *) NULL) + return((QNodeInfo *) NULL); nodes->next=cube_info->node_queue; cube_info->node_queue=nodes; cube_info->next_node=nodes->nodes; - cube_info->free_nodes=NodesInAList; + cube_info->free_nodes=QNodesInAList; } cube_info->nodes++; cube_info->free_nodes--; @@ -2325,13 +2325,25 @@ MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels, return(status); } +static inline Quantum PosterizePixel(const Quantum pixel,const size_t levels) +{ + double + step_size; + + size_t + level_index; + + if (levels < 2) + return(pixel); + step_size=1.0/(levels-1.0); + level_index=(step_size == 0.0) ? 0 : floor((double) pixel/step_size); + return(ClampToQuantum(level_index*step_size)); +} + MagickExport MagickBooleanType PosterizeImageChannel(Image *image, const ChannelType channel,const size_t levels,const MagickBooleanType dither) { #define PosterizeImageTag "Posterize/Image" -#define PosterizePixel(pixel) ClampToQuantum((MagickRealType) QuantumRange*( \ - MagickRound(QuantumScale*(MagickRealType) pixel*(levels-1)))/ \ - MagickMax((ssize_t) levels-1,1)) CacheView *image_view; @@ -2368,16 +2380,16 @@ MagickExport MagickBooleanType PosterizeImageChannel(Image *image, */ if ((channel & RedChannel) != 0) image->colormap[i].red=(MagickRealType) - PosterizePixel(image->colormap[i].red); + PosterizePixel(image->colormap[i].red,levels); if ((channel & GreenChannel) != 0) image->colormap[i].green=(MagickRealType) - PosterizePixel(image->colormap[i].green); + PosterizePixel(image->colormap[i].green,levels); if ((channel & BlueChannel) != 0) image->colormap[i].blue=(MagickRealType) - PosterizePixel(image->colormap[i].blue); + PosterizePixel(image->colormap[i].blue,levels); if ((channel & OpacityChannel) != 0) image->colormap[i].opacity=(MagickRealType) - PosterizePixel(image->colormap[i].opacity); + PosterizePixel(image->colormap[i].opacity,levels); } /* Posterize image. @@ -2413,17 +2425,18 @@ MagickExport MagickBooleanType PosterizeImageChannel(Image *image, for (x=0; x < (ssize_t) image->columns; x++) { if ((channel & RedChannel) != 0) - SetPixelRed(q,PosterizePixel(GetPixelRed(q))); + SetPixelRed(q,PosterizePixel(GetPixelRed(q),levels)); if ((channel & GreenChannel) != 0) - SetPixelGreen(q,PosterizePixel(GetPixelGreen(q))); + SetPixelGreen(q,PosterizePixel(GetPixelGreen(q),levels)); if ((channel & BlueChannel) != 0) - SetPixelBlue(q,PosterizePixel(GetPixelBlue(q))); + SetPixelBlue(q,PosterizePixel(GetPixelBlue(q),levels)); if (((channel & OpacityChannel) != 0) && (image->matte != MagickFalse)) - SetPixelOpacity(q,PosterizePixel(GetPixelOpacity(q))); + SetPixelOpacity(q,PosterizePixel(GetPixelOpacity(q),levels)); if (((channel & IndexChannel) != 0) && (image->colorspace == CMYKColorspace)) - SetPixelIndex(indexes+x,PosterizePixel(GetPixelIndex(indexes+x))); + SetPixelIndex(indexes+x,PosterizePixel(GetPixelIndex(indexes+x), + levels)); q++; } if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse) @@ -2445,9 +2458,8 @@ MagickExport MagickBooleanType PosterizeImageChannel(Image *image, image_view=DestroyCacheView(image_view); quantize_info=AcquireQuantizeInfo((ImageInfo *) NULL); quantize_info->number_colors=(size_t) MagickMin((ssize_t) levels*levels* - levels,MaxColormapSize+1); + levels,MaxColormapSize); quantize_info->dither=dither; - quantize_info->tree_depth=MaxTreeDepth; status=QuantizeImage(quantize_info,image); quantize_info=DestroyQuantizeInfo(quantize_info); return(status); @@ -2469,7 +2481,7 @@ MagickExport MagickBooleanType PosterizeImageChannel(Image *image, % % The format of the PruneSubtree method is: % -% PruneChild(CubeInfo *cube_info,const NodeInfo *node_info) +% PruneChild(QCubeInfo *cube_info,const QNodeInfo *node_info) % % A description of each parameter follows. % @@ -2478,9 +2490,9 @@ MagickExport MagickBooleanType PosterizeImageChannel(Image *image, % o node_info: pointer to node in color cube tree that is to be pruned. % */ -static void PruneChild(CubeInfo *cube_info,const NodeInfo *node_info) +static void PruneChild(QCubeInfo *cube_info,const QNodeInfo *node_info) { - NodeInfo + QNodeInfo *parent; size_t @@ -2494,7 +2506,7 @@ static void PruneChild(CubeInfo *cube_info,const NodeInfo *node_info) */ number_children=cube_info->associate_alpha == MagickFalse ? 8UL : 16UL; for (i=0; i < (ssize_t) number_children; i++) - if (node_info->child[i] != (NodeInfo *) NULL) + if (node_info->child[i] != (QNodeInfo *) NULL) PruneChild(cube_info,node_info->child[i]); if (cube_info->nodes > cube_info->maximum_colors) { @@ -2507,7 +2519,7 @@ static void PruneChild(CubeInfo *cube_info,const NodeInfo *node_info) parent->total_color.green+=node_info->total_color.green; parent->total_color.blue+=node_info->total_color.blue; parent->total_color.opacity+=node_info->total_color.opacity; - parent->child[node_info->id]=(NodeInfo *) NULL; + parent->child[node_info->id]=(QNodeInfo *) NULL; cube_info->nodes--; } } @@ -2528,7 +2540,7 @@ static void PruneChild(CubeInfo *cube_info,const NodeInfo *node_info) % % The format of the PruneLevel method is: % -% PruneLevel(CubeInfo *cube_info,const NodeInfo *node_info) +% PruneLevel(QCubeInfo *cube_info,const QNodeInfo *node_info) % % A description of each parameter follows. % @@ -2537,7 +2549,7 @@ static void PruneChild(CubeInfo *cube_info,const NodeInfo *node_info) % o node_info: pointer to node in color cube tree that is to be pruned. % */ -static void PruneLevel(CubeInfo *cube_info,const NodeInfo *node_info) +static void PruneLevel(QCubeInfo *cube_info,const QNodeInfo *node_info) { size_t number_children; @@ -2550,7 +2562,7 @@ static void PruneLevel(CubeInfo *cube_info,const NodeInfo *node_info) */ number_children=cube_info->associate_alpha == MagickFalse ? 8UL : 16UL; for (i=0; i < (ssize_t) number_children; i++) - if (node_info->child[i] != (NodeInfo *) NULL) + if (node_info->child[i] != (QNodeInfo *) NULL) PruneLevel(cube_info,node_info->child[i]); if (node_info->level == cube_info->depth) PruneChild(cube_info,node_info); @@ -2573,7 +2585,7 @@ static void PruneLevel(CubeInfo *cube_info,const NodeInfo *node_info) % % The format of the PruneToCubeDepth method is: % -% PruneToCubeDepth(CubeInfo *cube_info,const NodeInfo *node_info) +% PruneToCubeDepth(QCubeInfo *cube_info,const QNodeInfo *node_info) % % A description of each parameter follows. % @@ -2582,7 +2594,7 @@ static void PruneLevel(CubeInfo *cube_info,const NodeInfo *node_info) % o node_info: pointer to node in color cube tree that is to be pruned. % */ -static void PruneToCubeDepth(CubeInfo *cube_info,const NodeInfo *node_info) +static void PruneToCubeDepth(QCubeInfo *cube_info,const QNodeInfo *node_info) { size_t number_children; @@ -2595,7 +2607,7 @@ static void PruneToCubeDepth(CubeInfo *cube_info,const NodeInfo *node_info) */ number_children=cube_info->associate_alpha == MagickFalse ? 8UL : 16UL; for (i=0; i < (ssize_t) number_children; i++) - if (node_info->child[i] != (NodeInfo *) NULL) + if (node_info->child[i] != (QNodeInfo *) NULL) PruneToCubeDepth(cube_info,node_info->child[i]); if (node_info->level > cube_info->depth) PruneChild(cube_info,node_info); @@ -2632,12 +2644,12 @@ static void PruneToCubeDepth(CubeInfo *cube_info,const NodeInfo *node_info) MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info, Image *image) { - CubeInfo - *cube_info; - MagickBooleanType status; + QCubeInfo + *cube_info; + size_t depth, maximum_colors; @@ -2680,8 +2692,8 @@ MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info, /* Initialize color cube. */ - cube_info=GetCubeInfo(quantize_info,depth,maximum_colors); - if (cube_info == (CubeInfo *) NULL) + cube_info=GetQCubeInfo(quantize_info,depth,maximum_colors); + if (cube_info == (QCubeInfo *) NULL) ThrowBinaryImageException(ResourceLimitError,"MemoryAllocationFailed", image->filename); status=ClassifyImageColors(cube_info,image,&image->exception); @@ -2694,7 +2706,7 @@ MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info, ReduceImageColors(image,cube_info); status=AssignImageColors(image,cube_info); } - DestroyCubeInfo(cube_info); + DestroyQCubeInfo(cube_info); return(status); } @@ -2729,9 +2741,6 @@ MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info, MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info, Image *images) { - CubeInfo - *cube_info; - Image *image; @@ -2742,6 +2751,9 @@ MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info, MagickProgressMonitor progress_monitor; + QCubeInfo + *cube_info; + size_t depth, maximum_colors, @@ -2788,8 +2800,8 @@ MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info, /* Initialize color cube. */ - cube_info=GetCubeInfo(quantize_info,depth,maximum_colors); - if (cube_info == (CubeInfo *) NULL) + cube_info=GetQCubeInfo(quantize_info,depth,maximum_colors); + if (cube_info == (QCubeInfo *) NULL) { (void) ThrowMagickException(&images->exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'",images->filename); @@ -2834,7 +2846,7 @@ MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info, image=GetNextImageInList(image); } } - DestroyCubeInfo(cube_info); + DestroyQCubeInfo(cube_info); return(status); } @@ -2856,8 +2868,8 @@ MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info, % % The format of the QuantizeErrorFlatten method is: % -% size_t QuantizeErrorFlatten(const CubeInfo *cube_info, -% const NodeInfo *node_info,const ssize_t offset, +% size_t QuantizeErrorFlatten(const QCubeInfo *cube_info, +% const QNodeInfo *node_info,const ssize_t offset, % MagickRealType *quantize_error) % % A description of each parameter follows. @@ -2871,8 +2883,8 @@ MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info, % o quantize_error: the quantization error vector. % */ -static size_t QuantizeErrorFlatten(const CubeInfo *cube_info, - const NodeInfo *node_info,const ssize_t offset, +static size_t QuantizeErrorFlatten(const QCubeInfo *cube_info, + const QNodeInfo *node_info,const ssize_t offset, MagickRealType *quantize_error) { size_t @@ -2888,7 +2900,7 @@ static size_t QuantizeErrorFlatten(const CubeInfo *cube_info, n=1; number_children=cube_info->associate_alpha == MagickFalse ? 8UL : 16UL; for (i=0; i < (ssize_t) number_children ; i++) - if (node_info->child[i] != (NodeInfo *) NULL) + if (node_info->child[i] != (QNodeInfo *) NULL) n+=QuantizeErrorFlatten(cube_info,node_info->child[i],offset+n, quantize_error); return(n); @@ -2910,7 +2922,7 @@ static size_t QuantizeErrorFlatten(const CubeInfo *cube_info, % % The format of the Reduce method is: % -% Reduce(CubeInfo *cube_info,const NodeInfo *node_info) +% Reduce(QCubeInfo *cube_info,const QNodeInfo *node_info) % % A description of each parameter follows. % @@ -2919,7 +2931,7 @@ static size_t QuantizeErrorFlatten(const CubeInfo *cube_info, % o node_info: pointer to node in color cube tree that is to be pruned. % */ -static void Reduce(CubeInfo *cube_info,const NodeInfo *node_info) +static void Reduce(QCubeInfo *cube_info,const QNodeInfo *node_info) { size_t number_children; @@ -2932,7 +2944,7 @@ static void Reduce(CubeInfo *cube_info,const NodeInfo *node_info) */ number_children=cube_info->associate_alpha == MagickFalse ? 8UL : 16UL; for (i=0; i < (ssize_t) number_children; i++) - if (node_info->child[i] != (NodeInfo *) NULL) + if (node_info->child[i] != (QNodeInfo *) NULL) Reduce(cube_info,node_info->child[i]); if (node_info->quantize_error <= cube_info->pruning_threshold) PruneChild(cube_info,node_info); @@ -2993,7 +3005,7 @@ static void Reduce(CubeInfo *cube_info,const NodeInfo *node_info) % % The format of the ReduceImageColors method is: % -% ReduceImageColors(const Image *image,CubeInfo *cube_info) +% ReduceImageColors(const Image *image,QCubeInfo *cube_info) % % A description of each parameter follows. % @@ -3018,7 +3030,7 @@ static int MagickRealTypeCompare(const void *error_p,const void *error_q) return(-1); } -static void ReduceImageColors(const Image *image,CubeInfo *cube_info) +static void ReduceImageColors(const Image *image,QCubeInfo *cube_info) { #define ReduceImageTag "Reduce/Image" @@ -3100,12 +3112,12 @@ static void ReduceImageColors(const Image *image,CubeInfo *cube_info) MagickExport MagickBooleanType RemapImage(const QuantizeInfo *quantize_info, Image *image,const Image *remap_image) { - CubeInfo - *cube_info; - MagickBooleanType status; + QCubeInfo + *cube_info; + /* Initialize color cube. */ @@ -3115,9 +3127,8 @@ MagickExport MagickBooleanType RemapImage(const QuantizeInfo *quantize_info, (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); assert(remap_image != (Image *) NULL); assert(remap_image->signature == MagickCoreSignature); - cube_info=GetCubeInfo(quantize_info,MaxTreeDepth, - quantize_info->number_colors); - if (cube_info == (CubeInfo *) NULL) + cube_info=GetQCubeInfo(quantize_info,MaxTreeDepth,MaxColormapSize); + if (cube_info == (QCubeInfo *) NULL) ThrowBinaryImageException(ResourceLimitError,"MemoryAllocationFailed", image->filename); cube_info->quantize_info->colorspace=remap_image->colorspace; @@ -3128,9 +3139,11 @@ MagickExport MagickBooleanType RemapImage(const QuantizeInfo *quantize_info, Classify image colors from the reference image. */ cube_info->quantize_info->number_colors=cube_info->colors; + if (cube_info->colors > cube_info->maximum_colors) + ReduceImageColors(image,cube_info); status=AssignImageColors(image,cube_info); } - DestroyCubeInfo(cube_info); + DestroyQCubeInfo(cube_info); return(status); } @@ -3165,15 +3178,15 @@ MagickExport MagickBooleanType RemapImage(const QuantizeInfo *quantize_info, MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info, Image *images,const Image *remap_image) { - CubeInfo - *cube_info; - Image *image; MagickBooleanType status; + QCubeInfo + *cube_info; + assert(images != (Image *) NULL); assert(images->signature == MagickCoreSignature); if (IsEventLogging() != MagickFalse) @@ -3190,9 +3203,9 @@ MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info, /* Classify image colors from the reference image. */ - cube_info=GetCubeInfo(quantize_info,MaxTreeDepth, + cube_info=GetQCubeInfo(quantize_info,MaxTreeDepth, quantize_info->number_colors); - if (cube_info == (CubeInfo *) NULL) + if (cube_info == (QCubeInfo *) NULL) ThrowBinaryImageException(ResourceLimitError,"MemoryAllocationFailed", image->filename); status=ClassifyImageColors(cube_info,remap_image,&image->exception); @@ -3210,7 +3223,7 @@ MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info, break; } } - DestroyCubeInfo(cube_info); + DestroyQCubeInfo(cube_info); return(status); } diff --git a/magick/quantum-export.c b/magick/quantum-export.c index 75efcc9..062db72 100644 --- a/magick/quantum-export.c +++ b/magick/quantum-export.c @@ -84,8 +84,7 @@ % % ExportQuantumPixels() transfers one or more pixel components from the image % pixel cache to a user supplied buffer. The pixels are returned in network -% byte order. MagickTrue is returned if the pixels are successfully -% transferred, otherwise MagickFalse. +% byte order. It returns the number of exported pixels. % % The format of the ExportQuantumPixels method is: % @@ -261,7 +260,7 @@ static void ExportAlphaQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToChar((Quantum) (QuantumRange-GetPixelOpacity(p))); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -277,7 +276,7 @@ static void ExportAlphaQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelAlpha(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -286,7 +285,7 @@ static void ExportAlphaQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort((Quantum) (QuantumRange-GetPixelOpacity(p))); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -305,7 +304,7 @@ static void ExportAlphaQuantum(QuantumInfo *quantum_info, pixel=(float) (GetPixelAlpha(p)); q=PopQuantumFloatPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -314,7 +313,7 @@ static void ExportAlphaQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong((Quantum) (QuantumRange-GetPixelOpacity(p))); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -330,7 +329,7 @@ static void ExportAlphaQuantum(QuantumInfo *quantum_info, pixel=(double) (GetPixelAlpha(p)); q=PopQuantumDoublePixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -344,7 +343,7 @@ static void ExportAlphaQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info,ScaleQuantumToAny((Quantum) (GetPixelAlpha(p)),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -374,7 +373,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, q=PopCharPixel(ScaleQuantumToChar(GetPixelGreen(p)),q); q=PopCharPixel(ScaleQuantumToChar(GetPixelRed(p)),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -394,7 +393,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, ScaleQuantumToAny(GetPixelBlue(p),range) << 2); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -409,7 +408,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelBlue(p),range); q=PopQuantumLongPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -422,7 +421,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelBlue(p),range); q=PopQuantumPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -478,7 +477,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, } } q=PopShortPixel(quantum_info->endian,(unsigned short) (pixel << 4),q); - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } for (bit=0; bit < (ssize_t) (3*number_pixels % 2); bit++) { @@ -503,7 +502,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, } } q=PopShortPixel(quantum_info->endian,(unsigned short) (pixel << 4),q); - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } if (bit != 0) p++; @@ -520,7 +519,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelBlue(p),range); q=PopQuantumLongPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -533,7 +532,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelBlue(p),range); q=PopQuantumPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -553,7 +552,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelRed(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -566,7 +565,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelRed(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -583,7 +582,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, q=PopQuantumFloatPixel(quantum_info,(float) GetPixelGreen(p),q); q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlue(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -596,7 +595,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelRed(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -610,7 +609,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, q=PopQuantumDoublePixel(quantum_info,(double) GetPixelGreen(p),q); q=PopQuantumDoublePixel(quantum_info,(double) GetPixelBlue(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -628,7 +627,7 @@ static void ExportBGRQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny(GetPixelBlue(p),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -663,7 +662,7 @@ static void ExportBGRAQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToChar((Quantum) GetPixelAlpha(p)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -724,7 +723,7 @@ static void ExportBGRAQuantum(QuantumInfo *quantum_info, n++; } p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -742,7 +741,7 @@ static void ExportBGRAQuantum(QuantumInfo *quantum_info, range); q=PopQuantumLongPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -758,7 +757,7 @@ static void ExportBGRAQuantum(QuantumInfo *quantum_info, range); q=PopQuantumPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -780,7 +779,7 @@ static void ExportBGRAQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelAlpha(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -795,7 +794,7 @@ static void ExportBGRAQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort((Quantum) GetPixelAlpha(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -817,7 +816,7 @@ static void ExportBGRAQuantum(QuantumInfo *quantum_info, pixel=(float) GetPixelAlpha(p); q=PopQuantumFloatPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -832,7 +831,7 @@ static void ExportBGRAQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong((Quantum) GetPixelAlpha(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -851,7 +850,7 @@ static void ExportBGRAQuantum(QuantumInfo *quantum_info, pixel=(double) GetPixelAlpha(p); q=PopQuantumDoublePixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -871,7 +870,7 @@ static void ExportBGRAQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny((Quantum) GetPixelAlpha(p),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -906,7 +905,7 @@ static void ExportBGROQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToChar(GetPixelOpacity(p)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -967,7 +966,7 @@ static void ExportBGROQuantum(QuantumInfo *quantum_info, n++; } p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -984,7 +983,7 @@ static void ExportBGROQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelOpacity(p),range); q=PopQuantumLongPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -999,7 +998,7 @@ static void ExportBGROQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelOpacity(p),range); q=PopQuantumPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1021,7 +1020,7 @@ static void ExportBGROQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelOpacity(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1036,7 +1035,7 @@ static void ExportBGROQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelOpacity(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1058,7 +1057,7 @@ static void ExportBGROQuantum(QuantumInfo *quantum_info, pixel=(float) GetPixelOpacity(p); q=PopQuantumFloatPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1073,7 +1072,7 @@ static void ExportBGROQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelOpacity(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1092,7 +1091,7 @@ static void ExportBGROQuantum(QuantumInfo *quantum_info, pixel=(double) GetPixelOpacity(p); q=PopQuantumDoublePixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1112,7 +1111,7 @@ static void ExportBGROQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny(GetPixelOpacity(p),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1145,7 +1144,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToChar(GetPixelIndex(indexes+x)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1161,7 +1160,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelIndex(indexes+x)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1170,7 +1169,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelIndex(indexes+x)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1185,7 +1184,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info, { q=PopQuantumFloatPixel(quantum_info,(float) GetPixelIndex(indexes+x),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1194,7 +1193,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelIndex(indexes+x)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1207,7 +1206,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumDoublePixel(quantum_info,(double) GetPixelIndex(indexes+x), q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1224,7 +1223,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny((Quantum) GetPixelIndex(indexes+x),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1253,7 +1252,7 @@ static void ExportBlueQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToChar(GetPixelBlue(p)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1269,7 +1268,7 @@ static void ExportBlueQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelBlue(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1278,7 +1277,7 @@ static void ExportBlueQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelBlue(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1293,7 +1292,7 @@ static void ExportBlueQuantum(QuantumInfo *quantum_info, { q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlue(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1302,7 +1301,7 @@ static void ExportBlueQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelBlue(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1314,7 +1313,7 @@ static void ExportBlueQuantum(QuantumInfo *quantum_info, { q=PopQuantumDoublePixel(quantum_info,(double) GetPixelBlue(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1328,7 +1327,7 @@ static void ExportBlueQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny(GetPixelBlue(p),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1400,7 +1399,7 @@ static void ExportCbYCrYQuantum(QuantumInfo *quantum_info, (cbcr[0]) << 12 | (size_t) (cbcr[2]) << 2); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1447,7 +1446,7 @@ static void ExportCbYCrYQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny(cbcr[2],range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1489,7 +1488,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToChar(GetPixelIndex(indexes+x)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1511,7 +1510,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelIndex(indexes+x)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1526,7 +1525,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelIndex(indexes+x)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1544,7 +1543,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlue(p),q); q=PopQuantumFloatPixel(quantum_info,(float) GetPixelIndex(indexes+x),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1559,7 +1558,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelIndex(indexes+x)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1575,7 +1574,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumDoublePixel(quantum_info,(double) GetPixelIndex(indexes+x),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1595,7 +1594,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny(GetPixelIndex(indexes+x),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1639,7 +1638,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToChar((Quantum) GetPixelAlpha(p)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1663,7 +1662,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelAlpha(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1680,7 +1679,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToShort((Quantum) GetPixelAlpha(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1703,7 +1702,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, pixel=(float) (GetPixelAlpha(p)); q=PopQuantumFloatPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1720,7 +1719,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToLong((Quantum) GetPixelAlpha(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1741,7 +1740,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, pixel=(double) (GetPixelAlpha(p)); q=PopQuantumDoublePixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1763,7 +1762,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny((Quantum) GetPixelAlpha(p),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1807,7 +1806,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToChar(GetPixelOpacity(p)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1831,7 +1830,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelOpacity(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1848,7 +1847,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelOpacity(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1871,7 +1870,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, pixel=(float) (GetPixelOpacity(p)); q=PopQuantumFloatPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1888,7 +1887,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelOpacity(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1909,7 +1908,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, pixel=(double) (GetPixelOpacity(p)); q=PopQuantumDoublePixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1931,7 +1930,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny(GetPixelOpacity(p),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2037,7 +2036,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToChar(ClampToQuantum(GetPixelLuma(image,p))); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2056,8 +2055,8 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, ScaleQuantumToAny(ClampToQuantum(GetPixelLuma(image,p+1)),range) << 12 | ScaleQuantumToAny(ClampToQuantum(GetPixelLuma(image,p+0)),range) << 2); q=PopLongPixel(quantum_info->endian,pixel,q); - p+=3; - q+=quantum_info->pad; + p+=(ptrdiff_t) 3; + q+=(ptrdiff_t) quantum_info->pad; } if (x < (ssize_t) number_pixels) { @@ -2077,7 +2076,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(ClampToQuantum( GetPixelLuma(image,p)),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2094,7 +2093,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(ClampToQuantum(GetPixelLuma(image,p))); q=PopShortPixel(quantum_info->endian,(unsigned short) (pixel >> 4),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2103,7 +2102,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(ClampToQuantum( GetPixelLuma(image,p)),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2119,7 +2118,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelLuma(image,p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2128,7 +2127,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(ClampToQuantum(GetPixelLuma(image,p))); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2147,7 +2146,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, pixel=(float) GetPixelLuma(image,p); q=PopQuantumFloatPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2156,7 +2155,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(ClampToQuantum(GetPixelLuma(image,p))); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2172,7 +2171,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, pixel=(double) GetPixelLuma(image,p); q=PopQuantumDoublePixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2186,7 +2185,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny(ClampToQuantum(GetPixelLuma(image,p)),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2296,7 +2295,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToChar((Quantum) (QuantumRange-GetPixelOpacity(p))); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2314,7 +2313,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelAlpha(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2325,7 +2324,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToShort((Quantum) (QuantumRange-GetPixelOpacity(p))); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2346,7 +2345,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info, pixel=(float) (GetPixelAlpha(p)); q=PopQuantumFloatPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2357,7 +2356,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info, pixel=ScaleQuantumToLong((Quantum) (QuantumRange-GetPixelOpacity(p))); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2375,7 +2374,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info, pixel=(double) (GetPixelAlpha(p)); q=PopQuantumDoublePixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2391,7 +2390,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny((Quantum) (GetPixelAlpha(p)),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2420,7 +2419,7 @@ static void ExportGreenQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToChar(GetPixelGreen(p)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2436,7 +2435,7 @@ static void ExportGreenQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelGreen(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2445,7 +2444,7 @@ static void ExportGreenQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelGreen(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2460,7 +2459,7 @@ static void ExportGreenQuantum(QuantumInfo *quantum_info, { q=PopQuantumFloatPixel(quantum_info,(float) GetPixelGreen(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2469,7 +2468,7 @@ static void ExportGreenQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelGreen(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2481,7 +2480,7 @@ static void ExportGreenQuantum(QuantumInfo *quantum_info, { q=PopQuantumDoublePixel(quantum_info,(double) GetPixelGreen(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2495,7 +2494,7 @@ static void ExportGreenQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny(GetPixelGreen(p),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2584,7 +2583,7 @@ static void ExportIndexQuantum(const Image *image,QuantumInfo *quantum_info, for (x=0; x < (ssize_t) number_pixels; x++) { q=PopCharPixel((unsigned char) GetPixelIndex(indexes+x),q); - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2596,14 +2595,14 @@ static void ExportIndexQuantum(const Image *image,QuantumInfo *quantum_info, { q=PopShortPixel(quantum_info->endian,SinglePrecisionToHalf( QuantumScale*(MagickRealType) GetPixelIndex(indexes+x)),q); - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } for (x=0; x < (ssize_t) number_pixels; x++) { q=PopShortPixel(quantum_info->endian,(unsigned short) GetPixelIndex(indexes+x),q); - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2615,14 +2614,14 @@ static void ExportIndexQuantum(const Image *image,QuantumInfo *quantum_info, { q=PopQuantumFloatPixel(quantum_info,(float) GetPixelIndex(indexes+x),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } for (x=0; x < (ssize_t) number_pixels; x++) { q=PopLongPixel(quantum_info->endian,(unsigned int) GetPixelIndex(indexes+x),q); - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2635,7 +2634,7 @@ static void ExportIndexQuantum(const Image *image,QuantumInfo *quantum_info, q=PopQuantumDoublePixel(quantum_info,(double) GetPixelIndex(indexes+x), q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2647,7 +2646,7 @@ static void ExportIndexQuantum(const Image *image,QuantumInfo *quantum_info, { q=PopQuantumPixel(quantum_info,(QuantumAny) GetPixelIndex(indexes+x),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2751,7 +2750,7 @@ static void ExportIndexAlphaQuantum(const Image *image, pixel=ScaleQuantumToChar((Quantum) (QuantumRange-GetPixelOpacity(p))); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2769,7 +2768,7 @@ static void ExportIndexAlphaQuantum(const Image *image, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelAlpha(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2780,7 +2779,7 @@ static void ExportIndexAlphaQuantum(const Image *image, pixel=ScaleQuantumToShort((Quantum) (QuantumRange-GetPixelOpacity(p))); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2800,7 +2799,7 @@ static void ExportIndexAlphaQuantum(const Image *image, pixel=(float) (GetPixelAlpha(p)); q=PopQuantumFloatPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2811,7 +2810,7 @@ static void ExportIndexAlphaQuantum(const Image *image, pixel=ScaleQuantumToLong((Quantum) (QuantumRange-GetPixelOpacity(p))); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2829,7 +2828,7 @@ static void ExportIndexAlphaQuantum(const Image *image, pixel=(double) (GetPixelAlpha(p)); q=PopQuantumDoublePixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2847,7 +2846,7 @@ static void ExportIndexAlphaQuantum(const Image *image, q=PopQuantumPixel(quantum_info,ScaleQuantumToAny((Quantum) (GetPixelAlpha(p)),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2876,7 +2875,7 @@ static void ExportOpacityQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToChar(GetPixelOpacity(p)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2892,7 +2891,7 @@ static void ExportOpacityQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelOpacity(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2901,7 +2900,7 @@ static void ExportOpacityQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelOpacity(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2916,7 +2915,7 @@ static void ExportOpacityQuantum(QuantumInfo *quantum_info, { q=PopQuantumFloatPixel(quantum_info,(float) GetPixelOpacity(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2925,7 +2924,7 @@ static void ExportOpacityQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelOpacity(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2937,7 +2936,7 @@ static void ExportOpacityQuantum(QuantumInfo *quantum_info, { q=PopQuantumDoublePixel(quantum_info,(double) GetPixelOpacity(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2951,7 +2950,7 @@ static void ExportOpacityQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny(GetPixelOpacity(p),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2980,7 +2979,7 @@ static void ExportRedQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToChar(GetPixelRed(p)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -2996,7 +2995,7 @@ static void ExportRedQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelRed(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3005,7 +3004,7 @@ static void ExportRedQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelRed(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3020,7 +3019,7 @@ static void ExportRedQuantum(QuantumInfo *quantum_info, { q=PopQuantumFloatPixel(quantum_info,(float) GetPixelRed(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3029,7 +3028,7 @@ static void ExportRedQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelRed(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3041,7 +3040,7 @@ static void ExportRedQuantum(QuantumInfo *quantum_info, { q=PopQuantumDoublePixel(quantum_info,(double) GetPixelRed(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3055,7 +3054,7 @@ static void ExportRedQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(GetPixelRed(p),range), q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3085,7 +3084,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, q=PopCharPixel(ScaleQuantumToChar(GetPixelGreen(p)),q); q=PopCharPixel(ScaleQuantumToChar(GetPixelBlue(p)),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3105,7 +3104,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, ScaleQuantumToAny(GetPixelBlue(p),range) << 2); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3120,7 +3119,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelBlue(p),range); q=PopQuantumLongPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3133,7 +3132,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelBlue(p),range); q=PopQuantumPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3191,7 +3190,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, } q=PopShortPixel(quantum_info->endian,(unsigned short) (pixel << 4), q); - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } for (bit=0; bit < (ssize_t) (3*number_pixels % 2); bit++) { @@ -3217,7 +3216,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, } q=PopShortPixel(quantum_info->endian,(unsigned short) (pixel << 4), q); - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } if (bit != 0) p++; @@ -3234,7 +3233,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelBlue(p),range); q=PopQuantumLongPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3247,7 +3246,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelBlue(p),range); q=PopQuantumPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3267,7 +3266,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelBlue(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3280,7 +3279,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelBlue(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3297,7 +3296,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, q=PopQuantumFloatPixel(quantum_info,(float) GetPixelGreen(p),q); q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlue(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3310,7 +3309,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelBlue(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3324,7 +3323,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, q=PopQuantumDoublePixel(quantum_info,(double) GetPixelGreen(p),q); q=PopQuantumDoublePixel(quantum_info,(double) GetPixelBlue(p),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3342,7 +3341,7 @@ static void ExportRGBQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info, ScaleQuantumToAny(GetPixelBlue(p),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3377,7 +3376,7 @@ static void ExportRGBAQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToChar((Quantum) GetPixelAlpha(p)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3438,7 +3437,7 @@ static void ExportRGBAQuantum(QuantumInfo *quantum_info, n++; } p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3456,7 +3455,7 @@ static void ExportRGBAQuantum(QuantumInfo *quantum_info, range); q=PopQuantumLongPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3472,7 +3471,7 @@ static void ExportRGBAQuantum(QuantumInfo *quantum_info, range); q=PopQuantumPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3494,7 +3493,7 @@ static void ExportRGBAQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelAlpha(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3509,7 +3508,7 @@ static void ExportRGBAQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort((Quantum) GetPixelAlpha(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3531,7 +3530,7 @@ static void ExportRGBAQuantum(QuantumInfo *quantum_info, pixel=(float) GetPixelAlpha(p); q=PopQuantumFloatPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3546,7 +3545,7 @@ static void ExportRGBAQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong((Quantum) GetPixelAlpha(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3565,7 +3564,7 @@ static void ExportRGBAQuantum(QuantumInfo *quantum_info, pixel=(double) GetPixelAlpha(p); q=PopQuantumDoublePixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3585,7 +3584,7 @@ static void ExportRGBAQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info,ScaleQuantumToAny((Quantum) GetPixelAlpha(p),range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3620,7 +3619,7 @@ static void ExportRGBOQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToChar(GetPixelOpacity(p)); q=PopCharPixel(pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3681,7 +3680,7 @@ static void ExportRGBOQuantum(QuantumInfo *quantum_info, n++; } p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3698,7 +3697,7 @@ static void ExportRGBOQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelOpacity(p),range); q=PopQuantumLongPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3713,7 +3712,7 @@ static void ExportRGBOQuantum(QuantumInfo *quantum_info, pixel=(unsigned int) ScaleQuantumToAny(GetPixelOpacity(p),range); q=PopQuantumPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3735,7 +3734,7 @@ static void ExportRGBOQuantum(QuantumInfo *quantum_info, pixel=SinglePrecisionToHalf(QuantumScale*(MagickRealType) GetPixelOpacity(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3750,7 +3749,7 @@ static void ExportRGBOQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToShort(GetPixelOpacity(p)); q=PopShortPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3772,7 +3771,7 @@ static void ExportRGBOQuantum(QuantumInfo *quantum_info, pixel=(float) GetPixelOpacity(p); q=PopQuantumFloatPixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3787,7 +3786,7 @@ static void ExportRGBOQuantum(QuantumInfo *quantum_info, pixel=ScaleQuantumToLong(GetPixelOpacity(p)); q=PopLongPixel(quantum_info->endian,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3806,7 +3805,7 @@ static void ExportRGBOQuantum(QuantumInfo *quantum_info, pixel=(double) GetPixelOpacity(p); q=PopQuantumDoublePixel(quantum_info,pixel,q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } @@ -3826,7 +3825,7 @@ static void ExportRGBOQuantum(QuantumInfo *quantum_info, q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(GetPixelOpacity(p), range),q); p++; - q+=quantum_info->pad; + q+=(ptrdiff_t) quantum_info->pad; } break; } diff --git a/magick/quantum-import.c b/magick/quantum-import.c index 7cef70d..1cd625c 100644 --- a/magick/quantum-import.c +++ b/magick/quantum-import.c @@ -84,8 +84,7 @@ % % ImportQuantumPixels() transfers one or more pixel components from a user % supplied buffer into the image pixel cache of an image. The pixels are -% expected in network byte order. It returns MagickTrue if the pixels are -% successfully transferred, otherwise MagickFalse. +% expected in network byte order. It returns the number of imported pixels. % % The format of the ImportQuantumPixels method is: % @@ -320,7 +319,7 @@ static void ImportAlphaQuantum(QuantumInfo *quantum_info, { p=PushCharPixel(p,&pixel); SetPixelAlpha(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -337,7 +336,7 @@ static void ImportAlphaQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ClampToQuantum((double) QuantumRange*(double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -346,7 +345,7 @@ static void ImportAlphaQuantum(QuantumInfo *quantum_info, { p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -362,7 +361,7 @@ static void ImportAlphaQuantum(QuantumInfo *quantum_info, { p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -371,7 +370,7 @@ static void ImportAlphaQuantum(QuantumInfo *quantum_info, { p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -387,7 +386,7 @@ static void ImportAlphaQuantum(QuantumInfo *quantum_info, { p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -405,7 +404,7 @@ static void ImportAlphaQuantum(QuantumInfo *quantum_info, { p=PushDoublePixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -422,7 +421,7 @@ static void ImportAlphaQuantum(QuantumInfo *quantum_info, { p=PushQuantumPixel(quantum_info,p,&pixel); SetPixelAlpha(q,ScaleAnyToQuantum(pixel,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -462,7 +461,7 @@ static void ImportBGRQuantum(QuantumInfo *quantum_info, p=PushCharPixel(p,&pixel); SetPixelRed(q,ScaleCharToQuantum(pixel)); SetPixelOpacity(q,OpaqueOpacity); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -478,7 +477,7 @@ static void ImportBGRQuantum(QuantumInfo *quantum_info, SetPixelRed(q,ScaleAnyToQuantum((pixel >> 22) & 0x3ff,range)); SetPixelGreen(q,ScaleAnyToQuantum((pixel >> 12) & 0x3ff,range)); SetPixelBlue(q,ScaleAnyToQuantum((pixel >> 2) & 0x3ff,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -567,7 +566,7 @@ static void ImportBGRQuantum(QuantumInfo *quantum_info, break; } } - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; } for (bit=0; bit < (ssize_t) (3*number_pixels % 2); bit++) { @@ -595,7 +594,7 @@ static void ImportBGRQuantum(QuantumInfo *quantum_info, break; } } - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; } if (bit != 0) p++; @@ -645,7 +644,7 @@ static void ImportBGRQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelBlue(q,ClampToQuantum((double) QuantumRange*(double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -658,7 +657,7 @@ static void ImportBGRQuantum(QuantumInfo *quantum_info, SetPixelGreen(q,ScaleShortToQuantum(pixel)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelRed(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -678,7 +677,7 @@ static void ImportBGRQuantum(QuantumInfo *quantum_info, SetPixelGreen(q,ClampToQuantum(pixel)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelBlue(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -691,7 +690,7 @@ static void ImportBGRQuantum(QuantumInfo *quantum_info, SetPixelGreen(q,ScaleLongToQuantum(pixel)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelRed(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -711,7 +710,7 @@ static void ImportBGRQuantum(QuantumInfo *quantum_info, SetPixelGreen(q,ClampToQuantum(pixel)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelBlue(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -733,7 +732,7 @@ static void ImportBGRQuantum(QuantumInfo *quantum_info, SetPixelGreen(q,ClampToQuantum(pixel)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelBlue(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -788,7 +787,7 @@ static void ImportBGRAQuantum(QuantumInfo *quantum_info, SetPixelRed(q,ScaleCharToQuantum(pixel)); p=PushCharPixel(p,&pixel); SetPixelAlpha(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -844,7 +843,7 @@ static void ImportBGRAQuantum(QuantumInfo *quantum_info, } n++; } - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -884,7 +883,7 @@ static void ImportBGRAQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ClampToQuantum((double) QuantumRange*(double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -899,7 +898,7 @@ static void ImportBGRAQuantum(QuantumInfo *quantum_info, SetPixelRed(q,ScaleShortToQuantum(pixel)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -921,7 +920,7 @@ static void ImportBGRAQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -936,7 +935,7 @@ static void ImportBGRAQuantum(QuantumInfo *quantum_info, SetPixelRed(q,ScaleLongToQuantum(pixel)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -958,7 +957,7 @@ static void ImportBGRAQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -982,7 +981,7 @@ static void ImportBGRAQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1039,7 +1038,7 @@ static void ImportBGROQuantum(QuantumInfo *quantum_info, SetPixelRed(q,ScaleCharToQuantum(pixel)); p=PushCharPixel(p,&pixel); SetPixelOpacity(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1095,7 +1094,7 @@ static void ImportBGROQuantum(QuantumInfo *quantum_info, } n++; } - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1135,7 +1134,7 @@ static void ImportBGROQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelOpacity(q,ClampToQuantum((double) QuantumRange*(double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1150,7 +1149,7 @@ static void ImportBGROQuantum(QuantumInfo *quantum_info, SetPixelRed(q,ScaleShortToQuantum(pixel)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelOpacity(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1172,7 +1171,7 @@ static void ImportBGROQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelOpacity(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1187,7 +1186,7 @@ static void ImportBGROQuantum(QuantumInfo *quantum_info, SetPixelRed(q,ScaleLongToQuantum(pixel)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelOpacity(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1209,7 +1208,7 @@ static void ImportBGROQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelOpacity(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1233,7 +1232,7 @@ static void ImportBGROQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelOpacity(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1288,7 +1287,7 @@ static void ImportBlackQuantum(const Image *image,QuantumInfo *quantum_info, { p=PushCharPixel(p,&pixel); SetPixelIndex(indexes+x,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1304,7 +1303,7 @@ static void ImportBlackQuantum(const Image *image,QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelIndex(indexes+x,ClampToQuantum((double) QuantumRange*(double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1312,7 +1311,7 @@ static void ImportBlackQuantum(const Image *image,QuantumInfo *quantum_info, { p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelIndex(indexes+x,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; } break; } @@ -1327,7 +1326,7 @@ static void ImportBlackQuantum(const Image *image,QuantumInfo *quantum_info, { p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelIndex(indexes+x,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1336,7 +1335,7 @@ static void ImportBlackQuantum(const Image *image,QuantumInfo *quantum_info, { p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelIndex(indexes+x,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1352,7 +1351,7 @@ static void ImportBlackQuantum(const Image *image,QuantumInfo *quantum_info, { p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelIndex(indexes+x,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1370,7 +1369,7 @@ static void ImportBlackQuantum(const Image *image,QuantumInfo *quantum_info, { p=PushDoublePixel(quantum_info,p,&pixel); SetPixelIndex(indexes+x,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1387,7 +1386,7 @@ static void ImportBlackQuantum(const Image *image,QuantumInfo *quantum_info, { p=PushQuantumPixel(quantum_info,p,&pixel); SetPixelIndex(indexes+x,ScaleAnyToQuantum(pixel,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1416,7 +1415,7 @@ static void ImportBlueQuantum(QuantumInfo *quantum_info, { p=PushCharPixel(p,&pixel); SetPixelBlue(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1433,7 +1432,7 @@ static void ImportBlueQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelBlue(q,ClampToQuantum((double) QuantumRange*(double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1442,7 +1441,7 @@ static void ImportBlueQuantum(QuantumInfo *quantum_info, { p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelBlue(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1458,7 +1457,7 @@ static void ImportBlueQuantum(QuantumInfo *quantum_info, { p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelBlue(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1467,7 +1466,7 @@ static void ImportBlueQuantum(QuantumInfo *quantum_info, { p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelBlue(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1483,7 +1482,7 @@ static void ImportBlueQuantum(QuantumInfo *quantum_info, { p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelBlue(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1501,7 +1500,7 @@ static void ImportBlueQuantum(QuantumInfo *quantum_info, { p=PushDoublePixel(quantum_info,p,&pixel); SetPixelBlue(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1518,7 +1517,7 @@ static void ImportBlueQuantum(QuantumInfo *quantum_info, { p=PushQuantumPixel(quantum_info,p,&pixel); SetPixelBlue(q,ScaleAnyToQuantum(pixel,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1586,7 +1585,7 @@ static void ImportCbYCrYQuantum(const Image *image,QuantumInfo *quantum_info, cbcr[i]=(Quantum) (quantum); n++; } - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; SetPixelRed(q,cbcr[1]); SetPixelGreen(q,cbcr[0]); SetPixelBlue(q,cbcr[2]); @@ -1656,7 +1655,7 @@ static void ImportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelBlue(q,ScaleCharToQuantum(pixel)); p=PushCharPixel(p,&pixel); SetPixelIndex(indexes+x,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1682,7 +1681,7 @@ static void ImportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelIndex(indexes+x,ClampToQuantum((double) QuantumRange* (double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1697,7 +1696,7 @@ static void ImportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelBlue(q,ScaleShortToQuantum(pixel)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelIndex(indexes+x,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1719,7 +1718,7 @@ static void ImportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelIndex(indexes+x,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1734,7 +1733,7 @@ static void ImportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelBlue(q,ScaleLongToQuantum(pixel)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelIndex(indexes+x,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1756,7 +1755,7 @@ static void ImportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelIndex(indexes+x,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1780,7 +1779,7 @@ static void ImportCMYKQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelIndex(indexes+x,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1846,7 +1845,7 @@ static void ImportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ScaleCharToQuantum(pixel)); p=PushCharPixel(p,&pixel); SetPixelAlpha(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1875,7 +1874,7 @@ static void ImportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ClampToQuantum((MagickRealType) QuantumRange* (double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1892,7 +1891,7 @@ static void ImportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ScaleShortToQuantum(pixel)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1916,7 +1915,7 @@ static void ImportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ClampToQuantum(pixel)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1933,7 +1932,7 @@ static void ImportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ScaleLongToQuantum(pixel)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1957,7 +1956,7 @@ static void ImportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ClampToQuantum(pixel)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -1983,7 +1982,7 @@ static void ImportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ClampToQuantum(pixel)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2051,7 +2050,7 @@ static void ImportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ScaleCharToQuantum(pixel)); p=PushCharPixel(p,&pixel); SetPixelOpacity(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2080,7 +2079,7 @@ static void ImportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelOpacity(q,ClampToQuantum((double) QuantumRange* (double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2097,7 +2096,7 @@ static void ImportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ScaleShortToQuantum(pixel)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelOpacity(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2121,7 +2120,7 @@ static void ImportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ClampToQuantum(pixel)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelOpacity(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2138,7 +2137,7 @@ static void ImportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ScaleLongToQuantum(pixel)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelOpacity(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2162,7 +2161,7 @@ static void ImportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ClampToQuantum(pixel)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelOpacity(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2188,7 +2187,7 @@ static void ImportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,ClampToQuantum(pixel)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelOpacity(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2315,7 +2314,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); SetPixelOpacity(q,OpaqueOpacity); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2327,7 +2326,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); SetPixelOpacity(q,OpaqueOpacity); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2353,7 +2352,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ScaleAnyToQuantum((pixel >> 2) & 0x3ff,range)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } if (x++ < (ssize_t) (number_pixels-1)) @@ -2387,7 +2386,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ScaleAnyToQuantum((pixel >> 22) & 0x3ff,range)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } if (x++ < (ssize_t) (number_pixels-1)) @@ -2413,7 +2412,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ScaleAnyToQuantum(pixel,range)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2437,7 +2436,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ScaleAnyToQuantum((QuantumAny) (pixel >> 4),range)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } for (bit=0; bit < (ssize_t) (number_pixels % 2); bit++) @@ -2447,7 +2446,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, (pixel >> 4),range)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } if (bit != 0) @@ -2460,7 +2459,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ScaleAnyToQuantum(pixel,range)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2478,7 +2477,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,QuantumRange-ScaleShortToQuantum(pixel)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2492,7 +2491,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, (double) HalfToSinglePrecision(pixel))); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2506,7 +2505,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ScaleShortToQuantum(pixel)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2517,7 +2516,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ScaleShortToQuantum(pixel)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2535,7 +2534,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ClampToQuantum(pixel)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2546,7 +2545,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ScaleLongToQuantum(pixel)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2564,7 +2563,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ClampToQuantum(pixel)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2584,7 +2583,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ClampToQuantum(pixel)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2600,7 +2599,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelRed(q,ScaleAnyToQuantum(pixel,range)); SetPixelGreen(q,GetPixelRed(q)); SetPixelBlue(q,GetPixelRed(q)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2693,7 +2692,7 @@ static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,GetPixelRed(q)); p=PushCharPixel(p,&pixel); SetPixelAlpha(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2709,7 +2708,7 @@ static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,GetPixelRed(q)); p=PushQuantumPixel(quantum_info,p,&pixel); SetPixelOpacity(q,ScaleAnyToQuantum(pixel,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2725,7 +2724,7 @@ static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,GetPixelRed(q)); p=PushQuantumPixel(quantum_info,p,&pixel); SetPixelOpacity(q,ScaleAnyToQuantum(pixel,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2747,7 +2746,7 @@ static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ClampToQuantum((double) QuantumRange* (double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2760,7 +2759,7 @@ static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,GetPixelRed(q)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2780,7 +2779,7 @@ static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,GetPixelRed(q)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2793,7 +2792,7 @@ static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,GetPixelRed(q)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2813,7 +2812,7 @@ static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,GetPixelRed(q)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2835,7 +2834,7 @@ static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,GetPixelRed(q)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2856,7 +2855,7 @@ static void ImportGrayAlphaQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,GetPixelRed(q)); p=PushQuantumPixel(quantum_info,p,&pixel); SetPixelAlpha(q,ScaleAnyToQuantum(pixel,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2885,7 +2884,7 @@ static void ImportGreenQuantum(QuantumInfo *quantum_info, { p=PushCharPixel(p,&pixel); SetPixelGreen(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2902,7 +2901,7 @@ static void ImportGreenQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelGreen(q,ClampToQuantum((double) QuantumRange*(double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2911,7 +2910,7 @@ static void ImportGreenQuantum(QuantumInfo *quantum_info, { p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelGreen(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2927,7 +2926,7 @@ static void ImportGreenQuantum(QuantumInfo *quantum_info, { p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelGreen(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2936,7 +2935,7 @@ static void ImportGreenQuantum(QuantumInfo *quantum_info, { p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelGreen(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2952,7 +2951,7 @@ static void ImportGreenQuantum(QuantumInfo *quantum_info, { p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelGreen(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2970,7 +2969,7 @@ static void ImportGreenQuantum(QuantumInfo *quantum_info, { p=PushDoublePixel(quantum_info,p,&pixel); SetPixelGreen(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -2987,7 +2986,7 @@ static void ImportGreenQuantum(QuantumInfo *quantum_info, { p=PushQuantumPixel(quantum_info,p,&pixel); SetPixelGreen(q,ScaleAnyToQuantum(pixel,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3095,7 +3094,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,PushColormapIndex(image,pixel, &range_exception)); SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3114,7 +3113,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info, ClampToQuantum((double) QuantumRange* (double) HalfToSinglePrecision(pixel)),&range_exception)); SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3125,7 +3124,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,PushColormapIndex(image,pixel, &range_exception)); SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3143,7 +3142,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,PushColormapIndex(image,(size_t) ClampToQuantum(pixel),&range_exception)); SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3154,7 +3153,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,PushColormapIndex(image,pixel, &range_exception)); SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3172,7 +3171,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,PushColormapIndex(image,(size_t) ClampToQuantum(pixel),&range_exception)); SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3192,7 +3191,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,PushColormapIndex(image,(size_t) ClampToQuantum(pixel),&range_exception)); SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3207,7 +3206,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info, SetPixelIndex(indexes+x,PushColormapIndex(image,pixel, &range_exception)); SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3318,7 +3317,7 @@ static void ImportIndexAlphaQuantum(const Image *image, SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); p=PushCharPixel(p,&pixel); SetPixelAlpha(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3340,7 +3339,7 @@ static void ImportIndexAlphaQuantum(const Image *image, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ClampToQuantum((double) QuantumRange*(double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3353,7 +3352,7 @@ static void ImportIndexAlphaQuantum(const Image *image, SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3373,7 +3372,7 @@ static void ImportIndexAlphaQuantum(const Image *image, SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3386,7 +3385,7 @@ static void ImportIndexAlphaQuantum(const Image *image, SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3406,7 +3405,7 @@ static void ImportIndexAlphaQuantum(const Image *image, SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3428,7 +3427,7 @@ static void ImportIndexAlphaQuantum(const Image *image, SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3446,7 +3445,7 @@ static void ImportIndexAlphaQuantum(const Image *image, SetPixelRGBO(q,image->colormap+(ssize_t) GetPixelIndex(indexes+x)); p=PushQuantumPixel(quantum_info,p,&pixel); SetPixelAlpha(q,ScaleAnyToQuantum(pixel,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3478,7 +3477,7 @@ static void ImportRedQuantum(QuantumInfo *quantum_info, { p=PushCharPixel(p,&pixel); SetPixelRed(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3495,7 +3494,7 @@ static void ImportRedQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelRed(q,ClampToQuantum((double) QuantumRange* (double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3504,7 +3503,7 @@ static void ImportRedQuantum(QuantumInfo *quantum_info, { p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelRed(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3520,7 +3519,7 @@ static void ImportRedQuantum(QuantumInfo *quantum_info, { p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelRed(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3529,7 +3528,7 @@ static void ImportRedQuantum(QuantumInfo *quantum_info, { p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelRed(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3545,7 +3544,7 @@ static void ImportRedQuantum(QuantumInfo *quantum_info, { p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelRed(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3563,7 +3562,7 @@ static void ImportRedQuantum(QuantumInfo *quantum_info, { p=PushDoublePixel(quantum_info,p,&pixel); SetPixelRed(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3580,7 +3579,7 @@ static void ImportRedQuantum(QuantumInfo *quantum_info, { p=PushQuantumPixel(quantum_info,p,&pixel); SetPixelRed(q,ScaleAnyToQuantum(pixel,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3620,7 +3619,7 @@ static void ImportRGBQuantum(QuantumInfo *quantum_info, p=PushCharPixel(p,&pixel); SetPixelBlue(q,ScaleCharToQuantum(pixel)); SetPixelOpacity(q,OpaqueOpacity); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3636,7 +3635,7 @@ static void ImportRGBQuantum(QuantumInfo *quantum_info, SetPixelRed(q,ScaleAnyToQuantum((pixel >> 22) & 0x3ff,range)); SetPixelGreen(q,ScaleAnyToQuantum((pixel >> 12) & 0x3ff,range)); SetPixelBlue(q,ScaleAnyToQuantum((pixel >> 2) & 0x3ff,range)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3725,7 +3724,7 @@ static void ImportRGBQuantum(QuantumInfo *quantum_info, break; } } - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; } for (bit=0; bit < (ssize_t) (3*number_pixels % 2); bit++) { @@ -3753,7 +3752,7 @@ static void ImportRGBQuantum(QuantumInfo *quantum_info, break; } } - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; } if (bit != 0) p++; @@ -3803,7 +3802,7 @@ static void ImportRGBQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelBlue(q,ClampToQuantum((double) QuantumRange* (double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3816,7 +3815,7 @@ static void ImportRGBQuantum(QuantumInfo *quantum_info, SetPixelGreen(q,ScaleShortToQuantum(pixel)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelBlue(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3836,7 +3835,7 @@ static void ImportRGBQuantum(QuantumInfo *quantum_info, SetPixelGreen(q,ClampToQuantum(pixel)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelBlue(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3849,7 +3848,7 @@ static void ImportRGBQuantum(QuantumInfo *quantum_info, SetPixelGreen(q,ScaleLongToQuantum(pixel)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelBlue(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3869,7 +3868,7 @@ static void ImportRGBQuantum(QuantumInfo *quantum_info, SetPixelGreen(q,ClampToQuantum(pixel)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelBlue(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3891,7 +3890,7 @@ static void ImportRGBQuantum(QuantumInfo *quantum_info, SetPixelGreen(q,ClampToQuantum(pixel)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelBlue(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -3946,7 +3945,7 @@ static void ImportRGBAQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ScaleCharToQuantum(pixel)); p=PushCharPixel(p,&pixel); SetPixelAlpha(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4002,7 +4001,7 @@ static void ImportRGBAQuantum(QuantumInfo *quantum_info, } n++; } - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4042,7 +4041,7 @@ static void ImportRGBAQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ClampToQuantum((double) QuantumRange* (double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4057,7 +4056,7 @@ static void ImportRGBAQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ScaleShortToQuantum(pixel)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4079,7 +4078,7 @@ static void ImportRGBAQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4094,7 +4093,7 @@ static void ImportRGBAQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ScaleLongToQuantum(pixel)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelAlpha(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4116,7 +4115,7 @@ static void ImportRGBAQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4140,7 +4139,7 @@ static void ImportRGBAQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelAlpha(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4197,7 +4196,7 @@ static void ImportRGBOQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ScaleCharToQuantum(pixel)); p=PushCharPixel(p,&pixel); SetPixelOpacity(q,ScaleCharToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4253,7 +4252,7 @@ static void ImportRGBOQuantum(QuantumInfo *quantum_info, } n++; } - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4293,7 +4292,7 @@ static void ImportRGBOQuantum(QuantumInfo *quantum_info, p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelOpacity(q,ClampToQuantum((double) QuantumRange*(double) HalfToSinglePrecision(pixel))); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4308,7 +4307,7 @@ static void ImportRGBOQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ScaleShortToQuantum(pixel)); p=PushShortPixel(quantum_info->endian,p,&pixel); SetPixelOpacity(q,ScaleShortToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4330,7 +4329,7 @@ static void ImportRGBOQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushQuantumFloatPixel(quantum_info,p,&pixel); SetPixelOpacity(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4345,7 +4344,7 @@ static void ImportRGBOQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ScaleLongToQuantum(pixel)); p=PushLongPixel(quantum_info->endian,p,&pixel); SetPixelOpacity(q,ScaleLongToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4367,7 +4366,7 @@ static void ImportRGBOQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushQuantumFloat24Pixel(quantum_info,p,&pixel); SetPixelOpacity(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; @@ -4391,7 +4390,7 @@ static void ImportRGBOQuantum(QuantumInfo *quantum_info, SetPixelBlue(q,ClampToQuantum(pixel)); p=PushDoublePixel(quantum_info,p,&pixel); SetPixelOpacity(q,ClampToQuantum(pixel)); - p+=quantum_info->pad; + p+=(ptrdiff_t) quantum_info->pad; q++; } break; diff --git a/magick/random.c b/magick/random.c index ba09dc6..2a5efa7 100644 --- a/magick/random.c +++ b/magick/random.c @@ -60,6 +60,7 @@ #include "magick/string_.h" #include "magick/thread_.h" #include "magick/thread-private.h" +#include "magick/timer-private.h" #include "magick/utility-private.h" #if defined(MAGICKCORE_HAVE_GETENTROPY) #include @@ -105,7 +106,7 @@ struct _RandomInfo SemaphoreInfo *semaphore; - ssize_t + time_t timestamp; size_t @@ -192,7 +193,7 @@ MagickExport RandomInfo *AcquireRandomInfo(void) random_info->protocol_major=RandomProtocolMajorVersion; random_info->protocol_minor=RandomProtocolMinorVersion; random_info->semaphore=AllocateSemaphoreInfo(); - random_info->timestamp=(ssize_t) time(0); + random_info->timestamp=GetMagickTime(); random_info->signature=MagickCoreSignature; /* Seed random nonce. @@ -339,7 +340,7 @@ static ssize_t ReadRandom(int file,unsigned char *source,size_t length) continue; return(-1); } - q+=count; + q+=(ptrdiff_t) count; offset+=count; } return(offset); @@ -900,7 +901,7 @@ MagickExport void SetRandomKey(RandomInfo *random_info,const size_t length, IncrementRandomNonce(random_info->nonce); (void) memcpy(p,GetStringInfoDatum(GetSignatureDigest( signature_info)),GetSignatureDigestsize(signature_info)); - p+=GetSignatureDigestsize(signature_info); + p+=(ptrdiff_t) GetSignatureDigestsize(signature_info); i-=GetSignatureDigestsize(signature_info); } if (i != 0) diff --git a/magick/resample.c b/magick/resample.c index 51f5805..dc45e2d 100644 --- a/magick/resample.c +++ b/magick/resample.c @@ -608,11 +608,11 @@ MagickExport MagickBooleanType ResamplePixelColor( weight = 0.0; #if FILTER_LUT /* Note that the ellipse has been pre-scaled so F = WLUT_WIDTH */ - if ((Q >= 0.0) && ((int) Q < WLUT_WIDTH)) { - weight = resample_filter->filter_lut[(int)Q]; + if (((int) Q >= 0) && ((int) Q < WLUT_WIDTH)) { + weight = resample_filter->filter_lut[(int) Q]; #else /* Note that the ellipse has been pre-scaled so F = support^2 */ - if ((Q >= 0.0) && (Q < (double)resample_filter->F)) { + if ((Q >= 0.0) && (Q < resample_filter->F)) { weight = GetResizeFilterWeight(resample_filter->filter_def, sqrt(Q)); /* a SquareRoot! Arrggghhhhh... */ #endif diff --git a/magick/resize.c b/magick/resize.c index 2ebfefd..00eb951 100644 --- a/magick/resize.c +++ b/magick/resize.c @@ -2094,7 +2094,7 @@ MagickExport Image *MagnifyImage(const Image *image,ExceptionInfo *exception) *r=p[4]; r++; *r=p[4]; - r+=(magnify_image->columns-1); + r+=(ptrdiff_t) (magnify_image->columns-1); *r=p[4]; r++; *r=p[4]; @@ -2113,7 +2113,7 @@ MagickExport Image *MagnifyImage(const Image *image,ExceptionInfo *exception) *r=p[5]; else *r=p[4]; - r+=(magnify_image->columns-1); + r+=(ptrdiff_t) (magnify_image->columns-1); if (fabs((double) (intensity[3]-intensity[7])) < MagickEpsilon) *r=p[3]; else @@ -2142,7 +2142,7 @@ MagickExport Image *MagnifyImage(const Image *image,ExceptionInfo *exception) *r=indexes[4]; r++; *r=indexes[4]; - r+=(magnify_image->columns-1); + r+=(ptrdiff_t) (magnify_image->columns-1); *r=indexes[4]; r++; *r=indexes[4]; @@ -2161,7 +2161,7 @@ MagickExport Image *MagnifyImage(const Image *image,ExceptionInfo *exception) *r=indexes[5]; else *r=indexes[4]; - r+=(magnify_image->columns-1); + r+=(ptrdiff_t) (magnify_image->columns-1); if (fabs((double) (intensity[3]-intensity[7])) < MagickEpsilon) *r=indexes[3]; else @@ -2174,7 +2174,7 @@ MagickExport Image *MagnifyImage(const Image *image,ExceptionInfo *exception) } magnify_indexes+=2; } - q+=2; + q+=(ptrdiff_t) 2; } if (SyncCacheViewAuthenticPixels(magnify_view,exception) == MagickFalse) status=MagickFalse; @@ -3149,7 +3149,7 @@ MagickExport Image *SampleImage(const Image *image,const size_t columns, sample_view=AcquireAuthenticCacheView(sample_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,sample_image,sample_image->rows,1) + magick_number_threads(image,sample_image,sample_image->rows,2) #endif for (y=0; y < (ssize_t) sample_image->rows; y++) { @@ -3706,17 +3706,39 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns, % o exception: return any errors or warnings in this structure. % */ + +static void url_encode(const char *uri,char *encode_uri) +{ + char + *p; + + const char + *hex = "0123456789ABCDEF"; + + for (p=encode_uri; *uri != '\0'; uri++) + if ((('a' <= *uri) && (*uri <= 'z')) || (('A' <= *uri) && (*uri <= 'Z')) || + (('0' <= *uri) && (*uri <= '9')) || (strchr("/-_.~",*uri) != 0)) + *p++=(*uri); + else + { + *p++='%'; + *p++=hex[(*uri >> 4) & 0xF]; + *p++=hex[*uri & 0xF]; + } + *p='\0'; +} + MagickExport Image *ThumbnailImage(const Image *image,const size_t columns, const size_t rows,ExceptionInfo *exception) { #define SampleFactor 5 char - filename[MaxTextExtent], - value[MaxTextExtent]; + encode_uri[3*MagickPathExtent+1] = "/0"; const char - *name; + *name, + *mime_type; Image *thumbnail_image; @@ -3742,8 +3764,8 @@ MagickExport Image *ThumbnailImage(const Image *image,const size_t columns, x_factor, y_factor; - x_factor=(ssize_t) image->columns/columns; - y_factor=(ssize_t) image->rows/rows; + x_factor=(ssize_t) image->columns/(ssize_t) columns; + y_factor=(ssize_t) image->rows/(ssize_t) rows; if ((x_factor > 4) && (y_factor > 4)) { thumbnail_image=SampleImage(clone_image,4*columns,4*rows,exception); @@ -3786,36 +3808,26 @@ MagickExport Image *ThumbnailImage(const Image *image,const size_t columns, name=GetNextImageProfile(thumbnail_image); } (void) DeleteImageProperty(thumbnail_image,"comment"); - (void) CopyMagickString(value,image->magick_filename,MaxTextExtent); - if (strstr(image->magick_filename,"//") == (char *) NULL) - (void) FormatLocaleString(value,MaxTextExtent,"file://%s", - image->magick_filename); - (void) SetImageProperty(thumbnail_image,"Thumb::URI",value); - GetPathComponent(image->magick_filename,TailPath,filename); - (void) CopyMagickString(value,filename,MaxTextExtent); - if (GetPathAttributes(image->filename,&attributes) != MagickFalse) - { - (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double) - attributes.st_mtime); - (void) SetImageProperty(thumbnail_image,"Thumb::MTime",value); - } - (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double) - attributes.st_mtime); - (void) FormatMagickSize(GetBlobSize(image),MagickFalse,value); - (void) ConcatenateMagickString(value,"B",MaxTextExtent); - (void) SetImageProperty(thumbnail_image,"Thumb::Size",value); - (void) FormatLocaleString(value,MaxTextExtent,"image/%s",image->magick); - LocaleLower(value); - (void) SetImageProperty(thumbnail_image,"Thumb::Mimetype",value); + url_encode(image->filename,encode_uri); + if (*image->filename != '/') + (void) FormatImageProperty(thumbnail_image,"Thumb::URI","./%s",encode_uri); + else + (void) FormatImageProperty(thumbnail_image,"Thumb::URI","file://%s", + encode_uri); + if (GetPathAttributes(image->filename,&attributes) != MagickFalse ) + (void) FormatImageProperty(thumbnail_image,"Thumb::MTime","%.20g",(double) + attributes.st_mtime); + (void) FormatImageProperty(thumbnail_image,"Thumb::Size","%.20g", + (double) GetBlobSize(image)); + mime_type=GetImageProperty(image,"mime:type"); + if (mime_type != (const char *) NULL) + (void) SetImageProperty(thumbnail_image,"Thumb::Mimetype",mime_type); (void) SetImageProperty(thumbnail_image,"software",MagickAuthoritativeURL); - (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double) - image->magick_columns); - (void) SetImageProperty(thumbnail_image,"Thumb::Image::Width",value); - (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double) - image->magick_rows); - (void) SetImageProperty(thumbnail_image,"Thumb::Image::Height",value); - (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double) - GetImageListLength(image)); - (void) SetImageProperty(thumbnail_image,"Thumb::Document::Pages",value); + (void) FormatImageProperty(thumbnail_image,"Thumb::Image::Width","%.20g", + (double) image->magick_columns); + (void) FormatImageProperty(thumbnail_image,"Thumb::Image::Height","%.20g", + (double) image->magick_rows); + (void) FormatImageProperty(thumbnail_image,"Thumb::Document::Pages","%.20g", + (double) GetImageListLength(image)); return(thumbnail_image); } diff --git a/magick/resource.c b/magick/resource.c index 8fdc0e4..6dd009b 100644 --- a/magick/resource.c +++ b/magick/resource.c @@ -62,6 +62,7 @@ #include "magick/string-private.h" #include "magick/splay-tree.h" #include "magick/thread-private.h" +#include "magick/timer-private.h" #include "magick/token.h" #include "magick/timer-private.h" #include "magick/utility.h" @@ -73,7 +74,7 @@ #define MagickPathTemplate "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" /* min 6 X's */ #define NumberOfResourceTypes \ (sizeof(resource_semaphore)/sizeof(*resource_semaphore)) - + /* Typedef declarations. */ @@ -136,7 +137,7 @@ static ResourceInfo MagickULLConstant(768), /* file limit */ MagickULLConstant(1), /* thread limit */ MagickULLConstant(0), /* throttle limit */ - (MagickSizeType) MAGICK_SSIZE_MAX /* time limit */ + MagickULLConstant(0), /* time limit */ }; static SemaphoreInfo @@ -386,12 +387,10 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type, case TimeResource: { limit=resource_info.time_limit; - if (((MagickSizeType) resource_info.time+request) > - (MagickSizeType) resource_info.time) + if (((MagickSizeType) resource_info.time+request) > (MagickSizeType) resource_info.time) { resource_info.time+=request; - if ((limit == MagickResourceInfinity) || - ((MagickSizeType) resource_info.time < limit)) + if ((limit == 0) || ((MagickSizeType) resource_info.time < limit)) status=MagickTrue; else resource_info.time-=request; @@ -954,12 +953,10 @@ static ssize_t FormatPixelSize(const MagickSizeType size, length; ssize_t + count, i, j; - ssize_t - count; - static const char *bi_units[] = { @@ -995,6 +992,64 @@ static ssize_t FormatPixelSize(const MagickSizeType size, return(count); } +static void FormatTimeToLive(const MagickSizeType ttl,char *timeString) +{ + MagickSizeType + days, + hours, + minutes, + months, + seconds, + weeks, + years; + + years=ttl/31536000; + seconds=ttl % 31536000; + if (seconds == 0) + { + (void) FormatLocaleString(timeString,MagickPathExtent,"%lld years",years); + return; + } + months=ttl/2628000; + seconds=ttl % 2628000; + if (seconds == 0) + { + (void) FormatLocaleString(timeString,MagickPathExtent,"%lld months", + months); + return; + } + weeks=ttl/604800; + seconds=ttl % 604800; + if (seconds == 0) + { + (void) FormatLocaleString(timeString,MagickPathExtent,"%lld weeks",weeks); + return; + } + days=ttl/86400; + seconds=ttl % 86400; + if (seconds == 0) + { + (void) FormatLocaleString(timeString,MagickPathExtent,"%lld days",days); + return; + } + hours=ttl/3600; + seconds=ttl % 3600; + if (seconds == 0) + { + (void) FormatLocaleString(timeString,MagickPathExtent,"%lld hours",hours); + return; + } + minutes=ttl/60; + seconds=ttl % 60; + if (seconds == 0) + { + (void) FormatLocaleString(timeString,MagickPathExtent,"%lld minutes", + minutes); + return; + } + (void) FormatLocaleString(timeString,MagickPathExtent,"%lld seconds",ttl); +} + MagickExport MagickBooleanType ListMagickResourceInfo(FILE *file, ExceptionInfo *magick_unused(exception)) { @@ -1028,9 +1083,8 @@ MagickExport MagickBooleanType ListMagickResourceInfo(FILE *file, if (resource_info.disk_limit != MagickResourceInfinity) (void) FormatMagickSize(resource_info.disk_limit,MagickTrue,disk_limit); (void) CopyMagickString(time_limit,"unlimited",MaxTextExtent); - if (resource_info.time_limit != MagickResourceInfinity) - (void) FormatLocaleString(time_limit,MaxTextExtent,"%.20g",(double) - ((MagickOffsetType) resource_info.time_limit)); + if (resource_info.time_limit != 0) + FormatTimeToLive(resource_info.time_limit,time_limit); (void) FormatLocaleFile(file,"Resource limits:\n"); (void) FormatLocaleFile(file," Width: %s\n",width_limit); (void) FormatLocaleFile(file," Height: %s\n",height_limit); @@ -1221,7 +1275,6 @@ MagickExport void RelinquishMagickResource(const ResourceType type, { resource_info.time-=size; assert(resource_info.time >= 0); - if (logging != MagickFalse) if (logging != MagickFalse) { (void) FormatMagickSize((MagickSizeType) resource_info.time, @@ -1348,11 +1401,10 @@ MagickExport MagickBooleanType ResourceComponentGenesis(void) MagickSizeType memory; - ssize_t - i; - ssize_t files, + i, + number_threads, pages, pagesize; @@ -1449,7 +1501,10 @@ MagickExport MagickBooleanType ResourceComponentGenesis(void) (void) SetMagickResourceLimit(FileResource,StringToSizeType(limit,100.0)); limit=DestroyString(limit); } - (void) SetMagickResourceLimit(ThreadResource,GetOpenMPMaximumThreads()); + number_threads=(ssize_t) GetOpenMPMaximumThreads(); + if (number_threads > 1) + number_threads--; /* reserve core for OS */ + (void) SetMagickResourceLimit(ThreadResource,(size_t) number_threads); limit=GetEnvironmentValue("MAGICK_THREAD_LIMIT"); if (limit != (char *) NULL) { @@ -1465,11 +1520,12 @@ MagickExport MagickBooleanType ResourceComponentGenesis(void) 100.0)); limit=DestroyString(limit); } - (void) SetMagickResourceLimit(TimeResource,MagickResourceInfinity); + (void) SetMagickResourceLimit(TimeResource,0); limit=GetEnvironmentValue("MAGICK_TIME_LIMIT"); if (limit != (char *) NULL) { - (void) SetMagickResourceLimit(TimeResource,StringToSizeType(limit,100.0)); + (void) SetMagickResourceLimit(TimeResource,(MagickSizeType) + ParseMagickTimeToLive(limit)); limit=DestroyString(limit); } (void) SetMagickResourceLimit(ListLengthResource,MagickResourceInfinity); @@ -1660,9 +1716,8 @@ MagickExport MagickBooleanType SetMagickResourceLimit(const ResourceType type, if (value == (char *) NULL) resource_info.time_limit=limit; else - resource_info.time_limit=MagickMin(limit,StringToSizeType(value,100.0)); - resource_info.time_limit=MagickMin(resource_info.time_limit, - (MagickSizeType) MAGICK_SSIZE_MAX); + resource_info.time_limit=MagickMin(limit,(MagickSizeType) + ParseMagickTimeToLive(value)); break; } case WidthResource: diff --git a/magick/shear.c b/magick/shear.c index 1868b7a..3526a2c 100644 --- a/magick/shear.c +++ b/magick/shear.c @@ -904,7 +904,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,rotate_image,image->rows,1) + magick_number_threads(image,rotate_image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -939,7 +939,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations, } indexes=GetCacheViewVirtualIndexQueue(image_view); rotate_indexes=GetCacheViewAuthenticIndexQueue(rotate_view); - q+=image->columns; + q+=(ptrdiff_t) image->columns; for (x=0; x < (ssize_t) image->columns; x++) *--q=(*p++); if ((indexes != (IndexPacket *) NULL) && @@ -986,7 +986,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations, tile_width=image->columns; #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,rotate_image,image->rows/tile_height,1) + magick_number_threads(image,rotate_image,image->rows/tile_height,2) #endif for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height) { @@ -1226,7 +1226,7 @@ static MagickBooleanType XShearImage(Image *image,const MagickRealType degrees, continue; } indexes=GetCacheViewAuthenticIndexQueue(image_view); - p+=x_offset; + p+=(ptrdiff_t) x_offset; indexes+=x_offset; displacement=degrees*(MagickRealType) (y-height/2.0); if (displacement == 0.0) @@ -1282,7 +1282,7 @@ static MagickBooleanType XShearImage(Image *image,const MagickRealType degrees, /* Transfer pixels right-to-left. */ - p+=width; + p+=(ptrdiff_t) width; indexes+=width; q=p+step; shear_indexes=indexes+step; @@ -1448,7 +1448,7 @@ static MagickBooleanType YShearImage(Image *image,const MagickRealType degrees, continue; } indexes=GetCacheViewAuthenticIndexQueue(image_view); - p+=y_offset; + p+=(ptrdiff_t) y_offset; indexes+=y_offset; displacement=degrees*(MagickRealType) (x-width/2.0); if (displacement == 0.0) @@ -1504,7 +1504,7 @@ static MagickBooleanType YShearImage(Image *image,const MagickRealType degrees, /* Transfer pixels bottom-to-top. */ - p+=height; + p+=(ptrdiff_t) height; indexes+=height; q=p+step; shear_indexes=indexes+step; diff --git a/magick/signature.c b/magick/signature.c index ced210f..5467417 100644 --- a/magick/signature.c +++ b/magick/signature.c @@ -82,7 +82,7 @@ struct _SignatureInfo MagickBooleanType lsb_first; - ssize_t + time_t timestamp; size_t @@ -138,7 +138,7 @@ MagickExport SignatureInfo *AcquireSignatureInfo(void) lsb_first=1; signature_info->lsb_first=(int) (*(char *) &lsb_first) == 1 ? MagickTrue : MagickFalse; - signature_info->timestamp=(ssize_t) time(0); + signature_info->timestamp=GetMagickTime(); signature_info->signature=MagickCoreSignature; InitializeSignature(signature_info); return(signature_info); @@ -641,14 +641,14 @@ RestoreMSCWarning for (i=0; i < 16; i++) { T=(*((unsigned int *) p)); - p+=4; + p+=(ptrdiff_t) 4; W[i]=Trunc32(T); } else for (i=0; i < 16; i+=2) { T=(*((unsigned int *) p)); - p+=8; + p+=(ptrdiff_t) 8; W[i]=Trunc32(T >> shift); W[i+1]=Trunc32(T); } @@ -660,7 +660,7 @@ RestoreMSCWarning for (i=0; i < 16; i++) { T=(*((unsigned int *) p)); - p+=4; + p+=(ptrdiff_t) 4; W[i]=((T << 24) & 0xff000000) | ((T << 8) & 0x00ff0000) | ((T >> 8) & 0x0000ff00) | ((T >> 24) & 0x000000ff); } @@ -668,7 +668,7 @@ RestoreMSCWarning for (i=0; i < 16; i+=2) { T=(*((unsigned int *) p)); - p+=8; + p+=(ptrdiff_t) 8; W[i]=((T << 24) & 0xff000000) | ((T << 8) & 0x00ff0000) | ((T >> 8) & 0x0000ff00) | ((T >> 24) & 0x000000ff); T>>=shift; @@ -788,7 +788,7 @@ MagickExport void UpdateSignature(SignatureInfo *signature_info, (void) memcpy(GetStringInfoDatum(signature_info->message)+ signature_info->extent,p,i); n-=i; - p+=i; + p+=(ptrdiff_t) i; signature_info->extent+=i; if (signature_info->extent != GetStringInfoLength(signature_info->message)) @@ -798,7 +798,7 @@ MagickExport void UpdateSignature(SignatureInfo *signature_info, while (n >= GetStringInfoLength(signature_info->message)) { SetStringInfoDatum(signature_info->message,p); - p+=GetStringInfoLength(signature_info->message); + p+=(ptrdiff_t) GetStringInfoLength(signature_info->message); n-=GetStringInfoLength(signature_info->message); TransformSignature(signature_info); } diff --git a/magick/splay-tree.c b/magick/splay-tree.c index 0a44bad..7b7dd2c 100644 --- a/magick/splay-tree.c +++ b/magick/splay-tree.c @@ -680,11 +680,9 @@ MagickExport MagickBooleanType DeleteNodeFromSplayTree( */ MagickExport SplayTreeInfo *DestroySplayTree(SplayTreeInfo *splay_tree) { - NodeInfo - *node; - NodeInfo *active, + *node, *pend; LockSemaphoreInfo(splay_tree->semaphore); @@ -1027,14 +1025,12 @@ static int IterateOverSplayTree(SplayTreeInfo *splay_tree, final_transition; NodeInfo + *node, **nodes; ssize_t i; - NodeInfo - *node; - TransitionType transition; @@ -1380,11 +1376,9 @@ MagickExport void *RemoveNodeFromSplayTree(SplayTreeInfo *splay_tree, */ MagickExport void ResetSplayTree(SplayTreeInfo *splay_tree) { - NodeInfo - *node; - NodeInfo *active, + *node, *pend; assert(splay_tree != (SplayTreeInfo *) NULL); @@ -1519,11 +1513,9 @@ static NodeInfo *Splay(SplayTreeInfo *splay_tree,const size_t depth, int compare; - NodeInfo - **next; - NodeInfo *n, + **next, *p; n=(*node); diff --git a/magick/statistic.c b/magick/statistic.c index b880676..3f2560a 100644 --- a/magick/statistic.c +++ b/magick/statistic.c @@ -365,6 +365,8 @@ static MagickRealType ApplyEvaluateOperator(RandomInfo *random_info, } case PowEvaluateOperator: { + if (fabs(value) <= MagickEpsilon) + break; if (((double) pixel < 0.0) && ((value-floor(value)) > MagickEpsilon)) result=(double) -((MagickRealType) QuantumRange*pow(-(QuantumScale* (double) pixel),(double) value)); @@ -558,7 +560,7 @@ MagickExport Image *EvaluateImages(const Image *images, #if defined(MAGICKCORE_OPENMP_SUPPORT) key=GetRandomSecretKey(random_info[0]); #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,images,image->rows,key == ~0UL) + magick_number_threads(image,images,image->rows,key == ~0UL ? 0 : 1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -666,7 +668,7 @@ MagickExport Image *EvaluateImages(const Image *images, #if defined(MAGICKCORE_OPENMP_SUPPORT) key=GetRandomSecretKey(random_info[0]); #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,images,image->rows,key == ~0UL) + magick_number_threads(image,images,image->rows,key == ~0UL ? 0 : 1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -859,7 +861,7 @@ MagickExport MagickBooleanType EvaluateImageChannel(Image *image, #if defined(MAGICKCORE_OPENMP_SUPPORT) key=GetRandomSecretKey(random_info[0]); #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,image,image->rows,key == ~0UL) + magick_number_threads(image,image,image->rows,key == ~0UL ? 0 : 1) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1141,7 +1143,7 @@ MagickExport MagickBooleanType FunctionImageChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1456,42 +1458,48 @@ MagickExport MagickBooleanType GetImageChannelKurtosis(const Image *image, { if ((channel & RedChannel) != 0) { - mean+=(MagickRealType) GetPixelRed(p); - sum_squares+=(double) GetPixelRed(p)*(double) GetPixelRed(p); - sum_cubes+=(double) GetPixelRed(p)*(double) GetPixelRed(p)*(double) + mean+=QuantumScale*GetPixelRed(p); + sum_squares+=QuantumScale*GetPixelRed(p)*QuantumScale*GetPixelRed(p); + sum_cubes+=QuantumScale*GetPixelRed(p)*QuantumScale*GetPixelRed(p)* + QuantumScale*GetPixelRed(p); + sum_fourth_power+=QuantumScale*GetPixelRed(p)*QuantumScale* + GetPixelRed(p)*QuantumScale*GetPixelRed(p)*QuantumScale* GetPixelRed(p); - sum_fourth_power+=(double) GetPixelRed(p)*(double) GetPixelRed(p)* - (double) GetPixelRed(p)*(double) GetPixelRed(p); area++; } if ((channel & GreenChannel) != 0) { - mean+=(MagickRealType) GetPixelGreen(p); - sum_squares+=(double) GetPixelGreen(p)*(double) GetPixelGreen(p); - sum_cubes+=(double) GetPixelGreen(p)*(double) GetPixelGreen(p)* - (double) GetPixelGreen(p); - sum_fourth_power+=(double) GetPixelGreen(p)*(double) GetPixelGreen(p)* - (double) GetPixelGreen(p)*(double) GetPixelGreen(p); + mean+=QuantumScale*GetPixelGreen(p); + sum_squares+=QuantumScale*GetPixelGreen(p)*QuantumScale* + GetPixelGreen(p); + sum_cubes+=QuantumScale*GetPixelGreen(p)*QuantumScale* + GetPixelGreen(p)*QuantumScale*GetPixelGreen(p); + sum_fourth_power+=QuantumScale*GetPixelGreen(p)*QuantumScale* + GetPixelGreen(p)*QuantumScale*GetPixelGreen(p)*QuantumScale* + GetPixelGreen(p); area++; } if ((channel & BlueChannel) != 0) { - mean+=(MagickRealType) GetPixelBlue(p); - sum_squares+=(double) GetPixelBlue(p)*(double) GetPixelBlue(p); - sum_cubes+=(double) GetPixelBlue(p)*(double) GetPixelBlue(p)*(double) + mean+=QuantumScale*GetPixelBlue(p); + sum_squares+=QuantumScale*GetPixelBlue(p)*QuantumScale* + GetPixelBlue(p); + sum_cubes+=QuantumScale*GetPixelBlue(p)*QuantumScale*GetPixelBlue(p)* + QuantumScale*GetPixelBlue(p); + sum_fourth_power+=QuantumScale*GetPixelBlue(p)*QuantumScale* + GetPixelBlue(p)*QuantumScale*GetPixelBlue(p)*QuantumScale* GetPixelBlue(p); - sum_fourth_power+=(double) GetPixelBlue(p)*(double) GetPixelBlue(p)* - (double) GetPixelBlue(p)*(double) GetPixelBlue(p); area++; } if ((channel & OpacityChannel) != 0) { - mean+=(MagickRealType) GetPixelAlpha(p); - sum_squares+=(double) GetPixelOpacity(p)*(double) GetPixelAlpha(p); - sum_cubes+=(double) GetPixelOpacity(p)*(double) GetPixelAlpha(p)* - (double) GetPixelAlpha(p); - sum_fourth_power+=(double) GetPixelAlpha(p)*(double) GetPixelAlpha(p)* - (double) GetPixelAlpha(p)*GetPixelAlpha(p); + mean+=QuantumScale*GetPixelAlpha(p); + sum_squares+=QuantumScale*GetPixelOpacity(p)*QuantumScale* + GetPixelAlpha(p); + sum_cubes+=QuantumScale*GetPixelOpacity(p)*QuantumScale* + GetPixelAlpha(p)*QuantumScale*GetPixelAlpha(p); + sum_fourth_power+=QuantumScale*GetPixelAlpha(p)*QuantumScale* + GetPixelAlpha(p)*QuantumScale*GetPixelAlpha(p)*GetPixelAlpha(p); area++; } if (((channel & IndexChannel) != 0) && @@ -1500,7 +1508,7 @@ MagickExport MagickBooleanType GetImageChannelKurtosis(const Image *image, double index; - index=(double) GetPixelIndex(indexes+x); + index=QuantumScale*GetPixelIndex(indexes+x); mean+=index; sum_squares+=index*index; sum_cubes+=index*index*index; @@ -1594,7 +1602,11 @@ MagickExport MagickBooleanType GetImageChannelMean(const Image *image, (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); channel_statistics=GetImageChannelStatistics(image,exception); if (channel_statistics == (ChannelStatistics *) NULL) - return(MagickFalse); + { + *mean=NAN; + *standard_deviation=NAN; + return(MagickFalse); + } channels=0; channel_statistics[CompositeChannels].mean=0.0; channel_statistics[CompositeChannels].standard_deviation=0.0; @@ -2355,15 +2367,13 @@ MagickExport ChannelStatistics *GetImageChannelStatistics(const Image *image, QuantumAny range; - ssize_t - i; - size_t channels, depth, length; ssize_t + i, y; assert(image != (Image *) NULL); @@ -2475,38 +2485,38 @@ MagickExport ChannelStatistics *GetImageChannelStatistics(const Image *image, channel_statistics[RedChannel].minima=(double) GetPixelRed(p); if ((double) GetPixelRed(p) > channel_statistics[RedChannel].maxima) channel_statistics[RedChannel].maxima=(double) GetPixelRed(p); - channel_statistics[RedChannel].sum+=(double) GetPixelRed(p); - channel_statistics[RedChannel].sum_squared+=(double) GetPixelRed(p)* - (double) GetPixelRed(p); - channel_statistics[RedChannel].sum_cubed+=(double) GetPixelRed(p)* - (double) GetPixelRed(p)*(double) GetPixelRed(p); - channel_statistics[RedChannel].sum_fourth_power+=(double) - GetPixelRed(p)*(double) GetPixelRed(p)*(double) GetPixelRed(p)* - (double) GetPixelRed(p); + channel_statistics[RedChannel].sum+=QuantumScale*GetPixelRed(p); + channel_statistics[RedChannel].sum_squared+=QuantumScale*GetPixelRed(p)* + QuantumScale*GetPixelRed(p); + channel_statistics[RedChannel].sum_cubed+=QuantumScale*GetPixelRed(p)* + QuantumScale*GetPixelRed(p)*QuantumScale*GetPixelRed(p); + channel_statistics[RedChannel].sum_fourth_power+=QuantumScale* + GetPixelRed(p)*QuantumScale*GetPixelRed(p)*QuantumScale*GetPixelRed(p)* + QuantumScale*GetPixelRed(p); if ((double) GetPixelGreen(p) < channel_statistics[GreenChannel].minima) channel_statistics[GreenChannel].minima=(double) GetPixelGreen(p); if ((double) GetPixelGreen(p) > channel_statistics[GreenChannel].maxima) channel_statistics[GreenChannel].maxima=(double) GetPixelGreen(p); - channel_statistics[GreenChannel].sum+=(double) GetPixelGreen(p); - channel_statistics[GreenChannel].sum_squared+=(double) GetPixelGreen(p)* - (double) GetPixelGreen(p); - channel_statistics[GreenChannel].sum_cubed+=(double) GetPixelGreen(p)* - (double) GetPixelGreen(p)*(double) GetPixelGreen(p); - channel_statistics[GreenChannel].sum_fourth_power+=(double) - GetPixelGreen(p)*(double) GetPixelGreen(p)*(double) GetPixelGreen(p)* - (double) GetPixelGreen(p); + channel_statistics[GreenChannel].sum+=QuantumScale*GetPixelGreen(p); + channel_statistics[GreenChannel].sum_squared+=QuantumScale*GetPixelGreen(p)* + QuantumScale*GetPixelGreen(p); + channel_statistics[GreenChannel].sum_cubed+=QuantumScale*GetPixelGreen(p)* + QuantumScale*GetPixelGreen(p)*QuantumScale*GetPixelGreen(p); + channel_statistics[GreenChannel].sum_fourth_power+=QuantumScale* + GetPixelGreen(p)*QuantumScale*GetPixelGreen(p)*QuantumScale* + GetPixelGreen(p)*QuantumScale*GetPixelGreen(p); if ((double) GetPixelBlue(p) < channel_statistics[BlueChannel].minima) channel_statistics[BlueChannel].minima=(double) GetPixelBlue(p); if ((double) GetPixelBlue(p) > channel_statistics[BlueChannel].maxima) channel_statistics[BlueChannel].maxima=(double) GetPixelBlue(p); - channel_statistics[BlueChannel].sum+=(double) GetPixelBlue(p); - channel_statistics[BlueChannel].sum_squared+=(double) GetPixelBlue(p)* - (double) GetPixelBlue(p); - channel_statistics[BlueChannel].sum_cubed+=(double) GetPixelBlue(p)* - (double) GetPixelBlue(p)*(double) GetPixelBlue(p); - channel_statistics[BlueChannel].sum_fourth_power+=(double) - GetPixelBlue(p)*(double) GetPixelBlue(p)*(double) GetPixelBlue(p)* - (double) GetPixelBlue(p); + channel_statistics[BlueChannel].sum+=QuantumScale*GetPixelBlue(p); + channel_statistics[BlueChannel].sum_squared+=QuantumScale*GetPixelBlue(p)* + QuantumScale*GetPixelBlue(p); + channel_statistics[BlueChannel].sum_cubed+=QuantumScale*GetPixelBlue(p)* + QuantumScale*GetPixelBlue(p)*QuantumScale*GetPixelBlue(p); + channel_statistics[BlueChannel].sum_fourth_power+=QuantumScale* + GetPixelBlue(p)*QuantumScale*GetPixelBlue(p)*QuantumScale* + GetPixelBlue(p)*QuantumScale*GetPixelBlue(p); histogram[ScaleQuantumToMap(GetPixelRed(p))].red++; histogram[ScaleQuantumToMap(GetPixelGreen(p))].green++; histogram[ScaleQuantumToMap(GetPixelBlue(p))].blue++; @@ -2516,13 +2526,15 @@ MagickExport ChannelStatistics *GetImageChannelStatistics(const Image *image, channel_statistics[OpacityChannel].minima=(double) GetPixelAlpha(p); if ((double) GetPixelAlpha(p) > channel_statistics[OpacityChannel].maxima) channel_statistics[OpacityChannel].maxima=(double) GetPixelAlpha(p); - channel_statistics[OpacityChannel].sum+=GetPixelAlpha(p); - channel_statistics[OpacityChannel].sum_squared+=(double) - GetPixelAlpha(p)*GetPixelAlpha(p); - channel_statistics[OpacityChannel].sum_cubed+=(double) - GetPixelAlpha(p)*GetPixelAlpha(p)*GetPixelAlpha(p); - channel_statistics[OpacityChannel].sum_fourth_power+=(double) - GetPixelAlpha(p)*GetPixelAlpha(p)*GetPixelAlpha(p)*GetPixelAlpha(p); + channel_statistics[OpacityChannel].sum+=QuantumScale*GetPixelAlpha(p); + channel_statistics[OpacityChannel].sum_squared+=QuantumScale* + GetPixelAlpha(p)*QuantumScale*GetPixelAlpha(p); + channel_statistics[OpacityChannel].sum_cubed+=QuantumScale* + GetPixelAlpha(p)*QuantumScale*GetPixelAlpha(p)*QuantumScale* + GetPixelAlpha(p); + channel_statistics[OpacityChannel].sum_fourth_power+=QuantumScale* + GetPixelAlpha(p)*QuantumScale*GetPixelAlpha(p)*QuantumScale* + GetPixelAlpha(p)*QuantumScale*GetPixelAlpha(p); histogram[ScaleQuantumToMap(GetPixelAlpha(p))].opacity++; } if (image->colorspace == CMYKColorspace) @@ -2533,16 +2545,17 @@ MagickExport ChannelStatistics *GetImageChannelStatistics(const Image *image, if ((double) GetPixelIndex(indexes+x) > channel_statistics[BlackChannel].maxima) channel_statistics[BlackChannel].maxima=(double) GetPixelIndex(indexes+x); - channel_statistics[BlackChannel].sum+=(double) + channel_statistics[BlackChannel].sum+=QuantumScale* + GetPixelIndex(indexes+x); + channel_statistics[BlackChannel].sum_squared+=QuantumScale* + GetPixelIndex(indexes+x)*QuantumScale*GetPixelIndex(indexes+x); + channel_statistics[BlackChannel].sum_cubed+=QuantumScale* + GetPixelIndex(indexes+x)*QuantumScale*GetPixelIndex(indexes+x)* + QuantumScale*GetPixelIndex(indexes+x); + channel_statistics[BlackChannel].sum_fourth_power+=QuantumScale* + GetPixelIndex(indexes+x)*QuantumScale*GetPixelIndex(indexes+x)* + QuantumScale*GetPixelIndex(indexes+x)*QuantumScale* GetPixelIndex(indexes+x); - channel_statistics[BlackChannel].sum_squared+=(double) - GetPixelIndex(indexes+x)*(double) GetPixelIndex(indexes+x); - channel_statistics[BlackChannel].sum_cubed+=(double) - GetPixelIndex(indexes+x)*(double) GetPixelIndex(indexes+x)* - (double) GetPixelIndex(indexes+x); - channel_statistics[BlackChannel].sum_fourth_power+=(double) - GetPixelIndex(indexes+x)*(double) GetPixelIndex(indexes+x)* - (double) GetPixelIndex(indexes+x)*(double) GetPixelIndex(indexes+x); histogram[ScaleQuantumToMap(GetPixelIndex(indexes+x))].index++; } x++; @@ -2696,6 +2709,16 @@ MagickExport ChannelStatistics *GetImageChannelStatistics(const Image *image, channel_statistics[i].mean)*(standard_deviation*standard_deviation* standard_deviation*standard_deviation)-3.0; } + for (i=0; i <= (ssize_t) CompositeChannels; i++) + { + channel_statistics[i].mean*=QuantumRange; + channel_statistics[i].variance*=QuantumRange; + channel_statistics[i].standard_deviation*=QuantumRange; + channel_statistics[i].sum*=QuantumRange; + channel_statistics[i].sum_squared*=QuantumRange; + channel_statistics[i].sum_cubed*=QuantumRange; + channel_statistics[i].sum_fourth_power*=QuantumRange; + } channel_statistics[CompositeChannels].mean=0.0; channel_statistics[CompositeChannels].standard_deviation=0.0; for (i=0; i < (ssize_t) CompositeChannels; i++) @@ -2922,7 +2945,7 @@ MagickExport Image *PolynomialImageChannel(const Image *images, polynomial_pixel[x].blue)); if (image->matte == MagickFalse) SetPixelOpacity(q,ClampToQuantum((MagickRealType) QuantumRange- - (MagickRealType) QuantumRange*polynomial_pixel[x].opacity)); + (MagickRealType) QuantumRange*polynomial_pixel[x].opacity)); else SetPixelAlpha(q,ClampToQuantum((MagickRealType) QuantumRange- (MagickRealType) QuantumRange*polynomial_pixel[x].opacity)); @@ -3123,6 +3146,7 @@ static void AddNodePixelList(PixelList *pixel_list,const ssize_t channel, Determine where it belongs in the list. */ search=65536UL; + (void) memset(update,0,sizeof(update)); for (level=list->level; level >= 0; level--) { while (list->nodes[search].next[level] < color) @@ -3730,8 +3754,8 @@ MagickExport Image *StatisticImageChannel(const Image *image, { for (u=0; u < (ssize_t) neighbor_width; u++) InsertPixelList(image,r+u,s+u,pixel_list[id]); - r+=image->columns+neighbor_width; - s+=image->columns+neighbor_width; + r+=(ptrdiff_t) image->columns+neighbor_width; + s+=(ptrdiff_t) image->columns+neighbor_width; } GetMagickPixelPacket(image,&pixel); SetMagickPixelPacket(image,p+neighbor_width*neighbor_height/2,indexes+x+ diff --git a/magick/stream-private.h b/magick/stream-private.h index ce5927e..2161006 100644 --- a/magick/stream-private.h +++ b/magick/stream-private.h @@ -43,6 +43,9 @@ extern MagickExport void SetStreamInfoMap(StreamInfo *,const char *), SetStreamInfoStorageType(StreamInfo *,const StorageType); +extern MagickPrivate void + ResetStreamAnonymousMemory(void); + #if defined(__cplusplus) || defined(c_plusplus) } #endif diff --git a/magick/stream.c b/magick/stream.c index 027d52d..b479f00 100644 --- a/magick/stream.c +++ b/magick/stream.c @@ -521,7 +521,7 @@ static MagickBooleanType GetOneVirtualPixelFromStream(const Image *image, % % GetStreamInfoClientData() gets the stream info client data. % -% The format of the SetStreamInfoClientData method is: +% The format of the GetStreamInfoClientData method is: % % const void *GetStreamInfoClientData(StreamInfo *stream_info) % @@ -1004,6 +1004,28 @@ MagickExport Image *ReadStream(const ImageInfo *image_info,StreamHandler stream, % % % % % % ++ R e s e t S t r e a m A n o n y m o u s M e m o r y % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% ResetStreamAnonymousMemory() resets the anonymous_memory value. +% +% The format of the ResetStreamAnonymousMemory method is: +% +% void ResetStreamAnonymousMemory(void) +% +*/ +MagickPrivate void ResetStreamAnonymousMemory(void) +{ +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % + S e t S t r e a m I n f o C l i e n t D a t a % % % % % diff --git a/magick/string-private.h b/magick/string-private.h index 6969099..4e88989 100644 --- a/magick/string-private.h +++ b/magick/string-private.h @@ -114,6 +114,30 @@ static inline long StringToLong(const char *magick_restrict value) return(strtol(value,(char **) NULL,10)); } +static inline MagickOffsetType StringToMagickOffsetType(const char *string, + const double interval) +{ + double + value; + + value=SiPrefixToDoubleInterval(string,interval); + if (value >= (double) MagickULLConstant(~0)) + return((MagickOffsetType) MagickULLConstant(~0)); + return((MagickOffsetType) value); +} + +static inline MagickSizeType StringToMagickSizeType(const char *string, + const double interval) +{ + double + value; + + value=SiPrefixToDoubleInterval(string,interval); + if (value >= (double) MagickULLConstant(~0)) + return(MagickULLConstant(~0)); + return((MagickSizeType) value); +} + static inline size_t StringToSizeType(const char *string,const double interval) { double diff --git a/magick/string.c b/magick/string.c index bec3e1d..b295254 100644 --- a/magick/string.c +++ b/magick/string.c @@ -659,7 +659,7 @@ MagickExport StringInfo *ConfigureFileToStringInfo(const char *filename) for (i=0; i < length; i+=count) { count=read(file,string+i,(size_t) MagickMin(length-i,(size_t) - MAGICK_SSIZE_MAX)); + MagickMaxBufferExtent)); if (count <= 0) { count=0; @@ -1180,6 +1180,9 @@ MagickExport ssize_t FormatMagickSize(const MagickSizeType size, */ MagickExport char *GetEnvironmentValue(const char *name) { +#if defined(MAGICKCORE_WINDOWS_SUPPORT) + return(NTGetEnvironmentValue(name)); +#else const char *environment; @@ -1187,6 +1190,7 @@ MagickExport char *GetEnvironmentValue(const char *name) if (environment == (const char *) NULL) return((char *) NULL); return(ConstantString(environment)); +#endif } /* @@ -1382,7 +1386,7 @@ MagickExport double InterpretSiPrefixValue(const char *magick_restrict string, if (q[1] == 'i') { value*=pow(2.0,e/0.3); - q+=2; + q+=(ptrdiff_t) 2; } else { @@ -1644,7 +1648,7 @@ MagickExport char *SanitizeString(const char *source) sanitize_source=AcquireString(source); p=sanitize_source; q=sanitize_source+strlen(sanitize_source); - for (p+=strspn(p,allowlist); p != q; p+=strspn(p,allowlist)) + for (p+=strspn(p,allowlist); p != q; p+=(ptrdiff_t) strspn(p,allowlist)) *p='_'; return(sanitize_source); } @@ -2423,7 +2427,7 @@ MagickExport char **StringToStrings(const char *text,size_t *count) { (void) FormatLocaleString(hex_string,MagickPathExtent,"%02x",*(p+j)); (void) CopyMagickString(q,hex_string,MagickPathExtent); - q+=2; + q+=(ptrdiff_t) 2; if ((j % 0x04) == 0) *q++=' '; } @@ -2626,7 +2630,7 @@ MagickExport MagickBooleanType SubstituteString(char **string, (void) memmove(p+replace_extent,p+search_extent, strlen(p+search_extent)+1); (void) memcpy(p,replace,replace_extent); - p+=replace_extent-1; + p+=(ptrdiff_t) replace_extent-1; } return(status); } diff --git a/magick/studio.h b/magick/studio.h index 7db1d72..35d4973 100644 --- a/magick/studio.h +++ b/magick/studio.h @@ -149,11 +149,9 @@ extern "C" { #endif #if defined(MAGICKCORE_HAVE_CL_CL_H) && !defined(MAGICK_PIXEL_RGBA) -# include # define MAGICKCORE_OPENCL_SUPPORT 1 #endif #if defined(MAGICKCORE_HAVE_OPENCL_CL_H) && !defined(MAGICK_PIXEL_RGBA) -# include # define MAGICKCORE_OPENCL_SUPPORT 1 #endif @@ -290,7 +288,7 @@ extern int vsnprintf(char *,size_t,const char *,va_list); # define Exit exit # define IsBasenameSeparator(c) \ (((c) == ']') || ((c) == ':') || ((c) == '/') ? MagickTrue : MagickFalse) -# define MAGICKCORE_LIBRARY_PATH "sys$login:" +# define MAGICKCORE_LIBRARY_ABSOLUTE_PATH "sys$login:" # define MAGICKCORE_SHARE_PATH "sys$login:" # define X11_PREFERENCES_PATH "decw$user_defaults:" # define ProcessPendingEvents(text) @@ -315,7 +313,7 @@ extern int vsnprintf(char *,size_t,const char *,va_list); # define DirectoryListSeparator ';' # define EditorOptions "" # define IsBasenameSeparator(c) ((c) == ':' ? MagickTrue : MagickFalse) -# define MAGICKCORE_LIBRARY_PATH "" +# define MAGICKCORE_LIBRARY_ABSOLUTE_PATH "" # define MAGICKCORE_SHARE_PATH "" # define X11_PREFERENCES_PATH "~/." # if defined(DISABLE_SIOUX) diff --git a/magick/thread-private.h b/magick/thread-private.h index e221ca7..72db674 100644 --- a/magick/thread-private.h +++ b/magick/thread-private.h @@ -27,8 +27,8 @@ extern "C" { #endif -#define magick_number_threads(source,destination,chunk,multithreaded) \ - num_threads(GetMagickNumberThreads(source,destination,chunk,multithreaded)) +#define magick_number_threads(source,destination,chunk,factor) \ + num_threads(GetMagickNumberThreads(source,destination,chunk,factor)) #if defined(__clang__) || (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 10)) #define MagickCachePrefetch(address,mode,locality) \ __builtin_prefetch(address,mode,locality) @@ -48,8 +48,10 @@ extern "C" { #endif static inline int GetMagickNumberThreads(const Image *source, - const Image *destination,const size_t chunk,int multithreaded) + const Image *destination,const size_t chunk,const int factor) { +#define WorkLoadFactor (64UL << factor) + const CacheType destination_type = (CacheType) GetImagePixelCacheType(destination), source_type = (CacheType) GetImagePixelCacheType(source); @@ -60,15 +62,12 @@ static inline int GetMagickNumberThreads(const Image *source, /* Return number of threads dependent on cache type and work load. */ - if (multithreaded == 0) - return(1); + number_threads=(int) MagickMax(MagickMin(chunk/WorkLoadFactor, + GetMagickResourceLimit(ThreadResource)),1); if (((source_type != MemoryCache) && (source_type != MapCache)) || ((destination_type != MemoryCache) && (destination_type != MapCache))) - number_threads=(int) MagickMin(GetMagickResourceLimit(ThreadResource),2); - else - number_threads=(int) MagickMin((ssize_t) - GetMagickResourceLimit(ThreadResource),(ssize_t) (chunk)/64); - return(MagickMax(number_threads,1)); + number_threads=MagickMin(number_threads,2); + return(number_threads); } static inline MagickThreadType GetMagickThreadId(void) @@ -159,7 +158,7 @@ static inline void SetOpenMPNested(const int value) omp_set_nested(value); #else static inline void SetOpenMPNested(const int magick_unused(value)) -{ +{ magick_unreferenced(value); #endif } diff --git a/magick/threshold.c b/magick/threshold.c index 0e058d0..4101878 100644 --- a/magick/threshold.c +++ b/magick/threshold.c @@ -294,7 +294,7 @@ MagickExport Image *AdaptiveThresholdImage(const Image *image, if (image->colorspace == CMYKColorspace) channel_sum.index=(MagickRealType) GetPixelIndex(indexes+(r-p)+u); } - r+=image->columns+width; + r+=(ptrdiff_t) image->columns+width; } for (x=0; x < (ssize_t) image->columns; x++) { @@ -324,7 +324,7 @@ MagickExport Image *AdaptiveThresholdImage(const Image *image, if (image->colorspace == CMYKColorspace) channel_sum.index=(MagickRealType) GetPixelIndex(indexes+x+(r-p)+ width-1); - r+=image->columns+width; + r+=(ptrdiff_t) image->columns+width; } mean.red=(MagickRealType) (channel_sum.red/number_pixels+offset); mean.green=(MagickRealType) (channel_sum.green/number_pixels+offset); @@ -864,7 +864,7 @@ MagickExport MagickBooleanType BilevelImageChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1208,7 +1208,7 @@ MagickExport MagickBooleanType ClampImageChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2689,7 +2689,7 @@ MagickExport MagickBooleanType WhiteThresholdImageChannel(Image *image, image_view=AcquireAuthenticCacheView(image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/magick/timer-private.h b/magick/timer-private.h index d591a33..48e5279 100644 --- a/magick/timer-private.h +++ b/magick/timer-private.h @@ -22,7 +22,9 @@ extern "C" { #endif -static inline void GetMagickUTCtime(const time_t *timep,struct tm *result) +#include "magick/locale_.h" + +static inline void GetMagickUTCTime(const time_t *timep,struct tm *result) { #if defined(MAGICKCORE_HAVE_GMTIME_R) (void) gmtime_r(timep,result); @@ -54,12 +56,50 @@ static inline void GetMagickLocaltime(const time_t *timep,struct tm *result) #endif } -extern MagickPrivate MagickOffsetType - GetMagickTTL(void); - extern MagickExport time_t GetMagickTime(void); +static inline MagickBooleanType IsImageTTLExpired(const Image* image) +{ + if (image->ttl == (time_t) 0) + return(MagickFalse); + return(image->ttl < GetMagickTime() ? MagickTrue : MagickFalse); +} + +static inline time_t ParseMagickTimeToLive(const char *time_to_live) +{ + char + *q; + + time_t + ttl; + + /* + Time to live, absolute or relative, e.g. 1440, 2 hours, 3 days, ... + */ + ttl=(time_t) InterpretLocaleValue(time_to_live,&q); + if (q != time_to_live) + { + while (isspace((int) ((unsigned char) *q)) != 0) + q++; + if (LocaleNCompare(q,"second",6) == 0) + ttl*=1; + if (LocaleNCompare(q,"minute",6) == 0) + ttl*=60; + if (LocaleNCompare(q,"hour",4) == 0) + ttl*=3600; + if (LocaleNCompare(q,"day",3) == 0) + ttl*=86400; + if (LocaleNCompare(q,"week",4) == 0) + ttl*=604800; + if (LocaleNCompare(q,"month",5) == 0) + ttl*=2628000; + if (LocaleNCompare(q,"year",4) == 0) + ttl*=31536000; + } + return(ttl); +} + #if defined(__cplusplus) || defined(c_plusplus) } #endif diff --git a/magick/timer.c b/magick/timer.c index 5041092..753eea9 100644 --- a/magick/timer.c +++ b/magick/timer.c @@ -265,7 +265,7 @@ MagickExport ssize_t FormatMagickTime(const time_t time,const size_t length, utc_time; assert(timestamp != (char *) NULL); - GetMagickUTCtime(&time,&utc_time); + GetMagickUTCTime(&time,&utc_time); count=FormatLocaleString(timestamp,length, "%04d-%02d-%02dT%02d:%02d:%02d%+03d:00",utc_time.tm_year+1900, utc_time.tm_mon+1,utc_time.tm_mday,utc_time.tm_hour,utc_time.tm_min, @@ -329,7 +329,7 @@ MagickExport double GetElapsedTime(TimerInfo *time_info) MagickExport time_t GetMagickTime(void) { static time_t - constant_magick_time = (time_t) 0; + magick_epoch = (time_t) 0; static MagickBooleanType epoch_initialized = MagickFalse; @@ -339,56 +339,21 @@ MagickExport time_t GetMagickTime(void) const char *source_date_epoch; - epoch_initialized=MagickTrue; source_date_epoch=getenv("SOURCE_DATE_EPOCH"); if (source_date_epoch != (const char *) NULL) { time_t epoch; - epoch=(time_t) StringToDouble(source_date_epoch,(char **) NULL); + epoch=(time_t) StringToMagickOffsetType(source_date_epoch,100.0); if ((epoch > 0) && (epoch <= time((time_t *) NULL))) - constant_magick_time=epoch; + magick_epoch=epoch; } - } - if (constant_magick_time != 0) - return(constant_magick_time); - return(time((time_t *) NULL)); -} - -/* -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% % -% % -+ G e t M a g i c k T T L % -% % -% % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% GetMagickTTL() returns the time as the number of seconds to live. -% -% The format of the GetMagickTTL method is: -% -% MagickSizeType GetMagickTTL(void) -% -*/ -MagickPrivate MagickOffsetType GetMagickTTL(void) -{ - static time_t - magick_epoch = (time_t) 0; - - static MagickBooleanType - epoch_initialized = MagickFalse; - - if (epoch_initialized == MagickFalse) - { epoch_initialized=MagickTrue; - magick_epoch=time((time_t *) NULL); } - return((MagickOffsetType) GetMagickResourceLimit(TimeResource)- - (GetMagickTime()-magick_epoch)); + if (magick_epoch != 0) + return(magick_epoch); + return(time((time_t *) NULL)); } /* diff --git a/magick/transform.c b/magick/transform.c index 55d28b2..23de392 100644 --- a/magick/transform.c +++ b/magick/transform.c @@ -107,7 +107,7 @@ MagickExport Image *AutoOrientImage(const Image *image, assert(exception != (ExceptionInfo *) NULL); assert(exception->signature == MagickCoreSignature); orient_image=(Image *) NULL; - switch(orientation) + switch (orientation) { case UndefinedOrientation: case TopLeftOrientation: @@ -254,7 +254,7 @@ MagickExport Image *ChopImage(const Image *image,const RectangleInfo *chop_info, chop_view=AcquireAuthenticCacheView(chop_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,chop_image,extent.y,1) + magick_number_threads(image,chop_image,extent.y,2) #endif for (y=0; y < (ssize_t) extent.y; y++) { @@ -318,7 +318,7 @@ MagickExport Image *ChopImage(const Image *image,const RectangleInfo *chop_info, */ #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,image,image->rows,1) + magick_number_threads(image,image,image->rows,2) #endif for (y=0; y < (ssize_t) (image->rows-(extent.y+extent.height)); y++) { @@ -686,24 +686,28 @@ MagickExport Image *CropImage(const Image *image,const RectangleInfo *geometry, } if ((page.x < 0) && (bounding_box.x >= 0)) { - page.width+=page.x-bounding_box.x; + page.width=CastDoubleToUnsigned((double) page.width+page.x- + bounding_box.x); page.x=0; } else { - page.width-=bounding_box.x-page.x; + page.width=CastDoubleToUnsigned((double) page.width-(bounding_box.x- + page.x)); page.x-=bounding_box.x; if (page.x < 0) page.x=0; } if ((page.y < 0) && (bounding_box.y >= 0)) { - page.height+=page.y-bounding_box.y; + page.height=CastDoubleToUnsigned((double) page.height+page.y- + bounding_box.y); page.y=0; } else { - page.height-=bounding_box.y-page.y; + page.height=CastDoubleToUnsigned((double) page.height-(bounding_box.y- + page.y)); page.y-=bounding_box.y; if (page.y < 0) page.y=0; @@ -749,7 +753,7 @@ MagickExport Image *CropImage(const Image *image,const RectangleInfo *geometry, crop_view=AcquireAuthenticCacheView(crop_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,crop_image,crop_image->rows,1) + magick_number_threads(image,crop_image,crop_image->rows,2) #endif for (y=0; y < (ssize_t) crop_image->rows; y++) { @@ -1088,7 +1092,7 @@ MagickExport Image *ExcerptImage(const Image *image, excerpt_view=AcquireAuthenticCacheView(excerpt_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,excerpt_image,excerpt_image->rows,1) + magick_number_threads(image,excerpt_image,excerpt_image->rows,2) #endif for (y=0; y < (ssize_t) excerpt_image->rows; y++) { @@ -1285,7 +1289,7 @@ MagickExport Image *FlipImage(const Image *image,ExceptionInfo *exception) flip_view=AcquireAuthenticCacheView(flip_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,flip_image,flip_image->rows,1) + magick_number_threads(image,flip_image,flip_image->rows,2) #endif for (y=0; y < (ssize_t) flip_image->rows; y++) { @@ -1414,7 +1418,7 @@ MagickExport Image *FlopImage(const Image *image,ExceptionInfo *exception) flop_view=AcquireAuthenticCacheView(flop_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(image,flop_image,flop_image->rows,1) + magick_number_threads(image,flop_image,flop_image->rows,2) #endif for (y=0; y < (ssize_t) flop_image->rows; y++) { @@ -1443,7 +1447,7 @@ MagickExport Image *FlopImage(const Image *image,ExceptionInfo *exception) status=MagickFalse; continue; } - q+=flop_image->columns; + q+=(ptrdiff_t) flop_image->columns; indexes=GetCacheViewVirtualIndexQueue(image_view); flop_indexes=GetCacheViewAuthenticIndexQueue(flop_view); for (x=0; x < (ssize_t) flop_image->columns; x++) @@ -1531,7 +1535,7 @@ static MagickBooleanType CopyImageRegion(Image *destination,const Image *source, destination_view=AcquireAuthenticCacheView(destination,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(status) \ - magick_number_threads(source,destination,rows,1) + magick_number_threads(source,destination,rows,2) #endif for (y=0; y < (ssize_t) rows; y++) { @@ -1845,7 +1849,7 @@ MagickExport Image *SpliceImage(const Image *image, splice_view=AcquireAuthenticCacheView(splice_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,splice_image,splice_geometry.y,1) + magick_number_threads(image,splice_image,splice_geometry.y,2) #endif for (y=0; y < (ssize_t) splice_geometry.y; y++) { @@ -1924,7 +1928,7 @@ MagickExport Image *SpliceImage(const Image *image, } #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,splice_image,splice_image->rows,1) + magick_number_threads(image,splice_image,splice_image->rows,2) #endif for (y=(ssize_t) (splice_geometry.y+splice_geometry.height); y < (ssize_t) splice_image->rows; y++) @@ -2247,7 +2251,7 @@ MagickExport Image *TransposeImage(const Image *image,ExceptionInfo *exception) transpose_view=AcquireAuthenticCacheView(transpose_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,transpose_image,image->rows,1) + magick_number_threads(image,transpose_image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2377,7 +2381,7 @@ MagickExport Image *TransverseImage(const Image *image,ExceptionInfo *exception) transverse_view=AcquireAuthenticCacheView(transverse_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,transverse_image,image->rows,1) + magick_number_threads(image,transverse_image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -2407,7 +2411,7 @@ MagickExport Image *TransverseImage(const Image *image,ExceptionInfo *exception) status=MagickFalse; continue; } - q+=image->columns; + q+=(ptrdiff_t) image->columns; for (x=0; x < (ssize_t) image->columns; x++) *--q=(*p++); indexes=GetCacheViewAuthenticIndexQueue(image_view); diff --git a/magick/type.c b/magick/type.c index c89a783..e2bbcd3 100644 --- a/magick/type.c +++ b/magick/type.c @@ -944,6 +944,7 @@ MagickExport MagickBooleanType ListTypeInfo(FILE *file,ExceptionInfo *exception) const char *family, *glyphs, + *metrics, *name, *path, *stretch, @@ -975,15 +976,18 @@ MagickExport MagickBooleanType ListTypeInfo(FILE *file,ExceptionInfo *exception) (type_info[i]->path != (char *) NULL)) (void) FormatLocaleFile(file,"\nPath: %s\n",type_info[i]->path); path=type_info[i]->path; - name="unknown"; + name="not defined"; if (type_info[i]->name != (char *) NULL) name=type_info[i]->name; - family="unknown"; + family="not defined"; if (type_info[i]->family != (char *) NULL) family=type_info[i]->family; style=CommandOptionToMnemonic(MagickStyleOptions,type_info[i]->style); stretch=CommandOptionToMnemonic(MagickStretchOptions,type_info[i]->stretch); - glyphs="unknown"; + metrics="not defined"; + if (type_info[i]->metrics != (char *) NULL) + metrics=type_info[i]->metrics; + glyphs="not defined"; if (type_info[i]->glyphs != (char *) NULL) glyphs=type_info[i]->glyphs; (void) FormatLocaleString(weight,MaxTextExtent,"%.20g",(double) @@ -993,6 +997,7 @@ MagickExport MagickBooleanType ListTypeInfo(FILE *file,ExceptionInfo *exception) (void) FormatLocaleFile(file," style: %s\n",style); (void) FormatLocaleFile(file," stretch: %s\n",stretch); (void) FormatLocaleFile(file," weight: %s\n",weight); + (void) FormatLocaleFile(file," metrics: %s\n",metrics); (void) FormatLocaleFile(file," glyphs: %s\n",glyphs); } (void) fflush(file); @@ -1260,8 +1265,7 @@ static MagickBooleanType LoadTypeCache(SplayTreeInfo *cache,const char *xml, { if (LocaleCompare((char *) keyword,"glyphs") == 0) { - if (SetTypeNodePath(filename,font_path,token,&type_info->glyphs) == - MagickFalse) + if (SetTypeNodePath(filename,font_path,token,&type_info->glyphs) == MagickFalse) type_info=(TypeInfo *) DestroyTypeNode(type_info); break; } @@ -1272,8 +1276,7 @@ static MagickBooleanType LoadTypeCache(SplayTreeInfo *cache,const char *xml, { if (LocaleCompare((char *) keyword,"metrics") == 0) { - if (SetTypeNodePath(filename,font_path,token,&type_info->metrics) == - MagickFalse) + if (SetTypeNodePath(filename,font_path,token,&type_info->metrics) == MagickFalse) type_info=(TypeInfo *) DestroyTypeNode(type_info); break; } diff --git a/magick/utility-private.h b/magick/utility-private.h index 42c7cef..8267807 100644 --- a/magick/utility-private.h +++ b/magick/utility-private.h @@ -21,6 +21,9 @@ #include "magick/memory_.h" #include "magick/nt-base.h" #include "magick/nt-base-private.h" +#if defined(MAGICKCORE_HAVE_UTIME_H) +#include +#endif #if defined(__cplusplus) || defined(c_plusplus) extern "C" { @@ -265,6 +268,80 @@ static inline int rename_utf8(const char *source,const char *destination) #endif } +static inline int set_file_timestamp(const char *path,struct stat *attributes) +{ + int + status; + +#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) +#if defined(MAGICKCORE_HAVE_UTIMENSAT) +#if defined(__APPLE__) || defined(__NetBSD__) +#define st_atim st_atimespec +#define st_ctim st_ctimespec +#define st_mtim st_mtimespec +#endif + + struct timespec + timestamp[2]; + + timestamp[0].tv_sec=attributes->st_atim.tv_sec; + timestamp[0].tv_nsec=attributes->st_atim.tv_nsec; + timestamp[1].tv_sec=attributes->st_mtim.tv_sec; + timestamp[1].tv_nsec=attributes->st_mtim.tv_nsec; + status=utimensat(AT_FDCWD,path,timestamp,0); +#else + struct utimbuf + timestamp; + + timestamp.actime=attributes->st_atime; + timestamp.modtime=attributes->st_mtime; + status=utime(path,×tamp); +#endif +#else + HANDLE + handle; + + wchar_t + *path_wide; + + status=(-1); + path_wide=create_wchar_path(path); + if (path_wide == (WCHAR *) NULL) + return(status); + handle=CreateFileW(path_wide,FILE_WRITE_ATTRIBUTES,FILE_SHARE_WRITE | + FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL); + if (handle != (HANDLE) NULL) + { + FILETIME + creation_time, + last_access_time, + last_write_time; + + ULARGE_INTEGER + date_time; + + date_time.QuadPart=(ULONGLONG) (attributes->st_ctime*10000000LL)+ + 116444736000000000LL; + creation_time.dwLowDateTime=date_time.LowPart; + creation_time.dwHighDateTime=date_time.HighPart; + date_time.QuadPart=(ULONGLONG) (attributes->st_atime*10000000LL)+ + 116444736000000000LL; + last_access_time.dwLowDateTime=date_time.LowPart; + last_access_time.dwHighDateTime=date_time.HighPart; + date_time.QuadPart=(ULONGLONG) (attributes->st_mtime*10000000LL)+ + 116444736000000000LL; + last_write_time.dwLowDateTime=date_time.LowPart; + last_write_time.dwHighDateTime=date_time.HighPart; + status=SetFileTime(handle,&creation_time,&last_access_time, + &last_write_time); + CloseHandle(handle); + status=0; + } + path_wide=(WCHAR *) RelinquishMagickMemory(path_wide); +#endif + return(status); +} + static inline int stat_utf8(const char *path,struct stat *attributes) { #if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) @@ -279,7 +356,7 @@ static inline int stat_utf8(const char *path,struct stat *attributes) path_wide=create_wchar_path(path); if (path_wide == (WCHAR *) NULL) return(-1); - status=wstat(path_wide,attributes); + status=_wstati64(path_wide,attributes); path_wide=(WCHAR *) RelinquishMagickMemory(path_wide); return(status); #endif diff --git a/magick/utility.c b/magick/utility.c index 0355a7a..8352360 100644 --- a/magick/utility.c +++ b/magick/utility.c @@ -178,13 +178,13 @@ MagickExport MagickBooleanType AcquireUniqueSymbolicLink(const char *source, char *passes; - (void) AcquireUniqueFilename(destination); - (void) RelinquishUniqueFileResource(destination); passes=GetPolicyValue("system:shred"); if (passes != (char *) NULL) passes=DestroyString(passes); else { + (void) AcquireUniqueFilename(destination); + (void) RelinquishUniqueFileResource(destination); if (*source == *DirectorySeparator) { if (symlink(source,destination) == 0) @@ -522,7 +522,7 @@ MagickExport char *Base64Encode(const unsigned char *blob, if (encode == (char *) NULL) return((char *) NULL); i=0; - for (p=blob; p < (blob+blob_length-2); p+=3) + for (p=blob; p < (blob+blob_length-2); p+=(ptrdiff_t) 3) { encode[i++]=Base64[(int) (*p >> 2)]; encode[i++]=Base64[(int) (((*p & 0x03) << 4)+(*(p+1) >> 4))]; diff --git a/magick/version.c b/magick/version.c index 7a12137..75f00e9 100644 --- a/magick/version.c +++ b/magick/version.c @@ -551,16 +551,16 @@ MagickExport unsigned int GetMagickCoreSignature(const StringInfo *nonce) p=GetStringInfoDatum(version); signature=MAGICKCORE_QUANTUM_DEPTH; (void) memcpy(p,&signature,sizeof(signature)); - p+=sizeof(signature); + p+=(ptrdiff_t) sizeof(signature); signature=MAGICKCORE_HDRI_ENABLE; (void) memcpy(p,&signature,sizeof(signature)); - p+=sizeof(signature); + p+=(ptrdiff_t) sizeof(signature); signature=MagickLibInterface; (void) memcpy(p,&signature,sizeof(signature)); - p+=sizeof(signature); + p+=(ptrdiff_t) sizeof(signature); signature=1; /* endinaness */ (void) memcpy(p,&signature,sizeof(signature)); - p+=sizeof(signature); + p+=(ptrdiff_t) sizeof(signature); SetStringInfoLength(version,p-GetStringInfoDatum(version)); if (nonce != (const StringInfo *) NULL) ConcatenateStringInfo(version,nonce); diff --git a/magick/version.h b/magick/version.h index 22ec7fb..44840b6 100644 --- a/magick/version.h +++ b/magick/version.h @@ -27,20 +27,20 @@ extern "C" { */ #define MagickPackageName "ImageMagick" #define MagickCopyright "(C) 1999 ImageMagick Studio LLC" -#define MagickLibVersion 0x69C -#define MagickLibVersionText "6.9.12" +#define MagickLibVersion 0x69D +#define MagickLibVersionText "6.9.13" #define MagickLibVersionNumber 7,0,0 -#define MagickLibAddendum "-98" +#define MagickLibAddendum "-25" #define MagickLibInterface 7 #define MagickLibMinInterface 7 #define MagickPlatform "x86_64" -#define MagickppLibVersionText "6.9.12" +#define MagickppLibVersionText "6.9.13" #define MagickppLibVersionNumber 9:0:0 -#define MagickppLibAddendum "-98" +#define MagickppLibAddendum "-25" #define MagickppLibInterface 9 #define MagickppLibMinInterface 9 -#define MagickGitRevision "18038" -#define MagickReleaseDate "2023-10-08" +#define MagickGitRevision "18639" +#define MagickReleaseDate "2025-03-29" #define MagickHomeURL "file:///usr/share/doc/ImageMagick-6/index.html" #define MagickAuthoritativeLicense \ "https://imagemagick.org/script/license.php" diff --git a/magick/version.h.in b/magick/version.h.in index 493c32a..43e719a 100644 --- a/magick/version.h.in +++ b/magick/version.h.in @@ -39,7 +39,7 @@ extern "C" { #define MagickppLibAddendum "@PACKAGE_VERSION_ADDENDUM@" #define MagickppLibInterface @MAGICKPP_LIBRARY_CURRENT@ #define MagickppLibMinInterface @MAGICKPP_LIBRARY_CURRENT_MIN@ -#define MagickGitRevision "18038" +#define MagickGitRevision "18639" #define MagickReleaseDate "@PACKAGE_RELEASE_DATE@" #define MagickHomeURL "file://@DOCUMENTATION_PATH@/index.html" #define MagickAuthoritativeLicense \ diff --git a/magick/vision.c b/magick/vision.c index 3136bf1..0840626 100644 --- a/magick/vision.c +++ b/magick/vision.c @@ -272,7 +272,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image, status=MagickFalse; continue; } - p+=image->columns; + p+=(ptrdiff_t) image->columns; for (x=0; x < (ssize_t) image->columns; x++) { ssize_t diff --git a/magick/visual-effects.c b/magick/visual-effects.c index dc22bdc..d91278d 100644 --- a/magick/visual-effects.c +++ b/magick/visual-effects.c @@ -53,6 +53,7 @@ #include "magick/attribute.h" #include "magick/cache.h" #include "magick/cache-view.h" +#include "magick/cache-private.h" #include "magick/channel.h" #include "magick/color.h" #include "magick/color-private.h" @@ -216,7 +217,7 @@ MagickExport Image *AddNoiseImageChannel(const Image *image, #if defined(MAGICKCORE_OPENMP_SUPPORT) key=GetRandomSecretKey(random_info[0]); #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,noise_image,image->rows,key == ~0UL) + magick_number_threads(image,noise_image,image->rows,key == ~0UL ? 0 : 2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -384,7 +385,7 @@ MagickExport Image *BlueShiftImage(const Image *image,const double factor, shift_view=AcquireAuthenticCacheView(shift_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,shift_image,image->rows,1) + magick_number_threads(image,shift_image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -649,7 +650,7 @@ MagickExport Image *ColorizeImage(const Image *image,const char *opacity, colorize_view=AcquireAuthenticCacheView(colorize_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static) shared(progress,status) \ - magick_number_threads(image,colorize_image,image->rows,1) + magick_number_threads(image,colorize_image,image->rows,2) #endif for (y=0; y < (ssize_t) image->rows; y++) { @@ -1068,21 +1069,21 @@ MagickExport Image *ImplodeImage(const Image *image,const double amount, double distance; + IndexPacket + *magick_restrict implode_indexes; + MagickPixelPacket pixel; + PixelPacket + *magick_restrict q; + PointInfo delta; - IndexPacket - *magick_restrict implode_indexes; - ssize_t x; - PixelPacket - *magick_restrict q; - if (status == MagickFalse) continue; q=GetCacheViewAuthenticPixels(implode_view,0,y,implode_image->columns,1, @@ -1093,31 +1094,36 @@ MagickExport Image *ImplodeImage(const Image *image,const double amount, continue; } implode_indexes=GetCacheViewAuthenticIndexQueue(implode_view); - delta.y=scale.y*(double) (y-center.y); + delta.y=scale.y*((double) y-center.y); pixel=zero; for (x=0; x < (ssize_t) image->columns; x++) { /* Determine if the pixel is within an ellipse. */ - delta.x=scale.x*(double) (x-center.x); + delta.x=scale.x*((double) x-center.x); distance=delta.x*delta.x+delta.y*delta.y; if (distance < (radius*radius)) { double factor; + PointInfo + offset; + /* Implode the pixel. */ factor=1.0; if (distance > 0.0) - factor=pow(sin((double) (MagickPI*sqrt((double) distance)* - PerceptibleReciprocal(radius)/2)),-amount); - status=InterpolateMagickPixelPacket(image,image_view, - UndefinedInterpolatePixel,(double) (factor*delta.x* - PerceptibleReciprocal(scale.x)+center.x),(double) (factor*delta.y* - PerceptibleReciprocal(scale.y)+center.y),&pixel,exception); + factor=pow(sin((double) (MagickPI*sqrt(distance)* + PerceptibleReciprocal(radius)/2.0)),-amount); + offset.x=factor*delta.x*PerceptibleReciprocal(scale.x)+center.x; + offset.y=factor*delta.y*PerceptibleReciprocal(scale.y)+center.y; + if ((IsValidPixelOffset(offset.x,image->columns) != MagickFalse) && + (IsValidPixelOffset(offset.y,image->rows) != MagickFalse)) + status=InterpolateMagickPixelPacket(image,image_view, + UndefinedInterpolatePixel,offset.x,offset.y,&pixel,exception); if (status == MagickFalse) break; SetPixelPacket(implode_image,&pixel,q,implode_indexes+x); @@ -3463,22 +3469,22 @@ static inline void HatTransform(const float *magick_restrict pixels, for (i=0; i < (ssize_t) scale; i++) { kernel[i]=0.25f*(*p+(*p)+(*q)+(*r)); - p+=stride; + p+=(ptrdiff_t) stride; q-=stride; - r+=stride; + r+=(ptrdiff_t) stride; } for ( ; i < (ssize_t) (extent-scale); i++) { kernel[i]=0.25f*(2.0f*(*p)+*(p-scale*stride)+*(p+scale*stride)); - p+=stride; + p+=(ptrdiff_t) stride; } q=p-scale*stride; r=pixels+stride*(extent-2); for ( ; i < (ssize_t) extent; i++) { kernel[i]=0.25f*(*p+(*p)+(*q)+(*r)); - p+=stride; - q+=stride; + p+=(ptrdiff_t) stride; + q+=(ptrdiff_t) stride; r-=stride; } } @@ -3645,7 +3651,7 @@ MagickExport Image *WaveletDenoiseImage(const Image *image, p=kernel+id*image->columns; q=pixels+y*image->columns; HatTransform(q+high_pass,1,image->columns,(size_t) (1UL << level),p); - q+=low_pass; + q+=(ptrdiff_t) low_pass; for (x=0; x < (ssize_t) image->columns; x++) *q++=(*p++); } @@ -3671,7 +3677,7 @@ MagickExport Image *WaveletDenoiseImage(const Image *image, for (y=0; y < (ssize_t) image->rows; y++) { *q=(*p++); - q+=image->columns; + q+=(ptrdiff_t) image->columns; } } /* diff --git a/magick/widget.c b/magick/widget.c index 8cedfc8..6278bf6 100644 --- a/magick/widget.c +++ b/magick/widget.c @@ -1168,7 +1168,8 @@ static void XEditText(Display *display,XWidgetInfo *text_info, q=text_info->text+Extent(text_info->text)+strlen(text); for (i=0; i <= Extent(text_info->cursor); i++) { - *q=(*(q-Extent(text))); + if ((q-Extent(text)) > text_info->text) + *q=(*(q-Extent(text))); q--; } p=text; @@ -1792,8 +1793,8 @@ MagickExport void XColorBrowserWidget(Display *display,XWindows *windows, XGetWidgetInfo(action,&action_info); action_info.width=width; action_info.height=(unsigned int) ((3*height) >> 1); - action_info.x=cancel_info.x-(cancel_info.width+(QuantumMargin >> 1)+ - (action_info.bevel_width << 1)); + action_info.x=(int) windows->widget.width-(int) action_info.width- + (int) cancel_info.width-2*QuantumMargin-2; action_info.y=cancel_info.y; XGetWidgetInfo(GrabButtonText,&grab_info); grab_info.width=width; @@ -5668,8 +5669,8 @@ MagickExport void XFontBrowserWidget(Display *display,XWindows *windows, XGetWidgetInfo(action,&action_info); action_info.width=width; action_info.height=(unsigned int) ((3*height) >> 1); - action_info.x=cancel_info.x-(cancel_info.width+(QuantumMargin >> 1)+ - (action_info.bevel_width << 1)); + action_info.x=(int) windows->widget.width-(int) action_info.width- + (int) cancel_info.width-2*QuantumMargin-2; action_info.y=cancel_info.y; XGetWidgetInfo(BackButtonText,&back_info); back_info.width=width; diff --git a/magick/xml-tree.c b/magick/xml-tree.c index 4192712..9e0013f 100644 --- a/magick/xml-tree.c +++ b/magick/xml-tree.c @@ -602,11 +602,11 @@ MagickPrivate char *FileToXML(const char *filename,const size_t extent) offset; size_t + i, length; ssize_t - count, - i; + count; void *map; @@ -688,7 +688,7 @@ MagickPrivate char *FileToXML(const char *filename,const size_t extent) (void) lseek(file,0,SEEK_SET); for (i=0; i < length; i+=count) { - count=read(file,xml+i,(size_t) MagickMin(length-i,(size_t) MAGICK_SSIZE_MAX)); + count=read(file,xml+i,(size_t) MagickMin(length-i,(size_t) MagickMaxBufferExtent)); if (count <= 0) { count=0; @@ -2012,7 +2012,7 @@ MagickExport XMLTreeInfo *NewXMLTree(const char *xml,ExceptionInfo *exception) utf8=DestroyString(utf8); return(&root->root); } - p+=strcspn(p,XMLWhitespace "/>"); + p+=(ptrdiff_t) strcspn(p,XMLWhitespace "/>"); while (isspace((int) ((unsigned char) *p)) != 0) *p++='\0'; if (((isalpha((int) ((unsigned char) *p)) != 0) || (*p == '_')) && @@ -2050,13 +2050,13 @@ MagickExport XMLTreeInfo *NewXMLTree(const char *xml,ExceptionInfo *exception) attributes[l+2]=(char *) NULL; attributes[l+1]=(char *) NULL; attributes[l]=p; - p+=strcspn(p,XMLWhitespace "=/>"); + p+=(ptrdiff_t) strcspn(p,XMLWhitespace "=/>"); if ((*p != '=') && (isspace((int) ((unsigned char) *p)) == 0)) attributes[l]=ConstantString(""); else { *p++='\0'; - p+=strspn(p,XMLWhitespace "="); + p+=(ptrdiff_t) strspn(p,XMLWhitespace "="); c=(*p); if ((c == '"') || (c == '\'')) { @@ -2158,7 +2158,7 @@ MagickExport XMLTreeInfo *NewXMLTree(const char *xml,ExceptionInfo *exception) Close tag. */ tag=p+1; - p+=strcspn(tag,XMLWhitespace ">")+1; + p+=(ptrdiff_t) strcspn(tag,XMLWhitespace ">")+1; c=(*p); if ((c == '\0') && (terminal != '>')) { @@ -2178,7 +2178,7 @@ MagickExport XMLTreeInfo *NewXMLTree(const char *xml,ExceptionInfo *exception) ignore_depth--; *p=c; if (isspace((int) ((unsigned char) *p)) != 0) - p+=strspn(p,XMLWhitespace); + p+=(ptrdiff_t) strspn(p,XMLWhitespace); } else if (strncmp(p,"!--",3) == 0) @@ -2205,7 +2205,7 @@ MagickExport XMLTreeInfo *NewXMLTree(const char *xml,ExceptionInfo *exception) p=strstr(p,"]]>"); if (p != (char *) NULL) { - p+=2; + p+=(ptrdiff_t) 2; if (ignore_depth == 0) ParseCharacterContent(root,tag+8,(size_t) (p-tag-10),'c'); } @@ -2227,7 +2227,7 @@ MagickExport XMLTreeInfo *NewXMLTree(const char *xml,ExceptionInfo *exception) ((l != 0) && ((*p != ']') || (*(p+strspn(p+1,XMLWhitespace)+1) != '>')))); l=(ssize_t) ((*p == '[') ? 1 : l)) - p+=strcspn(p+1,"[]>")+1; + p+=(ptrdiff_t) strcspn(p+1,"[]>")+1; if ((*p == '\0') && (terminal != '>')) { (void) ThrowMagickException(exception,GetMagickModule(), diff --git a/magick/xwindow.c b/magick/xwindow.c index c9db841..1080924 100644 --- a/magick/xwindow.c +++ b/magick/xwindow.c @@ -2192,7 +2192,7 @@ static void XDitherImage(Image *image,XImage *ximage) if (j == 16) j=0; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; i++; if (i == 2) i=0; @@ -3558,7 +3558,7 @@ MagickExport void XGetResourceInfo(const ImageInfo *image_info, resource_info->title=XGetResourceClass(database,client_name,"title", (char *) NULL); resource_value=XGetResourceClass(database,client_name,"undoCache", - (char *) "256"); + (char *) "4096"); resource_info->undo_cache=(unsigned int) StringToUnsignedLong(resource_value); resource_value=XGetResourceClass(database,client_name,"update", (char *) "False"); @@ -5000,10 +5000,7 @@ MagickExport Image *XImportImage(const ImageInfo *image_info, image=XGetWindowImage(display,target,ximage_info->borders, ximage_info->descend ? 1U : 0U); (void) XUngrabServer(display); - if (image == (Image *) NULL) - ThrowXWindowException(XServerError,"UnableToReadXWindowImage", - image_info->filename) - else + if (image != (Image *) NULL) { (void) CopyMagickString(image->filename,image_info->filename, MaxTextExtent); @@ -5929,7 +5926,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, } if (bit != 0) *q=byte >> (8-bit); - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } } else @@ -5984,7 +5981,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, } } } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6024,7 +6021,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, } } } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6052,7 +6049,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, pixel=pixels[(ssize_t) GetPixelIndex(indexes+x)]; *q++=(unsigned char) pixel; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6084,7 +6081,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, pixel>>=8; } } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6141,7 +6138,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, } p++; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6182,7 +6179,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, } p++; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6210,7 +6207,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, *q++=(unsigned char) pixel; p++; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6325,7 +6322,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, } p++; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } } break; @@ -6363,7 +6360,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, } if (bit != 0) *q=byte >> (8-bit); - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } } canvas_view=DestroyCacheView(canvas_view); @@ -6538,7 +6535,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, } if (bit != 0) *q=byte << (8-bit); - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } } else @@ -6593,7 +6590,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, } } } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6633,7 +6630,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, } } } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6661,7 +6658,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, pixel=pixels[(ssize_t) GetPixelIndex(indexes+x)]; *q++=(unsigned char) pixel; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6698,7 +6695,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, for (k=0; k < (int) bytes_per_pixel; k++) *q++=channel[k]; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6755,7 +6752,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, } p++; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6796,7 +6793,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, } p++; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6824,7 +6821,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, *q++=(unsigned char) pixel; p++; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } break; } @@ -6939,7 +6936,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, } p++; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } } break; @@ -6977,7 +6974,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, } if (bit != 0) *q=byte << (8-bit); - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } } canvas_view=DestroyCacheView(canvas_view); @@ -7207,7 +7204,7 @@ MagickExport void XMakeMagnifyImage(Display *display,XWindows *windows) } if (q_bit != 0) *q=byte >> (8-q_bit); - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } } y++; @@ -7279,7 +7276,7 @@ MagickExport void XMakeMagnifyImage(Display *display,XWindows *windows) } if (q_bit != 0) *q=byte << (8-q_bit); - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } } y++; @@ -7315,7 +7312,7 @@ MagickExport void XMakeMagnifyImage(Display *display,XWindows *windows) *q++=(*p); p++; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } y++; } @@ -7348,9 +7345,9 @@ MagickExport void XMakeMagnifyImage(Display *display,XWindows *windows) for (l=0; l < magnify; l++) for (m=0; m < bytes_per_pixel; m++) *q++=(*(p+m)); - p+=bytes_per_pixel; + p+=(ptrdiff_t) bytes_per_pixel; } - q+=scanline_pad; + q+=(ptrdiff_t) scanline_pad; } y++; } @@ -9221,7 +9218,7 @@ static Window XSelectWindow(Display *display,RectangleInfo *crop_info) annotate_context=XCreateGC(display,root_window,(size_t) (GCBackground | GCForeground | GCFunction | GCSubwindowMode),&context_values); if (annotate_context == (GC) NULL) - return(MagickFalse); + return((Window) NULL); /* Grab the pointer using target cursor. */ @@ -9321,6 +9318,8 @@ static Window XSelectWindow(Display *display,RectangleInfo *crop_info) } if ((crop_info->width != 0) && (crop_info->height != 0)) target_window=root_window; + if (event.xbutton.button == Button3) + target_window=(Window) NULL; return(target_window); } diff --git a/wand/MagickWand-config.in b/wand/MagickWand-config.in index da7f750..03680cf 100644 --- a/wand/MagickWand-config.in +++ b/wand/MagickWand-config.in @@ -6,6 +6,9 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ +libdir=@libdir@ +pkgconfigdir=@pkgconfigdir@ +export PKG_CONFIG_LIBDIR="${pkgconfigdir}" usage="\ Usage: MagickWand-config [--cflags] [--cppflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version]" diff --git a/wand/compare.c b/wand/compare.c index 6566d19..4325697 100644 --- a/wand/compare.c +++ b/wand/compare.c @@ -44,6 +44,7 @@ #include "wand/studio.h" #include "wand/MagickWand.h" #include "wand/mogrify-private.h" +#include "magick/image-private.h" #include "magick/string-private.h" /* @@ -104,6 +105,7 @@ static MagickBooleanType CompareUsage(void) " -separate separate an image channel into a grayscale image\n" " -write filename write images to this file", settings[] = + " -adjoin join images into a single multi-image file\n" " -alpha option on, activate, off, deactivate, set, opaque, copy\n" " transparent, extract, background, or shape\n" " -authenticate password\n" @@ -194,7 +196,7 @@ WandExport MagickBooleanType CompareImageCommand(ImageInfo *image_info, int argc,char **argv,char **metadata,ExceptionInfo *exception) { #define CompareEpsilon (1.0e-06) -#define DefaultDissimilarityThreshold 0.31830988618379067154 +#define DefaultDissimilarityThreshold (1.0/MagickPI) #define DefaultSimilarityThreshold (-1.0) #define DestroyCompare() \ { \ @@ -255,6 +257,7 @@ WandExport MagickBooleanType CompareImageCommand(ImageInfo *image_info, fire, pend, respect_parenthesis, + similar = MagickTrue, subimage_search; MagickStatusType @@ -371,6 +374,8 @@ WandExport MagickBooleanType CompareImageCommand(ImageInfo *image_info, { case 'a': { + if (LocaleCompare("adjoin",option+1) == 0) + break; if (LocaleCompare("alpha",option+1) == 0) { ssize_t @@ -1164,69 +1169,82 @@ WandExport MagickBooleanType CompareImageCommand(ImageInfo *image_info, similarity_image=SimilarityMetricImage(image,reconstruct_image,metric, &offset,&similarity_metric,exception); if (similarity_metric > dissimilarity_threshold) - ThrowCompareException(ImageError,"ImagesTooDissimilar",image->filename); + (void) ThrowMagickException(exception,GetMagickModule(),ImageWarning, + "ImagesTooDissimilar","`%s'",image->filename); } - if ((reconstruct_image->columns == image->columns) && - (reconstruct_image->rows == image->rows)) + if (similarity_image == (Image *) NULL) difference_image=CompareImageChannels(image,reconstruct_image,channels, metric,&distortion,exception); else - if (similarity_image == (Image *) NULL) - difference_image=CompareImageChannels(image,reconstruct_image,channels, - metric,&distortion,exception); - else - { - Image - *composite_image; + { + Image + *composite_image; - /* - Determine if reconstructed image is a subimage of the image. - */ - composite_image=CloneImage(image,0,0,MagickTrue,exception); - if (composite_image == (Image *) NULL) - difference_image=CompareImageChannels(image,reconstruct_image, - channels,metric,&distortion,exception); - else - { - Image - *distort_image; + /* + Determine if reconstructed image is a subimage of the image. + */ + composite_image=CloneImage(image,0,0,MagickTrue,exception); + if (composite_image == (Image *) NULL) + difference_image=CompareImageChannels(image,reconstruct_image, + channels,metric,&distortion,exception); + else + { + Image + *distort_image; - RectangleInfo - page; + RectangleInfo + page; - (void) CompositeImage(composite_image,CopyCompositeOp, - reconstruct_image,offset.x,offset.y); - difference_image=CompareImageChannels(image,composite_image, - channels,metric,&distortion,exception); - if (difference_image != (Image *) NULL) - { - difference_image->page.x=offset.x; - difference_image->page.y=offset.y; - } - composite_image=DestroyImage(composite_image); - page.width=reconstruct_image->columns; - page.height=reconstruct_image->rows; - page.x=offset.x; - page.y=offset.y; - distort_image=CropImage(image,&page,exception); - if (distort_image != (Image *) NULL) - { - Image - *sans_image; + (void) CompositeImage(composite_image,CopyCompositeOp, + reconstruct_image,offset.x,offset.y); + difference_image=CompareImageChannels(image,composite_image, + channels,metric,&distortion,exception); + if (difference_image != (Image *) NULL) + { + difference_image->page.x=offset.x; + difference_image->page.y=offset.y; + } + composite_image=DestroyImage(composite_image); + page.width=reconstruct_image->columns; + page.height=reconstruct_image->rows; + page.x=offset.x; + page.y=offset.y; + distort_image=CropImage(image,&page,exception); + if (distort_image != (Image *) NULL) + { + Image + *sans_image; - sans_image=CompareImageChannels(distort_image,reconstruct_image, - channels,metric,&distortion,exception); - distort_image=DestroyImage(distort_image); - if (sans_image != (Image *) NULL) - sans_image=DestroyImage(sans_image); - } - } - if (difference_image != (Image *) NULL) - { - AppendImageToList(&difference_image,similarity_image); - similarity_image=(Image *) NULL; - } - } + sans_image=CompareImageChannels(distort_image,reconstruct_image, + channels,metric,&distortion,exception); + distort_image=DestroyImage(distort_image); + if (sans_image != (Image *) NULL) + sans_image=DestroyImage(sans_image); + } + } + if (difference_image != (Image *) NULL) + { + AppendImageToList(&difference_image,similarity_image); + similarity_image=(Image *) NULL; + } + } + if (fabs(distortion) > CompareEpsilon) + similar=MagickFalse; + switch (metric) + { + case NormalizedCrossCorrelationErrorMetric: + { + distortion=1.0-distortion; + similarity_metric=1.0-similarity_metric; + } + case PeakSignalToNoiseRatioMetric: + { + distortion=fabs(distortion); + similarity_metric=fabs(similarity_metric); + } + default: + break; + } if (difference_image == (Image *) NULL) status=0; else @@ -1245,6 +1263,9 @@ WandExport MagickBooleanType CompareImageCommand(ImageInfo *image_info, case MeanSquaredErrorMetric: case PeakAbsoluteErrorMetric: case RootMeanSquaredErrorMetric: + case AbsoluteErrorMetric: + case NormalizedCrossCorrelationErrorMetric: + case PerceptualHashErrorMetric: { (void) FormatLocaleFile(stderr,"%.*g (%.*g)",GetMagickPrecision(), (double) QuantumRange*distortion,GetMagickPrecision(), @@ -1254,15 +1275,7 @@ WandExport MagickBooleanType CompareImageCommand(ImageInfo *image_info, case PeakSignalToNoiseRatioMetric: { (void) FormatLocaleFile(stderr,"%.*g (%.*g)",GetMagickPrecision(), - distortion,GetMagickPrecision(),0.01*distortion); - break; - } - case AbsoluteErrorMetric: - case NormalizedCrossCorrelationErrorMetric: - case PerceptualHashErrorMetric: - { - (void) FormatLocaleFile(stderr,"%.*g",GetMagickPrecision(), - distortion); + 48.1647*distortion,GetMagickPrecision(),distortion); break; } case MeanErrorPerPixelMetric: @@ -1277,8 +1290,9 @@ WandExport MagickBooleanType CompareImageCommand(ImageInfo *image_info, break; } if (subimage_search != MagickFalse) - (void) FormatLocaleFile(stderr," @ %.20g,%.20g",(double) - difference_image->page.x,(double) difference_image->page.y); + (void) FormatLocaleFile(stderr," @ %.20g,%.20g [%.*g]", + (double) offset.x,(double) offset.y,GetMagickPrecision(), + similarity_metric); } else { @@ -1437,8 +1451,13 @@ WandExport MagickBooleanType CompareImageCommand(ImageInfo *image_info, channel_distortion=(double *) RelinquishMagickMemory( channel_distortion); if (subimage_search != MagickFalse) - (void) FormatLocaleFile(stderr," Offset: %.20g,%.20g\n",(double) - difference_image->page.x,(double) difference_image->page.y); + { + (void) FormatLocaleFile(stderr," Offset: %.20g,%.20g\n", + (double) difference_image->page.x,(double) + difference_image->page.y); + (void) FormatLocaleFile(stderr," Similarity metric: %.*g\n", + GetMagickPrecision(),similarity_metric); + } } (void) ResetImagePage(difference_image,"0x0+0+0"); if (difference_image->next != (Image *) NULL) @@ -1461,14 +1480,7 @@ WandExport MagickBooleanType CompareImageCommand(ImageInfo *image_info, } DestroyCompare(); image_info=restore_info; - if ((metric == NormalizedCrossCorrelationErrorMetric) || - (metric == UndefinedErrorMetric)) - { - if (fabs(distortion-1.0) > CompareEpsilon) - (void) SetImageOption(image_info,"compare:dissimilar","true"); - } - else - if (fabs(distortion) > CompareEpsilon) - (void) SetImageOption(image_info,"compare:dissimilar","true"); + if (similar == MagickFalse) + (void) SetImageOption(image_info,"compare:dissimilar","true"); return(status != 0 ? MagickTrue : MagickFalse); } diff --git a/wand/drawing-wand.c b/wand/drawing-wand.c index 8d3a9f7..09a3e82 100644 --- a/wand/drawing-wand.c +++ b/wand/drawing-wand.c @@ -279,8 +279,7 @@ static int MVGAutoWrapPrintf(DrawingWand *wand,const char *format,...) static void MVGAppendColor(DrawingWand *wand,const PixelPacket *color) { - if ((GetPixelRed(color) == 0) && - (GetPixelGreen(color) == 0) && + if ((GetPixelRed(color) == 0) && (GetPixelGreen(color) == 0) && (GetPixelBlue(color) == 0) && (GetPixelOpacity(color) == (Quantum) TransparentOpacity)) (void) MVGPrintf(wand,"none"); @@ -943,7 +942,7 @@ WandExport MagickBooleanType DrawComposite(DrawingWand *wand, for (i=(ssize_t) encoded_length; i > 0; i-=76) { (void) MVGPrintf(wand,"%.76s",p); - p+=76; + p+=(ptrdiff_t) 76; if (i > 76) (void) MVGPrintf(wand,"\n"); } @@ -1851,27 +1850,24 @@ WandExport void DrawGetStrokeColor(const DrawingWand *wand, WandExport double *DrawGetStrokeDashArray(const DrawingWand *wand, size_t *number_elements) { - double - *dasharray; - const double *p; double + *dasharray, *q; + size_t + n = 0; + ssize_t i; - size_t - n; - assert(wand != (const DrawingWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); assert(number_elements != (size_t *) NULL); - n=0; p=CurrentContext->dash_pattern; if (p != (const double *) NULL) while (fabs(*p++) >= MagickEpsilon) diff --git a/wand/identify.c b/wand/identify.c index 3bd41f8..db695ce 100644 --- a/wand/identify.c +++ b/wand/identify.c @@ -499,6 +499,8 @@ WandExport MagickBooleanType IdentifyImageCommand(ImageInfo *image_info, ThrowIdentifyException(OptionError,"NoSuchOption",argv[i]); break; } + if (LocaleNCompare("identify:locate",argv[i],15) == 0) + image_info->ping=MagickFalse; break; } if (LocaleCompare("density",option+1) == 0) @@ -579,6 +581,7 @@ WandExport MagickBooleanType IdentifyImageCommand(ImageInfo *image_info, if (i == (ssize_t) argc) ThrowIdentifyException(OptionError,"MissingArgument",option); format=argv[i]; + image_info->ping=MagickFalse; break; } if (LocaleCompare("fuzz",option+1) == 0) diff --git a/wand/magick-property.c b/wand/magick-property.c index c4ce738..0e4401d 100644 --- a/wand/magick-property.c +++ b/wand/magick-property.c @@ -566,7 +566,7 @@ WandExport char *MagickGetImageArtifact(MagickWand *wand,const char *artifact) % % % % % % -% M a g i c k G e t I m a g e P r o p e r t i e s % +% M a g i c k G e t I m a g e A r t i f a c t s % % % % % % % @@ -600,12 +600,12 @@ WandExport char **MagickGetImageArtifacts(MagickWand *wand, const char *artifact; - ssize_t - i; - size_t length; + ssize_t + i; + assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) @@ -616,13 +616,13 @@ WandExport char **MagickGetImageArtifacts(MagickWand *wand, "ContainsNoImages","`%s'",wand->name); return((char **) NULL); } - (void) GetImageProperty(wand->images,"exif:*"); + (void) GetImageArtifact(wand->images,"exif:*"); length=1024; artifacts=(char **) AcquireQuantumMemory(length,sizeof(*artifacts)); if (artifacts == (char **) NULL) return((char **) NULL); - ResetImagePropertyIterator(wand->images); - artifact=GetNextImageProperty(wand->images); + ResetImageArtifactIterator(wand->images); + artifact=GetNextImageArtifact(wand->images); for (i=0; artifact != (const char *) NULL; ) { if ((*artifact != '[') && @@ -644,7 +644,7 @@ WandExport char **MagickGetImageArtifacts(MagickWand *wand, artifacts[i]=ConstantString(artifact); i++; } - artifact=GetNextImageProperty(wand->images); + artifact=GetNextImageArtifact(wand->images); } artifacts[i]=(char *) NULL; *number_artifacts=(size_t) i; diff --git a/wand/method-attribute.h b/wand/method-attribute.h index 0631d66..8790d11 100644 --- a/wand/method-attribute.h +++ b/wand/method-attribute.h @@ -22,7 +22,7 @@ extern "C" { #endif -#if defined(__BORLANDC__) && defined(_DLL) +#if defined(_DLL) # define _MAGICKDLL_ # define _MAGICKLIB_ # define MAGICKCORE_MODULES_SUPPORT diff --git a/wand/mogrify.c b/wand/mogrify.c index 4d2dee2..bc80d54 100644 --- a/wand/mogrify.c +++ b/wand/mogrify.c @@ -4002,24 +4002,13 @@ WandExport MagickBooleanType MogrifyImageCommand(ImageInfo *image_info, status&=WriteImages(image_info,image,image->filename,exception); if (status != MagickFalse) { -#if defined(MAGICKCORE_HAVE_UTIME) - { - MagickBooleanType - preserve_timestamp; - - preserve_timestamp=IsStringTrue(GetImageOption(image_info, - "preserve-timestamp")); - if (preserve_timestamp != MagickFalse) - { - struct utimbuf - timestamp; + MagickBooleanType + preserve_timestamp; - timestamp.actime=properties.st_atime; - timestamp.modtime=properties.st_mtime; - (void) utime(image->filename,×tamp); - } - } -#endif + preserve_timestamp=IsStringTrue(GetImageOption(image_info, + "preserve-timestamp")); + if (preserve_timestamp != MagickFalse) + (void) set_file_timestamp(image->filename,&properties); if (*backup_filename != '\0') (void) remove_utf8(backup_filename); } @@ -7180,6 +7169,8 @@ WandExport MagickBooleanType MogrifyImageInfo(ImageInfo *image_info, limit=MagickResourceInfinity; if (LocaleCompare("unlimited",argv[i+2]) != 0) limit=(MagickSizeType) SiPrefixToDoubleInterval(argv[i+2],100.0); + if (type == TimeResource) + limit=(MagickSizeType) ParseMagickTimeToLive(argv[i+2]); (void) SetMagickResourceLimit(type,limit); break; } @@ -8843,7 +8834,7 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info, if ((p == (Image *) NULL) || (q == (Image *) NULL)) { (void) ThrowMagickException(exception,GetMagickModule(), - OptionError,"NoSuchImage","`%s'",(*images)->filename); + OptionError,"InvalidImageIndex","`%s'",(*images)->filename); status=MagickFalse; break; } diff --git a/wand/studio.h b/wand/studio.h index f690956..59be1d5 100644 --- a/wand/studio.h +++ b/wand/studio.h @@ -139,11 +139,9 @@ extern "C" { #endif #if defined(MAGICKCORE_HAVE_CL_CL_H) && !defined(MAGICK_PIXEL_RGBA) -# include # define MAGICKCORE_OPENCL_SUPPORT 1 #endif #if defined(MAGICKCORE_HAVE_OPENCL_CL_H) && !defined(MAGICK_PIXEL_RGBA) -# include # define MAGICKCORE_OPENCL_SUPPORT 1 #endif @@ -273,7 +271,7 @@ extern int vsnprintf(char *,size_t,const char *,va_list); # define Exit exit # define IsBasenameSeparator(c) \ (((c) == ']') || ((c) == ':') || ((c) == '/') ? MagickTrue : MagickFalse) -# define MAGICKCORE_LIBRARY_PATH "sys$login:" +# define MAGICKCORE_LIBRARY_ABSOLUTE_PATH "sys$login:" # define MAGICKCORE_SHARE_PATH "sys$login:" # define X11_PREFERENCES_PATH "decw$user_defaults:" # define ProcessPendingEvents(text) @@ -298,7 +296,7 @@ extern int vsnprintf(char *,size_t,const char *,va_list); # define DirectoryListSeparator ';' # define EditorOptions "" # define IsBasenameSeparator(c) ((c) == ':' ? MagickTrue : MagickFalse) -# define MAGICKCORE_LIBRARY_PATH "" +# define MAGICKCORE_LIBRARY_ABSOLUTE_PATH "" # define MAGICKCORE_SHARE_PATH "" # define X11_PREFERENCES_PATH "~/." # if defined(DISABLE_SIOUX) diff --git a/www/Magick++/Documentation.html b/www/Magick++/Documentation.html index 6f560ef..86759cf 100644 --- a/www/Magick++/Documentation.html +++ b/www/Magick++/Documentation.html @@ -9,12 +9,12 @@

    -

    Magick++ provides a simple C++ API to the ImageMagick image processing library which supports reading and writing a huge number of image formats as well as supporting a broad spectrum of traditional image processing operations. The ImageMagick C API is complex and the data structures are currently not documented. Magick++ provides access to most of the features available from the C API but in a simple object-oriented and well-documented framework.

    +

    Magick++ provides a simple C++ API to the ImageMagick image processing library which supports reading and writing a huge number of image formats as well as supporting a broad spectrum of traditional image processing operations. The ImageMagick C API is complex and the data structures are currently not documented. Magick++ provides access to most of the features available from the C API but in a simple object-oriented and well-documented framework.

    Magick++ is intended to support commercial-grade application development. In order to avoid possible conflicts with the user's application, all symbols contained in Magick++ (included by the header <Magick++.h>) are scoped to the namespace Magick. Symbols from the ImageMagick C library are imported under the MagickCore namespace to avoid possible conflicts and ImageMagick macros are only included within the Magick++ implementation so they won't impact the user's application.

    -

    The core class in Magick++ is the Image class. The Image class provides methods to manipulate a single image frame (e.g. a JPEG image). Standard Template Library (STL)compatible algorithms and function objects are provided in order to manipulate multiple image frames or to read and write file formats which support multiple image frames (e.g. GIF animations, MPEG animations, and Postscript files).

    +

    The core class in Magick++ is the Image class. The Image class provides methods to manipulate a single image frame (e.g. a JPEG image). Standard Template Library (STL)compatible algorithms and function objects are provided in order to manipulate multiple image frames or to read and write file formats which support multiple image frames (e.g. GIF animations, MPEG animations, and Postscript files).

    The Image class supports reference-counted memory management which supports the semantics of an intrinsic variable type (e.g. 'int') with an extremely efficient operator = and copy constructor (only a pointer is assigned) while ensuring that the image data is replicated as required so that it the image may be modified without impacting earlier generations. Since the Image class manages heap memory internally, images are best allocated via C++ automatic (stack-based) memory allocation. This support allows most programs using Magick++ to be written without using any pointers, simplifying the implementation and avoiding the risks of using pointers. When a program uses automatic memory allocation to allocate Magick++ images, that aspect of the program becomes naturally exception-safe and thread-safe.

    -

    The image class uses a number of supportive classes in order to specify arguments. Colors are specified via the Color class. Colors specified in X11-style string form are implicitly converted to the Color class. Geometry arguments (those specifying width, height, and/or x and y offset) are specified via the Geometry class. Similar to the Color class, geometries specified as an X11-style string are implicitly converted to the Geometry class. Two dimensional drawable objects are specified via the Drawable class. Drawable objects may be provided as a single object or as a list of objects to be rendered using the current image options. Montage options (a montage is a rendered grid of thumbnails in one image) are specified via the Montage class.

    -

    Errors are reported using C++ exceptions derived from the Exception class, which is itself derived from the standard C++ exception class. Exceptions are reported synchronous with the operation and are caught by the first matching try block as the stack is unraveled. This allows a clean coding style in which multiple related Magick++ commands may be executed with errors handled as a unit rather than line-by-line. Since the Image object provides reference-counted memory management, unreferenced images on the stack are automagically cleaned up, avoiding the potential for memory leaks.

    +

    The image class uses a number of supportive classes in order to specify arguments. Colors are specified via the Color class. Colors specified in X11-style string form are implicitly converted to the Color class. Geometry arguments (those specifying width, height, and/or x and y offset) are specified via the Geometry class. Similar to the Color class, geometries specified as an X11-style string are implicitly converted to the Geometry class. Two dimensional drawable objects are specified via the Drawable class. Drawable objects may be provided as a single object or as a list of objects to be rendered using the current image options. Montage options (a montage is a rendered grid of thumbnails in one image) are specified via the Montage class.

    +

    Errors are reported using C++ exceptions derived from the Exception class, which is itself derived from the standard C++ exception class. Exceptions are reported synchronous with the operation and are caught by the first matching try block as the stack is unraveled. This allows a clean coding style in which multiple related Magick++ commands may be executed with errors handled as a unit rather than line-by-line. Since the Image object provides reference-counted memory management, unreferenced images on the stack are automagically cleaned up, avoiding the potential for memory leaks.

    For ease of access, the documentation for the available user-level classes is available via the following table.


    @@ -24,41 +24,41 @@ - + - + +coderInfoList()) - + - + - + - + - + - + - + - + - + +Image::fontTypeMetrics).
    Blob
    Blob Binary Large OBject container.
    CoderInfo
    CoderInfo Report information about supported image formats (use with -coderInfoList())
    Color
    Color Color specification.
    Drawable
    Drawable Drawable shape (for input to 'draw').
    Exception
    Exception C++ exception objects.
    Geometry
    Geometry Geometry specification.
    Image
    Image Image frame. This is the primary object in Magick++.
    Montage
    Montage Montage options for montageImages().
    Pixels
    Pixels Low-level access to image pixels.
    STL
    STL STL algorithms and function objects for operating on containers of image frames.
    TypeMetric
    TypeMetric Container for font type metrics (use with -Image::fontTypeMetrics).
    diff --git a/www/Magick++/Install.html b/www/Magick++/Install.html index 79ff2e7..0170234 100644 --- a/www/Magick++/Install.html +++ b/www/Magick++/Install.html @@ -10,7 +10,7 @@

    Installing Magick++

    General

    -

    In order to compile Magick++ you must have access to a standard C++ implementation. The author uses gcc 3.4 (GNU C++) which is available under UNIX and under the Cygwin UNIX-emulation environment for Windows. Standards compliant commercial C++ compilers should also work fine. Most modern C++ compilers for Microsoft Windows or the Mac should work (project files are provided for Microsoft Visual C++ 8.0).

    +

    In order to compile Magick++ you must have access to a standard C++ implementation. The author uses gcc 3.4 (GNU C++) which is available under UNIX and under the Cygwin UNIX-emulation environment for Windows. Standards compliant commercial C++ compilers should also work fine. Most modern C++ compilers for Microsoft Windows or the Mac should work (project files are provided for Microsoft Visual C++ 8.0).

    It was decided that Magick++ will be around for the long-haul, so its API definition depends on valuable C++ features which should be common in all current and future C++ compilers. The compiler must support the following C++ standard features:

    • @@ -84,7 +84,7 @@

      Visual C++ 8.0 Standard Edition Service Pack 5

      -

      Windows '98 + Cygwin 1.3.10

      +

      Windows '98 + Cygwin 1.3.10

      Intel Pentium III

      @@ -98,7 +98,7 @@

      GCC 2.95.3-5

      -

      Windows XP + Cygwin 1.3.10

      +

      Windows XP + Cygwin 1.3.10

      Intel Pentium IV

      @@ -262,7 +262,7 @@ specifies additional options to the configure script. The following table shows

      Visual C++

      Windows NT through Windows Vista are supported by the ImageMagick source package for NT available in the 'win2k' subdirectory of the ImageMagick ftp site (and mirrors). The ImageMagick source package for NT provides sources to ImageMagick, Magick++, add-on libraries (e.g. JPEG), and a ready-made Visual C++ 8.0 build environment. Please read the configuration and build instructions in README.txt (under the heading "Windows Win2K/XP VISUAL C++ 8.0 COMPILATION") in order to build Magick++.

      Cygwin & GCC

      -

      It is possible to build both ImageMagick and Magick++ under the Cygwin Unix-emulation environment for Windows NT. Obtain and install Cgywin from http://www.cygwin.com/ . An X11R6 environment for Cygwin is available from http://www.cygwin.com/xfree/ .To build using Cygwin and GCC, follow the instructions for building under Unix.

      +

      It is possible to build both ImageMagick and Magick++ under the Cygwin Unix-emulation environment for Windows NT. Obtain and install Cgywin from http://www.cygwin.com/ . An X11R6 environment for Cygwin is available from http://www.cygwin.com/xfree/ .To build using Cygwin and GCC, follow the instructions for building under Unix.

    diff --git a/www/Magick++/index.html b/www/Magick++/index.html index 1b8fede..8d35294 100644 --- a/www/Magick++/index.html +++ b/www/Magick++/index.html @@ -10,13 +10,13 @@

    ImageMagick Magick++ API

    -

    Magick++ is the object-oriented C++ API to the ImageMagick +

    Magick++ is the object-oriented C++ API to the ImageMagick image-processing library, the most comprehensive open-source image -processing package available. Read the latest NEWS -and ChangeLog for Magick++. +processing package available. Read the latest NEWS +and ChangeLog for Magick++.

    Magick++ -supports an object model which is inspired by PerlMagick. +supports an object model which is inspired by PerlMagick. Images support implicit reference counting so that copy constructors and assignment incur almost no cost. The cost of actually copying an image (if necessary) is done just before modification and this copy @@ -41,8 +41,8 @@ provided for all Magick++ classes, class methods, and template functions which comprise the API. See a Gentle Introduction to Magick++ for an introductory tutorial to Magick++. We include the source if you want to correct, enhance, or expand the tutorial.

    Obtaining Magick++

    -

    Magick++ is included as part of ImageMagick -source releases and may be retrieved via ftp +

    Magick++ is included as part of ImageMagick +source releases and may be retrieved via ftp or Github.

    Installation

    diff --git a/www/Magick++/logo.png b/www/Magick++/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d9054ec50519bebcc648a1d4d6303a6bd6380c3f GIT binary patch literal 11882 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 kQ@~07*qoM6N<$f>JCwBLDyZ literal 0 HcmV?d00001 diff --git a/www/Magick++/magick.css b/www/Magick++/magick.css index 4ada346..d3d6a16 100644 --- a/www/Magick++/magick.css +++ b/www/Magick++/magick.css @@ -158,7 +158,7 @@ div.text { } div.titlebar { - background-image: url("https://legacy.imagemagick.org/images/background.jpg"); + background-image: url("../images/background.jpg"); background-repeat: repeat-x; height: 118px; width: 100%; @@ -727,7 +727,7 @@ th.size-norm, tr.size-norm, td.size-norm { } #titlebar { - background-image: url("https://legacy.imagemagick.org/images/background.jpg"); + background-image: url("../images/background.jpg"); background-repeat: repeat-x; height: 118px; } diff --git a/www/advanced-linux-installation.html b/www/advanced-linux-installation.html index 5d3b296..2e3fcdb 100644 --- a/www/advanced-linux-installation.html +++ b/www/advanced-linux-installation.html @@ -1,18 +1,17 @@ - - - + + - ImageMagick (legacy) – Advanced Linux Source Installation + ImageMagick – Advanced Linux Source Installation - + - - + + @@ -22,19 +21,82 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    Advanced Linux Source Installation

    +
    +
    -
    -
    +

    Advanced Linux Installation

    -

    Download & UnpackConfigureBuildInstallLinux-specific Build InstructionsMac OS X-specific Build InstructionsMinGW-specific Build InstructionsDealing with Unexpected Problems

    +

    Download & UnpackConfigureBuildInstallLinux-specific Build InstructionsMac OS X-specific Build InstructionsMinGW-specific Build InstructionsDealing with Unexpected Problems

    -

    It's possible you don't want to concern yourself with advanced installation under Linux or Linux systems. If so, you also have the option of installing a pre-compiled binary release or if you still want to install from source without all the fuss see the simple Install From Source instructions. However, if you want to customize the configuration and installation of ImageMagick under Linux or Linux systems, lets begin.

    +

    It's possible you don't want to concern yourself with advanced installation under Linux or Linux systems. If so, you also have the option of installing a pre-compiled binary release or if you still want to install from source without all the fuss see the simple Install From Source instructions. However, if you want to customize the configuration and installation of ImageMagick under Linux or Linux systems, lets begin.

    Download & Unpack

    -

    ImageMagick builds on a variety of Linux and Linux-like operating systems including Linux, Solaris, FreeBSD, Mac OS X, and others. A compiler is required and fortunately almost all modern Linux systems have one. Download ImageMagick.tar.gz from imagemagick.org or a mirror and verify the distribution against its message digest.

    +

    ImageMagick builds on a variety of Linux and Linux-like operating systems including Linux, Solaris, FreeBSD, Mac OS X, and others. A compiler is required and fortunately almost all modern Linux systems have one. Download ImageMagick.tar.gz from imagemagick.org or a mirror and verify the distribution against its message digest.

    Unpack the distribution it with this command:

    @@ -109,7 +163,10 @@

    The configure script looks at your environment and decides what it can cobble together to get ImageMagick compiled and installed on your system. This includes finding a compiler, where your compiler header files are located (e.g. stdlib.h), and if any delegate libraries are available for ImageMagick to use (e.g. JPEG, PNG, TIFF, etc.). If you are willing to accept configure's default options, and build from within the source directory, you can simply type:

    -
      $ cd ImageMagick-6.9.12-93$ ./configure
    +
    
    +cd ImageMagick-6.9.13-22
    +./configure
    +

    Watch the configure script output to verify that it finds everything that you think it should. Pay particular attention to the last lines of the script output. For example, here is a recent report from our system:

    @@ -344,7 +401,7 @@ Options used to compile and link: --without-perl disable build/install of PerlMagick, or

    - By default, PerlMagick is conveniently compiled and installed as part of ImageMagick's normal configure, make, sudo make install process. When --without-perl is specified, you must first install ImageMagick, change to the PerlMagick subdirectory, build, and finally install PerlMagick. Note, PerlMagick is configured even if --without-perl is specified. If the argument --with-perl=/path/to/perl is supplied, /../path/to/perl is be taken as the PERL interpreter to use. This important in case the perl executable in your PATH is not PERL5, or is not the PERL you want to use. + By default, PerlMagick is conveniently compiled and installed as part of ImageMagick's normal configure, make, sudo make install process. When --without-perl is specified, you must first install ImageMagick, download the PerlMagick source distribution, build, and finally install PerlMagick. Note, PerlMagick is configured even if --without-perl is specified. If the argument --with-perl=/path/to/perl is supplied, /../path/to/perl is be taken as the PERL interpreter to use. This important in case the perl executable in your PATH is not PERL5, or is not the PERL you want to use. --with-perl=PERL @@ -519,7 +576,7 @@ $ identify logo.gif

    Linux-specific Build instructions

    -

    Download ImageMagick.src.rpm from imagemagick.org or its mirrors and verify the distribution against its message digest.

    +

    Download ImageMagick.src.rpm from imagemagick.org or its mirrors and verify the distribution against its message digest.

    Build ImageMagick with this command:

    @@ -528,12 +585,13 @@ $ identify logo.gif

    After the build you, locate the RPMS folder and install the ImageMagick binary RPM distribution:

    -
      $ rpm -ivh ImageMagick-6.9.12-?.*.rpm
    +
    rpm -ivh ImageMagick-6.9.13.-?.*.rpm
    +

    Mac OS X-specific Build instructions

    Perform these steps as an administrator or with the sudo command:

    -

    Install MacPorts. Download and install MacPorts and type the following commands:

    +

    Install MacPorts. Download and install MacPorts and type the following commands:

    $ sudo port -v install freetype +bytecode
     $ sudo port -v install librsvg
    @@ -551,9 +609,11 @@ $ sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
     
     

    Now lets build ImageMagick:

    -

    Download the ImageMagick source distribution and verify the distribution against its message digest.

    +

    Download the ImageMagick source distribution and verify the distribution against its message digest.

    Unpack and change into the top-level ImageMagick directory:

    -
      $ tar xvzf ImageMagick-6.9.12-93.tar.gz$ cd ImageMagick-6.9.12-93

    Configure ImageMagick:

    +
    tar xvzf ImageMagick-6.9.13-22.tar.gz
    +cd ImageMagick-6.9.13-22
    +

    Configure ImageMagick:

    ./configure --prefix=/opt --with-quantum-depth=16 \
       --disable-dependency-tracking --with-x=yes \
       --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \
    @@ -578,9 +638,16 @@ $ sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
     
     

    MinGW-specific Build instructions

    -

    Although you can download and install delegate libraries yourself, many are already available in the GnuWin32 distribution. Download and install whichever delegate libraries you require such as JPEG, PNG, TIFF, etc. Make sure you specify the development headers when you install a package. Next type,

    +

    Although you can download and install delegate libraries yourself, many are already available in the GnuWin32 distribution. Download and install whichever delegate libraries you require such as JPEG, PNG, TIFF, etc. Make sure you specify the development headers when you install a package. Next type,

    + +
    tar jxvf ImageMagick-6.9.13-?.tar.bz2
    +cd ImageMagick-6.9.13-22
    +export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
    +export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
    +./configure --without-perl
    +make
    +sudo make install
    -
      $ tar jxvf ImageMagick-6.9.12-?.tar.bz2
      $ cd ImageMagick-6.9.12-93
      $ export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
      $ export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
      $ ./configure --without-perl
      $ make
      $ sudo make install

    Dealing with Unexpected Problems

    Chances are the download, configure, build, and install of ImageMagick went flawlessly as it is intended, however, certain systems and environments may cause one or more steps to fail. We discuss a few problems we've run across and how to take corrective action to ensure you have a working release of ImageMagick

    @@ -627,12 +694,12 @@ no encode delegate for this image format
    -
    - + + \ No newline at end of file diff --git a/www/advanced-unix-installation.html b/www/advanced-unix-installation.html index 4e74f5e..864d92f 100644 --- a/www/advanced-unix-installation.html +++ b/www/advanced-unix-installation.html @@ -22,9 +22,9 @@ - + - + @@ -66,7 +66,7 @@ -
    +
    @@ -643,7 +643,7 @@ no encode delegate for this image format SponsorCitePublic Key • - Contact Us + Contact Us
    GitHubTwitter diff --git a/www/advanced-windows-installation.html b/www/advanced-windows-installation.html index 76edff8..b7788f6 100644 --- a/www/advanced-windows-installation.html +++ b/www/advanced-windows-installation.html @@ -1,18 +1,17 @@ - - - + + - ImageMagick (legacy) – Advanced Windows Source Installation + ImageMagick – Advanced Windows Source Installation - + - - + + @@ -22,19 +21,82 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    Advanced Windows Source Installation

    +
    +
    -
    -
    +

    Advanced Windows Installation

    -

    This document describes the requirements and instructions to build ImageMagick for Windows on your own machine.

    +

    This document describes the requirements and instructions to build ImageMagick for Windows on your own machine.

    Requirements

      @@ -128,12 +182,12 @@
    -
    - + + \ No newline at end of file diff --git a/www/animate.html b/www/animate.html index 96df41e..c1cc5a8 100644 --- a/www/animate.html +++ b/www/animate.html @@ -1,18 +1,17 @@ - - - + + - ImageMagick (legacy) – Command-line Tools: Animate + ImageMagick – Command-line Tools: Animate - + - - + + @@ -22,19 +21,82 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    Command-line Tools: Animate

    +
    +
    -
    -
    +

    Animation Viewer

    -

    Example UsageOption Summary

    +

    Example UsageOption Summary

    -

    Use the animate program to animate an image sequence on any X server. See Command Line Processing for advice on how to structure your animate command or see below for example usages of the command.

    +

    Use the animate program to animate an image sequence on any X server. See Command Line Processing for advice on how to structure your animate command or see below for example usages of the command.

    Example Usage

    @@ -105,7 +159,7 @@
    animate *.jpg
     
    -

    You can find additional examples of using animate in Examples of ImageMagick Usage.

    +

    You can find additional examples of using animate in Examples of ImageMagick Usage.

    Option Summary

    @@ -545,12 +599,12 @@ transparent, extract, background, or shape the alpha channel
    -
    - + + \ No newline at end of file diff --git a/www/api/Image++.html b/www/api/Image++.html index 2101cc4..2dc38db 100644 --- a/www/api/Image++.html +++ b/www/api/Image++.html @@ -24,19 +24,19 @@ - + - - + +
    -
    +
    @@ -3221,7 +3221,7 @@ the region set by a preceding getPixels or getConstPixels call.

    SecurityArchitecture - And Now a Touch of Magick + And Now a Touch of Magick RelatedSitemap diff --git a/www/api/animate.html b/www/api/animate.html index e18adb2..d62926a 100644 --- a/www/api/animate.html +++ b/www/api/animate.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Interactively Animate an Image Sequence + ImageMagick – MagickCore, C API: Interactively Animate an Image Sequence - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + +

    + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Interactively Animate an Image Sequence

    +
    +
    -
    -
    +

    Animate

    -
    - + diff --git a/www/api/annotate.html b/www/api/annotate.html index 5154000..6bcbd01 100644 --- a/www/api/annotate.html +++ b/www/api/annotate.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Annotate an Image + ImageMagick – MagickCore, C API: Annotate an Image - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Annotate an Image

    +
    +
    -
    -
    +

    Annotate



    -

    AnnotateImage

    +

    AnnotateImage

    AnnotateImage() annotates an image with text.

    @@ -126,7 +182,7 @@
    -

    FormatMagickCaption

    +

    FormatMagickCaption

    FormatMagickCaption() formats a caption so that it fits within the image width. It returns the number of lines in the formatted caption.

    @@ -153,7 +209,7 @@
    caption

    the caption.

    -

    GetMultilineTypeMetrics

    +

    GetMultilineTypeMetrics

    GetMultilineTypeMetrics() returns the following information for the specified font and text:

    @@ -202,7 +258,7 @@
    -

    GetTypeMetrics

    +

    GetTypeMetrics

    GetTypeMetrics() returns the following information for the specified font and text:

    @@ -252,12 +308,12 @@
    -
    - + diff --git a/www/api/attribute.html b/www/api/attribute.html index 834895d..f863be8 100644 --- a/www/api/attribute.html +++ b/www/api/attribute.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Set Text Attributes + ImageMagick – MagickCore, C API: Set Text Attributes - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Set Text Attributes

    +
    +
    -
    -
    +

    Attribute



    -

    GetImageChannelDepth

    +

    GetImageChannelDepth

    GetImageChannelDepth() returns the depth of a particular image channel.

    @@ -138,7 +194,7 @@ size_t GetImageChannelDepth(const Image *image,
    -

    GetImageQuantumDepth

    +

    GetImageQuantumDepth

    GetImageQuantumDepth() returns the depth of the image rounded to a legal quantum depth: 8, 16, or 32.

    @@ -164,7 +220,7 @@ size_t GetImageChannelDepth(const Image *image,
    -

    GetImageType

    +

    GetImageType

    GetImageType() returns the potential type of image:

    @@ -196,7 +252,7 @@ size_t GetImageChannelDepth(const Image *image,
    -

    IdentifyImageMonochrome

    +

    IdentifyImageMonochrome

    IdentifyImageMonochrome() returns MagickTrue if all the pixels in the image have the same red, green, and blue intensities and the intensity is either 0 or QuantumRange.

    @@ -222,7 +278,7 @@ size_t GetImageChannelDepth(const Image *image,
    -

    IdentifyImageType

    +

    IdentifyImageType

    IdentifyImageType() returns the potential type of image:

    @@ -254,7 +310,7 @@ size_t GetImageChannelDepth(const Image *image,
    -

    IsGrayImage

    +

    IsGrayImage

    IsGrayImage() returns MagickTrue if the type of the image is grayscale or bi-level.

    @@ -280,7 +336,7 @@ size_t GetImageChannelDepth(const Image *image,
    -

    IsMonochromeImage

    +

    IsMonochromeImage

    IsMonochromeImage() returns MagickTrue if type of the image is bi-level.

    @@ -306,7 +362,7 @@ size_t GetImageChannelDepth(const Image *image,
    -

    IsOpaqueImage

    +

    IsOpaqueImage

    IsOpaqueImage() returns MagickTrue if none of the pixels in the image have an opacity value other than opaque (0).

    @@ -332,7 +388,7 @@ size_t GetImageChannelDepth(const Image *image,
    -

    SetImageChannelDepth

    +

    SetImageChannelDepth

    SetImageChannelDepth() sets the depth of the image.

    @@ -363,7 +419,7 @@ MagickBooleanType SetImageChannelDepth(Image *image,
    -

    SetImageType

    +

    SetImageType

    SetImageType() sets the type of image. Choose from these types:

    @@ -393,12 +449,12 @@ MagickBooleanType SetImageChannelDepth(Image *image,
    -
    +
    SecurityNews - And Now a Touch of Magick + And Now a Touch of Magick RelatedSitemap @@ -414,8 +470,9 @@ MagickBooleanType SetImageChannelDepth(Image *image, Copyright © 1999 ImageMagick Studio LLC
    +
    - + diff --git a/www/api/blob.html b/www/api/blob.html index eaed09d..c4edc90 100644 --- a/www/api/blob.html +++ b/www/api/blob.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Read or Write Binary Large OBjects + ImageMagick – MagickCore, C API: Read or Write Binary Large OBjects - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Read or Write Binary Large OBjects

    +
    +
    -
    -
    +

    Blob



    -

    BlobToImage

    +

    BlobToImage

    BlobToImage() implements direct to memory image formats. It returns the blob as an image.

    @@ -141,7 +197,7 @@
    -

    FileToBlob

    +

    FileToBlob

    FileToBlob() returns the contents of a file as a buffer terminated with the '\0' character. The length of the buffer (not including the extra terminating '\0' character) is returned via the 'length' parameter. Free the buffer with RelinquishMagickMemory().

    @@ -179,7 +235,7 @@
    -

    FileToImage

    +

    FileToImage

    FileToImage() write the contents of a file to an image.

    @@ -204,7 +260,7 @@
    -

    GetBlobProperties

    +

    GetBlobProperties

    GetBlobProperties() returns information about an image blob.

    @@ -225,7 +281,7 @@
    -

    ImageToBlob

    +

    ImageToBlob

    ImageToBlob() implements direct to memory image formats. It returns the image as a formatted blob and its length. The magick member of the Image structure determines the format of the returned blob (GIF, JPEG, PNG, etc.). This method is the equivalent of WriteImage(), but writes the formatted "file" to a memory buffer rather than to an actual file.

    @@ -259,7 +315,7 @@
    -

    ImageToFile

    +

    ImageToFile

    ImageToFile() writes an image to a file. It returns MagickFalse if an error occurs otherwise MagickTrue.

    @@ -289,7 +345,7 @@
    -

    ImagesToBlob

    +

    ImagesToBlob

    ImagesToBlob() implements direct to memory image formats. It returns the image sequence as a blob and its length. The magick member of the ImageInfo structure determines the format of the returned blob (GIF, JPEG, PNG, etc.)

    @@ -325,7 +381,7 @@
    -

    InjectImageBlob

    +

    InjectImageBlob

    InjectImageBlob() injects the image with a copy of itself in the specified format (e.g. inject JPEG into a PDF image).

    @@ -364,7 +420,7 @@
    -

    IsBlobExempt

    +

    IsBlobExempt

    IsBlobExempt() returns true if the blob is exempt.

    @@ -385,7 +441,7 @@
    -

    IsBlobTemporary

    +

    IsBlobTemporary

    IsBlobTemporary() returns true if the blob is temporary.

    @@ -409,12 +465,12 @@
    -
    - + diff --git a/www/api/cache-view.html b/www/api/cache-view.html index cb0e891..06b318b 100644 --- a/www/api/cache-view.html +++ b/www/api/cache-view.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Cache Views + ImageMagick – MagickCore, C API: Cache Views - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Cache Views

    +
    +
    -
    -
    +

    Cache-view



    -

    AcquireAuthenticCacheView

    +

    AcquireAuthenticCacheView

    AcquireAuthenticCacheView() acquires an authentic view into the pixel cache.

    @@ -144,7 +200,7 @@
    -

    AcquireVirtualCacheView

    +

    AcquireVirtualCacheView

    AcquireVirtualCacheView() acquires a virtual view into the pixel cache, using the VirtualPixelMethod that is defined within the given image itself.

    @@ -170,7 +226,7 @@
    -

    CloneCacheView

    +

    CloneCacheView

    CloneCacheView() makes an exact copy of the specified cache view.

    @@ -191,7 +247,7 @@
    -

    DestroyCacheView

    +

    DestroyCacheView

    DestroyCacheView() destroys the specified view returned by a previous call to AcquireVirtualCacheView().

    @@ -212,7 +268,7 @@
    -

    GetCacheViewChannels

    +

    GetCacheViewChannels

    GetCacheViewChannels() returns the image pixel channels associated with the specified view.

    @@ -233,7 +289,7 @@
    -

    GetCacheViewColorspace

    +

    GetCacheViewColorspace

    GetCacheViewColorspace() returns the image colorspace associated with the specified view.

    @@ -254,7 +310,7 @@
    -

    GetCacheViewException

    +

    GetCacheViewException

    GetCacheViewException() returns the image exception associated with the specified view.

    @@ -275,7 +331,7 @@
    -

    GetCacheViewStorageClass

    +

    GetCacheViewStorageClass

    GetCacheViewStorageClass() returns the image storage class associated with the specified view.

    @@ -296,7 +352,7 @@
    -

    GetCacheViewAuthenticPixels

    +

    GetCacheViewAuthenticPixels

    GetCacheViewAuthenticPixels() gets pixels from the in-memory or disk pixel cache as defined by the geometry parameters. A pointer to the pixels is returned if the pixels are transferred, otherwise a NULL is returned.

    @@ -323,7 +379,7 @@
    -

    GetOneCacheViewAuthenticPixel

    +

    GetOneCacheViewAuthenticPixel

    GetOneCacheViewAuthenticPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs.

    @@ -358,7 +414,7 @@
    -

    GetCacheViewAuthenticIndexQueue

    +

    GetCacheViewAuthenticIndexQueue

    GetCacheViewAuthenticIndexQueue() returns the indexes associated with the last call to SetCacheViewIndexes() or GetCacheViewAuthenticIndexQueue(). The indexes are authentic and can be updated.

    @@ -379,7 +435,7 @@
    -

    GetCacheViewAuthenticPixelQueue

    +

    GetCacheViewAuthenticPixelQueue

    GetCacheViewAuthenticPixelQueue() returns the pixels associated with the last call to QueueCacheViewAuthenticPixels() or GetCacheViewAuthenticPixels(). The pixels are authentic and therefore can be updated.

    @@ -400,7 +456,7 @@
    -

    GetCacheViewVirtualIndexQueue

    +

    GetCacheViewVirtualIndexQueue

    GetCacheViewVirtualIndexQueue() returns the indexes associated with the last call to GetCacheViewVirtualIndexQueue(). The indexes are virtual and therefore cannot be updated.

    @@ -422,7 +478,7 @@
    -

    GetCacheViewVirtualPixelQueue

    +

    GetCacheViewVirtualPixelQueue

    GetCacheViewVirtualPixelQueue() returns the pixels associated with the last call to GetCacheViewVirtualPixels(). The pixels are virtual and therefore cannot be updated.

    @@ -444,7 +500,7 @@
    -

    GetCacheViewVirtualPixels

    +

    GetCacheViewVirtualPixels

    GetCacheViewVirtualPixels() gets virtual pixels from the in-memory or disk pixel cache as defined by the geometry parameters. A pointer to the pixels is returned if the pixels are transferred, otherwise a NULL is returned.

    @@ -475,7 +531,7 @@
    -

    GetOneCacheViewVirtualPixel

    +

    GetOneCacheViewVirtualPixel

    GetOneCacheViewVirtualPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneCacheViewAuthenticPixel() instead.

    @@ -510,7 +566,7 @@
    -

    GetOneCacheViewVirtualMethodPixel

    +

    GetOneCacheViewVirtualMethodPixel

    GetOneCacheViewVirtualMethodPixel() returns a single virtual pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneCacheViewAuthenticPixel() instead.

    @@ -550,7 +606,7 @@
    -

    QueueCacheViewAuthenticPixels

    +

    QueueCacheViewAuthenticPixels

    QueueCacheViewAuthenticPixels() queues authentic pixels from the in-memory or disk pixel cache as defined by the geometry parameters. A pointer to the pixels is returned if the pixels are transferred, otherwise a NULL is returned.

    @@ -581,7 +637,7 @@
    -

    SetCacheViewStorageClass

    +

    SetCacheViewStorageClass

    SetCacheViewStorageClass() sets the image storage class associated with the specified view.

    @@ -607,7 +663,7 @@
    -

    SetCacheViewVirtualPixelMethod

    +

    SetCacheViewVirtualPixelMethod

    SetCacheViewVirtualPixelMethod() sets the virtual pixel method associated with the specified cache view.

    @@ -633,7 +689,7 @@
    -

    SyncCacheViewAuthenticPixels

    +

    SyncCacheViewAuthenticPixels

    SyncCacheViewAuthenticPixels() saves the cache view pixels to the in-memory or disk cache. It returns MagickTrue if the pixel region is flushed, otherwise MagickFalse.

    @@ -662,12 +718,12 @@
    -
    - + diff --git a/www/api/cache.html b/www/api/cache.html index 95921a4..101c220 100644 --- a/www/api/cache.html +++ b/www/api/cache.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Get or Set Image Pixels + ImageMagick – MagickCore, C API: Get or Set Image Pixels - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Get or Set Image Pixels

    +
    +
    -
    -
    +

    Cache



    -

    AcquirePixelCacheNexus

    +

    AcquirePixelCacheNexus

    AcquirePixelCacheNexus() allocates the NexusInfo structure.

    @@ -133,7 +189,7 @@
    -

    AcquirePixelCachePixels

    +

    AcquirePixelCachePixels

    AcquirePixelCachePixels() returns the pixels associated with the specified image.

    @@ -163,7 +219,7 @@
    -

    GetAuthenticIndexQueue

    +

    GetAuthenticIndexQueue

    GetAuthenticIndexQueue() returns the authentic black channel or the colormap indexes associated with the last call to QueueAuthenticPixels() or GetVirtualPixels(). NULL is returned if the black channel or colormap indexes are not available.

    @@ -184,7 +240,7 @@
    -

    GetAuthenticPixelQueue

    +

    GetAuthenticPixelQueue

    GetAuthenticPixelQueue() returns the authentic pixels associated with the last call to QueueAuthenticPixels() or GetAuthenticPixels().

    @@ -205,7 +261,7 @@
    -

    GetAuthenticPixels

    +

    GetAuthenticPixels

    GetAuthenticPixels() obtains a pixel region for read/write access. If the region is successfully accessed, a pointer to a PixelPacket array representing the region is returned, otherwise NULL is returned.

    @@ -240,7 +296,7 @@
    -

    GetOneAuthenticPixel

    +

    GetOneAuthenticPixel

    GetOneAuthenticPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs.

    @@ -274,7 +330,7 @@
    -

    GetOneVirtualMagickPixel

    +

    GetOneVirtualMagickPixel

    GetOneVirtualMagickPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.

    @@ -309,7 +365,7 @@
    -

    GetOneVirtualMethodPixel

    +

    GetOneVirtualMethodPixel

    GetOneVirtualMethodPixel() returns a single pixel at the specified (x,y) location as defined by specified pixel method. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.

    @@ -348,7 +404,7 @@
    -

    GetOneVirtualPixel

    +

    GetOneVirtualPixel

    GetOneVirtualPixel() returns a single virtual pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.

    @@ -382,7 +438,7 @@
    -

    GetVirtualIndexQueue

    +

    GetVirtualIndexQueue

    GetVirtualIndexQueue() returns the virtual black channel or the colormap indexes associated with the last call to QueueAuthenticPixels() or GetVirtualPixels(). NULL is returned if the black channel or colormap indexes are not available.

    @@ -403,7 +459,7 @@
    -

    GetVirtualPixelQueue

    +

    GetVirtualPixelQueue

    GetVirtualPixelQueue() returns the virtual pixels associated with the last call to QueueAuthenticPixels() or GetVirtualPixels().

    @@ -424,7 +480,7 @@
    -

    GetVirtualPixels

    +

    GetVirtualPixels

    GetVirtualPixels() returns an immutable pixel region. If the region is successfully accessed, a pointer to it is returned, otherwise NULL is returned. The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.

    @@ -461,7 +517,7 @@
    -

    QueueAuthenticPixels

    +

    QueueAuthenticPixels

    QueueAuthenticPixels() queues a mutable pixel region. If the region is successfully initialized a pointer to a PixelPacket array representing the region is returned, otherwise NULL is returned. The returned pointer may point to a temporary working buffer for the pixels or it may point to the final location of the pixels in memory.

    @@ -498,7 +554,7 @@
    -

    SetPixelCacheVirtualMethod

    +

    SetPixelCacheVirtualMethod

    SetPixelCacheVirtualMethod() sets the "virtual pixels" method for the pixel cache and returns the previous setting. A virtual pixel is any pixel access that is outside the boundaries of the image cache.

    @@ -524,7 +580,7 @@
    -

    SyncAuthenticPixels

    +

    SyncAuthenticPixels

    SyncAuthenticPixels() saves the image pixels to the in-memory or disk cache. The method returns MagickTrue if the pixel region is flushed, otherwise MagickFalse.

    @@ -553,12 +609,12 @@
    -
    - + diff --git a/www/api/channel.html b/www/api/channel.html index 7f13b18..7191a22 100644 --- a/www/api/channel.html +++ b/www/api/channel.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Get or Set Image Channels + ImageMagick – MagickCore, C API: Get or Set Image Channels - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Get or Set Image Channels

    +
    +
    -
    -
    +

    Channel



    -

    CombineImages

    +

    CombineImages

    CombineImages() combines one or more images into a single image. The grayscale value of the pixels of each image in the sequence is assigned in order to the specified channels of the combined image. The typical ordering would be image 1 => Red, 2 => Green, 3 => Blue, etc.

    @@ -128,7 +184,7 @@
    -

    GetImageAlphaChannel

    +

    GetImageAlphaChannel

    GetImageAlphaChannel() returns MagickFalse if the image alpha channel is not activated. That is, the image is RGB rather than RGBA or CMYK rather than CMYKA.

    @@ -149,7 +205,7 @@
    -

    SeparateImageChannel

    +

    SeparateImageChannel

    SeparateImageChannel() separates a channel from the image and returns it as a grayscale image. A channel is a particular color component of each pixel in the image.

    @@ -175,7 +231,7 @@
    -

    SeparateImages

    +

    SeparateImages

    SeparateImages() returns a separate grayscale image for each channel specified.

    @@ -205,7 +261,7 @@
    -

    SetImageAlphaChannel

    +

    SetImageAlphaChannel

    SetImageAlphaChannel() activates, deactivates, resets, or sets the alpha channel.

    @@ -234,12 +290,12 @@
    -
    - + diff --git a/www/api/cipher.html b/www/api/cipher.html index 759ff44..48e28b0 100644 --- a/www/api/cipher.html +++ b/www/api/cipher.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Convert to and from Cipher Pixels + ImageMagick – MagickCore, C API: Convert to and from Cipher Pixels - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Convert to and from Cipher Pixels

    +
    +
    -
    -
    +

    Cipher



    -

    AcquireAESInfo

    +

    AcquireAESInfo

    AcquireAESInfo() allocate the AESInfo structure.

    @@ -114,7 +170,7 @@
    AESInfo *AcquireAESInfo(void)
     
    -

    DestroyAESInfo

    +

    DestroyAESInfo

    DestroyAESInfo() zeros memory associated with the AESInfo structure.

    @@ -135,7 +191,7 @@
    -

    EncipherAESBlock

    +

    EncipherAESBlock

    EncipherAESBlock() enciphers a single block of plaintext to produce a block of ciphertext.

    @@ -165,7 +221,7 @@
    -

    PasskeyDecipherImage

    +

    PasskeyDecipherImage

    PasskeyDecipherImage() converts cipher pixels to plain pixels.

    @@ -201,7 +257,7 @@ MagickBooleanType DecipherImage(Image *image,const char *passphrase,
    -

    PasskeyEncipherImage

    +

    PasskeyEncipherImage

    PasskeyEncipherImage() converts pixels to cipher-pixels.

    @@ -237,7 +293,7 @@ MagickBooleanType EncipherImage(Image *image,const char *passphrase,
    -

    SetAESKey

    +

    SetAESKey

    SetAESKey() sets the key for the AES cipher. The key length is specified in bits. Valid values are 128, 192, or 256 requiring a key buffer length in bytes of 16, 24, and 32 respectively.

    @@ -262,7 +318,7 @@ MagickBooleanType EncipherImage(Image *image,const char *passphrase,
    -

    PasskeyDecipherImage

    +

    PasskeyDecipherImage

    PasskeyDecipherImage() converts cipher pixels to plain pixels.

    @@ -298,7 +354,7 @@ MagickBooleanType DecipherImage(Image *image,const char *passphrase,
    -

    PasskeyEncipherImage

    +

    PasskeyEncipherImage

    PasskeyEncipherImage() converts pixels to cipher-pixels.

    @@ -333,12 +389,12 @@ MagickBooleanType EncipherImage(Image *image,const char *passphrase,
    -
    +
    SecurityNews - And Now a Touch of Magick + And Now a Touch of Magick RelatedSitemap @@ -354,8 +410,9 @@ MagickBooleanType EncipherImage(Image *image,const char *passphrase, Copyright © 1999 ImageMagick Studio LLC
    +
    - + diff --git a/www/api/color.html b/www/api/color.html index 6e2ae92..ef7f21d 100644 --- a/www/api/color.html +++ b/www/api/color.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Count the Colors in an Image + ImageMagick – MagickCore, C API: Count the Colors in an Image - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Count the Colors in an Image

    +
    +
    -
    -
    +

    Color



    -

    AcquireColorCache

    +

    AcquireColorCache

    AcquireColorCache() caches one or more color configurations which provides a mapping between color attributes and a color name.

    @@ -133,7 +189,7 @@
    -

    GetColorInfoList

    +

    GetColorInfoList

    GetColorInfoList() returns any colors that match the specified pattern.

    @@ -163,7 +219,7 @@
    -

    GetColorList

    +

    GetColorList

    GetColorList() returns any colors that match the specified pattern.

    @@ -193,7 +249,7 @@
    -

    ListColorInfo

    +

    ListColorInfo

    ListColorInfo() lists color names to the specified file. Color names are a convenience. Rather than defining a color by its red, green, and blue intensities just use a color name such as white, blue, or yellow.

    @@ -210,7 +266,7 @@
    exception

    return any errors or warnings in this structure.

    -

    QueryColorCompliance

    +

    QueryColorCompliance

    QueryColorCompliance() returns the red, green, blue, and opacity intensities for a given color name.

    @@ -245,7 +301,7 @@
    -

    QueryColorDatabase

    +

    QueryColorDatabase

    QueryColorDatabase() returns the red, green, blue, and opacity intensities for a given color name.

    @@ -275,7 +331,7 @@
    -

    QueryColorname

    +

    QueryColorname

    QueryColorname() returns a named color for the given color intensity. If an exact match is not found, a rgb() color is returned instead.

    @@ -303,7 +359,7 @@
    exception

    return any errors or warnings in this structure.

    -

    QueryMagickColorCompliance

    +

    QueryMagickColorCompliance

    QueryMagickColorCompliance() returns the red, green, blue, and opacity intensities for a given color name and standards compliance.

    @@ -338,7 +394,7 @@
    -

    QueryMagickColor

    +

    QueryMagickColor

    QueryMagickColor() returns the red, green, blue, and opacity intensities for a given color name.

    @@ -368,7 +424,7 @@
    -

    QueryMagickColorname

    +

    QueryMagickColorname

    QueryMagickColorname() returns a named color for the given color intensity. If an exact match is not found, a hex value is returned instead. For example an intensity of rgb:(0,0,0) returns black whereas rgb:(223,223,223) returns #dfdfdf.

    @@ -399,12 +455,12 @@
    -
    - + diff --git a/www/api/colormap.html b/www/api/colormap.html index 9bdd8ca..721fb20 100644 --- a/www/api/colormap.html +++ b/www/api/colormap.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Colormap Methods + ImageMagick – MagickCore, C API: Colormap Methods - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Colormap Methods

    +
    +
    -
    -
    +

    Colormap



    -

    AcquireImageColormap

    +

    AcquireImageColormap

    AcquireImageColormap() allocates an image colormap and initializes it to a linear gray colorspace. If the image already has a colormap, it is replaced. AcquireImageColormap() returns MagickTrue if successful, otherwise MagickFalse if there is not enough memory.

    @@ -124,7 +180,7 @@
    -

    CycleColormap

    +

    CycleColormap

    CycleColormap() displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychodelic effect.

    @@ -152,12 +208,12 @@
    -
    - + diff --git a/www/api/colorspace.html b/www/api/colorspace.html index 1bc719e..009f25f 100644 --- a/www/api/colorspace.html +++ b/www/api/colorspace.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Dealing with Image Colorspaces + ImageMagick – MagickCore, C API: Dealing with Image Colorspaces - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Dealing with Image Colorspaces

    +
    +
    -
    -
    +

    Colorspace



    -

    GetImageColorspaceType

    +

    GetImageColorspaceType

    GetImageColorspaceType() returns the potential colorspace of image: sRGBColorspaceType, RGBColorspaceType, GRAYColorspaceType, etc.

    @@ -134,7 +190,7 @@ exception);
    -

    SetImageColorspace

    +

    SetImageColorspace

    SetImageColorspace() sets the colorspace member of the Image structure.

    @@ -160,7 +216,7 @@ exception);
    -

    SetImageGray

    +

    SetImageGray

    SetImageGray() returns MagickTrue if all the pixels in the image have the same red, green, and blue intensities and changes the type of the image to bi-level or grayscale.

    @@ -186,7 +242,7 @@ exception);
    -

    SetImageMonochrome

    +

    SetImageMonochrome

    SetImageMonochrome() returns MagickTrue if all the pixels in the image have the same red, green, and blue intensities and the intensity is either 0 or QuantumRange and changes the type of the image to bi-level.

    @@ -212,7 +268,7 @@ exception);
    -

    TransformImageColorspace

    +

    TransformImageColorspace

    TransformImageColorspace() transforms an image colorspace.

    @@ -241,12 +297,12 @@ exception);
    -
    - + diff --git a/www/api/compare.html b/www/api/compare.html index db6fa94..e816115 100644 --- a/www/api/compare.html +++ b/www/api/compare.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Compare an Image to a Reconstructed Image + ImageMagick – MagickCore, C API: Compare an Image to a Reconstructed Image - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Compare an Image to a Reconstructed Image

    +
    +
    -
    -
    +

    Compare

    -
    - + diff --git a/www/api/composite.html b/www/api/composite.html index 4b83c75..47f422e 100644 --- a/www/api/composite.html +++ b/www/api/composite.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Composite an Image + ImageMagick – MagickCore, C API: Composite an Image - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Composite an Image

    +
    +
    -
    -
    +

    Composite

    -
    - + diff --git a/www/api/constitute.html b/www/api/constitute.html index 03794fa..7e73e9c 100644 --- a/www/api/constitute.html +++ b/www/api/constitute.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Constitute an Image + ImageMagick – MagickCore, C API: Constitute an Image - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Constitute an Image

    +
    +
    -
    -
    +

    Constitute



    -

    ConstituteImage

    +

    ConstituteImage

    ConstituteImage() returns an image from the pixel data you supply. The pixel data must be in scanline order top-to-bottom. The data can be char, short int, int, float, or double. Float and double require the pixels to be normalized [0..1], otherwise [0..QuantumRange]. For example, to create a 640x480 image from unsigned red-green-blue character data, use:

    @@ -150,7 +206,7 @@
    -

    PingImage

    +

    PingImage

    PingImage() returns all the properties of an image or image sequence except for the pixels. It is much faster and consumes far less memory than ReadImage(). On failure, a NULL image is returned and exception describes the reason for the failure.

    @@ -175,7 +231,7 @@
    -

    PingImages

    +

    PingImages

    PingImages() pings one or more images and returns them as an image list.

    @@ -200,7 +256,7 @@
    -

    ReadImage

    +

    ReadImage

    ReadImage() reads an image or image sequence from a file or file handle. The method returns a NULL if there is a memory shortage or if the image cannot be read. On failure, a NULL image is returned and exception describes the reason for the failure.

    @@ -225,7 +281,7 @@
    -

    ReadImages

    +

    ReadImages

    ReadImages() reads one or more images and returns them as an image list.

    @@ -250,7 +306,7 @@
    -

    WriteImage

    +

    WriteImage

    WriteImage() writes an image or an image sequence to a file or file handle. If writing to a file is on disk, the name is defined by the filename member of the image structure. WriteImage() returns MagickFalse is there is a memory shortage or if the image cannot be written. Check the exception member of image to determine the cause for any failure.

    @@ -275,7 +331,7 @@
    -

    WriteImages

    +

    WriteImages

    WriteImages() writes an image sequence into one or more files. While WriteImage() can write an image sequence, it is limited to writing the sequence into a single file using a format which supports multiple frames. WriteImages(), however, does not have this limitation, instead it generates multiple output files if necessary (or when requested). When ImageInfo's adjoin flag is set to MagickFalse, the file name is expected to include a printf-style formatting string for the frame number (e.g. "image02d.png").

    @@ -312,12 +368,12 @@
    -
    - + diff --git a/www/api/decorate.html b/www/api/decorate.html index a3cf97b..8607a83 100644 --- a/www/api/decorate.html +++ b/www/api/decorate.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Decorate an Image + ImageMagick – MagickCore, C API: Decorate an Image - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Decorate an Image

    +
    +
    -
    -
    +

    Decorate



    -

    BorderImage

    +

    BorderImage

    BorderImage() surrounds the image with a border of the color defined by the bordercolor member of the image structure. The width and height of the border are defined by the corresponding members of the border_info structure.

    @@ -130,7 +186,7 @@
    -

    FrameImage

    +

    FrameImage

    FrameImage() adds a simulated three-dimensional border around the image. The color of the border is defined by the matte_color member of image. Members width and height of frame_info specify the border width of the vertical and horizontal sides of the frame. Members inner and outer indicate the width of the inner and outer shadows of the frame.

    @@ -160,7 +216,7 @@
    -

    RaiseImage

    +

    RaiseImage

    RaiseImage() creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

    @@ -193,12 +249,12 @@
    -
    - + diff --git a/www/api/deprecate.html b/www/api/deprecate.html index 770cce5..ca3d68b 100644 --- a/www/api/deprecate.html +++ b/www/api/deprecate.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Deprecated Methods + ImageMagick – MagickCore, C API: Deprecated Methods - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Deprecated Methods

    +
    +
    -
    -
    +

    Deprecate



    -

    MagickAverageImages

    +

    MagickAverageImages

    MagickAverageImages() average a set of images.

    @@ -173,7 +229,7 @@
    -

    ClonePixelView

    +

    ClonePixelView

    ClonePixelView() makes a copy of the specified pixel view.

    @@ -194,7 +250,7 @@
    -

    DestroyPixelView

    +

    DestroyPixelView

    DestroyPixelView() deallocates memory associated with a pixel view.

    @@ -224,7 +280,7 @@
    -

    DuplexTransferPixelViewIterator

    +

    DuplexTransferPixelViewIterator

    DuplexTransferPixelViewIterator() iterates over three pixel views in parallel and calls your transfer method for each scanline of the view. The source and duplex pixel region is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination pixel view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.

    @@ -270,7 +326,7 @@
    -

    GetPixelViewException

    +

    GetPixelViewException

    GetPixelViewException() returns the severity, reason, and description of any error that occurs when utilizing a pixel view.

    @@ -296,7 +352,7 @@
    -

    GetPixelViewHeight

    +

    GetPixelViewHeight

    GetPixelViewHeight() returns the pixel view height.

    @@ -317,7 +373,7 @@
    -

    GetPixelViewIterator

    +

    GetPixelViewIterator

    GetPixelViewIterator() iterates over the pixel view in parallel and calls your get method for each scanline of the view. The pixel region is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. Any updates to the pixels in your callback are ignored.

    @@ -354,7 +410,7 @@
    -

    GetPixelViewPixels

    +

    GetPixelViewPixels

    GetPixelViewPixels() returns the pixel view pixel_wands.

    @@ -375,7 +431,7 @@
    -

    GetPixelViewWand

    +

    GetPixelViewWand

    GetPixelViewWand() returns the magick wand associated with the pixel view.

    @@ -396,7 +452,7 @@
    -

    GetPixelViewWidth

    +

    GetPixelViewWidth

    GetPixelViewWidth() returns the pixel view width.

    @@ -417,7 +473,7 @@
    -

    GetPixelViewX

    +

    GetPixelViewX

    GetPixelViewX() returns the pixel view x offset.

    @@ -438,7 +494,7 @@
    -

    GetPixelViewY

    +

    GetPixelViewY

    GetPixelViewY() returns the pixel view y offset.

    @@ -459,7 +515,7 @@
    -

    IsPixelView

    +

    IsPixelView

    IsPixelView() returns MagickTrue if the parameter is verified as a pixel view container.

    @@ -480,7 +536,7 @@
    -

    MagickClipPathImage

    +

    MagickClipPathImage

    MagickClipPathImage() clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. Id may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

    @@ -510,7 +566,7 @@
    -

    DrawGetFillAlpha

    +

    DrawGetFillAlpha

    DrawGetFillAlpha() returns the alpha used when drawing using the fill color or fill texture. Fully opaque is 1.0.

    @@ -531,7 +587,7 @@
    -

    DrawGetStrokeAlpha

    +

    DrawGetStrokeAlpha

    DrawGetStrokeAlpha() returns the alpha of stroked object outlines.

    @@ -550,7 +606,7 @@
    wand
    the drawing wand.
    -

    DrawPeekGraphicWand

    +

    DrawPeekGraphicWand

    DrawPeekGraphicWand() returns the current drawing wand.

    @@ -571,7 +627,7 @@
    -

    DrawPopGraphicContext

    +

    DrawPopGraphicContext

    DrawPopGraphicContext() destroys the current drawing wand and returns to the previously pushed drawing wand. Multiple drawing wands may exist. It is an error to attempt to pop more drawing wands than have been pushed, and it is proper form to pop all drawing wands which have been pushed.

    @@ -592,7 +648,7 @@
    -

    DrawPushGraphicContext

    +

    DrawPushGraphicContext

    DrawPushGraphicContext() clones the current drawing wand to create a new drawing wand. The original drawing wand(s) may be returned to by invoking PopDrawingWand(). The drawing wands are stored on a drawing wand stack. For every Pop there must have already been an equivalent Push.

    @@ -613,7 +669,7 @@
    -

    DrawSetFillAlpha

    +

    DrawSetFillAlpha

    DrawSetFillAlpha() sets the alpha to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

    @@ -638,7 +694,7 @@
    -

    DrawSetStrokeAlpha

    +

    DrawSetStrokeAlpha

    DrawSetStrokeAlpha() specifies the alpha of stroked object outlines.

    @@ -663,7 +719,7 @@
    -

    MagickColorFloodfillImage

    +

    MagickColorFloodfillImage

    MagickColorFloodfillImage() changes the color value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the color value is changed for any neighbor pixel that does not match the bordercolor member of image.

    @@ -702,7 +758,7 @@
    -

    MagickDescribeImage

    +

    MagickDescribeImage

    MagickDescribeImage() identifies an image by printing its attributes to the file. Attributes include the image width, height, size, and others.

    @@ -723,7 +779,7 @@
    -

    MagickFlattenImages

    +

    MagickFlattenImages

    MagickFlattenImages() merges a sequence of images. This useful for combining Photoshop layers into a single image.

    @@ -744,7 +800,7 @@
    -

    MagickGetImageAttribute

    +

    MagickGetImageAttribute

    MagickGetImageAttribute() returns a value associated with the specified property. Use MagickRelinquishMemory() to free the value when you are finished with it.

    @@ -769,7 +825,7 @@
    -

    MagickGetImageMatte

    +

    MagickGetImageMatte

    MagickGetImageMatte() returns MagickTrue if the image has a matte channel otherwise MagickFalse.

    @@ -790,7 +846,7 @@
    -

    MagickGetImagePixels

    +

    MagickGetImagePixels

    MagickGetImagePixels() extracts pixel data from an image and returns it to you. The method returns MagickTrue on success otherwise MagickFalse if an error is encountered. The data is returned as char, short int, int, ssize_t, float, or double in the order specified by map.

    @@ -835,7 +891,7 @@
    -

    MagickGetImageSize

    +

    MagickGetImageSize

    MagickGetImageSize() returns the image length in bytes.

    @@ -861,7 +917,7 @@
    -

    MagickMapImage

    +

    MagickMapImage

    MagickMapImage() replaces the colors of an image with the closest color from a reference image.

    @@ -891,7 +947,7 @@
    -

    MagickMatteFloodfillImage

    +

    MagickMatteFloodfillImage

    MagickMatteFloodfillImage() changes the transparency value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the transparency value is changed for any neighbor pixel that does not match the bordercolor member of image.

    @@ -930,7 +986,7 @@
    -

    MagickMedianFilterImage

    +

    MagickMedianFilterImage

    MagickMedianFilterImage() applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

    @@ -956,7 +1012,7 @@
    -

    MagickMinimumImages

    +

    MagickMinimumImages

    MagickMinimumImages() returns the minimum intensity of an image sequence.

    @@ -977,7 +1033,7 @@
    -

    MagickModeImage

    +

    MagickModeImage

    MagickModeImage() makes each pixel the 'predominant color' of the neighborhood of the specified radius.

    @@ -1003,7 +1059,7 @@
    -

    MagickMosaicImages

    +

    MagickMosaicImages

    MagickMosaicImages() inlays an image sequence to form a single coherent picture. It returns a wand with each image in the sequence composited at the location defined by the page offset of the image.

    @@ -1024,7 +1080,7 @@
    -

    MagickOpaqueImage

    +

    MagickOpaqueImage

    MagickOpaqueImage() changes any pixel that matches color with the color defined by fill.

    @@ -1062,7 +1118,7 @@
    -

    MagickPaintFloodfillImage

    +

    MagickPaintFloodfillImage

    MagickPaintFloodfillImage() changes the color value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the color value is changed for any neighbor pixel that does not match the bordercolor member of image.

    @@ -1105,7 +1161,7 @@
    -

    MagickPaintOpaqueImage

    +

    MagickPaintOpaqueImage

    MagickPaintOpaqueImage() changes any pixel that matches color with the color defined by fill.

    @@ -1146,7 +1202,7 @@ MagickBooleanType MagickPaintOpaqueImageChannel(MagickWand *wand,
    -

    MagickPaintTransparentImage

    +

    MagickPaintTransparentImage

    MagickPaintTransparentImage() changes any pixel that matches color with the color defined by fill.

    @@ -1180,7 +1236,7 @@ MagickBooleanType MagickPaintOpaqueImageChannel(MagickWand *wand,
    -

    MagickRadialBlurImage

    +

    MagickRadialBlurImage

    MagickRadialBlurImage() radial blurs an image.

    @@ -1212,7 +1268,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    MagickRecolorImage

    +

    MagickRecolorImage

    MagickRecolorImage() apply color transformation to an image. The method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255).

    @@ -1242,7 +1298,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    MagickReduceNoiseImage

    +

    MagickReduceNoiseImage

    MagickReduceNoiseImage() smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and ReduceNoise() selects a suitable radius for you.

    @@ -1268,7 +1324,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    MagickMaximumImages

    +

    MagickMaximumImages

    MagickMaximumImages() returns the maximum intensity of an image sequence.

    @@ -1289,7 +1345,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    MagickSetImageAttribute

    +

    MagickSetImageAttribute

    MagickSetImageAttribute() associates a property with an image.

    @@ -1319,7 +1375,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    MagickSetImageIndex

    +

    MagickSetImageIndex

    MagickSetImageIndex() set the current image to the position of the list specified with the index parameter.

    @@ -1345,7 +1401,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    MagickTransparentImage

    +

    MagickTransparentImage

    MagickTransparentImage() changes any pixel that matches color with the color defined by fill.

    @@ -1379,7 +1435,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    MagickRegionOfInterestImage

    +

    MagickRegionOfInterestImage

    MagickRegionOfInterestImage() extracts a region of the image and returns it as a new wand.

    @@ -1418,7 +1474,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    MagickSetImagePixels

    +

    MagickSetImagePixels

    MagickSetImagePixels() accepts pixel datand stores it in the image at the location you specify. The method returns MagickFalse on success otherwise MagickTrue if an error is encountered. The pixel data can be either char, short int, int, ssize_t, float, or double in the order specified by map.

    @@ -1463,7 +1519,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    MagickWriteImageBlob

    +

    MagickWriteImageBlob

    MagickWriteImageBlob() implements direct to memory image formats. It returns the image as a blob and its length. Use MagickSetFormat() to set the format of the returned blob (GIF, JPEG, PNG, etc.).

    @@ -1490,7 +1546,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    NewPixelView

    +

    NewPixelView

    NewPixelView() returns a pixel view required for all other methods in the Pixel View API.

    @@ -1511,7 +1567,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    NewPixelViewRegion

    +

    NewPixelViewRegion

    NewPixelViewRegion() returns a pixel view required for all other methods in the Pixel View API.

    @@ -1537,7 +1593,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    PixelGetNextRow

    +

    PixelGetNextRow

    PixelGetNextRow() returns the next row as an array of pixel wands from the pixel iterator.

    @@ -1563,7 +1619,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    PixelIteratorGetException

    +

    PixelIteratorGetException

    PixelIteratorGetException() returns the severity, reason, and description of any error that occurs when using other methods in this API.

    @@ -1589,7 +1645,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    SetPixelViewIterator

    +

    SetPixelViewIterator

    SetPixelViewIterator() iterates over the pixel view in parallel and calls your set method for each scanline of the view. The pixel region is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension. The pixels are initiallly undefined and any settings you make in the callback method are automagically synced back to your image.

    @@ -1626,7 +1682,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    TransferPixelViewIterator

    +

    TransferPixelViewIterator

    TransferPixelViewIterator() iterates over two pixel views in parallel and calls your transfer method for each scanline of the view. The source pixel region is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination pixel view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.

    @@ -1667,7 +1723,7 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -

    UpdatePixelViewIterator

    +

    UpdatePixelViewIterator

    UpdatePixelViewIterator() iterates over the pixel view in parallel and calls your update method for each scanline of the view. The pixel region is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted. Updates to pixels in your callback are automagically synced back to the image.

    @@ -1707,12 +1763,12 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -
    +
    SecurityNews - And Now a Touch of Magick + And Now a Touch of Magick RelatedSitemap @@ -1728,8 +1784,9 @@ MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand, Copyright © 1999 ImageMagick Studio LLC
    +
    - + diff --git a/www/api/display.html b/www/api/display.html index 0f93c67..1d0f396 100644 --- a/www/api/display.html +++ b/www/api/display.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Interactively Display and Edit an Image + ImageMagick – MagickCore, C API: Interactively Display and Edit an Image - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Interactively Display and Edit an Image

    +
    +
    -
    -
    +

    Display

    -
    - + diff --git a/www/api/distort.html b/www/api/distort.html index 0d0c140..8cbd3a3 100644 --- a/www/api/distort.html +++ b/www/api/distort.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Image Distortions + ImageMagick – MagickCore, C API: Image Distortions - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Image Distortions

    +
    +
    -
    -
    +

    Distort



    -

    AffineTransformImage

    +

    AffineTransformImage

    AffineTransformImage() transforms an image as dictated by the affine matrix. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

    @@ -131,7 +187,7 @@
    -

    DistortImage

    +

    DistortImage

    DistortImage() distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usually of the same size as the source image, unless 'bestfit' is set to true.

    @@ -198,7 +254,7 @@
    -

    RotateImage

    +

    RotateImage

    RotateImage() creates a new image that is a rotated copy of an existing one. Positive angles rotate counter-clockwise (right-hand rule), while negative angles rotate clockwise. Rotated images are usually larger than the originals and have 'empty' triangular corners. X axis. Empty triangles left over from shearing the image are filled with the background color defined by member 'background_color' of the image. RotateImage allocates the memory necessary for the new Image structure and returns a pointer to the new image.

    @@ -219,7 +275,7 @@
    exception

    return any errors or warnings in this structure.

    -

    SparseColorImage

    +

    SparseColorImage

    SparseColorImage(), given a set of coordinates, interpolates the colors found at those coordinates, across the whole image, using various methods.

    @@ -267,12 +323,12 @@
    -
    - + diff --git a/www/api/draw.html b/www/api/draw.html index 93517d7..c8d1e4a 100644 --- a/www/api/draw.html +++ b/www/api/draw.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Draw on an Image + ImageMagick – MagickCore, C API: Draw on an Image - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Draw on an Image

    +
    +
    -
    -
    +

    Draw



    -

    AcquireDrawInfo

    +

    AcquireDrawInfo

    AcquireDrawInfo() returns a DrawInfo structure properly initialized.

    @@ -118,7 +174,7 @@
    DrawInfo *AcquireDrawInfo(void)
     
    -

    CloneDrawInfo

    +

    CloneDrawInfo

    CloneDrawInfo() makes a copy of the given draw_info structure. If NULL is specified, a new DrawInfo structure is created initialized to default values.

    @@ -144,7 +200,7 @@
    -

    DestroyDrawInfo

    +

    DestroyDrawInfo

    DestroyDrawInfo() deallocates memory associated with an DrawInfo structure.

    @@ -165,7 +221,7 @@
    -

    DrawAffineImage

    +

    DrawAffineImage

    DrawAffineImage() composites the source over the destination image as dictated by the affine transform.

    @@ -195,7 +251,7 @@
    -

    DrawClipPath

    +

    DrawClipPath

    DrawClipPath() draws the clip path on the image mask.

    @@ -225,7 +281,7 @@
    -

    DrawClippingMask

    +

    DrawClippingMask

    DrawClippingMask() draws the clip path and returns it as an image clipping mask.

    @@ -263,7 +319,7 @@
    -

    DrawCompositeMask

    +

    DrawCompositeMask

    DrawCompositeMask() draws the mask path and returns it as an image mask.

    @@ -301,7 +357,7 @@
    -

    DrawGradientImage

    +

    DrawGradientImage

    DrawGradientImage() draws a linear gradient on the image.

    @@ -327,7 +383,7 @@
    -

    DrawImage

    +

    DrawImage

    DrawImage() draws a graphic primitive on your image. The primitive may be represented as a string or filename. Precede the filename with an "at" sign (@) and the contents of the file are drawn on the image. You can affect how text is drawn by setting one or more members of the draw info structure.

    @@ -352,7 +408,7 @@
    -

    DrawPatternPath

    +

    DrawPatternPath

    DrawPatternPath() draws a pattern.

    @@ -386,7 +442,7 @@
    -

    DrawPrimitive

    +

    DrawPrimitive

    DrawPrimitive() draws a primitive (line, rectangle, ellipse) on the image.

    @@ -416,7 +472,7 @@
    -

    GetAffineMatrix

    +

    GetAffineMatrix

    GetAffineMatrix() returns an AffineMatrix initialized to the identity matrix.

    @@ -440,12 +496,12 @@
    -
    - + diff --git a/www/api/drawing-wand.html b/www/api/drawing-wand.html index bec2be5..675f4bd 100644 --- a/www/api/drawing-wand.html +++ b/www/api/drawing-wand.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickWand, C API: Drawing Wand Methods + ImageMagick – MagickWand, C API: Drawing Wand Methods - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickWand, C API: Drawing Wand Methods

    +
    +
    -
    -
    +

    Drawing-wand



    -

    ClearDrawingWand

    +

    ClearDrawingWand

    ClearDrawingWand() clears resources associated with the drawing wand.

    @@ -253,7 +309,7 @@
    -

    CloneDrawingWand

    +

    CloneDrawingWand

    CloneDrawingWand() makes an exact copy of the specified wand.

    @@ -274,7 +330,7 @@
    -

    DestroyDrawingWand

    +

    DestroyDrawingWand

    DestroyDrawingWand() frees all resources associated with the drawing wand. Once the drawing wand has been freed, it should not be used and further unless it re-allocated.

    @@ -295,7 +351,7 @@
    -

    DrawAffine

    +

    DrawAffine

    DrawAffine() adjusts the current affine transformation matrix with the specified affine transformation matrix. Note that the current affine transform is adjusted rather than replaced.

    @@ -320,7 +376,7 @@
    -

    DrawAnnotation

    +

    DrawAnnotation

    DrawAnnotation() draws text on the image.

    @@ -354,7 +410,7 @@
    -

    DrawArc

    +

    DrawArc

    DrawArc() draws an arc falling within a specified bounding rectangle on the image.

    @@ -400,7 +456,7 @@
    -

    DrawBezier

    +

    DrawBezier

    DrawBezier() draws a bezier curve through a set of points on the image.

    @@ -430,7 +486,7 @@
    -

    DrawCircle

    +

    DrawCircle

    DrawCircle() draws a circle on the image.

    @@ -468,7 +524,7 @@
    -

    DrawClearException

    +

    DrawClearException

    DrawClearException() clear any exceptions associated with the wand.

    @@ -489,7 +545,7 @@
    -

    DrawComposite

    +

    DrawComposite

    DrawComposite() composites an image onto the current image, using the specified composition operator, specified position, and at the specified size.

    @@ -537,7 +593,7 @@
    -

    DrawColor

    +

    DrawColor

    DrawColor() draws color on image using the current fill color, starting at specified position, and using specified paint method. The available paint methods are:

    @@ -577,7 +633,7 @@
    -

    DrawComment

    +

    DrawComment

    DrawComment() adds a comment to a vector output stream.

    @@ -602,7 +658,7 @@
    -

    DrawEllipse

    +

    DrawEllipse

    DrawEllipse() draws an ellipse on the image.

    @@ -648,7 +704,7 @@
    -

    DrawGetBorderColor

    +

    DrawGetBorderColor

    DrawGetBorderColor() returns the border color used for drawing bordered objects.

    @@ -674,7 +730,7 @@
    -

    DrawGetClipPath

    +

    DrawGetClipPath

    DrawGetClipPath() obtains the current clipping path ID. The value returned must be deallocated by the user when it is no longer needed.

    @@ -695,7 +751,7 @@
    -

    DrawGetClipRule

    +

    DrawGetClipRule

    DrawGetClipRule() returns the current polygon fill rule to be used by the clipping path.

    @@ -716,7 +772,7 @@
    -

    DrawGetClipUnits

    +

    DrawGetClipUnits

    DrawGetClipUnits() returns the interpretation of clip path units.

    @@ -737,7 +793,7 @@
    -

    DrawGetDensity

    +

    DrawGetDensity

    DrawGetDensity() obtains the vertical and horizontal resolution. The value returned must be deallocated by the user when it is no longer needed.

    @@ -758,7 +814,7 @@
    -

    DrawGetException

    +

    DrawGetException

    DrawGetException() returns the severity, reason, and description of any error that occurs when using other methods in this API.

    @@ -784,7 +840,7 @@
    -

    DrawGetExceptionType

    +

    DrawGetExceptionType

    DrawGetExceptionType() the exception type associated with the wand. If no exception has occurred, UndefinedExceptionType is returned.

    @@ -805,7 +861,7 @@
    -

    DrawGetFillColor

    +

    DrawGetFillColor

    DrawGetFillColor() returns the fill color used for drawing filled objects.

    @@ -831,7 +887,7 @@
    -

    DrawGetFillOpacity

    +

    DrawGetFillOpacity

    DrawGetFillOpacity() returns the opacity used when drawing using the fill color or fill texture. Fully opaque is 1.0.

    @@ -852,7 +908,7 @@
    -

    DrawGetFillRule

    +

    DrawGetFillRule

    DrawGetFillRule() returns the fill rule used while drawing polygons.

    @@ -873,7 +929,7 @@
    -

    DrawGetFont

    +

    DrawGetFont

    DrawGetFont() returns a null-terminated string specifying the font used when annotating with text. The value returned must be freed by the user when no longer needed.

    @@ -894,7 +950,7 @@
    -

    DrawGetFontFamily

    +

    DrawGetFontFamily

    DrawGetFontFamily() returns the font family to use when annotating with text. The value returned must be freed by the user when it is no longer needed.

    @@ -915,7 +971,7 @@
    -

    DrawGetFontResolution

    +

    DrawGetFontResolution

    DrawGetFontResolution() gets the image X and Y resolution.

    @@ -945,7 +1001,7 @@
    -

    DrawGetFontSize

    +

    DrawGetFontSize

    DrawGetFontSize() returns the font pointsize used when annotating with text.

    @@ -966,7 +1022,7 @@
    -

    DrawGetFontStretch

    +

    DrawGetFontStretch

    DrawGetFontStretch() returns the font stretch used when annotating with text.

    @@ -987,7 +1043,7 @@
    -

    DrawGetFontStyle

    +

    DrawGetFontStyle

    DrawGetFontStyle() returns the font style used when annotating with text.

    @@ -1008,7 +1064,7 @@
    -

    DrawGetFontWeight

    +

    DrawGetFontWeight

    DrawGetFontWeight() returns the font weight used when annotating with text.

    @@ -1029,7 +1085,7 @@
    -

    DrawGetGravity

    +

    DrawGetGravity

    DrawGetGravity() returns the text placement gravity used when annotating with text.

    @@ -1050,7 +1106,7 @@
    -

    DrawGetOpacity

    +

    DrawGetOpacity

    DrawGetOpacity() returns the opacity used when drawing with the fill or stroke color or texture. Fully opaque is 1.0.

    @@ -1071,7 +1127,7 @@
    -

    DrawGetStrokeAntialias

    +

    DrawGetStrokeAntialias

    DrawGetStrokeAntialias() returns the current stroke antialias setting. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

    @@ -1092,7 +1148,7 @@
    -

    DrawGetStrokeColor

    +

    DrawGetStrokeColor

    DrawGetStrokeColor() returns the color used for stroking object outlines.

    @@ -1118,7 +1174,7 @@
    -

    DrawGetStrokeDashArray

    +

    DrawGetStrokeDashArray

    DrawGetStrokeDashArray() returns an array representing the pattern of dashes and gaps used to stroke paths (see DrawSetStrokeDashArray). The array must be freed once it is no longer required by the user.

    @@ -1144,7 +1200,7 @@
    -

    DrawGetStrokeDashOffset

    +

    DrawGetStrokeDashOffset

    DrawGetStrokeDashOffset() returns the offset into the dash pattern to start the dash.

    @@ -1165,7 +1221,7 @@
    -

    DrawGetStrokeLineCap

    +

    DrawGetStrokeLineCap

    DrawGetStrokeLineCap() returns the shape to be used at the end of open subpaths when they are stroked. Values of LineCap are UndefinedCap, ButtCap, RoundCap, and SquareCap.

    @@ -1186,7 +1242,7 @@
    -

    DrawGetStrokeLineJoin

    +

    DrawGetStrokeLineJoin

    DrawGetStrokeLineJoin() returns the shape to be used at the corners of paths (or other vector shapes) when they are stroked. Values of LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.

    @@ -1207,7 +1263,7 @@
    -

    DrawGetStrokeMiterLimit

    +

    DrawGetStrokeMiterLimit

    DrawGetStrokeMiterLimit() returns the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

    @@ -1228,7 +1284,7 @@
    -

    DrawGetStrokeOpacity

    +

    DrawGetStrokeOpacity

    DrawGetStrokeOpacity() returns the opacity of stroked object outlines.

    @@ -1249,7 +1305,7 @@
    -

    DrawGetStrokeWidth

    +

    DrawGetStrokeWidth

    DrawGetStrokeWidth() returns the width of the stroke used to draw object outlines.

    @@ -1270,7 +1326,7 @@
    -

    DrawGetTextAlignment

    +

    DrawGetTextAlignment

    DrawGetTextAlignment() returns the alignment applied when annotating with text.

    @@ -1291,7 +1347,7 @@
    -

    DrawGetTextAntialias

    +

    DrawGetTextAntialias

    DrawGetTextAntialias() returns the current text antialias setting, which determines whether text is antialiased. Text is antialiased by default.

    @@ -1312,7 +1368,7 @@
    -

    DrawGetTextDecoration

    +

    DrawGetTextDecoration

    DrawGetTextDecoration() returns the decoration applied when annotating with text.

    @@ -1333,7 +1389,7 @@
    -

    DrawGetTextDirection

    +

    DrawGetTextDirection

    DrawGetTextDirection() returns the direction that will be used when annotating with text.

    @@ -1354,7 +1410,7 @@
    -

    DrawGetTextEncoding

    +

    DrawGetTextEncoding

    DrawGetTextEncoding() returns a null-terminated string which specifies the code set used for text annotations. The string must be freed by the user once it is no longer required.

    @@ -1375,7 +1431,7 @@
    -

    DrawGetTextKerning

    +

    DrawGetTextKerning

    DrawGetTextKerning() gets the spacing between characters in text.

    @@ -1396,7 +1452,7 @@
    -

    DrawGetTextInterlineSpacing

    +

    DrawGetTextInterlineSpacing

    DrawGetTextInterlineSpacing() gets the spacing between lines in text.

    @@ -1417,7 +1473,7 @@
    -

    DrawGetTextInterwordSpacing

    +

    DrawGetTextInterwordSpacing

    DrawGetTextInterwordSpacing() gets the spacing between words in text.

    @@ -1438,7 +1494,7 @@
    -

    DrawGetVectorGraphics

    +

    DrawGetVectorGraphics

    DrawGetVectorGraphics() returns a null-terminated string which specifies the vector graphics generated by any graphics calls made since the wand was instantiated. The string must be freed by the user once it is no longer required.

    @@ -1459,7 +1515,7 @@
    -

    DrawGetTextUnderColor

    +

    DrawGetTextUnderColor

    DrawGetTextUnderColor() returns the color of a background rectangle to place under text annotations.

    @@ -1485,7 +1541,7 @@
    -

    DrawLine

    +

    DrawLine

    DrawLine() draws a line on the image using the current stroke color, stroke opacity, and stroke width.

    @@ -1523,7 +1579,7 @@
    -

    DrawMatte

    +

    DrawMatte

    DrawMatte() paints on the image's opacity channel in order to set effected pixels to transparent. to influence the opacity of pixels. The available paint methods are:

    @@ -1565,7 +1621,7 @@ border color.
    -

    DrawPathClose

    +

    DrawPathClose

    DrawPathClose() adds a path element to the current path which closes the current subpath by drawing a straight line from the current point to the current subpath's most recent starting point (usually, the most recent moveto point).

    @@ -1586,7 +1642,7 @@ border color.
    -

    DrawPathCurveToAbsolute

    +

    DrawPathCurveToAbsolute

    DrawPathCurveToAbsolute() draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

    @@ -1633,7 +1689,7 @@ border color.
    -

    DrawPathCurveToRelative

    +

    DrawPathCurveToRelative

    DrawPathCurveToRelative() draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

    @@ -1680,7 +1736,7 @@ border color.
    -

    DrawPathCurveToQuadraticBezierAbsolute

    +

    DrawPathCurveToQuadraticBezierAbsolute

    DrawPathCurveToQuadraticBezierAbsolute() draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

    @@ -1718,7 +1774,7 @@ border color.
    -

    DrawPathCurveToQuadraticBezierRelative

    +

    DrawPathCurveToQuadraticBezierRelative

    DrawPathCurveToQuadraticBezierRelative() draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

    @@ -1756,7 +1812,7 @@ border color.
    -

    DrawPathCurveToQuadraticBezierSmoothAbsolute

    +

    DrawPathCurveToQuadraticBezierSmoothAbsolute

    DrawPathCurveToQuadraticBezierSmoothAbsolute() draws a quadratic Bezier curve (using absolute coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolute or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

    @@ -1786,7 +1842,7 @@ border color.
    -

    DrawPathCurveToQuadraticBezierSmoothRelative

    +

    DrawPathCurveToQuadraticBezierSmoothRelative

    DrawPathCurveToQuadraticBezierSmoothRelative() draws a quadratic Bezier curve (using relative coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolute or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

    @@ -1816,7 +1872,7 @@ border color.
    -

    DrawPathCurveToSmoothAbsolute

    +

    DrawPathCurveToSmoothAbsolute

    DrawPathCurveToSmoothAbsolute() draws a cubic Bezier curve from the current point to (x,y) using absolute coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

    @@ -1854,7 +1910,7 @@ border color.
    -

    DrawPathCurveToSmoothRelative

    +

    DrawPathCurveToSmoothRelative

    DrawPathCurveToSmoothRelative() draws a cubic Bezier curve from the current point to (x,y) using relative coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

    @@ -1892,7 +1948,7 @@ border color.
    -

    DrawPathEllipticArcAbsolute

    +

    DrawPathEllipticArcAbsolute

    DrawPathEllipticArcAbsolute() draws an elliptical arc from the current point to (x, y) using absolute coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automagically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is true then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

    @@ -1938,7 +1994,7 @@ border color.
    -

    DrawPathEllipticArcRelative

    +

    DrawPathEllipticArcRelative

    DrawPathEllipticArcRelative() draws an elliptical arc from the current point to (x, y) using relative coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automagically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is true then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

    @@ -1982,7 +2038,7 @@ border color.
    -

    DrawPathFinish

    +

    DrawPathFinish

    DrawPathFinish() terminates the current path.

    @@ -2003,7 +2059,7 @@ border color.
    -

    DrawPathLineToAbsolute

    +

    DrawPathLineToAbsolute

    DrawPathLineToAbsolute() draws a line path from the current point to the given coordinate using absolute coordinates. The coordinate then becomes the new current point.

    @@ -2033,7 +2089,7 @@ border color.
    -

    DrawPathLineToRelative

    +

    DrawPathLineToRelative

    DrawPathLineToRelative() draws a line path from the current point to the given coordinate using relative coordinates. The coordinate then becomes the new current point.

    @@ -2063,7 +2119,7 @@ border color.
    -

    DrawPathLineToHorizontalAbsolute

    +

    DrawPathLineToHorizontalAbsolute

    DrawPathLineToHorizontalAbsolute() draws a horizontal line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

    @@ -2089,7 +2145,7 @@ border color.
    -

    DrawPathLineToHorizontalRelative

    +

    DrawPathLineToHorizontalRelative

    DrawPathLineToHorizontalRelative() draws a horizontal line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

    @@ -2115,7 +2171,7 @@ border color.
    -

    DrawPathLineToVerticalAbsolute

    +

    DrawPathLineToVerticalAbsolute

    DrawPathLineToVerticalAbsolute() draws a vertical line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

    @@ -2141,7 +2197,7 @@ border color.
    -

    DrawPathLineToVerticalRelative

    +

    DrawPathLineToVerticalRelative

    DrawPathLineToVerticalRelative() draws a vertical line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

    @@ -2167,7 +2223,7 @@ border color.
    -

    DrawPathMoveToAbsolute

    +

    DrawPathMoveToAbsolute

    DrawPathMoveToAbsolute() starts a new sub-path at the given coordinate using absolute coordinates. The current point then becomes the specified coordinate.

    @@ -2197,7 +2253,7 @@ border color.
    -

    DrawPathMoveToRelative

    +

    DrawPathMoveToRelative

    DrawPathMoveToRelative() starts a new sub-path at the given coordinate using relative coordinates. The current point then becomes the specified coordinate.

    @@ -2227,7 +2283,7 @@ border color.
    -

    DrawPathStart

    +

    DrawPathStart

    DrawPathStart() declares the start of a path drawing list which is terminated by a matching DrawPathFinish() command. All other DrawPath commands must be enclosed between a DrawPathStart() and a DrawPathFinish() command. This is because path drawing commands are subordinate commands and they do not function by themselves.

    @@ -2248,7 +2304,7 @@ border color.
    -

    DrawPoint

    +

    DrawPoint

    DrawPoint() draws a point using the current fill color.

    @@ -2277,7 +2333,7 @@ border color.
    -

    DrawPolygon

    +

    DrawPolygon

    DrawPolygon() draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

    @@ -2307,7 +2363,7 @@ border color.
    -

    DrawPolyline

    +

    DrawPolyline

    DrawPolyline() draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

    @@ -2337,7 +2393,7 @@ border color.
    -

    DrawPopClipPath

    +

    DrawPopClipPath

    DrawPopClipPath() terminates a clip path definition.

    @@ -2358,7 +2414,7 @@ border color.
    -

    DrawPopDefs

    +

    DrawPopDefs

    DrawPopDefs() terminates a definition list.

    @@ -2379,7 +2435,7 @@ border color.
    -

    DrawPopPattern

    +

    DrawPopPattern

    DrawPopPattern() terminates a pattern definition.

    @@ -2400,7 +2456,7 @@ border color.
    -

    DrawPushClipPath

    +

    DrawPushClipPath

    DrawPushClipPath() starts a clip path definition which is comprized of any number of drawing commands and terminated by a DrawPopClipPath() command.

    @@ -2425,7 +2481,7 @@ border color.
    -

    DrawPushDefs

    +

    DrawPushDefs

    DrawPushDefs() indicates that commands up to a terminating DrawPopDefs() command create named elements (e.g. clip-paths, textures, etc.) which may safely be processed earlier for the sake of efficiency.

    @@ -2446,7 +2502,7 @@ border color.
    -

    DrawPushPattern

    +

    DrawPushPattern

    DrawPushPattern() indicates that subsequent commands up to a DrawPopPattern() command comprise the definition of a named pattern. The pattern space is assigned top left corner coordinates, a width and height, and becomes its own drawing space. Anything which can be drawn may be used in a pattern definition. Named patterns may be used as stroke or brush definitions.

    @@ -2489,7 +2545,7 @@ border color.
    -

    DrawRectangle

    +

    DrawRectangle

    DrawRectangle() draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

    @@ -2523,7 +2579,7 @@ border color.
    -

    DrawResetVectorGraphics

    +

    DrawResetVectorGraphics

    DrawResetVectorGraphics() resets the vector graphics associated with the specified wand.

    @@ -2544,7 +2600,7 @@ border color.
    -

    DrawRotate

    +

    DrawRotate

    DrawRotate() applies the specified rotation to the current coordinate space.

    @@ -2569,7 +2625,7 @@ border color.
    -

    DrawRoundRectangle

    +

    DrawRoundRectangle

    DrawRoundRectangle() draws a rounded rectangle given two coordinates, x & y corner radiuses and using the current stroke, stroke width, and fill settings.

    @@ -2615,7 +2671,7 @@ border color.
    -

    DrawScale

    +

    DrawScale

    DrawScale() adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

    @@ -2644,7 +2700,7 @@ border color.
    -

    DrawSetBorderColor

    +

    DrawSetBorderColor

    DrawSetBorderColor() sets the border color to be used for drawing bordered objects.

    @@ -2669,7 +2725,7 @@ border color.
    -

    DrawSetClipPath

    +

    DrawSetClipPath

    DrawSetClipPath() associates a named clipping path with the image. Only the areas drawn on by the clipping path will be modified as ssize_t as it remains in effect.

    @@ -2695,7 +2751,7 @@ border color.
    -

    DrawSetClipRule

    +

    DrawSetClipRule

    DrawSetClipRule() set the polygon fill rule to be used by the clipping path.

    @@ -2720,7 +2776,7 @@ border color.
    -

    DrawSetClipUnits

    +

    DrawSetClipUnits

    DrawSetClipUnits() sets the interpretation of clip path units.

    @@ -2746,7 +2802,7 @@ border color.
    -

    DrawSetDensity

    +

    DrawSetDensity

    DrawSetDensity() sets the vertical and horizontal resolution.

    @@ -2772,7 +2828,7 @@ border color.
    -

    DrawSetFillColor

    +

    DrawSetFillColor

    DrawSetFillColor() sets the fill color to be used for drawing filled objects.

    @@ -2797,7 +2853,7 @@ border color.
    -

    DrawSetFillOpacity

    +

    DrawSetFillOpacity

    DrawSetFillOpacity() sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

    @@ -2822,7 +2878,7 @@ border color.
    -

    DrawSetFontResolution

    +

    DrawSetFontResolution

    DrawSetFontResolution() sets the image resolution.

    @@ -2852,7 +2908,7 @@ border color.
    -

    DrawSetOpacity

    +

    DrawSetOpacity

    DrawSetOpacity() sets the opacity to use when drawing using the fill or stroke color or texture. Fully opaque is 1.0.

    @@ -2877,7 +2933,7 @@ border color.
    -

    DrawSetFillPatternURL

    +

    DrawSetFillPatternURL

    DrawSetFillPatternURL() sets the URL to use as a fill pattern for filling objects. Only local URLs ("#identifier") are supported at this time. These local URLs are normally created by defining a named fill pattern with DrawPushPattern/DrawPopPattern.

    @@ -2903,7 +2959,7 @@ border color.
    -

    DrawSetFillRule

    +

    DrawSetFillRule

    DrawSetFillRule() sets the fill rule to use while drawing polygons.

    @@ -2928,7 +2984,7 @@ border color.
    -

    DrawSetFont

    +

    DrawSetFont

    DrawSetFont() sets the fully-specified font to use when annotating with text.

    @@ -2953,7 +3009,7 @@ border color.
    -

    DrawSetFontFamily

    +

    DrawSetFontFamily

    DrawSetFontFamily() sets the font family to use when annotating with text.

    @@ -2979,7 +3035,7 @@ border color.
    -

    DrawSetFontSize

    +

    DrawSetFontSize

    DrawSetFontSize() sets the font pointsize to use when annotating with text.

    @@ -3004,7 +3060,7 @@ border color.
    -

    DrawSetFontStretch

    +

    DrawSetFontStretch

    DrawSetFontStretch() sets the font stretch to use when annotating with text. The AnyStretch enumeration acts as a wild-card "don't care" option.

    @@ -3030,7 +3086,7 @@ border color.
    -

    DrawSetFontStyle

    +

    DrawSetFontStyle

    DrawSetFontStyle() sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

    @@ -3055,7 +3111,7 @@ border color.
    -

    DrawSetFontWeight

    +

    DrawSetFontWeight

    DrawSetFontWeight() sets the font weight to use when annotating with text.

    @@ -3081,7 +3137,7 @@ border color.
    -

    DrawSetGravity

    +

    DrawSetGravity

    DrawSetGravity() sets the text placement gravity to use when annotating with text.

    @@ -3106,7 +3162,7 @@ border color.
    -

    DrawSetStrokeColor

    +

    DrawSetStrokeColor

    DrawSetStrokeColor() sets the color used for stroking object outlines.

    @@ -3132,7 +3188,7 @@ border color.
    -

    DrawSetStrokePatternURL

    +

    DrawSetStrokePatternURL

    DrawSetStrokePatternURL() sets the pattern used for stroking object outlines.

    @@ -3158,7 +3214,7 @@ border color.
    -

    DrawSetStrokeAntialias

    +

    DrawSetStrokeAntialias

    DrawSetStrokeAntialias() controls whether stroked outlines are antialiased. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

    @@ -3184,7 +3240,7 @@ border color.
    -

    DrawSetStrokeDashArray

    +

    DrawSetStrokeDashArray

    DrawSetStrokeDashArray() specifies the pattern of dashes and gaps used to stroke paths. The stroke dash array represents an array of numbers that specify the lengths of alternating dashes and gaps in pixels. If an odd number of values is provided, then the list of values is repeated to yield an even number of values. To remove an existing dash array, pass a zero number_elements argument and null dasharray. A typical stroke dash array might contain the members 5 3 2.

    @@ -3214,7 +3270,7 @@ border color.
    -

    DrawSetStrokeDashOffset

    +

    DrawSetStrokeDashOffset

    DrawSetStrokeDashOffset() specifies the offset into the dash pattern to start the dash.

    @@ -3240,7 +3296,7 @@ border color.
    -

    DrawSetStrokeLineCap

    +

    DrawSetStrokeLineCap

    DrawSetStrokeLineCap() specifies the shape to be used at the end of open subpaths when they are stroked. Values of LineCap are UndefinedCap, ButtCap, RoundCap, and SquareCap.

    @@ -3266,7 +3322,7 @@ border color.
    -

    DrawSetStrokeLineJoin

    +

    DrawSetStrokeLineJoin

    DrawSetStrokeLineJoin() specifies the shape to be used at the corners of paths (or other vector shapes) when they are stroked. Values of LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.

    @@ -3292,7 +3348,7 @@ border color.
    -

    DrawSetStrokeMiterLimit

    +

    DrawSetStrokeMiterLimit

    DrawSetStrokeMiterLimit() specifies the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

    @@ -3318,7 +3374,7 @@ border color.
    -

    DrawSetStrokeOpacity

    +

    DrawSetStrokeOpacity

    DrawSetStrokeOpacity() specifies the opacity of stroked object outlines.

    @@ -3344,7 +3400,7 @@ border color.
    -

    DrawSetStrokeWidth

    +

    DrawSetStrokeWidth

    DrawSetStrokeWidth() sets the width of the stroke used to draw object outlines.

    @@ -3370,7 +3426,7 @@ border color.
    -

    DrawSetTextAlignment

    +

    DrawSetTextAlignment

    DrawSetTextAlignment() specifies a text alignment to be applied when annotating with text.

    @@ -3395,7 +3451,7 @@ border color.
    -

    DrawSetTextAntialias

    +

    DrawSetTextAntialias

    DrawSetTextAntialias() controls whether text is antialiased. Text is antialiased by default.

    @@ -3421,7 +3477,7 @@ border color.
    -

    DrawSetTextDecoration

    +

    DrawSetTextDecoration

    DrawSetTextDecoration() specifies a decoration to be applied when annotating with text.

    @@ -3447,7 +3503,7 @@ border color.
    -

    DrawSetTextDirection

    +

    DrawSetTextDirection

    DrawSetTextDirection() specifies the direction to be used when annotating with text.

    @@ -3473,7 +3529,7 @@ border color.
    -

    DrawSetTextEncoding

    +

    DrawSetTextEncoding

    DrawSetTextEncoding() specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

    @@ -3498,7 +3554,7 @@ border color.
    -

    DrawSetTextKerning

    +

    DrawSetTextKerning

    DrawSetTextKerning() sets the spacing between characters in text.

    @@ -3523,7 +3579,7 @@ border color.
    -

    DrawSetTextInterlineSpacing

    +

    DrawSetTextInterlineSpacing

    DrawSetTextInterlineSpacing() sets the spacing between line in text.

    @@ -3549,7 +3605,7 @@ border color.
    -

    DrawSetTextInterwordSpacing

    +

    DrawSetTextInterwordSpacing

    DrawSetTextInterwordSpacing() sets the spacing between words in text.

    @@ -3575,7 +3631,7 @@ border color.
    -

    DrawSetTextUnderColor

    +

    DrawSetTextUnderColor

    DrawSetTextUnderColor() specifies the color of a background rectangle to place under text annotations.

    @@ -3601,7 +3657,7 @@ border color.
    -

    DrawSetVectorGraphics

    +

    DrawSetVectorGraphics

    DrawSetVectorGraphics() sets the vector graphics associated with the specified wand. Use this method with DrawGetVectorGraphics() as a method to persist the vector graphics state.

    @@ -3627,7 +3683,7 @@ border color.
    -

    DrawSkewX

    +

    DrawSkewX

    DrawSkewX() skews the current coordinate system in the horizontal direction.

    @@ -3652,7 +3708,7 @@ border color.
    -

    DrawSkewY

    +

    DrawSkewY

    DrawSkewY() skews the current coordinate system in the vertical direction.

    @@ -3677,7 +3733,7 @@ border color.
    -

    DrawTranslate

    +

    DrawTranslate

    DrawTranslate() applies a translation to the current coordinate system which moves the coordinate system origin to the specified coordinate.

    @@ -3707,7 +3763,7 @@ border color.
    -

    DrawSetViewbox

    +

    DrawSetViewbox

    DrawSetViewbox() sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

    @@ -3745,7 +3801,7 @@ border color.
    -

    IsDrawingWand

    +

    IsDrawingWand

    IsDrawingWand() returns MagickTrue if the wand is verified as a drawing wand.

    @@ -3766,7 +3822,7 @@ border color.
    -

    NewDrawingWand

    +

    NewDrawingWand

    NewDrawingWand() returns a drawing wand required for all other methods in the API.

    @@ -3775,7 +3831,7 @@ border color.
    DrawingWand *NewDrawingWand(void)
     
    -

    PeekDrawingWand

    +

    PeekDrawingWand

    PeekDrawingWand() returns the current drawing wand.

    @@ -3796,7 +3852,7 @@ border color.
    -

    PopDrawingWand

    +

    PopDrawingWand

    PopDrawingWand() destroys the current drawing wand and returns to the previously pushed drawing wand. Multiple drawing wands may exist. It is an error to attempt to pop more drawing wands than have been pushed, and it is proper form to pop all drawing wands which have been pushed.

    @@ -3817,7 +3873,7 @@ border color.
    -

    PushDrawingWand

    +

    PushDrawingWand

    PushDrawingWand() clones the current drawing wand to create a new drawing wand. The original drawing wand(s) may be returned to by invoking PopDrawingWand(). The drawing wands are stored on a drawing wand stack. For every Pop there must have already been an equivalent Push.

    @@ -3841,12 +3897,12 @@ border color.
    -
    - + diff --git a/www/api/effect.html b/www/api/effect.html index 16bd965..205d7a7 100644 --- a/www/api/effect.html +++ b/www/api/effect.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Add an Effect + ImageMagick – MagickCore, C API: Add an Effect - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Add an Effect

    +
    +
    -
    -
    +

    Effect



    -

    AdaptiveBlurImage

    +

    AdaptiveBlurImage

    AdaptiveBlurImage() adaptively blurs the image by blurring less intensely near image edges and more intensely far from edges. We blur the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and AdaptiveBlurImage() selects a suitable radius for you.

    @@ -156,7 +212,7 @@ Image *AdaptiveBlurImageChannel(const Image *image,
    -

    AdaptiveSharpenImage

    +

    AdaptiveSharpenImage

    AdaptiveSharpenImage() adaptively sharpens the image by sharpening more intensely near image edges and less intensely far from edges. We sharpen the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and AdaptiveSharpenImage() selects a suitable radius for you.

    @@ -197,7 +253,7 @@ Image *AdaptiveSharpenImageChannel(const Image *image,
    -

    BlurImage

    +

    BlurImage

    BlurImage() blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and BlurImage() selects a suitable radius for you.

    @@ -237,7 +293,7 @@ Image *BlurImageChannel(const Image *image,const ChannelType channel,
    -

    ConvolveImage

    +

    ConvolveImage

    ConvolveImage() applies a custom convolution kernel to the image.

    @@ -277,7 +333,7 @@ Image *ConvolveImageChannel(const Image *image,const ChannelType channel,
    -

    DespeckleImage

    +

    DespeckleImage

    DespeckleImage() reduces the speckle noise in an image while preserving the edges of the original image. A speckle removing filter uses a complementary hulling technique (raising pixels that are darker than their surrounding neighbors, then complementarily lowering pixels that are brighter than their surrounding neighbors) to reduce the speckle index of that image (reference Crimmins speckle removal).

    @@ -302,7 +358,7 @@ Image *ConvolveImageChannel(const Image *image,const ChannelType channel,
    -

    EdgeImage

    +

    EdgeImage

    EdgeImage() finds edges in an image. Radius defines the radius of the convolution filter. Use a radius of 0 and EdgeImage() selects a suitable radius for you.

    @@ -332,7 +388,7 @@ Image *ConvolveImageChannel(const Image *image,const ChannelType channel,
    -

    EmbossImage

    +

    EmbossImage

    EmbossImage() returns a grayscale image with a three-dimensional effect. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Emboss() selects a suitable radius for you.

    @@ -366,7 +422,7 @@ Image *ConvolveImageChannel(const Image *image,const ChannelType channel,
    -

    FilterImage

    +

    FilterImage

    FilterImage() applies a custom convolution kernel to the image.

    @@ -402,7 +458,7 @@ Image *FilterImageChannel(const Image *image,const ChannelType channel,
    -

    GaussianBlurImage

    +

    GaussianBlurImage

    GaussianBlurImage() blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and GaussianBlurImage() selects a suitable radius for you.

    @@ -443,7 +499,7 @@ Image *GaussianBlurImageChannel(const Image *image,
    -

    MotionBlurImage

    +

    MotionBlurImage

    MotionBlurImage() simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

    @@ -490,7 +546,7 @@ ExceptionInfo *exception)
    -

    KuwaharaImage

    +

    KuwaharaImage

    KuwaharaImage() is an edge preserving noise reduction filter.

    @@ -530,7 +586,7 @@ Image *KuwaharaImageChannel(const Image *image,const ChannelType channel,
    -

    PreviewImage

    +

    PreviewImage

    PreviewImage() tiles 9 thumbnails of the specified image with an image processing operation applied with varying parameters. This may be helpful pin-pointing an appropriate parameter for a particular image processing operation.

    @@ -560,7 +616,7 @@ Image *KuwaharaImageChannel(const Image *image,const ChannelType channel,
    -

    RotationalBlurImage

    +

    RotationalBlurImage

    RotationalBlurImage() applies a rotational blur to the image.

    @@ -598,7 +654,7 @@ const ChannelType channel,const double angle,ExceptionInfo *exception)
    -

    SelectiveBlurImage

    +

    SelectiveBlurImage

    SelectiveBlurImage() selectively blur pixels within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.

    @@ -643,7 +699,7 @@ Image *SelectiveBlurImageChannel(const Image *image,
    -

    ShadeImage

    +

    ShadeImage

    ShadeImage() shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis.

    @@ -677,7 +733,7 @@ Image *SelectiveBlurImageChannel(const Image *image,
    -

    SharpenImage

    +

    SharpenImage

    SharpenImage() sharpens the image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and SharpenImage() selects a suitable radius for you.

    @@ -719,7 +775,7 @@ const double radius,const double sigma,ExceptionInfo *exception)
    -

    SpreadImage

    +

    SpreadImage

    SpreadImage() is a special effects method that randomly displaces each pixel in a block defined by the radius parameter.

    @@ -749,7 +805,7 @@ const double radius,const double sigma,ExceptionInfo *exception)
    -

    UnsharpMaskImage

    +

    UnsharpMaskImage

    UnsharpMaskImage() sharpens one or more image channels. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and UnsharpMaskImage() selects a suitable radius for you.

    @@ -802,12 +858,12 @@ const double gain,const double threshold,ExceptionInfo *exception)
    -
    +
    SecurityNews - And Now a Touch of Magick + And Now a Touch of Magick RelatedSitemap @@ -823,8 +879,9 @@ const double gain,const double threshold,ExceptionInfo *exception) Copyright © 1999 ImageMagick Studio LLC
    +
    - + diff --git a/www/api/enhance.html b/www/api/enhance.html index c849ee4..9976a81 100644 --- a/www/api/enhance.html +++ b/www/api/enhance.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Enhance an Image + ImageMagick – MagickCore, C API: Enhance an Image - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Enhance an Image

    +
    +
    -
    -
    +

    Enhance



    -

    AutoGammaImage

    +

    AutoGammaImage

    AutoGammaImage() extract the 'mean' from the image and adjust the image to try make set its gamma appropriatally.

    @@ -145,7 +201,7 @@ MagickBooleanType AutoGammaImageChannel(Image *image,
    -

    AutoLevelImage

    +

    AutoLevelImage

    AutoLevelImage() adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range.

    @@ -172,7 +228,7 @@ MagickBooleanType AutoLevelImageChannel(Image *image,
    -

    BrightnessContrastImage

    +

    BrightnessContrastImage

    BrightnessContrastImage() changes the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomial function to apply to the image.

    @@ -209,7 +265,7 @@ MagickBooleanType BrightnessContrastImageChannel(Image *image,
    -

    ColorDecisionListImage

    +

    ColorDecisionListImage

    ColorDecisionListImage() accepts a lightweight Color Correction Collection (CCC) file which solely contains one or more color corrections and applies the correction to the image. Here is a sample CCC file:

    @@ -251,7 +307,7 @@ MagickBooleanType BrightnessContrastImageChannel(Image *image,
    -

    ClutImage

    +

    ClutImage

    ClutImage() replaces each color value in the given image, by using it as an index to lookup a replacement color value in a Color Look UP Table in the form of an image. The values are extracted along a diagonal of the CLUT image so either a horizontal or vertical gradient image can be used.

    @@ -286,7 +342,7 @@ MagickBooleanType ClutImageChannel(Image *image,
    -

    ContrastImage

    +

    ContrastImage

    ContrastImage() enhances the intensity differences between the lighter and darker elements of the image. Set sharpen to a MagickTrue to increase the image contrast otherwise the contrast is reduced.

    @@ -312,7 +368,7 @@ MagickBooleanType ClutImageChannel(Image *image,
    -

    ContrastStretchImage

    +

    ContrastStretchImage

    ContrastStretchImage() is a simple image enhancement technique that attempts to improve the contrast in an image by `stretching' the range of intensity values it contains to span a desired range of values. It differs from the more sophisticated histogram equalization in that it can only apply a linear scaling function to the image pixel values. As a result the `enhancement' is less harsh.

    @@ -353,7 +409,7 @@ MagickBooleanType ContrastStretchImageChannel(Image *image,
    -

    EnhanceImage

    +

    EnhanceImage

    EnhanceImage() applies a digital filter that improves the quality of a noisy image.

    @@ -378,7 +434,7 @@ MagickBooleanType ContrastStretchImageChannel(Image *image,
    -

    EqualizeImage

    +

    EqualizeImage

    EqualizeImage() applies a histogram equalization to the image.

    @@ -405,7 +461,7 @@ MagickBooleanType EqualizeImageChannel(Image *image,
    -

    GammaImage

    +

    GammaImage

    GammaImage() gamma-corrects a particular image channel. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

    @@ -442,7 +498,7 @@ MagickBooleanType GammaImageChannel(Image *image,
    -

    GrayscaleImage

    +

    GrayscaleImage

    GrayscaleImage() converts the colors in the reference image to gray.

    @@ -468,7 +524,7 @@ MagickBooleanType GammaImageChannel(Image *image,
    -

    HaldClutImage

    +

    HaldClutImage

    HaldClutImage() applies a Hald color lookup table to the image. A Hald color lookup table is a 3-dimensional color cube mapped to 2 dimensions. Create it with the HALD coder. You can apply any color transformation to the Hald image and then use this method to apply the transform to the image.

    @@ -499,7 +555,7 @@ MagickBooleanType HaldClutImageChannel(Image *image,
    -

    LevelImage

    +

    LevelImage

    LevelImage() adjusts the levels of a particular image channel by scaling the colors falling between specified white and black points to the full available quantum range.

    @@ -530,7 +586,7 @@ MagickBooleanType HaldClutImageChannel(Image *image,
    -

    LevelImage

    +

    LevelImage

    LevelImage() applies the normal level operation to the image, spreading out the values between the black and white points over the entire range of values. Gamma correction is also applied after the values has been mapped.

    @@ -573,7 +629,7 @@ MagickBooleanType LevelImageChannel(Image *image,
    -

    LevelizeImageChannel

    +

    LevelizeImageChannel

    LevelizeImageChannel() applies the reversed LevelImage() operation to just the specific channels specified. It compresses the full range of color values, so that they lie between the given black and white points. Gamma is applied before the values are mapped.

    @@ -615,7 +671,7 @@ MagickBooleanType LevelImageChannel(Image *image,
    -

    LevelImageColor

    +

    LevelImageColor

    LevelImageColor() maps the given color to "black" and "white" values, linearly spreading out the colors, and level values on a channel by channel bases, as per LevelImage(). The given colors allows you to specify different level ranges for each of the color channels separately.

    @@ -659,7 +715,7 @@ const MagickPixelPacket *white_color,const MagickBooleanType invert)
    -

    LinearStretchImage

    +

    LinearStretchImage

    LinearStretchImage() discards any pixels below the black point and above the white point and levels the remaining pixels.

    @@ -689,7 +745,7 @@ const MagickPixelPacket *white_color,const MagickBooleanType invert)
    -

    ModulateImage

    +

    ModulateImage

    ModulateImage() lets you control the brightness, saturation, and hue of an image. Modulate represents the brightness, saturation, and hue as one parameter (e.g. 90,150,100). If the image colorspace is HSL, the modulation is lightness, saturation, and hue. For HWB, use blackness, whiteness, and hue. And for HCL, use chrome, luma, and hue.

    @@ -714,7 +770,7 @@ const MagickPixelPacket *white_color,const MagickBooleanType invert)
    -

    NegateImage

    +

    NegateImage

    NegateImage() negates the colors in the reference image. The grayscale option means that only grayscale values within the image are negated.

    @@ -746,7 +802,7 @@ MagickBooleanType NegateImageChannel(Image *image,
    -

    The NormalizeImage

    +

    The NormalizeImage

    The NormalizeImage() method enhances the contrast of a color image by mapping the darkest 2 percent of all pixel to black and the brightest 1 percent to white.

    @@ -773,7 +829,7 @@ MagickBooleanType NormalizeImageChannel(Image *image,
    -

    SigmoidalContrastImage

    +

    SigmoidalContrastImage

    SigmoidalContrastImage() adjusts the contrast of an image with a non-linear sigmoidal contrast algorithm. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is pushing it); mid-point indicates where midtones fall in the resultant image (0 is white; 50 is middle-gray; 100 is black). Set sharpen to MagickTrue to increase the image contrast otherwise the contrast is reduced.

    @@ -817,12 +873,12 @@ MagickBooleanType SigmoidalContrastImageChannel(Image *image,
    -
    +
    SecurityNews - And Now a Touch of Magick + And Now a Touch of Magick RelatedSitemap @@ -838,8 +894,9 @@ MagickBooleanType SigmoidalContrastImageChannel(Image *image, Copyright © 1999 ImageMagick Studio LLC
    +
    - + diff --git a/www/api/exception.html b/www/api/exception.html index 32d5325..2e377a0 100644 --- a/www/api/exception.html +++ b/www/api/exception.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Dealing with Exceptions + ImageMagick – MagickCore, C API: Dealing with Exceptions - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Dealing with Exceptions

    +
    +
    -
    -
    +

    Exception



    -

    AcquireExceptionInfo

    +

    AcquireExceptionInfo

    AcquireExceptionInfo() allocates the ExceptionInfo structure.

    @@ -122,7 +178,7 @@
    ExceptionInfo *AcquireExceptionInfo(void)
     
    -

    ClearMagickException

    +

    ClearMagickException

    ClearMagickException() clears any exception that may not have been caught yet.

    @@ -143,7 +199,7 @@
    -

    CatchException

    +

    CatchException

    CatchException() returns if no exceptions is found otherwise it reports the exception as a warning, error, or fatal depending on the severity.

    @@ -164,7 +220,7 @@
    -

    CloneExceptionInfo

    +

    CloneExceptionInfo

    CloneExceptionInfo() clones the ExceptionInfo structure.

    @@ -185,7 +241,7 @@
    -

    DestroyExceptionInfo

    +

    DestroyExceptionInfo

    DestroyExceptionInfo() deallocates memory associated with an exception.

    @@ -206,7 +262,7 @@
    -

    GetExceptionMessage

    +

    GetExceptionMessage

    GetExceptionMessage() returns the error message defined by the specified error code.

    @@ -227,7 +283,7 @@
    -

    GetLocaleExceptionMessage

    +

    GetLocaleExceptionMessage

    GetLocaleExceptionMessage() converts a enumerated exception severity and tag to a message in the current locale.

    @@ -253,7 +309,7 @@
    -

    InheritException

    +

    InheritException

    InheritException() inherits an exception from a related exception.

    @@ -278,7 +334,7 @@
    -

    InitializeExceptionInfo

    +

    InitializeExceptionInfo

    InitializeExceptionInfo() initializes an exception to default values.

    @@ -299,7 +355,7 @@
    -

    MagickError

    +

    MagickError

    MagickError() calls the exception handler methods with an error reason.

    @@ -329,7 +385,7 @@
    -

    MagickFatalError

    +

    MagickFatalError

    MagickFatalError() calls the fatal exception handler methods with an error reason.

    @@ -359,7 +415,7 @@
    -

    MagickWarning

    +

    MagickWarning

    MagickWarning() calls the warning handler methods with a warning reason.

    @@ -389,7 +445,7 @@
    -

    SetErrorHandler

    +

    SetErrorHandler

    SetErrorHandler() sets the exception handler to the specified method and returns the previous exception handler.

    @@ -410,7 +466,7 @@
    -

    SetFatalErrorHandler

    +

    SetFatalErrorHandler

    SetFatalErrorHandler() sets the fatal exception handler to the specified method and returns the previous fatal exception handler.

    @@ -431,7 +487,7 @@
    -

    SetWarningHandler

    +

    SetWarningHandler

    SetWarningHandler() sets the warning handler to the specified method and returns the previous warning handler.

    @@ -452,7 +508,7 @@
    -

    ThrowException

    +

    ThrowException

    ThrowException() throws an exception with the specified severity code, reason, and optional description.

    @@ -490,12 +546,12 @@
    -
    - + diff --git a/www/api/feature.html b/www/api/feature.html index 19285ab..197b98c 100644 --- a/www/api/feature.html +++ b/www/api/feature.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Image Features + ImageMagick – MagickCore, C API: Image Features - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Image Features

    +
    +
    -
    -
    +

    Feature



    -

    CannyEdgeImage

    +

    CannyEdgeImage

    CannyEdgeImage() uses a multi-stage algorithm to detect a wide range of edges in images.

    @@ -144,7 +200,7 @@
    -

    GetImageChannelFeatures

    +

    GetImageChannelFeatures

    GetImageChannelFeatures() returns features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance. The features include the angular second moment, contrast, correlation, sum of squares: variance, inverse difference moment, sum average, sum varience, sum entropy, entropy, difference variance, difference entropy, information measures of correlation 1, information measures of correlation 2, and maximum correlation coefficient. You can access the red channel contrast, for example, like this:

    @@ -180,7 +236,7 @@ contrast=channel_features[RedChannel].contrast[0];
    -

    Use HoughLineImage

    +

    Use HoughLineImage

    Use HoughLineImage() in conjunction with any binary edge extracted image (we recommand Canny) to identify lines in the image. The algorithm accumulates counts for every white pixel for every possible orientation (for angles from 0 to 179 in 1 degree increments) and distance from the center of the image to the corner (in 1 px increments) and stores the counts in an accumulator matrix of angle vs distance. The size of the accumulator is 180x(diagonal/2). Next it searches this space for peaks in counts and converts the locations of the peaks to slope and intercept in the normal x,y input image space. Use the slope/intercepts to find the endpoints clipped to the bounds of the image. The lines are then drawn. The counts are a measure of the length of the lines.

    @@ -214,7 +270,7 @@ contrast=channel_features[RedChannel].contrast[0];
    -

    MeanShiftImage

    +

    MeanShiftImage

    MeanShiftImage() delineate arbitrarily shaped clusters in the image. For each pixel, it visits all the pixels in the neighborhood specified by the window centered at the pixel and excludes those that are outside the radius=(window-1)/2 surrounding the pixel. From those pixels, it finds those that are within the specified color distance from the current mean, and computes a new x,y centroid from those coordinates and a new mean. This new x,y centroid is used as the center for a new window. This process iterates until it converges and the final mean is replaces the (original window center) pixel value. It repeats this process for the next pixel, etc., until it processes all pixels in the image. Results are typically better with colorspaces other than sRGB. We recommend YIQ, YUV or YCbCr.

    @@ -252,12 +308,12 @@ contrast=channel_features[RedChannel].contrast[0];
    -
    +
    SecurityNews - And Now a Touch of Magick + And Now a Touch of Magick RelatedSitemap @@ -273,8 +329,9 @@ contrast=channel_features[RedChannel].contrast[0]; Copyright © 1999 ImageMagick Studio LLC
    +
    - + diff --git a/www/api/fourier.html b/www/api/fourier.html index 7ed60f9..3c0cebe 100644 --- a/www/api/fourier.html +++ b/www/api/fourier.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Fourier Transform + ImageMagick – MagickCore, C API: Fourier Transform - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Fourier Transform

    +
    +
    -
    -
    +

    Fourier



    -

    ComplexImages

    +

    ComplexImages

    ComplexImages() performs complex mathematics on an image sequence.

    @@ -130,7 +186,7 @@
    -

    ForwardFourierTransformImage

    +

    ForwardFourierTransformImage

    ForwardFourierTransformImage() implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

    @@ -160,7 +216,7 @@
    -

    InverseFourierTransformImage

    +

    InverseFourierTransformImage

    InverseFourierTransformImage() implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

    @@ -198,12 +254,12 @@
    -
    - + diff --git a/www/api/fx.html b/www/api/fx.html index 5517f90..2a609ec 100644 --- a/www/api/fx.html +++ b/www/api/fx.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Add a Special Effect + ImageMagick – MagickCore, C API: Add a Special Effect - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Add a Special Effect

    +
    +
    -
    -
    +

    Fx

    -
    +
    SecurityNews - And Now a Touch of Magick + And Now a Touch of Magick RelatedSitemap @@ -158,8 +214,9 @@ Image *FxImageChannel(const Image *image,const ChannelType channel, Copyright © 1999 ImageMagick Studio LLC
    +
    - + diff --git a/www/api/histogram.html b/www/api/histogram.html index e01c5dd..74143d5 100644 --- a/www/api/histogram.html +++ b/www/api/histogram.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Image Histograms + ImageMagick – MagickCore, C API: Image Histograms - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Image Histograms

    +
    +
    -
    -
    +

    Histogram



    -

    GetImageHistogram

    +

    GetImageHistogram

    GetImageHistogram() returns the unique colors in an image.

    @@ -125,7 +181,7 @@
    exception

    return any errors or warnings in this structure.

    -

    IdentifyPaletteImage

    +

    IdentifyPaletteImage

    IdentifyPaletteImage() returns MagickTrue if the image has 256 unique colors or less.

    @@ -143,7 +199,7 @@
    exception

    return any errors or warnings in this structure.

    -

    IsHistogramImage

    +

    IsHistogramImage

    IsHistogramImage() returns MagickTrue if the image has 1024 unique colors or less.

    @@ -161,7 +217,7 @@
    exception

    return any errors or warnings in this structure.

    -

    IsPaletteImage

    +

    IsPaletteImage

    IsPaletteImage() returns MagickTrue if the image is PseudoClass and has 256 unique colors or less.

    @@ -179,7 +235,7 @@
    exception

    return any errors or warnings in this structure.

    -

    MinMaxStretchImage

    +

    MinMaxStretchImage

    MinMaxStretchImage() uses the exact minimum and maximum values found in each of the channels given, as the BlackPoint and WhitePoint to linearly stretch the colors (and histogram) of the image. The stretch points are also moved further inward by the adjustment values given.

    @@ -218,7 +274,7 @@
    -

    GetNumberColors

    +

    GetNumberColors

    GetNumberColors() returns the number of unique colors in an image.

    @@ -239,7 +295,7 @@
    exception

    return any errors or warnings in this structure.

    -

    UniqueImageColors

    +

    UniqueImageColors

    UniqueImageColors() returns the unique colors of an image.

    @@ -259,12 +315,12 @@
    -
    - + diff --git a/www/api/image-view.html b/www/api/image-view.html index b0f3d15..6dcee25 100644 --- a/www/api/image-view.html +++ b/www/api/image-view.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Image View Methods + ImageMagick – MagickCore, C API: Image View Methods - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Image View Methods

    +
    +
    -
    -
    +

    Image-view



    -

    CloneImageView

    +

    CloneImageView

    CloneImageView() makes a copy of the specified image view.

    @@ -137,7 +193,7 @@
    -

    DestroyImageView

    +

    DestroyImageView

    DestroyImageView() deallocates memory associated with a image view.

    @@ -158,7 +214,7 @@
    -

    DuplexTransferImageViewIterator

    +

    DuplexTransferImageViewIterator

    DuplexTransferImageViewIterator() iterates over three image views in parallel and calls your transfer method for each scanline of the view. The source and duplex pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination image view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.

    @@ -211,7 +267,7 @@
    -

    GetImageViewAuthenticIndexes

    +

    GetImageViewAuthenticIndexes

    GetImageViewAuthenticIndexes() returns the image view authentic indexes.

    @@ -232,7 +288,7 @@
    -

    GetImageViewAuthenticPixels

    +

    GetImageViewAuthenticPixels

    GetImageViewAuthenticPixels() returns the image view authentic pixels.

    @@ -253,7 +309,7 @@
    -

    GetImageViewException

    +

    GetImageViewException

    GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.

    @@ -279,7 +335,7 @@
    -

    GetImageViewExtent

    +

    GetImageViewExtent

    GetImageViewExtent() returns the image view extent.

    @@ -300,7 +356,7 @@
    -

    GetImageViewImage

    +

    GetImageViewImage

    GetImageViewImage() returns the image associated with the image view.

    @@ -321,7 +377,7 @@
    -

    GetImageViewIterator

    +

    GetImageViewIterator

    GetImageViewIterator() iterates over the image view in parallel and calls your get method for each scanline of the view. The pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. Any updates to the pixels in your callback are ignored.

    @@ -364,7 +420,7 @@
    -

    GetImageViewVirtualIndexes

    +

    GetImageViewVirtualIndexes

    GetImageViewVirtualIndexes() returns the image view virtual indexes.

    @@ -386,7 +442,7 @@
    -

    GetImageViewVirtualPixels

    +

    GetImageViewVirtualPixels

    GetImageViewVirtualPixels() returns the image view virtual pixels.

    @@ -407,7 +463,7 @@
    -

    IsImageView

    +

    IsImageView

    IsImageView() returns MagickTrue if the parameter is verified as a image view object.

    @@ -428,7 +484,7 @@
    -

    NewImageView

    +

    NewImageView

    NewImageView() returns a image view required for all other methods in the Image View API.

    @@ -449,7 +505,7 @@
    -

    NewImageViewRegion

    +

    NewImageViewRegion

    NewImageViewRegion() returns a image view required for all other methods in the Image View API.

    @@ -475,7 +531,7 @@
    -

    SetImageViewDescription

    +

    SetImageViewDescription

    SetImageViewDescription() associates a description with an image view.

    @@ -501,7 +557,7 @@
    -

    SetImageViewIterator

    +

    SetImageViewIterator

    SetImageViewIterator() iterates over the image view in parallel and calls your set method for each scanline of the view. The pixel extent is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension. The pixels are initially undefined and any settings you make in the callback method are automagically synced back to your image.

    @@ -544,7 +600,7 @@
    -

    SetImageViewThreads

    +

    SetImageViewThreads

    SetImageViewThreads() sets the number of threads in a thread team.

    @@ -570,7 +626,7 @@
    -

    TransferImageViewIterator

    +

    TransferImageViewIterator

    TransferImageViewIterator() iterates over two image views in parallel and calls your transfer method for each scanline of the view. The source pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination image view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.

    @@ -618,7 +674,7 @@
    -

    UpdateImageViewIterator

    +

    UpdateImageViewIterator

    UpdateImageViewIterator() iterates over the image view in parallel and calls your update method for each scanline of the view. The pixel extent is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted. Updates to pixels in your callback are automagically synced back to the image.

    @@ -664,12 +720,12 @@
    -
    - + diff --git a/www/api/image.html b/www/api/image.html index 23609c2..9b4eb52 100644 --- a/www/api/image.html +++ b/www/api/image.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Image Methods + ImageMagick – MagickCore, C API: Image Methods - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Image Methods

    +
    +
    -
    -
    +

    Image



    -

    AcquireImage

    +

    AcquireImage

    AcquireImage() returns a pointer to an image structure initialized to default values.

    @@ -159,7 +215,7 @@
    -

    AcquireImageInfo

    +

    AcquireImageInfo

    AcquireImageInfo() allocates the ImageInfo structure.

    @@ -168,7 +224,7 @@
    ImageInfo *AcquireImageInfo(void)
     
    -

    AcquireNextImage

    +

    AcquireNextImage

    AcquireNextImage() initializes the next image in a sequence to default values. The next member of image points to the newly allocated image. If there is a memory shortage, next is assigned NULL.

    @@ -193,7 +249,7 @@
    -

    AppendImages

    +

    AppendImages

    AppendImages() takes all images from the current image pointer to the end of the image list and appends them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

    @@ -225,7 +281,7 @@
    -

    CatchImageException

    +

    CatchImageException

    CatchImageException() returns if no exceptions are found in the image sequence, otherwise it determines the most severe exception and reports it as a warning or error depending on the severity.

    @@ -246,7 +302,7 @@
    -

    ClipImagePath

    +

    ClipImagePath

    ClipImagePath() sets the image clip mask based any clipping path information if it exists.

    @@ -276,7 +332,7 @@
    -

    CloneImage

    +

    CloneImage

    CloneImage() copies an image and returns the copy as a new image object.

    @@ -317,7 +373,7 @@
    -

    CloneImageInfo

    +

    CloneImageInfo

    CloneImageInfo() makes a copy of the given image info structure. If NULL is specified, a new image info structure is created initialized to default values.

    @@ -338,7 +394,7 @@
    -

    CopyImagePixels

    +

    CopyImagePixels

    CopyImagePixels() copies pixels from the source image as defined by the geometry the destination image at the specified offset.

    @@ -377,7 +433,7 @@
    -

    DestroyImage

    +

    DestroyImage

    DestroyImage() dereferences an image, deallocating memory associated with the image if the reference count becomes zero.

    @@ -398,7 +454,7 @@
    -

    DestroyImageInfo

    +

    DestroyImageInfo

    DestroyImageInfo() deallocates memory associated with an ImageInfo structure.

    @@ -419,7 +475,7 @@
    -

    GetImageClipMask

    +

    GetImageClipMask

    GetImageClipMask() returns the clip path associated with the image.

    @@ -440,7 +496,7 @@
    -

    GetImageException

    +

    GetImageException

    GetImageException() traverses an image sequence and returns any error more severe than noted by the exception parameter.

    @@ -465,7 +521,7 @@
    -

    GetImageInfo

    +

    GetImageInfo

    GetImageInfo() initializes image_info to default values.

    @@ -486,7 +542,7 @@
    -

    GetImageInfoFile

    +

    GetImageInfoFile

    GetImageInfoFile() returns the image info file member.

    @@ -507,7 +563,7 @@
    -

    GetImageMask

    +

    GetImageMask

    GetImageMask() returns the mask associated with the image.

    @@ -528,7 +584,7 @@
    -

    GetImageChannels

    +

    GetImageChannels

    GetImageChannels() returns the number of pixel channels associated with the specified image.

    @@ -549,7 +605,7 @@
    -

    GetImageVirtualPixelMethod

    +

    GetImageVirtualPixelMethod

    GetImageVirtualPixelMethod() gets the "virtual pixels" method for the image. A virtual pixel is any pixel access that is outside the boundaries of the image cache.

    @@ -570,7 +626,7 @@
    -

    InterpretImageFilename

    +

    InterpretImageFilename

    InterpretImageFilename() interprets embedded characters in an image filename. The filename length is returned.

    @@ -597,7 +653,7 @@
    filename

    return the formatted filename in this character buffer.

    -

    IsHighDynamicRangeImage

    +

    IsHighDynamicRangeImage

    IsHighDynamicRangeImage() returns MagickTrue if any pixel component is non-integer or exceeds the bounds of the quantum depth (e.g. for Q16 0..65535.

    @@ -623,7 +679,7 @@
    -

    IsImageObject

    +

    IsImageObject

    IsImageObject() returns MagickTrue if the image sequence contains a valid set of image objects.

    @@ -644,7 +700,7 @@
    -

    IsTaintImage

    +

    IsTaintImage

    IsTaintImage() returns MagickTrue any pixel in the image has been altered since it was first constituted.

    @@ -665,7 +721,7 @@
    -

    ModifyImage

    +

    ModifyImage

    ModifyImage() ensures that there is only a single reference to the image to be modified, updating the provided image pointer to point to a clone of the original image if necessary.

    @@ -690,7 +746,7 @@
    -

    NewMagickImage

    +

    NewMagickImage

    NewMagickImage() creates a blank image canvas of the specified size and background color.

    @@ -724,7 +780,7 @@
    -

    ReferenceImage

    +

    ReferenceImage

    ReferenceImage() increments the reference count associated with an image returning a pointer to the image.

    @@ -745,7 +801,7 @@
    -

    ResetImagePage

    +

    ResetImagePage

    ResetImagePage() resets the image page canvas and position.

    @@ -770,7 +826,7 @@
    -

    ResetImagePixels

    +

    ResetImagePixels

    ResetImagePixels() reset the image pixels, that is, all the pixel components are zeroed.

    @@ -796,7 +852,7 @@
    -

    SetImageBackgroundColor

    +

    SetImageBackgroundColor

    SetImageBackgroundColor() initializes the image pixels to the image background color. The background color is defined by the background_color member of the image structure.

    @@ -817,7 +873,7 @@
    -

    SetImageChannels

    +

    SetImageChannels

    SetImageChannels() sets the number of pixels channels associated with the image.

    @@ -842,7 +898,7 @@
    -

    SetImageColor

    +

    SetImageColor

    SetImageColor() set the entire image canvas to the specified color.

    @@ -868,7 +924,7 @@
    -

    SetImageStorageClass

    +

    SetImageStorageClass

    SetImageStorageClass() sets the image class: DirectClass for true color images or PseudoClass for colormapped images.

    @@ -894,7 +950,7 @@
    -

    SetImageClipMask

    +

    SetImageClipMask

    SetImageClipMask() associates a clip path with the image. The clip path must be the same dimensions as the image. Set any pixel component of the clip path to TransparentOpacity to prevent that corresponding image pixel component from being updated when SyncAuthenticPixels() is applied.

    @@ -919,7 +975,7 @@
    -

    SetImageExtent

    +

    SetImageExtent

    SetImageExtent() sets the image size (i.e. columns & rows).

    @@ -949,7 +1005,7 @@
    -

    SetImageInfoBlob

    +

    SetImageInfoBlob

    SetImageInfoBlob() sets the image info blob member.

    @@ -979,7 +1035,7 @@
    -

    SetImageInfoFile

    +

    SetImageInfoFile

    SetImageInfoFile() sets the image info file member.

    @@ -1004,7 +1060,7 @@
    -

    SetImageMask

    +

    SetImageMask

    SetImageMask() associates a mask with the image. The mask must be the same dimensions as the image.

    @@ -1029,7 +1085,7 @@
    -

    SetImageOpacity

    +

    SetImageOpacity

    SetImageOpacity() sets the opacity levels of the image.

    @@ -1054,7 +1110,7 @@
    -

    SetImageVirtualPixelMethod

    +

    SetImageVirtualPixelMethod

    SetImageVirtualPixelMethod() sets the "virtual pixels" method for the image and returns the previous setting. A virtual pixel is any pixel access that is outside the boundaries of the image cache.

    @@ -1080,7 +1136,7 @@
    -

    SmushImages

    +

    SmushImages

    SmushImages() takes all images from the current image pointer to the end of the image list and smushes them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

    @@ -1116,7 +1172,7 @@
    -

    StripImage

    +

    StripImage

    StripImage() strips an image of all profiles and comments.

    @@ -1137,7 +1193,7 @@
    -

    SyncImageSettings

    +

    SyncImageSettings

    SyncImageSettings() syncs image_info options into per-image attributes.

    @@ -1168,12 +1224,12 @@ MagickBooleanType SyncImagesSettings(const ImageInfo *image_info,
    -
    +
    SecurityNews - And Now a Touch of Magick + And Now a Touch of Magick RelatedSitemap @@ -1189,8 +1245,9 @@ MagickBooleanType SyncImagesSettings(const ImageInfo *image_info, Copyright © 1999 ImageMagick Studio LLC
    +
    - + diff --git a/www/api/layer.html b/www/api/layer.html index 9832d25..6f99c1a 100644 --- a/www/api/layer.html +++ b/www/api/layer.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Dealing with Image Layers + ImageMagick – MagickCore, C API: Dealing with Image Layers - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Dealing with Image Layers

    +
    +
    -
    -
    +

    Layer



    -

    CoalesceImages

    +

    CoalesceImages

    CoalesceImages() composites a set of images while respecting any page offsets and disposal methods. GIF, MIFF, and MNG animation sequences typically start with an image background and each subsequent image varies in size and offset. A new image sequence is returned with all images the same size as the first images virtual canvas and composited with the next image in the sequence.

    @@ -133,7 +189,7 @@
    -

    DisposeImages

    +

    DisposeImages

    DisposeImages() returns the coalesced frames of a GIF animation as it would appear after the GIF dispose method of that frame has been applied. That is it returned the appearance of each frame before the next is overlaid.

    @@ -158,7 +214,7 @@
    -

    CompareImageLayers

    +

    CompareImageLayers

    CompareImageLayers() compares each image with the next in a sequence and returns the minimum bounding region of all the pixel differences (of the ImageLayerMethod specified) it discovers.

    @@ -192,7 +248,7 @@
    -

    DeconstructImages

    +

    DeconstructImages

    DeconstructImages() compares each image with the next in a sequence and returns the minimum bounding region of all differences from the first image.

    @@ -219,7 +275,7 @@
    -

    OptimizeImageLayers

    +

    OptimizeImageLayers

    OptimizeImageLayers() compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the GIF animation.

    @@ -245,7 +301,7 @@
    -

    OptimizeImagePlusLayers

    +

    OptimizeImagePlusLayers

    OptimizeImagePlusLayers() is exactly as OptimizeImageLayers(), but may also add or even remove extra frames in the animation, if it improves the total number of pixels in the resulting GIF animation.

    @@ -271,7 +327,7 @@
    -

    OptimizeImageTransparency

    +

    OptimizeImageTransparency

    OptimizeImageTransparency() takes a frame optimized GIF animation, and compares the overlayed pixels against the disposal image resulting from all the previous frames in the animation. Any pixel that does not change the disposal image (and thus does not effect the outcome of an overlay) is made transparent.

    @@ -298,7 +354,7 @@
    -

    RemoveDuplicateLayers

    +

    RemoveDuplicateLayers

    RemoveDuplicateLayers() removes any image that is exactly the same as the next image in the given image list. Image size and virtual canvas offset must also match, though not the virtual canvas size itself.

    @@ -325,7 +381,7 @@
    -

    RemoveZeroDelayLayers

    +

    RemoveZeroDelayLayers

    RemoveZeroDelayLayers() removes any image that as a zero delay time. Such images generally represent intermediate or partial updates in GIF animations used for file optimization. They are not ment to be displayed to users of the animation. Viewable images in an animation should have a time delay of 3 or more centi-seconds (hundredths of a second).

    @@ -356,7 +412,7 @@
    -

    CompositeLayers

    +

    CompositeLayers

    CompositeLayers() compose the source image sequence over the destination image sequence, starting with the current image in both lists.

    @@ -403,7 +459,7 @@
    -

    MergeImageLayers

    +

    MergeImageLayers

    MergeImageLayers() composes all the image layers from the current given image onward to produce a single image of the merged layers.

    @@ -448,12 +504,12 @@
    -
    - + diff --git a/www/api/list.html b/www/api/list.html index faf8301..fd1cea2 100644 --- a/www/api/list.html +++ b/www/api/list.html @@ -3,16 +3,17 @@ - + + - ImageMagick (legacy) – MagickCore, C API: Working with Image Lists + ImageMagick – MagickCore, C API: Working with Image Lists - + - - + + @@ -22,22 +23,85 @@ - - - + + + + + + - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + Color Modes + + + -
    - - - - -
    +
    +
    + +

    MagickCore, C API: Working with Image Lists

    +
    +
    -
    -
    +

    List



    -

    AppendImageToList

    +

    AppendImageToList

    AppendImageToList() appends the second image list to the end of the first list. The given image list pointer is left unchanged, unless it was empty.

    @@ -148,7 +204,7 @@
    -

    CloneImageList

    +

    CloneImageList

    CloneImageList() returns a duplicate of the image list.

    @@ -173,7 +229,7 @@
    -

    CloneImages

    +

    CloneImages

    CloneImages() clones one or more images from an image sequence, using a comma separated list of image numbers or ranges.

    @@ -207,7 +263,7 @@
    -

    DeleteImageFromList

    +

    DeleteImageFromList

    DeleteImageFromList() deletes an image from the list. List pointer is moved to the next image, if one is present. See RemoveImageFromList().

    @@ -228,7 +284,7 @@
    -

    DeleteImages

    +

    DeleteImages

    DeleteImages() deletes one or more images from an image sequence, using a comma separated list of image numbers or ranges.

    @@ -261,7 +317,7 @@
    -

    DestroyImageList

    +

    DestroyImageList

    DestroyImageList() destroys an image list.

    @@ -282,7 +338,7 @@
    -

    DuplicateImages

    +

    DuplicateImages

    DuplicateImages() duplicates one or more images from an image sequence, using a count and a comma separated list of image numbers or ranges.

    @@ -318,7 +374,7 @@
    -

    GetFirstImageInList

    +

    GetFirstImageInList

    GetFirstImageInList() returns a pointer to the first image in the list.

    @@ -339,7 +395,7 @@
    -

    GetImageFromList

    +

    GetImageFromList

    GetImageFromList() returns an image at the specified index from the image list. Starting with 0 as the first image in the list.

    @@ -368,7 +424,7 @@
    -

    GetImageIndexInList

    +

    GetImageIndexInList

    GetImageIndexInList() returns the offset in the list of the specified image.

    @@ -389,7 +445,7 @@
    -

    GetImageListLength

    +

    GetImageListLength

    GetImageListLength() returns the length of the list (the number of images in the list).

    @@ -410,7 +466,7 @@
    -

    GetLastImageInList

    +

    GetLastImageInList

    GetLastImageInList() returns a pointer to the last image in the list.

    @@ -431,7 +487,7 @@
    -

    GetNextImageInList

    +

    GetNextImageInList

    GetNextImageInList() returns the next image in the list.

    @@ -452,7 +508,7 @@
    -

    GetPreviousImageInList

    +

    GetPreviousImageInList

    GetPreviousImageInList() returns the previous image in the list.

    @@ -473,7 +529,7 @@
    -

    ImageListToArray

    +

    ImageListToArray

    ImageListToArray() is a convenience method that converts an image list to a sequential array, with a NULL image pointer at the end of the array.

    @@ -502,7 +558,7 @@
    -

    InsertImageInList

    +

    InsertImageInList

    InsertImageInList() insert the given image or image list, into the first image list, immediately AFTER the image pointed to. The given image list pointer is left unchanged unless previously empty.

    @@ -527,7 +583,7 @@
    -

    NewImageList

    +

    NewImageList

    NewImageList() creates an empty image list.

    @@ -536,7 +592,7 @@
    Image *NewImageList(void)
     
    -

    PrependImageToList

    +

    PrependImageToList

    PrependImageToList() prepends the image to the beginning of the list.

    @@ -561,7 +617,7 @@
    -

    RemoveImageFromList

    +

    RemoveImageFromList

    RemoveImageFromList() removes and returns the image pointed to.

    @@ -584,7 +640,7 @@
    -

    RemoveFirstImageFromList

    +

    RemoveFirstImageFromList

    RemoveFirstImageFromList() removes and returns the first image in the list.

    @@ -607,7 +663,7 @@
    -

    RemoveLastImageFromList

    +

    RemoveLastImageFromList

    RemoveLastImageFromList() removes and returns the last image from the list.

    @@ -630,7 +686,7 @@
    -

    ReplaceImageInList

    +

    ReplaceImageInList

    ReplaceImageInList() replaces an image in the list with the given image, or list of images. Old image is destroyed.

    @@ -657,7 +713,7 @@
    -

    ReplaceImageInListReturnLast

    +

    ReplaceImageInListReturnLast

    ReplaceImageInListReturnLast() is exactly as ReplaceImageInList() except the images pointer is set to the last image in the list of replacement images.

    @@ -684,7 +740,7 @@
    -

    ReverseImageList

    +

    ReverseImageList

    ReverseImageList() reverses the order of an image list. The list pointer is reset to that start of the re-ordered list.

    @@ -705,7 +761,7 @@
    -

    SpliceImageIntoList

    +

    SpliceImageIntoList

    SpliceImageIntoList() removes 'length' images from the list and replaces them with the specified splice. Removed images are returned.

    @@ -735,7 +791,7 @@
    -

    SplitImageList

    +

    SplitImageList

    SplitImageList() splits an image into two lists, after given image The list that was split off is returned, which may be empty.

    @@ -759,12 +815,12 @@
    -
    - + diff --git a/www/api/magick++-classes.html b/www/api/magick++-classes.html index 8623cdb..13dc0fd 100644 --- a/www/api/magick++-classes.html +++ b/www/api/magick++-classes.html @@ -24,19 +24,19 @@ - + - - + +
    -
    +
    @@ -149,7 +149,7 @@ containers of image frames.

    SecurityResources - And Now a Touch of Magick + And Now a Touch of Magick RelatedSitemap diff --git a/www/api/magick-deprecate.html b/www/api/magick-deprecate.html index 5a96f1c..aeae3c8 100644 --- a/www/api/magick-deprecate.html +++ b/www/api/magick-deprecate.html @@ -2,1734 +2,169 @@ - - + + - - - ImageMagick - MagickWand, C API: Deprecated Methods + + + + ImageMagick – MagickWand, C API: Deprecated Methods + + - - - - - - - - - - - - - - - + + + + + + + - + - - - + + + + + + -

    + +
    +
    + +

    MagickWand, C API: Deprecated Methods

    +
    +
    -
    -

    MagickAverageImagesClonePixelViewDestroyPixelViewDuplexTransferPixelViewIteratorGetPixelViewExceptionGetPixelViewHeightGetPixelViewIteratorGetPixelViewPixelsGetPixelViewWandGetPixelViewWidthGetPixelViewXGetPixelViewYIsPixelViewMagickClipPathImageDrawGetFillAlphaDrawGetStrokeAlphaDrawPeekGraphicWandDrawPopGraphicContextDrawPushGraphicContextDrawSetFillAlphaDrawSetStrokeAlphaMagickColorFloodfillImageMagickDescribeImageMagickFlattenImagesMagickGetImageAttributeMagickGetImageMatteMagickGetImagePixelsMagickGetImageSizeMagickMapImageMagickMatteFloodfillImageMagickMedianFilterImageMagickMinimumImagesMagickModeImageMagickMosaicImagesMagickOpaqueImageMagickPaintFloodfillImageMagickPaintOpaqueImageMagickPaintTransparentImageMagickRadialBlurImageMagickRecolorImageMagickReduceNoiseImageMagickMaximumImagesMagickSetImageAttributeMagickSetImageIndexMagickTransparentImageMagickRegionOfInterestImageMagickSetImagePixelsMagickWriteImageBlobNewPixelViewNewPixelViewRegionPixelGetNextRowPixelIteratorGetExceptionSetPixelViewIteratorTransferPixelViewIteratorUpdatePixelViewIterator

    - -

    MagickAverageImages

    - -

    MagickAverageImages() average a set of images.

    - -

    The format of the MagickAverageImages method is:

    - -
    -MagickWand *MagickAverageImages(MagickWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    -

    ClonePixelView

    - -

    ClonePixelView() makes a copy of the specified pixel view.

    - -

    The format of the ClonePixelView method is:

    - -
    -PixelView *ClonePixelView(const PixelView *pixel_view)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    pixel_view
    -
    the pixel view.
    - -
    -
    -

    DestroyPixelView

    - -

    DestroyPixelView() deallocates memory associated with a pixel view.

    - -

    The format of the DestroyPixelView method is:

    - -
    -PixelView *DestroyPixelView(PixelView *pixel_view,
    -  const size_t number_wands,const size_t number_threads)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    pixel_view
    -
    the pixel view.
    - -
    -
    number_wand
    -
    the number of pixel wands.
    - -
    -
    number_threads
    -
    number of threads.
    - -
    -
    -

    DuplexTransferPixelViewIterator

    - -

    DuplexTransferPixelViewIterator() iterates over three pixel views in parallel and calls your transfer method for each scanline of the view. The source and duplex pixel region is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination pixel view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.

    - -

    Use this pragma:

    - -
    -    #pragma omp critical
    -
    - -

    to define a section of code in your callback transfer method that must be executed by a single thread at a time.

    - -

    The format of the DuplexTransferPixelViewIterator method is:

    - -
    -MagickBooleanType DuplexTransferPixelViewIterator(PixelView *source,
    -  PixelView *duplex,PixelView *destination,
    -  DuplexTransferPixelViewMethod transfer,void *context)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    source
    -
    the source pixel view.
    - -
    -
    duplex
    -
    the duplex pixel view.
    - -
    -
    destination
    -
    the destination pixel view.
    - -
    -
    transfer
    -
    the transfer callback method.
    - -
    -
    context
    -
    the user defined context.
    - -
    -
    -

    GetPixelViewException

    - -

    GetPixelViewException() returns the severity, reason, and description of any error that occurs when utilizing a pixel view.

    - -

    The format of the GetPixelViewException method is:

    - -
    -char *GetPixelViewException(const PixelWand *pixel_view,
    -  ExceptionType *severity)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    pixel_view
    -
    the pixel pixel_view.
    - -
    -
    severity
    -
    the severity of the error is returned here.
    - -
    -
    -

    GetPixelViewHeight

    - -

    GetPixelViewHeight() returns the pixel view height.

    - -

    The format of the GetPixelViewHeight method is:

    - -
    -size_t GetPixelViewHeight(const PixelView *pixel_view)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    pixel_view
    -
    the pixel view.
    - -
    -
    -

    GetPixelViewIterator

    - -

    GetPixelViewIterator() iterates over the pixel view in parallel and calls your get method for each scanline of the view. The pixel region is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. Any updates to the pixels in your callback are ignored.

    - -

    Use this pragma:

    - -
    -    #pragma omp critical
    -
    - -

    to define a section of code in your callback get method that must be executed by a single thread at a time.

    - -

    The format of the GetPixelViewIterator method is:

    - -
    -MagickBooleanType GetPixelViewIterator(PixelView *source,
    -  GetPixelViewMethod get,void *context)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    source
    -
    the source pixel view.
    - -
    -
    get
    -
    the get callback method.
    - -
    -
    context
    -
    the user defined context.
    - -
    -
    -

    GetPixelViewPixels

    - -

    GetPixelViewPixels() returns the pixel view pixel_wands.

    - -

    The format of the GetPixelViewPixels method is:

    - -
    -PixelWand *GetPixelViewPixels(const PixelView *pixel_view)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    pixel_view
    -
    the pixel view.
    - -
    -
    -

    GetPixelViewWand

    - -

    GetPixelViewWand() returns the magick wand associated with the pixel view.

    - -

    The format of the GetPixelViewWand method is:

    - -
    -MagickWand *GetPixelViewWand(const PixelView *pixel_view)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    pixel_view
    -
    the pixel view.
    - -
    -
    -

    GetPixelViewWidth

    - -

    GetPixelViewWidth() returns the pixel view width.

    - -

    The format of the GetPixelViewWidth method is:

    - -
    -size_t GetPixelViewWidth(const PixelView *pixel_view)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    pixel_view
    -
    the pixel view.
    - -
    -
    -

    GetPixelViewX

    - -

    GetPixelViewX() returns the pixel view x offset.

    - -

    The format of the GetPixelViewX method is:

    - -
    -ssize_t GetPixelViewX(const PixelView *pixel_view)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    pixel_view
    -
    the pixel view.
    - -
    -
    -

    GetPixelViewY

    - -

    GetPixelViewY() returns the pixel view y offset.

    - -

    The format of the GetPixelViewY method is:

    - -
    -ssize_t GetPixelViewY(const PixelView *pixel_view)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    pixel_view
    -
    the pixel view.
    - -
    -
    -

    IsPixelView

    - -

    IsPixelView() returns MagickTrue if the the parameter is verified as a pixel view container.

    - -

    The format of the IsPixelView method is:

    - -
    -MagickBooleanType IsPixelView(const PixelView *pixel_view)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    pixel_view
    -
    the pixel view.
    - -
    -
    -

    MagickClipPathImage

    - -

    MagickClipPathImage() clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. Id may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

    - -

    The format of the MagickClipPathImage method is:

    - -
    -MagickBooleanType MagickClipPathImage(MagickWand *wand,
    -  const char *pathname,const MagickBooleanType inside)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    pathname
    -
    name of clipping path resource. If name is preceded by #, use clipping path numbered by name.
    - -
    -
    inside
    -
    if non-zero, later operations take effect inside clipping path. Otherwise later operations take effect outside clipping path.
    - -
    -
    -

    DrawGetFillAlpha

    - -

    DrawGetFillAlpha() returns the alpha used when drawing using the fill color or fill texture. Fully opaque is 1.0.

    - -

    The format of the DrawGetFillAlpha method is:

    - -
    -double DrawGetFillAlpha(const DrawingWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the drawing wand.
    - -
    -
    -

    DrawGetStrokeAlpha

    - -

    DrawGetStrokeAlpha() returns the alpha of stroked object outlines.

    - -

    The format of the DrawGetStrokeAlpha method is:

    - -
    -double DrawGetStrokeAlpha(const DrawingWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the drawing wand.
    -
    -

    DrawPeekGraphicWand

    - -

    DrawPeekGraphicWand() returns the current drawing wand.

    - -

    The format of the PeekDrawingWand method is:

    - -
    -DrawInfo *DrawPeekGraphicWand(const DrawingWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the drawing wand.
    - -
    -
    -

    DrawPopGraphicContext

    - -

    DrawPopGraphicContext() destroys the current drawing wand and returns to the previously pushed drawing wand. Multiple drawing wands may exist. It is an error to attempt to pop more drawing wands than have been pushed, and it is proper form to pop all drawing wands which have been pushed.

    - -

    The format of the DrawPopGraphicContext method is:

    - -
    -MagickBooleanType DrawPopGraphicContext(DrawingWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the drawing wand.
    - -
    -
    -

    DrawPushGraphicContext

    - -

    DrawPushGraphicContext() clones the current drawing wand to create a new drawing wand. The original drawing wand(s) may be returned to by invoking PopDrawingWand(). The drawing wands are stored on a drawing wand stack. For every Pop there must have already been an equivalent Push.

    - -

    The format of the DrawPushGraphicContext method is:

    - -
    -MagickBooleanType DrawPushGraphicContext(DrawingWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the drawing wand.
    - -
    -
    -

    DrawSetFillAlpha

    - -

    DrawSetFillAlpha() sets the alpha to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

    - -

    The format of the DrawSetFillAlpha method is:

    - -
    -void DrawSetFillAlpha(DrawingWand *wand,const double fill_alpha)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the drawing wand.
    - -
    -
    fill_alpha
    -
    fill alpha
    - -
    -
    -

    DrawSetStrokeAlpha

    - -

    DrawSetStrokeAlpha() specifies the alpha of stroked object outlines.

    - -

    The format of the DrawSetStrokeAlpha method is:

    - -
    -void DrawSetStrokeAlpha(DrawingWand *wand,const double stroke_alpha)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the drawing wand.
    - -
    -
    stroke_alpha
    -
    stroke alpha. The value 1.0 is opaque.
    - -
    -
    -

    MagickColorFloodfillImage

    - -

    MagickColorFloodfillImage() changes the color value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the color value is changed for any neighbor pixel that does not match the bordercolor member of image.

    - -

    The format of the MagickColorFloodfillImage method is:

    - -
    -MagickBooleanType MagickColorFloodfillImage(MagickWand *wand,
    -  const PixelWand *fill,const double fuzz,const PixelWand *bordercolor,
    -  const ssize_t x,const ssize_t y)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    fill
    -
    the floodfill color pixel wand.
    - -
    -
    fuzz
    -
    By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
    - -
    -
    bordercolor
    -
    the border color pixel wand.
    - -
    -
    x,y
    -
    the starting location of the operation.
    - -
    -
    -

    MagickDescribeImage

    - -

    MagickDescribeImage() identifies an image by printing its attributes to the file. Attributes include the image width, height, size, and others.

    - -

    The format of the MagickDescribeImage method is:

    - -
    -const char *MagickDescribeImage(MagickWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    -

    MagickFlattenImages

    - -

    MagickFlattenImages() merges a sequence of images. This useful for combining Photoshop layers into a single image.

    - -

    The format of the MagickFlattenImages method is:

    - -
    -MagickWand *MagickFlattenImages(MagickWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    -

    MagickGetImageAttribute

    - -

    MagickGetImageAttribute() returns a value associated with the specified property. Use MagickRelinquishMemory() to free the value when you are finished with it.

    - -

    The format of the MagickGetImageAttribute method is:

    - -
    -char *MagickGetImageAttribute(MagickWand *wand,const char *property)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    property
    -
    the property.
    - -
    -
    -

    MagickGetImageMatte

    - -

    MagickGetImageMatte() returns MagickTrue if the image has a matte channel otherwise MagickFalse.

    - -

    The format of the MagickGetImageMatte method is:

    - -
    -size_t MagickGetImageMatte(MagickWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    -

    MagickGetImagePixels

    - -

    MagickGetImagePixels() extracts pixel data from an image and returns it to you. The method returns MagickTrue on success otherwise MagickFalse if an error is encountered. The data is returned as char, short int, int, ssize_t, float, or double in the order specified by map.

    - -

    Suppose you want to extract the first scanline of a 640x480 image as character data in red-green-blue order:

    - -
    -MagickGetImagePixels(wand,0,0,640,1,"RGB",CharPixel,pixels);
    -
    - -

    The format of the MagickGetImagePixels method is:

    - -
    -MagickBooleanType MagickGetImagePixels(MagickWand *wand,
    -  const ssize_t x,const ssize_t y,const size_t columns,
    -  const size_t rows,const char *map,const StorageType storage,
    -  void *pixels)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    x, y, columns, rows
    -
    These values define the perimeter of a region of pixels you want to extract.
    - -
    -
    map
    -
    This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
    - -
    -
    storage
    -
    Define the data type of the pixels. Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange]. Choose from these types: CharPixel, DoublePixel, FloatPixel, IntegerPixel, LongPixel, QuantumPixel, or ShortPixel.
    - -
    -
    pixels
    -
    This array of values contain the pixel components as defined by map and type. You must preallocate this array where the expected length varies depending on the values of width, height, map, and type.
    - -
    -
    -

    MagickGetImageSize

    - -

    MagickGetImageSize() returns the image length in bytes.

    - -

    The format of the MagickGetImageSize method is:

    - -
    -MagickBooleanType MagickGetImageSize(MagickWand *wand,
    -  MagickSizeType *length)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    length
    -
    the image length in bytes.
    - -
    -
    -

    MagickMapImage

    - -

    MagickMapImage() replaces the colors of an image with the closest color from a reference image.

    - -

    The format of the MagickMapImage method is:

    - -
    -MagickBooleanType MagickMapImage(MagickWand *wand,
    -  const MagickWand *map_wand,const MagickBooleanType dither)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    map
    -
    the map wand.
    - -
    -
    dither
    -
    Set this integer value to something other than zero to dither the mapped image.
    - -
    -
    -

    MagickMatteFloodfillImage

    - -

    MagickMatteFloodfillImage() changes the transparency value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the transparency value is changed for any neighbor pixel that does not match the bordercolor member of image.

    +

    -

    The format of the MagickMatteFloodfillImage method is:

    - -
    -MagickBooleanType MagickMatteFloodfillImage(MagickWand *wand,
    -  const double alpha,const double fuzz,const PixelWand *bordercolor,
    -  const ssize_t x,const ssize_t y)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    alpha
    -
    the level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.
    - -
    -
    fuzz
    -
    By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
    - -
    -
    bordercolor
    -
    the border color pixel wand.
    - -
    -
    x,y
    -
    the starting location of the operation.
    - -
    -
    -

    MagickMedianFilterImage

    - -

    MagickMedianFilterImage() applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

    - -

    The format of the MagickMedianFilterImage method is:

    - -
    -MagickBooleanType MagickMedianFilterImage(MagickWand *wand,
    -  const double radius)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    radius
    -
    the radius of the pixel neighborhood.
    - -
    -
    -

    MagickMinimumImages

    - -

    MagickMinimumImages() returns the minimum intensity of an image sequence.

    - -

    The format of the MagickMinimumImages method is:

    - -
    -MagickWand *MagickMinimumImages(MagickWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    -

    MagickModeImage

    - -

    MagickModeImage() makes each pixel the 'predominant color' of the neighborhood of the specified radius.

    - -

    The format of the MagickModeImage method is:

    - -
    -MagickBooleanType MagickModeImage(MagickWand *wand,
    -  const double radius)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    radius
    -
    the radius of the pixel neighborhood.
    - -
    -
    -

    MagickMosaicImages

    - -

    MagickMosaicImages() inlays an image sequence to form a single coherent picture. It returns a wand with each image in the sequence composited at the location defined by the page offset of the image.

    - -

    The format of the MagickMosaicImages method is:

    - -
    -MagickWand *MagickMosaicImages(MagickWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    -

    MagickOpaqueImage

    - -

    MagickOpaqueImage() changes any pixel that matches color with the color defined by fill.

    - -

    The format of the MagickOpaqueImage method is:

    - -
    -MagickBooleanType MagickOpaqueImage(MagickWand *wand,
    -  const PixelWand *target,const PixelWand *fill,const double fuzz)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    channel
    -
    the channel(s).
    - -
    -
    target
    -
    Change this target color to the fill color within the image.
    - -
    -
    fill
    -
    the fill pixel wand.
    - -
    -
    fuzz
    -
    By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
    - -
    -
    -

    MagickPaintFloodfillImage

    - -

    MagickPaintFloodfillImage() changes the color value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the color value is changed for any neighbor pixel that does not match the bordercolor member of image.

    - -

    The format of the MagickPaintFloodfillImage method is:

    - -
    -MagickBooleanType MagickPaintFloodfillImage(MagickWand *wand,
    -  const ChannelType channel,const PixelWand *fill,const double fuzz,
    -  const PixelWand *bordercolor,const ssize_t x,const ssize_t y)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    channel
    -
    the channel(s).
    - -
    -
    fill
    -
    the floodfill color pixel wand.
    - -
    -
    fuzz
    -
    By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
    - -
    -
    bordercolor
    -
    the border color pixel wand.
    - -
    -
    x,y
    -
    the starting location of the operation.
    - -
    -
    -

    MagickPaintOpaqueImage

    - -

    MagickPaintOpaqueImage() changes any pixel that matches color with the color defined by fill.

    - -

    The format of the MagickPaintOpaqueImage method is:

    - -
    -MagickBooleanType MagickPaintOpaqueImage(MagickWand *wand,
    -  const PixelWand *target,const PixelWand *fill,const double fuzz)
    -MagickBooleanType MagickPaintOpaqueImageChannel(MagickWand *wand,
    -  const ChannelType channel,const PixelWand *target,
    -  const PixelWand *fill,const double fuzz)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    channel
    -
    the channel(s).
    - -
    -
    target
    -
    Change this target color to the fill color within the image.
    - -
    -
    fill
    -
    the fill pixel wand.
    - -
    -
    fuzz
    -
    By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
    - -
    -
    -

    MagickPaintTransparentImage

    - -

    MagickPaintTransparentImage() changes any pixel that matches color with the color defined by fill.

    - -

    The format of the MagickPaintTransparentImage method is:

    - -
    -MagickBooleanType MagickPaintTransparentImage(MagickWand *wand,
    -  const PixelWand *target,const double alpha,const double fuzz)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    target
    -
    Change this target color to specified opacity value within the image.
    - -
    -
    alpha
    -
    the level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.
    - -
    -
    fuzz
    -
    By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
    - -
    -
    -

    MagickRadialBlurImage

    - -

    MagickRadialBlurImage() radial blurs an image.

    - -

    The format of the MagickRadialBlurImage method is:

    - -
    -MagickBooleanType MagickRadialBlurImage(MagickWand *wand,
    -  const double angle)
    -MagickBooleanType MagickRadialBlurImageChannel(MagickWand *wand,
    -  const ChannelType channel,const double angle)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    channel
    -
    the image channel(s).
    - -
    -
    angle
    -
    the angle of the blur in degrees.
    - -
    -
    -

    MagickRecolorImage

    - -

    MagickRecolorImage() apply color transformation to an image. The method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255).

    - -

    The format of the MagickRecolorImage method is:

    - -
    -MagickBooleanType MagickRecolorImage(MagickWand *wand,
    -  const size_t order,const double *color_matrix)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    order
    -
    the number of columns and rows in the color matrix.
    - -
    -
    color_matrix
    -
    An array of doubles representing the color matrix.
    - -
    -
    -

    MagickReduceNoiseImage

    - -

    MagickReduceNoiseImage() smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and ReduceNoise() selects a suitable radius for you.

    - -

    The format of the MagickReduceNoiseImage method is:

    - -
    -MagickBooleanType MagickReduceNoiseImage(MagickWand *wand,
    -  const double radius)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    radius
    -
    the radius of the pixel neighborhood.
    - -
    -
    -

    MagickMaximumImages

    - -

    MagickMaximumImages() returns the maximum intensity of an image sequence.

    - -

    The format of the MagickMaximumImages method is:

    - -
    -MagickWand *MagickMaximumImages(MagickWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    -

    MagickSetImageAttribute

    - -

    MagickSetImageAttribute() associates a property with an image.

    - -

    The format of the MagickSetImageAttribute method is:

    - -
    -MagickBooleanType MagickSetImageAttribute(MagickWand *wand,
    -  const char *property,const char *value)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    property
    -
    the property.
    - -
    -
    value
    -
    the value.
    - -
    -
    -

    MagickSetImageIndex

    - -

    MagickSetImageIndex() set the current image to the position of the list specified with the index parameter.

    - -

    The format of the MagickSetImageIndex method is:

    - -
    -MagickBooleanType MagickSetImageIndex(MagickWand *wand,
    -  const ssize_t index)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    index
    -
    the scene number.
    - -
    -
    -

    MagickTransparentImage

    - -

    MagickTransparentImage() changes any pixel that matches color with the color defined by fill.

    - -

    The format of the MagickTransparentImage method is:

    - -
    -MagickBooleanType MagickTransparentImage(MagickWand *wand,
    -  const PixelWand *target,const double alpha,const double fuzz)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    target
    -
    Change this target color to specified opacity value within the image.
    - -
    -
    alpha
    -
    the level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.
    - -
    -
    fuzz
    -
    By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
    - -
    -
    -

    MagickRegionOfInterestImage

    - -

    MagickRegionOfInterestImage() extracts a region of the image and returns it as a new wand.

    - -

    The format of the MagickRegionOfInterestImage method is:

    - -
    -MagickWand *MagickRegionOfInterestImage(MagickWand *wand,
    -  const size_t width,const size_t height,const ssize_t x,
    -  const ssize_t y)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    width
    -
    the region width.
    - -
    -
    height
    -
    the region height.
    - -
    -
    x
    -
    the region x offset.
    - -
    -
    y
    -
    the region y offset.
    - -
    -
    -

    MagickSetImagePixels

    - -

    MagickSetImagePixels() accepts pixel datand stores it in the image at the location you specify. The method returns MagickFalse on success otherwise MagickTrue if an error is encountered. The pixel data can be either char, short int, int, ssize_t, float, or double in the order specified by map.

    - -

    Suppose your want to upload the first scanline of a 640x480 image from character data in red-green-blue order:

    - -
    -MagickSetImagePixels(wand,0,0,640,1,"RGB",CharPixel,pixels);
    -
    - -

    The format of the MagickSetImagePixels method is:

    - -
    -MagickBooleanType MagickSetImagePixels(MagickWand *wand,
    -  const ssize_t x,const ssize_t y,const size_t columns,
    -  const size_t rows,const char *map,const StorageType storage,
    -  const void *pixels)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    x, y, columns, rows
    -
    These values define the perimeter of a region of pixels you want to define.
    - -
    -
    map
    -
    This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
    - -
    -
    storage
    -
    Define the data type of the pixels. Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange]. Choose from these types: CharPixel, ShortPixel, IntegerPixel, LongPixel, FloatPixel, or DoublePixel.
    - -
    -
    pixels
    -
    This array of values contain the pixel components as defined by map and type. You must preallocate this array where the expected length varies depending on the values of width, height, map, and type.
    - -
    -
    -

    MagickWriteImageBlob

    - -

    MagickWriteImageBlob() implements direct to memory image formats. It returns the image as a blob and its length. Use MagickSetFormat() to set the format of the returned blob (GIF, JPEG, PNG, etc.).

    - -

    Use MagickRelinquishMemory() to free the blob when you are done with it.

    - -

    The format of the MagickWriteImageBlob method is:

    - -
    -unsigned char *MagickWriteImageBlob(MagickWand *wand,size_t *length)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    length
    -
    the length of the blob.
    - -
    -
    -

    NewPixelView

    - -

    NewPixelView() returns a pixel view required for all other methods in the Pixel View API.

    - -

    The format of the NewPixelView method is:

    - -
    -PixelView *NewPixelView(MagickWand *wand)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the wand.
    - -
    -
    -

    NewPixelViewRegion

    - -

    NewPixelViewRegion() returns a pixel view required for all other methods in the Pixel View API.

    - -

    The format of the NewPixelViewRegion method is:

    - -
    -PixelView *NewPixelViewRegion(MagickWand *wand,const ssize_t x,
    -  const ssize_t y,const size_t width,const size_t height)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    wand
    -
    the magick wand.
    - -
    -
    x,y,columns,rows
    -
    These values define the perimeter of a region of pixel_wands view.
    - -
    -
    -

    PixelGetNextRow

    - -

    PixelGetNextRow() returns the next row as an array of pixel wands from the pixel iterator.

    - -

    The format of the PixelGetNextRow method is:

    - -
    -PixelWand **PixelGetNextRow(PixelIterator *iterator,
    -  size_t *number_wands)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    iterator
    -
    the pixel iterator.
    - -
    -
    number_wands
    -
    the number of pixel wands.
    - -
    -
    -

    PixelIteratorGetException

    - -

    PixelIteratorGetException() returns the severity, reason, and description of any error that occurs when using other methods in this API.

    - -

    The format of the PixelIteratorGetException method is:

    - -
    -char *PixelIteratorGetException(const Pixeliterator *iterator,
    -  ExceptionType *severity)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    iterator
    -
    the pixel iterator.
    - -
    -
    severity
    -
    the severity of the error is returned here.
    - -
    -
    -

    SetPixelViewIterator

    - -

    SetPixelViewIterator() iterates over the pixel view in parallel and calls your set method for each scanline of the view. The pixel region is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension. The pixels are initiallly undefined and any settings you make in the callback method are automagically synced back to your image.

    - -

    Use this pragma:

    - -
    -    #pragma omp critical
    -
    - -

    to define a section of code in your callback set method that must be executed by a single thread at a time.

    - -

    The format of the SetPixelViewIterator method is:

    - -
    -MagickBooleanType SetPixelViewIterator(PixelView *destination,
    -  SetPixelViewMethod set,void *context)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    destination
    -
    the pixel view.
    - -
    -
    set
    -
    the set callback method.
    - -
    -
    context
    -
    the user defined context.
    - -
    -
    -

    TransferPixelViewIterator

    - -

    TransferPixelViewIterator() iterates over two pixel views in parallel and calls your transfer method for each scanline of the view. The source pixel region is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination pixel view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.

    - -

    Use this pragma:

    - -
    -    #pragma omp critical
    -
    - -

    to define a section of code in your callback transfer method that must be executed by a single thread at a time.

    - -

    The format of the TransferPixelViewIterator method is:

    - -
    -MagickBooleanType TransferPixelViewIterator(PixelView *source,
    -  PixelView *destination,TransferPixelViewMethod transfer,void *context)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    source
    -
    the source pixel view.
    - -
    -
    destination
    -
    the destination pixel view.
    - -
    -
    transfer
    -
    the transfer callback method.
    - -
    -
    context
    -
    the user defined context.
    - -
    -
    -

    UpdatePixelViewIterator

    - -

    UpdatePixelViewIterator() iterates over the pixel view in parallel and calls your update method for each scanline of the view. The pixel region is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted. Updates to pixels in your callback are automagically synced back to the image.

    - -

    Use this pragma:

    - -
    -    #pragma omp critical
    -
    - -

    to define a section of code in your callback update method that must be executed by a single thread at a time.

    - -

    The format of the UpdatePixelViewIterator method is:

    - -
    -MagickBooleanType UpdatePixelViewIterator(PixelView *source,
    -  UpdatePixelViewMethod update,void *context)
    -
    - -

    A description of each parameter follows:

    - -
    -
    - -
    -
    -
    source
    -
    the source pixel view.
    - -
    -
    update
    -
    the update callback method.
    - -
    -
    context
    -
    the user defined context.
    - -
    -
    -
    +
    -