summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Magick++/lib/Image.cpp71
-rw-r--r--MagickCore/animate.c19
-rw-r--r--MagickCore/annotate.c10
-rw-r--r--MagickCore/colormap.c31
-rw-r--r--MagickCore/colormap.h6
-rw-r--r--MagickCore/compare.c10
-rw-r--r--MagickCore/compare.h2
-rw-r--r--MagickCore/compress.c38
-rw-r--r--MagickCore/compress.h10
-rw-r--r--MagickCore/constitute.c13
-rw-r--r--MagickCore/delegate.c6
-rw-r--r--MagickCore/display.c12
-rw-r--r--MagickCore/draw.c37
-rw-r--r--MagickCore/draw.h7
-rw-r--r--MagickCore/effect.c6
-rw-r--r--MagickCore/exception-private.h4
-rw-r--r--MagickCore/fx.c8
-rw-r--r--MagickCore/histogram.c2
-rw-r--r--MagickCore/identify.c4
-rw-r--r--MagickCore/image.c46
-rw-r--r--MagickCore/image.h10
-rw-r--r--MagickCore/montage.c4
-rw-r--r--MagickCore/pixel.c10
-rw-r--r--MagickCore/pixel.h2
-rw-r--r--MagickCore/property.c10
-rw-r--r--MagickCore/property.h3
-rw-r--r--MagickCore/quantize.c92
-rw-r--r--MagickCore/quantize.h12
-rw-r--r--MagickCore/resize.c7
-rw-r--r--MagickCore/segment.c24
-rw-r--r--MagickCore/segment.h2
-rw-r--r--MagickCore/signature-private.h2
-rw-r--r--MagickCore/signature.c11
-rw-r--r--MagickCore/signature.h2
-rw-r--r--MagickCore/threshold.c2
-rw-r--r--MagickCore/xwindow.c6
-rw-r--r--MagickWand/compare.c5
-rw-r--r--MagickWand/composite.c2
-rw-r--r--MagickWand/convert.c2
-rw-r--r--MagickWand/drawing-wand.c3
-rw-r--r--MagickWand/identify.c2
-rw-r--r--MagickWand/magick-image.c62
-rw-r--r--MagickWand/mogrify.c95
-rw-r--r--MagickWand/montage.c3
-rw-r--r--PerlMagick/Magick.xs65
-rw-r--r--PerlMagick/t/composite.t38
-rw-r--r--PerlMagick/t/reference/filter/Shear.miff9
-rw-r--r--PerlMagick/t/reference/wmf/clock.miffbin547736 -> 511513 bytes
-rw-r--r--PerlMagick/t/reference/wmf/wizard.miffbin709656 -> 632789 bytes
-rw-r--r--coders/art.c4
-rw-r--r--coders/bmp.c2
-rw-r--r--coders/braille.c2
-rw-r--r--coders/caption.c3
-rw-r--r--coders/clip.c4
-rw-r--r--coders/cut.c4
-rw-r--r--coders/dcm.c2
-rw-r--r--coders/dib.c2
-rw-r--r--coders/djvu.c4
-rw-r--r--coders/ept.c2
-rw-r--r--coders/fax.c6
-rw-r--r--coders/gif.c21
-rw-r--r--coders/icon.c2
-rw-r--r--coders/info.c2
-rw-r--r--coders/jbig.c4
-rw-r--r--coders/jpeg.c29
-rw-r--r--coders/label.c3
-rw-r--r--coders/mac.c2
-rw-r--r--coders/map.c4
-rw-r--r--coders/mat.c2
-rw-r--r--coders/matte.c2
-rw-r--r--coders/miff.c2
-rw-r--r--coders/mono.c4
-rw-r--r--coders/mpc.c2
-rw-r--r--coders/msl.c222
-rw-r--r--coders/mvg.c2
-rw-r--r--coders/otb.c4
-rw-r--r--coders/palm.c10
-rw-r--r--coders/pcd.c6
-rw-r--r--coders/pcx.c2
-rw-r--r--coders/pdb.c2
-rw-r--r--coders/pdf.c57
-rw-r--r--coders/pict.c3
-rw-r--r--coders/pix.c2
-rw-r--r--coders/png.c30
-rw-r--r--coders/ps2.c22
-rw-r--r--coders/ps3.c76
-rw-r--r--coders/psd.c62
-rw-r--r--coders/rle.c2
-rw-r--r--coders/sgi.c2
-rw-r--r--coders/stegano.c2
-rw-r--r--coders/sun.c6
-rw-r--r--coders/tga.c4
-rw-r--r--coders/thumbnail.c2
-rw-r--r--coders/tiff.c24
-rw-r--r--coders/tim.c2
-rw-r--r--coders/ttf.c2
-rw-r--r--coders/uil.c2
-rw-r--r--coders/vicar.c2
-rw-r--r--coders/vid.c3
-rw-r--r--coders/viff.c10
-rw-r--r--coders/wbmp.c4
-rw-r--r--coders/webp.c4
-rw-r--r--coders/wpg.c8
-rw-r--r--coders/xbm.c4
-rw-r--r--coders/xcf.c22
-rw-r--r--coders/xpm.c14
-rw-r--r--coders/xwd.c2
-rw-r--r--tests/validate.c9
108 files changed, 845 insertions, 726 deletions
diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp
index 56665e5a8..05fb5c6c2 100644
--- a/Magick++/lib/Image.cpp
+++ b/Magick++/lib/Image.cpp
@@ -646,10 +646,16 @@ void Magick::Image::colorMatrix (const size_t order_,
// in the current image. False is returned if the images are identical.
bool Magick::Image::compare ( const Image &reference_ )
{
+ ExceptionInfo exceptionInfo;
+ GetExceptionInfo( &exceptionInfo );
modifyImage();
Image ref = reference_;
ref.modifyImage();
- return static_cast<bool>(IsImagesEqual(image(), ref.image()));
+ bool status =
+ static_cast<bool>(IsImagesEqual(image(), ref.image(), &exceptionInfo));
+ throwException( exceptionInfo );
+ (void) DestroyExceptionInfo( &exceptionInfo );
+ return status;
}
// Composite two images
@@ -762,9 +768,12 @@ void Magick::Image::crop ( const Geometry &geometry_ )
// Cycle Color Map
void Magick::Image::cycleColormap ( const ssize_t amount_ )
{
+ ExceptionInfo exceptionInfo;
+ GetExceptionInfo( &exceptionInfo );
modifyImage();
- CycleColormapImage( image(), amount_ );
- throwImageException();
+ CycleColormapImage( image(), amount_, &exceptionInfo );
+ throwException( exceptionInfo );
+ (void) DestroyExceptionInfo( &exceptionInfo );
}
// Despeckle
@@ -1310,11 +1319,14 @@ void Magick::Image::magnify ( void )
// Remap image colors with closest color from reference image
void Magick::Image::map ( const Image &mapImage_ , const bool dither_ )
{
+ ExceptionInfo exceptionInfo;
+ GetExceptionInfo( &exceptionInfo );
modifyImage();
options()->quantizeDither( dither_ );
RemapImage ( options()->quantizeInfo(), image(),
- mapImage_.constImage());
- throwImageException();
+ mapImage_.constImage(), &exceptionInfo);
+ throwException( exceptionInfo );
+ (void) DestroyExceptionInfo( &exceptionInfo );
}
// Floodfill designated area with replacement alpha value
void Magick::Image::matteFloodfill ( const Color &target_ ,
@@ -1537,9 +1549,12 @@ void Magick::Image::quantize ( const bool measureError_ )
else
options()->quantizeInfo()->measure_error=MagickFalse;
- QuantizeImage( options()->quantizeInfo(), image() );
+ ExceptionInfo exceptionInfo;
+ GetExceptionInfo( &exceptionInfo );
+ QuantizeImage( options()->quantizeInfo(), image(), &exceptionInfo );
- throwImageException();
+ throwException( exceptionInfo );
+ (void) DestroyExceptionInfo( &exceptionInfo );
}
// Apply an arithmetic or bitwise operator to the image pixel quantums.
@@ -1885,15 +1900,17 @@ void Magick::Image::scale ( const Geometry &geometry_ )
void Magick::Image::segment ( const double clusterThreshold_,
const double smoothingThreshold_ )
{
+ ExceptionInfo exceptionInfo;
+ GetExceptionInfo( &exceptionInfo );
modifyImage();
SegmentImage ( image(),
options()->quantizeColorSpace(),
(MagickBooleanType) options()->verbose(),
clusterThreshold_,
- smoothingThreshold_ );
- throwImageException();
+ smoothingThreshold_, &exceptionInfo );
+ throwException( exceptionInfo );
+ (void) DestroyExceptionInfo( &exceptionInfo );
SyncImage( image() );
- throwImageException();
}
// Shade image using distant light source
@@ -2603,26 +2620,30 @@ void Magick::Image::clipMask ( const Magick::Image & clipMask_ )
{
modifyImage();
+ ExceptionInfo exceptionInfo;
+ GetExceptionInfo( &exceptionInfo );
if( clipMask_.isValid() )
{
// Set clip mask
- SetImageClipMask( image(), clipMask_.constImage() );
+ SetImageClipMask( image(), clipMask_.constImage(), &exceptionInfo );
}
else
{
// Unset existing clip mask
- SetImageClipMask( image(), 0 );
+ SetImageClipMask( image(), 0, &exceptionInfo );
}
+ throwException( exceptionInfo );
+ (void) DestroyExceptionInfo( &exceptionInfo );
}
Magick::Image Magick::Image::clipMask ( void ) const
{
- ExceptionInfo exceptionInfo;
- GetExceptionInfo( &exceptionInfo );
- MagickCore::Image* image =
- GetImageClipMask( constImage(), &exceptionInfo );
- throwException( exceptionInfo );
- (void) DestroyExceptionInfo( &exceptionInfo );
- return Magick::Image( image );
+ ExceptionInfo exceptionInfo;
+ GetExceptionInfo( &exceptionInfo );
+ MagickCore::Image* image =
+ GetImageClipMask( constImage(), &exceptionInfo );
+ throwException( exceptionInfo );
+ (void) DestroyExceptionInfo( &exceptionInfo );
+ return Magick::Image( image );
}
void Magick::Image::colorFuzz ( const double fuzz_ )
@@ -3609,13 +3630,17 @@ std::string Magick::Image::signature ( const bool force_ ) const
Lock( &_imgRef->_mutexLock );
// Re-calculate image signature if necessary
+ ExceptionInfo exceptionInfo;
+ GetExceptionInfo( &exceptionInfo );
if ( force_ ||
!GetImageProperty(constImage(), "Signature") ||
constImage()->taint )
{
- SignatureImage( const_cast<MagickCore::Image *>(constImage()) );
+ SignatureImage( const_cast<MagickCore::Image *>(constImage()), &exceptionInfo );
}
+ throwException( exceptionInfo );
+ (void) DestroyExceptionInfo( &exceptionInfo );
const char *property = GetImageProperty(constImage(), "Signature");
return std::string( property );
@@ -3940,9 +3965,13 @@ Magick::ImageType Magick::Image::type ( void ) const
}
void Magick::Image::type ( const Magick::ImageType type_)
{
+ ExceptionInfo exceptionInfo;
+ GetExceptionInfo( &exceptionInfo );
modifyImage();
options()->type( type_ );
- SetImageType( image(), type_ );
+ SetImageType( image(), type_, &exceptionInfo );
+ throwException( exceptionInfo );
+ (void) DestroyExceptionInfo( &exceptionInfo );
}
void Magick::Image::verbose ( const bool verboseFlag_ )
diff --git a/MagickCore/animate.c b/MagickCore/animate.c
index b79c0d6c0..97a3df15b 100644
--- a/MagickCore/animate.c
+++ b/MagickCore/animate.c
@@ -496,7 +496,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
*title;
title=InterpretImageProperties(resource_info->image_info,*image,
- resource_info->title);
+ resource_info->title,exception);
(void) CopyMagickString(windows->image.name,title,MaxTextExtent);
title=DestroyString(title);
}
@@ -889,7 +889,8 @@ MagickExport void XAnimateBackgroundImage(Display *display,
next=GetNextImageInList(next);
}
if (next != (Image *) NULL)
- (void) RemapImages(resources.quantize_info,images,(Image *) NULL);
+ (void) RemapImages(resources.quantize_info,images,(Image *) NULL,
+ exception);
}
/*
Sort images by increasing scene number.
@@ -915,7 +916,7 @@ MagickExport void XAnimateBackgroundImage(Display *display,
(visual_info->klass == TrueColor) ||
(visual_info->klass == DirectColor))
(void) SetImageType(image_list[scene],image_list[scene]->matte ==
- MagickFalse ? TrueColorType : TrueColorMatteType);
+ MagickFalse ? TrueColorType : TrueColorMatteType,exception);
if ((display_image->columns < image_list[scene]->columns) &&
(display_image->rows < image_list[scene]->rows))
display_image=image_list[scene];
@@ -923,7 +924,7 @@ MagickExport void XAnimateBackgroundImage(Display *display,
if ((resource_info->map_type != (char *) NULL) ||
(visual_info->klass == TrueColor) || (visual_info->klass == DirectColor))
(void) SetImageType(display_image,display_image->matte == MagickFalse ?
- TrueColorType : TrueColorMatteType);
+ TrueColorType : TrueColorMatteType,exception);
XMakeStandardColormap(display,visual_info,&resources,display_image,map_info,
&pixel);
/*
@@ -1511,7 +1512,7 @@ MagickExport Image *XAnimateImages(Display *display,
}
if (next != (Image *) NULL)
(void) RemapImages(resource_info->quantize_info,images,
- (Image *) NULL);
+ (Image *) NULL,exception);
}
/*
Sort images by increasing scene number.
@@ -1537,7 +1538,7 @@ MagickExport Image *XAnimateImages(Display *display,
(visual_info->klass == TrueColor) ||
(visual_info->klass == DirectColor))
(void) SetImageType(image_list[scene],image_list[scene]->matte ==
- MagickFalse ? TrueColorType : TrueColorMatteType);
+ MagickFalse ? TrueColorType : TrueColorMatteType,exception);
if ((display_image->columns < image_list[scene]->columns) &&
(display_image->rows < image_list[scene]->rows))
display_image=image_list[scene];
@@ -1651,7 +1652,7 @@ MagickExport Image *XAnimateImages(Display *display,
*title;
title=InterpretImageProperties(resource_info->image_info,display_image,
- resource_info->title);
+ resource_info->title,exception);
(void) CopyMagickString(windows->image.name,title,MaxTextExtent);
(void) CopyMagickString(windows->image.icon_name,title,MaxTextExtent);
title=DestroyString(title);
@@ -1962,7 +1963,7 @@ MagickExport Image *XAnimateImages(Display *display,
*title;
title=InterpretImageProperties(resource_info->image_info,
- image_list[scene],resource_info->title);
+ image_list[scene],resource_info->title,exception);
(void) CopyMagickString(windows->image.name,title,MaxTextExtent);
title=DestroyString(title);
}
@@ -2100,7 +2101,7 @@ MagickExport Image *XAnimateImages(Display *display,
*title;
title=InterpretImageProperties(resource_info->image_info,
- image,resource_info->title);
+ image,resource_info->title,exception);
(void) CopyMagickString(windows->image.name,title,
MaxTextExtent);
title=DestroyString(title);
diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index 0def9c980..5559c98aa 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -463,7 +463,7 @@ MagickExport MagickBooleanType AnnotateImage(Image *image,
(void) FormatLocaleString(primitive,MaxTextExtent,
"rectangle 0,0 %g,%.20g",metrics.origin.x,(double) height);
(void) CloneString(&undercolor_info->primitive,primitive);
- (void) DrawImage(image,undercolor_info);
+ (void) DrawImage(image,undercolor_info,exception);
(void) DestroyDrawInfo(undercolor_info);
}
annotate_info->affine.tx=offset.x;
@@ -475,7 +475,7 @@ MagickExport MagickBooleanType AnnotateImage(Image *image,
annotate_info->affine.ty-=(draw_info->affine.sy*(metrics.ascent+
metrics.descent-metrics.underline_position));
(void) CloneString(&annotate_info->primitive,primitive);
- (void) DrawImage(image,annotate_info);
+ (void) DrawImage(image,annotate_info,exception);
}
else
if (annotate->decorate == UnderlineDecoration)
@@ -483,7 +483,7 @@ MagickExport MagickBooleanType AnnotateImage(Image *image,
annotate_info->affine.ty-=(draw_info->affine.sy*
metrics.underline_position);
(void) CloneString(&annotate_info->primitive,primitive);
- (void) DrawImage(image,annotate_info);
+ (void) DrawImage(image,annotate_info,exception);
}
/*
Annotate image with text.
@@ -496,7 +496,7 @@ MagickExport MagickBooleanType AnnotateImage(Image *image,
annotate_info->affine.ty-=(draw_info->affine.sy*(height+
metrics.underline_position+metrics.descent)/2.0);
(void) CloneString(&annotate_info->primitive,primitive);
- (void) DrawImage(image,annotate_info);
+ (void) DrawImage(image,annotate_info,exception);
}
}
/*
@@ -1476,7 +1476,7 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info,
annotate_info->affine.tx=offset->x;
annotate_info->affine.ty=offset->y;
(void) ConcatenateString(&annotate_info->primitive,"'");
- (void) DrawImage(image,annotate_info);
+ (void) DrawImage(image,annotate_info,exception);
}
}
/*
diff --git a/MagickCore/colormap.c b/MagickCore/colormap.c
index 265a11c08..75f47b684 100644
--- a/MagickCore/colormap.c
+++ b/MagickCore/colormap.c
@@ -87,7 +87,7 @@
% The format of the AcquireImageColormap method is:
%
% MagickBooleanType AcquireImageColormap(Image *image,
-% const size_t colors)
+% const size_t colors,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -95,6 +95,8 @@
%
% o colors: the number of colors in the image colormap.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
static inline size_t MagickMax(const size_t x,
@@ -114,7 +116,7 @@ static inline size_t MagickMin(const size_t x,
}
MagickExport MagickBooleanType AcquireImageColormap(Image *image,
- const size_t colors)
+ const size_t colors,ExceptionInfo *exception)
{
register ssize_t
i;
@@ -171,7 +173,8 @@ MagickExport MagickBooleanType AcquireImageColormap(Image *image,
%
% The format of the CycleColormapImage method is:
%
-% MagickBooleanType CycleColormapImage(Image *image,const ssize_t displace)
+% MagickBooleanType CycleColormapImage(Image *image,const ssize_t displace,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -179,16 +182,15 @@ MagickExport MagickBooleanType AcquireImageColormap(Image *image,
%
% o displace: displace the colormap this amount.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType CycleColormapImage(Image *image,
- const ssize_t displace)
+ const ssize_t displace,ExceptionInfo *exception)
{
CacheView
*image_view;
- ExceptionInfo
- *exception;
-
MagickBooleanType
status;
@@ -200,9 +202,8 @@ MagickExport MagickBooleanType CycleColormapImage(Image *image,
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
if (image->storage_class == DirectClass)
- (void) SetImageType(image,PaletteType);
+ (void) SetImageType(image,PaletteType,exception);
status=MagickTrue;
- exception=(&image->exception);
image_view=AcquireCacheView(image);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(dynamic,4) shared(status)
@@ -258,12 +259,15 @@ MagickExport MagickBooleanType CycleColormapImage(Image *image,
%
% The format of the SortColormapByIntensity method is:
%
-% MagickBooleanType SortColormapByIntensity(Image *image)
+% MagickBooleanType SortColormapByIntensity(Image *image,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: A pointer to an Image structure.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
#if defined(__cplusplus) || defined(c_plusplus)
@@ -290,14 +294,12 @@ static int IntensityCompare(const void *x,const void *y)
}
#endif
-MagickExport MagickBooleanType SortColormapByIntensity(Image *image)
+MagickExport MagickBooleanType SortColormapByIntensity(Image *image,
+ ExceptionInfo *exception)
{
CacheView
*image_view;
- ExceptionInfo
- *exception;
-
MagickBooleanType
status;
@@ -346,7 +348,6 @@ MagickExport MagickBooleanType SortColormapByIntensity(Image *image)
for (i=0; i < (ssize_t) image->colors; i++)
pixels[(ssize_t) image->colormap[i].alpha]=(unsigned short) i;
status=MagickTrue;
- exception=(&image->exception);
image_view=AcquireCacheView(image);
for (y=0; y < (ssize_t) image->rows; y++)
{
diff --git a/MagickCore/colormap.h b/MagickCore/colormap.h
index d81fa66b5..8d5b3cbb3 100644
--- a/MagickCore/colormap.h
+++ b/MagickCore/colormap.h
@@ -23,9 +23,9 @@ extern "C" {
#endif
extern MagickExport MagickBooleanType
- AcquireImageColormap(Image *,const size_t),
- CycleColormapImage(Image *,const ssize_t),
- SortColormapByIntensity(Image *);
+ AcquireImageColormap(Image *,const size_t,ExceptionInfo *),
+ CycleColormapImage(Image *,const ssize_t,ExceptionInfo *),
+ SortColormapByIntensity(Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
diff --git a/MagickCore/compare.c b/MagickCore/compare.c
index 57297191c..22cf78816 100644
--- a/MagickCore/compare.c
+++ b/MagickCore/compare.c
@@ -1458,7 +1458,7 @@ MagickExport double *GetImageDistortions(Image *image,
% The format of the IsImagesEqual method is:
%
% MagickBooleanType IsImagesEqual(Image *image,
-% const Image *reconstruct_image)
+% const Image *reconstruct_image,ExceptionInfo *exception)
%
% A description of each parameter follows.
%
@@ -1466,17 +1466,16 @@ MagickExport double *GetImageDistortions(Image *image,
%
% o reconstruct_image: the reconstruct image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType IsImagesEqual(Image *image,
- const Image *reconstruct_image)
+ const Image *reconstruct_image,ExceptionInfo *exception)
{
CacheView
*image_view,
*reconstruct_view;
- ExceptionInfo
- *exception;
-
MagickBooleanType
status;
@@ -1500,7 +1499,6 @@ MagickExport MagickBooleanType IsImagesEqual(Image *image,
maximum_error=0.0;
mean_error_per_pixel=0.0;
mean_error=0.0;
- exception=(&image->exception);
image_view=AcquireCacheView(image);
reconstruct_view=AcquireCacheView(reconstruct_image);
for (y=0; y < (ssize_t) image->rows; y++)
diff --git a/MagickCore/compare.h b/MagickCore/compare.h
index 714fea447..15944b7ee 100644
--- a/MagickCore/compare.h
+++ b/MagickCore/compare.h
@@ -50,7 +50,7 @@ extern MagickExport Image
extern MagickExport MagickBooleanType
GetImageDistortion(Image *,const Image *,const MetricType,double *,
ExceptionInfo *),
- IsImagesEqual(Image *,const Image *);
+ IsImagesEqual(Image *,const Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
diff --git a/MagickCore/compress.c b/MagickCore/compress.c
index d29dd3bfb..812537d91 100644
--- a/MagickCore/compress.c
+++ b/MagickCore/compress.c
@@ -361,12 +361,15 @@ MagickExport void Ascii85Encode(Image *image,const unsigned char code)
%
% The format of the HuffmanDecodeImage method is:
%
-% MagickBooleanType HuffmanDecodeImage(Image *image)
+% MagickBooleanType HuffmanDecodeImage(Image *image,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
static inline size_t MagickMax(const size_t x,const size_t y)
@@ -383,7 +386,8 @@ static inline size_t MagickMin(const size_t x,const size_t y)
return(y);
}
-MagickExport MagickBooleanType HuffmanDecodeImage(Image *image)
+MagickExport MagickBooleanType HuffmanDecodeImage(Image *image,
+ ExceptionInfo *exception)
{
#define HashSize 1021
#define MBHashA 293
@@ -423,9 +427,6 @@ MagickExport MagickBooleanType HuffmanDecodeImage(Image *image)
const HuffmanTable
*entry;
- ExceptionInfo
- *exception;
-
HuffmanTable
**mb_hash,
**mw_hash;
@@ -507,7 +508,6 @@ MagickExport MagickBooleanType HuffmanDecodeImage(Image *image)
image->x_resolution=204.0;
image->y_resolution=196.0;
image->units=PixelsPerInchResolution;
- exception=(&image->exception);
image_view=AcquireCacheView(image);
for (y=0; ((y < (ssize_t) image->rows) && (null_lines < 3)); )
{
@@ -673,7 +673,7 @@ MagickExport MagickBooleanType HuffmanDecodeImage(Image *image)
% The format of the HuffmanEncodeImage method is:
%
% MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
-% Image *image,Image *inject_image)
+% Image *image,Image *inject_image,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -683,9 +683,11 @@ MagickExport MagickBooleanType HuffmanDecodeImage(Image *image)
%
% o inject_image: inject into the image stream.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
- Image *image,Image *inject_image)
+ Image *image,Image *inject_image,ExceptionInfo *exception)
{
#define HuffmanOutputCode(entry) \
{ \
@@ -716,9 +718,6 @@ MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
const HuffmanTable
*entry;
- ExceptionInfo
- *exception;
-
int
k,
runlength;
@@ -780,7 +779,7 @@ MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
scanline=(unsigned char *) RelinquishMagickMemory(scanline);
return(MagickFalse);
}
- (void) SetImageType(huffman_image,BilevelType);
+ (void) SetImageType(huffman_image,BilevelType,exception);
byte='\0';
bit=(unsigned char) 0x80;
if (LocaleCompare(image_info->magick,"FAX") != 0)
@@ -797,7 +796,6 @@ MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
/*
Compress to 1D Huffman pixels.
*/
- exception=(&huffman_image->exception);
q=scanline;
for (y=0; y < (ssize_t) huffman_image->rows; y++)
{
@@ -915,7 +913,7 @@ MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
% The format of the LZWEncodeImage method is:
%
% MagickBooleanType LZWEncodeImage(Image *image,const size_t length,
-% unsigned char *pixels)
+% unsigned char *pixels,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -926,9 +924,11 @@ MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
% o pixels: the address of an unsigned array of characters containing the
% pixels to compress.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType LZWEncodeImage(Image *image,const size_t length,
- unsigned char *pixels)
+ unsigned char *pixels,ExceptionInfo *exception)
{
#define LZWClr 256UL /* Clear Table Marker */
#define LZWEod 257UL /* End of Data marker */
@@ -1090,7 +1090,7 @@ MagickExport MagickBooleanType LZWEncodeImage(Image *image,const size_t length,
%
*/
MagickExport MagickBooleanType PackbitsEncodeImage(Image *image,
- const size_t length,unsigned char *pixels)
+ const size_t length,unsigned char *pixels,ExceptionInfo *exception)
{
int
count;
@@ -1212,7 +1212,7 @@ MagickExport MagickBooleanType PackbitsEncodeImage(Image *image,
% The format of the ZLIBEncodeImage method is:
%
% MagickBooleanType ZLIBEncodeImage(Image *image,const size_t length,
-% unsigned char *pixels)
+% unsigned char *pixels,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -1224,6 +1224,8 @@ MagickExport MagickBooleanType PackbitsEncodeImage(Image *image,
% o pixels: the address of an unsigned array of characters containing the
% pixels to compress.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
static voidpf AcquireZIPMemory(voidpf context,unsigned int items,
@@ -1240,7 +1242,7 @@ static void RelinquishZIPMemory(voidpf context,voidpf memory)
}
MagickExport MagickBooleanType ZLIBEncodeImage(Image *image,const size_t length,
- unsigned char *pixels)
+ unsigned char *pixels,ExceptionInfo *exception)
{
int
status;
diff --git a/MagickCore/compress.h b/MagickCore/compress.h
index 313ee3bac..4b7fcbc14 100644
--- a/MagickCore/compress.h
+++ b/MagickCore/compress.h
@@ -52,11 +52,11 @@ typedef struct _Ascii85Info
Ascii85Info;
extern MagickExport MagickBooleanType
- HuffmanDecodeImage(Image *),
- HuffmanEncodeImage(const ImageInfo *,Image *,Image *),
- LZWEncodeImage(Image *,const size_t,unsigned char *),
- PackbitsEncodeImage(Image *,const size_t,unsigned char *),
- ZLIBEncodeImage(Image *,const size_t,unsigned char *);
+ HuffmanDecodeImage(Image *,ExceptionInfo *),
+ HuffmanEncodeImage(const ImageInfo *,Image *,Image *,ExceptionInfo *),
+ LZWEncodeImage(Image *,const size_t,unsigned char *,ExceptionInfo *),
+ PackbitsEncodeImage(Image *,const size_t,unsigned char *,ExceptionInfo *),
+ ZLIBEncodeImage(Image *,const size_t,unsigned char *,ExceptionInfo *);
extern MagickExport void
Ascii85Encode(Image *,const unsigned char),
diff --git a/MagickCore/constitute.c b/MagickCore/constitute.c
index e2d0e2981..b0749ced6 100644
--- a/MagickCore/constitute.c
+++ b/MagickCore/constitute.c
@@ -203,12 +203,9 @@ MagickExport Image *ConstituteImage(const size_t columns,
image->columns=columns;
image->rows=rows;
(void) SetImageBackgroundColor(image);
- status=ImportImagePixels(image,0,0,columns,rows,map,storage,pixels);
+ status=ImportImagePixels(image,0,0,columns,rows,map,storage,pixels,exception);
if (status == MagickFalse)
- {
- InheritException(exception,&image->exception);
- image=DestroyImage(image);
- }
+ image=DestroyImage(image);
return(image);
}
@@ -694,21 +691,21 @@ MagickExport Image *ReadImage(const ImageInfo *image_info,
option=GetImageOption(read_info,"caption");
if (option != (const char *) NULL)
{
- property=InterpretImageProperties(read_info,next,option);
+ property=InterpretImageProperties(read_info,next,option,exception);
(void) SetImageProperty(next,"caption",property);
property=DestroyString(property);
}
option=GetImageOption(read_info,"comment");
if (option != (const char *) NULL)
{
- property=InterpretImageProperties(read_info,next,option);
+ property=InterpretImageProperties(read_info,next,option,exception);
(void) SetImageProperty(next,"comment",property);
property=DestroyString(property);
}
option=GetImageOption(read_info,"label");
if (option != (const char *) NULL)
{
- property=InterpretImageProperties(read_info,next,option);
+ property=InterpretImageProperties(read_info,next,option,exception);
(void) SetImageProperty(next,"label",property);
property=DestroyString(property);
}
diff --git a/MagickCore/delegate.c b/MagickCore/delegate.c
index 2f475959d..caa2cc762 100644
--- a/MagickCore/delegate.c
+++ b/MagickCore/delegate.c
@@ -287,7 +287,7 @@ MagickExport char *GetDelegateCommand(const ImageInfo *image_info,Image *image,
decode ? decode : encode);
return((char *) NULL);
}
- command=InterpretImageProperties(image_info,image,commands[0]);
+ command=InterpretImageProperties(image_info,image,commands[0],exception);
if (command == (char *) NULL)
(void) ThrowMagickException(exception,GetMagickModule(),ResourceLimitError,
"MemoryAllocationFailed","`%s'",commands[0]);
@@ -936,7 +936,7 @@ MagickExport MagickBooleanType InvokeDelegate(ImageInfo *image_info,
return(MagickFalse);
}
magick=InterpretImageProperties(image_info,image,decode != (char *) NULL ?
- delegate_info->encode : delegate_info->decode);
+ delegate_info->encode : delegate_info->decode,exception);
if (magick == (char *) NULL)
{
(void) RelinquishUniqueFileResource(image_info->unique);
@@ -1029,7 +1029,7 @@ MagickExport MagickBooleanType InvokeDelegate(ImageInfo *image_info,
}
}
status=MagickFalse;
- command=InterpretImageProperties(image_info,image,commands[i]);
+ command=InterpretImageProperties(image_info,image,commands[i],exception);
if (command != (char *) NULL)
{
/*
diff --git a/MagickCore/display.c b/MagickCore/display.c
index 84c09bbc9..536b0646b 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -7984,7 +7984,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
XSetCursorState(display,windows,MagickTrue);
XCheckRefreshWindows(display,windows);
(void) SetImageType(*image,(*image)->matte == MagickFalse ?
- GrayscaleType : GrayscaleMatteType);
+ GrayscaleType : GrayscaleMatteType,exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
@@ -8015,7 +8015,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
affinity_image=ReadImage(image_info,exception);
if (affinity_image != (Image *) NULL)
{
- (void) RemapImage(&quantize_info,*image,affinity_image);
+ (void) RemapImage(&quantize_info,*image,affinity_image,exception);
affinity_image=DestroyImage(affinity_image);
}
CatchException(exception);
@@ -8048,7 +8048,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
XCheckRefreshWindows(display,windows);
quantize_info.number_colors=StringToUnsignedLong(colors);
quantize_info.dither=status != 0 ? MagickTrue : MagickFalse;
- (void) QuantizeImage(&quantize_info,*image);
+ (void) QuantizeImage(&quantize_info,*image,exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
@@ -8455,7 +8455,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
if ((flags & SigmaValue) == 0)
geometry_info.sigma=1.0;
(void) SegmentImage(*image,RGBColorspace,MagickFalse,geometry_info.rho,
- geometry_info.sigma);
+ geometry_info.sigma,exception);
XSetCursorState(display,windows,MagickFalse);
if (windows->image.orphan != MagickFalse)
break;
@@ -13642,7 +13642,7 @@ static Image *XVisualDirectoryImage(Display *display,
{
(void) DeleteImageProperty(next_image,"label");
(void) SetImageProperty(next_image,"label",InterpretImageProperties(
- read_info,next_image,DefaultTileLabel));
+ read_info,next_image,DefaultTileLabel,exception));
(void) ParseRegionGeometry(next_image,read_info->size,&geometry,
exception);
thumbnail_image=ThumbnailImage(next_image,geometry.width,
@@ -14652,7 +14652,7 @@ MagickExport Image *XDisplayImage(Display *display,XResourceInfo *resource_info,
*title;
title=InterpretImageProperties(resource_info->image_info,display_image,
- resource_info->title);
+ resource_info->title,exception);
(void) CopyMagickString(windows->image.name,title,MaxTextExtent);
(void) CopyMagickString(windows->image.icon_name,title,MaxTextExtent);
title=DestroyString(title);
diff --git a/MagickCore/draw.c b/MagickCore/draw.c
index cde101375..ee38ad689 100644
--- a/MagickCore/draw.c
+++ b/MagickCore/draw.c
@@ -1372,7 +1372,7 @@ static void DrawBoundingRectangles(Image *image,const DrawInfo *draw_info,
% The format of the DrawClipPath method is:
%
% MagickBooleanType DrawClipPath(Image *image,const DrawInfo *draw_info,
-% const char *name)
+% const char *name,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -1382,9 +1382,11 @@ static void DrawBoundingRectangles(Image *image,const DrawInfo *draw_info,
%
% o name: the name of the clip path.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType DrawClipPath(Image *image,
- const DrawInfo *draw_info,const char *name)
+ const DrawInfo *draw_info,const char *name,ExceptionInfo *exception)
{
char
clip_mask[MaxTextExtent];
@@ -1416,7 +1418,7 @@ MagickExport MagickBooleanType DrawClipPath(Image *image,
&image->exception);
if (clip_mask == (Image *) NULL)
return(MagickFalse);
- (void) SetImageClipMask(image,clip_mask);
+ (void) SetImageClipMask(image,clip_mask,exception);
clip_mask=DestroyImage(clip_mask);
}
(void) QueryColorDatabase("#00000000",&image->clip_mask->background_color,
@@ -1430,7 +1432,7 @@ MagickExport MagickBooleanType DrawClipPath(Image *image,
(void) CloneString(&clone_info->primitive,value);
(void) QueryColorDatabase("#ffffff",&clone_info->fill,&image->exception);
clone_info->clip_mask=(char *) NULL;
- status=DrawImage(image->clip_mask,clone_info);
+ status=DrawImage(image->clip_mask,clone_info,exception);
status|=NegateImage(image->clip_mask,MagickFalse,&image->exception);
clone_info=DestroyDrawInfo(clone_info);
if (image->debug != MagickFalse)
@@ -1628,7 +1630,8 @@ static MagickBooleanType DrawDashPolygon(const DrawInfo *draw_info,
%
% The format of the DrawImage method is:
%
-% MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
+% MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -1636,6 +1639,8 @@ static MagickBooleanType DrawDashPolygon(const DrawInfo *draw_info,
%
% o draw_info: the draw info.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
static inline MagickBooleanType IsPoint(const char *point)
@@ -1657,7 +1662,8 @@ static inline void TracePoint(PrimitiveInfo *primitive_info,
primitive_info->point=point;
}
-MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
+MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
+ ExceptionInfo *exception)
{
#define RenderImageTag "Render/Image"
@@ -1871,7 +1877,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
GetMagickToken(q,&q,token);
(void) CloneString(&graphic_context[n]->clip_mask,token);
(void) DrawClipPath(image,graphic_context[n],
- graphic_context[n]->clip_mask);
+ graphic_context[n]->clip_mask,exception);
break;
}
if (LocaleCompare("clip-rule",keyword) == 0)
@@ -1976,7 +1982,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
(void) FormatLocaleString(pattern,MaxTextExtent,"%s",token);
if (GetImageArtifact(image,pattern) != (const char *) NULL)
(void) DrawPatternPath(image,draw_info,token,
- &graphic_context[n]->fill_pattern);
+ &graphic_context[n]->fill_pattern,exception);
else
{
status=QueryColorDatabase(token,&graphic_context[n]->fill,
@@ -2259,7 +2265,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
if (graphic_context[n]->clip_mask != (char *) NULL)
if (LocaleCompare(graphic_context[n]->clip_mask,
graphic_context[n-1]->clip_mask) != 0)
- (void) SetImageClipMask(image,(Image *) NULL);
+ (void) SetImageClipMask(image,(Image *) NULL,exception);
graphic_context[n]=DestroyDrawInfo(graphic_context[n]);
n--;
break;
@@ -2505,7 +2511,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
(void) FormatLocaleString(pattern,MaxTextExtent,"%s",token);
if (GetImageArtifact(image,pattern) != (const char *) NULL)
(void) DrawPatternPath(image,draw_info,token,
- &graphic_context[n]->stroke_pattern);
+ &graphic_context[n]->stroke_pattern,exception);
else
{
status=QueryColorDatabase(token,&graphic_context[n]->stroke,
@@ -3106,7 +3112,7 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
(LocaleCompare(graphic_context[n]->clip_mask,
graphic_context[n-1]->clip_mask) != 0))
(void) DrawClipPath(image,graphic_context[n],
- graphic_context[n]->clip_mask);
+ graphic_context[n]->clip_mask,exception);
(void) DrawPrimitive(image,graphic_context[n],primitive_info);
}
if (primitive_info->text != (char *) NULL)
@@ -3464,7 +3470,7 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
% The format of the DrawPatternPath method is:
%
% MagickBooleanType DrawPatternPath(Image *image,const DrawInfo *draw_info,
-% const char *name,Image **pattern)
+% const char *name,Image **pattern,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -3476,9 +3482,12 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
%
% o image: the image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType DrawPatternPath(Image *image,
- const DrawInfo *draw_info,const char *name,Image **pattern)
+ const DrawInfo *draw_info,const char *name,Image **pattern,
+ ExceptionInfo *exception)
{
char
property[MaxTextExtent];
@@ -3526,7 +3535,7 @@ MagickExport MagickBooleanType DrawPatternPath(Image *image,
clone_info->fill_pattern=NewImageList();
clone_info->stroke_pattern=NewImageList();
(void) CloneString(&clone_info->primitive,path);
- status=DrawImage(*pattern,clone_info);
+ status=DrawImage(*pattern,clone_info,exception);
clone_info=DestroyDrawInfo(clone_info);
if (image->debug != MagickFalse)
(void) LogMagickEvent(DrawEvent,GetMagickModule(),"end pattern-path");
diff --git a/MagickCore/draw.h b/MagickCore/draw.h
index 66e80aa77..164b10c33 100644
--- a/MagickCore/draw.h
+++ b/MagickCore/draw.h
@@ -377,10 +377,11 @@ extern MagickExport DrawInfo
extern MagickExport MagickBooleanType
DrawAffineImage(Image *,const Image *,const AffineMatrix *),
- DrawClipPath(Image *,const DrawInfo *,const char *),
+ DrawClipPath(Image *,const DrawInfo *,const char *,ExceptionInfo *),
DrawGradientImage(Image *,const DrawInfo *),
- DrawImage(Image *,const DrawInfo *),
- DrawPatternPath(Image *,const DrawInfo *,const char *,Image **),
+ DrawImage(Image *,const DrawInfo *,ExceptionInfo *),
+ DrawPatternPath(Image *,const DrawInfo *,const char *,Image **,
+ ExceptionInfo *),
DrawPrimitive(Image *,const DrawInfo *,const PrimitiveInfo *);
extern MagickExport void
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index c45593a92..6e35d1511 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -2492,7 +2492,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
colors<<=1;
quantize_info.number_colors=colors;
quantize_info.colorspace=GRAYColorspace;
- (void) QuantizeImage(&quantize_info,preview_image);
+ (void) QuantizeImage(&quantize_info,preview_image,exception);
(void) FormatLocaleString(label,MaxTextExtent,
"-colorspace gray -colors %.20g",(double) colors);
break;
@@ -2504,7 +2504,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
break;
colors<<=1;
quantize_info.number_colors=colors;
- (void) QuantizeImage(&quantize_info,preview_image);
+ (void) QuantizeImage(&quantize_info,preview_image,exception);
(void) FormatLocaleString(label,MaxTextExtent,"colors %.20g",(double)
colors);
break;
@@ -2658,7 +2658,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
break;
threshold+=0.4f;
(void) SegmentImage(preview_image,RGBColorspace,MagickFalse,threshold,
- threshold);
+ threshold,exception);
(void) FormatLocaleString(label,MaxTextExtent,"segment %gx%g",
threshold,threshold);
break;
diff --git a/MagickCore/exception-private.h b/MagickCore/exception-private.h
index 8fef7e9da..e1ce0136b 100644
--- a/MagickCore/exception-private.h
+++ b/MagickCore/exception-private.h
@@ -28,7 +28,7 @@ extern "C" {
#define ThrowBinaryException(severity,tag,context) \
{ \
if (image != (Image *) NULL) \
- (void) ThrowMagickException(&image->exception,GetMagickModule(),severity, \
+ (void) ThrowMagickException(exception,GetMagickModule(),severity, \
tag == (const char *) NULL ? "unknown" : tag,"`%s'",context); \
return(MagickFalse); \
}
@@ -78,7 +78,7 @@ extern "C" {
}
#define ThrowWriterException(severity,tag) \
{ \
- (void) ThrowMagickException(&image->exception,GetMagickModule(),severity, \
+ (void) ThrowMagickException(exception,GetMagickModule(),severity, \
tag == (const char *) NULL ? "unknown" : tag,"`%s'",image->filename); \
if (image_info->adjoin != MagickFalse) \
while (image->previous != (Image *) NULL) \
diff --git a/MagickCore/fx.c b/MagickCore/fx.c
index 045399c43..da805a212 100644
--- a/MagickCore/fx.c
+++ b/MagickCore/fx.c
@@ -640,7 +640,7 @@ MagickExport Image *CharcoalImage(const Image *image,const double radius,
clone_image=CloneImage(image,0,0,MagickTrue,exception);
if (clone_image == (Image *) NULL)
return((Image *) NULL);
- (void) SetImageType(clone_image,GrayscaleType);
+ (void) SetImageType(clone_image,GrayscaleType,exception);
edge_image=EdgeImage(clone_image,radius,exception);
clone_image=DestroyImage(clone_image);
if (edge_image == (Image *) NULL)
@@ -651,7 +651,7 @@ MagickExport Image *CharcoalImage(const Image *image,const double radius,
return((Image *) NULL);
(void) NormalizeImage(charcoal_image,exception);
(void) NegateImage(charcoal_image,MagickFalse,exception);
- (void) SetImageType(charcoal_image,GrayscaleType);
+ (void) SetImageType(charcoal_image,GrayscaleType,exception);
return(charcoal_image);
}
@@ -3845,7 +3845,7 @@ MagickExport Image *PolaroidImage(const Image *image,const DrawInfo *draw_info,
return((Image *) NULL);
annotate_info=CloneDrawInfo((const ImageInfo *) NULL,draw_info);
caption=InterpretImageProperties((ImageInfo *) NULL,(Image *) image,
- value);
+ value,exception);
(void) CloneString(&annotate_info->text,caption);
count=FormatMagickCaption(caption_image,annotate_info,MagickTrue,&metrics,
&caption,exception);
@@ -5273,7 +5273,7 @@ MagickExport Image *VignetteImage(const Image *image,const double radius,
"ellipse %g,%g,%g,%g,0.0,360.0",image->columns/2.0,
image->rows/2.0,image->columns/2.0-x,image->rows/2.0-y);
draw_info->primitive=AcquireString(ellipse);
- (void) DrawImage(oval_image,draw_info);
+ (void) DrawImage(oval_image,draw_info,exception);
draw_info=DestroyDrawInfo(draw_info);
blur_image=BlurImage(oval_image,radius,sigma,exception);
oval_image=DestroyImage(oval_image);
diff --git a/MagickCore/histogram.c b/MagickCore/histogram.c
index 7a07c421d..11b5303bd 100644
--- a/MagickCore/histogram.c
+++ b/MagickCore/histogram.c
@@ -1333,7 +1333,7 @@ MagickExport Image *UniqueImageColors(const Image *image,
quantize_info->number_colors=MaxColormapSize;
quantize_info->dither=MagickFalse;
quantize_info->tree_depth=8;
- (void) QuantizeImage(quantize_info,unique_image);
+ (void) QuantizeImage(quantize_info,unique_image,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
}
cube_info=DestroyCubeInfo(image,cube_info);
diff --git a/MagickCore/identify.c b/MagickCore/identify.c
index 4bcbad715..782d048ee 100644
--- a/MagickCore/identify.c
+++ b/MagickCore/identify.c
@@ -365,7 +365,7 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file,
p=GetVirtualPixels(image,0,0,1,1,exception);
ping=p == (const Quantum *) NULL ? MagickTrue : MagickFalse;
type=GetImageType(image,exception);
- (void) SignatureImage(image);
+ (void) SignatureImage(image,exception);
(void) FormatLocaleFile(file,"Image: %s\n",image->filename);
if (*image->magick_filename != '\0')
if (LocaleCompare(image->magick_filename,image->filename) != 0)
@@ -796,7 +796,7 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file,
}
(void) FormatLocaleFile(file," %.20gx%.20g %s\n",(double)
tile->magick_columns,(double) tile->magick_rows,tile->magick);
- (void) SignatureImage(tile);
+ (void) SignatureImage(tile,exception);
ResetImagePropertyIterator(tile);
property=GetNextImageProperty(tile);
while (property != (const char *) NULL)
diff --git a/MagickCore/image.c b/MagickCore/image.c
index 558f0334e..6f3adfbe7 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -636,7 +636,7 @@ MagickExport ExceptionType CatchImageException(Image *image)
% The format of the ClipImagePath method is:
%
% MagickBooleanType ClipImagePath(Image *image,const char *pathname,
-% const MagickBooleanType inside)
+% const MagickBooleanType inside,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -648,15 +648,17 @@ MagickExport ExceptionType CatchImageException(Image *image)
% o inside: if non-zero, later operations take effect inside clipping path.
% Otherwise later operations take effect outside clipping path.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
-MagickExport MagickBooleanType ClipImage(Image *image)
+MagickExport MagickBooleanType ClipImage(Image *image,ExceptionInfo *exception)
{
- return(ClipImagePath(image,"#1",MagickTrue));
+ return(ClipImagePath(image,"#1",MagickTrue,exception));
}
MagickExport MagickBooleanType ClipImagePath(Image *image,const char *pathname,
- const MagickBooleanType inside)
+ const MagickBooleanType inside,ExceptionInfo *exception)
{
#define ClipImagePathTag "ClipPath/Image"
@@ -705,7 +707,7 @@ MagickExport MagickBooleanType ClipImagePath(Image *image,const char *pathname,
(void) NegateImage(clip_mask,MagickFalse,&image->exception);
(void) FormatLocaleString(clip_mask->magick_filename,MaxTextExtent,
"8BIM:1999,2998:%s\nPS",pathname);
- (void) SetImageClipMask(image,clip_mask);
+ (void) SetImageClipMask(image,clip_mask,exception);
clip_mask=DestroyImage(clip_mask);
return(MagickTrue);
}
@@ -2902,7 +2904,8 @@ MagickExport MagickBooleanType SetImageStorageClass(Image *image,
%
% The format of the SetImageClipMask method is:
%
-% MagickBooleanType SetImageClipMask(Image *image,const Image *clip_mask)
+% MagickBooleanType SetImageClipMask(Image *image,const Image *clip_mask,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -2910,9 +2913,11 @@ MagickExport MagickBooleanType SetImageStorageClass(Image *image,
%
% o clip_mask: the image clip path.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType SetImageClipMask(Image *image,
- const Image *clip_mask)
+ const Image *clip_mask,ExceptionInfo *exception)
{
assert(image != (Image *) NULL);
if (image->debug != MagickFalse)
@@ -3401,7 +3406,8 @@ MagickExport void SetImageInfoFile(ImageInfo *image_info,FILE *file)
%
% The format of the SetImageMask method is:
%
-% MagickBooleanType SetImageMask(Image *image,const Image *mask)
+% MagickBooleanType SetImageMask(Image *image,const Image *mask,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -3409,9 +3415,11 @@ MagickExport void SetImageInfoFile(ImageInfo *image_info,FILE *file)
%
% o mask: the image mask.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType SetImageMask(Image *image,
- const Image *mask)
+ const Image *mask,ExceptionInfo *exception)
{
assert(image != (Image *) NULL);
if (image->debug != MagickFalse)
@@ -3532,7 +3540,8 @@ MagickExport MagickBooleanType SetImageOpacity(Image *image,
%
% The format of the SetImageType method is:
%
-% MagickBooleanType SetImageType(Image *image,const ImageType type)
+% MagickBooleanType SetImageType(Image *image,const ImageType type,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -3540,15 +3549,15 @@ MagickExport MagickBooleanType SetImageOpacity(Image *image,
%
% o type: Image type.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
-MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type)
+MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type,
+ ExceptionInfo *exception)
{
const char
*artifact;
- ExceptionInfo
- *exception;
-
ImageInfo
*image_info;
@@ -3568,7 +3577,6 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type)
artifact=GetImageArtifact(image,"dither");
if (artifact != (const char *) NULL)
(void) SetImageOption(image_info,"dither",artifact);
- exception=(&image->exception);
switch (type)
{
case BilevelType:
@@ -3580,7 +3588,7 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type)
quantize_info=AcquireQuantizeInfo(image_info);
quantize_info->number_colors=2;
quantize_info->colorspace=GRAYColorspace;
- status=QuantizeImage(quantize_info,image);
+ status=QuantizeImage(quantize_info,image,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
}
image->matte=MagickFalse;
@@ -3609,7 +3617,7 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type)
{
quantize_info=AcquireQuantizeInfo(image_info);
quantize_info->number_colors=256;
- status=QuantizeImage(quantize_info,image);
+ status=QuantizeImage(quantize_info,image,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
}
image->matte=MagickFalse;
@@ -3628,7 +3636,7 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type)
(void) BilevelImage(image,(double) QuantumRange/2.0);
(void) SetPixelChannelMask(image,channel_mask);
quantize_info=AcquireQuantizeInfo(image_info);
- status=QuantizeImage(quantize_info,image);
+ status=QuantizeImage(quantize_info,image,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
break;
}
@@ -3640,7 +3648,7 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type)
(void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception);
quantize_info=AcquireQuantizeInfo(image_info);
quantize_info->colorspace=TransparentColorspace;
- status=QuantizeImage(quantize_info,image);
+ status=QuantizeImage(quantize_info,image,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
break;
}
diff --git a/MagickCore/image.h b/MagickCore/image.h
index bade5047d..2e5ee7e4e 100644
--- a/MagickCore/image.h
+++ b/MagickCore/image.h
@@ -521,8 +521,8 @@ extern MagickExport ImageInfo
*DestroyImageInfo(ImageInfo *);
extern MagickExport MagickBooleanType
- ClipImage(Image *),
- ClipImagePath(Image *,const char *,const MagickBooleanType),
+ ClipImage(Image *,ExceptionInfo *),
+ ClipImagePath(Image *,const char *,const MagickBooleanType,ExceptionInfo *),
GetImageAlphaChannel(const Image *),
IsTaintImage(const Image *),
IsMagickConflict(const char *),
@@ -534,14 +534,14 @@ extern MagickExport MagickBooleanType
SeparateImage(Image *),
SetImageAlphaChannel(Image *,const AlphaChannelType,ExceptionInfo *),
SetImageBackgroundColor(Image *),
- SetImageClipMask(Image *,const Image *),
+ SetImageClipMask(Image *,const Image *,ExceptionInfo *),
SetImageColor(Image *,const PixelInfo *),
SetImageExtent(Image *,const size_t,const size_t,ExceptionInfo *),
SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
- SetImageMask(Image *,const Image *),
+ SetImageMask(Image *,const Image *,ExceptionInfo *),
SetImageOpacity(Image *,const Quantum),
SetImageStorageClass(Image *,const ClassType,ExceptionInfo *),
- SetImageType(Image *,const ImageType),
+ SetImageType(Image *,const ImageType,ExceptionInfo *),
StripImage(Image *),
SyncImage(Image *),
SyncImageSettings(const ImageInfo *,Image *),
diff --git a/MagickCore/montage.c b/MagickCore/montage.c
index 62c4633a1..9ab20151a 100644
--- a/MagickCore/montage.c
+++ b/MagickCore/montage.c
@@ -387,7 +387,6 @@ MagickExport Image *MontageImageList(const ImageInfo *image_info,
geometry,
extract_info;
-
size_t
bevel_width,
border_width,
@@ -560,7 +559,8 @@ MagickExport Image *MontageImageList(const ImageInfo *image_info,
/*
Determine the number of lines in an next label.
*/
- title=InterpretImageProperties(clone_info,image_list[0],montage_info->title);
+ title=InterpretImageProperties(clone_info,image_list[0],montage_info->title,
+ exception);
title_offset=0;
if (montage_info->title != (char *) NULL)
title_offset=(size_t) (2*(metrics.ascent-metrics.descent)*
diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c
index 0e179bb45..aecd19c41 100644
--- a/MagickCore/pixel.c
+++ b/MagickCore/pixel.c
@@ -1797,7 +1797,7 @@ MagickExport void GetPixelInfo(const Image *image,
% MagickBooleanType ImportImagePixels(Image *image,const ssize_t x_offset,
% const ssize_t y_offset,const size_t columns,
% const size_t rows,const char *map,const StorageType type,
-% const void *pixels)
+% const void *pixels,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -1821,15 +1821,14 @@ MagickExport void GetPixelInfo(const Image *image,
% map and type. You must preallocate this array where the expected
% length varies depending on the values of width, height, map, and type.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType ImportImagePixels(Image *image,
const ssize_t x_offset,const ssize_t y_offset,const size_t columns,
const size_t rows,const char *map,const StorageType type,
- const void *pixels)
+ const void *pixels,ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
QuantumType
*quantum_map;
@@ -1858,7 +1857,6 @@ MagickExport MagickBooleanType ImportImagePixels(Image *image,
if (quantum_map == (QuantumType *) NULL)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
- exception=(&image->exception);
for (i=0; i < (ssize_t) length; i++)
{
switch (map[i])
diff --git a/MagickCore/pixel.h b/MagickCore/pixel.h
index 08ef29db2..59715fcfa 100644
--- a/MagickCore/pixel.h
+++ b/MagickCore/pixel.h
@@ -147,7 +147,7 @@ extern MagickExport MagickBooleanType
ExportImagePixels(const Image *,const ssize_t,const ssize_t,const size_t,
const size_t,const char *,const StorageType,void *,ExceptionInfo *),
ImportImagePixels(Image *,const ssize_t,const ssize_t,const size_t,
- const size_t,const char *,const StorageType,const void *),
+ const size_t,const char *,const StorageType,const void *,ExceptionInfo *),
InterpolatePixelChannel(const Image *,const CacheView_ *,
const PixelChannel,const InterpolatePixelMethod,const double,const double,
double *,ExceptionInfo *),
diff --git a/MagickCore/property.c b/MagickCore/property.c
index f157ecf22..634041992 100644
--- a/MagickCore/property.c
+++ b/MagickCore/property.c
@@ -2523,7 +2523,7 @@ MagickExport char *GetNextImageProperty(const Image *image)
% The format of the InterpretImageProperties method is:
%
% char *InterpretImageProperties(const ImageInfo *image_info,Image *image,
-% const char *embed_text)
+% const char *embed_text,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -2534,9 +2534,11 @@ MagickExport char *GetNextImageProperty(const Image *image)
% o embed_text: the address of a character string containing the embedded
% formatting characters.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport char *InterpretImageProperties(const ImageInfo *image_info,
- Image *image,const char *embed_text)
+ Image *image,const char *embed_text,ExceptionInfo *exception)
{
char
filename[MaxTextExtent],
@@ -3108,7 +3110,7 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info,
/*
Image bounding box.
*/
- page=GetImageBoundingBox(image,&image->exception);
+ page=GetImageBoundingBox(image,exception);
q+=FormatLocaleString(q,MaxTextExtent,"%.20gx%.20g%+.20g%+.20g",
(double) page.width,(double) page.height,(double) page.x,(double)
page.y);
@@ -3119,7 +3121,7 @@ MagickExport char *InterpretImageProperties(const ImageInfo *image_info,
/*
Image signature.
*/
- (void) SignatureImage(image);
+ (void) SignatureImage(image,exception);
value=GetImageProperty(image,"signature");
if (value == (const char *) NULL)
break;
diff --git a/MagickCore/property.h b/MagickCore/property.h
index a67af02a2..4b8af40ff 100644
--- a/MagickCore/property.h
+++ b/MagickCore/property.h
@@ -24,7 +24,8 @@ extern "C" {
extern MagickExport char
*GetNextImageProperty(const Image *),
- *InterpretImageProperties(const ImageInfo *,Image *,const char *),
+ *InterpretImageProperties(const ImageInfo *,Image *,const char *,
+ ExceptionInfo *),
*RemoveImageProperty(Image *,const char *);
extern MagickExport const char
diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c
index c863e0cbc..cab87d9c8 100644
--- a/MagickCore/quantize.c
+++ b/MagickCore/quantize.c
@@ -328,10 +328,10 @@ static NodeInfo
*GetNodeInfo(CubeInfo *,const size_t,const size_t,NodeInfo *);
static MagickBooleanType
- AssignImageColors(Image *,CubeInfo *),
+ AssignImageColors(Image *,CubeInfo *,ExceptionInfo *),
ClassifyImageColors(CubeInfo *,const Image *,ExceptionInfo *),
DitherImage(Image *,CubeInfo *),
- SetGrayscaleImage(Image *);
+ SetGrayscaleImage(Image *,ExceptionInfo *);
static size_t
DefineImageColormap(Image *,CubeInfo *,NodeInfo *);
@@ -497,7 +497,8 @@ static inline size_t ColorToNodeId(const CubeInfo *cube_info,
return(id);
}
-static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info)
+static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info,
+ ExceptionInfo *exception)
{
#define AssignImageTag "Assign/Image"
@@ -516,7 +517,7 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info)
(IsRGBColorspace(image->colorspace) == MagickFalse) &&
(image->colorspace != CMYColorspace))
(void) TransformImageColorspace((Image *) image,RGBColorspace);
- if (AcquireImageColormap(image,cube_info->colors) == MagickFalse)
+ if (AcquireImageColormap(image,cube_info->colors,exception) == MagickFalse)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
image->colors=0;
@@ -1160,14 +1161,18 @@ static void ClosestColor(const Image *image,CubeInfo *cube_info,
%
% The format of the CompressImageColormap method is:
%
-% MagickBooleanType CompressImageColormap(Image *image)
+% MagickBooleanType CompressImageColormap(Image *image,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
-MagickExport MagickBooleanType CompressImageColormap(Image *image)
+MagickExport MagickBooleanType CompressImageColormap(Image *image,
+ ExceptionInfo *exception)
{
QuantizeInfo
quantize_info;
@@ -1181,7 +1186,7 @@ MagickExport MagickBooleanType CompressImageColormap(Image *image)
GetQuantizeInfo(&quantize_info);
quantize_info.number_colors=image->colors;
quantize_info.tree_depth=MaxTreeDepth;
- return(QuantizeImage(&quantize_info,image));
+ return(QuantizeImage(&quantize_info,image,exception));
}
/*
@@ -2265,7 +2270,7 @@ MagickExport void GetQuantizeInfo(QuantizeInfo *quantize_info)
% %
% %
% %
-% P o s t e r i z e I m a g e C h a n n e l %
+% P o s t e r i z e I m a g e %
% %
% %
% %
@@ -2277,7 +2282,7 @@ MagickExport void GetQuantizeInfo(QuantizeInfo *quantize_info)
% The format of the PosterizeImage method is:
%
% MagickBooleanType PosterizeImage(Image *image,const size_t levels,
-% const MagickBooleanType dither)
+% const MagickBooleanType dither,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -2289,6 +2294,8 @@ MagickExport void GetQuantizeInfo(QuantizeInfo *quantize_info)
% o dither: Set this integer value to something other than zero to dither
% the mapped image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
static inline ssize_t MagickRound(MagickRealType x)
@@ -2302,7 +2309,7 @@ static inline ssize_t MagickRound(MagickRealType x)
}
MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels,
- const MagickBooleanType dither)
+ const MagickBooleanType dither,ExceptionInfo *exception)
{
#define PosterizeImageTag "Posterize/Image"
#define PosterizePixel(pixel) (Quantum) (QuantumRange*(MagickRound( \
@@ -2311,9 +2318,6 @@ MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels,
CacheView
*image_view;
- ExceptionInfo
- *exception;
-
MagickBooleanType
status;
@@ -2356,7 +2360,6 @@ MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels,
*/
status=MagickTrue;
progress=0;
- exception=(&image->exception);
image_view=AcquireCacheView(image);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(dynamic,4) shared(progress,status)
@@ -2415,7 +2418,7 @@ MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels,
levels,MaxColormapSize+1);
quantize_info->dither=dither;
quantize_info->tree_depth=MaxTreeDepth;
- status=QuantizeImage(quantize_info,image);
+ status=QuantizeImage(quantize_info,image,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
return(status);
}
@@ -2594,7 +2597,7 @@ static void PruneToCubeDepth(const Image *image,CubeInfo *cube_info,
% The format of the QuantizeImage method is:
%
% MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info,
-% Image *image)
+% Image *image,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -2602,6 +2605,8 @@ static void PruneToCubeDepth(const Image *image,CubeInfo *cube_info,
%
% o image: the image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
static MagickBooleanType DirectToColormapImage(Image *image,
@@ -2624,7 +2629,7 @@ static MagickBooleanType DirectToColormapImage(Image *image,
status=MagickTrue;
number_colors=(size_t) (image->columns*image->rows);
- if (AcquireImageColormap(image,number_colors) == MagickFalse)
+ if (AcquireImageColormap(image,number_colors,exception) == MagickFalse)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
if (image->colors != number_colors)
@@ -2667,7 +2672,7 @@ static MagickBooleanType DirectToColormapImage(Image *image,
}
MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info,
- Image *image)
+ Image *image,ExceptionInfo *exception)
{
CubeInfo
*cube_info;
@@ -2694,7 +2699,7 @@ MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info,
(void) DirectToColormapImage(image,&image->exception);
if ((IsImageGray(image,&image->exception) != MagickFalse) &&
(image->matte == MagickFalse))
- (void) SetGrayscaleImage(image);
+ (void) SetGrayscaleImage(image,exception);
if ((image->storage_class == PseudoClass) &&
(image->colors <= maximum_colors))
return(MagickTrue);
@@ -2729,7 +2734,7 @@ MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info,
Reduce the number of colors in the image.
*/
ReduceImageColors(image,cube_info);
- status=AssignImageColors(image,cube_info);
+ status=AssignImageColors(image,cube_info,exception);
}
DestroyCubeInfo(cube_info);
return(status);
@@ -2754,7 +2759,7 @@ MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info,
% The format of the QuantizeImages method is:
%
% MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info,
-% Image *images)
+% Image *images,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -2762,9 +2767,11 @@ MagickExport MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info,
%
% o images: Specifies a pointer to a list of Image structures.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info,
- Image *images)
+ Image *images,ExceptionInfo *exception)
{
CubeInfo
*cube_info;
@@ -2798,7 +2805,7 @@ MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info,
/*
Handle a single image with QuantizeImage.
*/
- status=QuantizeImage(quantize_info,images);
+ status=QuantizeImage(quantize_info,images,exception);
return(status);
}
status=MagickFalse;
@@ -2859,7 +2866,7 @@ MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info,
{
progress_monitor=SetImageProgressMonitor(image,(MagickProgressMonitor)
NULL,image->client_data);
- status=AssignImageColors(image,cube_info);
+ status=AssignImageColors(image,cube_info,exception);
if (status == MagickFalse)
break;
(void) SetImageProgressMonitor(image,progress_monitor,
@@ -3031,7 +3038,7 @@ static void ReduceImageColors(const Image *image,CubeInfo *cube_info)
% The format of the RemapImage method is:
%
% MagickBooleanType RemapImage(const QuantizeInfo *quantize_info,
-% Image *image,const Image *remap_image)
+% Image *image,const Image *remap_image,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -3041,9 +3048,11 @@ static void ReduceImageColors(const Image *image,CubeInfo *cube_info)
%
% o remap_image: the reference image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType RemapImage(const QuantizeInfo *quantize_info,
- Image *image,const Image *remap_image)
+ Image *image,const Image *remap_image,ExceptionInfo *exception)
{
CubeInfo
*cube_info;
@@ -3072,7 +3081,7 @@ MagickExport MagickBooleanType RemapImage(const QuantizeInfo *quantize_info,
Classify image colors from the reference image.
*/
cube_info->quantize_info->number_colors=cube_info->colors;
- status=AssignImageColors(image,cube_info);
+ status=AssignImageColors(image,cube_info,exception);
}
DestroyCubeInfo(cube_info);
return(status);
@@ -3095,7 +3104,7 @@ MagickExport MagickBooleanType RemapImage(const QuantizeInfo *quantize_info,
% The format of the RemapImage method is:
%
% MagickBooleanType RemapImages(const QuantizeInfo *quantize_info,
-% Image *images,Image *remap_image)
+% Image *images,Image *remap_image,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -3105,9 +3114,11 @@ MagickExport MagickBooleanType RemapImage(const QuantizeInfo *quantize_info,
%
% o remap_image: the reference image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info,
- Image *images,const Image *remap_image)
+ Image *images,const Image *remap_image,ExceptionInfo *exception)
{
CubeInfo
*cube_info;
@@ -3128,7 +3139,7 @@ MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info,
/*
Create a global colormap for an image sequence.
*/
- status=QuantizeImages(quantize_info,images);
+ status=QuantizeImages(quantize_info,images,exception);
return(status);
}
/*
@@ -3139,7 +3150,7 @@ MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info,
if (cube_info == (CubeInfo *) NULL)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
- status=ClassifyImageColors(cube_info,remap_image,&image->exception);
+ status=ClassifyImageColors(cube_info,remap_image,exception);
if (status != MagickFalse)
{
/*
@@ -3149,7 +3160,7 @@ MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info,
image=images;
for ( ; image != (Image *) NULL; image=GetNextImageInList(image))
{
- status=AssignImageColors(image,cube_info);
+ status=AssignImageColors(image,cube_info,exception);
if (status == MagickFalse)
break;
}
@@ -3173,12 +3184,14 @@ MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info,
%
% The format of the SetGrayscaleImage method is:
%
-% MagickBooleanType SetGrayscaleImage(Image *image)
+% MagickBooleanType SetGrayscaleImage(Image *image,ExceptionInfo *exeption)
%
% A description of each parameter follows:
%
% o image: The image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
#if defined(__cplusplus) || defined(c_plusplus)
@@ -3205,14 +3218,12 @@ static int IntensityCompare(const void *x,const void *y)
}
#endif
-static MagickBooleanType SetGrayscaleImage(Image *image)
+static MagickBooleanType SetGrayscaleImage(Image *image,
+ ExceptionInfo *exception)
{
CacheView
*image_view;
- ExceptionInfo
- *exception;
-
MagickBooleanType
status;
@@ -3238,17 +3249,13 @@ static MagickBooleanType SetGrayscaleImage(Image *image)
image->filename);
if (image->storage_class != PseudoClass)
{
- ExceptionInfo
- *exception;
-
for (i=0; i <= (ssize_t) MaxMap; i++)
colormap_index[i]=(-1);
- if (AcquireImageColormap(image,MaxMap+1) == MagickFalse)
+ if (AcquireImageColormap(image,MaxMap+1,exception) == MagickFalse)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
image->colors=0;
status=MagickTrue;
- exception=(&image->exception);
image_view=AcquireCacheView(image);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(dynamic,4) shared(status)
@@ -3323,7 +3330,6 @@ static MagickBooleanType SetGrayscaleImage(Image *image)
image->colormap=(PixelPacket *) RelinquishMagickMemory(image->colormap);
image->colormap=colormap;
status=MagickTrue;
- exception=(&image->exception);
image_view=AcquireCacheView(image);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(dynamic,4) shared(status)
diff --git a/MagickCore/quantize.h b/MagickCore/quantize.h
index 61d6d2995..445c40d68 100644
--- a/MagickCore/quantize.h
+++ b/MagickCore/quantize.h
@@ -57,13 +57,13 @@ typedef struct _QuantizeInfo
} QuantizeInfo;
extern MagickExport MagickBooleanType
- CompressImageColormap(Image *),
+ CompressImageColormap(Image *,ExceptionInfo *),
GetImageQuantizeError(Image *),
- PosterizeImage(Image *,const size_t,const MagickBooleanType),
- QuantizeImage(const QuantizeInfo *,Image *),
- QuantizeImages(const QuantizeInfo *,Image *),
- RemapImage(const QuantizeInfo *,Image *,const Image *),
- RemapImages(const QuantizeInfo *,Image *,const Image *);
+ PosterizeImage(Image *,const size_t,const MagickBooleanType,ExceptionInfo *),
+ QuantizeImage(const QuantizeInfo *,Image *,ExceptionInfo *),
+ QuantizeImages(const QuantizeInfo *,Image *,ExceptionInfo *),
+ RemapImage(const QuantizeInfo *,Image *,const Image *,ExceptionInfo *),
+ RemapImages(const QuantizeInfo *,Image *,const Image *,ExceptionInfo *);
extern MagickExport QuantizeInfo
*AcquireQuantizeInfo(const ImageInfo *),
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index 83367a413..9f34a819e 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -2604,8 +2604,11 @@ MagickExport Image *ResizeImage(const Image *image,const size_t columns,
*/
filter_image=DestroyImage(filter_image);
resize_filter=DestroyResizeFilter(resize_filter);
- if ((status == MagickFalse) || (resize_image == (Image *) NULL))
- return((Image *) NULL);
+ if (status == MagickFalse)
+ {
+ resize_image=DestroyImage(resize_image);
+ return((Image *) NULL);
+ }
resize_image->type=image->type;
return(resize_image);
}
diff --git a/MagickCore/segment.c b/MagickCore/segment.c
index 3d66c910e..91a105532 100644
--- a/MagickCore/segment.c
+++ b/MagickCore/segment.c
@@ -218,7 +218,7 @@ static void
% MagickBooleanType Classify(Image *image,short **extrema,
% const MagickRealType cluster_threshold,
% const MagickRealType weighting_exponent,
-% const MagickBooleanType verbose)
+% const MagickBooleanType verbose,ExceptionInfo *exception)
%
% A description of each parameter follows.
%
@@ -237,10 +237,13 @@ static void
% o verbose: A value greater than zero prints detailed information about
% the identified classes.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
static MagickBooleanType Classify(Image *image,short **extrema,
const MagickRealType cluster_threshold,
- const MagickRealType weighting_exponent,const MagickBooleanType verbose)
+ const MagickRealType weighting_exponent,const MagickBooleanType verbose,
+ ExceptionInfo *exception)
{
#define SegmentImageTag "Segment/Image"
@@ -253,9 +256,6 @@ static MagickBooleanType Classify(Image *image,short **extrema,
*last_cluster,
*next_cluster;
- ExceptionInfo
- *exception;
-
ExtentPacket
blue,
green,
@@ -352,7 +352,6 @@ static MagickBooleanType Classify(Image *image,short **extrema,
status=MagickTrue;
count=0;
progress=0;
- exception=(&image->exception);
image_view=AcquireCacheView(image);
for (y=0; y < (ssize_t) image->rows; y++)
{
@@ -512,7 +511,7 @@ static MagickBooleanType Classify(Image *image,short **extrema,
/*
Allocate image colormap.
*/
- if (AcquireImageColormap(image,number_clusters) == MagickFalse)
+ if (AcquireImageColormap(image,number_clusters,exception) == MagickFalse)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
i=0;
@@ -1768,7 +1767,8 @@ static void ScaleSpace(const ssize_t *histogram,const MagickRealType tau,
%
% MagickBooleanType SegmentImage(Image *image,
% const ColorspaceType colorspace,const MagickBooleanType verbose,
-% const double cluster_threshold,const double smooth_threshold)
+% const double cluster_threshold,const double smooth_threshold,
+% ExceptionInfo *exception)
%
% A description of each parameter follows.
%
@@ -1787,10 +1787,13 @@ static void ScaleSpace(const ssize_t *histogram,const MagickRealType tau,
% derivative of the histogram. As the value is increased, you can expect a
% smoother second derivative.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
MagickExport MagickBooleanType SegmentImage(Image *image,
const ColorspaceType colorspace,const MagickBooleanType verbose,
- const double cluster_threshold,const double smooth_threshold)
+ const double cluster_threshold,const double smooth_threshold,
+ ExceptionInfo *exception)
{
MagickBooleanType
status;
@@ -1841,7 +1844,8 @@ MagickExport MagickBooleanType SegmentImage(Image *image,
/*
Classify using the fuzzy c-Means technique.
*/
- status=Classify(image,extrema,cluster_threshold,WeightingExponent,verbose);
+ status=Classify(image,extrema,cluster_threshold,WeightingExponent,verbose,
+ exception);
if (IsRGBColorspace(colorspace) == MagickFalse)
(void) TransformImageColorspace(image,colorspace);
/*
diff --git a/MagickCore/segment.h b/MagickCore/segment.h
index 06314daf9..d9bb2c685 100644
--- a/MagickCore/segment.h
+++ b/MagickCore/segment.h
@@ -26,7 +26,7 @@ extern MagickExport MagickBooleanType
GetImageDynamicThreshold(const Image *,const double,const double,
PixelInfo *,ExceptionInfo *),
SegmentImage(Image *,const ColorspaceType,const MagickBooleanType,
- const double,const double);
+ const double,const double,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
diff --git a/MagickCore/signature-private.h b/MagickCore/signature-private.h
index 2171e17fc..d7001dd38 100644
--- a/MagickCore/signature-private.h
+++ b/MagickCore/signature-private.h
@@ -30,7 +30,7 @@ typedef struct _SignatureInfo
SignatureInfo;
extern MagickExport MagickBooleanType
- SignatureImage(Image *);
+ SignatureImage(Image *,ExceptionInfo *exception);
extern MagickExport SignatureInfo
*AcquireSignatureInfo(void),
diff --git a/MagickCore/signature.c b/MagickCore/signature.c
index 52345bbf7..8a0b2b8bc 100644
--- a/MagickCore/signature.c
+++ b/MagickCore/signature.c
@@ -458,14 +458,17 @@ MagickExport void SetSignatureDigest(SignatureInfo *signature_info,
%
% The format of the SignatureImage method is:
%
-% MagickBooleanType SignatureImage(Image *image)
+% MagickBooleanType SignatureImage(Image *image,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
-MagickExport MagickBooleanType SignatureImage(Image *image)
+MagickExport MagickBooleanType SignatureImage(Image *image,
+ ExceptionInfo *exception)
{
CacheView
*image_view;
@@ -473,9 +476,6 @@ MagickExport MagickBooleanType SignatureImage(Image *image)
char
*hex_signature;
- ExceptionInfo
- *exception;
-
QuantumInfo
*quantum_info;
@@ -523,7 +523,6 @@ MagickExport MagickBooleanType SignatureImage(Image *image)
signature_info=AcquireSignatureInfo();
signature=AcquireStringInfo(quantum_info->extent);
pixels=GetQuantumPixels(quantum_info);
- exception=(&image->exception);
image_view=AcquireCacheView(image);
for (y=0; y < (ssize_t) image->rows; y++)
{
diff --git a/MagickCore/signature.h b/MagickCore/signature.h
index 6f59e3844..976c4636b 100644
--- a/MagickCore/signature.h
+++ b/MagickCore/signature.h
@@ -23,7 +23,7 @@ extern "C" {
#endif
extern MagickExport MagickBooleanType
- SignatureImage(Image *);
+ SignatureImage(Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index 4c73de713..69f9de508 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -1541,7 +1541,7 @@ MagickExport MagickBooleanType RandomThresholdImage(Image *image,
progress=0;
if (image->sync != MagickFalse)
{
- if (AcquireImageColormap(image,2) == MagickFalse)
+ if (AcquireImageColormap(image,2,exception) == MagickFalse)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
random_info=AcquireRandomInfoThreadSet();
diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c
index 4304c161f..395022cb6 100644
--- a/MagickCore/xwindow.c
+++ b/MagickCore/xwindow.c
@@ -4445,7 +4445,7 @@ static Image *XGetWindowImage(Display *display,const Window window,
/*
Create colormap.
*/
- if (AcquireImageColormap(composite_image,number_colors) == MagickFalse)
+ if (AcquireImageColormap(composite_image,number_colors,exception) == MagickFalse)
{
XDestroyImage(ximage);
composite_image=DestroyImage(composite_image);
@@ -7803,7 +7803,7 @@ MagickPrivate void XMakeStandardColormap(Display *display,
}
(void) SyncAuthenticPixels(affinity_image,exception);
(void) RemapImage(resource_info->quantize_info,image,
- affinity_image);
+ affinity_image,exception);
}
XGetPixelInfo(display,visual_info,map_info,resource_info,image,
pixel);
@@ -7838,7 +7838,7 @@ MagickPrivate void XMakeStandardColormap(Display *display,
*/
quantize_info=(*resource_info->quantize_info);
quantize_info.number_colors=(size_t) visual_info->colormap_size;
- (void) QuantizeImage(&quantize_info,image);
+ (void) QuantizeImage(&quantize_info,image,exception);
}
/*
Free previous and create new colormap.
diff --git a/MagickWand/compare.c b/MagickWand/compare.c
index 15c7f93f3..803a17a47 100644
--- a/MagickWand/compare.c
+++ b/MagickWand/compare.c
@@ -992,7 +992,7 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
else
{
if (image_info->verbose != MagickFalse)
- (void) IsImagesEqual(image,reconstruct_image);
+ (void) IsImagesEqual(image,reconstruct_image,exception);
if (*difference_image->magick == '\0')
(void) CopyMagickString(difference_image->magick,image->magick,
MaxTextExtent);
@@ -1191,7 +1191,8 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
char
*text;
- text=InterpretImageProperties(image_info,difference_image,format);
+ text=InterpretImageProperties(image_info,difference_image,format,
+ exception);
if (text == (char *) NULL)
ThrowCompareException(ResourceLimitError,"MemoryAllocationFailed",
GetExceptionMessage(errno));
diff --git a/MagickWand/composite.c b/MagickWand/composite.c
index 329abca23..d7f08f048 100644
--- a/MagickWand/composite.c
+++ b/MagickWand/composite.c
@@ -1665,7 +1665,7 @@ WandExport MagickBooleanType CompositeImageCommand(ImageInfo *image_info,
char
*text;
- text=InterpretImageProperties(image_info,images,format);
+ text=InterpretImageProperties(image_info,images,format,exception);
if (text == (char *) NULL)
ThrowCompositeException(ResourceLimitError,"MemoryAllocationFailed",
GetExceptionMessage(errno));
diff --git a/MagickWand/convert.c b/MagickWand/convert.c
index b75b6174e..8f5c9a974 100644
--- a/MagickWand/convert.c
+++ b/MagickWand/convert.c
@@ -3025,7 +3025,7 @@ WandExport MagickBooleanType ConvertImageCommand(ImageInfo *image_info,
char
*text;
- text=InterpretImageProperties(image_info,image,format);
+ text=InterpretImageProperties(image_info,image,format,exception);
if (text == (char *) NULL)
ThrowConvertException(ResourceLimitError,"MemoryAllocationFailed",
GetExceptionMessage(errno));
diff --git a/MagickWand/drawing-wand.c b/MagickWand/drawing-wand.c
index bba8c55b4..26a7ebe95 100644
--- a/MagickWand/drawing-wand.c
+++ b/MagickWand/drawing-wand.c
@@ -4300,8 +4300,7 @@ WandExport MagickBooleanType DrawRender(DrawingWand *wand)
(void) LogMagickEvent(DrawEvent,GetMagickModule(),"MVG:\n'%s'\n",wand->mvg);
if (wand->image == (Image *) NULL)
ThrowDrawException(WandError,"ContainsNoImages",wand->name);
- status=DrawImage(wand->image,CurrentContext);
- InheritException(wand->exception,&wand->image->exception);
+ status=DrawImage(wand->image,CurrentContext,wand->exception);
CurrentContext->primitive=(char *) NULL;
return(status);
}
diff --git a/MagickWand/identify.c b/MagickWand/identify.c
index be8aacf0a..df1c07172 100644
--- a/MagickWand/identify.c
+++ b/MagickWand/identify.c
@@ -338,7 +338,7 @@ WandExport MagickBooleanType IdentifyImageCommand(ImageInfo *image_info,
char
*text;
- text=InterpretImageProperties(image_info,image,format);
+ text=InterpretImageProperties(image_info,image,format,exception);
if (text == (char *) NULL)
ThrowIdentifyException(ResourceLimitError,
"MemoryAllocationFailed",GetExceptionMessage(errno));
diff --git a/MagickWand/magick-image.c b/MagickWand/magick-image.c
index 4fe769a49..20abc98ab 100644
--- a/MagickWand/magick-image.c
+++ b/MagickWand/magick-image.c
@@ -1204,9 +1204,7 @@ WandExport MagickBooleanType MagickClipImage(MagickWand *wand)
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
- status=ClipImage(wand->images);
- if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
+ status=ClipImage(wand->images,wand->exception);
return(status);
}
@@ -1254,9 +1252,7 @@ WandExport MagickBooleanType MagickClipImagePath(MagickWand *wand,
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
- status=ClipImagePath(wand->images,pathname,inside);
- if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
+ status=ClipImagePath(wand->images,pathname,inside,wand->exception);
return(status);
}
@@ -1995,9 +1991,7 @@ WandExport MagickBooleanType MagickCycleColormapImage(MagickWand *wand,
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
- status=CycleColormapImage(wand->images,displace);
- if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
+ status=CycleColormapImage(wand->images,displace,wand->exception);
return(status);
}
@@ -2486,9 +2480,7 @@ WandExport MagickBooleanType MagickDrawImage(MagickWand *wand,
draw_info=DestroyDrawInfo(draw_info);
draw_info=CloneDrawInfo(wand->image_info,(DrawInfo *) NULL);
draw_info->primitive=primitive;
- status=DrawImage(wand->images,draw_info);
- if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
+ status=DrawImage(wand->images,draw_info,wand->exception);
draw_info=DestroyDrawInfo(draw_info);
return(status);
}
@@ -5273,14 +5265,13 @@ WandExport char *MagickGetImageSignature(MagickWand *wand)
"ContainsNoImages","`%s'",wand->name);
return((char *) NULL);
}
- status=SignatureImage(wand->images);
+ status=SignatureImage(wand->images,wand->exception);
if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
+ return((char *) NULL);
value=GetImageProperty(wand->images,"signature");
- if (value != (const char *) NULL)
- return(AcquireString(value));
- InheritException(wand->exception,&wand->images->exception);
- return((char *) NULL);
+ if (value == (const char *) NULL)
+ return((char *) NULL);
+ return(AcquireString(value));
}
/*
@@ -5858,9 +5849,8 @@ WandExport MagickBooleanType MagickImplodeImage(MagickWand *wand,
%
*/
WandExport MagickBooleanType MagickImportImagePixels(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)
+ 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)
{
MagickBooleanType
status;
@@ -5871,9 +5861,8 @@ WandExport MagickBooleanType MagickImportImagePixels(MagickWand *wand,
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
- status=ImportImagePixels(wand->images,x,y,columns,rows,map,storage,pixels);
- if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
+ status=ImportImagePixels(wand->images,x,y,columns,rows,map,storage,pixels,
+ wand->exception);
return(status);
}
@@ -7239,9 +7228,7 @@ WandExport MagickBooleanType MagickPosterizeImage(MagickWand *wand,
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
- status=PosterizeImage(wand->images,levels,dither);
- if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
+ status=PosterizeImage(wand->images,levels,dither,wand->exception);
return(status);
}
@@ -7410,9 +7397,7 @@ WandExport MagickBooleanType MagickQuantizeImage(MagickWand *wand,
quantize_info->tree_depth=treedepth;
quantize_info->colorspace=colorspace;
quantize_info->measure_error=measure_error;
- status=QuantizeImage(quantize_info,wand->images);
- if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
+ status=QuantizeImage(quantize_info,wand->images,wand->exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
return(status);
}
@@ -7491,9 +7476,7 @@ WandExport MagickBooleanType MagickQuantizeImages(MagickWand *wand,
quantize_info->tree_depth=treedepth;
quantize_info->colorspace=colorspace;
quantize_info->measure_error=measure_error;
- status=QuantizeImages(quantize_info,wand->images);
- if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
+ status=QuantizeImages(quantize_info,wand->images,wand->exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
return(status);
}
@@ -7838,10 +7821,9 @@ WandExport MagickBooleanType MagickRemapImage(MagickWand *wand,
quantize_info->dither_method=method;
if (method == NoDitherMethod)
quantize_info->dither=MagickFalse;
- status=RemapImage(quantize_info,wand->images,remap_wand->images);
+ status=RemapImage(quantize_info,wand->images,remap_wand->images,
+ wand->exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
- if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
return(status);
}
@@ -8296,9 +8278,7 @@ MagickExport MagickBooleanType MagickSegmentImage(MagickWand *wand,
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
status=SegmentImage(wand->images,colorspace,verbose,cluster_threshold,
- smooth_threshold);
- if (status == MagickFalse)
- InheritException(wand->exception,&wand->images->exception);
+ smooth_threshold,wand->exception);
return(status);
}
@@ -8726,7 +8706,7 @@ WandExport MagickBooleanType MagickSetImageClipMask(MagickWand *wand,
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",clip_mask->name);
if (clip_mask->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
- return(SetImageClipMask(wand->images,clip_mask->images));
+ return(SetImageClipMask(wand->images,clip_mask->images,wand->exception));
}
/*
@@ -9994,7 +9974,7 @@ WandExport MagickBooleanType MagickSetImageType(MagickWand *wand,
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
- return(SetImageType(wand->images,image_type));
+ return(SetImageType(wand->images,image_type,wand->exception));
}
/*
diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 4acb036fc..e6a1ddea9 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -772,8 +772,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
flags=ParseGeometry(argv[i+1],&geometry_info);
if ((flags & SigmaValue) == 0)
geometry_info.sigma=geometry_info.rho;
- text=InterpretImageProperties(mogrify_info,*image,argv[i+2]);
- InheritException(exception,&(*image)->exception);
+ text=InterpretImageProperties(mogrify_info,*image,argv[i+2],
+ exception);
if (text == (char *) NULL)
break;
(void) CloneString(&draw_info->text,text);
@@ -1028,12 +1028,10 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
(void) SyncImageSettings(mogrify_info,*image);
if (*option == '+')
{
- (void) SetImageClipMask(*image,(Image *) NULL);
- InheritException(exception,&(*image)->exception);
+ (void) SetImageClipMask(*image,(Image *) NULL,exception);
break;
}
- (void) ClipImage(*image);
- InheritException(exception,&(*image)->exception);
+ (void) ClipImage(*image,exception);
break;
}
if (LocaleCompare("clip-mask",option+1) == 0)
@@ -1059,8 +1057,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
/*
Remove a mask.
*/
- (void) SetImageMask(*image,(Image *) NULL);
- InheritException(exception,&(*image)->exception);
+ (void) SetImageMask(*image,(Image *) NULL,exception);
break;
}
/*
@@ -1093,8 +1090,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
}
mask_view=DestroyCacheView(mask_view);
mask_image->matte=MagickTrue;
- (void) SetImageClipMask(*image,mask_image);
- mask_image=DestroyImage(mask_image);
+ (void) SetImageClipMask(*image,mask_image,exception);
InheritException(exception,&(*image)->exception);
break;
}
@@ -1102,8 +1098,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
{
(void) SyncImageSettings(mogrify_info,*image);
(void) ClipImagePath(*image,argv[i+1],*option == '-' ? MagickTrue :
- MagickFalse);
- InheritException(exception,&(*image)->exception);
+ MagickFalse,exception);
break;
}
if (LocaleCompare("colorize",option+1) == 0)
@@ -1140,10 +1135,9 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
break;
if (((*image)->storage_class == DirectClass) ||
(*image)->colors > quantize_info->number_colors)
- (void) QuantizeImage(quantize_info,*image);
+ (void) QuantizeImage(quantize_info,*image,exception);
else
- (void) CompressImageColormap(*image);
- InheritException(exception,&(*image)->exception);
+ (void) CompressImageColormap(*image,exception);
break;
}
if (LocaleCompare("colorspace",option+1) == 0)
@@ -1229,8 +1223,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
Cycle an image colormap.
*/
(void) SyncImageSettings(mogrify_info,*image);
- (void) CycleColormapImage(*image,(ssize_t) StringToLong(argv[i+1]));
- InheritException(exception,&(*image)->exception);
+ (void) CycleColormapImage(*image,(ssize_t) StringToLong(argv[i+1]),
+ exception);
break;
}
break;
@@ -1345,8 +1339,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
resize_args,MagickTrue,exception);
break;
}
- args=InterpretImageProperties(mogrify_info,*image,argv[i+2]);
- InheritException(exception,&(*image)->exception);
+ args=InterpretImageProperties(mogrify_info,*image,argv[i+2],
+ exception);
if (args == (char *) NULL)
break;
p=(char *) args;
@@ -1399,8 +1393,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
*/
(void) SyncImageSettings(mogrify_info,*image);
(void) CloneString(&draw_info->primitive,argv[i+1]);
- (void) DrawImage(*image,draw_info);
- InheritException(exception,&(*image)->exception);
+ (void) DrawImage(*image,draw_info,exception);
break;
}
break;
@@ -1648,8 +1641,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
(void) SyncImageSettings(mogrify_info,*image);
function=(MagickFunction) ParseCommandOption(MagickFunctionOptions,
MagickFalse,argv[i+1]);
- arguments=InterpretImageProperties(mogrify_info,*image,argv[i+2]);
- InheritException(exception,&(*image)->exception);
+ arguments=InterpretImageProperties(mogrify_info,*image,argv[i+2],
+ exception);
if (arguments == (char *) NULL)
break;
p=(char *) arguments;
@@ -1768,8 +1761,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
exception);
break;
}
- text=InterpretImageProperties(mogrify_info,*image,format);
- InheritException(exception,&(*image)->exception);
+ text=InterpretImageProperties(mogrify_info,*image,format,
+ exception);
if (text == (char *) NULL)
break;
(void) fputs(text,stdout);
@@ -1980,8 +1973,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
remap_image=GetImageCache(mogrify_info,argv[i+1],exception);
if (remap_image == (Image *) NULL)
break;
- (void) RemapImage(quantize_info,*image,remap_image);
- InheritException(exception,&(*image)->exception);
+ (void) RemapImage(quantize_info,*image,remap_image,exception);
remap_image=DestroyImage(remap_image);
break;
}
@@ -1996,8 +1988,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
/*
Remove a mask.
*/
- (void) SetImageMask(*image,(Image *) NULL);
- InheritException(exception,&(*image)->exception);
+ (void) SetImageMask(*image,(Image *) NULL,exception);
break;
}
/*
@@ -2006,9 +1997,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
mask=GetImageCache(mogrify_info,argv[i+1],exception);
if (mask == (Image *) NULL)
break;
- (void) SetImageMask(*image,mask);
+ (void) SetImageMask(*image,mask,exception);
mask=DestroyImage(mask);
- InheritException(exception,&(*image)->exception);
break;
}
if (LocaleCompare("matte",option+1) == 0)
@@ -2060,8 +2050,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
if (LocaleCompare("monochrome",option+1) == 0)
{
(void) SyncImageSettings(mogrify_info,*image);
- (void) SetImageType(*image,BilevelType);
- InheritException(exception,&(*image)->exception);
+ (void) SetImageType(*image,BilevelType,exception);
break;
}
if (LocaleCompare("morphology",option+1) == 0)
@@ -2241,8 +2230,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
*/
(void) SyncImageSettings(mogrify_info,*image);
(void) PosterizeImage(*image,StringToUnsignedLong(argv[i+1]),
- quantize_info->dither);
- InheritException(exception,&(*image)->exception);
+ quantize_info->dither,exception);
break;
}
if (LocaleCompare("preview",option+1) == 0)
@@ -2442,8 +2430,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
remap_image=GetImageCache(mogrify_info,argv[i+1],exception);
if (remap_image == (Image *) NULL)
break;
- (void) RemapImage(quantize_info,*image,remap_image);
- InheritException(exception,&(*image)->exception);
+ (void) RemapImage(quantize_info,*image,remap_image,exception);
remap_image=DestroyImage(remap_image);
break;
}
@@ -2589,8 +2576,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
if ((flags & SigmaValue) == 0)
geometry_info.sigma=1.0;
(void) SegmentImage(*image,(*image)->colorspace,
- mogrify_info->verbose,geometry_info.rho,geometry_info.sigma);
- InheritException(exception,&(*image)->exception);
+ mogrify_info->verbose,geometry_info.rho,geometry_info.sigma,
+ exception);
break;
}
if (LocaleCompare("set",option+1) == 0)
@@ -2615,7 +2602,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
(void) DeleteImageProperty(*image,argv[i+1]);
break;
}
- value=InterpretImageProperties(mogrify_info,*image,argv[i+2]);
+ value=InterpretImageProperties(mogrify_info,*image,argv[i+2],
+ exception);
if (value == (char *) NULL)
break;
if (LocaleNCompare(argv[i+1],"registry:",9) == 0)
@@ -2754,8 +2742,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
(void) SyncImageSettings(mogrify_info,*image);
method=(SparseColorMethod) ParseCommandOption(
MagickSparseColorOptions,MagickFalse,argv[i+1]);
- arguments=InterpretImageProperties(mogrify_info,*image,argv[i+2]);
- InheritException(exception,&(*image)->exception);
+ arguments=InterpretImageProperties(mogrify_info,*image,argv[i+2],
+ exception);
if (arguments == (char *) NULL)
break;
mogrify_image=SparseColorOption(*image,method,arguments,
@@ -2984,8 +2972,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
type=(ImageType) ParseCommandOption(MagickTypeOptions,MagickFalse,
argv[i+1]);
(*image)->type=UndefinedType;
- (void) SetImageType(*image,type);
- InheritException(exception,&(*image)->exception);
+ (void) SetImageType(*image,type,exception);
break;
}
break;
@@ -3680,7 +3667,7 @@ WandExport MagickBooleanType MogrifyImageCommand(ImageInfo *image_info,
*quantize_info;
quantize_info=AcquireQuantizeInfo(image_info);
- (void) RemapImages(quantize_info,images,(Image *) NULL);
+ (void) RemapImages(quantize_info,images,(Image *) NULL,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
}
*backup_filename='\0';
@@ -7261,8 +7248,8 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
(void) SyncImagesSettings(mogrify_info,*images);
if (*option == '+')
{
- (void) RemapImages(quantize_info,*images,(Image *) NULL);
- InheritException(exception,&(*images)->exception);
+ (void) RemapImages(quantize_info,*images,(Image *) NULL,
+ exception);
break;
}
i++;
@@ -7773,7 +7760,6 @@ This has been merged completely into MogrifyImage()
status=MagickFalse;
break;
}
- InheritException(exception,&layers->exception);
*images=DestroyImageList(*images);
*images=layers;
layers=OptimizeImageLayers(*images,exception);
@@ -7782,13 +7768,12 @@ This has been merged completely into MogrifyImage()
status=MagickFalse;
break;
}
- InheritException(exception,&layers->exception);
*images=DestroyImageList(*images);
*images=layers;
layers=(Image *) NULL;
OptimizeImageTransparency(*images,exception);
- InheritException(exception,&(*images)->exception);
- (void) RemapImages(quantize_info,*images,(Image *) NULL);
+ (void) RemapImages(quantize_info,*images,(Image *) NULL,
+ exception);
break;
}
case CompositeLayer:
@@ -7874,8 +7859,8 @@ This has been merged completely into MogrifyImage()
(void) SyncImagesSettings(mogrify_info,*images);
if (*option == '+')
{
- (void) RemapImages(quantize_info,*images,(Image *) NULL);
- InheritException(exception,&(*images)->exception);
+ (void) RemapImages(quantize_info,*images,(Image *) NULL,
+ exception);
break;
}
i++;
@@ -7962,10 +7947,10 @@ This has been merged completely into MogrifyImage()
*string;
(void) SyncImagesSettings(mogrify_info,*images);
- string=InterpretImageProperties(mogrify_info,*images,argv[i+1]);
+ string=InterpretImageProperties(mogrify_info,*images,argv[i+1],
+ exception);
if (string == (char *) NULL)
break;
- InheritException(exception,&(*images)->exception);
(void) FormatLocaleFile(stdout,"%s",string);
string=DestroyString(string);
}
diff --git a/MagickWand/montage.c b/MagickWand/montage.c
index bd9fe71f2..f9efed0ef 100644
--- a/MagickWand/montage.c
+++ b/MagickWand/montage.c
@@ -1774,7 +1774,8 @@ WandExport MagickBooleanType MontageImageCommand(ImageInfo *image_info,
char
*text;
- text=InterpretImageProperties(image_info,montage_image,format);
+ text=InterpretImageProperties(image_info,montage_image,format,
+ exception);
if (text == (char *) NULL)
ThrowMontageException(ResourceLimitError,"MemoryAllocationFailed",
GetExceptionMessage(errno));
diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs
index 327e67366..c5b907e94 100644
--- a/PerlMagick/Magick.xs
+++ b/PerlMagick/Magick.xs
@@ -48,10 +48,6 @@
/*
Include declarations.
*/
-#if !defined(WIN32)
-#define MagickExport
-#endif
-
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
@@ -1222,7 +1218,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image,
if (SvPOK(sval))
clip_mask=SetupList(aTHX_ SvRV(sval),&info,(SV ***) NULL,exception);
for ( ; image; image=image->next)
- SetImageClipMask(image,clip_mask);
+ SetImageClipMask(image,clip_mask,exception);
break;
}
if (LocaleNCompare(attribute,"colormap",8) == 0)
@@ -1281,7 +1277,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image,
for ( ; image; image=image->next)
(void) SetImageProperty(image,"Comment",InterpretImageProperties(
info ? info->image_info : (ImageInfo *) NULL,image,
- SvPV(sval,na)));
+ SvPV(sval,na),exception));
break;
}
if (LocaleCompare(attribute,"compression") == 0)
@@ -1628,7 +1624,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image,
for ( ; image; image=image->next)
(void) SetImageProperty(image,"label",InterpretImageProperties(
info ? info->image_info : (ImageInfo *) NULL,image,
- SvPV(sval,na)));
+ SvPV(sval,na),exception));
break;
}
if (LocaleCompare(attribute,"loop") == 0)
@@ -1671,7 +1667,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image,
if (SvPOK(sval))
mask=SetupList(aTHX_ SvRV(sval),&info,(SV ***) NULL,exception);
for ( ; image; image=image->next)
- SetImageMask(image,mask);
+ SetImageMask(image,mask,exception);
break;
}
if (LocaleCompare(attribute,"mattecolor") == 0)
@@ -1721,7 +1717,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image,
if (info)
info->image_info->monochrome=sp != 0 ? MagickTrue : MagickFalse;
for ( ; image; image=image->next)
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
break;
}
if (info)
@@ -2077,7 +2073,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image,
if (info)
info->image_info->type=(ImageType) sp;
for ( ; image; image=image->next)
- SetImageType(image,(ImageType) sp);
+ SetImageType(image,(ImageType) sp,exception);
break;
}
if (info)
@@ -4416,7 +4412,7 @@ Get(ref,...)
sv=NULL;
if (image->mask == (Image *) NULL)
- ClipImage(image);
+ ClipImage(image,exception);
if (image->mask != (Image *) NULL)
{
AddImageToRegistry(sv,image->mask);
@@ -4435,7 +4431,7 @@ Get(ref,...)
sv=NULL;
if (image->clip_mask == (Image *) NULL)
- ClipImage(image);
+ ClipImage(image,exception);
if (image->clip_mask != (Image *) NULL)
{
AddImageToRegistry(sv,image->clip_mask);
@@ -5231,7 +5227,7 @@ Get(ref,...)
if (image == (Image *) NULL)
break;
- (void) SignatureImage(image);
+ (void) SignatureImage(image,exception);
value=GetImageProperty(image,"Signature");
if (value != (const char *) NULL)
s=newSVpv(value,0);
@@ -5441,7 +5437,7 @@ Get(ref,...)
*meta;
meta=InterpretImageProperties(info ? info->image_info :
- (ImageInfo *) NULL,image,attribute);
+ (ImageInfo *) NULL,image,attribute,exception);
s=newSVpv(meta,0);
PUSHs(s ? sv_2mortal(s) : &sv_undef);
meta=(char *) RelinquishMagickMemory(meta);
@@ -6784,7 +6780,7 @@ Layers(ref,...)
OptimizeImageTransparency(image,exception);
InheritException(&(image->exception),exception);
quantize_info=AcquireQuantizeInfo(info->image_info);
- (void) RemapImages(quantize_info,image,(Image *) NULL);
+ (void) RemapImages(quantize_info,image,(Image *) NULL,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
break;
}
@@ -7473,7 +7469,7 @@ Mogrify(ref,...)
argument_list[0].string_reference=(char *) NULL;
(void) SetImageProperty(image,"comment",InterpretImageProperties(
info ? info->image_info : (ImageInfo *) NULL,image,
- argument_list[0].string_reference));
+ argument_list[0].string_reference,exception));
break;
}
case 2: /* Label */
@@ -7482,7 +7478,7 @@ Mogrify(ref,...)
argument_list[0].string_reference=(char *) NULL;
(void) SetImageProperty(image,"label",InterpretImageProperties(
info ? info->image_info : (ImageInfo *) NULL,image,
- argument_list[0].string_reference));
+ argument_list[0].string_reference,exception));
break;
}
case 3: /* AddNoise */
@@ -7928,7 +7924,8 @@ Mogrify(ref,...)
*text;
text=InterpretImageProperties(info ? info->image_info :
- (ImageInfo *) NULL,image,argument_list[0].string_reference);
+ (ImageInfo *) NULL,image,argument_list[0].string_reference,
+ exception);
(void) CloneString(&draw_info->text,text);
text=DestroyString(text);
}
@@ -8394,7 +8391,8 @@ Mogrify(ref,...)
{
if (attribute_flag[0] == 0)
argument_list[0].integer_reference=6;
- (void) CycleColormapImage(image,argument_list[0].integer_reference);
+ (void) CycleColormapImage(image,argument_list[0].integer_reference,
+ exception);
break;
}
case 38: /* Draw */
@@ -8634,7 +8632,7 @@ Mogrify(ref,...)
if (attribute_flag[32] != 0)
draw_info->direction=(DirectionType)
argument_list[32].integer_reference;
- DrawImage(image,draw_info);
+ DrawImage(image,draw_info,exception);
draw_info=DestroyDrawInfo(draw_info);
break;
}
@@ -8688,7 +8686,7 @@ Mogrify(ref,...)
quantize_info->dither_method=(DitherMethod)
argument_list[2].integer_reference;
(void) RemapImages(quantize_info,image,
- argument_list[0].image_reference);
+ argument_list[0].image_reference,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
break;
}
@@ -8854,7 +8852,7 @@ Mogrify(ref,...)
&image->transparent_color,exception);
if (attribute_flag[5] && argument_list[5].integer_reference)
{
- (void) QuantizeImages(quantize_info,image);
+ (void) QuantizeImages(quantize_info,image,exception);
goto PerlException;
}
if (attribute_flag[6] != 0)
@@ -8863,9 +8861,9 @@ Mogrify(ref,...)
if ((image->storage_class == DirectClass) ||
(image->colors > quantize_info->number_colors) ||
(quantize_info->colorspace == GRAYColorspace))
- (void) QuantizeImage(quantize_info,image);
+ (void) QuantizeImage(quantize_info,image,exception);
else
- CompressImageColormap(image);
+ CompressImageColormap(image,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
break;
}
@@ -8919,12 +8917,12 @@ Mogrify(ref,...)
verbose=argument_list[4].integer_reference != 0 ?
MagickTrue : MagickFalse;
(void) SegmentImage(image,colorspace,verbose,cluster_threshold,
- smoothing_threshold);
+ smoothing_threshold,exception);
break;
}
case 51: /* Signature */
{
- (void) SignatureImage(image);
+ (void) SignatureImage(image,exception);
break;
}
case 52: /* Solarize */
@@ -9386,7 +9384,8 @@ Mogrify(ref,...)
if (attribute_flag[1] == 0)
argument_list[1].integer_reference=MagickTrue;
(void) ClipImagePath(image,argument_list[0].string_reference,
- argument_list[1].integer_reference != 0 ? MagickTrue : MagickFalse);
+ argument_list[1].integer_reference != 0 ? MagickTrue : MagickFalse,
+ exception);
break;
}
case 75: /* AffineTransform */
@@ -9519,7 +9518,8 @@ Mogrify(ref,...)
if (attribute_flag[1] != 0)
image->fuzz=SiPrefixToDouble(argument_list[1].string_reference,
QuantumRange);
- (void) IsImagesEqual(image,argument_list[0].image_reference);
+ (void) IsImagesEqual(image,argument_list[0].image_reference,
+ exception);
break;
}
case 77: /* AdaptiveThreshold */
@@ -9705,7 +9705,8 @@ Mogrify(ref,...)
if (attribute_flag[1] == 0)
argument_list[1].integer_reference=0;
(void) PosterizeImage(image,argument_list[0].integer_reference,
- argument_list[1].integer_reference ? MagickTrue : MagickFalse);
+ argument_list[1].integer_reference ? MagickTrue : MagickFalse,
+ exception);
break;
}
case 89: /* Shadow */
@@ -10103,7 +10104,7 @@ Mogrify(ref,...)
if (attribute_flag[0] != 0)
(void) SetImageProperty(image,"caption",InterpretImageProperties(
info ? info->image_info : (ImageInfo *) NULL,image,
- argument_list[0].string_reference));
+ argument_list[0].string_reference,exception));
angle=0.0;
if (attribute_flag[1] != 0)
angle=argument_list[1].real_reference;
@@ -10294,7 +10295,7 @@ Mogrify(ref,...)
quantize_info->dither_method=(DitherMethod)
argument_list[2].integer_reference;
(void) RemapImages(quantize_info,image,
- argument_list[0].image_reference);
+ argument_list[0].image_reference,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
break;
}
@@ -10956,7 +10957,7 @@ Montage(ref,...)
for (next=image; next; next=next->next)
(void) SetImageProperty(next,"label",InterpretImageProperties(
info ? info->image_info : (ImageInfo *) NULL,next,
- SvPV(ST(i),na)));
+ SvPV(ST(i),na),exception));
break;
}
ThrowPerlException(exception,OptionError,"UnrecognizedAttribute",
diff --git a/PerlMagick/t/composite.t b/PerlMagick/t/composite.t
index fa1fc3908..a74a4896e 100644
--- a/PerlMagick/t/composite.t
+++ b/PerlMagick/t/composite.t
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-20.3 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
@@ -27,22 +27,22 @@ chdir 't' || die 'Cd failed';
#
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'ModulusAdd'/,
- 'reference/composite/Add.miff', 0.1, 1.03);
+ 'reference/composite/Add.miff', 0.3, 1.03);
#
# Atop
#
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'Atop'/,
- 'reference/composite/Atop.miff', 0.1, 1.03);
+ 'reference/composite/Atop.miff', 0.3, 1.03);
#
# Bumpmap
#
++$test;
-testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
+testCompositeCompare('gradient:white-black',q/size=>"70x46"/,
'input.miff', q//,q/, gravity=>'Center', compose=>'Bumpmap'/,
- 'reference/composite/Bumpmap.miff', 0.1, 1.03);
+ 'reference/composite/Bumpmap.miff', 0.3, 1.03);
#
# Clear
@@ -58,7 +58,7 @@ testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'Copy'/,
- 'reference/composite/Copy.miff', 0.1, 1.03);
+ 'reference/composite/Copy.miff', 0.3, 1.03);
#
# CopyBlue
@@ -66,7 +66,7 @@ testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'CopyBlue'/,
- 'reference/composite/CopyBlue.miff', 0.1, 1.03);
+ 'reference/composite/CopyBlue.miff', 0.3, 1.03);
#
# CopyGreen
@@ -74,7 +74,7 @@ testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'CopyGreen'/,
- 'reference/composite/CopyGreen.miff', 0.1, 1.03);
+ 'reference/composite/CopyGreen.miff', 0.3, 1.03);
#
# CopyRed
@@ -82,15 +82,15 @@ testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'CopyRed'/,
- 'reference/composite/CopyRed.miff', 0.1, 1.03);
+ 'reference/composite/CopyRed.miff', 0.3, 1.03);
#
# CopyOpacity
#
++$test;
-testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
+testCompositeCompare('gradient:white-black',q/size=>"70x46"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'CopyOpacity'/,
- 'reference/composite/CopyOpacity.miff', 0.1, 1.03);
+ 'reference/composite/CopyOpacity.miff', 0.3, 1.03);
#
# Difference
@@ -98,7 +98,7 @@ testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'Difference'/,
- 'reference/composite/Difference.miff', 0.1, 1.03);
+ 'reference/composite/Difference.miff', 0.3, 1.03);
#
# In
@@ -106,7 +106,7 @@ testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'In'/,
- 'reference/composite/In.miff', 0.1, 1.03);
+ 'reference/composite/In.miff', 0.3, 1.03);
#
# Minus
@@ -122,13 +122,13 @@ testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'Multiply'/,
- 'reference/composite/Multiply.miff', 0.1, 1.03);
+ 'reference/composite/Multiply.miff', 0.3, 1.03);
#
# Out
#
++$test;
-testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
+testCompositeCompare('gradient:white-black',q/size=>"70x46"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'Out'/,
'reference/composite/Out.miff', 0.3, 1.03);
@@ -138,7 +138,7 @@ testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'Over'/,
- 'reference/composite/Over.miff', 0.1, 1.03);
+ 'reference/composite/Over.miff', 0.3, 1.03);
#
# Plus
@@ -146,7 +146,7 @@ testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'Plus'/,
- 'reference/composite/Plus.miff', 0.1, 1.03);
+ 'reference/composite/Plus.miff', 0.3, 1.03);
#
# Subtract
@@ -154,13 +154,13 @@ testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
++$test;
testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'ModulusSubtract'/,
- 'reference/composite/Subtract.miff', 0.1, 1.03);
+ 'reference/composite/Subtract.miff', 0.3, 1.03);
#
# Xor
#
++$test;
-testCompositeCompare('gradient:white-black',q/size=>"100x80"/,
+testCompositeCompare('gradient:white-black',q/size=>"70x46"/,
'input.miff', q//, q/, gravity=>'Center', compose=>'Xor'/,
'reference/composite/Xor.miff', 0.3, 1.03);
diff --git a/PerlMagick/t/reference/filter/Shear.miff b/PerlMagick/t/reference/filter/Shear.miff
index b1bb584a4..6ad04b2ad 100644
--- a/PerlMagick/t/reference/filter/Shear.miff
+++ b/PerlMagick/t/reference/filter/Shear.miff
@@ -1,11 +1,10 @@
id=ImageMagick version=1.0
class=DirectClass colors=0 matte=True
-columns=86 rows=78 depth=8
+columns=87 rows=78 depth=8
colorspace=RGB
compression=None quality=0
resolution=72x72
-compose={Over}
-create-date={2008-10-04T20:10:45-04:00}
-modify-date={2008-10-04T20:10:45-04:00}
+date:create={2011-09-04T13:28:40-04:00}
+date:modify={2009-09-05T17:47:34-04:00}
-:žœÿéééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ/.,ÿ30.ÿjgdÿ´²°ÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPOÿ/.,ÿ50-ÿ82-ÿ92,ÿ~yvÿÆÄÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›››ÿ+,+ÿ0.+ÿ40,ÿ70+ÿ80,ÿ7/,ÿH@>ÿ‹ŠÿØÖÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßàÿ-/1ÿ,--ÿ/-+ÿ1,)ÿ4-*ÿ4.+ÿ80-ÿ80-ÿ7/,ÿXQOÿ ›ÿêééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFHJÿ+.1ÿ.--ÿ.,(ÿ/+'ÿ/+*ÿ1,+ÿ4-+ÿ6/-ÿ6.+ÿ4,)ÿ4,)ÿjdaÿ³°¯ÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ“”“ÿ-/.ÿ../ÿ-.-ÿ-*(ÿ,*)ÿ,**ÿ.**ÿ1++ÿ2,+ÿ2,*ÿ3,)ÿ5.*ÿ4-)ÿ1-'ÿzxtÿÆÅÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÛÿ12-ÿ01-ÿ01.ÿ0.,ÿ.++ÿ+)*ÿ*()ÿ-**ÿ.++ÿ/++ÿ0+)ÿ3-*ÿ4-+ÿ3/*ÿ2/)ÿ41+ÿHE?ÿ’‹ÿÛÚ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOPKÿ45/ÿ53.ÿ64/ÿ41-ÿ1-*ÿ,))ÿ*)*ÿ,*+ÿ-*+ÿ.++ÿ0,,ÿ1,,ÿ2.,ÿ30+ÿ30+ÿ63-ÿ86/ÿ@;/ÿgaVÿ«§ ÿíìëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘ÿ782ÿ883ÿ:83ÿ:72ÿ91-ÿ3-+ÿ-++ÿ+),ÿ+)+ÿ*()ÿ+))ÿ.+,ÿ/-,ÿ0.+ÿ3/+ÿ41,ÿ64/ÿ=7-ÿE=2ÿI@2ÿLA1ÿthÿĹ³ÿþýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÙÙØÿ782ÿ;;5ÿ><7ÿ@=8ÿA97ÿ<41ÿ50.ÿ0./ÿ+*.ÿ,',ÿ+')ÿ,**ÿ-,-ÿ/,+ÿ1-+ÿ2.+ÿ40-ÿ83-ÿ>6-ÿC:/ÿH=-ÿL@/ÿYB2ÿC3ÿÄ…|ÿëÊÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúùÿIJEÿ681ÿ>=8ÿB?:ÿD?:ÿC=8ÿ?94ÿ:53ÿ301ÿ0)/ÿ/(,ÿ,))ÿ,+*ÿ.,+ÿ/+*ÿ.*)ÿ0,+ÿ3/.ÿ92.ÿ>5-ÿA6-ÿG;.ÿJC2ÿiD3ÿ”@0ÿ´@4ÿÓTQÿð˜™ÿüÛÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ……ƒÿ440ÿ994ÿ@>9ÿFA>ÿFB<ÿEA:ÿD>8ÿ?95ÿ:20ÿ6-.ÿ2,,ÿ1.*ÿ//+ÿ.-+ÿ.*)ÿ0+)ÿ0,,ÿ700ÿ<30ÿ>4.ÿC7.ÿF>2ÿOD4ÿr?.ÿš;+ÿ¼F<ÿàCFÿï@Dÿö_cÿô¦¦ÿúíìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÏÎÿ0/,ÿ32.ÿ993ÿBA8ÿFD=ÿHD=ÿIC;ÿI?6ÿE<2ÿ@71ÿ;4/ÿ61.ÿ41,ÿ11.ÿ//.ÿ3-*ÿ6.)ÿ81,ÿ;30ÿ;20ÿ>1.ÿD71ÿJ=6ÿZ<1ÿu9*ÿ˜A0ÿÆE?ÿæBCÿú<Aÿî<>ÿË?6ÿÉrfÿ⸲ÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ:81ÿ41-ÿ43.ÿ:;3ÿCC9ÿIH;ÿKH8ÿKC6ÿJ=1ÿF;.ÿD;1ÿ?91ÿ85.ÿ640ÿ752ÿ:3.ÿ=3,ÿ?4,ÿ?5/ÿ<2.ÿ;/-ÿ?0.ÿ@62ÿH:4ÿ^60ÿ‚8-ÿ¤A4ÿÊE=ÿï>?ÿó<>ÿÐ@:ÿ²?-ÿ°?,ÿ©@,ÿÁ…wÿâÊÅÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ…~ÿ=:1ÿ52,ÿ74,ÿ>=4ÿIE9ÿMJ6ÿMJ;ÿNJIÿH@9ÿE<.ÿD:0ÿ>80ÿ95/ÿ:5/ÿ>80ÿB90ÿE;0ÿE:1ÿA8/ÿ<2-ÿ</.ÿ>1,ÿ<70ÿD60ÿg7/ÿ<0ÿ¥A4ÿÌC;ÿçA>ÿË@5ÿ­?,ÿ¬?+ÿ¬?+ÿ @+ÿ–?+ÿ›O@ÿÕ‹ÿëÛØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÍÉÿJD8ÿA<1ÿ73)ÿ97.ÿG?5ÿTJ8ÿRL=ÿffsÿpnˆÿUMRÿC9,ÿ@8/ÿ<71ÿ:7-ÿ>9-ÿE</ÿJ>0ÿL?3ÿH=4ÿA7/ÿ=2/ÿ=1.ÿB1-ÿ>2-ÿG/)ÿo7,ÿŽ=3ÿŸA4ÿÆD;ÿÊF;ÿ¥A-ÿ£?,ÿ¦>-ÿŸ?+ÿ–>*ÿ‘>-ÿ=+ÿ’<*ÿ§`Qÿϧ ÿöíìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]VHÿNG:ÿC=2ÿ;6.ÿ@93ÿPD6ÿTG8ÿc_oÿ•›Óÿ†…¸ÿSMdÿ@:=ÿ<61ÿ=71ÿ>80ÿD<0ÿL?/ÿO@1ÿM>4ÿF:2ÿA70ÿ?61ÿ@51ÿK,/ÿC+,ÿK1)ÿq;.ÿ‹@1ÿŸ@3ÿµF:ÿ¡@2ÿ˜?,ÿ=-ÿ›=-ÿ“=*ÿ>+ÿŽ=,ÿ<*ÿ;*ÿ”>.ÿ¡?3ÿÉvkÿỶÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽˆ}ÿWM?ÿOH9ÿE=2ÿ?82ÿF?7ÿRE4ÿZNTÿ†ŠÀÿ§°úÿ¡ìÿsq—ÿGCIÿ62'ÿ96.ÿ>;5ÿG?5ÿN@/ÿN=0ÿI:1ÿC:0ÿ?:1ÿ?92ÿK76ÿA40ÿ<3*ÿR1(ÿs:/ÿŠ;2ÿ“>0ÿ˜?2ÿ“>-ÿ“=+ÿ–;-ÿ<,ÿ‹<*ÿ‰<+ÿŠ<,ÿŠ;,ÿ=-ÿ—>2ÿ¸@4ÿ¶D7ÿ|A5ÿ‹€|ÿÉÈÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËÈÃÿZO@ÿYM?ÿQG8ÿI>2ÿD?6ÿME4ÿSF7ÿjg‚ÿ™¤æÿ±»þÿ©­êÿªÿJGSÿ;:=ÿ<:/ÿE>/ÿM@/ÿJ?-ÿJ:0ÿD90ÿ=<0ÿ?<1ÿp>=ÿŠDGÿk>7ÿR8,ÿ`6,ÿ‚:7ÿ…:5ÿ…?4ÿŽ>2ÿ<.ÿ=-ÿ<-ÿ‡;+ÿ‡:*ÿ…;,ÿ…;.ÿ†=0ÿ“A0ÿ¶@5ÿÅD:ÿ’G:ÿE7-ÿ842ÿIECÿ’ŽÿÚÚÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôóòÿcVGÿZM=ÿXL<ÿTI9ÿNE9ÿMG7ÿRG/ÿYQWÿˆÅÿ¨®üÿ³¶ÿÿ®¯÷ÿˆ…ÈÿZU€ÿA=FÿA=)ÿGA.ÿI>.ÿB8+ÿ?60ÿ8;1ÿ=>0ÿŠC@ÿâHWÿ®;9ÿ˜D;ÿ™E=ÿ>7ÿA>ÿ„A:ÿ„@5ÿˆ@0ÿ†=-ÿ‰<-ÿ‡:-ÿ‚9*ÿ€9*ÿ€:-ÿ>4ÿ‹D8ÿ©D9ÿ¿HBÿQJÿPA7ÿ954ÿ820ÿ61.ÿ50-ÿWVSÿ¡¡ ÿíììÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰~sÿZL<ÿ[L<ÿXL;ÿWJ<ÿSI<ÿUJ6ÿWNGÿx{¡ÿŸ¡ðÿ¨©þÿ¬°ýÿ£¦òÿ…ƒÌÿa[ÿ@?Lÿ=>4ÿ9A:ÿ;AFÿ;@?ÿ63/ÿQ71ÿŽB:ÿ±:4ÿµ3*ÿŸ;$ÿº@6ÿ§?3ÿ¨@3ÿœC5ÿ@4ÿ@5ÿ€;.ÿƒ:+ÿ‚;*ÿz;*ÿw:+ÿz:-ÿ€?6ÿ…F?ÿ™E=ÿ³PKÿ©pfÿpk]ÿAA9ÿ93/ÿ62.ÿ52.ÿ10,ÿ./-ÿ1.-ÿlfgÿº´µÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ¿¹ÿ[K:ÿZK:ÿYI:ÿYJ;ÿXK=ÿXL;ÿXL=ÿe`oÿŠŒÀÿš›èÿ §øÿ¤¬ñÿ£¤ïÿˆ×ÿckšÿOJYÿQDGÿd[rÿeczÿFSRÿ_?8ÿ–;7ÿª;,ÿ¤8%ÿ¦=%ÿ¬<'ÿ§9+ÿ²>2ÿ°C4ÿ¦?.ÿª?9ÿ—><ÿ~=3ÿv=-ÿw8)ÿ;0ÿu:.ÿA5ÿ†I?ÿKFÿ£\Vÿ£‹wÿˆ™€ÿZfXÿ?=3ÿ53,ÿ13-ÿ.3.ÿ,2.ÿ/0.ÿ4.-ÿ:-/ÿc>>ÿ¶’”ÿã×Ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôóñÿ[K7ÿ[K7ÿYJ8ÿYJ9ÿ[K<ÿ]L<ÿ\N;ÿYOIÿgc{ÿ‚ƒµÿ‘•Üÿ—¡âÿ› âÿœ§òÿ—¡ØÿŽk‡ÿžM[ÿºTbÿ¹iŠÿ´iÿŸMRÿžD6ÿ¨<+ÿ©>)ÿ©;'ÿ¸=,ÿ°9+ÿ§;.ÿ­@2ÿ©<,ÿ»>2ÿÃ><ÿ¦@?ÿw>5ÿŠ84ÿ³IFÿ£SMÿ|F9ÿ†I?ÿ‰QHÿŽk^ÿ‘—~ÿŒª‹ÿwŒvÿSZHÿ9;0ÿ/1*ÿ-1+ÿ,2.ÿ-3/ÿ11/ÿ1,,ÿE21ÿGAÿ•fxÿŒ„®ÿª©Ãÿàßäÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†ykÿ]L8ÿ\K6ÿ\K7ÿ\K:ÿ]J;ÿ^M;ÿ\N>ÿYLGÿg_vÿ|x±ÿ‡†Êÿ…Áÿƒ½ÿ§±ÿÆgƒÿÛDRÿæAFÿèEMÿÙDLÿÐCJÿÄ@7ÿ¬:%ÿ®<)ÿ²:(ÿ¾7*ÿÉ:0ÿ¶:.ÿ®;,ÿ²>0ÿº?3ÿÌ;0ÿê69ÿÖ<;ÿº?=ÿÓ>DÿÌNLÿŠQCÿkR?ÿwZGÿoXÿz—uÿ‚­Šÿ£„ÿfƒeÿJXCÿ46,ÿ-*'ÿ/.+ÿ-/.ÿ/1.ÿ01.ÿ2.,ÿU4*ÿ…STÿ…|ªÿbfŸÿOGiÿ}z‡ÿÆÈÇÿõõôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ¹²ÿ^N<ÿ^M:ÿ]L9ÿ]L9ÿ]L:ÿ]M<ÿ]O;ÿ^N:ÿ^NKÿg\‚ÿ‚{½ÿˆ{µÿuj›ÿ’TiÿÜF[ÿæ=Cÿç>?ÿå<<ÿÌ?1ÿÒB;ÿâ=<ÿÆ=2ÿ·<,ÿ¾;-ÿÊ:/ÿ×91ÿÓ93ÿÅ8/ÿÂ;/ÿÃ:/ÿÉ5+ÿÞ3+ÿò.,ÿæ73ÿè55ÿ×5/ÿ¬NCÿlaFÿtgKÿ’mUÿ¬i^ÿ¥‹xÿŠ¨‡ÿq™vÿ]\ÿISBÿ5.+ÿ1))ÿ1+*ÿ/-+ÿ/0,ÿ/0/ÿ6,+ÿW?=ÿs—ÿmr¸ÿKArÿNE^ÿpsvÿŠŽ‚ÿ––ŽÿÙÙØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúùùÿ\M=ÿ_O>ÿ^N=ÿ^M;ÿ^L8ÿ^M9ÿ[O=ÿ]O<ÿ`L<ÿ`NUÿog‹ÿ™~§ÿ±t ÿ¬IXÿÕ;;ÿø7>ÿèC@ÿæ@GÿÐ>?ÿÎC>ÿç>Aÿß9;ÿÇ>5ÿÉ?3ÿÓ<2ÿÛ90ÿÜ71ÿÜ:5ÿÙ:4ÿ×;2ÿ×:2ÿÝ4+ÿå4,ÿò/)ÿå3%ÿÙ4#ÿÄ?3ÿ•aMÿ‰eLÿÆ`Xÿò?QÿçDWÿ¾~tÿŸ~ÿy”oÿf…eÿGUDÿ1.*ÿ-')ÿ/)+ÿ0++ÿ/.+ÿ1+0ÿ=56ÿvs‚ÿ…‰ÉÿZXŸÿB7dÿLJ[ÿz€yÿlo_ÿ|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyobÿ]N>ÿ_QAÿ_P?ÿ_O;ÿ^N7ÿZOBÿ^URÿgWWÿfPOÿiaxÿŽ‚¨ÿÓzŽÿíM`ÿÚ<;ÿá?7ÿô>?ÿëBKÿÔACÿÀA:ÿÙA@ÿÞ>=ÿÍ>7ÿÆC7ÿÀ8+ÿÐ5,ÿÚ4,ÿÜ80ÿâ:3ÿß91ÿß?5ÿë5+ÿò-(ÿõ.(ÿæ1%ÿÖ4 ÿÑ6'ÿÆK?ÿÄXNÿèVVÿô;Dÿì8Fÿú7OÿëN]ÿ¿rlÿ’‘uÿjŠiÿEQ>ÿ,($ÿ-%(ÿ.(,ÿ1)/ÿ0*0ÿ/((ÿbkSÿ‘š¯ÿ|†¼ÿ]`ˆÿGG\ÿ>DJÿOWNÿWWQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ²®¨ÿSI9ÿ]P@ÿ`SCÿ`R@ÿ\N?ÿ_TQÿjgxÿwqÿqi‚ÿnq•ÿ€†Çÿ±…ªÿ÷klÿ÷ANÿÝADÿå@BÿéAFÿÆ=:ÿ¯<.ÿÆ@8ÿÐ72ÿÈ?4ÿÀ=.ÿ¼;,ÿÅ6+ÿÚ40ÿÝ9/ÿÝ6+ÿÖ3'ÿÕ8)ÿå?1ÿø0,ÿù+)ÿê1(ÿÒ6 ÿÓ6#ÿÒ:.ÿÕF?ÿìDHÿç?CÿÉ>9ÿæCGÿý0Gÿõ=UÿåVfÿÄpoÿ‘k_ÿOE4ÿ2*$ÿ)*'ÿ(*,ÿ**/ÿ+''ÿHL4ÿƒ‘wÿ¤šÿ˜µ«ÿ{Œÿl{ÿo€vÿ^gZÿÄÄÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèèæÿED9ÿQH=ÿ_Q@ÿ`TAÿaVPÿiaoÿvwšÿy|²ÿtu´ÿt{ºÿ‚ŠÎÿ–ŠÑÿ¼x‹ÿíX\ÿò@Pÿã>Eÿà@@ÿÇ?7ÿ«9*ÿ¾?2ÿØ;7ÿËA6ÿ½:(ÿ¾9&ÿÄ:)ÿÙ9/ÿà60ÿà5+ÿÔ4!ÿÈ5!ÿÌ9%ÿæ;2ÿû02ÿì/-ÿÕ2&ÿÍ7$ÿÐ5(ÿ×B;ÿÜIDÿÕ?9ÿ¼<0ÿ¹@3ÿã@Aÿû6Gÿþ3Sÿ÷>`ÿæQlÿÖXlÿ¡HTÿW65ÿ).%ÿ1(+ÿ.&*ÿ31)ÿjuUÿ‹£sÿ™½‹ÿ¡Æ¡ÿ·—ÿ‘¯“ÿzŽzÿŒ‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿSVNÿ=<4ÿUI<ÿ`UDÿhabÿupÿvy«ÿkr³ÿckµÿyzÓÿžÑÿ±®¿ÿ¼§¦ÿ΀pÿñTUÿð>FÿÜ:;ÿÄ=3ÿª:*ÿ·<-ÿÛ<8ÿßA<ÿÄ=-ÿÁ:&ÿÆ9&ÿ×7(ÿæ4-ÿê20ÿÙ6+ÿÄ8'ÿÄ8(ÿÏ5)ÿæ51ÿí12ÿÛ2/ÿÖ6,ÿÐ:)ÿÔ;0ÿÝOGÿº=1ÿ¶:'ÿ±:)ÿÀ@5ÿêBEÿûAMÿþ<Vÿþ;fÿþ:oÿðFnÿÊJaÿv:<ÿB-(ÿA,)ÿME5ÿahNÿyfÿ€¢oÿ¶ÿ¶…ÿŠ±†ÿƒ €ÿ]iOÿööõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿšœ˜ÿ-1*ÿ@;5ÿSI<ÿfcgÿso“ÿlk¥ÿbe«ÿip½ÿ†Ôÿ°±àÿàݽÿîæ¥ÿÓ¿’ÿ¹jRÿÝGDÿç;=ÿÊ>3ÿ­;,ÿ¶?1ÿÓ72ÿã94ÿßJ>ÿÊB3ÿÈ6'ÿ×4'ÿé6,ÿñ1/ÿþ,2ÿæ1/ÿÎ73ÿØ:6ÿÖ7,ÿÝ7+ÿæ41ÿæ14ÿì40ÿÛ8,ÿÝC;ÿ×FBÿ½;*ÿº9(ÿÅ@6ÿØFEÿïEJÿúBPÿþ@_ÿü>nÿüBtÿýHpÿøYuÿ‘ILÿI:,ÿTM3ÿimKÿi€Wÿm‘^ÿvžiÿ}£oÿ¦xÿ|œxÿ`qWÿÈËÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàáßÿ,1&ÿ/1,ÿ><7ÿUUYÿed†ÿSSŠÿ\]¤ÿssÆÿÝÿ§¨ßÿÆÆÛÿÝÙÆÿÛÖ´ÿµ²‘ÿ®l[ÿäQPÿá86ÿÁ:/ÿ¸A7ÿÄB9ÿÒ6,ÿÛ9)ÿâJ=ÿÌ:-ÿØ5,ÿé4.ÿè3,ÿì-$ÿõ**ÿõ*6ÿ÷);ÿä1.ÿÇ7#ÿÎ5&ÿß00ÿò+0ÿã2*ÿÖ=/ÿáLIÿÐ@;ÿÁ9)ÿÄ</ÿÐICÿÕGFÿïEKÿüH[ÿýEgÿþHvÿûItÿûSuÿæXrÿECÿMH3ÿxtZÿy‰fÿl‰Zÿn’`ÿl—gÿtrÿxšvÿhdÿ†€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿYYMÿ45-ÿ24,ÿBD=ÿVWkÿ[[’ÿef²ÿx{ÐÿˆˆÛÿ”“ÖÿœšÔÿ©£Òÿ´«Åÿ˜–œÿunÿ¹kfÿõWZÿß76ÿÃ;3ÿÁRFÿÈJ>ÿÕ6)ÿâ8/ÿØ@3ÿÖ:/ÿë56ÿò06ÿõ/:ÿö*4ÿö'4ÿý5ÿò&2ÿ×2+ÿÏ8(ÿÚ7.ÿÒ6-ÿÒ5(ÿË6%ÿ×I>ÿÙFFÿÑ@7ÿÀ9+ÿÅC6ÿÇG>ÿÚIEÿðOVÿ÷G_ÿýJpÿýM{ÿýOwÿûQsÿßZrÿ’faÿ¢–Šÿ¤©¢ÿŠ™Œÿƒ•yÿ}–sÿœ~ÿz˜{ÿjˆfÿ\hTÿö÷öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤¡™ÿID8ÿ>>3ÿ?B.ÿLNHÿ[Yuÿqp±ÿ„†äÿƒ„áÿ††Ñÿ‡…ÍÿŒ…Ñÿ”ŒÉÿŠ®ÿngqÿ|b\ÿÇsnÿðYYÿâ=:ÿ½<2ÿÁSEÿË@4ÿÞ2+ÿá:1ÿÝ=0ÿë43ÿø5@ÿü!.ÿû$2ÿó(;ÿô+Lÿ÷2Kÿð=Hÿç38ÿî65ÿå<3ÿÌ>0ÿÆ8'ÿÒ=/ÿßB@ÿáLJÿÈ90ÿ¿;+ÿ¾@.ÿÃB5ÿØMHÿêRZÿùRjÿûQuÿ÷WyÿûRoÿðVnÿ¾osÿ¶›‘ÿàÛÞÿÔÍÞÿÁ¼Äÿ¾»µÿ»¾´ÿ ¬¡ÿsŠqÿXiOÿÏÒÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæåâÿ[SDÿWN@ÿPK9ÿOM:ÿSR?ÿhf{ÿŒ‰ÙÿŽŒîÿÐÿ‚ƒÍÿ‡ÕÿŒ„Êÿ‡®ÿy^pÿcWOÿŒTJÿÖe`ÿö\Yÿá?8ÿÄD9ÿÐSDÿÒ1'ÿå94ÿâ;.ÿè3+ÿö9=ÿ÷CHÿñ-1ÿð$+ÿï';ÿø>ZÿûXhÿôGXÿï2>ÿð,/ÿÜ83ÿÏ;1ÿÎ5+ÿâ86ÿèCCÿáKDÿÉ<-ÿ¼:'ÿ¸;+ÿ¿C8ÿÒPMÿï\gÿüVpÿüRtÿýUqÿúThÿøapÿÃhhÿòÙÒÿùôûÿ÷èúÿûïùÿðèçÿÞÕÛÿ¨«©ÿbu]ÿ’›‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿxpcÿe[Kÿ`WGÿ\TDÿ]TBÿaZOÿws’ÿŽŠÑÿ~Áÿƒ‚ÁÿŒ‰Íÿ‹ƒÃÿ„} ÿyclÿb[MÿnWDÿÆXVÿítrÿøqmÿÙHAÿÅ=0ÿÍ;-ÿâ@<ÿâ@8ÿâ0&ÿí.+ÿð?AÿìEIÿä54ÿà/0ÿê<Jÿ÷ZeÿïLRÿÖ6<ÿÄ3-ÿÊ:/ÿàFBÿÛ97ÿÞ85ÿß0-ÿÖ6,ÿÏ;/ÿÁ<,ÿ³;+ÿ±;.ÿ¹?2ÿâ\XÿúdpÿüRoÿú\tÿû^mÿýXgÿØNWÿØž™ÿþþþÿýúÿÿþúþÿþûúÿùðôÿÛÔÙÿ†„ÿkycÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«¦žÿh_Pÿg^Oÿe\Mÿe[Lÿd\Hÿg]Tÿsizÿzq’ÿupšÿ€|«ÿƒz ÿ{q…ÿma]ÿe[Jÿb^Eÿ¡XMÿÞadÿï|ÿñlfÿÆ7,ÿÃ7&ÿÕ?4ÿàFCÿà92ÿæ0*ÿÚ3*ÿÚA@ÿëNSÿêOTÿáEIÿÛ>BÿÞ<>ÿÊ72ÿ£6%ÿ™2ÿÇD;ÿÜKGÿÕ<7ÿÒ6+ÿÈ7'ÿÈ8+ÿÐH<ÿ´<.ÿ«9,ÿ­:+ÿÉN@ÿîidÿögoÿódrÿðntÿògsÿØgjÿ§gbÿàÆÄÿûúúÿüýþÿþû÷ÿÿûúÿùòöÿÅÃÀÿŠ“„ÿÝàÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâàÝÿi`Qÿi`Qÿi`Qÿh_Pÿi`Oÿh_Kÿg^Pÿla^ÿg]_ÿ`\dÿkdkÿn`\ÿk[Mÿb\Hÿf\Hÿy[FÿÀXTÿïghÿïldÿËA3ÿ¼:$ÿÉ:*ÿÓ8.ÿÖ9/ÿß7/ÿÓ7,ÿÅ9,ÿâLLÿôUaÿòZaÿâCGÿç5;ÿÜ58ÿÓHEÿ¿F@ÿ¹?9ÿÄ97ÿÔD>ÿÇ8+ÿ·8$ÿµ8(ÿÒI?ÿÇ?5ÿ¸8-ÿ«9*ÿ°>.ÿ×[Sÿìfhÿîclÿïpqÿøntÿëyÿ„raÿ}tÿòååÿûþÿÿüúøÿþù÷ÿýïóÿæÛÚÿÉÇ¿ÿÑÔÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿofXÿi`Qÿh_PÿjaQÿj`SÿjaUÿi`Pÿh_Lÿf\Hÿ]XIÿUQEÿ_VEÿj[Gÿj]Jÿi]Mÿv]KÿšUCÿçPOÿæIEÿÒ=0ÿÆ9&ÿÉ:(ÿÔ6*ÿÎ9+ÿÕ7,ÿÕ9-ÿÂ;*ÿÃ<0ÿÑ=@ÿñXcÿø_eÿó07ÿñ0<ÿöUaÿócmÿÛQTÿàQQÿÛHEÿÌ<2ÿÃ8*ÿ¯8)ÿ¾=3ÿÕ?:ÿØ71ÿÒ92ÿ»8+ÿ¿G=ÿïqtÿólvÿ÷krÿüinÿüizÿ—ŽzÿQ[AÿÝÇÅÿþüþÿýüýÿþúøÿûòñÿèÚØÿîåÚÿèêáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥ —ÿi`Qÿi_QÿkbSÿjaSÿk_Zÿj_ZÿjaQÿiaKÿf`IÿXTAÿMI7ÿYS@ÿe^Iÿw_OÿŽYLÿ¢L>ÿÐ:3ÿä51ÿÝ1*ÿÖ7&ÿÒ8(ÿÖ4)ÿÌ8*ÿÇ8(ÿÔ9,ÿÇ9)ÿÃ=0ÿÄ;4ÿÕEHÿéV\ÿç?@ÿò1:ÿöEQÿûakÿöZbÿáGDÿÚ?<ÿ×B;ÿÙ=6ÿÓ64ÿÌ83ÿÝF=ÿå40ÿö10ÿã5/ÿ¿7,ÿÝa_ÿùyÿût}ÿýmvÿüWhÿ¹lkÿ_sPÿ¿µ¥ÿûùøÿþýþÿýýüÿýþøÿòíçÿïæØÿ÷öèÿýþûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚØÕÿhaQÿjaRÿjaRÿjaRÿlaUÿkaUÿkbQÿkaTÿjaSÿf^KÿSO;ÿGI7ÿQS@ÿc_Oÿš[Sÿ·G>ÿ¼7+ÿÚ3,ÿá3*ÿÙ7%ÿÑ9%ÿÛ5*ÿÇ6)ÿÀ<)ÿÎA2ÿÐ<.ÿÆ9+ÿÇ:/ÿÈ;4ÿÕKEÿÓD;ÿâ95ÿî>EÿìCHÿôIMÿß73ÿá74ÿÜ?9ÿÝ>7ÿë27ÿõ4=ÿé>;ÿâ3.ÿú.0ÿö//ÿÜ5,ÿÊF=ÿðtvÿý}…ÿþr~ÿþSfÿêQdÿŠ—rÿ©…ÿõðæÿÿþÿÿ÷ýùÿïÿñÿüüõÿôðâÿúøáÿüýóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrl]ÿibRÿicRÿiaRÿjaRÿkbSÿkbPÿkcPÿkaUÿlaRÿe^KÿNM<ÿ@F6ÿBI<ÿjREÿÂKIÿÎ5/ÿÅ9*ÿÜ7-ÿÚ6*ÿÐ9&ÿÔ9*ÿÀ9)ÿ»:)ÿÈ=-ÿÕ@4ÿÈ9)ÿÈ8)ÿÊ8+ÿÎ=2ÿÉ<0ÿÔ3'ÿï-2ÿô,<ÿõ/9ÿñ52ÿë41ÿß71ÿÖ80ÿæ54ÿù1;ÿô6:ÿá4.ÿë1.ÿ÷.0ÿï1,ÿÈ6(ÿÖ]Xÿþ„‰ÿüt€ÿýWlÿùA]ÿ–€bÿ}–eÿÅÉ«ÿÛæÒÿÖèÖÿÒñÕÿäóÞÿûûìÿýøãÿüûëÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿž›‘ÿhbRÿjbRÿibRÿibRÿjbSÿkbRÿkbRÿlbTÿmbSÿmbSÿb\LÿHI:ÿ9B3ÿAF3ÿŠRCÿÞGFÿÇ<.ÿÌ9)ÿÙ8+ÿÕ7)ÿÔ9*ÿÅ:+ÿ³8&ÿÐ;2ÿÞE<ÿÀ9)ÿÅ9(ÿË7(ÿÒ8+ÿÕ;/ÿÜ4.ÿõ/6ÿü*<ÿû&=ÿþ 9ÿö+4ÿç51ÿÞ:1ÿä84ÿç::ÿê56ÿÞ5-ÿã3+ÿô00ÿõ//ÿ×2'ÿÃH=ÿù‰Šÿþw…ÿýXqÿ÷B\ÿ¨VKÿe|Kÿw…Yÿ‚™qÿ‘±‰ÿ”¹ÿ«Ï£ÿßèÍÿøïÝÿ÷ïáÿýüúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÔÐÿgcRÿgcRÿhbRÿhbRÿibRÿjbSÿkbSÿlcSÿmbSÿoaSÿi`Rÿ[VFÿEA1ÿ8A)ÿhK6ÿ¶YLÿßJEÿÊ:,ÿÏ7(ÿÓ8)ÿÔ7)ÿÏ:+ÿ³:)ÿ³6&ÿÔ>5ÿÃ=.ÿ¹9(ÿÇ8*ÿÑ5*ÿÚ5+ÿæ95ÿó3=ÿö-<ÿô,;ÿý$:ÿý%8ÿî17ÿß:4ÿã94ÿé66ÿé65ÿÛ5-ÿá6)ÿó0-ÿù.1ÿè1+ÿÄ;0ÿätrÿýz†ÿþSpÿû?`ÿÀDNÿVg;ÿq†Xÿxbÿm“_ÿueÿ‰¶zÿ¥Å•ÿ×ÙÁÿîàÕÿõïêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿqo_ÿgdRÿgcRÿgcRÿibRÿkbSÿlcTÿlcTÿkbSÿj^Rÿi_Uÿoj^ÿa\HÿDF,ÿyJ<ÿ¾@AÿßQQÿçKJÿÌ9-ÿÎ9*ÿÐ:)ÿÒ9)ÿ»;-ÿ˜5ÿ·<+ÿÐ>3ÿÑD8ÿÎ=3ÿÕ;4ÿß94ÿè:6ÿï6;ÿí1<ÿë8?ÿï47ÿö09ÿî4;ÿÜ96ÿà:4ÿê54ÿê33ÿà5.ÿÝ6)ÿì2*ÿ÷03ÿõ0.ÿÒ8-ÿÈOKÿûz†ÿüSoÿþ>dÿº@OÿV\9ÿq•[ÿƒ mÿ¥nÿ‚ªoÿ†¯pÿ‰·uÿ™²„ÿÏŶÿÝÏÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜–ŒÿheVÿgdUÿgdSÿfcRÿjcRÿlcTÿlcTÿkbRÿf^Sÿzuoÿš™”ÿ§¤œÿ…pÿbQ=ÿG@ÿ½GHÿëcfÿÚJEÿÍ>3ÿÏ=1ÿÒ</ÿÇ<0ÿœ7"ÿœ:"ÿ½7)ÿÓ90ÿà99ÿà;:ÿè99ÿé97ÿç86ÿð@CÿëMNÿîRMÿì;:ÿå66ÿÝ75ÿÞ95ÿé64ÿï36ÿâ5.ÿÚ7(ÿá6'ÿî3-ÿô11ÿà4,ÿÀ93ÿûw‚ÿüSoÿû>cÿ»>Pÿ]Q:ÿg…Qÿz dÿ~¥jÿ|¤fÿ§iÿƒ±nÿ„±qÿ¨±ÿµ¯ÿöôóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÎÊÿheVÿheVÿheVÿgdVÿidTÿkcUÿmdTÿlcRÿke[ÿ‘’ÿÐÒÓÿõ÷øÿÞÝØÿ‹|ÿ=>,ÿh?5ÿ¢GDÿËMLÿÐD@ÿÒD>ÿÖE>ÿÖB;ÿÃ?7ÿ¨=+ÿµ;+ÿÑ:1ÿè9=ÿå7<ÿì6:ÿë69ÿÖ;5ÿÌ=4ÿÙLFÿÒGAÿÝ=9ÿß82ÿß74ÿá87ÿé88ÿò69ÿæ63ÿÖ7)ÿÚ7&ÿâ5&ÿî4+ÿå3)ÿÖ=8ÿì]eÿþNlÿþ<dÿÀGYÿJB.ÿXmGÿw˜`ÿvž`ÿu_ÿz¡dÿ}§hÿ°fÿ±yÿµ¹¤ÿâàßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿheVÿheVÿheVÿheVÿheUÿjdXÿmdWÿjdRÿibUÿz|}ÿÏÖØÿþþþÿþþþÿ÷èáÿž|ÿAG2ÿ;=.ÿ^?5ÿ¤E@ÿÍA=ÿÏD<ÿÚGDÿãFJÿÐGBÿÎE<ÿßG@ÿäCBÿÕ?=ÿÉ75ÿÔ67ÿÎ62ÿ±8(ÿ³9)ÿÈ;0ÿÝ:7ÿá84ÿâ83ÿæ77ÿé7<ÿî6;ÿë67ÿ×8/ÿÐ8(ÿÕ7%ÿ×8%ÿÛ8&ÿÛ=4ÿñU`ÿþJiÿü=eÿ±HTÿMD1ÿAI0ÿl„Vÿu˜\ÿp˜Wÿu]ÿz£bÿ{¨]ÿ…±iÿ˜²†ÿ«µ«ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘…ÿgdUÿheVÿheVÿheVÿidWÿldYÿieSÿmkcÿŒ•ÿÀÉÎÿðûûÿûþûÿýþóÿíðÔÿ‹“rÿAJ3ÿ;81ÿQ:3ÿ©EDÿÓ@@ÿÖB?ÿÝADÿàEGÿåGFÿëABÿãDBÿÁA:ÿ >0ÿ£>2ÿ¤:/ÿ¢;)ÿ¤;'ÿ¸:)ÿÛ;5ÿë69ÿæ77ÿç75ÿê7;ÿë6<ÿë69ÿ×:4ÿÂ8)ÿÅ;(ÿÇ;#ÿÈ;$ÿÖ>4ÿùTfÿþAfÿó;bÿ¦?KÿQD4ÿHF2ÿS`=ÿlŠQÿh’Lÿo˜Tÿvž\ÿx¤Yÿ~«^ÿ‡«oÿ|’uÿíïìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈÈÂÿfdTÿheVÿifWÿieVÿjdVÿlc[ÿlfVÿpqbÿ¢§ªÿÝâæÿùúûÿýþûÿùûïÿøüëÿàãÇÿ‚†eÿA?-ÿ771ÿXBAÿÇijÿÕIGÿÝCAÿÞCDÿàCCÿãB@ÿãA?ÿÍ@<ÿž=0ÿŠC1ÿ€A/ÿ†=+ÿ•>*ÿ£=(ÿÀ9,ÿä96ÿð66ÿè84ÿå93ÿç88ÿé7:ÿÚ=7ÿ¼:,ÿ´<)ÿ¸<(ÿ·9#ÿÑA9ÿõG\ÿþ:eÿôAfÿ€6Bÿ34'ÿ<>,ÿAF*ÿ\pAÿf‹Fÿh’Kÿq™WÿsTÿržSÿz¡^ÿu‘cÿ½Ç¸ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_fQÿefTÿhfWÿheWÿieVÿlcZÿmfYÿhjSÿ€‰†ÿÝäèÿþÿÿÿþþûÿ÷ùñÿøúòÿüûêÿÓ̱ÿb`KÿJJ@ÿ}xuÿȲ®ÿÜŽ‰ÿÜ<<ÿßACÿÝCDÿÙEBÿÚD>ÿÔB<ÿ«<3ÿŠ>0ÿ„<1ÿ€;1ÿƒ:-ÿŠ<+ÿœ9*ÿ¾90ÿæ<6ÿê;5ÿä=4ÿà<8ÿà;;ÿØ=:ÿ»=1ÿ¦;(ÿ¤;'ÿ¡7#ÿÀ<5ÿýK_ÿù=bÿÊ>Yÿj:@ÿ//+ÿ/4ÿQO-ÿn|Qÿb|Jÿb‰Dÿi‘Nÿk’OÿfJÿ`ˆDÿUq<ÿwŠiÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅÉÁÿ‹“‚ÿgjVÿhfWÿieVÿldXÿlfZÿgjUÿjvkÿºÄÊÿýþþÿþþüÿóôìÿåêÜÿòôâÿáàÃÿ€eÿ^gWÿ§§ŸÿéàÞÿùïèÿ椟ÿÒMMÿÖ@AÿÜABÿÕD>ÿÔE<ÿÇ@9ÿ–<0ÿ€<1ÿƒ92ÿ:1ÿ~;0ÿ‚;-ÿ‘9+ÿ°:/ÿÑ=3ÿÛA6ÿÒA9ÿÊ<9ÿÂ>8ÿ¬9,ÿœ:)ÿ“9&ÿŽ7$ÿ³E=ÿòRaÿåG\ÿ­JTÿL=2ÿ41+ÿ@>,ÿpyJÿ¡µ€ÿvbÿ_„AÿgŽGÿjLÿdŠGÿ\DÿUr?ÿPh:ÿúúùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòñÿ»»´ÿ‡‚wÿlfXÿle[ÿihWÿdp_ÿ˜¦§ÿèîðÿþþýÿúûñÿèìÛÿçíÔÿäãÊÿ¹· ÿ“˜ˆÿºÀºÿôñïÿÿýüÿþÿýÿ踱ÿÊYQÿÐ@>ÿÕ@?ÿÑC;ÿÙB:ÿ±?4ÿƒ=,ÿ;/ÿ…9/ÿ‚;.ÿ}:-ÿz:+ÿ:+ÿž:-ÿ´</ÿ´;.ÿ«80ÿ8,ÿ•8(ÿ:(ÿ‹9'ÿƒ7#ÿ›C9ÿÉVYÿÂRWÿZPÿB?+ÿ9=&ÿVK5ÿ†›eÿªÉŠÿ¯xÿc‡GÿjHÿo”PÿiHÿd†Iÿa~Hÿ^wEÿ¾Èµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿåäâÿ¯¬¦ÿvuiÿdlYÿ‚‘ÿ×àæÿþþýÿÿÿöÿóøäÿäëÎÿæäËÿÙÑÄÿÕÍÈÿàßÝÿö÷õÿÿþýÿýÿýÿüúöÿຬÿ°I>ÿÅ<8ÿÓ@=ÿØA<ÿÆA9ÿ“;-ÿ€<,ÿƒ:,ÿƒ:+ÿ€:,ÿ}:-ÿ{:.ÿ€8.ÿ‹8,ÿ˜8(ÿ’7*ÿŠ9,ÿ…:*ÿƒ:)ÿ;(ÿ{5#ÿ‚<-ÿ§RKÿ UNÿ]Oÿhd>ÿ\k;ÿnVÿŒ£hÿš»~ÿ‚pÿWt@ÿf‹Dÿp•PÿjIÿh‹KÿeƒJÿe€Gÿ‰ŸsÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕ×Òÿ¬µ²ÿÇÑØÿøûûÿüýöÿùûëÿäéÎÿØ׿ÿãÚÓÿôçêÿÿúþÿýýüÿþþýÿþþüÿþþýÿþþþÿì×Ðÿ¿_VÿÈA:ÿÏB=ÿÌB=ÿ¨>6ÿ†<.ÿ€<+ÿ:+ÿ~9,ÿ~9-ÿ}:/ÿ|90ÿz8/ÿ€8-ÿ‚9+ÿ;,ÿ9+ÿ|8)ÿx:+ÿu6'ÿ‚<.ÿ’NBÿ“VKÿ\SÿŽqYÿ—_ÿ†¢bÿoˆSÿqWÿUaDÿDU2ÿa~?ÿk’IÿfŒHÿf‰Hÿe‡Kÿe…HÿgˆGÿõ÷òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûýýÿùûôÿïïÝÿááËÿÌɳÿ×ÏÊÿ÷îóÿþûýÿÿþýÿþþüÿþþüÿþþüÿþýüÿýûüÿãžÿ»\OÿÂ?5ÿÉE<ÿ®?9ÿ‹<2ÿ</ÿ~:-ÿ}9-ÿ|9/ÿ}9/ÿ|90ÿy80ÿy8.ÿx9.ÿx9.ÿx8-ÿx4)ÿy6+ÿq5)ÿ}</ÿJ=ÿ‘SHÿ•XQÿŽ]QÿqyTÿL[<ÿ9G+ÿ@F3ÿ78,ÿ9@.ÿZn=ÿiEÿcŒEÿfˆEÿiNÿf‹JÿhHÿÊØ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýûÿïîåÿÓ˽ÿËÀ¹ÿïçíÿþþþÿþþûÿþþûÿþþüÿþþüÿþýûÿþýúÿúÿýÿçÝÑÿ¸n\ÿ»C5ÿ®D6ÿ@5ÿ€=3ÿ~;0ÿ}9.ÿ{9/ÿ{:1ÿ{;2ÿv:2ÿt8/ÿs7-ÿt9/ÿt8-ÿr6,ÿp4*ÿn3(ÿu<0ÿ†P?ÿŒRFÿšSPÿ•]Wÿh_Cÿ1=(ÿ/8/ÿ:=5ÿ76/ÿ7:/ÿIX8ÿjŠHÿh‘HÿiJÿkOÿk’Nÿh‘Gÿ—¶€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõóñÿòîñÿýúþÿýþýÿýþûÿþþüÿþþüÿþþüÿûþüÿûþþÿûýÿÿðãÞÿÆ~lÿ¹>5ÿ¡=9ÿ…>8ÿ;2ÿ}90ÿ{8/ÿ{90ÿy:2ÿt:1ÿn9.ÿm6,ÿn7,ÿo7+ÿo5-ÿm3*ÿj3'ÿo9.ÿMCÿŒRJÿ˜QLÿŽ[TÿnfLÿYjAÿGS;ÿKQAÿ@?.ÿ8:.ÿ;E1ÿh„Kÿq˜Nÿl“Oÿk’Mÿm–Mÿm™Mÿz¥\ÿöùôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿýþþÿýþþÿþþüÿþýûÿýýýÿýýþÿþúþÿþüýÿðâÕÿ¸t^ÿŸ=1ÿ:5ÿx@<ÿu>6ÿv:1ÿv7.ÿv7/ÿs7/ÿj8.ÿh7-ÿh7,ÿi7,ÿl6.ÿk4,ÿh3)ÿf2'ÿ|C:ÿ‘SMÿ’TMÿ„^Oÿ]`EÿOe=ÿ[oCÿP]=ÿDH.ÿ9:)ÿ7=-ÿ\qCÿt˜Oÿp™Rÿo—Nÿn™Iÿt£Oÿt¤UÿÓáÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýÿÿýüÿþýùÿþüüÿûþúÿûþøÿþþýÿÿþñÿЪ–ÿ›TDÿ}8,ÿo@5ÿq>5ÿp>3ÿo:0ÿn6,ÿj6/ÿg7/ÿe6,ÿe7-ÿh7.ÿi6.ÿe2)ÿ_.$ÿo8/ÿ“RNÿ‰ZQÿx^Oÿ_cHÿTjDÿTi@ÿBS-ÿ6@*ÿ9;-ÿ7:/ÿK[:ÿoMÿr›Oÿp›LÿrMÿx¦Vÿt¤Wÿ™·‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿýýÿÿýýÿýþûÿüûøÿþüüÿ÷óíÿÌ´¥ÿƒT=ÿl=+ÿn:2ÿr?8ÿo?7ÿj;2ÿk71ÿk60ÿf5/ÿf6.ÿf6-ÿi6/ÿg5-ÿ_/%ÿd4*ÿ€MGÿwXLÿYRBÿIN<ÿ>K5ÿ<J0ÿ?J/ÿ8<*ÿ9;1ÿ69/ÿ9B.ÿeFÿuœOÿpNÿv£Tÿ{¦^ÿl˜RÿiTÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿýûùÿöíêÿþûûÿþþþÿüúôÿ¿ª˜ÿ…]Oÿi8/ÿn>6ÿn>7ÿm;5ÿo72ÿk60ÿh7/ÿh80ÿk60ÿj9/ÿf:/ÿh=3ÿjH@ÿUF=ÿ>@1ÿ3>/ÿ/6,ÿ36.ÿ7?/ÿ?G4ÿ8=/ÿ5;0ÿ6:+ÿTe;ÿu˜PÿpžPÿv¦WÿsžYÿeŽMÿa‰KÿÓÞÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýýÿþþýÿýþþÿù÷ïÿæÛÉÿ¥ŽxÿfF4ÿf?2ÿi=3ÿk<4ÿj;3ÿd;1ÿc<2ÿfA6ÿgC4ÿfF3ÿ{dSÿk[Nÿ681ÿ25,ÿ18,ÿ4:/ÿ572ÿ04.ÿ3=0ÿ9E4ÿ3;/ÿ481ÿCI1ÿe~IÿužWÿu£Zÿi”Rÿ^†HÿcŠJÿ›³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿýÿÿÿòÿãÞÆÿh[AÿXG-ÿ^H2ÿ_E5ÿ_D5ÿ]C4ÿ^F7ÿP<,ÿ[M8ÿ`N7ÿncMÿmmZÿ7>2ÿ/5,ÿ16,ÿ46*ÿ37,ÿ28/ÿ/8,ÿ5B1ÿ2A0ÿ.3/ÿ89,ÿRb9ÿtšVÿtœZÿb‰Kÿ\„FÿeŒJÿa…Iÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüúÿ¼¹­ÿqkRÿVN2ÿVM4ÿSN8ÿRL6ÿ\W@ÿML5ÿEH/ÿUS8ÿ__BÿioXÿ=E6ÿ-4*ÿ07,ÿ06*ÿ05*ÿ/7+ÿ/8*ÿ/:+ÿ5B2ÿ3=0ÿ12(ÿ>H-ÿoUÿqšVÿ]€Fÿ\EÿbˆJÿ_„HÿÙáÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÞØÿ žŽÿ_]EÿMN6ÿOT;ÿS]Aÿ=G,ÿAG*ÿcdFÿdjPÿ4@,ÿ06-ÿ17-ÿ06,ÿ/4+ÿ.3,ÿ/3,ÿ.5,ÿ/7,ÿ8A1ÿ48+ÿ6;)ÿbzRÿl”WÿVxAÿZ|Dÿ`ƒJÿ^‚Iÿœ±‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍÎÇÿ‰Ž}ÿEN.ÿGO/ÿHN0ÿTU7ÿccHÿBF2ÿ4:0ÿ4:0ÿ39/ÿ16,ÿ.3,ÿ-2-ÿ.3-ÿ-1,ÿ/5.ÿ4>1ÿ37)ÿO]Eÿi‹^ÿUxCÿUt@ÿ\|Iÿ^Iÿh†Zÿúûúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýþýÿ¼¿²ÿˆrÿ_cDÿ][BÿVR>ÿ?B4ÿ8=4ÿ7=3ÿ6<1ÿ27/ÿ-2-ÿ-2,ÿ,1+ÿ,1+ÿ-7/ÿ1>2ÿ@M:ÿYpRÿGh<ÿNl<ÿUrAÿ_}IÿXvHÿÞãÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïìÿ±±¥ÿtq^ÿQO8ÿBC5ÿ:>4ÿ8>4ÿ8=5ÿ7;5ÿ372ÿ-2,ÿ*/)ÿ*1+ÿ*5,ÿ2=/ÿ=K6ÿBS8ÿKe=ÿKh<ÿYwGÿ[wIÿ›¨•ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞÞÙÿœšÿRQEÿ;>4ÿ8?5ÿ9@9ÿ9>8ÿ494ÿ.3-ÿ+0+ÿ*2*ÿ+5,ÿ0:,ÿ4@,ÿ@R6ÿG_:ÿToFÿ\wOÿYiTÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈÉÆÿ~„|ÿ8B5ÿ9@8ÿ9?8ÿ8=8ÿ271ÿ+0*ÿ)/)ÿ,3,ÿ6?4ÿ9E3ÿ?O6ÿQfFÿ\qRÿ>O<ÿÜßÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿµ¸´ÿmrjÿ9A7ÿ9?7ÿ5;5ÿ-3.ÿ+0,ÿ-1.ÿ8?7ÿ7B1ÿ@L6ÿ[iSÿGUDÿ’™“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëëêÿ£§¢ÿ]d]ÿ8A8ÿ170ÿ+/.ÿ-3/ÿ7C4ÿ4B,ÿHUAÿKWIÿEMFÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÙÛØÿ”ŽÿELEÿ2>.ÿ6H/ÿ7J2ÿ:K3ÿAN>ÿ5@6ÿàáàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅÉÃÿ‡—{ÿFa;ÿ9L5ÿ:K5ÿ6D4ÿœ¢œÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿ´»´ÿq~mÿFY?ÿT_RÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëíëÿŸ¦žÿ \ No newline at end of file
+:žžÿêééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0/-ÿ31.ÿkgeÿ´²°ÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿQPOÿ0/-ÿ51-ÿ82-ÿ:3-ÿ~ywÿÆÄÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ››œÿ,-,ÿ0/,ÿ50,ÿ81,ÿ80,ÿ80-ÿHA>ÿŒŠÿÙ×Öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàààÿ./1ÿ--.ÿ0.,ÿ2-)ÿ4.*ÿ5.,ÿ81-ÿ81-ÿ80-ÿYROÿ¡œÿëêéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFIKÿ+.1ÿ.--ÿ/,)ÿ0+(ÿ0,*ÿ2,+ÿ5.,ÿ70-ÿ7.,ÿ4-*ÿ4,)ÿjdbÿ³±¯ÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”•”ÿ.//ÿ.//ÿ-.-ÿ.+)ÿ-+)ÿ,**ÿ/++ÿ1,+ÿ3,+ÿ3-*ÿ4,*ÿ6.+ÿ4-*ÿ1-'ÿ{ytÿÆÅÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÝÜÿ12-ÿ11-ÿ11.ÿ1/,ÿ.,+ÿ+)+ÿ*))ÿ-++ÿ/++ÿ0,+ÿ1,*ÿ3-+ÿ5.+ÿ3/*ÿ30)ÿ52+ÿHE?ÿ“‘ŒÿÛÚØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPQLÿ55/ÿ64/ÿ740ÿ51.ÿ2.+ÿ,)*ÿ**+ÿ,*+ÿ-++ÿ/++ÿ0-,ÿ2-,ÿ3.,ÿ30+ÿ41+ÿ63-ÿ960ÿA;0ÿhaWÿ¬¨¡ÿîíëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘‘Žÿ893ÿ994ÿ;83ÿ;72ÿ91.ÿ4.,ÿ.+,ÿ+*,ÿ+),ÿ*))ÿ+)*ÿ/,,ÿ0--ÿ1.+ÿ30,ÿ51-ÿ74/ÿ=7-ÿE>2ÿI@2ÿLA2ÿtiÿĹ´ÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÙÙØÿ893ÿ;<6ÿ>=7ÿ@=8ÿA:7ÿ=52ÿ50.ÿ1//ÿ,+.ÿ,(,ÿ+(*ÿ,*+ÿ.-.ÿ/-+ÿ1-,ÿ2.+ÿ41.ÿ83.ÿ>6.ÿD;/ÿH=.ÿM@0ÿYC3ÿ‚D4ÿĆ}ÿìËÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿJJFÿ782ÿ>>9ÿB?:ÿE?;ÿD>9ÿ?95ÿ:64ÿ312ÿ0)/ÿ/)-ÿ-**ÿ-,*ÿ.-+ÿ0,+ÿ.*)ÿ0,,ÿ40.ÿ:3/ÿ>5.ÿB7-ÿG<.ÿKC3ÿiE4ÿ•A0ÿµA5ÿÓUQÿñ˜šÿüÜÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ……„ÿ441ÿ995ÿ@?:ÿFA?ÿGB=ÿFA;ÿD>8ÿ@95ÿ:21ÿ7./ÿ2--ÿ1.*ÿ0/+ÿ/-,ÿ/+)ÿ0+*ÿ1-,ÿ810ÿ<30ÿ>4/ÿC7.ÿF?3ÿOD4ÿs@.ÿš<,ÿ¼G<ÿàDGÿïAEÿö_cÿô¦§ÿúíìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÏÏÿ0/-ÿ32/ÿ:94ÿBA9ÿGE=ÿHD=ÿJC;ÿI@6ÿE<2ÿA81ÿ;40ÿ62.ÿ42-ÿ22/ÿ0//ÿ4.*ÿ6.*ÿ91-ÿ<31ÿ;21ÿ?2.ÿD71ÿJ=6ÿZ<2ÿv9+ÿ™A1ÿÆF@ÿæCDÿû<Aÿî=?ÿË@7ÿÊsgÿâ¹²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;92ÿ42-ÿ54/ÿ;<4ÿCC:ÿIH;ÿLH8ÿKD7ÿJ>2ÿG<.ÿD;2ÿ@92ÿ95/ÿ740ÿ862ÿ:4/ÿ=3,ÿ@5-ÿ?6/ÿ<3.ÿ<0.ÿ?1/ÿA73ÿI:5ÿ^70ÿ‚9.ÿ¤A4ÿËE=ÿï??ÿó=?ÿÐA:ÿ²?-ÿ°?,ÿ©@,ÿ†xÿâËÅÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ†ÿ>:1ÿ62,ÿ75-ÿ>>4ÿJF9ÿNK7ÿMJ;ÿOJJÿIA9ÿF=/ÿE;0ÿ>80ÿ:5/ÿ:50ÿ>81ÿB90ÿF;0ÿF;1ÿA90ÿ<3-ÿ</.ÿ>1-ÿ<81ÿE61ÿh7/ÿŽ=0ÿ¦A5ÿÌD<ÿçA?ÿËA5ÿ­@,ÿ­?+ÿ­?,ÿ¡@+ÿ–?,ÿ›P@ÿÕŒÿëÜØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÍÊÿJE8ÿA<2ÿ73*ÿ:7/ÿH@6ÿUJ9ÿRL>ÿfgtÿqoˆÿVNRÿD:-ÿ@80ÿ=71ÿ:7.ÿ?9.ÿE<0ÿK>1ÿL?3ÿI=4ÿA80ÿ=20ÿ>1/ÿB2-ÿ>2.ÿH0*ÿp8-ÿ>4ÿ B5ÿÇE<ÿÊF<ÿ¦A.ÿ£?,ÿ¦>-ÿ ?,ÿ–?+ÿ‘>.ÿ‘=,ÿ’=+ÿ§aRÿШ¡ÿ÷îíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^VHÿNG:ÿC=3ÿ<6.ÿA:4ÿPE7ÿUG9ÿc_pÿ–›Óÿ†…¸ÿTMdÿA:=ÿ<71ÿ=71ÿ>90ÿE<1ÿM?/ÿOA2ÿN>4ÿG:2ÿA81ÿ?62ÿ@51ÿL-0ÿC+-ÿK2)ÿq;.ÿŒA1ÿ A3ÿ¶F:ÿ¡@2ÿ™?,ÿ>.ÿœ>.ÿ”>+ÿ>+ÿŽ=,ÿ=+ÿ‘<*ÿ”?/ÿ¡@3ÿÉvlÿá¼·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ~ÿWN@ÿPH:ÿF>3ÿ@92ÿF@7ÿSF5ÿZOTÿ†ŠÁÿ¨°ûÿ¡ìÿsq—ÿGCJÿ62(ÿ:6/ÿ?<6ÿH@5ÿOA0ÿN>1ÿJ;1ÿC:0ÿ?;2ÿ@92ÿL86ÿB40ÿ=3*ÿS2)ÿs:0ÿŠ<2ÿ”>0ÿ™@2ÿ“>.ÿ”=+ÿ—<-ÿ‘=-ÿ‹=+ÿŠ=,ÿŠ<-ÿ‹;-ÿ>.ÿ˜>3ÿ¹A4ÿ·D7ÿ|B6ÿŒ|ÿÉÈÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌÈÃÿ[O@ÿYN?ÿQG9ÿI?3ÿE@7ÿME4ÿTF7ÿjgƒÿš¥æÿ±¼ÿÿ©­êÿ€€«ÿJGTÿ<:>ÿ=:0ÿF>/ÿN@/ÿJ?-ÿJ:0ÿD91ÿ==1ÿ?<2ÿp?>ÿ‹DGÿk>8ÿS8,ÿa6-ÿ‚;7ÿ†;5ÿ†@4ÿŽ?2ÿ=.ÿ=.ÿ<.ÿˆ;,ÿ‡:*ÿ†;,ÿ…</ÿ†>1ÿ”A1ÿ¶A5ÿÆD;ÿ’H;ÿF7.ÿ943ÿJEDÿ’ŽÿÛÚÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôôóÿcWGÿZN>ÿYM=ÿUI:ÿOF:ÿNG8ÿSG/ÿYRWÿˆÆÿ©¯üÿ³·ÿÿ®°÷ÿ‰†ÈÿZUÿB>GÿB=)ÿHA/ÿI>.ÿB9+ÿ@60ÿ9;1ÿ=>0ÿŠDAÿâHXÿ®<:ÿ˜E;ÿšE=ÿ‘?7ÿ‘A?ÿ„B:ÿ…A6ÿˆ@0ÿ‡>-ÿ‰<.ÿ‡:-ÿƒ:+ÿ9*ÿ€:.ÿ>5ÿŒD9ÿ©E:ÿ¿HCÿžQJÿPA7ÿ:64ÿ931ÿ62/ÿ51-ÿXVSÿ¡¡ ÿíííÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠsÿ[L<ÿ[M<ÿYL<ÿXK<ÿSJ<ÿUK7ÿWNHÿx|¡ÿ ¢ñÿ¨©þÿ¬°þÿ£¦óÿ…„Ìÿa\‘ÿA@Mÿ>?4ÿ:A:ÿ<BGÿ<@?ÿ73/ÿQ71ÿŽB:ÿ²;4ÿµ4+ÿ <%ÿ»@7ÿ¨?4ÿ¨A4ÿD6ÿ@5ÿ€@5ÿ</ÿ„:,ÿƒ;*ÿz<+ÿx:+ÿ{:-ÿ€@6ÿ†G?ÿšF=ÿ´PKÿªqfÿqk]ÿAA:ÿ:3/ÿ63.ÿ52.ÿ11-ÿ.0-ÿ1.-ÿlfgÿºµµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅÀºÿ[K:ÿ[K;ÿYJ;ÿZK;ÿYK>ÿYL;ÿYM>ÿeapÿŠŒÀÿšœéÿ ¨ùÿ¤­òÿ£¥ïÿ‰×ÿdkšÿPKYÿQEHÿd\sÿfc{ÿGSRÿ_@9ÿ–<7ÿ«;,ÿ¥8%ÿ¦=%ÿ¬<'ÿ¨9,ÿ²>3ÿ±C5ÿ¦@.ÿ«?9ÿ—><ÿ=4ÿw=.ÿx9*ÿ€<1ÿu:.ÿ€A6ÿ‡I@ÿ‘LGÿ£\Vÿ¤Œxÿ‰šÿ[fXÿ?=4ÿ63,ÿ23.ÿ/3.ÿ-2/ÿ00.ÿ5..ÿ;./ÿc??ÿ·’”ÿãØÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôóòÿ\K7ÿ[K8ÿZJ9ÿZJ:ÿ[K<ÿ]M<ÿ]O<ÿYOJÿgc{ÿƒ„µÿ’•Üÿ—¡âÿœ¡ãÿœ¨óÿ˜¢ÙÿŽl‡ÿŸM\ÿ»Tcÿ¹j‹ÿ´jÿ NSÿŸE7ÿ¨=+ÿ©?*ÿª<(ÿ¸=,ÿ±9+ÿ¨;/ÿ®A2ÿª=,ÿ»>3ÿÃ>=ÿ¦@?ÿw?6ÿ‹94ÿ´IFÿ¤SMÿ|G:ÿ†I?ÿŠQIÿŽl_ÿ‘—ÿªŒÿwŒwÿTZHÿ:<0ÿ/1*ÿ.1,ÿ-2.ÿ.3/ÿ21/ÿ2,-ÿF21ÿ€GAÿ–gyÿŒ…®ÿªªÄÿáßåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†ykÿ]L8ÿ\K7ÿ\L8ÿ\K:ÿ]K<ÿ^N<ÿ\O>ÿYLGÿg`vÿ|x±ÿˆ†Ëÿ†Âÿ‚„¾ÿ¨²ÿÆgƒÿÜERÿçAGÿèEMÿÙDLÿÐDJÿÅ@7ÿ¬:%ÿ¯=*ÿ²;)ÿ¾7+ÿÊ:1ÿ·:/ÿ®;,ÿ³?0ÿ»@3ÿÍ;1ÿê79ÿÖ=<ÿº?>ÿÓ>EÿÌOMÿŠQDÿlS?ÿx[HÿpYÿz—uÿ‚®Šÿ¤„ÿfƒeÿJXCÿ57,ÿ-+(ÿ/.,ÿ.0.ÿ01.ÿ01.ÿ2.,ÿU5+ÿ†STÿ…|ªÿbgŸÿPGiÿ}{‡ÿÇÈÈÿõöõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀº³ÿ_N<ÿ^M;ÿ^M:ÿ]L:ÿ]L;ÿ^M=ÿ^O<ÿ^O;ÿ^NKÿg]ƒÿƒ{¾ÿ‰|µÿvjœÿ’UjÿÜF\ÿæ>Cÿç>?ÿå<<ÿÌ@2ÿÓB<ÿâ>=ÿÇ>2ÿ¸<,ÿ¿;-ÿË;0ÿØ:1ÿÓ:4ÿÆ80ÿÂ;0ÿÃ;/ÿÊ6+ÿÞ4+ÿó.-ÿç83ÿé66ÿ×5/ÿ¬ODÿlaFÿugLÿ’nVÿ¬j_ÿ¦‹xÿ‹¨‡ÿršwÿ]\ÿJTCÿ5.,ÿ1**ÿ2,+ÿ0-+ÿ00-ÿ/1/ÿ7-,ÿX@=ÿ€s˜ÿms¸ÿLAsÿOE_ÿqswÿŠŽ‚ÿ——ÿÚÙÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúùÿ]N=ÿ_O?ÿ_O=ÿ^N;ÿ_M8ÿ^M:ÿ[O>ÿ]P=ÿ`M=ÿaNVÿogŒÿš~§ÿ±t¡ÿ­JXÿÕ<;ÿù7>ÿéC@ÿæ@HÿÑ>@ÿÎD?ÿè?Aÿß:<ÿÇ?6ÿÉ@4ÿÔ<2ÿÛ:1ÿÝ71ÿÜ:5ÿÚ;5ÿ×;2ÿØ;3ÿÝ4+ÿå5-ÿò0*ÿæ4&ÿÚ4#ÿÅ?3ÿ–bMÿ‰eLÿÇ`Xÿò?RÿçEWÿ¾~tÿ ÿz•pÿf†eÿGVEÿ1/+ÿ.'*ÿ/)+ÿ0+,ÿ0/+ÿ1+0ÿ=56ÿvs‚ÿ…‰Éÿ[X ÿC7dÿMK\ÿz€yÿlo`ÿ}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzocÿ]O?ÿ_QAÿ_P@ÿ_P;ÿ^N8ÿZOBÿ^USÿhXXÿfPOÿjayÿƒ©ÿÓzÿíNaÿÚ<;ÿâ@8ÿõ??ÿëBKÿÕBDÿÀA:ÿÙB@ÿß>>ÿÍ?8ÿÆC7ÿÁ8+ÿÑ5,ÿÛ4-ÿÝ81ÿâ:4ÿà92ÿà?6ÿì5+ÿó.(ÿõ.)ÿç1&ÿ×5!ÿÑ7'ÿÇL@ÿÅYNÿèVVÿõ<Eÿí9Fÿû8PÿìN^ÿ¿slÿ“’uÿk‹iÿER>ÿ-(%ÿ.&(ÿ/),ÿ1*0ÿ1*0ÿ/)(ÿclSÿ’š°ÿ|‡½ÿ^`‰ÿHH]ÿ?DKÿPXNÿXXRÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ²¯¨ÿTI:ÿ]P@ÿ`SCÿ`R@ÿ]O?ÿ_TQÿjgxÿxrÿqjƒÿoq–ÿ€†Èÿ²…«ÿ÷klÿøANÿÞAEÿæABÿêAGÿÇ=:ÿ°</ÿÆ@8ÿÐ73ÿÈ?4ÿÁ=/ÿ¼<-ÿÆ6,ÿÚ40ÿÝ:/ÿÝ7,ÿ×3(ÿÕ9*ÿå?1ÿø1-ÿú,)ÿë2)ÿÓ7!ÿÔ6$ÿÒ;/ÿÕF@ÿíEHÿç@DÿÉ>9ÿçCHÿý0Gÿö>UÿåWgÿÅppÿ’k`ÿPE5ÿ3*$ÿ)*'ÿ)+-ÿ**/ÿ,((ÿHM4ÿ„‘xÿ¥›ÿ˜µ«ÿ|ÿm€|ÿp€wÿ_g[ÿÄÅÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèèçÿFD9ÿQI=ÿ_RAÿaTAÿbWPÿiapÿwwšÿz|²ÿtv´ÿu{ºÿƒŠÎÿ—‹Ñÿ½xŒÿîX\ÿòAQÿä>Eÿá@AÿÈ?8ÿ«:*ÿ¾?3ÿØ<7ÿÌB7ÿ½:(ÿ¾:&ÿÄ:)ÿÙ90ÿá70ÿà6+ÿÔ4"ÿÉ5"ÿÌ9&ÿæ;2ÿû13ÿì0-ÿÕ3&ÿÍ8$ÿÑ6(ÿØB<ÿÜIEÿÖ@:ÿ½<0ÿº@4ÿä@Bÿû6Hÿÿ3Tÿø>aÿçRmÿ×Ylÿ¢ITÿX65ÿ*.%ÿ1)+ÿ.'*ÿ41*ÿkuUÿ‹£tÿ™½‹ÿ¢Ç¢ÿ‘·˜ÿ‘¯”ÿ{zÿŒ‘‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿTWNÿ=<5ÿVI<ÿ`UDÿibcÿupŽÿvz¬ÿls´ÿdl¶ÿzzÔÿžÒÿ±®¿ÿ½¨§ÿÏpÿñUVÿñ>FÿÝ:;ÿÄ>3ÿ«;*ÿ·<.ÿÛ<8ÿßB=ÿÄ=-ÿÂ:'ÿÆ9&ÿ×7(ÿç4.ÿê20ÿÚ6,ÿÅ8'ÿÄ8)ÿÏ6*ÿç51ÿí23ÿÛ3/ÿÖ7-ÿÐ:*ÿÔ;0ÿÝPHÿº>2ÿ·;'ÿ±:*ÿÀ@5ÿëBEÿûANÿÿ<Vÿÿ<fÿÿ;oÿñGoÿËJaÿv;=ÿB-(ÿB-)ÿNE6ÿbiNÿzgÿ£oÿ¶ÿŽ¶…ÿ‹±‡ÿƒ¡ÿ]jOÿö÷õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿš˜ÿ-2+ÿA<6ÿSJ<ÿgchÿso“ÿmk¥ÿbf«ÿjq½ÿ‡Ôÿ±±àÿàÞ½ÿîç¥ÿÔ¿’ÿ¹kSÿÞGEÿç;=ÿÊ?3ÿ®<,ÿ·?2ÿÓ83ÿã:4ÿßK>ÿËB3ÿÈ7(ÿ×5(ÿê7-ÿñ2/ÿþ,3ÿæ2/ÿÏ73ÿØ;6ÿÖ8-ÿÝ8,ÿæ42ÿç24ÿì51ÿÜ9,ÿÝD;ÿØFCÿ½<*ÿº:(ÿÅ@7ÿØGEÿïFJÿúCQÿþ@`ÿü?nÿýCtÿýIpÿùZvÿ’ILÿJ:-ÿTM3ÿimLÿjWÿn‘^ÿwžiÿ}¤oÿ€§xÿ}œxÿ`rXÿÈÌÅÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿááßÿ-1'ÿ/1-ÿ><8ÿVUZÿee†ÿTS‹ÿ\^¤ÿssÆÿŽÞÿ§©àÿÇÇÜÿÞÚÆÿÜÖµÿµ²’ÿ®m\ÿåQQÿá87ÿÂ:/ÿ¸B8ÿÄB:ÿÒ7-ÿÜ:)ÿâK>ÿÍ:-ÿØ5-ÿé5/ÿé3,ÿì-%ÿö++ÿõ+7ÿ÷*;ÿå1.ÿÇ8$ÿÏ5&ÿß10ÿó+0ÿä3*ÿÖ>0ÿáMJÿÑA;ÿÂ:)ÿÄ=/ÿÐICÿÕGGÿïFKÿýI\ÿþEhÿþHwÿüJuÿüTuÿæXsÿ€FDÿNH4ÿxuZÿz‰fÿm‰[ÿn“`ÿm˜hÿužsÿyšwÿhdÿ†€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZYNÿ45.ÿ34-ÿBE>ÿVXkÿ[[’ÿeg³ÿy{ÑÿˆˆÜÿ”“ÖÿšÔÿ©¤Óÿµ¬Åÿ˜–ÿvnÿºkfÿöWZÿß77ÿÃ;4ÿÁRGÿÉJ>ÿÖ7*ÿã90ÿÙ@3ÿÖ:/ÿì67ÿó17ÿö/:ÿö+4ÿö'5ÿý6ÿó&3ÿ×3,ÿÐ8)ÿÚ7.ÿÓ7-ÿÒ6)ÿÌ7&ÿØJ>ÿÙFFÿÑ@8ÿÁ9,ÿÅD7ÿÈH?ÿÚJFÿñOVÿ÷G`ÿþJqÿþN{ÿþPxÿüRsÿà[rÿ’fbÿ¢—‹ÿ¥©¢ÿ‹šÿƒ–zÿ}–tÿœÿz˜{ÿj‰gÿ]hTÿ÷÷öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¡šÿIE8ÿ??4ÿ?C.ÿMNIÿ\Zvÿqp²ÿ…†äÿ„…áÿ†‡Òÿ‡…ÎÿŒ†Òÿ•ŒÊÿ‹€¯ÿngqÿ}b]ÿÈsoÿñZYÿâ=;ÿ½<3ÿÁSEÿÌ@5ÿÞ2+ÿâ;1ÿÞ>0ÿë44ÿù6@ÿü"/ÿü$2ÿó)<ÿõ,Mÿ÷2Kÿð>Hÿè49ÿï66ÿå=4ÿÍ?0ÿÆ9'ÿÓ>0ÿßBAÿâLKÿÈ:0ÿÀ<+ÿ¾@/ÿÃB5ÿØMIÿëS[ÿúRkÿüRvÿ÷XzÿüRpÿñVnÿ¿ptÿ¶›’ÿáÛßÿÕÎÞÿÁ½Äÿ¾¼µÿ¼¾´ÿ¡¬¡ÿsŠqÿYjPÿÐÓÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæåãÿ\SDÿXO@ÿPL9ÿON:ÿSS@ÿig{ÿŠÙÿŒîÿ‚‚Ðÿƒ„Íÿ‡‚ÖÿŒ„Ëÿ‡‚®ÿz_pÿdWOÿŒUJÿ×f`ÿö\Yÿâ?9ÿÄE9ÿÐTEÿÒ1(ÿå94ÿâ;/ÿé3+ÿ÷9=ÿøCIÿñ-1ÿð%+ÿï(<ÿø>ZÿûXiÿõGYÿð2>ÿñ-0ÿÝ94ÿÏ;1ÿÏ5+ÿã97ÿèDCÿâLEÿÊ=.ÿ¼;(ÿ¹<+ÿÀC8ÿÒPNÿð\gÿüVpÿüSuÿþVrÿûUhÿùbpÿÄhiÿòÙÓÿúõüÿ÷éúÿûïùÿñèèÿÞÕÛÿ©¬©ÿbu]ÿ“›‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýüÿyqdÿe[LÿaXHÿ]UDÿ^TCÿa[Oÿxs’ÿŠÑÿ‚~Áÿƒ‚ÂÿŒŠÍÿŒƒÃÿ„} ÿzdlÿc[NÿnWEÿÆYVÿîurÿùrnÿÙIAÿÅ>0ÿÎ<-ÿã@<ÿâA8ÿâ1&ÿí/+ÿð@BÿíEIÿå65ÿà01ÿê=Jÿ÷[fÿïLSÿÖ7<ÿÄ3-ÿÊ;/ÿàFCÿÜ97ÿß85ÿß1.ÿÖ7-ÿÐ<0ÿÁ<-ÿ³;+ÿ±<.ÿ¹?2ÿâ\XÿûdpÿüSoÿú]uÿû^nÿýYgÿÙOXÿØž™ÿÿþþÿþúÿÿÿûÿÿþüûÿúñõÿÜÔÚÿ†‘„ÿlycÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«¦žÿi`Qÿh_Oÿf]Nÿe[Mÿe\Hÿg^Uÿtizÿzq’ÿupšÿ€|«ÿ„z ÿ|q…ÿmb^ÿe\Kÿb_Eÿ¡XNÿßaeÿï|ÿòmfÿÇ8,ÿÃ8'ÿÕ?5ÿáGDÿá:3ÿæ0*ÿÛ3*ÿÚAAÿëNTÿêPTÿáEIÿÛ>Cÿß=?ÿË72ÿ£7&ÿ™2ÿÈD;ÿÝLHÿÕ=7ÿÒ7+ÿÈ7'ÿÉ8,ÿÐI=ÿµ</ÿ«:,ÿ­;,ÿÊNAÿîieÿöhpÿôesÿðouÿógsÿØgkÿ¨gcÿáÇÄÿüúúÿýýþÿþû÷ÿÿûûÿúóöÿÆÄÁÿ‹“…ÿÞáÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâàÝÿi`Qÿi`Qÿi`Qÿh_Pÿi`Pÿi`Kÿh_Pÿmb^ÿg^`ÿ`\dÿkdlÿoa\ÿl\Nÿc\Hÿg]Hÿz[GÿÁXUÿðgiÿðleÿËA4ÿ½:$ÿÉ;*ÿÓ9/ÿÖ90ÿà70ÿÔ8-ÿÆ9-ÿâMLÿôVaÿóZbÿâDHÿè5<ÿÝ69ÿÓIEÿ¿FAÿº@:ÿÄ:7ÿÕD?ÿÇ9+ÿ·9%ÿµ9(ÿÒJ@ÿÈ?5ÿ¹8-ÿ«9+ÿ±>/ÿØ\Sÿìfhÿïdmÿðpqÿùouÿëyÿ„raÿŽ~uÿóåæÿûÿÿÿýûùÿÿúøÿþðôÿæÛÚÿÉÈ¿ÿÑÔÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿofXÿi`Qÿi`QÿjaRÿjaTÿjaVÿi`Qÿh_Lÿf]Iÿ^XIÿUREÿ_VEÿj\Hÿj^Kÿj^Mÿw^KÿšUDÿèPPÿçIEÿÒ=0ÿÆ:&ÿÊ:)ÿÕ6+ÿÎ:+ÿÖ8-ÿÖ9.ÿÃ<*ÿÃ=1ÿÑ>@ÿñYcÿù_fÿô08ÿñ0=ÿ÷VbÿódmÿÜRTÿáRQÿÛIEÿÌ=3ÿÄ8*ÿ°9)ÿ¿>4ÿÖ@:ÿØ82ÿÓ92ÿ»9,ÿ¿G>ÿðqtÿôlvÿ÷krÿüioÿýj{ÿ˜ŽzÿQ\BÿÝÈÆÿþýÿÿýýýÿÿûøÿüóòÿèÛÙÿïæÚÿèêâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦ —ÿi`Qÿi`QÿlcTÿkaSÿl`Zÿk`[ÿjaRÿibKÿg`IÿYTBÿMI8ÿZTAÿf_Jÿw_OÿŽYMÿ¢M>ÿÑ;3ÿä52ÿÝ2*ÿ×7&ÿÒ8(ÿÖ4)ÿÌ9*ÿÈ8)ÿÕ:-ÿÇ:*ÿÃ>0ÿÅ;5ÿÕFHÿêW]ÿç?Aÿò2;ÿöERÿûbkÿ÷[cÿáGDÿÛ?<ÿ×C<ÿÙ=7ÿÔ64ÿÌ93ÿÝF>ÿæ40ÿö11ÿä5/ÿÀ8-ÿÞb`ÿúyÿûu}ÿýmvÿüWiÿºmkÿ_sPÿ¿µ¥ÿüùøÿÿþÿÿýþýÿþÿøÿóíèÿïçÙÿø÷èÿþþüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛÙÕÿiaQÿkbSÿkaSÿjaRÿlbVÿlbVÿlcRÿkbTÿkaTÿg_LÿSP<ÿHI7ÿQSAÿd_Pÿš\Sÿ·G?ÿ½7,ÿÚ3,ÿâ4+ÿÙ7%ÿÑ9&ÿÜ5+ÿÈ7)ÿÁ<*ÿÎA2ÿÐ=/ÿÇ:,ÿÇ:/ÿÉ<4ÿÕLFÿÔE;ÿâ:5ÿî>EÿíDIÿõINÿß73ÿá75ÿÜ@9ÿÝ?8ÿì37ÿö5>ÿé><ÿâ3.ÿû.1ÿ÷/0ÿÜ5,ÿÊF=ÿðuvÿý}…ÿþsÿþSgÿêReÿŠ˜rÿª…ÿõðçÿÿÿÿÿ÷þúÿïÿñÿüýöÿôñâÿúùâÿüýôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿsm^ÿibRÿjcSÿibRÿjbSÿkbSÿkcQÿldPÿlbVÿlbSÿf^KÿNN=ÿ@F7ÿBI<ÿkSFÿÂLJÿÏ5/ÿÆ9+ÿÜ8.ÿÛ7+ÿÐ:'ÿÕ:+ÿÁ:*ÿ»;)ÿÉ=.ÿÕA5ÿÉ9*ÿÈ9)ÿË8,ÿÏ>3ÿÊ<1ÿÕ3'ÿï-3ÿô-<ÿõ09ÿò53ÿë52ÿß81ÿ×91ÿç64ÿù1<ÿô7;ÿá5/ÿì2.ÿ÷/1ÿï1-ÿÉ6(ÿÖ^Yÿþ…Šÿüt€ÿýXmÿúB]ÿ—€cÿ}—eÿÆÊ«ÿÛçÒÿ×éÖÿÒñÖÿäôÞÿûûíÿþùãÿýûìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸœ‘ÿibRÿkcSÿibRÿibRÿjbSÿkbSÿlcSÿlcTÿnbTÿmcTÿb]LÿII:ÿ:C4ÿAF3ÿŠRCÿÞHFÿÇ=/ÿÌ:*ÿÚ8+ÿÕ8*ÿÔ9*ÿÅ;+ÿ´8'ÿÑ<2ÿßE<ÿÁ9*ÿÅ:(ÿË8(ÿÒ9+ÿÖ;/ÿÜ5.ÿö06ÿý*<ÿü'>ÿÿ 9ÿ÷+5ÿè61ÿß:1ÿä95ÿç::ÿë66ÿÞ5.ÿä4,ÿõ00ÿö//ÿ×3'ÿÃI>ÿú‰Šÿÿx†ÿýYqÿøC\ÿ©VLÿf|Kÿx…Zÿƒšrÿ‘±‰ÿ”¹ÿ¬Ð¤ÿßéÎÿùïÞÿøðáÿþýûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÕÐÿhcSÿhcSÿhcSÿibRÿjbSÿkbSÿkbSÿlcTÿmbSÿpaTÿi`Sÿ\VFÿEA1ÿ8B*ÿiK7ÿ·ZLÿßKFÿÊ:,ÿÐ8(ÿÓ9*ÿÕ8*ÿÐ:+ÿ³:)ÿ³7'ÿÔ?6ÿÃ=/ÿº:)ÿÇ9*ÿÑ5*ÿÚ5,ÿç96ÿô4=ÿö.=ÿõ,<ÿþ%:ÿþ&8ÿï28ÿß;5ÿä95ÿê77ÿé65ÿÜ5-ÿâ6*ÿó0.ÿù/2ÿé1,ÿÄ<0ÿätrÿþz†ÿÿTpÿü?aÿÁENÿVh<ÿr†XÿxŽbÿn“`ÿvžfÿŠ·{ÿ¦Å•ÿØÙÂÿïàÕÿõïêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøø÷ÿro`ÿgdRÿgdRÿhcSÿicSÿkcSÿlcTÿlcTÿlbSÿk_Sÿj`Vÿpk^ÿb\HÿEF-ÿzJ<ÿ¿AAÿàRRÿèKJÿÍ:-ÿÎ:+ÿÑ:)ÿÒ:)ÿ¼<-ÿ™6ÿ·=,ÿÐ?3ÿÑD8ÿÎ=3ÿÕ<4ÿà:4ÿé:7ÿï7;ÿî2=ÿì9?ÿð47ÿ÷09ÿï4;ÿÜ:6ÿà;5ÿë65ÿë44ÿá5/ÿÞ7*ÿì2+ÿ÷03ÿö0/ÿÓ8-ÿÈOKÿüz†ÿüSoÿþ?eÿº@OÿW\9ÿq•\ÿƒ¡mÿ€¦oÿƒ«oÿ†¯pÿŠ·vÿ™²„ÿÐƶÿÞÏÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™—ÿheWÿheUÿgdSÿgdRÿjcSÿlcUÿmdUÿlbRÿf^Tÿ{voÿš™”ÿ¨¤œÿ…‚qÿcR>ÿ‘G@ÿ½HHÿìcfÿÛKEÿÍ>4ÿÐ=2ÿÒ</ÿÇ<0ÿ7#ÿœ:"ÿ½7)ÿÓ:1ÿà:9ÿá<;ÿè::ÿé98ÿè96ÿð@CÿìMOÿîRMÿì<;ÿæ76ÿÞ75ÿß:6ÿê65ÿï47ÿâ5/ÿÛ7(ÿâ7'ÿî4.ÿô11ÿà5-ÿÀ:4ÿüw‚ÿýSpÿü?cÿ¼?Pÿ^Q:ÿg†Qÿ{ eÿ~¦kÿ|¥fÿ‚§jÿƒ²nÿ…²qÿ¨±ÿö¯ÿ÷ôôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÏÊÿheVÿheVÿheWÿheWÿidUÿlcVÿmdUÿlcSÿlf[ÿ‘’ÿÑÓÓÿö÷ùÿßÝÙÿ‘‹}ÿ=>,ÿi?5ÿ£HEÿËMLÿÐE@ÿÓE?ÿ×E>ÿÖB;ÿÄ?8ÿ¨=,ÿ¶<,ÿÒ:2ÿé:=ÿæ8<ÿí7;ÿë79ÿÖ;5ÿÍ>5ÿÙLFÿÒGBÿÞ=9ÿà83ÿß85ÿá88ÿé89ÿò69ÿç63ÿÖ7*ÿÚ8&ÿã6'ÿî5,ÿæ4*ÿ×>8ÿí^fÿþNmÿÿ<dÿÀHYÿKC.ÿYnHÿw˜`ÿvž`ÿvž_ÿ{¡dÿ~¨iÿ°gÿ‘±yÿ¶¹¤ÿãààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷öÿheVÿheVÿheVÿheVÿheVÿjdYÿmeWÿkeRÿibVÿz}}ÿÐÖÙÿÿÿÿÿÿÿÿÿøéáÿž}ÿBH2ÿ<=.ÿ^@5ÿ¤E@ÿÍB=ÿÐD=ÿÚGDÿäGKÿÐHBÿÎF<ÿßGAÿäDBÿÖ?=ÿÊ85ÿÕ78ÿÏ62ÿ±9(ÿ³:*ÿÈ;1ÿÝ:8ÿâ85ÿã84ÿæ78ÿé8<ÿî7;ÿë78ÿØ8/ÿÐ9)ÿÕ8&ÿ×9&ÿÛ9&ÿÛ=5ÿñU`ÿþJjÿü=fÿ±IUÿND2ÿBJ0ÿl…Wÿv™\ÿp˜Wÿv]ÿz£bÿ{©^ÿ†±jÿ˜³†ÿ¬¶¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’…ÿheVÿheVÿifWÿhfVÿieWÿmdYÿjfSÿmldÿŒ‘•ÿÀÊÏÿñüüÿüÿûÿþþôÿíðÕÿŒ“sÿAJ3ÿ<91ÿQ;3ÿ©EDÿÓA@ÿÖC@ÿÝAEÿàFGÿæHGÿìBCÿãEBÿÂB;ÿ¡?1ÿ£>3ÿ¤:/ÿ¢;*ÿ¥<(ÿ¸:*ÿÜ<5ÿì79ÿç78ÿç76ÿë8;ÿì6=ÿì6:ÿ×;4ÿÃ9)ÿÆ;)ÿÇ<$ÿÈ<$ÿ×?5ÿúUfÿÿAfÿó<cÿ¦?KÿQE5ÿIF2ÿS`=ÿmŠQÿh’Lÿp˜TÿwŸ\ÿy¥Zÿ¬_ÿ‡«pÿ|“uÿíðíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈÈÂÿfdTÿhfVÿifWÿifWÿjeVÿlc[ÿlfWÿprcÿ¢¨ªÿÝâçÿúûûÿýÿûÿúüïÿùüìÿàäÇÿ‚†eÿB@.ÿ882ÿYCAÿÇjjÿÖJGÿÝDBÿßCDÿàDDÿäB@ÿäB?ÿÎ@=ÿž>0ÿŠC2ÿ€B0ÿ†>,ÿ–>+ÿ£=(ÿÀ:-ÿå96ÿð67ÿè85ÿå:4ÿè88ÿê8;ÿÚ>8ÿ½;,ÿ´<)ÿ¸<)ÿ¸:$ÿÒA9ÿõH\ÿÿ;fÿôAgÿ6Cÿ34'ÿ=>-ÿBG*ÿ\qBÿfŒGÿi’Lÿq™XÿtžUÿsŸSÿ{¢^ÿv‘cÿ½Ç¸ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`gRÿefUÿhfWÿifWÿjeVÿmd[ÿmgZÿhjTÿ‰‡ÿÝäéÿÿÿÿÿþþüÿ÷ùñÿøúòÿüüëÿÓ̱ÿcaLÿKKAÿ~xvÿɳ®ÿÝŠÿÜ<=ÿàACÿÝDDÿÚFBÿÛD>ÿÕB=ÿ¬<3ÿŠ?1ÿ…<1ÿ€;1ÿ„;.ÿŠ<,ÿ:*ÿ¾:0ÿæ<6ÿë<6ÿä=4ÿá=9ÿá<<ÿÙ=;ÿ»=1ÿ§;)ÿ¥;(ÿ¢7$ÿÀ=6ÿþL_ÿù=bÿÊ?Yÿk;@ÿ/0,ÿ/4ÿRP-ÿn|Rÿc|JÿbŠDÿj’Oÿk’PÿfJÿaˆEÿVr=ÿx‹iÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆÉÁÿŒ“ƒÿgkWÿigXÿjfWÿldYÿmf[ÿhkUÿkvlÿºÅËÿþÿÿÿþþüÿôõíÿæêÝÿòõãÿááÄÿeÿ^gWÿ¨§ ÿêáÞÿùïéÿ礠ÿÓMMÿ×ABÿÝBBÿÖD?ÿÔE=ÿÈA:ÿ–<0ÿ€<1ÿ„:3ÿ‚;1ÿ~;1ÿ‚;.ÿ’9+ÿ°;/ÿÑ=3ÿÜB7ÿÓA9ÿÊ=:ÿÃ?8ÿ­:-ÿœ;)ÿ”:&ÿ7%ÿ³F>ÿòRaÿæG]ÿ®KTÿL=2ÿ41,ÿ@?,ÿpzJÿ¡µ€ÿwcÿ_…AÿgŽHÿkLÿd‹Hÿ\EÿVr@ÿPh;ÿúûúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòóñÿ¼¼´ÿˆƒxÿlgYÿlf[ÿiiWÿeq_ÿ˜§¨ÿéîñÿþÿýÿúûòÿèíÛÿèîÔÿääÊÿ¹¸ ÿ”˜‰ÿ»Áºÿõòðÿÿýüÿÿÿþÿè¹²ÿÊYRÿÑ@?ÿÖA?ÿÑD<ÿÙB:ÿ²?5ÿ„=-ÿ<0ÿ†:/ÿ‚;.ÿ~;.ÿ{;,ÿ:+ÿž:.ÿ´=/ÿµ;/ÿ«90ÿ8,ÿ–8)ÿ:(ÿŒ:'ÿ„7$ÿ›C9ÿÉVYÿÂSWÿ‘[PÿB?+ÿ9>&ÿWK5ÿ‡›eÿªÊŠÿ¯xÿc‡Gÿk‘Iÿo”PÿiHÿd†JÿaHÿ_xEÿ¿É¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿåäâÿ¯­§ÿwviÿemZÿ‚’ÿØáæÿþÿþÿÿÿöÿóøåÿåëÎÿæäËÿÚÒÄÿÖÎÈÿáàÝÿ÷÷öÿÿÿýÿýÿþÿýúöÿậÿ±J>ÿÆ<8ÿÓ@>ÿØA<ÿÇB:ÿ”<.ÿ€=-ÿƒ:,ÿ„:+ÿ€:,ÿ~:-ÿ|:.ÿ€9.ÿ‹8-ÿ™8)ÿ“8*ÿ‹9,ÿ†;*ÿƒ;)ÿ;(ÿ|6#ÿ‚<-ÿ¨SKÿ UOÿ^Pÿhd?ÿ\l;ÿoVÿ£iÿš¼~ÿƒpÿWu@ÿgŒDÿp–PÿkJÿi‹Lÿe„JÿeHÿŠ sÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖØÓÿ¬µ²ÿÈÒÙÿøüûÿýþöÿúüëÿäéÎÿØØ¿ÿäÛÔÿôèêÿÿúÿÿýýýÿÿÿþÿÿÿýÿþþýÿÿÿÿÿí×ÑÿÀ`WÿÈA;ÿÏB=ÿÍC=ÿ©?6ÿ†</ÿ€<,ÿ:+ÿ9,ÿ~:-ÿ~:/ÿ|:0ÿ{80ÿ€9-ÿƒ:,ÿ<,ÿ€9+ÿ}8*ÿx:+ÿv7'ÿƒ=.ÿ“NBÿ“WKÿ]SÿqZÿ—`ÿ†¢cÿpˆSÿrWÿUbEÿEU3ÿa?ÿk“IÿgHÿf‰IÿfˆLÿf†Hÿg‰Gÿõ÷óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûýýÿùûôÿïïÝÿááËÿÌÉ´ÿØÐËÿ÷ïóÿÿûþÿÿÿýÿÿÿýÿþþüÿþþüÿþþýÿþüüÿäžÿ»\OÿÃ?6ÿÊE<ÿ®?9ÿŒ<2ÿ€=/ÿ;-ÿ}9.ÿ}9/ÿ}:0ÿ}:0ÿz90ÿy8/ÿy9/ÿx9/ÿy8-ÿx4)ÿy6,ÿr5)ÿ}</ÿK>ÿ’TIÿ–XRÿŽ^RÿrzUÿL\=ÿ9H,ÿ@F4ÿ79-ÿ9@.ÿ[n>ÿjFÿcŒFÿg‰FÿjNÿgŒKÿiŽIÿËØ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüÿðîåÿÓ̽ÿËÁ¹ÿðèíÿÿÿþÿþÿüÿþþüÿþþüÿþþüÿþþüÿÿýûÿûÿýÿèÝÒÿ¹n]ÿ¼C5ÿ¯E6ÿA6ÿ>4ÿ~<0ÿ}:.ÿ|9/ÿ|;1ÿ{;2ÿw:3ÿt8/ÿt8.ÿu9/ÿt9.ÿr6,ÿp5*ÿn3(ÿu<1ÿ†P@ÿRGÿšTPÿ–^Xÿi_Dÿ2=)ÿ08/ÿ;>6ÿ76/ÿ8:/ÿJX9ÿjŠHÿh‘HÿjKÿlOÿk’Oÿh’Hÿ˜¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõóòÿóîñÿþúÿÿýþýÿþþüÿþþüÿþþüÿþþüÿûÿýÿüþÿÿûþÿÿðäÞÿÇlÿ¹>6ÿ¡=9ÿ…?8ÿ‚<3ÿ~:1ÿ{9/ÿ|90ÿz:3ÿt;2ÿn9/ÿm7-ÿo8-ÿp8,ÿo6-ÿm3*ÿk3(ÿp9.ÿ‚MDÿSJÿ™QMÿŽ\TÿofMÿZjAÿGT<ÿLRBÿA@/ÿ9:.ÿ<F1ÿi…Kÿr˜Nÿl”Pÿl“Mÿn—Mÿn™Nÿz¦\ÿöùôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþþþÿþþþÿÿþüÿþþüÿþþýÿýþþÿþúþÿÿüýÿðãÕÿ¹u^ÿŸ=1ÿŽ:5ÿxA=ÿu>7ÿw:1ÿv7.ÿv80ÿs8/ÿj8/ÿi8.ÿh7-ÿj8-ÿl7/ÿk4,ÿh3)ÿg3'ÿ}D;ÿ’SNÿ’UNÿ„^Oÿ^`EÿPf>ÿ[oDÿP^>ÿEI/ÿ9:)ÿ8>.ÿ\rDÿt˜Pÿp™Rÿo—Nÿn™Iÿt¤Pÿu¤UÿÓâËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþüÿÿýùÿþýýÿûÿúÿûÿøÿþÿýÿÿþòÿÑ«–ÿ›UEÿ~9-ÿpA6ÿq?6ÿq>4ÿp;1ÿo6-ÿk7/ÿh7/ÿf7,ÿf7-ÿh7.ÿj6.ÿf3*ÿ`.$ÿp8/ÿ“SNÿ‰[Rÿy^Oÿ_cIÿUkEÿTi@ÿBT.ÿ6@*ÿ:;.ÿ8;/ÿK\:ÿp‘NÿsœPÿpœLÿsžNÿx¦Vÿu¤Wÿš¸‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþþÿÿýýÿýþûÿýüøÿþýýÿøóíÿ͵¦ÿ„U=ÿl=+ÿo;3ÿs?9ÿp?7ÿj<3ÿl81ÿk61ÿg5/ÿf6.ÿg7.ÿi60ÿg5-ÿ_0&ÿe5+ÿMGÿwXLÿYSCÿIO<ÿ?L5ÿ<K0ÿ?K0ÿ8=+ÿ:<1ÿ7:0ÿ:C.ÿf‚GÿuPÿqžNÿv£Tÿ{¦^ÿm˜Rÿi‘Uÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýûùÿ÷îêÿþûüÿÿÿþÿüûôÿÀª˜ÿ†^Oÿj8/ÿo?6ÿn?7ÿn<5ÿp73ÿl60ÿh70ÿh81ÿk71ÿk9/ÿg:0ÿi=4ÿkIAÿVF=ÿ>@1ÿ4>/ÿ06-ÿ37.ÿ8?/ÿ@G4ÿ8>0ÿ6;1ÿ7:,ÿTe;ÿu™PÿpžQÿv¦WÿtžYÿfNÿa‰KÿÔßÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿþÿþÿýÿÿÿú÷ðÿçÜÊÿ¥ŽyÿfF4ÿg@3ÿi>3ÿk<5ÿj;3ÿe<1ÿc<2ÿgB6ÿgC4ÿfF4ÿ{eTÿl\Oÿ782ÿ36,ÿ19,ÿ4;0ÿ573ÿ05.ÿ4=0ÿ9F4ÿ3<0ÿ592ÿCJ2ÿfIÿuŸXÿv£Zÿi”Rÿ^†Iÿd‹Kÿ›³ŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿóÿãßÆÿi\BÿXG.ÿ_I3ÿ`F6ÿ_D6ÿ]D4ÿ_G7ÿQ=,ÿ[M9ÿ`O7ÿodMÿnmZÿ8>3ÿ06-ÿ27-ÿ46+ÿ38,ÿ280ÿ/9-ÿ5C2ÿ3A0ÿ.4/ÿ8:-ÿRc9ÿušWÿtZÿbŠLÿ]…GÿeJÿb†Jÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýúÿ½º­ÿqkSÿVN2ÿWN5ÿTO9ÿSL7ÿ\WAÿNL6ÿFI/ÿVT8ÿ``CÿjpYÿ=F6ÿ-4*ÿ07-ÿ16+ÿ16+ÿ/7,ÿ09*ÿ0;,ÿ6C2ÿ4=0ÿ12)ÿ>H.ÿoUÿqšWÿ^Gÿ\Eÿb‰Jÿ_…IÿÙâÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÞÙÿ žÿ_]FÿMO6ÿOT;ÿS]Aÿ>G,ÿAG*ÿceGÿejPÿ4@,ÿ16.ÿ17-ÿ17-ÿ05,ÿ/3-ÿ/3-ÿ/5-ÿ07-ÿ8A2ÿ49+ÿ6<*ÿbzRÿm”XÿWxAÿZ}Dÿ`ƒJÿ_ƒJÿœ²’ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍÎÇÿŠŽ}ÿEN.ÿGO/ÿHO0ÿUV8ÿdcIÿBF3ÿ5;1ÿ4:1ÿ39/ÿ17-ÿ.3,ÿ-2-ÿ.3-ÿ.1,ÿ/6.ÿ5>1ÿ38*ÿO^Eÿj‹_ÿVxCÿUtAÿ]}Iÿ_‚Iÿi‡Zÿûüúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ½¿³ÿˆŽsÿ`cDÿ]\BÿWS>ÿ?B4ÿ8>4ÿ7>4ÿ6<1ÿ28/ÿ.3-ÿ.3-ÿ,1+ÿ,2,ÿ.8/ÿ1>2ÿ@M;ÿYpRÿHi=ÿNm=ÿUrBÿ_~JÿXvHÿÞäÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððíÿ±±¦ÿtr^ÿQO8ÿCC5ÿ:>5ÿ8>4ÿ8>5ÿ7;6ÿ382ÿ.3-ÿ*/)ÿ+2,ÿ+5-ÿ2>/ÿ>K6ÿBT8ÿKf>ÿLh<ÿYwGÿ[xJÿœ¨–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÞÚÿšÿSRFÿ;?5ÿ9@6ÿ:@9ÿ9>8ÿ5:4ÿ/4.ÿ,1+ÿ+2+ÿ+5,ÿ0:,ÿ4@-ÿ@R7ÿG_;ÿUoGÿ\xOÿZjUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈÉÆÿ„}ÿ8C5ÿ:A8ÿ:?8ÿ9>8ÿ372ÿ+1+ÿ*/*ÿ-3,ÿ6?4ÿ:E3ÿ@P7ÿRfFÿ\rRÿ>P=ÿÝàÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿµ¸´ÿmskÿ:B7ÿ:@8ÿ6;6ÿ.3/ÿ,0,ÿ.1.ÿ9@7ÿ7B1ÿAM7ÿ[jSÿHVEÿ“™”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëìëÿ¤¨¢ÿ]e]ÿ9B8ÿ270ÿ+//ÿ.40ÿ8D5ÿ5B-ÿHVAÿKWIÿEMGÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÙÛÙÿ‘•ÿELFÿ2>.ÿ6H/ÿ7K2ÿ:K4ÿAN>ÿ6@7ÿàâàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆÊÄÿˆ˜|ÿGb<ÿ:L6ÿ;L5ÿ7E5ÿ¢œÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýüÿµ¼´ÿqmÿFZ@ÿU`Sÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìîëÿ ¦žÿÿÿÿÿ \ No newline at end of file
diff --git a/PerlMagick/t/reference/wmf/clock.miff b/PerlMagick/t/reference/wmf/clock.miff
index 8c944c670..5087879f6 100644
--- a/PerlMagick/t/reference/wmf/clock.miff
+++ b/PerlMagick/t/reference/wmf/clock.miff
Binary files differ
diff --git a/PerlMagick/t/reference/wmf/wizard.miff b/PerlMagick/t/reference/wmf/wizard.miff
index a34c80d54..295e3939c 100644
--- a/PerlMagick/t/reference/wmf/wizard.miff
+++ b/PerlMagick/t/reference/wmf/wizard.miff
Binary files differ
diff --git a/coders/art.c b/coders/art.c
index 44aa3f237..4df65f40e 100644
--- a/coders/art.c
+++ b/coders/art.c
@@ -144,7 +144,7 @@ static Image *ReadARTImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Initialize image colormap.
*/
- if (AcquireImageColormap(image,2) == MagickFalse)
+ if (AcquireImageColormap(image,2,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (image_info->ping != MagickFalse)
{
@@ -331,7 +331,7 @@ static MagickBooleanType WriteARTImage(const ImageInfo *image_info,Image *image,
/*
Convert image to a bi-level image.
*/
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
quantum_info=AcquireQuantumInfo(image_info,image);
for (y=0; y < (ssize_t) image->rows; y++)
{
diff --git a/coders/bmp.c b/coders/bmp.c
index 81e2a9fca..feca87928 100644
--- a/coders/bmp.c
+++ b/coders/bmp.c
@@ -855,7 +855,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
if (image->debug != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" Reading colormap of %.20g colors",(double) image->colors);
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
bmp_colormap=(unsigned char *) AcquireQuantumMemory((size_t)
image->colors,4*sizeof(*bmp_colormap));
diff --git a/coders/braille.c b/coders/braille.c
index d5876257b..3b78180bc 100644
--- a/coders/braille.c
+++ b/coders/braille.c
@@ -249,7 +249,7 @@ static MagickBooleanType WriteBRAILLEImage(const ImageInfo *image_info,
(void) WriteBlobString(image,buffer);
(void) WriteBlobString(image,"\n");
}
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
polarity = 0;
if (image->storage_class == PseudoClass) {
polarity=(Quantum) (GetPixelPacketIntensity(&image->colormap[0]) >=
diff --git a/coders/caption.c b/coders/caption.c
index 03b49d7b5..61826ad73 100644
--- a/coders/caption.c
+++ b/coders/caption.c
@@ -132,7 +132,8 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info,
/*
Format caption.
*/
- property=InterpretImageProperties(image_info,image,image_info->filename);
+ property=InterpretImageProperties(image_info,image,image_info->filename,
+ exception);
(void) SetImageProperty(image,"caption",property);
property=DestroyString(property);
caption=ConstantString(GetImageProperty(image,"caption"));
diff --git a/coders/clip.c b/coders/clip.c
index f43d9250e..92510ca78 100644
--- a/coders/clip.c
+++ b/coders/clip.c
@@ -161,13 +161,13 @@ static MagickBooleanType WriteCLIPImage(const ImageInfo *image_info,
status;
if (image->clip_mask == (Image *) NULL)
- (void) ClipImage(image);
+ (void) ClipImage(image,exception);
if (image->clip_mask == (Image *) NULL)
ThrowWriterException(CoderError,"ImageDoesNotHaveAClipMask");
clip_image=CloneImage(image->clip_mask,0,0,MagickTrue,exception);
if (clip_image == (Image *) NULL)
return(MagickFalse);
- (void) SetImageType(clip_image,TrueColorType);
+ (void) SetImageType(clip_image,TrueColorType,exception);
(void) CopyMagickString(clip_image->filename,image->filename,MaxTextExtent);
write_info=CloneImageInfo(image_info);
(void) SetImageInfo(write_info,1,exception);
diff --git a/coders/cut.c b/coders/cut.c
index 05a7bb375..046766b8f 100644
--- a/coders/cut.c
+++ b/coders/cut.c
@@ -445,7 +445,7 @@ static Image *ReadCUTImage(const ImageInfo *image_info,ExceptionInfo *exception)
if(PalHeader.MaxIndex<1) goto ErasePalette;
image->colors=PalHeader.MaxIndex+1;
- if (AcquireImageColormap(image,image->colors) == MagickFalse) goto NoMemory;
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse) goto NoMemory;
if(PalHeader.MaxRed==0) PalHeader.MaxRed=(unsigned int) QuantumRange; /*avoid division by 0*/
if(PalHeader.MaxGreen==0) PalHeader.MaxGreen=(unsigned int) QuantumRange;
@@ -491,7 +491,7 @@ static Image *ReadCUTImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
image->colors=256;
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
{
NoMemory:
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
diff --git a/coders/dcm.c b/coders/dcm.c
index 36b7d6995..3175a3cfb 100644
--- a/coders/dcm.c
+++ b/coders/dcm.c
@@ -3646,7 +3646,7 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception)
one=1;
if (colors == 0)
colors=one << depth;
- if (AcquireImageColormap(image,colors) == MagickFalse)
+ if (AcquireImageColormap(image,colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (redmap != (int *) NULL)
for (i=0; i < (ssize_t) colors; i++)
diff --git a/coders/dib.c b/coders/dib.c
index 20bcc8f47..7cf148c15 100644
--- a/coders/dib.c
+++ b/coders/dib.c
@@ -578,7 +578,7 @@ static Image *ReadDIBImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Read DIB raster colormap.
*/
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
length=(size_t) image->colors;
dib_colormap=(unsigned char *) AcquireQuantumMemory(length,
diff --git a/coders/djvu.c b/coders/djvu.c
index 5d6ae7825..2f803a552 100644
--- a/coders/djvu.c
+++ b/coders/djvu.c
@@ -652,7 +652,7 @@ static Image *ReadOneDJVUImage(LoadContext* lc,const int pagenum,
image->storage_class = PseudoClass;
image->depth = 8UL; /* i only support that? */
image->colors= 2;
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,
"MemoryAllocationFailed");
} else {
@@ -713,7 +713,7 @@ static Image *ReadOneDJVUImage(LoadContext* lc,const int pagenum,
#if 0
/* palette */
- if (AcquireImageColormap(image,2) == MagickFalse)
+ if (AcquireImageColormap(image,2,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
/*
Monochrome colormap. mmc: this the default!
diff --git a/coders/ept.c b/coders/ept.c
index 59b334df9..b2527cbe6 100644
--- a/coders/ept.c
+++ b/coders/ept.c
@@ -432,7 +432,7 @@ static MagickBooleanType WriteEPTImage(const ImageInfo *image_info,Image *image,
GetQuantizeInfo(&quantize_info);
quantize_info.dither=IsPaletteImage(write_image,exception) == MagickFalse
? MagickTrue : MagickFalse;
- (void) QuantizeImage(&quantize_info,write_image);
+ (void) QuantizeImage(&quantize_info,write_image,exception);
}
write_info->compression=NoCompression;
ept_info.tiff=(unsigned char *) ImageToBlob(write_info,write_image,
diff --git a/coders/fax.c b/coders/fax.c
index 858349bed..ad02240bc 100644
--- a/coders/fax.c
+++ b/coders/fax.c
@@ -161,7 +161,7 @@ static Image *ReadFAXImage(const ImageInfo *image_info,ExceptionInfo *exception)
if (image->rows == 0)
image->rows=3508;
image->depth=8;
- if (AcquireImageColormap(image,2) == MagickFalse)
+ if (AcquireImageColormap(image,2,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
/*
Monochrome colormap.
@@ -177,7 +177,7 @@ static Image *ReadFAXImage(const ImageInfo *image_info,ExceptionInfo *exception)
(void) CloseBlob(image);
return(GetFirstImageInList(image));
}
- status=HuffmanDecodeImage(image);
+ status=HuffmanDecodeImage(image,exception);
if (status == MagickFalse)
ThrowReaderException(CorruptImageError,"UnableToReadImageData");
if (EOFBlob(image) != MagickFalse)
@@ -332,7 +332,7 @@ static MagickBooleanType WriteFAXImage(const ImageInfo *image_info,Image *image,
*/
if (IsRGBColorspace(image->colorspace) == MagickFalse)
(void) TransformImageColorspace(image,RGBColorspace);
- status=HuffmanEncodeImage(write_info,image,image);
+ status=HuffmanEncodeImage(write_info,image,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
break;
image=SyncNextImageInList(image);
diff --git a/coders/gif.c b/coders/gif.c
index 9d8f722dc..4b5caf190 100644
--- a/coders/gif.c
+++ b/coders/gif.c
@@ -387,11 +387,9 @@ static int ReadBlobLZWByte(LZWInfo *lzw_info)
return(PopLZWStack(lzw_info->stack));
}
-static MagickBooleanType DecodeImage(Image *image,const ssize_t opacity)
+static MagickBooleanType DecodeImage(Image *image,const ssize_t opacity,
+ ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
int
c;
@@ -425,7 +423,6 @@ static MagickBooleanType DecodeImage(Image *image,const ssize_t opacity)
if (lzw_info == (LZWInfo *) NULL)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
- exception=(&image->exception);
pass=0;
offset=0;
for (y=0; y < (ssize_t) image->rows; y++)
@@ -930,7 +927,7 @@ static inline size_t MagickMin(const size_t x,const size_t y)
return(y);
}
-static MagickBooleanType PingGIFImage(Image *image)
+static MagickBooleanType PingGIFImage(Image *image,ExceptionInfo *exception)
{
unsigned char
buffer[256],
@@ -1257,7 +1254,7 @@ static Image *ReadGIFImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Inititialize colormap.
*/
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
{
global_colormap=(unsigned char *) RelinquishMagickMemory(
global_colormap);
@@ -1326,9 +1323,9 @@ static Image *ReadGIFImage(const ImageInfo *image_info,ExceptionInfo *exception)
Decode image.
*/
if (image_info->ping != MagickFalse)
- status=PingGIFImage(image);
+ status=PingGIFImage(image,exception);
else
- status=DecodeImage(image,opacity);
+ status=DecodeImage(image,opacity,exception);
if ((image_info->ping == MagickFalse) && (status == MagickFalse))
{
global_colormap=(unsigned char *) RelinquishMagickMemory(
@@ -1572,7 +1569,7 @@ static MagickBooleanType WriteGIFImage(const ImageInfo *image_info,Image *image,
if (IsImageOpaque(image,exception) != MagickFalse)
{
if ((image->storage_class == DirectClass) || (image->colors > 256))
- (void) SetImageType(image,PaletteType);
+ (void) SetImageType(image,PaletteType,exception);
}
else
{
@@ -1584,7 +1581,7 @@ static MagickBooleanType WriteGIFImage(const ImageInfo *image_info,Image *image,
Identify transparent colormap index.
*/
if ((image->storage_class == DirectClass) || (image->colors > 256))
- (void) SetImageType(image,PaletteBilevelMatteType);
+ (void) SetImageType(image,PaletteBilevelMatteType,exception);
for (i=0; i < (ssize_t) image->colors; i++)
if (image->colormap[i].alpha != OpaqueAlpha)
{
@@ -1602,7 +1599,7 @@ static MagickBooleanType WriteGIFImage(const ImageInfo *image_info,Image *image,
}
if (opacity == -1)
{
- (void) SetImageType(image,PaletteBilevelMatteType);
+ (void) SetImageType(image,PaletteBilevelMatteType,exception);
for (i=0; i < (ssize_t) image->colors; i++)
if (image->colormap[i].alpha != OpaqueAlpha)
{
diff --git a/coders/icon.c b/coders/icon.c
index 92d1ee68c..7d23860e6 100644
--- a/coders/icon.c
+++ b/coders/icon.c
@@ -358,7 +358,7 @@ static Image *ReadICONImage(const ImageInfo *image_info,
*/
one=1;
number_colors=one << icon_info.bits_per_pixel;
- if (AcquireImageColormap(image,number_colors) == MagickFalse)
+ if (AcquireImageColormap(image,number_colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
icon_colormap=(unsigned char *) AcquireQuantumMemory((size_t)
image->colors,4UL*sizeof(*icon_colormap));
diff --git a/coders/info.c b/coders/info.c
index f750cea29..925e6573d 100644
--- a/coders/info.c
+++ b/coders/info.c
@@ -197,7 +197,7 @@ static MagickBooleanType WriteINFOImage(const ImageInfo *image_info,
char
*text;
- text=InterpretImageProperties(image_info,image,format);
+ text=InterpretImageProperties(image_info,image,format,exception);
if (text != (char *) NULL)
{
(void) WriteBlobString(image,text);
diff --git a/coders/jbig.c b/coders/jbig.c
index ac85f397d..4ccf6313e 100644
--- a/coders/jbig.c
+++ b/coders/jbig.c
@@ -195,7 +195,7 @@ static Image *ReadJBIGImage(const ImageInfo *image_info,
image->columns=jbg_dec_getwidth(&jbig_info);
image->rows=jbg_dec_getheight(&jbig_info);
image->compression=JBIG2Compression;
- if (AcquireImageColormap(image,2) == MagickFalse)
+ if (AcquireImageColormap(image,2,exception) == MagickFalse)
{
buffer=(unsigned char *) RelinquishMagickMemory(buffer);
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
@@ -455,7 +455,7 @@ static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info,
/*
Convert pixels to a bitmap.
*/
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
q=pixels;
for (y=0; y < (ssize_t) image->rows; y++)
{
diff --git a/coders/jpeg.c b/coders/jpeg.c
index 68a96e4b7..e5a6d8469 100644
--- a/coders/jpeg.c
+++ b/coders/jpeg.c
@@ -118,6 +118,9 @@ typedef struct _DestinationManager
typedef struct _ErrorManager
{
+ ExceptionInfo
+ *exception;
+
Image
*image;
@@ -309,11 +312,15 @@ static MagickBooleanType JPEGWarningHandler(j_common_ptr jpeg_info,int level)
ErrorManager
*error_manager;
+ ExceptionInfo
+ *exception;
+
Image
*image;
*message='\0';
error_manager=(ErrorManager *) jpeg_info->client_data;
+ exception=error_manager->exception;
image=error_manager->image;
if (level < 0)
{
@@ -349,6 +356,9 @@ static boolean ReadComment(j_decompress_ptr jpeg_info)
ErrorManager
*error_manager;
+ ExceptionInfo
+ *exception;
+
Image
*image;
@@ -365,6 +375,7 @@ static boolean ReadComment(j_decompress_ptr jpeg_info)
Determine length of comment.
*/
error_manager=(ErrorManager *) jpeg_info->client_data;
+ exception=error_manager->exception;
image=error_manager->image;
length=(size_t) ((size_t) GetCharacter(jpeg_info) << 8);
length+=GetCharacter(jpeg_info);
@@ -398,6 +409,9 @@ static boolean ReadICCProfile(j_decompress_ptr jpeg_info)
ErrorManager
*error_manager;
+ ExceptionInfo
+ *exception;
+
Image
*image;
@@ -444,6 +458,7 @@ static boolean ReadICCProfile(j_decompress_ptr jpeg_info)
(void) GetCharacter(jpeg_info); /* markers */
length-=14;
error_manager=(ErrorManager *) jpeg_info->client_data;
+ exception=error_manager->exception;
image=error_manager->image;
profile=BlobToStringInfo((const void *) NULL,length);
if (profile == (StringInfo *) NULL)
@@ -480,6 +495,9 @@ static boolean ReadIPTCProfile(j_decompress_ptr jpeg_info)
ErrorManager
*error_manager;
+ ExceptionInfo
+ *exception;
+
Image
*image;
@@ -540,6 +558,7 @@ static boolean ReadIPTCProfile(j_decompress_ptr jpeg_info)
if (length == 0)
return(MagickTrue);
error_manager=(ErrorManager *) jpeg_info->client_data;
+ exception=error_manager->exception;
image=error_manager->image;
profile=BlobToStringInfo((const void *) NULL,length);
if (profile == (StringInfo *) NULL)
@@ -579,6 +598,9 @@ static boolean ReadProfile(j_decompress_ptr jpeg_info)
ErrorManager
*error_manager;
+ ExceptionInfo
+ *exception;
+
Image
*image;
@@ -611,6 +633,7 @@ static boolean ReadProfile(j_decompress_ptr jpeg_info)
marker=jpeg_info->unread_marker-JPEG_APP0;
(void) FormatLocaleString(name,MaxTextExtent,"APP%d",marker);
error_manager=(ErrorManager *) jpeg_info->client_data;
+ exception=error_manager->exception;
image=error_manager->image;
profile=BlobToStringInfo((const void *) NULL,length);
if (profile == (StringInfo *) NULL)
@@ -986,6 +1009,7 @@ static Image *ReadJPEGImage(const ImageInfo *image_info,
jpeg_info.err->emit_message=(void (*)(j_common_ptr,int)) JPEGWarningHandler;
jpeg_info.err->error_exit=(void (*)(j_common_ptr)) JPEGErrorHandler;
jpeg_pixels=(JSAMPLE *) NULL;
+ error_manager.exception=exception;
error_manager.image=image;
if (setjmp(error_manager.error_recovery) != 0)
{
@@ -1152,7 +1176,7 @@ static Image *ReadJPEGImage(const ImageInfo *image_info,
if (jpeg_info.out_color_space == JCS_CMYK)
image->colorspace=CMYKColorspace;
if ((image_info->colors != 0) && (image_info->colors <= 256))
- if (AcquireImageColormap(image,image_info->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image_info->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if ((jpeg_info.output_components == 1) &&
(jpeg_info.quantize_colors == MagickFalse))
@@ -1161,7 +1185,7 @@ static Image *ReadJPEGImage(const ImageInfo *image_info,
colors;
colors=(size_t) GetQuantumRange(image->depth)+1;
- if (AcquireImageColormap(image,colors) == MagickFalse)
+ if (AcquireImageColormap(image,colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
}
if (image->debug != MagickFalse)
@@ -1780,6 +1804,7 @@ static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info,
jpeg_info.err=jpeg_std_error(&jpeg_error);
jpeg_info.err->emit_message=(void (*)(j_common_ptr,int)) JPEGWarningHandler;
jpeg_info.err->error_exit=(void (*)(j_common_ptr)) JPEGErrorHandler;
+ error_manager.exception=exception;
error_manager.image=image;
jpeg_pixels=(JSAMPLE *) NULL;
if (setjmp(error_manager.error_recovery) != 0)
diff --git a/coders/label.c b/coders/label.c
index 5c73428d9..f3bd5ebbf 100644
--- a/coders/label.c
+++ b/coders/label.c
@@ -123,7 +123,8 @@ static Image *ReadLABELImage(const ImageInfo *image_info,
assert(exception->signature == MagickSignature);
image=AcquireImage(image_info);
(void) ResetImagePage(image,"0x0+0+0");
- property=InterpretImageProperties(image_info,image,image_info->filename);
+ property=InterpretImageProperties(image_info,image,image_info->filename,
+ exception);
(void) SetImageProperty(image,"label",property);
property=DestroyString(property);
label=GetImageProperty(image,"label");
diff --git a/coders/mac.c b/coders/mac.c
index 3af844afd..5ddcf7e8a 100644
--- a/coders/mac.c
+++ b/coders/mac.c
@@ -146,7 +146,7 @@ static Image *ReadMACImage(const ImageInfo *image_info,ExceptionInfo *exception)
image->columns=576;
image->rows=720;
image->depth=1;
- if (AcquireImageColormap(image,2) == MagickFalse)
+ if (AcquireImageColormap(image,2,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (image_info->ping != MagickFalse)
{
diff --git a/coders/map.c b/coders/map.c
index 16fb68da4..7ee63f9c9 100644
--- a/coders/map.c
+++ b/coders/map.c
@@ -157,7 +157,7 @@ static Image *ReadMAPImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
image->storage_class=PseudoClass;
status=AcquireImageColormap(image,(size_t)
- (image->offset != 0 ? image->offset : 256));
+ (image->offset != 0 ? image->offset : 256),exception);
if (status == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
depth=GetImageQuantumDepth(image,MagickTrue);
@@ -380,7 +380,7 @@ static MagickBooleanType WriteMAPImage(const ImageInfo *image_info,Image *image,
Allocate colormap.
*/
if (IsPaletteImage(image,exception) == MagickFalse)
- (void) SetImageType(image,PaletteType);
+ (void) SetImageType(image,PaletteType,exception);
depth=GetImageQuantumDepth(image,MagickTrue);
packet_size=(size_t) (depth/8);
pixels=(unsigned char *) AcquireQuantumMemory(image->columns,packet_size*
diff --git a/coders/mat.c b/coders/mat.c
index ba1bd3413..46fcf626d 100644
--- a/coders/mat.c
+++ b/coders/mat.c
@@ -852,7 +852,7 @@ MATLAB_KO: ThrowReaderException(CorruptImageError,"ImproperImageHeader");
{
if(image->colors>256) image->colors = 256;
- if (!AcquireImageColormap(image, image->colors))
+ if (AcquireImageColormap(image, image->colors,exception) == MagickFalse)
{
NoMemory:ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");}
}
diff --git a/coders/matte.c b/coders/matte.c
index f98b8e2d9..fec885a26 100644
--- a/coders/matte.c
+++ b/coders/matte.c
@@ -179,7 +179,7 @@ static MagickBooleanType WriteMATTEImage(const ImageInfo *image_info,
matte_image=CloneImage(image,image->columns,image->rows,MagickTrue,exception);
if (matte_image == (Image *) NULL)
return(MagickFalse);
- (void) SetImageType(matte_image,TrueColorMatteType);
+ (void) SetImageType(matte_image,TrueColorMatteType,exception);
matte_image->matte=MagickFalse;
/*
Convert image to matte pixels.
diff --git a/coders/miff.c b/coders/miff.c
index 4619e31ad..bd064e389 100644
--- a/coders/miff.c
+++ b/coders/miff.c
@@ -1113,7 +1113,7 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
/*
Create image colormap.
*/
- status=AcquireImageColormap(image,colors != 0 ? colors : 256);
+ status=AcquireImageColormap(image,colors != 0 ? colors : 256,exception);
if (status == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (colors != 0)
diff --git a/coders/mono.c b/coders/mono.c
index 9139189a7..3cea1bb76 100644
--- a/coders/mono.c
+++ b/coders/mono.c
@@ -143,7 +143,7 @@ static Image *ReadMONOImage(const ImageInfo *image_info,
Initialize image colormap.
*/
image->depth=1;
- if (AcquireImageColormap(image,2) == MagickFalse)
+ if (AcquireImageColormap(image,2,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (image_info->ping != MagickFalse)
{
@@ -318,7 +318,7 @@ static MagickBooleanType WriteMONOImage(const ImageInfo *image_info,
/*
Convert image to a bi-level image.
*/
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/mpc.c b/coders/mpc.c
index 113c70ca1..c3b03ab0c 100644
--- a/coders/mpc.c
+++ b/coders/mpc.c
@@ -812,7 +812,7 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Create image colormap.
*/
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (image->colors != 0)
{
diff --git a/coders/msl.c b/coders/msl.c
index eee2b4554..042d8ede3 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -694,7 +694,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -773,7 +774,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -1104,7 +1106,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -1166,7 +1169,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -1263,7 +1267,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -1384,7 +1389,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -1449,7 +1455,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'R':
@@ -1519,7 +1525,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -1628,7 +1635,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -1756,7 +1764,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -1808,7 +1817,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -1898,7 +1908,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
if ((attribute != (const char *) NULL) &&
(LocaleCompare(value,value) == 0))
{
- SetImageType(composite_image,TrueColorMatteType);
+ SetImageType(composite_image,TrueColorMatteType,
+ &exception);
(void) CompositeImage(composite_image,
CopyOpacityCompositeOp,msl_info->image[j],0,0);
break;
@@ -2095,7 +2106,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -2148,7 +2160,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -2249,7 +2262,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -2273,7 +2287,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
}
}
}
- (void) CycleColormapImage(msl_info->image[n],display);
+ (void) CycleColormapImage(msl_info->image[n],display,&exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);
@@ -2300,7 +2314,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
@@ -2325,7 +2340,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -2365,7 +2381,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -2676,7 +2693,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
affine.tx;
draw_info->affine.ty=affine.rx*current.tx+affine.sy*current.ty+
affine.ty;
- (void) DrawImage(msl_info->image[n],draw_info);
+ (void) DrawImage(msl_info->image[n],draw_info,&exception);
draw_info=DestroyDrawInfo(draw_info);
break;
}
@@ -2704,7 +2721,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -2770,7 +2788,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -2848,7 +2867,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
@@ -2876,7 +2896,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -2941,7 +2962,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
@@ -2972,7 +2994,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
@@ -3007,7 +3030,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -3160,7 +3184,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -3308,7 +3333,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'C':
@@ -3376,7 +3401,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -3519,7 +3545,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
@@ -3558,7 +3585,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -3610,7 +3638,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
quantize_info=AcquireQuantizeInfo(msl_info->image_info[n]);
quantize_info->dither=dither;
(void) RemapImages(quantize_info,msl_info->image[n],
- affinity_image);
+ affinity_image,&exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
affinity_image=DestroyImage(affinity_image);
break;
@@ -3643,7 +3671,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -3768,7 +3797,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -3835,7 +3865,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
@@ -3871,7 +3902,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -3997,7 +4029,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -4064,7 +4097,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -4120,7 +4154,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -4189,7 +4224,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -4254,7 +4290,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -4304,7 +4341,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
if (*keyword == '+')
{
@@ -4404,7 +4442,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -4484,7 +4523,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
}
}
}
- (void) QuantizeImage(&quantize_info,msl_info->image[n]);
+ (void) QuantizeImage(&quantize_info,msl_info->image[n],&exception);
break;
}
if (LocaleCompare((const char *) tag,"query-font-metrics") == 0)
@@ -4511,7 +4550,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -4881,7 +4921,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -4961,7 +5002,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'F':
@@ -5012,7 +5053,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -5080,7 +5122,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'G':
@@ -5207,7 +5249,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'b':
@@ -5324,7 +5366,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -5430,7 +5473,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -5508,7 +5552,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'G':
@@ -5587,7 +5631,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -5651,7 +5696,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'D':
@@ -5713,7 +5758,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -5789,7 +5835,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -5872,7 +5919,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -5935,7 +5983,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
}
}
(void) SegmentImage(msl_info->image[n],colorspace,verbose,
- geometry_info.rho,geometry_info.sigma);
+ geometry_info.rho,geometry_info.sigma,&exception);
break;
}
else if (LocaleCompare((const char *) tag, "set") == 0)
@@ -5952,7 +6000,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'C':
@@ -5968,7 +6016,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
property=GetImageProperty(msl_info->attributes[j],"id");
if (LocaleCompare(property,value) == 0)
{
- SetImageMask(msl_info->image[n],msl_info->image[j]);
+ SetImageMask(msl_info->image[n],msl_info->image[j],
+ &exception);
break;
}
}
@@ -5984,7 +6033,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
property=GetImageProperty(msl_info->attributes[j],"id");
if (LocaleCompare(property,value) == 0)
{
- SetImageClipMask(msl_info->image[n],msl_info->image[j]);
+ SetImageClipMask(msl_info->image[n],msl_info->image[j],
+ &exception);
break;
}
}
@@ -6117,7 +6167,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -6206,7 +6257,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -6308,7 +6360,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'R':
@@ -6375,7 +6427,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'G':
@@ -6463,7 +6515,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -6551,7 +6604,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -6563,7 +6617,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
}
}
}
- (void) SignatureImage(msl_info->image[n]);
+ (void) SignatureImage(msl_info->image[n],&exception);
break;
}
if (LocaleCompare((const char *) tag,"solarize") == 0)
@@ -6583,7 +6637,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -6643,7 +6698,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -6707,7 +6763,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'I':
@@ -6771,7 +6827,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'I':
@@ -6843,7 +6899,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -6905,7 +6962,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -6968,7 +7026,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -7008,7 +7067,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
@@ -7060,7 +7120,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'T':
@@ -7103,7 +7163,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'C':
@@ -7179,7 +7239,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'F':
diff --git a/coders/mvg.c b/coders/mvg.c
index 36c4f4460..1591a2e71 100644
--- a/coders/mvg.c
+++ b/coders/mvg.c
@@ -210,7 +210,7 @@ static Image *ReadMVGImage(const ImageInfo *image_info,ExceptionInfo *exception)
draw_info->primitive[GetBlobSize(image)]='\0';
}
}
- (void) DrawImage(image,draw_info);
+ (void) DrawImage(image,draw_info,exception);
draw_info=DestroyDrawInfo(draw_info);
(void) CloseBlob(image);
return(GetFirstImageInList(image));
diff --git a/coders/otb.c b/coders/otb.c
index 508955661..044339655 100644
--- a/coders/otb.c
+++ b/coders/otb.c
@@ -157,7 +157,7 @@ static Image *ReadOTBImage(const ImageInfo *image_info,ExceptionInfo *exception)
depth=(unsigned char) ReadBlobByte(image);
if (depth != 1)
ThrowReaderException(CoderError,"OnlyLevelZerofilesSupported");
- if (AcquireImageColormap(image,2) == MagickFalse)
+ if (AcquireImageColormap(image,2,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (image_info->ping != MagickFalse)
{
@@ -338,7 +338,7 @@ static MagickBooleanType WriteOTBImage(const ImageInfo *image_info,Image *image,
/*
Convert image to a bi-level image.
*/
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
info=0;
if ((image->columns >= 256) || (image->rows >= 256))
SetBit(info,4,1);
diff --git a/coders/palm.c b/coders/palm.c
index c906c29c0..b8fceb37b 100644
--- a/coders/palm.c
+++ b/coders/palm.c
@@ -342,7 +342,7 @@ static Image *ReadPALMImage(const ImageInfo *image_info,
*/
one=1;
if ((bits_per_pixel < 16) &&
- (AcquireImageColormap(image,one << bits_per_pixel) == MagickFalse))
+ (AcquireImageColormap(image,one << bits_per_pixel,exception) == MagickFalse))
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
GetPixelInfo(image,&transpix);
if (bits_per_pixel == 16) /* Direct Color */
@@ -744,8 +744,8 @@ static MagickBooleanType WritePALMImage(const ImageInfo *image_info,
if (bits_per_pixel < 8)
{
(void) TransformImageColorspace(image,GRAYColorspace);
- (void) SetImageType(image,PaletteType);
- (void) SortColormapByIntensity(image);
+ (void) SetImageType(image,PaletteType,exception);
+ (void) SortColormapByIntensity(image,exception);
}
if ((image->storage_class == PseudoClass) && (image->colors > 256))
(void) SetImageStorageClass(image,DirectClass,exception);
@@ -795,7 +795,7 @@ static MagickBooleanType WritePALMImage(const ImageInfo *image_info,
{
quantize_info->dither=IsPaletteImage(image,exception);
quantize_info->number_colors=image->colors;
- (void) QuantizeImage(quantize_info,image);
+ (void) QuantizeImage(quantize_info,image,exception);
(void) WriteBlobMSBShort(image,(unsigned short) image->colors);
for (count = 0; count < image->colors; count++)
{
@@ -818,7 +818,7 @@ static MagickBooleanType WritePALMImage(const ImageInfo *image_info,
exception);
(void) TransformImageColorspace(affinity_image,
affinity_image->colorspace);
- (void) RemapImage(quantize_info,image,affinity_image);
+ (void) RemapImage(quantize_info,image,affinity_image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/pcd.c b/coders/pcd.c
index 824ee6a99..527821842 100644
--- a/coders/pcd.c
+++ b/coders/pcd.c
@@ -111,7 +111,7 @@ static MagickBooleanType
%
*/
static MagickBooleanType DecodeImage(Image *image,unsigned char *luma,
- unsigned char *chroma1,unsigned char *chroma2)
+ unsigned char *chroma1,unsigned char *chroma2,ExceptionInfo *exception)
{
#define IsSync ((sum & 0xffffff00UL) == 0xfffffe00UL)
#define PCDGetBits(n) \
@@ -741,7 +741,7 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception)
image->rows=1024;
for (i=0; i < (4*0x800); i++)
(void) ReadBlobByte(image);
- status=DecodeImage(image,luma,chroma1,chroma2);
+ status=DecodeImage(image,luma,chroma1,chroma2,exception);
if ((scene >= 5) && status)
{
/*
@@ -753,7 +753,7 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception)
image->rows=2048;
offset=TellBlob(image)/0x800+12;
offset=SeekBlob(image,offset*0x800,SEEK_SET);
- status=DecodeImage(image,luma,chroma1,chroma2);
+ status=DecodeImage(image,luma,chroma1,chroma2,exception);
if ((scene >= 6) && (status != MagickFalse))
{
/*
diff --git a/coders/pcx.c b/coders/pcx.c
index e55453086..41a173db9 100644
--- a/coders/pcx.c
+++ b/coders/pcx.c
@@ -363,7 +363,7 @@ static Image *ReadPCXImage(const ImageInfo *image_info,ExceptionInfo *exception)
((pcx_info.bits_per_pixel*pcx_info.planes) == 1))
image->colors=(size_t) MagickMin(one << (1UL*
(pcx_info.bits_per_pixel*pcx_info.planes)),256UL);
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if ((pcx_info.bits_per_pixel >= 8) && (pcx_info.planes != 1))
image->storage_class=DirectClass;
diff --git a/coders/pdb.c b/coders/pdb.c
index 363bc6d91..9ad4ad19b 100644
--- a/coders/pdb.c
+++ b/coders/pdb.c
@@ -388,7 +388,7 @@ static Image *ReadPDBImage(const ImageInfo *image_info,ExceptionInfo *exception)
image->storage_class=PseudoClass;
bits_per_pixel=pdb_image.type == 0 ? 2UL : pdb_image.type == 2 ? 4UL : 1UL;
one=1;
- if (AcquireImageColormap(image,one << bits_per_pixel) == MagickFalse)
+ if (AcquireImageColormap(image,one << bits_per_pixel,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (image_info->ping != MagickFalse)
{
diff --git a/coders/pdf.c b/coders/pdf.c
index bf9a7fde2..9b2648806 100644
--- a/coders/pdf.c
+++ b/coders/pdf.c
@@ -888,7 +888,7 @@ static char *EscapeParenthesis(const char *text)
}
static MagickBooleanType Huffman2DEncodeImage(const ImageInfo *image_info,
- Image *image,Image *inject_image)
+ Image *image,Image *inject_image,ExceptionInfo *exception)
{
Image
*group4_image;
@@ -909,11 +909,11 @@ static MagickBooleanType Huffman2DEncodeImage(const ImageInfo *image_info,
write_info=CloneImageInfo(image_info);
(void) CopyMagickString(write_info->filename,"GROUP4:",MaxTextExtent);
(void) CopyMagickString(write_info->magick,"GROUP4",MaxTextExtent);
- group4_image=CloneImage(inject_image,0,0,MagickTrue,&image->exception);
+ group4_image=CloneImage(inject_image,0,0,MagickTrue,exception);
if (group4_image == (Image *) NULL)
return(MagickFalse);
group4=(unsigned char *) ImageToBlob(write_info,group4_image,&length,
- &image->exception);
+ exception);
group4_image=DestroyImage(group4_image);
if (group4 == (unsigned char *) NULL)
return(MagickFalse);
@@ -1565,10 +1565,10 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
{
if (LocaleCompare(CCITTParam,"0") == 0)
{
- (void) HuffmanEncodeImage(image_info,image,image);
+ (void) HuffmanEncodeImage(image_info,image,image,exception);
break;
}
- (void) Huffman2DEncodeImage(image_info,image,image);
+ (void) Huffman2DEncodeImage(image_info,image,image,exception);
break;
}
case JPEGCompression:
@@ -1626,13 +1626,13 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
}
#if defined(MAGICKCORE_ZLIB_DELEGATE)
if (compression == ZipCompression)
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
else
#endif
if (compression == LZWCompression)
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
else
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
if (status == MagickFalse)
{
@@ -1737,13 +1737,13 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
}
#if defined(MAGICKCORE_ZLIB_DELEGATE)
if (compression == ZipCompression)
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
else
#endif
if (compression == LZWCompression)
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
else
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
if (status == MagickFalse)
{
@@ -1828,13 +1828,13 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
}
#if defined(MAGICKCORE_ZLIB_DELEGATE)
if (compression == ZipCompression)
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
else
#endif
if (compression == LZWCompression)
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
else
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
if (status == MagickFalse)
{
@@ -2014,10 +2014,11 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
{
if (LocaleCompare(CCITTParam,"0") == 0)
{
- (void) HuffmanEncodeImage(image_info,image,tile_image);
+ (void) HuffmanEncodeImage(image_info,image,tile_image,
+ exception);
break;
}
- (void) Huffman2DEncodeImage(image_info,image,tile_image);
+ (void) Huffman2DEncodeImage(image_info,image,tile_image,exception);
break;
}
case JPEGCompression:
@@ -2074,13 +2075,13 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
}
#if defined(MAGICKCORE_ZLIB_DELEGATE)
if (compression == ZipCompression)
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
else
#endif
if (compression == LZWCompression)
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
else
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
if (status == MagickFalse)
{
@@ -2178,13 +2179,13 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
}
#if defined(MAGICKCORE_ZLIB_DELEGATE)
if (compression == ZipCompression)
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
else
#endif
if (compression == LZWCompression)
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
else
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
if (status == MagickFalse)
{
@@ -2263,13 +2264,13 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
}
#if defined(MAGICKCORE_ZLIB_DELEGATE)
if (compression == ZipCompression)
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
else
#endif
if (compression == LZWCompression)
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
else
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
if (status == MagickFalse)
{
@@ -2466,13 +2467,13 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
}
#if defined(MAGICKCORE_ZLIB_DELEGATE)
if (compression == ZipCompression)
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
else
#endif
if (compression == LZWCompression)
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
else
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
if (status == MagickFalse)
{
diff --git a/coders/pict.c b/coders/pict.c
index 5212776f9..69c754ec9 100644
--- a/coders/pict.c
+++ b/coders/pict.c
@@ -1094,7 +1094,8 @@ static Image *ReadPICTImage(const ImageInfo *image_info,
flags=1L*ReadBlobMSBShort(image);
tile_image->colors=1UL*ReadBlobMSBShort(image)+1;
}
- status=AcquireImageColormap(tile_image,tile_image->colors);
+ status=AcquireImageColormap(tile_image,tile_image->colors,
+ exception);
if (status == MagickFalse)
{
tile_image=DestroyImage(tile_image);
diff --git a/coders/pix.c b/coders/pix.c
index 323d18abd..e43281976 100644
--- a/coders/pix.c
+++ b/coders/pix.c
@@ -151,7 +151,7 @@ static Image *ReadPIXImage(const ImageInfo *image_info,ExceptionInfo *exception)
image->columns=width;
image->rows=height;
if (bits_per_pixel == 8)
- if (AcquireImageColormap(image,256) == MagickFalse)
+ if (AcquireImageColormap(image,256,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
if (image->scene >= (image_info->scene+image_info->number_scenes-1))
diff --git a/coders/png.c b/coders/png.c
index 9be177d7c..74413cfc2 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -2709,7 +2709,7 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
/*
Initialize image colormap.
*/
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if ((int) ping_color_type == PNG_COLOR_TYPE_PALETTE)
@@ -3699,12 +3699,12 @@ static Image *ReadPNGImage(const ImageInfo *image_info,ExceptionInfo *exception)
if (LocaleCompare(image_info->magick,"PNG24") == 0)
{
- (void) SetImageType(image,TrueColorType);
+ (void) SetImageType(image,TrueColorType,exception);
image->matte=MagickFalse;
}
if (LocaleCompare(image_info->magick,"PNG32") == 0)
- (void) SetImageType(image,TrueColorMatteType);
+ (void) SetImageType(image,TrueColorMatteType,exception);
if (logging != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -7418,7 +7418,7 @@ static MagickBooleanType Magick_png_write_chunk_from_profile(Image *image,
/* Write one PNG image */
static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
- const ImageInfo *IMimage_info,Image *IMimage)
+ const ImageInfo *IMimage_info,Image *IMimage,ExceptionInfo *exception)
{
Image
*image;
@@ -8260,7 +8260,7 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
image->colors = image_colors;
- if (AcquireImageColormap(image,image_colors) ==
+ if (AcquireImageColormap(image,image_colors,exception) ==
MagickFalse)
ThrowWriterException(ResourceLimitError,
"MemoryAllocationFailed");
@@ -10902,10 +10902,10 @@ static MagickBooleanType WritePNGImage(const ImageInfo *image_info,
image->depth = 8;
if (image->matte == MagickTrue)
- (void) SetImageType(image,TrueColorMatteType);
+ (void) SetImageType(image,TrueColorMatteType,exception);
else
- (void) SetImageType(image,TrueColorType);
+ (void) SetImageType(image,TrueColorType,exception);
(void) SyncImage(image);
}
@@ -10917,10 +10917,10 @@ static MagickBooleanType WritePNGImage(const ImageInfo *image_info,
image->depth = 8;
if (image->matte == MagickTrue)
- (void) SetImageType(image,TrueColorMatteType);
+ (void) SetImageType(image,TrueColorMatteType,exception);
else
- (void) SetImageType(image,TrueColorType);
+ (void) SetImageType(image,TrueColorType,exception);
(void) SyncImage(image);
}
@@ -11489,7 +11489,7 @@ static MagickBooleanType WritePNGImage(const ImageInfo *image_info,
mng_info->need_blob = MagickTrue;
- status=WriteOnePNGImage(mng_info,image_info,image);
+ status=WriteOnePNGImage(mng_info,image_info,image,exception);
MngInfoFreeStruct(mng_info,&have_mng_structure);
@@ -11503,7 +11503,7 @@ static MagickBooleanType WritePNGImage(const ImageInfo *image_info,
/* Write one JNG image */
static MagickBooleanType WriteOneJNGImage(MngInfo *mng_info,
- const ImageInfo *image_info,Image *image)
+ const ImageInfo *image_info,Image *image,ExceptionInfo *exception)
{
Image
*jpeg_image;
@@ -11594,7 +11594,7 @@ static MagickBooleanType WriteOneJNGImage(MngInfo *mng_info,
jpeg_image_info->quality=jng_quality;
jpeg_image_info->type=GrayscaleType;
- (void) SetImageType(jpeg_image,GrayscaleType);
+ (void) SetImageType(jpeg_image,GrayscaleType,exception);
(void) AcquireUniqueFilename(jpeg_image->filename);
(void) FormatLocaleString(jpeg_image_info->filename,MaxTextExtent,
"%s",jpeg_image->filename);
@@ -12104,7 +12104,7 @@ static MagickBooleanType WriteJNGImage(const ImageInfo *image_info,Image *image,
(void) WriteBlob(image,8,(const unsigned char *) "\213JNG\r\n\032\n");
- status=WriteOneJNGImage(mng_info,image_info,image);
+ status=WriteOneJNGImage(mng_info,image_info,image,exception);
(void) CloseBlob(image);
(void) CatchImageException(image);
@@ -12919,7 +12919,7 @@ static MagickBooleanType WriteMNGImage(const ImageInfo *image_info,Image *image,
/* To do: specify the desired alpha compression method. */
write_info=CloneImageInfo(image_info);
write_info->compression=UndefinedCompression;
- status=WriteOneJNGImage(mng_info,write_info,image);
+ status=WriteOneJNGImage(mng_info,write_info,image,exception);
write_info=DestroyImageInfo(write_info);
}
else
@@ -12949,7 +12949,7 @@ static MagickBooleanType WriteMNGImage(const ImageInfo *image_info,Image *image,
mng_info->ping_exclude_zCCP=MagickTrue;
mng_info->ping_exclude_zTXt=MagickTrue;
- status=WriteOnePNGImage(mng_info,image_info,image);
+ status=WriteOnePNGImage(mng_info,image_info,image,exception);
}
if (status == MagickFalse)
diff --git a/coders/ps2.c b/coders/ps2.c
index e772247d8..c005070d5 100644
--- a/coders/ps2.c
+++ b/coders/ps2.c
@@ -186,7 +186,7 @@ ModuleExport void UnregisterPS2Image(void)
*/
static MagickBooleanType Huffman2DEncodeImage(const ImageInfo *image_info,
- Image *image,Image *inject_image)
+ Image *image,Image *inject_image,ExceptionInfo *exception)
{
Image
*group4_image;
@@ -207,11 +207,11 @@ static MagickBooleanType Huffman2DEncodeImage(const ImageInfo *image_info,
write_info=CloneImageInfo(image_info);
(void) CopyMagickString(write_info->filename,"GROUP4:",MaxTextExtent);
(void) CopyMagickString(write_info->magick,"GROUP4",MaxTextExtent);
- group4_image=CloneImage(inject_image,0,0,MagickTrue,&image->exception);
+ group4_image=CloneImage(inject_image,0,0,MagickTrue,exception);
if (group4_image == (Image *) NULL)
return(MagickFalse);
group4=(unsigned char *) ImageToBlob(write_info,group4_image,&length,
- &image->exception);
+ exception);
group4_image=DestroyImage(group4_image);
if (group4 == (unsigned char *) NULL)
return(MagickFalse);
@@ -749,10 +749,10 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
{
if (LocaleCompare(CCITTParam,"0") == 0)
{
- (void) HuffmanEncodeImage(image_info,image,image);
+ (void) HuffmanEncodeImage(image_info,image,image,exception);
break;
}
- (void) Huffman2DEncodeImage(image_info,image,image);
+ (void) Huffman2DEncodeImage(image_info,image,image,exception);
break;
}
case JPEGCompression:
@@ -800,9 +800,9 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
}
length=(size_t) (q-pixels);
if (compression == LZWCompression)
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
else
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
if (status == MagickFalse)
{
@@ -917,9 +917,9 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
}
length=(size_t) (q-pixels);
if (compression == LZWCompression)
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
else
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
if (status == MagickFalse)
{
(void) CloseBlob(image);
@@ -1045,9 +1045,9 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
}
length=(size_t) (q-pixels);
if (compression == LZWCompression)
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
else
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
if (status == MagickFalse)
{
diff --git a/coders/ps3.c b/coders/ps3.c
index e5917c7d8..3a813fd84 100644
--- a/coders/ps3.c
+++ b/coders/ps3.c
@@ -199,7 +199,7 @@ ModuleExport void UnregisterPS3Image(void)
*/
static MagickBooleanType Huffman2DEncodeImage(const ImageInfo *image_info,
- Image *image,Image *inject_image)
+ Image *image,Image *inject_image,ExceptionInfo *exception)
{
Image
*group4_image;
@@ -220,11 +220,11 @@ static MagickBooleanType Huffman2DEncodeImage(const ImageInfo *image_info,
write_info=CloneImageInfo(image_info);
(void) CopyMagickString(write_info->filename,"GROUP4:",MaxTextExtent);
(void) CopyMagickString(write_info->magick,"GROUP4",MaxTextExtent);
- group4_image=CloneImage(inject_image,0,0,MagickTrue,&image->exception);
+ group4_image=CloneImage(inject_image,0,0,MagickTrue,exception);
if (group4_image == (Image *) NULL)
return(MagickFalse);
group4=(unsigned char *) ImageToBlob(write_info,group4_image,&length,
- &image->exception);
+ exception);
group4_image=DestroyImage(group4_image);
if (group4 == (unsigned char *) NULL)
return(MagickFalse);
@@ -236,7 +236,7 @@ static MagickBooleanType Huffman2DEncodeImage(const ImageInfo *image_info,
}
static MagickBooleanType SerializeImage(const ImageInfo *image_info,
- Image *image,unsigned char **pixels,size_t *length)
+ Image *image,unsigned char **pixels,size_t *length,ExceptionInfo *exception)
{
MagickBooleanType
status;
@@ -300,7 +300,7 @@ static MagickBooleanType SerializeImage(const ImageInfo *image_info,
}
static MagickBooleanType SerializeImageChannel(const ImageInfo *image_info,
- Image *image,unsigned char **pixels,size_t *length)
+ Image *image,unsigned char **pixels,size_t *length,ExceptionInfo *exception)
{
MagickBooleanType
status;
@@ -339,7 +339,7 @@ static MagickBooleanType SerializeImageChannel(const ImageInfo *image_info,
q=(*pixels);
for (y=0; y < (ssize_t) image->rows; y++)
{
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
if (pack == 1)
@@ -377,7 +377,7 @@ static MagickBooleanType SerializeImageChannel(const ImageInfo *image_info,
}
static MagickBooleanType SerializeImageIndexes(const ImageInfo *image_info,
- Image *image,unsigned char **pixels,size_t *length)
+ Image *image,unsigned char **pixels,size_t *length,ExceptionInfo *exception)
{
MagickBooleanType
status;
@@ -406,7 +406,7 @@ static MagickBooleanType SerializeImageIndexes(const ImageInfo *image_info,
q=(*pixels);
for (y=0; y < (ssize_t) image->rows; y++)
{
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
for (x=0; x < (ssize_t) image->columns; x++)
@@ -428,7 +428,7 @@ static MagickBooleanType SerializeImageIndexes(const ImageInfo *image_info,
}
static MagickBooleanType WritePS3MaskImage(const ImageInfo *image_info,
- Image *image,const CompressionType compression)
+ Image *image,const CompressionType compression,ExceptionInfo *exception)
{
ChannelType
channel_mask;
@@ -529,8 +529,8 @@ static MagickBooleanType WritePS3MaskImage(const ImageInfo *image_info,
mask_image=DestroyImage(mask_image);
return(MagickFalse);
}
- (void) SetImageType(mask_image,BilevelType);
- (void) SetImageType(mask_image,PaletteType);
+ (void) SetImageType(mask_image,BilevelType,exception);
+ (void) SetImageType(mask_image,PaletteType,exception);
mask_image->matte=MagickFalse;
pixels=(unsigned char *) NULL;
length=0;
@@ -539,7 +539,8 @@ static MagickBooleanType WritePS3MaskImage(const ImageInfo *image_info,
case NoCompression:
default:
{
- status=SerializeImageChannel(image_info,mask_image,&pixels,&length);
+ status=SerializeImageChannel(image_info,mask_image,&pixels,&length,
+ exception);
if (status == MagickFalse)
break;
Ascii85Initialize(image);
@@ -554,35 +555,38 @@ static MagickBooleanType WritePS3MaskImage(const ImageInfo *image_info,
{
if ((compression == FaxCompression) ||
(LocaleCompare(CCITTParam,"0") == 0))
- status=HuffmanEncodeImage(image_info,image,mask_image);
+ status=HuffmanEncodeImage(image_info,image,mask_image,exception);
else
- status=Huffman2DEncodeImage(image_info,image,mask_image);
+ status=Huffman2DEncodeImage(image_info,image,mask_image,exception);
break;
}
case LZWCompression:
{
- status=SerializeImageChannel(image_info,mask_image,&pixels,&length);
+ status=SerializeImageChannel(image_info,mask_image,&pixels,&length,
+ exception);
if (status == MagickFalse)
break;
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
break;
}
case RLECompression:
{
- status=SerializeImageChannel(image_info,mask_image,&pixels,&length);
+ status=SerializeImageChannel(image_info,mask_image,&pixels,&length,
+ exception);
if (status == MagickFalse)
break;
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
break;
}
case ZipCompression:
{
- status=SerializeImageChannel(image_info,mask_image,&pixels,&length);
+ status=SerializeImageChannel(image_info,mask_image,&pixels,&length,
+ exception);
if (status == MagickFalse)
break;
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
break;
}
@@ -1155,7 +1159,7 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
Image mask.
*/
if ((image->matte != MagickFalse) &&
- (WritePS3MaskImage(image_info,image,compression) == MagickFalse))
+ (WritePS3MaskImage(image_info,image,compression,exception) == MagickFalse))
{
(void) CloseBlob(image);
return(MagickFalse);
@@ -1309,13 +1313,14 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
(compression == Group4Compression))
{
if (LocaleCompare(CCITTParam,"0") == 0)
- status=HuffmanEncodeImage(image_info,image,image);
+ status=HuffmanEncodeImage(image_info,image,image,exception);
else
- status=Huffman2DEncodeImage(image_info,image,image);
+ status=Huffman2DEncodeImage(image_info,image,image,exception);
}
else
{
- status=SerializeImageChannel(image_info,image,&pixels,&length);
+ status=SerializeImageChannel(image_info,image,&pixels,&length,
+ exception);
if (status == MagickFalse)
{
(void) CloseBlob(image);
@@ -1335,17 +1340,17 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
}
case LZWCompression:
{
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
break;
}
case RLECompression:
{
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
break;
}
case ZipCompression:
{
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
break;
}
}
@@ -1399,7 +1404,7 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
/*
Stream based compressions.
*/
- status=SerializeImage(image_info,image,&pixels,&length);
+ status=SerializeImage(image_info,image,&pixels,&length,exception);
if (status == MagickFalse)
{
(void) CloseBlob(image);
@@ -1419,17 +1424,17 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
}
case RLECompression:
{
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
break;
}
case LZWCompression:
{
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
break;
}
case ZipCompression:
{
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
break;
}
}
@@ -1507,7 +1512,8 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
}
Ascii85Flush(image);
}
- status=SerializeImageIndexes(image_info,image,&pixels,&length);
+ status=SerializeImageIndexes(image_info,image,&pixels,&length,
+ exception);
if (status == MagickFalse)
{
(void) CloseBlob(image);
@@ -1532,17 +1538,17 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
}
case RLECompression:
{
- status=PackbitsEncodeImage(image,length,pixels);
+ status=PackbitsEncodeImage(image,length,pixels,exception);
break;
}
case LZWCompression:
{
- status=LZWEncodeImage(image,length,pixels);
+ status=LZWEncodeImage(image,length,pixels,exception);
break;
}
case ZipCompression:
{
- status=ZLIBEncodeImage(image,length,pixels);
+ status=ZLIBEncodeImage(image,length,pixels,exception);
break;
}
}
diff --git a/coders/psd.c b/coders/psd.c
index 5c8ad2206..198a2bf22 100644
--- a/coders/psd.c
+++ b/coders/psd.c
@@ -841,7 +841,7 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception)
if ((psd_info.mode == BitmapMode) || (psd_info.mode == GrayscaleMode) ||
(psd_info.mode == DuotoneMode))
{
- if (AcquireImageColormap(image,256) == MagickFalse)
+ if (AcquireImageColormap(image,256,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
image->matte=psd_info.channels >= 2 ? MagickTrue : MagickFalse;
if (image->debug != MagickFalse)
@@ -878,7 +878,7 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Read PSD raster colormap.
*/
- if (AcquireImageColormap(image,(size_t) (length/3)) == MagickFalse)
+ if (AcquireImageColormap(image,(size_t) (length/3),exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
for (i=0; i < (ssize_t) image->colors; i++)
image->colormap[i].red=ScaleCharToQuantum((unsigned char)
@@ -1554,7 +1554,8 @@ static inline ssize_t SetPSDSize(const PSDInfo *psd_info,Image *image,
}
static size_t PSDPackbitsEncodeImage(Image *image,const size_t length,
- const unsigned char *pixels,unsigned char *compact_pixels)
+ const unsigned char *pixels,unsigned char *compact_pixels,
+ ExceptionInfo *exception)
{
int
count;
@@ -1664,7 +1665,8 @@ static size_t PSDPackbitsEncodeImage(Image *image,const size_t length,
static void WritePackbitsLength(const PSDInfo *psd_info,
const ImageInfo *image_info,Image *image,Image *next_image,
- unsigned char *compact_pixels,const QuantumType quantum_type)
+ unsigned char *compact_pixels,const QuantumType quantum_type,
+ ExceptionInfo *exception)
{
QuantumInfo
*quantum_info;
@@ -1695,7 +1697,8 @@ static void WritePackbitsLength(const PSDInfo *psd_info,
break;
length=ExportQuantumPixels(next_image,(CacheView *) NULL,quantum_info,
quantum_type,pixels,&image->exception);
- length=PSDPackbitsEncodeImage(image,length,pixels,compact_pixels);
+ length=PSDPackbitsEncodeImage(image,length,pixels,compact_pixels,
+ exception);
(void) SetPSDOffset(psd_info,image,length);
}
quantum_info=DestroyQuantumInfo(quantum_info);
@@ -1703,7 +1706,8 @@ static void WritePackbitsLength(const PSDInfo *psd_info,
static void WriteOneChannel(const PSDInfo *psd_info,const ImageInfo *image_info,
Image *image,Image *next_image,unsigned char *compact_pixels,
- const QuantumType quantum_type,const MagickBooleanType compression_flag)
+ const QuantumType quantum_type,const MagickBooleanType compression_flag,
+ ExceptionInfo *exception)
{
int
y;
@@ -1753,7 +1757,8 @@ static void WriteOneChannel(const PSDInfo *psd_info,const ImageInfo *image_info,
(void) WriteBlob(image,length,pixels);
else
{
- length=PSDPackbitsEncodeImage(image,length,pixels,compact_pixels);
+ length=PSDPackbitsEncodeImage(image,length,pixels,compact_pixels,
+ exception);
(void) WriteBlob(image,length,compact_pixels);
}
}
@@ -1762,7 +1767,7 @@ static void WriteOneChannel(const PSDInfo *psd_info,const ImageInfo *image_info,
static MagickBooleanType WriteImageChannels(const PSDInfo *psd_info,
const ImageInfo *image_info,Image *image,Image *next_image,
- const MagickBooleanType separate)
+ const MagickBooleanType separate,ExceptionInfo *exception)
{
int
i;
@@ -1797,18 +1802,18 @@ static MagickBooleanType WriteImageChannels(const PSDInfo *psd_info,
*/
(void) WriteBlobMSBShort(image,1);
WritePackbitsLength(psd_info,image_info,image,next_image,
- compact_pixels,GrayQuantum);
+ compact_pixels,GrayQuantum,exception);
if (next_image->matte != MagickFalse)
WritePackbitsLength(psd_info,image_info,image,next_image,
- compact_pixels,AlphaQuantum);
+ compact_pixels,AlphaQuantum,exception);
}
WriteOneChannel(psd_info,image_info,image,next_image,compact_pixels,
GrayQuantum,(i++ == 0) || (separate != MagickFalse) ? MagickTrue :
- MagickFalse);
+ MagickFalse,exception);
if (next_image->matte != MagickFalse)
WriteOneChannel(psd_info,image_info,image,next_image,compact_pixels,
AlphaQuantum,(i++ == 0) || (separate != MagickFalse) ? MagickTrue :
- MagickFalse);
+ MagickFalse,exception);
(void) SetImageProgress(image,SaveImagesTag,0,1);
}
else
@@ -1821,18 +1826,18 @@ static MagickBooleanType WriteImageChannels(const PSDInfo *psd_info,
*/
(void) WriteBlobMSBShort(image,1);
WritePackbitsLength(psd_info,image_info,image,next_image,
- compact_pixels,IndexQuantum);
+ compact_pixels,IndexQuantum,exception);
if (next_image->matte != MagickFalse)
WritePackbitsLength(psd_info,image_info,image,next_image,
- compact_pixels,AlphaQuantum);
+ compact_pixels,AlphaQuantum,exception);
}
WriteOneChannel(psd_info,image_info,image,next_image,compact_pixels,
IndexQuantum,(i++ == 0) || (separate != MagickFalse) ? MagickTrue :
- MagickFalse);
+ MagickFalse,exception);
if (next_image->matte != MagickFalse)
WriteOneChannel(psd_info,image_info,image,next_image,compact_pixels,
AlphaQuantum,(i++ == 0) || (separate != MagickFalse) ? MagickTrue :
- MagickFalse);
+ MagickFalse,exception);
(void) SetImageProgress(image,SaveImagesTag,0,1);
}
else
@@ -1846,40 +1851,40 @@ static MagickBooleanType WriteImageChannels(const PSDInfo *psd_info,
*/
(void) WriteBlobMSBShort(image,1);
WritePackbitsLength(psd_info,image_info,image,next_image,
- compact_pixels,RedQuantum);
+ compact_pixels,RedQuantum,exception);
WritePackbitsLength(psd_info,image_info,image,next_image,
- compact_pixels,GreenQuantum);
+ compact_pixels,GreenQuantum,exception);
WritePackbitsLength(psd_info,image_info,image,next_image,
- compact_pixels,BlueQuantum);
+ compact_pixels,BlueQuantum,exception);
if (next_image->colorspace == CMYKColorspace)
WritePackbitsLength(psd_info,image_info,image,next_image,
- compact_pixels,BlackQuantum);
+ compact_pixels,BlackQuantum,exception);
if (next_image->matte != MagickFalse)
WritePackbitsLength(psd_info,image_info,image,next_image,
- compact_pixels,AlphaQuantum);
+ compact_pixels,AlphaQuantum,exception);
}
(void) SetImageProgress(image,SaveImagesTag,0,6);
WriteOneChannel(psd_info,image_info,image,next_image,compact_pixels,
RedQuantum,(i++ == 0) || (separate != MagickFalse) ? MagickTrue :
- MagickFalse);
+ MagickFalse,exception);
(void) SetImageProgress(image,SaveImagesTag,1,6);
WriteOneChannel(psd_info,image_info,image,next_image,compact_pixels,
GreenQuantum,(i++ == 0) || (separate != MagickFalse) ? MagickTrue :
- MagickFalse);
+ MagickFalse,exception);
(void) SetImageProgress(image,SaveImagesTag,2,6);
WriteOneChannel(psd_info,image_info,image,next_image,compact_pixels,
BlueQuantum,(i++ == 0) || (separate != MagickFalse) ? MagickTrue :
- MagickFalse);
+ MagickFalse,exception);
(void) SetImageProgress(image,SaveImagesTag,3,6);
if (next_image->colorspace == CMYKColorspace)
WriteOneChannel(psd_info,image_info,image,next_image,compact_pixels,
BlackQuantum,(i++ == 0) || (separate != MagickFalse) ? MagickTrue :
- MagickFalse);
+ MagickFalse,exception);
(void) SetImageProgress(image,SaveImagesTag,4,6);
if (next_image->matte != MagickFalse)
WriteOneChannel(psd_info,image_info,image,next_image,compact_pixels,
AlphaQuantum,(i++ == 0) || (separate != MagickFalse) ? MagickTrue :
- MagickFalse);
+ MagickFalse,exception);
(void) SetImageProgress(image,SaveImagesTag,5,6);
if (next_image->colorspace == CMYKColorspace)
(void) NegateImage(next_image,MagickFalse,&next_image->exception);
@@ -2364,7 +2369,7 @@ static MagickBooleanType WritePSDImage(const ImageInfo *image_info,Image *image,
while (next_image != NULL)
{
status=WriteImageChannels(&psd_info,image_info,image,next_image,
- MagickTrue);
+ MagickTrue,exception);
next_image=GetNextImageInList(next_image);
}
(void) WriteBlobMSBLong(image,0); /* user mask data */
@@ -2373,7 +2378,8 @@ static MagickBooleanType WritePSDImage(const ImageInfo *image_info,Image *image,
/*
Write composite image.
*/
- status=WriteImageChannels(&psd_info,image_info,image,image,MagickFalse);
+ status=WriteImageChannels(&psd_info,image_info,image,image,MagickFalse,
+ exception);
(void) CloseBlob(image);
return(status);
}
diff --git a/coders/rle.c b/coders/rle.c
index a3b762799..5c0d5cb48 100644
--- a/coders/rle.c
+++ b/coders/rle.c
@@ -467,7 +467,7 @@ static Image *ReadRLEImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
if (number_colormaps == 0)
map_length=256;
- if (AcquireImageColormap(image,map_length) == MagickFalse)
+ if (AcquireImageColormap(image,map_length,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
p=colormap;
if (number_colormaps == 1)
diff --git a/coders/sgi.c b/coders/sgi.c
index 11e55f4d0..6a67fd9a0 100644
--- a/coders/sgi.c
+++ b/coders/sgi.c
@@ -609,7 +609,7 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Create grayscale map.
*/
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
/*
Convert SGI image to PseudoClass pixel packets.
diff --git a/coders/stegano.c b/coders/stegano.c
index 71ba93056..f0c52c020 100644
--- a/coders/stegano.c
+++ b/coders/stegano.c
@@ -159,7 +159,7 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
if (watermark == (Image *) NULL)
return((Image *) NULL);
watermark->depth=MAGICKCORE_QUANTUM_DEPTH;
- if (AcquireImageColormap(image,MaxColormapSize) == MagickFalse)
+ if (AcquireImageColormap(image,MaxColormapSize,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (image_info->ping != MagickFalse)
{
diff --git a/coders/sun.c b/coders/sun.c
index 752cdffde..9ad0204cd 100644
--- a/coders/sun.c
+++ b/coders/sun.c
@@ -333,7 +333,7 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Create linear color ramp.
*/
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
}
break;
@@ -346,7 +346,7 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Read SUN raster colormap.
*/
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
sun_colormap=(unsigned char *) AcquireQuantumMemory(image->colors,
sizeof(*sun_colormap));
@@ -889,7 +889,7 @@ static MagickBooleanType WriteSUNImage(const ImageInfo *image_info,Image *image,
/*
Convert PseudoClass image to a SUN monochrome image.
*/
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/tga.c b/coders/tga.c
index e183e4a18..c737794a4 100644
--- a/coders/tga.c
+++ b/coders/tga.c
@@ -254,7 +254,7 @@ static Image *ReadTGAImage(const ImageInfo *image_info,ExceptionInfo *exception)
one=1;
image->colors=one << tga_info.bits_per_pixel;
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
}
}
@@ -288,7 +288,7 @@ static Image *ReadTGAImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Read TGA raster colormap.
*/
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
for (i=0; i < (ssize_t) image->colors; i++)
{
diff --git a/coders/thumbnail.c b/coders/thumbnail.c
index d291be8b7..2037dc562 100644
--- a/coders/thumbnail.c
+++ b/coders/thumbnail.c
@@ -205,7 +205,7 @@ static MagickBooleanType WriteTHUMBNAILImage(const ImageInfo *image_info,
if (thumbnail_image == (Image *) NULL)
return(MagickFalse);
(void) SetImageType(thumbnail_image,thumbnail_image->matte == MagickFalse ?
- TrueColorType : TrueColorMatteType);
+ TrueColorType : TrueColorMatteType,exception);
(void) CopyMagickString(thumbnail_image->filename,image->filename,
MaxTextExtent);
write_info=CloneImageInfo(image_info);
diff --git a/coders/tiff.c b/coders/tiff.c
index b8d4aaa3e..9250c3d55 100644
--- a/coders/tiff.c
+++ b/coders/tiff.c
@@ -433,7 +433,7 @@ static inline ssize_t MagickMin(const ssize_t x,const ssize_t y)
}
static MagickBooleanType ReadProfile(Image *image,const char *name,
- unsigned char *datum,ssize_t length)
+ unsigned char *datum,ssize_t length,ExceptionInfo *exception)
{
MagickBooleanType
status;
@@ -501,7 +501,7 @@ static void TIFFErrors(const char *module,const char *format,va_list error)
"`%s'",module);
}
-static void TIFFGetProfiles(TIFF *tiff,Image *image)
+static void TIFFGetProfiles(TIFF *tiff,Image *image,ExceptionInfo *exception)
{
uint32
length;
@@ -512,12 +512,12 @@ static void TIFFGetProfiles(TIFF *tiff,Image *image)
#if defined(TIFFTAG_ICCPROFILE)
length=0;
if (TIFFGetField(tiff,TIFFTAG_ICCPROFILE,&length,&profile) == 1)
- (void) ReadProfile(image,"icc",profile,(ssize_t) length);
+ (void) ReadProfile(image,"icc",profile,(ssize_t) length,exception);
#endif
#if defined(TIFFTAG_PHOTOSHOP)
length=0;
if (TIFFGetField(tiff,TIFFTAG_PHOTOSHOP,&length,&profile) == 1)
- (void) ReadProfile(image,"8bim",profile,(ssize_t) length);
+ (void) ReadProfile(image,"8bim",profile,(ssize_t) length,exception);
#endif
#if defined(TIFFTAG_RICHTIFFIPTC)
length=0;
@@ -525,17 +525,17 @@ static void TIFFGetProfiles(TIFF *tiff,Image *image)
{
if (TIFFIsByteSwapped(tiff) != 0)
TIFFSwabArrayOfLong((uint32 *) profile,(size_t) length);
- (void) ReadProfile(image,"iptc",profile,4L*length);
+ (void) ReadProfile(image,"iptc",profile,4L*length,exception);
}
#endif
#if defined(TIFFTAG_XMLPACKET)
length=0;
if (TIFFGetField(tiff,TIFFTAG_XMLPACKET,&length,&profile) == 1)
- (void) ReadProfile(image,"xmp",profile,(ssize_t) length);
+ (void) ReadProfile(image,"xmp",profile,(ssize_t) length,exception);
#endif
length=0;
if (TIFFGetField(tiff,37724,&length,&profile) == 1)
- (void) ReadProfile(image,"tiff:37724",profile,(ssize_t) length);
+ (void) ReadProfile(image,"tiff:37724",profile,(ssize_t) length,exception);
}
static void TIFFGetProperties(TIFF *tiff,Image *image)
@@ -990,7 +990,7 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
if ((option != (const char *) NULL) &&
(IsMagickTrue(option) != MagickFalse))
TIFFGetEXIFProperties(tiff,image);
- TIFFGetProfiles(tiff,image);
+ TIFFGetProfiles(tiff,image,exception);
/*
Allocate memory for the image and pixel buffer.
*/
@@ -1109,7 +1109,7 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
colors;
colors=(size_t) GetQuantumRange(bits_per_sample)+1;
- if (AcquireImageColormap(image,colors) == MagickFalse)
+ if (AcquireImageColormap(image,colors,exception) == MagickFalse)
{
TIFFClose(tiff);
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
@@ -1935,7 +1935,7 @@ static MagickBooleanType WriteGROUP4Image(const ImageInfo *image_info,
}
(void) FormatLocaleString(huffman_image->filename,MaxTextExtent,"tiff:%s",
filename);
- (void) SetImageType(huffman_image,BilevelType);
+ (void) SetImageType(huffman_image,BilevelType,exception);
write_info=CloneImageInfo((ImageInfo *) NULL);
SetImageInfoFile(write_info,file);
write_info->compression=Group4Compression;
@@ -2538,7 +2538,7 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info,
*/
if ((image_info->type != UndefinedType) &&
(image_info->type != OptimizeType))
- (void) SetImageType(image,image_info->type);
+ (void) SetImageType(image,image_info->type,exception);
quantum_info=AcquireQuantumInfo(image_info,image);
if (quantum_info == (QuantumInfo *) NULL)
ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
@@ -2666,7 +2666,7 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info,
case FaxCompression:
case Group4Compression:
{
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
break;
}
case JPEGCompression:
diff --git a/coders/tim.c b/coders/tim.c
index bd265c3db..3b9cb774b 100644
--- a/coders/tim.c
+++ b/coders/tim.c
@@ -193,7 +193,7 @@ static Image *ReadTIMImage(const ImageInfo *image_info,ExceptionInfo *exception)
height=ReadBlobLSBShort(image);
image->columns=width;
image->rows=height;
- if (AcquireImageColormap(image,pixel_mode == 1 ? 256UL : 16UL) == MagickFalse)
+ if (AcquireImageColormap(image,pixel_mode == 1 ? 256UL : 16UL,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
tim_colormap=(unsigned char *) AcquireQuantumMemory(image->colors,
2UL*sizeof(*tim_colormap));
diff --git a/coders/ttf.c b/coders/ttf.c
index c054e2db5..0307c088e 100644
--- a/coders/ttf.c
+++ b/coders/ttf.c
@@ -281,7 +281,7 @@ static Image *ReadTTFImage(const ImageInfo *image_info,ExceptionInfo *exception)
i+=6;
}
ConcatenateString(&draw_info->primitive,"pop graphic-context");
- (void) DrawImage(image,draw_info);
+ (void) DrawImage(image,draw_info,exception);
/*
Relinquish resources.
*/
diff --git a/coders/uil.c b/coders/uil.c
index 795979bcf..7a86a5904 100644
--- a/coders/uil.c
+++ b/coders/uil.c
@@ -257,7 +257,7 @@ static MagickBooleanType WriteUILImage(const ImageInfo *image_info,Image *image,
}
}
}
- (void) SetImageType(image,PaletteType);
+ (void) SetImageType(image,PaletteType,exception);
colors=image->colors;
if (transparent != MagickFalse)
{
diff --git a/coders/vicar.c b/coders/vicar.c
index 840be5de2..ddfcb7394 100644
--- a/coders/vicar.c
+++ b/coders/vicar.c
@@ -280,7 +280,7 @@ static Image *ReadVICARImage(const ImageInfo *image_info,
if ((image->columns == 0) || (image->rows == 0))
ThrowReaderException(CorruptImageError,"NegativeOrZeroImageSize");
image->depth=8;
- if (AcquireImageColormap(image,256) == MagickFalse)
+ if (AcquireImageColormap(image,256,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (image_info->ping != MagickFalse)
{
diff --git a/coders/vid.c b/coders/vid.c
index 4ec99b928..469ee8a51 100644
--- a/coders/vid.c
+++ b/coders/vid.c
@@ -170,7 +170,8 @@ static Image *ReadVIDImage(const ImageInfo *image_info,ExceptionInfo *exception)
CatchException(exception);
if (next_image == (Image *) NULL)
break;
- label=InterpretImageProperties(image_info,next_image,DefaultTileLabel);
+ label=InterpretImageProperties(image_info,next_image,DefaultTileLabel,
+ exception);
(void) SetImageProperty(next_image,"label",label);
label=DestroyString(label);
if (image_info->debug != MagickFalse)
diff --git a/coders/viff.c b/coders/viff.c
index 2ab7f99b0..dc8c0ec89 100644
--- a/coders/viff.c
+++ b/coders/viff.c
@@ -394,7 +394,7 @@ static Image *ReadVIFFImage(const ImageInfo *image_info,
image->colors=image->depth <= 8 ? 256UL : 65536UL;
if (viff_info.data_storage_type == VFF_TYP_BIT)
image->colors=2;
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
}
break;
@@ -418,7 +418,7 @@ static Image *ReadVIFFImage(const ImageInfo *image_info,
default: bytes_per_pixel=1; break;
}
image->colors=viff_info.map_columns;
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
viff_colormap=(unsigned char *) AcquireQuantumMemory(image->colors,
viff_info.map_rows*bytes_per_pixel*sizeof(*viff_colormap));
@@ -615,8 +615,8 @@ static Image *ReadVIFFImage(const ImageInfo *image_info,
/*
Convert bitmap scanline.
*/
- (void) SetImageType(image,BilevelType);
- (void) SetImageType(image,PaletteType);
+ (void) SetImageType(image,BilevelType,exception);
+ (void) SetImageType(image,PaletteType,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -1179,7 +1179,7 @@ static MagickBooleanType WriteVIFFImage(const ImageInfo *image_info,
/*
Convert PseudoClass image to a VIFF monochrome image.
*/
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/wbmp.c b/coders/wbmp.c
index e637dfd31..1a157a0b5 100644
--- a/coders/wbmp.c
+++ b/coders/wbmp.c
@@ -174,7 +174,7 @@ static Image *ReadWBMPImage(const ImageInfo *image_info,
if (DiscardBlobBytes(image,image->offset) == MagickFalse)
ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
image->filename);
- if (AcquireImageColormap(image,2) == MagickFalse)
+ if (AcquireImageColormap(image,2,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (image_info->ping != MagickFalse)
{
@@ -382,7 +382,7 @@ static MagickBooleanType WriteWBMPImage(const ImageInfo *image_info,
/*
Convert image to a bi-level image.
*/
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
(void) WriteBlobMSBShort(image,0);
WBMPWriteInteger(image,image->columns);
WBMPWriteInteger(image,image->rows);
diff --git a/coders/webp.c b/coders/webp.c
index 49f81a12b..f1d92bf43 100644
--- a/coders/webp.c
+++ b/coders/webp.c
@@ -72,7 +72,7 @@
*/
#if defined(MAGICKCORE_WEBP_DELEGATE)
static MagickBooleanType
- WriteWEBPImage(const ImageInfo *,Image *);
+ WriteWEBPImage(const ImageInfo *,Image *,ExceptionInfo *);
#endif
#if defined(MAGICKCORE_WEBP_DELEGATE)
@@ -294,7 +294,7 @@ static int WebPWriter(const unsigned char *stream,size_t length,
}
static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info,
- Image *image)
+ Image *image,ExceptionInfo *exception)
{
int
webp_status;
diff --git a/coders/wpg.c b/coders/wpg.c
index 4370e1057..322702e5f 100644
--- a/coders/wpg.c
+++ b/coders/wpg.c
@@ -1036,7 +1036,7 @@ static Image *ReadWPGImage(const ImageInfo *image_info,
WPG_Palette.NumOfEntries=ReadBlobLSBShort(image);
image->colors=WPG_Palette.NumOfEntries;
- if (!AcquireImageColormap(image,image->colors))
+ if (!AcquireImageColormap(image,image->colors,exception))
goto NoMemory;
for (i=WPG_Palette.StartIndex;
i < (int)WPG_Palette.NumOfEntries; i++)
@@ -1089,7 +1089,7 @@ static Image *ReadWPGImage(const ImageInfo *image_info,
if ((image->colors == 0) && (bpp != 24))
{
image->colors=one << bpp;
- if (!AcquireImageColormap(image,image->colors))
+ if (!AcquireImageColormap(image,image->colors,exception))
{
NoMemory:
ThrowReaderException(ResourceLimitError,
@@ -1220,7 +1220,7 @@ static Image *ReadWPGImage(const ImageInfo *image_info,
WPG_Palette.NumOfEntries=ReadBlobLSBShort(image);
image->colors=WPG_Palette.NumOfEntries;
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,
"MemoryAllocationFailed");
for (i=WPG_Palette.StartIndex;
@@ -1273,7 +1273,7 @@ static Image *ReadWPGImage(const ImageInfo *image_info,
one=1;
image->colors=one << bpp;
- if (!AcquireImageColormap(image,image->colors))
+ if (!AcquireImageColormap(image,image->colors,exception))
goto NoMemory;
}
else
diff --git a/coders/xbm.c b/coders/xbm.c
index 1d192fbf1..ababf6a80 100644
--- a/coders/xbm.c
+++ b/coders/xbm.c
@@ -271,7 +271,7 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Initialize image structure.
*/
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
/*
Initialize colormap.
@@ -530,7 +530,7 @@ static MagickBooleanType WriteXBMImage(const ImageInfo *image_info,Image *image,
/*
Convert MIFF to X bitmap pixels.
*/
- (void) SetImageType(image,BilevelType);
+ (void) SetImageType(image,BilevelType,exception);
bit=0;
byte=0;
count=0;
diff --git a/coders/xcf.c b/coders/xcf.c
index fa3e2e7b4..7de9d5936 100644
--- a/coders/xcf.c
+++ b/coders/xcf.c
@@ -331,11 +331,9 @@ static char *ReadBlobStringWithLongSize(Image *image,char *string,size_t max)
}
static MagickBooleanType load_tile(Image *image,Image *tile_image,
- XCFDocInfo *inDocInfo,XCFLayerInfo *inLayerInfo,size_t data_length)
+ XCFDocInfo *inDocInfo,XCFLayerInfo *inLayerInfo,size_t data_length,
+ ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
ssize_t
y;
@@ -365,7 +363,6 @@ static MagickBooleanType load_tile(Image *image,Image *tile_image,
if (count != (ssize_t) data_length)
ThrowBinaryException(CorruptImageError,"NotEnoughPixelData",
image->filename);
- exception=(&image->exception);
for (y=0; y < (ssize_t) tile_image->rows; y++)
{
q=QueueAuthenticPixels(tile_image,0,y,tile_image->columns,1,exception);
@@ -406,11 +403,9 @@ static MagickBooleanType load_tile(Image *image,Image *tile_image,
}
static MagickBooleanType load_tile_rle(Image *image,Image *tile_image,
- XCFDocInfo *inDocInfo,XCFLayerInfo *inLayerInfo,size_t data_length)
+ XCFDocInfo *inDocInfo,XCFLayerInfo *inLayerInfo,size_t data_length,
+ ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
MagickOffsetType
size;
@@ -670,12 +665,12 @@ static MagickBooleanType load_level(Image *image,XCFDocInfo *inDocInfo,
switch (inDocInfo->compression)
{
case COMPRESS_NONE:
- if (load_tile(image,tile_image,inDocInfo,inLayerInfo,(size_t) (offset2-offset)) == 0)
+ if (load_tile(image,tile_image,inDocInfo,inLayerInfo,(size_t) (offset2-offset),exception) == 0)
status=MagickTrue;
break;
case COMPRESS_RLE:
if (load_tile_rle (image,tile_image,inDocInfo,inLayerInfo,
- (int) (offset2-offset)) == 0)
+ (int) (offset2-offset),exception) == 0)
status=MagickTrue;
break;
case COMPRESS_ZLIB:
@@ -765,7 +760,7 @@ static MagickBooleanType load_hierarchy(Image *image,XCFDocInfo *inDocInfo,
}
static MagickBooleanType ReadOneLayer(Image* image,XCFDocInfo* inDocInfo,
- XCFLayerInfo *outLayer )
+ XCFLayerInfo *outLayer, ExceptionInfo *exception )
{
MagickOffsetType
offset;
@@ -1294,7 +1289,8 @@ static Image *ReadXCFImage(const ImageInfo *image_info,ExceptionInfo *exception)
/* seek to the layer offset */
offset=SeekBlob(image,offset,SEEK_SET);
/* read in the layer */
- layer_ok=ReadOneLayer(image,&doc_info,&layer_info[current_layer]);
+ layer_ok=ReadOneLayer(image,&doc_info,&layer_info[current_layer],
+ exception);
if (layer_ok == MagickFalse)
{
int j;
diff --git a/coders/xpm.c b/coders/xpm.c
index 959f02fb1..bf8deb8af 100644
--- a/coders/xpm.c
+++ b/coders/xpm.c
@@ -342,7 +342,7 @@ static Image *ReadXPMImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
xpm_colors=NewSplayTree(CompareXPMColor,RelinquishMagickMemory,
(void *(*)(void *)) NULL);
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
/*
Read image colormap.
@@ -650,13 +650,13 @@ static MagickBooleanType WritePICONImage(const ImageInfo *image_info,
if ((picon == (Image *) NULL) || (affinity_image == (Image *) NULL))
return(MagickFalse);
quantize_info=AcquireQuantizeInfo(image_info);
- status=RemapImage(quantize_info,picon,affinity_image);
+ status=RemapImage(quantize_info,picon,affinity_image,exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
affinity_image=DestroyImage(affinity_image);
transparent=MagickFalse;
if (picon->storage_class == PseudoClass)
{
- (void) CompressImageColormap(picon);
+ (void) CompressImageColormap(picon,exception);
if (picon->matte != MagickFalse)
transparent=MagickTrue;
}
@@ -687,7 +687,7 @@ static MagickBooleanType WritePICONImage(const ImageInfo *image_info,
break;
}
}
- (void) SetImageType(picon,PaletteType);
+ (void) SetImageType(picon,PaletteType,exception);
}
colors=picon->colors;
if (transparent != MagickFalse)
@@ -884,7 +884,7 @@ static MagickBooleanType WriteXPMImage(const ImageInfo *image_info,Image *image,
if (image->matte == MagickFalse)
{
if ((image->storage_class == DirectClass) || (image->colors > 256))
- (void) SetImageType(image,PaletteType);
+ (void) SetImageType(image,PaletteType,exception);
}
else
{
@@ -896,7 +896,7 @@ static MagickBooleanType WriteXPMImage(const ImageInfo *image_info,Image *image,
Identify transparent colormap index.
*/
if ((image->storage_class == DirectClass) || (image->colors > 256))
- (void) SetImageType(image,PaletteBilevelMatteType);
+ (void) SetImageType(image,PaletteBilevelMatteType,exception);
for (i=0; i < (ssize_t) image->colors; i++)
if (image->colormap[i].alpha != OpaqueAlpha)
{
@@ -914,7 +914,7 @@ static MagickBooleanType WriteXPMImage(const ImageInfo *image_info,Image *image,
}
if (opacity == -1)
{
- (void) SetImageType(image,PaletteBilevelMatteType);
+ (void) SetImageType(image,PaletteBilevelMatteType,exception);
for (i=0; i < (ssize_t) image->colors; i++)
if (image->colormap[i].alpha != OpaqueAlpha)
{
diff --git a/coders/xwd.c b/coders/xwd.c
index 2535fb459..dfdde5f6c 100644
--- a/coders/xwd.c
+++ b/coders/xwd.c
@@ -458,7 +458,7 @@ static Image *ReadXWDImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Convert X image to PseudoClass packets.
*/
- if (AcquireImageColormap(image,image->colors) == MagickFalse)
+ if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
for (i=0; i < (ssize_t) image->colors; i++)
{
diff --git a/tests/validate.c b/tests/validate.c
index 684e9f5f0..cdc492266 100644
--- a/tests/validate.c
+++ b/tests/validate.c
@@ -523,7 +523,7 @@ static size_t ValidateImageFormatsInMemory(ImageInfo *image_info,
image_info->depth=reference_types[j].depth;
(void) FormatLocaleString(reference_image->filename,MaxTextExtent,"%s:%s",
reference_formats[i].magick,output_filename);
- status=SetImageType(reference_image,reference_types[j].type);
+ status=SetImageType(reference_image,reference_types[j].type,exception);
InheritException(exception,&reference_image->exception);
if (status == MagickFalse)
{
@@ -741,7 +741,7 @@ static size_t ValidateImageFormatsOnDisk(ImageInfo *image_info,
image_info->depth=reference_types[j].depth;
(void) FormatLocaleString(reference_image->filename,MaxTextExtent,"%s:%s",
reference_formats[i].magick,output_filename);
- status=SetImageType(reference_image,reference_types[j].type);
+ status=SetImageType(reference_image,reference_types[j].type,exception);
InheritException(exception,&reference_image->exception);
if (status == MagickFalse)
{
@@ -969,8 +969,7 @@ static size_t ValidateImportExportPixels(ImageInfo *image_info,
(void) SetImageBackgroundColor(reference_image);
status=ImportImagePixels(reference_image,0,0,reference_image->columns,
reference_image->rows,reference_map[i],reference_storage[j].type,
- pixels);
- InheritException(exception,&reference_image->exception);
+ pixels,exception);
if (status == MagickFalse)
{
(void) FormatLocaleFile(stdout,"... fail @ %s/%s/%lu.\n",
@@ -991,7 +990,7 @@ static size_t ValidateImportExportPixels(ImageInfo *image_info,
(void) SetImageBackgroundColor(reconstruct_image);
status=ImportImagePixels(reconstruct_image,0,0,reconstruct_image->columns,
reconstruct_image->rows,reference_map[i],reference_storage[j].type,
- pixels);
+ pixels,exception);
InheritException(exception,&reconstruct_image->exception);
pixels=(unsigned char *) RelinquishMagickMemory(pixels);
if (status == MagickFalse)